Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 7 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.05.09
Prihlásený: 24.01.17
Príspevky: 12
Témy: 3
Príspevok NapísalOffline : 21.05.2009 19:35

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?


Offline

Užívateľ
Užívateľ
Pomoc s Pascalom

Registrovaný: 08.03.09
Prihlásený: 06.10.20
Príspevky: 1116
Témy: 88
Bydlisko: 00100100
Príspevok NapísalOffline : 21.05.2009 19:53

hod ho sem ked chces pomoc
:loony:







_________________
Programming is The Best
Hackers Are Not Crackers!!! Hackers build things, crackers break them!
;-)
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.05.09
Prihlásený: 24.01.17
Príspevky: 12
Témy: 3
Príspevok Napísal autor témyOffline : 21.05.2009 19:58

http://rapidshare.com/files/235674462/Pascal.rar.html

Tu je zadanie aj s programom.


Offline

Skúsený užívateľ
Skúsený užívateľ
Pomoc s Pascalom

Registrovaný: 11.01.09
Prihlásený: 27.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.05.09
Prihlásený: 24.01.17
Príspevky: 12
Témy: 3
Príspevok Napísal autor témyOffline : 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?


Offline

Skúsený užívateľ
Skúsený užívateľ
Pomoc s Pascalom

Registrovaný: 11.01.09
Prihlásený: 27.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.05.09
Prihlásený: 24.01.17
Príspevky: 12
Témy: 3
Príspevok Napísal autor témyOffline : 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ť.


Odpovedať na tému [ Príspevkov: 7 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. pomoc s pascalom

v Assembler, C, C++, Pascal, Java

2

725

14.02.2007 14:40

scooby Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pomoc s pascalom

v Assembler, C, C++, Pascal, Java

3

815

13.04.2007 19:08

johny128 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Trapna pomoc s pascalom

v Assembler, C, C++, Pascal, Java

5

352

10.11.2012 2:23

Gregi555 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problem s Turbo Pascalom

v Assembler, C, C++, Pascal, Java

8

1521

15.11.2006 19:46

smejo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. help me pls s pascalom

v Assembler, C, C++, Pascal, Java

6

728

12.05.2007 16:25

p360t Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. potreboval by som poradit s pascalom

v Assembler, C, C++, Pascal, Java

6

794

29.04.2008 17:25

gabo87 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. help ako inak o5 s pascalom

v Assembler, C, C++, Pascal, Java

4

851

16.05.2007 20:00

audiotrack Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pomoc pomoc prosim nefunguje internet

v Ovládače

7

1141

09.09.2017 20:37

Smith Wesson Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. 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 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pomoc

v Zvuk

2

839

24.11.2007 17:30

optyx Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pomoc

v PHP, ASP

2

789

02.02.2008 17:17

Punker661 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. POMOC

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Ostatné

30

2273

27.09.2009 20:01

workoholik16 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pomoc

v Ostatné

13

954

08.08.2009 22:16

malcolm Zobrazenie posledných príspevkov

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. pomoc

v HTML, XHTML, XML, CSS

1

376

18.10.2013 18:36

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pomoc

v ATI/AMD grafické karty

3

863

02.01.2008 7:51

Daron Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pomoc

v Monitory, televízory a projektory

2

875

19.02.2008 13:40

patqo_he Zobrazenie posledných príspevkov


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

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra