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
Dobrý den,
přemýšlím nad tím, v čem pořád dělám chybu.
(chci načíst čísla z textového souboru vstup.txt a uložit si je do pole)
Mám takovýto začátek.
var f: text; cislo: array[1..10000] of integer; i,k,celkem,pocet: integer; begin assign(f, 'vstup.txt'); {načtení souboru} reset(f); i:=1; while not eof(f) do {načtení čísel do pole} begin while not eoln(f) do begin read(f, cislo[i]); i:=i+1 end; readln; end; close(f);
Pořád však nemůžu přijít na to, co je na tom špatně. V podstatě:
1) jako "proměnnou" budu mít soubor typu text ---> první řádek
2) potom proměnné typu text přiřadím soubor vstup.txt pomocí assign(f,'vstup.txt')
3) pomocí reset(f) načtu soubor.
4) dokud nedojdu na konec souboru, provádím - dokud nedojdu na konec řádku, zapisuji čísla, pak skáču na další řádek atd.
5) zavírám program, čísla mám uložené v poli.
Nicméně, proč to není správně?
Děkuji, freedy
Offline
↑ Freedy:
Už je to dlouho co jsem dělal v Pascalu a teď tu nemám překladač, napiš co je přesně za problém. Nejde to přeložit nebo to dělá něco co nechceš? Takhle na první pohled bych myslel, že se to bude bránit ze souboru text načítat čísla (integer). Mohlo by být potřeba načíst char a ten pak zkonvertovat na integer. Ale jak říkám, můžu se plést.
Offline
↑ LukasM:
No problém je takový.
Jediné co potřebuji, je načíst ze souboru vstup.txt všechna čísla oddělená mezerou.
Soubor vstup.txt může vypadat třeba takto
1 5 34 2
8 19 13 22 55
1 2
A já potřebuji přečíst tyto čísla a postupně dosadit do hodnot cislo[1]=1, cislo[2]=5 ... cislo[11]=2.
Jenže tento začátek to zřejmě neudělá a já pořád nechápu proč :(
Offline
ahoj ↑ Freedy:,
z textového souboru nemůžeš číst číslo, tj. nelze
read(f, cislo[i]);
Musíš přečíst posloupnost znaků, kterou uložíš do řetezce, a ten pak musíš na číslo převést pomocí funkce StrToInt resp. StrToFloat.
Offline