Pascal - pomoc

Programovacie jazyky, rady, poradňa...
jojo44
Medium Expert
Medium Expert
Príspevky: 110
Registrovaný: 29 dec 2006, 18:40
Bydlisko: Bratislava

Pascal - pomoc

Príspevok od používateľa jojo44 »

Zdravím potreboval by som pomôcť s pár príkladmi neviem ako sa zbaviť jednej chyby ohľadne zápisu do súboru a pri jednom mi vypisuje error Exitcode 201 aj som sa niečo pokúšal googliť o tom ale podľa toho som neprišiel na nič čo by som mohol mať zle.
Tu sú tie príklady

1. Pascal – textový súbor
Je daný textový súbor vstup2.txt. Napíšte program pomocou ktorého:
- Načítame údaje zo vstupného súboru
- V súbore nahradíme medzery znakom *
- Upravený text uložíme do nového súboru hviezdy.txt a vypíšeme obsah na monitor

Kód: Vybrať všetko

program nacitanie;
uses crt;
Var subor:text;
    novysubor:text;
    s:string[80];
    a:array[1..50] of string;
    pocet,i:integer;
    n,dlzka:integer;
    retazec:string;

 begin
clrscr;
Assign(subor,'C:/vstup1.txt');
Reset(subor);
While (not eof(subor)) do begin
                       Readln(subor,s);
                       (*dlzka:=length(s);*)
                       For i:=1 to 50 do
                       If s[i]=' ' then s[i]:='*';
                       Writeln(s);
                       end;
Assign(novysubor,'C:/hviezdicka.txt');
Rewrite(novysubor);
Writeln(novysubor,s);
close(novysubor);
readln;
end.
tu mi na obrazovku vypíše tú zámenu medzier hiezdičkami ale do súboru mi uloží len posledný riadok.


2. Pascal – štatistické výpočty
V škole zisťujú hmotnosť a výšku žiaka aby zistili ich fyzické zdatnosti. Vytvorte program, ktorý umožní:
- Zadať mená, hmotnosti a výšky žiakov z klávesnice
- Vypočítať priemernú výšku a hmotnosť
- Zistiť meno a výšku najvyššieho a najnižšieho žiaka

Kód: Vybrať všetko

program uloha5;
uses crt;
type meno=array[1..20] of string[9];
vyska=array[1..20] of integer;
hmotnost=array[1..20] of integer;
var a:meno;
b:vyska;
c:hmotnost;
i,j,g,d,min,max,najvyzsi,najnizsi,pp2,n:integer;
f:text;
priemhm,priemvys:real;
pp:string;
begin
clrscr;
assign(f,'C:\mena.txt');
reset(f);
d:=0;
priemhm:=0;
priemvys:=0;
repeat
n:=n+1;
read(f,a[i]);
read(f,b[i]);
readln(f,c[i]);
until eof;
n:=n-1;
repeat
g:=0;
for i:=1 to n do begin
priemhm:=priemhm+b[i];
priemvys:=priemvys+c[i];
end;
priemhm:=priemhm/n;
priemvys:=priemvys/n;


until g=0;

for i:=1 to n do begin
write(a[i]);
write(b[i]);
writeln(c[i]);
end;
writeln('priemerna hmotnost je ',priemhm:6:2);
writeln('priemerna vyska je ',priemvys:6:2);
min:=b[i];
max:=b[i];
for i:=1 to n do
if min>b[i] then
najnizsi:=i;
if max<b[i] then
najvyzsi:=i;

writeln('najnizsi hrac je ', a[najnizsi],' ',b[najnizsi],' ',c[najnizsi]);
writeln('najvyzsi hrac je ', a[najvyzsi],' ',c[najvyzsi],' ',c[najvyzsi]);
readln;
end.
=Exitcode 201

P.S.: ak by ste boli ochotný potrebujem odpoveď čo najrýchlejšie nech sa môžem presunúť k ďalším príkladom..
Ďakujem.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Pascal - pomoc

Príspevok od používateľa audiotrack »

v prvom daj tieto tri riadky:

Kód: Vybrať všetko

Assign(novysubor,'C:/hviezdicka.txt');
Rewrite(novysubor);
Writeln(novysubor,s);
ešte pred ten cyklus, a Writeln(novysubor,s); presuň dovnútra toho cyklu

k druhému: exitcode 201 je chyba keď prešvihneš nejaký rozsah poľa. Poriadne si skontroluj či nezapisuješ mimo pola, teda či nechce zapisovať na index ktorý je väčší ako maximálny deklarovaný index, alebo na záporný index
Gregi
Light Star
Light Star
Príspevky: 224
Registrovaný: 24 mar 2005, 11:34

Re: Pascal - pomoc

Príspevok od používateľa Gregi »

co tak to urobit takto?
Priklad c.1:

Kód: Vybrať všetko

program Hviezdy;
uses Crt;
const
  hviezda: char = '*';
var
  zdroj,ciel: file of char;
  znak: char;

BEGIN
  ClrScr;
  Assign(zdroj,'C:\vstup2.txt');
  Assign(ciel,'C:\hviezda.txt');
  Reset(zdroj);
  Rewrite(ciel);
  while (not Eof(zdroj)) do begin
    Read(zdroj,znak);
    if znak = ' ' then
      Write(ciel,hviezda)
    else
      Write(ciel,znak);
  end;
  Close(ciel);
  ReadLn;

END.
Priklad c.2:

Kód: Vybrať všetko

program Ziaci;
uses Crt;
const
  max_ziakov = 255;
type
  Tziak = record
    meno: string[15];
    hmotnost: Real;
    vyska: Byte;
  end;
var
  ziak: array[1..max_ziakov] of Tziak;
  pocet,najvyssi,najnizsi: Byte;
  i: Integer;
  sum_vyska,sum_hmotnost: Real;

BEGIN
  ClrScr;
  Write('Zadajte pocet ziakov: ');
  ReadLn(pocet);
  for i := 1 to pocet do begin
    Write('Meno ',i,'. ziaka: ');
    ReadLn(ziak[i].meno);
    Write('jeho vaha (kg): ');
    ReadLn(ziak[i].hmotnost);
    Write('a vyska (cm): ');
    ReadLn(ziak[i].vyska);
  end;
  najvyssi := 1;
  najnizsi := 1;
  sum_vyska := ziak[1].vyska;
  sum_hmotnost := ziak[1].hmotnost;
  for i := 2 to pocet do begin
    if ziak[i].vyska > ziak[najvyssi].vyska then
      najvyssi := i
    else
      if ziak[i].vyska < ziak[najnizsi].vyska then
        najnizsi := i;
    sum_vyska := sum_vyska + ziak[i].vyska;
    sum_hmotnost := sum_hmotnost + ziak[i].hmotnost;
  end;
  WriteLn ('Najvyssi ziak je ',ziak[najvyssi].meno,' s vyskou ',ziak[najvyssi].vyska,'cm');
  WriteLn ('Najnizsi ziak je ',ziak[najnizsi].meno,' s vyskou ',ziak[najnizsi].vyska,'cm');
  WriteLn ('Priemerna vyska ziakov je ',(sum_vyska / pocet):4:1,'cm');
  WriteLn ('Priemerna hmotnost ziakov je ',(sum_hmotnost / pocet):4:1,'kg');

END.
Frito22
Expert
Expert
Príspevky: 193
Registrovaný: 05 okt 2005, 15:51
Kontaktovať používateľa:

Re: Pascal - pomoc

Príspevok od používateľa Frito22 »

Zdravim. Potreboval by som poradit ohladom jedoducheho programu v pascale, no ja si stym neviem rady.
Potrebujem napisat program ktory vypise na tlaciarni riadok textu, napr. "Zdravotna poistovna 5/84, 06 945 Zilina
Vedel by dakto helpnut?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Pascal - pomoc

Príspevok od používateľa audiotrack »

osobne by som siahol už po delphi, kde máš unit printer. V pascale by si to musel robiť cez exec (tuším je knižnici dos) a spustiť notepad z ktorého by si to následne tlačil. Komunikovať z pascalu priamo s tlačiarňou bude asi o čosi zložitejšia vec
Frito22
Expert
Expert
Príspevky: 193
Registrovaný: 05 okt 2005, 15:51
Kontaktovať používateľa:

Re: Pascal - pomoc

Príspevok od používateľa Frito22 »

Mam take zadanie maturitne, a v jednej otazke je robit to prave cez pascal, alebo asembler
Napísať odpoveď