Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Vstupní textový soubor 'vstup.txt' obsahuje celá čísla (z rozsahu typu integer) oddělená mezerami a konci řádků. Počet všech čísel není vyšší než 10000, hodnoty se mohou v souboru libovolně opakovat. Určete, kolik různých hodnot se v souboru vyskytuje. Výsledkem výpočtu bude jedno celé číslo, které program vypíše na standardní výstup.
Příklad:
Pro vstupní soubor 'vstup.txt' ve tvaru
15 999 7 -3 7 1 15 15
bude výsledkem číslo 5, neboť v souboru se vyskytuje pět různých hodnot (jsou to čísla 15, 999, 7, -3 a 1).
program ostpost;
type dvojpole=array[1..MaxINT,1..2]of boolean;
tex=text;
var nacteni:tex ;
pole:dvojpole;
a,c,d,e,i:integer;
b:char ;
begin
assign(nacteni,'vstup.txt');
reset(nacteni) ;
begin
repeat
begin
read(nacteni,a) ;
if a =0 then
pole[1,1]:=true
else
if a=abs(a) then
pole[a+1,1]:=true
else
pole[abs(a),2]:=true;
end
until Eof(nacteni);
c:=0 ;
d:=0 ;
for i:=1 to MaxInt do
begin
d:=d+ord(pole[i,1]);
c:=c+ord(pole[i,2]);
e:=c+d;
end;
end;
write(e);
end.a vypisuje mi to že jen jedden výsledek je správně a ostatní špatně tak by mě zajímal váš názor proč by to mohlo házet chyby jelikož já už na nic nemůžu přijít
Offline

Napada me akorat:
Ze nemas na konci close(nacteni);
Anebo - kdyz na vstupu zadas -32768, coz je integer, tak se to nevejde do toho dvojpole a ohlasi chybu
Offline