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