Zaciatocnicky problem – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zaciatocnicky problem – Pascal – Fórum – Programujte.comZaciatocnicky problem – Pascal – Fórum – Programujte.com

 

pista
~ Anonymní uživatel
14 příspěvků
22. 5. 2007   #1
-
0
-

prosim o radu mam taky banalny problem, v textovom subore mam udaje v takomto tvare:
mo1 +2.3
mo2 -3.5
mo3 -4.1
mo4 +5.6
...
ako mam urobit aby mi do samostatnej premennej nacitalo mo1 potom do dalsej premennej + alebo - a do dalsej to cislo?

Nahlásit jako SPAM
IP: ...–
Dominik0
Super člen
22. 5. 2007   #2
-
0
-

Slo by to treba takto

readln(file,radek);

prvnipolozka=radek[1]+radek[2]+radek[3];
znamenko=radek[4]; { tady nevim , kdybys tam mel mezeru tak tady bude 5, a dalsi cisla by byly +1 }
val(radek[5]+radek[6]+radek[7],cislo,code);

Neni to asi nejefektivnější řešení ale je to to prví co mne napadlo ???
ps: neni to odladeny .

Nahlásit jako SPAM
IP: ...–
pista
~ Anonymní uživatel
14 příspěvků
22. 5. 2007   #3
-
0
-

To don_Dominique:ok diki a jako je to s tym cislom? tomu tvojmu poslednemu riadku moc nerozumiem.

Nahlásit jako SPAM
IP: ...–
22. 5. 2007   #4
-
0
-

ja řešil něco podobného v delphi



readln(file,radek);
for i:=0 to length(radek) do if radek[i]=' ' then begin j:=i; break; end;
mo1:=strToFloat(copy(radek,j+1,length(radek-1));
...a tak dále

sice to vypadá hrozně,ale jde to modifikovat i pro složitější věci a navíc mě elegantnější řešení nenapadlo

Nahlásit jako SPAM
IP: ...–
Laaca0
Stálý člen
22. 5. 2007   #5
-
0
-

Doporučuju spíš tohle:



program Nacitani;
const max = 20;
soubor = 'test.txt';
var cislo:array[1..max] of real;
txt:array[1..max] of string[4];
f:text;
i,j:integer;
begin
Assign(f,soubor);
Reset(f);
i:=0;
while (not Eof(f)) and (i<max) do
begin
i:=i+1;
read(f,txt[i]);
readln(f,cislo[i]);
writeln('text c.',i,': ',txt[i]);
writeln('cislo c.',i,': ',cislo[i]:3:3);
end;
Close(f);
readln;
end.

Nahlásit jako SPAM
IP: ...–
DOS-u-akbar
Dominik0
Super člen
22. 5. 2007   #6
-
0
-

2 pista: Val(S:string;var V:real;code integer);
Prevede Retezec S na cislo a ulozi do V , v případě chyby vrací číslo chyby.
jestli si myslel to radek[5]+.... to ti složí ze znaků to realne číslo ( např "2"+"."+"3"="2.3")

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

Podobná vlákna

Problem s &lt; a &gt; — založil 7raul

Problém — založil Dfire

Problém — založil Ma.ty

Problém v C++ — založil Anonim

Problem — založil roonill

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý