Zadejte hledaný výraz...

Rada se zápisem do souboru (Pascal)

Daniel Schramm
verified
rating uzivatele
(5 hodnocení)
11. 12. 2014 16:50:20
Zdravím, do školy mám udělat v Pascalu projekt.
Vybral jsem si že program převádí čísla z desítkové soustavy do dvojkové. Uživatel si také zadá kolik chce čísel naráz převést. V Pascalu mi to v pořádku tyto čísla vypisuje.
Ale potom musím tyto výsledná čísla v dvojkové soustavě vepsat ještě do textového souboru, ale tak jak to mám já tak se mi do textového souboru vepíše jen první číslo z řetězce nul a jedniček a další již nikoliv. Vím že problém bude s tím že to mám ukladaný do řetězce takže do toho souboru se zapíše jen jedno to číslo, Ale nevím jak to napravit, aby se do souboru vepsalo celé binární číslo.
Děkuju za rady! :)
Níže je zdroják:
program prevod_cisel;
uses
type pole=array of integer;
var pole1,pole2:pole;
cislo,i,j,pocet,k:integer;
konec:char;
vysledek:integer;
soubor: Textfile;
begin
Assignfile (soubor, 'text.txt');
rewrite (soubor);
repeat
writeln('Popis: Zadejte cele cislo (0-1000) a program ho nasledne prevede do dvojkove soustavy');
writeln('-------------------------------------------------');
writeln('Zadejte kolik chcete naraz prevest cisel? ');
read (pocet);
for k:=1 to pocet do begin
writeln('Zadejte cislo ktere chcete prevest: ');
readln(cislo);
i:=0;
repeat
i:=i+1;
pole1:=cislo mod 2;
cislo:=cislo div 2;
until cislo=0;
write('Ve dvojkove soustave se cislo zapise: ');
for j:=1 to i do
pole2:=pole1;
for j:=1 to i do
write(pole2);
vysledek:=(pole2);
writeln('-------------------------------------------------');
Append (soubor);
writeln(soubor, vysledek);
end;
writeln('Chcete program ukoncit? Pokud ano stisknete k');
readln(konec);
until ((konec='K') or (konec='k'));
end.
11. 12. 2014 16:50:20
https://webtrh.cz/diskuse/rada-se-zapisem-do-souboru-pascal/#reply1075709
DrKvak
verified
rating uzivatele
22. 4. 2016 20:24:20
Napsal Daniel Schramm;1149025
Zdravím, do školy mám udělat v Pascalu projekt.
Vybral jsem si že program převádí čísla z desítkové soustavy do dvojkové. Uživatel si také zadá kolik chce čísel naráz převést. V Pascalu mi to v pořádku tyto čísla vypisuje.
Ale potom musím tyto výsledná čísla v dvojkové soustavě vepsat ještě do textového souboru, ale tak jak to mám já tak se mi do textového souboru vepíše jen první číslo z řetězce nul a jedniček a další již nikoliv. Vím že problém bude s tím že to mám ukladaný do řetězce takže do toho souboru se zapíše jen jedno to číslo, Ale nevím jak to napravit, aby se do souboru vepsalo celé binární číslo.
Děkuju za rady! :)
Níže je zdroják:
program prevod_cisel;
uses
type pole=array of integer;
var pole1,pole2:pole;
cislo,i,j,pocet,k:integer;
konec:char;
vysledek:integer;
soubor: Textfile;
begin
Assignfile (soubor, 'text.txt');
rewrite (soubor);
repeat
writeln('Popis: Zadejte cele cislo (0-1000) a program ho nasledne prevede do dvojkove soustavy');
writeln('-------------------------------------------------');
writeln('Zadejte kolik chcete naraz prevest cisel? ');
read (pocet);
for k:=1 to pocet do begin
writeln('Zadejte cislo ktere chcete prevest: ');
readln(cislo);
i:=0;
repeat
i:=i+1;
pole1:=cislo mod 2;
cislo:=cislo div 2;
until cislo=0;
write('Ve dvojkove soustave se cislo zapise: ');
for j:=1 to i do
pole2:=pole1;
for j:=1 to i do
write(pole2);
vysledek:=(pole2);
writeln('-------------------------------------------------');
Append (soubor);
writeln(soubor, vysledek);
end;
writeln('Chcete program ukoncit? Pokud ano stisknete k');
readln(konec);
until ((konec='K') or (konec='k'));
end.
Do souboru se ti zapisuje obsah promene 'vysledek': writeln(soubor, vysledek); {proc ne..}
ALE jeji hodnota je: vysledek:=(pole2);
tedy jenom jedna hodnota z pole 'pole2', ktera je pod indexem 'j'
kdezto ty potrebujes zapsat obsah celeho pole do souboru. Takze udelej neco jako
for j=1 to i do
vysledek:= vysledek + pole2;
nebo treba jenom uplne jednoduchou variaci na to vypisovani na obrazovku:
for j:=1 to i do
write(soubor, pole2);
22. 4. 2016 20:24:20
https://webtrh.cz/diskuse/rada-se-zapisem-do-souboru-pascal/#reply1075708
Pro odpověď se přihlašte.
Přihlásit