Ukončenie programu v pascale

Programovacie jazyky, rady, poradňa...
qqwertyx
Novice
Novice
Príspevky: 3
Registrovaný: 06 mar 2011, 15:58

Ukončenie programu v pascale

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

Ahoj
mám problém, keď sa snažím ukončiť nejaký program v pascale napríklad zadaním záporného vstupu. Som začiatočník a neviem prísť na to kde robím chybu. Viem, že ten program ešte nie je "odolný" proti zlým vstupom, ale chcel som najskôr spraviť kostru. Tento program mal vypočítať percentuálne vytaženie autobusov, ale ráta do blba a nechce skončiť ani po zadaní -1. Dal som tu oba spôsoby, ktorými som sa to snažil vyriešiť. Vedeli by ste mi nejak poradiť?

Riešenie 1:

Kód: Vybrať všetko

program cestujuci;
const koniec = -1;
var pocetcest,nastupilo, pocetbus : integer;
begin
  writeln ('zadajte pocet cestujucich');
  write ('-1 ukonci vstup');
  pocetcest := 0;
  pocetbus :=0;
  readln (nastupilo);
  while nastupilo <> koniec do
    begin
      pocetcest := pocetcest + nastupilo;
      pocetbus := pocetbus + 1;
      read (nastupilo);
    end;
  if nastupilo = koniec then
    if pocetbus <> 0 then
      writeln  ('priemerne vytazenie :', pocetcest / pocetbus * 45 * 100, '%');
end.


Riešenie 2:

Kód: Vybrať všetko

program cestujuci2;
const maxludi = 45;
      koniec = -1;
type kapacita = koniec..maxludi;
var cestujuci : kapacita;
    cestcelkom, buscelkom : integer;
begin
 write ('vytazenie autobusu');
 write ('zadavajte pocty cestujucich, -1 ukonci');
 cestcelkom := 0;
 buscelkom := 0;
 read (cestujuci);
 while cestujuci <> koniec do
  begin
   cestcelkom := cestcelkom + cestujuci;
   buscelkom := buscelkom + 1;
   read (cestujuci);
  end;
 if buscelkom > 0 then
  write ('priemerne vytazenie',
        round (cestcelkom/buscelkom/maxludi*100),'%')
 else
  write ('nie je co pocitat');
end.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Ukončenie programu v pascale

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

Daj zdrojáky do CODE, lebo takto sa mi to lúštiť nechce.
qqwertyx
Novice
Novice
Príspevky: 3
Registrovaný: 06 mar 2011, 15:58

Re: Ukončenie programu v pascale

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

prepáč, stalo sa... :)
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Ukončenie programu v pascale

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

V prvom skús miesto read() použiť readln()
qqwertyx
Novice
Novice
Príspevky: 3
Registrovaný: 06 mar 2011, 15:58

Re: Ukončenie programu v pascale

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

ďakujem pomohlo, vidím, že sa mi treba vratiť ku kapitole vstupy- výstupy :) ešte raz ďakujem
Napísať odpoveď