Budowa stosu na klasach

0

Witam. Mam na studiach zrobić projekt z Pascala, niestety średnio pamiętam ten język. Mógłby mi ktoś mniej więcej wytłumaczyć i dać rady dot. tego programu?:

Stos na klasach- dane : rekord (nazwisko,rok)
a) pobieranie danych z okien textBox
b) operacje: na stos (pojedynczo + wizualizacja)
c) ze stosu, + wizualizacja
d) usuń stos + wizualizacja

0

Mam na studiach zrobić projekt z Pascala, niestety średnio pamiętam ten język.

No to trzeba sobie powtórzyć co najmniej podstawy języka - zobacz tutaj;

a) pobieranie danych z okien textBox

W Delphi nie ma czegoś takiego jak textBox - są np. Edit, Memo itd., chyba masz na myśli ten pierwszy;

b) operacje: na stos (pojedynczo + wizualizacja)

Napisz o tym coś więcej;

c) ze stosu, + wizualizacja
d) usuń stos + wizualizacja

O tym też coś więcej napisz, bo nie wiadomo co masz na myśli pod pojęciem "wizualizacji";


Po pierwsze skup się na implementacji klasy stosu; Zastanów się nad tym, co będzie przechowywać dane (rekordy) - czy macierz statyczna/dynamiczna, czy lista, czy jeszcze coś innego; Poczytaj sobie o podstawach programowania obiektowego, bo bez nich nie stworzysz sensownej klasy; Zastanów się jakie pola ma taka klasa posiadać, jakie metody i właściwości;

Napisz coś, a ewentualnie jakbyś miał z czymś problem to podaj tutaj kod, a doradzi się coś; I nie zapomnij podać szerszy i dokładniejszy opis Twojego programu - łatwiej będzie pomóc;

PS: Z jakiego środowiska i kompilatora koszystasz?

0

Dzięki ;) Do Pascala używam Lazarusa. Na razie wkleiłem całą treść jaką dostałem od wykładowcy, po resztę informacji muszę się udać na konsultację.

0

No to trzeba było w tagach wpisać dodatkowo lazarus, a nie tylko pascal;

W takim razie jak się czegoś więcej dowiesz to pisz; Przy okazji - chyba zapomniałeś się zalogować, ale widzę że Ty to Ty :]

0

Fakt, mój błąd :D Prowadzący dodał mi do polecenia dodatkowo "wkładanie na stos" oraz jeśli chodzi o polecenie i zawartość rekordów to: nazwisko, rok studiów, +wskaźnik (adres).
Okazało się, że program ma być bez operacji na stosie (nie da się np. pomnożyć nazwiska z rokiem...).
Wszystko ma być przedstawione graficznie, przykładowo w formie dodawania do stosu jakiegoś pudełka, czy czegoś w tym stylu.

2

Jeśli stos'u nie musisz implementować sam to możesz wykorzystać do tego klasę TStack

diego662 napisał(a):

Okazało się, że program ma być bez operacji na stosie (nie da się np. pomnożyć nazwiska z rokiem...).

Tego nie rozumiem. Stos w tej sytuacji można wykorzystać tylko w 1 sposób w tym zadaniu do przechowywania informacji o rekordach. Natomiast w prawdziwym życiu jest to źle dobrana struktura danych do tego problemu - powinna być to raczej lista czy tablica rekordów.

Do wizualizacji, żeby zbytnio się nie namęczyć możesz użyć komponentu ProgressBar z ustawioną właściwością Orientation na bpVertical. Jeśli chcesz podejść do tego bardziej profesjonalnie to poszukaj informacji o Canvas i rysuj sobie ten stos sam w formie kolorowych pudełek czy czego tam chcesz.

1
diego662 napisał(a)

Okazało się, że program ma być bez operacji na stosie (nie da się np. pomnożyć nazwiska z rokiem...).

Ale jaki to ma sens? Stos ma służyć jedynie do przechowywania informacji - wrzucasz do niego rekord albo go z niego zdejmujesz i to tyle; Jeżeli potrzebujesz wykonywać jakieś cuda na danych trzymanych w pojedynczych rekordach, to już poza implementacją gołego stosu, jako zewnętrzne procedury; Ewentualnie możesz całość opakować w klasę, w której rekordy będą trzymane na stosie, a operacje wykonywane będą po zdjęciu elementu z niego, np. w jakiejś metodzie; Ale i tak nie znamy konkretnego przeznaczenia tego stosu, więc można mówić jedynie ogólnie;

Wszystko ma być przedstawione graficznie, przykładowo w formie dodawania do stosu jakiegoś pudełka, czy czegoś w tym stylu.

Poprzednik podał fajne rozwiązanie, bo korzystając z komponentu ProgressBar z ustawionym Smooth na False można osiągnąć fajny efekt, taki jak poniżej:

progressbar.png

No ale to dość słaba wizualizacja; Ładniej na pewno było by zrobić animację i wszystko rysować np. na komponencie PaintBox, ale do tego trzeba mieć wiedzę z zakresu bazgrania po kanwie komponentu; Choć do prostej wizualizacji wystarczy kilka metod, np. do rysowania linii i prostokątów.

0
szopenfx napisał(a):
diego662 napisał(a):

Okazało się, że program ma być bez operacji na stosie (nie da się np. pomnożyć nazwiska z rokiem...).

Tego nie rozumiem. Stos w tej sytuacji można wykorzystać tylko w 1 sposób w tym zadaniu do przechowywania informacji o rekordach.

furious programming napisał(a):

Ale jaki to ma sens? Stos ma służyć jedynie do przechowywania informacji

Tutaj zacytowałem tylko słowa wykładowcy ;P Ale dzięki wielkie za rady, chociaż widzę, że braki mam dość duże i będzie bardzo ciężko, ale przynajmniej wiem już, co mam mniej więcej zrobić ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1