Kezdőoldal » Számítástechnika » Programozás » Free pascal-ban hogy lehet...

Free pascal-ban hogy lehet egy számolás eredményét lementeni . Txt file-ba?

Figyelt kérdés

régebben írtam egy prím szám kereső programot és azt szeretném ha a prímszámokat leírná egy jegyzettömbbe.

itt a programom amivel vmi nincs rendben :



program Pelda09;

var f:text;

s:string;

begin

assign(f,'szoveg.txt');

{$I-}

reset(f);

{$I+}

if IOResult<>0 then begin

writeln('Hiba: nincs meg a file.');

halt;

end;

while not eof(f) do begin

readln(f,s);

writeln(s);

end;

close(f);

end.


2010. szept. 2. 16:28
 1/9 ejbenjaro ***** válasza:
A programod, amit ide beírtál, csupán olvasni próbál a szoveg.txt nevű fájlból, aminek a program könyvtárában kellene lennie. Ráadásul ez a program semmiféle Prímszám keresést nem végez. Szóval a hiba leginkább ott van, hogy egyrészt nincsen prímszámod, ami bele lehetne írni egy szövegfáljba, másrészt meg a programod nem írja, hanem olvassa a szövegfájlt.
2010. szept. 2. 17:45
Hasznos számodra ez a válasz?
 2/9 ejbenjaro ***** válasza:
Kissé mókás azért, hogy egy másik kérdésben ( http://www.gyakorikerdesek.hu/szamitastechnika__programozas_.. ) válaszként kapott kódot beteszel ide, mintha te követted volna el, adsz mellé valami szöveget, hogy hátha lesz valaki aki megcsinálja helyetted a feladatot...
2010. szept. 2. 17:50
Hasznos számodra ez a válasz?
 3/9 A kérdező kommentje:

uff.. :D most veszem észre nem ezt akartam ide másolni ! és igen én válaszoltam neki. itt van amit akartam:


program primszam;

uses crt;

const n=1000;

var d,e,h,i:integer;

f:text;

begin

clrscr;

for i:=1 to n do begin

e:=0;

for d:=1 to n do begin

for h:=1 to i do begin

if i/d=h then begin

e:=e+1;

if e=2 then begin

assign(f,'prim.text');

rewrite(f);

if ioresult<>0 then begin

writeln('hiba a fájl megnyitásával!');

halt;

end;

write(f,i);

close(f);

end;

end;

end;

end;

end;

readln;

end.


elnézést csak megszoktam hogy másolás ctrl c és a free pascalban ez nem működik. Szóval még egyszer megkérdezem hogy valaki nem tudja mi a baj ezzel a programmal? a free pascal nem dobta ki hogy vmit nem ért vagy vmi elírtam stb, és nem indul el.

2010. szept. 2. 18:08
 4/9 ejbenjaro ***** válasza:

Na, így már picit másabb a felállás :).

Az alábbi kód pont azt csinálja amit szeretnél(elvileg) és rövidebb is némiképp:

program primszam;


uses crt;


const

n=1000;


var

d,e,i:integer;

f:text;


begin

clrscr;

Assign(f,'Prim.txt');

{$i-}

ReWrite(f);

{$i+}

if IOREsult<>0 then

begin

writeln('HIBA!!!'+#10#13+'A fájl, Prim.txt, nem hozható létre!');

writeln('A program futása megszakadt...');

Halt(1);

end;


for i:=1 to n do

begin

e:=0;

for d:=1 to i do

begin

if (i mod d)=0 then inc(e);

end;

if e=2 then writeln(f,i);

end;

Close(f);

writeln('Elkészültem! A kilépéshez nyomd meg az <ENTER> billenytűt...');

readln;

end.

2010. szept. 2. 19:27
Hasznos számodra ez a válasz?
 5/9 A kérdező kommentje:
köszönöm a válaszodat és tényleg működött! :) Még egyszer köszi!
2010. szept. 2. 20:40
 6/9 A kérdező kommentje:

program primszam;

uses crt;


const

n=1000;


var

d,e,i,h:integer;

f:text;


begin

clrscr;

Assign(f,'Prim.txt');

{$i-}

ReWrite(f);

{$i+}

if IOREsult<>0 then

begin

writeln('HIBA!!!','prim.txt',' nem hozható létre!');

writeln('A program futása megszakadt...');

Halt(1);

end;


for i:=1 to n do

begin

e:=0;

for d:=1 to n do

begin

for h:=1 to i do

begin

if i/d=h then begin

e:=e+1;

end;

if e=2 then writeln(f,i:10);

end;

end;

end;

Close(f);

writeln('Elkészültem! A kilépéshez nyomd meg az <ENTER> billenytűt...');

readln;

end.


így is jó de lassabb. Pedig nem voltam messze attól hogy magamtól rájöjjek :(

2010. szept. 2. 21:01
 7/9 anonim válasza:
billenytűt?:D nem véletlenül billentyűt?:)
2012. febr. 21. 19:09
Hasznos számodra ez a válasz?
 8/9 anonim válasza:
hé és hogy indítja el a számolást?
2012. febr. 21. 19:16
Hasznos számodra ez a válasz?
 9/9 anonim válasza:
miért csak 32767 ig számol? tovább akarnám errort ír akár mit írok:O
2012. febr. 21. 19:35
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!