Program číta čísla zo súboru až pokiaľ nenarazí na dve nuly za sebou

Delphi & Pascal (česká wiki)
Přejít na: navigace, hledání
Kategórie: Zadání z Pascalu

Program: Maxpostu.pas
Soubor exe: Maxpostu.exe
Potřebné: Maxpostu.txt

Program číta čísla zo súboru až pokiaľ nenarazí na dve nuly za sebou. Z načítaných čísel potom určí maximálne číslo.
{ MAXPOSTU.PAS              Copyright (c) TrSek alias Zdeno Sekerak }
{ Program cita cisla zo suboru az pokial nenarazi na dve nuly za    }
{ sebou. Z nacitanych cisel potom urci maximalne cislo.             }
{                                                                   }
{ Datum:20.01.2005                            http://www.trsek.com  }
 
program maximalna_postupnost;
uses crt,dos;
 
var vmax:integer;       { maximalne cislo }
    vdlz:integer;       { maximalna dlzka }
    max:integer;        { maximalne cislo vramci postupnosti }
    dlz:integer;        { dlzka aktualnej postupnosti }
 
    f:file of byte;     { pre pracu so suborom }
    konc:boolean;       { ak pride 00 nastavi na konc }
    cislo:byte;         { cislo precitane zo suboru }
 
begin
  writeln('Citam subor maxpostu.txt');
  assign(f,'maxpostu.txt');
  reset(f);
 
  konc:=false;
  cislo:=0;
 
  while(not(eof(f) or konc)) do begin
 
    { koniec postupnosti }
    if(cislo=0) then
    begin
      { splnuje podmienku maximalnosti }
      if(dlz>vdlz) then begin
        vdlz:=dlz;
        vmax:=max;
      end;
 
      max:=0;
      dlz:=0;
    end;
 
    read(f,cislo);
    cislo:=cislo-ord('0');            { aby to boli cisla 0..9 nie 48..57 }
 
    { prisli 2 nuly za sebou }
    if((cislo=0) and (dlz=0))then
      konc:=true;
 
    { maximalne cislo vramci postupnosti }
    if(cislo>max) then
       max:=cislo;
 
    inc(dlz);
  end;
 
  close(f);
 
  { vypiseme vysledok }
  writeln('Maximalne cislo je ',vmax,'. Postupnost bola dlha ',vdlz,' cisel.');
  ReadLn;
end.