Valaki aki ért pascalhoz segítene? Egy eléggé """"""könnyű"""""" programot kell megírni, de nem tudok hogy kezdjek neki.
Egy olyan program, amely bekéri a felhasználótól a sorozat első elemét, azt, hogy mennyivel nő a sorozat és azt, hogy hány tagja van a sorozatnak. Eredményül a sorozat elemeinek összegét adja.
Pl.:
A sorozat: 2, 5, 8, 11, 14
A felhasználó megadja:
Első elem?: 2
Mennyivel nő?: 3
Hány tagja van?: 5
Program visszaadja az elmek összegét (2+5+8+11+14=40)
Előre is köszi a segítséget!
Program sorozat;
Var
hany, elso, mennyivel,osszeg : Longint;
i : Byte;
begin
WriteLn(#13#10,'Első elem: ');
ReadLn(elso);
WriteLn(#13#10,'Mennyivel nő : ');
ReadLn(mennyivel);
WriteLn(#13#10,'Hány tagja van : ');
ReadLn(hany);
osszeg:=0;
osszeg:=osszeg+elso;
WriteLn('A sorozat:');
write(elso,',');
i := 1;
While (i < hany) do
begin
inc(elso,mennyivel);
osszeg:=osszeg+elso;
write(elso,',');
inc(i);
end;
writeln;
writeln('elemek összege:',osszeg);
ReadLn;
end.
#1 vagyok.
Tisztában vagyok azzal, hogy amit alkottam az nem túl szép, sokkal szebben is kivitelezhető lett volna, azon voltam, hogy az elvet értse meg a programban. Esztétikai hiba továbbá, hogy a sorozat utolsó eleme után is , van.
Ne tekintsd kukacoskodásnak, de ha már az elso változót az Inc eljárással növelted, akkor az osszeget is azzal illet volna, valamint elég lett volna osszeg:=elso; és nem kellet volna előtte osszeg:=0;
Valamint a vesszőparipám a kis és nagybetűk. Egy kód legyen a szemnek is tetszős. program, var, while, begin, end .... a foglalt szavak kisbetűsek, bár sajnos a Free Pascal fejlesztői sokszor felrúgják a példákban, de ha hozzászoksz a C alapú nyelvekben nem fogod megszívatni magad :)
#1 programja módosítva:
Program sorozat;
Var
hany, elso, mennyivel, osszeg, i : Longint;
begin
Write('Első elem: '); ReadLn(elso);
Write('Mennyivel nő: '); ReadLn(mennyivel);
Write('Hány tagja van: '); ReadLn(hany);
osszeg:=0;
WriteLn('A sorozat:');
for i:= 1 to hany do
begin
Write(elso);
if i < hany then Write(', ');
Inc(osszeg,elso);
Inc(elso,mennyivel);
end;
WriteLn;
WriteLn('Az elemek összege: ', osszeg);
ReadLn;
end.
Megjegyzés:
Mivel osszeg nulla értékkel jön létre, az osszeg:=0; sor elhagyható, de más nyelvben problémát okozhat, ha nem inicializálod a változót. Az i-ből szintén longintet csináltam. Ha már a hany, vagyis a határérték az lett, akkor elvárható, hogy a ciklusváltozóba is beleférjen...
Az összeget kiszámíthatod a következő képlettel is:
darab*(2*elso+mennyivel*(darab-1))/2
Köszönöm szépen a válaszokat!
...Amúgy a "program _" után nem kell az "uses crt;"??
Csak ha ezeket használod:
Crt változók:
CheckBreak: Boolean;
CheckEOF: Boolean;
DirectVideo: Boolean;
CheckSnow: Boolean;
LastMode: Word;
TextAttr: Byte;
WindMin: Word;
WindMax: Word;
Crt függvények és eljárások:
AssignCrt
ClrEol
ClrScr
Delay
DelLine
GotoXY
HighVideo
InsLine
KeyPressed
LowVideo
NormVideo
NoSound
ReadKey
Sound
TextBackground
TextColor
TextMode
WhereX
WhereY
Window
Oh köszi...
Amúgy ti programozók is vagytok, vagy melótoknak van köze a programozáshoz, vagy csak úgy....értetek hozzá?
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!