| | |
| Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
Autor | Správa |
---|
Registrovaný: 21.05.09 Prihlásený: 24.01.17 Príspevky: 12 Témy: 3 |
Napísal som jednoduchý program,ale nerobí to,čo by mal.Našiel by sa tu niekto ochotný,komu by som ho mohol poslať,aby sa mi naň pozrel?
|
|
Registrovaný: 08.03.09 Prihlásený: 06.10.20 Príspevky: 1116 Témy: 88 Bydlisko: 00100100 | Napísal reDo: 21.05.2009 19:53 | |
|
hod ho sem ked chces pomoc
_________________ Programming is The Best
Hackers Are Not Crackers!!! Hackers build things, crackers break them!
;-) |
|
Registrovaný: 21.05.09 Prihlásený: 24.01.17 Príspevky: 12 Témy: 3 | Napísal autor témy dmx7899: 21.05.2009 19:58 | |
|
|
|
Registrovaný: 11.01.09 Prihlásený: 27.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 21.05.2009 22:09 | |
|
Kód: program Zajazd; uses crt;
type myString = string[12];
var i2, suma, suma2:integer; zoznam: text; meno, meno2: myString; koniec: boolean; m: char;
procedure UpravMeno(var s: myString); var i: integer; begin
for i:= 1 to 12 do if (s[i] = ' ') then begin delete(s, i, 12-i+1); exit; end;
end;
procedure Celyvypis; begin
clrscr; writeln('Tu je zoznam ziakov aj s ich usporami.'); while (not (eof(Zoznam))) do begin readln(zoznam, meno, suma); writeln(meno, ' ', suma); end;
end;
procedure Aktualizuj; var i: integer; begin
clrscr; i:= 0; writeln('Zadajte meno ziaka, ktoreho stav uspor chcete upravit.'); readln(meno2); writeln('Zadajte sumu,ktoru chcete pripocitat.'); readln(suma2); while (not (eof(zoznam))) do begin inc(i); readln(zoznam, meno, suma); UpravMeno(meno); if (meno = meno2) then suma:= suma+suma2; end;
end;
procedure Vybranyvypis; begin
clrscr; i2:=0;
writeln('Zadajte sumu.'); readln(suma2); writeln('Menej ako ',suma2,' EUR maju nasetrene ziaci:'); while (not (eof(zoznam))) do begin readln(zoznam, meno, suma); if (suma < suma2) then begin writeln(meno, ' ', suma); inc(i2); end; end;
if (i2 = 0) then writeln('Vsetci ziaci maju nasetrene viac ako ',suma2,' EUR.');
end;
procedure Vypisjedneho; begin
clrscr; writeln('Zadajte meno ziaka.'); readln(meno2);
while (not (eof(zoznam))) do begin readln(zoznam, meno, suma); UpravMeno(meno); if (meno = meno2) then writeln('Ziak ',meno2,' ma nasetrenych ',suma,' EUR.'); end;
end;
begin assign(Zoznam, 'zoznam.txt');
clrscr; writeln('Vitajte v programe LYZIARSKY ZAJAZD.'); koniec:= false;
repeat
reset(zoznam);
writeln; writeln; writeln('Pre zobrazenie stavu vsetkych uspor stlacte 1.'); writeln('Pre zmenu stavu nasetrenych penazi stlacte 2.'); writeln('Pre zistenie chybajucich penazi stlacte 3.'); writeln('Pre zistenie stavu jedneho ziaka stlacte 4.'); writeln('Pre ukoncenie programu stlacte 5.'); m:= readkey;
case m of '1': Celyvypis; '2': Aktualizuj; '3': Vybranyvypis; '4': Vypisjedneho; '5': koniec:= true; end;
until (koniec = true);
clrscr; writeln('Program sa ukoncil.'); close(zoznam);
end.
Hlavný problém bol v tom, že zo súboru si načítal meno v tvare:
'Dobrota '
tzn aj s medzerami. Vyriešené pomocou procedúry UpravMeno. Upravil som ti aj úvodné načítavanie znakov. Nefunguje ešte procedúra aktualizuj, pretože zapisovať do stredu súboru deklarovaného ako text je dosť krkolomné. Myslím, že najvohdnejšie by bolo, keby si použil inú premennú deklarovanú ako File of ... nejaká štruktúra (string[12] a integer), pomocou ktorej by si rovno načítal aj meno aj sumu.
|
|
Registrovaný: 21.05.09 Prihlásený: 24.01.17 Príspevky: 12 Témy: 3 | Napísal autor témy dmx7899: 22.05.2009 17:36 | |
|
Ďakujem ti za ochotu aj za čas,ktorý si nad tým strávil.
Informatiku mám v škole prvý rok a tak to asi aj vyzerá...... V škole sme preberali iba textové súbory a preto som o inej možnosti ako textovom súbore ani nevedel.
Asi to pôjde urobiť aj spôsobom,ktorý navrhuješ.,ale to si budem musieť prečítať nejakú knihu....
Ešte raz ti veľmi pekne ďakujem za pomoc.
Ešte jedna question,ak sa tu objavíš..... V procedúre aktualizuj by sa to nedalo prepísať tak,že by som celý riadok zmazal a namiesto neho by som vpísal meno a upravenú sumu,ktorú by som spočítal v pomocnej premennej typu integer?
|
|
Registrovaný: 11.01.09 Prihlásený: 27.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 22.05.2009 20:56 | |
|
Takže máš to upravené, hodím sem iba upravenú procedúru Aktualizuj a pridané procedúry + premenné. Ostatné ostane postarom:
Kód: var vsetkyMena: array[1..50] of myString; vsetkySumy: array[1..50] of integer; pocetLudi: integer;
procedure zmenaSuboru; var i: integer; begin
Close(zoznam); Rewrite(zoznam);
for i:= 1 to pocetLudi do writeln(zoznam, vsetkyMena[i], vsetkySumy[i]);
Close(zoznam); Reset(zoznam);
end;
procedure Aktualizuj; begin
clrscr; pocetLudi:= 0; writeln('Zadajte meno ziaka, ktoreho stav uspor chcete upravit.'); readln(meno2); writeln('Zadajte sumu,ktoru chcete pripocitat.'); readln(suma2); while (not (eof(zoznam))) do begin inc(pocetLudi); readln(zoznam, meno, suma);
vsetkyMena[pocetLudi]:= meno; UpravMeno(meno); if (meno = meno2) then suma:= suma+suma2; vsetkySumy[pocetLudi]:= suma;
end;
zmenaSuboru;
end;
Pri práci s textovými súbormi (narozdiel od binárnych) sa neda čítať a zapisovať naraz a nedá sa "skákať" na rôzne pozície v súbore, preto je to trocha komplikovanejšie.
|
|
Registrovaný: 21.05.09 Prihlásený: 24.01.17 Príspevky: 12 Témy: 3 | Napísal autor témy dmx7899: 23.05.2009 18:51 | |
|
Znovu ti posielam obrovské ďakujem,veľmi si mi pomohol. Dúfam,že časom nazbieram skúsenosti a aj ja budem vedieť pomôcť.
|
|
| Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| pomoc s pascalom v Assembler, C, C++, Pascal, Java | 2 | 725 | 14.02.2007 14:40 scooby | | pomoc s pascalom v Assembler, C, C++, Pascal, Java | 3 | 815 | 13.04.2007 19:08 johny128 | | Trapna pomoc s pascalom v Assembler, C, C++, Pascal, Java | 5 | 352 | 10.11.2012 2:23 Gregi555 | | Problem s Turbo Pascalom v Assembler, C, C++, Pascal, Java | 8 | 1521 | 15.11.2006 19:46 smejo | | help me pls s pascalom v Assembler, C, C++, Pascal, Java | 6 | 728 | 12.05.2007 16:25 p360t | | potreboval by som poradit s pascalom v Assembler, C, C++, Pascal, Java | 6 | 794 | 29.04.2008 17:25 gabo87 | | help ako inak o5 s pascalom v Assembler, C, C++, Pascal, Java | 4 | 851 | 16.05.2007 20:00 audiotrack | | pomoc pomoc prosim nefunguje internet v Ovládače | 7 | 1141 | 09.09.2017 20:37 Smith Wesson | | Pomoc pri pomoc pri skladaní PC - od 1 500 do 1 800 Eur (rozlíšenie 1440p) v PC zostavy | 13 | 806 | 28.09.2023 20:23 johny314 | | Pomoc v Zvuk | 2 | 839 | 24.11.2007 17:30 optyx | | pomoc v PHP, ASP | 2 | 789 | 02.02.2008 17:17 Punker661 | | POMOC [ Choď na stránku: 1, 2 ] v Ostatné | 30 | 2273 | 27.09.2009 20:01 workoholik16 | | pomoc v Ostatné | 13 | 954 | 08.08.2009 22:16 malcolm | | pomoc v HTML, XHTML, XML, CSS | 1 | 376 | 18.10.2013 18:36 Ďuri | | Pomoc v ATI/AMD grafické karty | 3 | 863 | 02.01.2008 7:51 Daron | | pomoc v Monitory, televízory a projektory | 2 | 875 | 19.02.2008 13:40 patqo_he |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|