Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [pascal]wprowadzanie danych do tabel
Forum PHP.pl > Inne > Hydepark
dabb
Witam

Musze na jutro napisac pare programow w pascalu jestem przy pierwszym i juz mam problem sad.gif.

Problem jest taki:
Napisać program, który pozwala na wprowadzanie pewnej liczby zapisów. Każdy zapis obejmuje imię (ograniczone do 10 znaków) i nazwisko (ograniczone do 15 znaków) oraz wzrost (podawany w pełnych centymetrach). Liczba zapisów (nie większa niż 15) powinna być wprowadzona na początku działania programu.
Po wprowadzeniu danych program powinien wyświetlić listę zapisów (odpowiednio wyrównanych). Lista powinna być opatrzona nagłówkiem, a każdy wpis numerem porządkowym. Ostatni wiersz powinien być podkreślony, a poniżej podkreślenia powinna być wyświetlona średnia wzrostów wszystkich osób w grupie (z dokładnością do centymetra).


Wszystko zrobilem ale zatrzymalem sie przy punkcie 9 ktory jest taki:

9.Zorganizować wprowadzanie danych do tabel ImionaDryblasow, NazwiskaDryblasow, WzrostyDryblasow.
Ze względu na zdeterminowaną liczbę wpisów (zawiera ją zmienna LiczbaDryblasow) należy użyć konstrukcji For. Stąd wynika konieczność zadeklarowania dodatkowej zmiennej typu byte – jako zmiennej sterującej.


Prosze o pomoc


Kod
program prog3_1;

Uses CRT;

var
  ImionaDryblasow: array[1..15] of string[10];
  NazwiskaDryblasow: array[1..15] of string[10];
  WzrostyDryblasow: array[1..15] of byte;
  LiczbaDryblasow: byte;
  Srednia: single;
  ZS:byte; {zmienna sterujaca}
begin
repeat
writeln('Podaj liczbe osob z zakresu<1,15>');
readln(LiczbaDryblasow);
until(LiczbaDryblasow>0) and (LiczbaDryblasow<16);

writeln('Zaczynamy wprowadzanie danych dryblasow');
writeln('Zostaniesz poproszny o podanie imion, nazwisk i wzrostu');

{ ... w tym miejscu sie zatrzymalem :( }


writeln('Aby zakonczyc dzialanie programu nacisnij ENTER');
readln
end.
ikioloak
for zs:=1 to liczbadryglasow do
begin
writeln('Podaj nazwisko dryblasa nr '+zs);
readln(nazwiskodryblasa[zs]);
{i tak samo z innymi danymi}
end;

Chyba ze nie zrozumialem problemu...
dabb
przy writeln('podaj nazwisko dryblasa nr ' +zs);
wywala sie blad Error 26 Type MisMatch

powinno byc:
writeln('podaj nazwisko dryblasa nr ',+zs,'');



Ok teraz mam juz dane wprowadzaone smile.gif ale kolejny problem bo z pierwszym sobie jakos poradzilem jest taki:

jak wyprowadzic dane na ekran tak jak na tym obrazku:



caly kod programy wyglada tak:
Kod
program prog3_1;

Uses CRT;

var
  ImionaDryblasow: array[1..15] of string[10];
  NazwiskaDryblasow: array[1..15] of string[10];
  WzrostyDryblasow: array[1..15] of byte;
  LiczbaDryblasow: byte;
  Srednia: single;
  ZS:byte; {zmienna sterujaca}
begin
repeat
writeln('Podaj liczbe osob z zakresu<1,15>');
readln(LiczbaDryblasow);
until(LiczbaDryblasow>0) and (LiczbaDryblasow<16);

writeln('Zaczynamy wprowadzanie danych dryblasow');
writeln('Zostaniesz poproszny o podanie imion, nazwisk i wzrostu');
writeln(' ');
writeln(' ');

for zs:=1 to LiczbaDryblasow do
begin
writeln('Podaj imie dryblasa nr ',+zs,'');
readln(ImionaDryblasow[zs]);
end;


for zs:=1 to LiczbaDryblasow do
begin
writeln('Podaj nazwisko dryblasa nr ',+zs,'');
readln(NazwiskaDryblasow[zs]);
end;


for zs:=1 to LiczbaDryblasow do
begin
writeln('Podaj wzrost dryblasa nr ',+zs,'');
readln(WzrostyDryblasow[zs]);
end;


clrscr;

writeln('Lp.        Imie        nazwisko        Wzrost');
writeln('=============================================');

{tutaj nie wiem jak te wprowadzone dane wypisac w postaci tabeli}

writeln('Aby zakonczyc dzialanie programu nacisnij ENTER');
readln;
end.
ikioloak
Idea jest ta sama.
Kod
for zs:=1 to liczbadryblasow do
writeln('  ',zs,'   ',imionadryblasow[zs],'    ',nazwiskadryblasow[zs],'   ',wzrostydryblasow[zs]);


cos takiego. Ja w pascalu nie siedze wiec moga byc bledy takie jak w poprzednim poscie.
spenalzo
Powinieneś to zrobić na rekordach, nie pamietam dokladnie jak to było, ale rekordy są w tej sytuacji chyba najlepsze.
ikioloak
Technicznie to oczywiscie ze lepiej, ale w momencie kiedy to nie ma byc zaden specjalnie funkcjonalny program, tylko jakis tam pikus na zaliczenie to chyba moga byc tablice.. BTW: w dosowym pascalu to juz chyba zupelnie nikt nie pisze czegos w miare powaznego nie?
MoD
Może nie nic poważnego, do tego bardziej się przyda Object Pascal (Delphi). Ja ostatnio nawet generator haseł w DOS'owym Pascalu napisałem smile.gif. Wersja dla DOS jest bardziej przydatna do rzeczy w stylu tablica ASCII itp. Pozatym programy DOS'owe mniej pamięci zabierają winksmiley.jpg
Imperior
Troszkę chyba mylicie pojęcia programu DOS'owego a konsolowego smile.gif
A konsolowe aplikacje wcale nie muszą być jakieś kiepskie, czy niepoważne.
(Zresztą w Delphi można spokojnie takie aplikacje pisać)

PS. Chyba nie musze wskazywać Linuksa, Uniksa itp. jako miejsca potencjalnych zastosowań aplikacji konsolowych?
ikioloak
hmm. Pojec nie mylimy bo z tego co pamietam to piszac w delphi konsolowe aplikacje mozesz korzystac ze wszystkich niewidocznych komponentow delphi i ze wszystkich api jakie oferuje normalnie przy pisaniu aplikacji dla windy. a w pascalu.. no rzeczywiscie pascal w dzisiejszych czasach to nadaje sie wlasnie do testowania algorytmow i pisania jakichs pierdol.
Jesli chodzi o Linuxa/Unixa to niestety wypowiedziec sie nie moge bom niezorientowany za dobrze... Ale to sie wktotce zmieni (smile.gif) bo na laborkach wlasnie tluczemy konsole w linuxie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.