[ Príspevkov: 7 ] 
AutorSpráva
Offline

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

Registrovaný: 21.05.09
Prihlásený: 07.01.25
Príspevky: 12
Témy: 3 | 3
NapísalOffline : 21.05.2009 19:35 | Pomoc s Pascalom

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ý: 17.01.25
Príspevky: 1116
Témy: 88 | 88
Bydlisko: 00100100
NapísalOffline : 21.05.2009 19:53 | Pomoc s Pascalom

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ý: 07.01.25
Príspevky: 12
Témy: 3 | 3
Napísal autor témyOffline : 21.05.2009 19:58 | Pomoc s Pascalom

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ý: 28.04.26
Príspevky: 1399
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 21.05.2009 22:09 | Pomoc s Pascalom

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ý: 07.01.25
Príspevky: 12
Témy: 3 | 3
Napísal autor témyOffline : 22.05.2009 17:36 | Pomoc s Pascalom

Ď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ý: 28.04.26
Príspevky: 1399
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 22.05.2009 20:56 | Pomoc s Pascalom

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ý: 07.01.25
Príspevky: 12
Témy: 3 | 3
Napísal autor témyOffline : 23.05.2009 18:51 | Pomoc s Pascalom

Znovu ti posielam obrovské ďakujem,veľmi si mi pomohol. Dúfam,že časom nazbieram skúsenosti a aj ja budem vedieť pomôcť.


 [ Príspevkov: 7 ] 


Pomoc s Pascalom



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 Backend

2

778

14.02.2007 14:40

scooby

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

pomoc s pascalom

v Backend

3

891

13.04.2007 19:08

johny128

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

Trapna pomoc s pascalom

v Ostatné

5

424

10.11.2012 2:23

Gregi555

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

Problem s Turbo Pascalom

v Ostatné

8

1608

15.11.2006 19:46

smejo

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

help me pls s pascalom

v Backend

6

830

12.05.2007 16:25

p360t

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

help ako inak o5 s pascalom

v Backend

4

926

16.05.2007 20:00

audiotrack

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

potreboval by som poradit s pascalom

v Backend

6

882

29.04.2008 17:25

gabo87

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

pomoc pomoc prosim nefunguje internet

v Ovládače

7

1367

09.09.2017 20:37

Smith Wesson

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

1098

28.09.2023 20:23

johny314

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

pomoc

v Backend

6

803

01.08.2008 16:27

Darkeye18

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

Pomoc

v Kôš

2

20

16.01.2019 18:09

michalesku

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

Pomoc

v AMD grafické karty

3

973

02.01.2008 7:51

Daron

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

pomoc

v Hry a herné konzoly

5

596

28.06.2011 16:32

Ďuri

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

pomoc

v Monitory, televízory a projektory

2

973

19.02.2008 13:40

patqo_he

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

pomoc

v nVidia grafické karty

1

1151

02.02.2007 10:51

Harlequin

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

2594

27.09.2009 20:01

workoholik16



© 2005 - 2026 PCforum, edited by JanoF