Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: Faito PASCAL klausimai
Parašė Faitas.· 2011 Kov. 16 21:03:23
#1
Sveiki, pradėjau ciklą
FOR ir nelabai man čia gaunasi. Gal kas paaiškintumėt kaip ten kas? Kiek suprantu, tai:
for i := 1 to n do
begin
sakiniai
. . .
end;
i kintamasis yra pradinė reikšmė, o n kintamasis yra galinė reikšmė? :?
Redagavo Faitas.· 2011 Kov. 16 21:03:10
Parašė s1Nk· 2011 Kov. 16 21:03:52
#2
Taip, for naudojamas kai žinai būtent kiek, ciklas turės kartu suktis. Tas n kintamojo reikšmė kaškur turi būt priskirta, ar ivedama.
Parašė Faitas.· 2011 Kov. 16 21:03:28
#3
Aišku, o dabar pavyzdžiui norėčiau ciklą padaryti, kad skaičių pakeltų kažkuriuo laipsniu? Galėtum, gal kokį pavyzdį parašyti? ?|
Parašė bruzgis· 2011 Kov. 16 22:03:31
#4
//Keliam laipsniu
program laipsnis;
var i, sk, laips, ats : integer;
begin
WriteLn('Iveskite skaiciu');
ReadLn(sk);
WriteLn('Kokiu laipsniu kelsime?');
ReadLn(laips);
//priskiriam pradine reiksme atsakymui
ats := 1;
//sukam cikla
i := 0;
while(i < laips) do
begin
i := i+1;
ats := ats*sk;
end;
writeln('Gautas rezultatas = ', ats);
//paprastesnis variantas nesukant ciklo
//ats := sk**laips;
//writeln('Gautas rezultatas = ', ats);
Readln();
end.
ir variantas su for
//Keliam laipsniu
program laipsnis;
var i, sk, laips, ats : integer;
begin
WriteLn('Iveskite skaiciu');
ReadLn(sk);
WriteLn('Kokiu laipsniu kelsime?');
ReadLn(laips);
//priskiriam pradine reiksme atsakymui
ats := 1;
//sukam cikla
for i:=1 to laips do
begin
ats := ats*sk;
end;
writeln('Gautas rezultatas = ', ats);
//paprastesnis variantas nesukant ciklo
//ats := sk**laips;
//writeln('Gautas rezultatas = ', ats);
Readln();
end.
Redagavo bruzgis· 2011 Kov. 16 22:03:18
Parašė Faitas.· 2011 Kov. 17 19:03:08
#5
Dėkui
chipass ;) Padariau keleta programų su pascal'iu:
Olimpiados (kas ketverius metus):
program olimpiada;
var i, s : longint;
begin
s := 0;
for i := 1896 to 2011 do
begin
if i mod 4 = 0 then
begin
s := s + 1;
WriteLn( i , 'm.' , ' ivyko ' , s , ' olimpiada' );
end;
end;
WriteLn( '=======================================' );
WriteLn( 'Jau ivyko ' , s , ' olimpiada' );
Readln;
end.
Visi dviženkliai skaičiai kurie dalijasi iš savo skaitmenų sumos:
program Visi_dvizenkliai_skaiciai;
var i, d, n : integer;
a, b, sum : integer;
begin
d := 0;
n := 0;
for i := 10 to 99 do
begin
a := i div 10;
b := i mod 10;
sum := a + b;
if i mod sum = 0 then d := d + 1
else n := n + 1;
end;
WriteLn( d , ' dviženkliai(-ių) skaičiai(-ių) dalinasi iš jų skaitmenų sumos' );
WriteLn( n , ' dviženkliai(-ių) skaičiai(-ių) nesidalinasi iš jų skaitmenų sumos' );
Readln;
end.
Parašė Faitas.· 2011 Kov. 17 20:03:00
#6
Jau perėjau prie while.
Kiek supratau, tai while ciklas sukasi tiek kartų kol sąlyga (pvz: i < 10) yra teisinga
(TRUE), o kai sąlyga (pvz: i < 10) yra neteisinga
(FALSE), tai ciklas nebesisuka ir pereina prie tolimesnio programos vykdymo? Ar ne taip?
P.S - Ir jei galit kokį pavyzdį numeskit :) Ačiū :p
Parašė Žmogus· 2011 Kov. 26 15:03:49
#7
Oj while mano vienas nemėtgtamiausiu ciklų ;\
Jis skirasi nuo for, kad reikia parašyti pabaigą, kad pvz jei vykdom iki 10 ciklą, tai ciklo gale reikia urodyti, kad kiekviena kartą jis mažėtu, nes taip bus amžinas ciklas
Redagavo Žmogus· 2011 Kov. 26 15:03:51