Háže mi to chybu a moc tomu nerozumím. Je to program na převádění hmotnostních jednotek a nějak to blbne. Byla bych moc ráda za opravu mé práce. Snad to nemám celý blbě. Ukazuje mi to jen 2 chyby, tak nevim. Jo a je to v programu Free Pascal. Předem děkuji všem, kteří se do toho pustí za ochotu a trpělivost. A tady je:
program prevadeni_zakladnich_jednotek_hmotnosti;
uses crt;
var mg,g,dkg,kg,t,q,a,b,c,d,e,f:integer;
co:byte;
begin
clrscr;
writeln('=======================================');
writeln('Program na převádění jednotek hmotnosti');
writeln('=======================================');
writeln('Vysvětlivky: ');
writeln('------------ ');
writeln(' mg = miligram ');
writeln(' g = gram ');
writeln(' dkg = dekagram ');
writeln(' kg = kilogram ');
writeln(' q = metrický cent ');
writeln(' t = tuna ');
writeln('=======================================');
writeln('Vyber číslo počáteční jednotky: ');
writeln('mg....................................1');
writeln('g.....................................2');
writeln('dkg...................................3');
writeln('kg....................................4');
writeln('q.....................................5');
writeln('t.....................................6');
writeln('Zadej číslo od jedničky do šestky podle předchozí tabulky!: ');
read(co);
if co=1 then
writeln('Zadej počáteční hodnotu v mg: ');
read(a);
g:= a DIV 1000;
dkg:= a DIV 10000;
kg:= a DIV 1000000;
q:= a DIV 100000000;
t:= a DIV 1000000000;
writeln(',a,'miligramů je ',g,'gramů, ',dkg,' dekagramů, ',kg,'kilogramů, ',q,'metrických centů a ',t,'tun.');
if co=2 then
writeln('Zadej počáteční hodnotu v g: ');
read(b);
mg:= b*1000;
dkg:= b DIV 10;
kg:= b DIV 1000;
q:= b DIV 100000;
t:= b DIV 1000000;
writeln(',b,'gramů je ',mg,'miligramů, ',dkg,' dekagramů, ',kg,'kilogramů, ',q,'metrických centů a ',t,'tun.');
if co=3 then
writeln('Zadej počáteční hodnotu v dkg: ');
read(c);
mg:= c*10000;
g:= c*10;
kg:= c DIV 100;
q:= c DIV 10000;
t:= c DIV 100000;
writeln(',c,'dekagramů je ',mg,'miligramů, ',g,' gramů, ',kg,'kilogramů, ',q,'metrických centů a ',t,'tun.');
if co=4 then
writeln('Zadej počáteční hodnotu v kg: ');
read(d);
mg:= d*1000000;
g:= d*1000;
dkg:= d*100;
q:= d DIV 100;
t:= d DIV 1000;
writeln(',d,'kilogramů je ',mg,'miligramů, ',g,' gramů, ',dkg,'dekagramů, ',q,'metrických centů a ',t,'tun.');
if co=5 then
writeln('Zadej počáteční hodnotu v q: ');
read(e);
mg:= e*100000000;
g:= e*100000;
dkg:= e*10000;
kg:= e*100;
t:= e DIV 10;
writeln(',e,'metrických centů je ',mg,'miligramů, ',g,' gramů, ',dkg,'dekagramů, ',kg,'kilogramů a ',t,'tun.');
if co=6 then
writeln('Zadej počáteční hodnotu v t: ');
read(f);
mg:= f*1000000000;
g:= f*1000000;
dkg:= f*100000;
kg:= f*1000;
q:= f*10;
writeln(',f,'tun je ',mg,'miligramů, ',g,' gramů, ',dkg,'dekagramů, ',kg,'kilogramů a ',q,'metrických centů.');
repeat until keypressed;
end.
Podle me je blbe tohle:
writeln(',a,'miligramů je ',g,'gramů, ',dkg,' dekagramů, ',kg,'kilogramů, ',q,'metrických centů a ',t,'tun.');
Nema tam nejt ten apostrof a carka na zacatku, melo by to bejt takhle:
writeln(a,'miligramů je ',g,'gramů, ',dkg,' dekagramů, ',kg,'kilogramů, ',q,'metrických centů a ',t,'tun.');
Jj, dík, to by šlo =) Ale ještě bych potřebovala vědět, jak to mám udělat, aby to šlo, když zadám př. číslo 3, tak aby mi to skočilo hned na počítání dkg... teď to jde od začátku: nejdřív musim zadat jedničku, pak se mi tam vypíše, ať zadám hodnotu mg a já jí zadám... vyjede výsledek a řekne mi to, ať zadám hodnotu v dkg a jede to takhle dál a nevím, co dát za funkci, aby to přestalo...program skončí až po převedení tun...takže až na konci...to repeat until keypressed je tam úplně na nic =/ potřebuju ,aby to jelo hned, jak zmáčknu nějaký číslo (zmáčknu 3 - enter - zeptá se mě to na hodnotu dkg - enter - napíšu hodnotu v dkg(proměnnou c) - enter - převede se to/tzn.ukáže výsledky: z dkg na mg,na gramy apod. - enter - konec)...takhle bych to potřebovala, ale, aby to fungovalo pro všechny proměnné a taky se chci zeptat: Jaké jsou pro tyhle proměnné nejvhodnější datové typy (aby mi to počítalo i v desetinných číslech...nebo klidně exponenciální zápis (dala bych tam real, ale nejde mi tam dát a tak tam mám momentálně zatím longint - ten ale neni pro desetinný čísla a když chci např. převést 10000 mg na kg, tak mi to ukáže 0 místo 0,000 001...což chápu, když na to longint neni, ale co teda? real tam nejde, hází mi to milion chyb)... pls. pomozte... vim, že je to dlouhý, ale nevim si fakt rady =/