Pomoc s turbopascalom

Prostor pro osobní dotazy, které nelze jinde dopasovat, případně které přímo nesouvisí s bastlením či elektrotechnikou obecně (protože i bastlíři jsou většinou normální lidé, co nedrží v ruce štípačky a šroubovák 24 hodin denně). Neslouží pro přeposílání obecně známých informací z komerčních webů.

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
mety
Příspěvky: 634
Registrován: 06 bře 2005, 01:00
Bydliště: Planeta Zem

Pomoc s turbopascalom

#1 Příspěvek od mety »

Zdravim všetkych.
Potreboval by som pomôcť s turbopascalom.
Konkretne ide o premennu "b" v priloženom kode programu.
Po spustení programu sa hodnota premenny "b" výpíše viac krát ta ista pod seba.
Ja ju potrebujem vypísať len raz.
Neviete niekto pomôcť kde mam chybu?
Lebo keď dam vypisať hodnotu "oneskorenie" priamo:
writeln(oneskorenie ) vypiše sa hodnota správne len raz.
Ako náhle priradim hodnotu oneskorenie premennej
b:=(oneskorenie) , vypiše mi to viac krát pod seba :(
Tu je samotný program:

Kód: Vybrat vše

Program test;
uses crt;
var a:word;
    i:byte;
    c,b:word;

const oneskorenie : array [1..165] of word =
(5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
6,6,6,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,
8,9,9,9,9,9,9,9,10,10,10,10,10,10,11,11,11,
11,12,12,12,12,13,13,13,13,14,14,14,14,14,15,
15,15,15,16,16,16,16,17,17,17,18,18,18,19,19,
19,20,20,20,21,21,22,22,23,23,24,24,25,25,26,
26,27,27,28,28,29,29,30,30,31,31,32,33,33,34,
35,36,36,37,38,39,40,41,42,43,44,45,46,48,49,
50,52,54,55,57,59,61,63,66,68,71,74,77,80,84,
88,92,97,102,108,115,122,130,139,150,163,177,
185,194,204,215,227,241);

const ctIN : array [1..166] of word =
(100,102,103,105,107,109,110,111,112,113,114,
115,117,118,119,120,121,122,124,125,126,128,
129,130,132,133,135,136,138,140,141,143,145,
146,148,150,152,154,156,158,160,162,164,167,
169,171,174,176,179,182,185,188,190,194,197,
200,203,207,211,214,218,222,226,231,235,240,
245,248,251,254,258,261,264,268,271,275,279,
283,287,291,296,300,305,309,314,319,324,330,
335,341,347,353,359,366,373,380,387,395,403,
411,420,429,435,441,448,455,462,469,476,484,
492,500,508,517,526,536,545,556,566,577,588,
600,612,625,638,652,667,682,698,714,732,750,
769,789,811,833,857,882,909,938,968,1000,1034,
1071,1111,1154,1200,1250,1304,1364,1429,1500,
1579,1667,1765,1875,2000,2143,2308,2500,2609,
2727,2857,3000,3158,3333) ;


begin
clrscr;

write('Zadaj hodnotu:');
readln(a);

for i:=1 to 165 do
begin
if (a>=ctIN [i]) AND (a<ctIN [i+1]) then b:=(oneskorenie[i]) ;
writeln(b);
end;






repeat until keypressed;

end.

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#2 Příspěvek od ZdenekHQ »

To je logický, k "i" přičítáš jen jedničku, zatímco interval máš třeba 5. Nastav si po výpisu nějakej příznak (třeba d:=1) a dej to jako podmínku pro writeln.

write('Zadaj hodnotu:');
readln(a);
d:=0;

for i:=1 to 165 do
begin
if (a>=ctIN ) AND (a<ctIN [i+1]) and (d=0) then
begin
b:=(oneskorenie) ;
writeln(b);
d:=1;
end;

end;
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

Uživatelský avatar
mety
Příspěvky: 634
Registrován: 06 bře 2005, 01:00
Bydliště: Planeta Zem

#3 Příspěvek od mety »

Diky za radu , funguje to :)

Uživatelský avatar
pocitujlasku
Příspěvky: 1757
Registrován: 12 pro 2005, 01:00

#4 Příspěvek od pocitujlasku »

este drobnost, ktora mi hned udrela do oci:

Kód: Vybrat vše

repeat until keypressed; 
zbytocne vytazi procak na 100%, namiesto toho pouzi

Kód: Vybrat vše

readln;
No vidis, a tak si sa bal

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#5 Příspěvek od ZdenekHQ »

Když jsme u toho zatížení, je tam možnost použít cyklus

i:=0;
repeat
i:=i+1;

...

until (d=1) or (i=165);

takže to skončí hned, jak to najde správnou hodnotu.
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

Odpovědět

Zpět na „Nezařaditelné“