Kérjünk be 10 db értéket, és határozzuk meg (5,10) tartományba eső értékek összegét. ezt hogy kell megcsinálni?
Algoritmus:
bekérsz tömbbe 10 számot, elindítasz egy ciklust, ami kezdettől-végig lefut a tömbön, majd a cikluson belül egy változóba összeadod a tömb[i] elemét.
for(i:=5 to 10){
ertek := ertek+tomb[i];
}
Pascal-ban gyorsan összegányolva:
Program Bekeres;
var
i: integer;
ertek, osszeg: real;
begin
osszeg:=0;
for i:=1 to 10 do
begin
write('Add meg a ',i,'. számot: ');
readln(ertek);
if ((ertek>5) and (ertek<10)) then osszeg:=osszeg+ertek;
end;
writeln('Összeg:',osszeg:10:2);
end.
Megj.:
A (5,10) nyílt intervallumot jelent, így 5 és 10 kizárva.
Azonban [5,10] zárt intervallum esetén az egyenlőség is megengedett lenne.
Talán ezt osszeg:=osszeg+ertek; kijavítanám Inc(osszeg, ertek) a szépség miatt - picit a C felé hajaz +=, de használjuk ki alap Pascal adta lehetőségeket - és ha csak nem 13 karakter hosszon - miért is, 10 * 10 = 100 - akarod kiíratni az eredményt, a tizedesekkel együtt akkor felesleges a osszeg:10:2. Ha osszeg:0:2 írsz akkor is az egészek kiírásra kerülnek és tizedesek szintén két jegyig.
Nem kötekedésként írtam, csak nekem a Pascal a szívem csücske és szeretném ha mindenki aki ebben a nyelvben ír programokat 'szépet' adjon ki a kezéből.
SimkoL:
Kár hogy a rendszer nem enged javítani, mert beleírnám a javaslatokat.
Gondolkodtam még a BASIC-en is, de kiderülhet, hogy C++ vagy C# a cél...
import sys
print sum([int(x) for x in filter(None, sys.stdin.read().split(' ')) if 10 > int(x) > 5])
Windows PowerShell:
$Osszeg = 0;
for ($i = 5; $i -le 15; $i++) {
$Osszeg += $i;
}
Write-Host $Osszeg;
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!