Pereiti prie turinio

Rekomenduojami pranešimai

Reikia parašyti programą, atspausdinančia tuos triženklius skaičius, kurie dalijasi iš visų savo skaitmnų.

 

program trizenklis;

var i,i1,i2,i3:integer;

begin

Write('trizenkliai skaiciai kurie dalijasi is visu savo skaitmenu: ');

For i:=100 to 999 do begin

i1:=i mod 10;

i2:=i div 10 mod 10;

i3:=i div 100;

if (i mod i1=0) and (i mod i2=0) and (i mod i3=0) then writeln(i);

end;

Readln;

end.

 

 

Kur klaida?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Va kažką pataisiau, gal gerai

program trizenklis;
var i,i1,i2,i3:integer;
begin
Write('trizenkliai skaiciai kurie dalijasi is visu savo skaitmenu: ');
For i:=100 to 999 do begin
i1:=i mod 10;
i2:=i div 10 mod 10;
i3:=i div 100;
if (i1=0) or (i2=0) or (i3=0) then write('')
							 else if (i mod i1=0) and (i mod i2=0) and (i mod i3=0) then writeln(i);
end;
Readln;
end.

O ta klaida buvo, jog dalyba iš nulio negalima ;]

Nuoroda į pranešimą
Dalintis kituose puslapiuose

program trizenklis;

var i,i1,i2,i3:integer;

begin

Write('trizenkliai skaiciai kurie dalijasi is visu savo skaitmenu: ');

For i:=100 to 999 do begin

i1:=i mod 10;

i2:=i div 10 mod 10;

i3:=i div 100;

if (i1<>0) and (i2<>0) and (i3<>0)

then if (i mod i1=0) and (i mod i2=0) and (i mod i3=0) then writeln(i);

end;

Readln;

end.

 

 

EDIT: Ech, pavėlavau. :P

Redagavo Deaw
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tenka vėl prašyti jūsų pagalbos.

 

 

Petraičių šeima 2005m. iš banko paėmė 20 000Lt paskolą. Bankas ima 5% metinių palūkanų. Per M metų Petraičiai planuoja pinigus su palūkanomis bankui gražinti. Mama Petraitė sudarė pinigų gražinimo grafiką: kiekvieną lyginį mėnesį yra įnešti po 250Lt, kiekvieną nelyginį mėnesį įnešti po 20Lt daugiau nei yra inešta iki tol. Ar per M metų Petraičiai gražins bankui pinigus? Parašykite programą.

M - metų skaičius.

 

Bandžiau kažką daryti, bet jaučiu prigrybavau, nes kiek metų be įvesčiau rašo, kad negražins...

 

program bankas;

var sk,p:real;

men,n,y:longint;

begin

WriteLn('Iveskite metu skaiciu');

read (n);

sk:=0;

For n:=1 to n do begin

men:=n*12;

if men mod 2=0 then sk:=sk+250 else sk:=sk+sk+20;

end;

p:=n*((20000/100)*5);

if sk>=p then writeln ('Pertraiciai grazins pinigus') else writeln ('pertraiciai negrazins pinigu');

Readln;

end.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
For n:=1 to n do begin  //čia yra durnas ciklas

 

aš daryčiau taip

For men :=1 to n*12 do begin
 if men mod 2=0 
 then .....		 //lyginis mėnesis
 else .....		 //nelyginis mėnesis
  .....
end;

 

Vistiek gaunasi, kad visada gražins pinigus, o šiaip paskaičiavau, kad per metus gražina apie 17k. tai po metų turėtu negražinti skolos. Yra dar klaidų ;/

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Vistiek gaunasi, kad visada gražins pinigus, o šiaip paskaičiavau, kad per metus gražina apie 17k. tai po metų turėtu negražinti skolos. Yra dar klaidų ;/

kiek pinigu reikes grazinti turetum skiciuoti pagal tokia formule

p = 20000 * (1 + 0.05)^n (^n reiškia pakleti n laipsniu), paskalyje atrodys kiek kitaip, bet manau sugebėsi pats pasirašyti.

Redagavo Lazius
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Mano variantas B-)

 

program paskola;
var sk, skola : real;
	i, m, n, k : longint;
begin
	k := 0; n := 1;
	writeln('Iveskit metu skaiciu');
	read(m);
	n := 12 * m;
	for i := 1 to n do
		begin
		if i mod 2 = 0 then
		k := k + 250;
		if i mod 2 <> 0 then
		k := k + k + 20;
		end;
	skola := (m * ((20000/100) * 5)) + 20000;
	if k >= skola
		then writeln('Petraiciai skola grazins')
		else writeln('Petraciai negrazins skolos');
	Readln;
end.

 

p.s. jei teisingai suprantu metinių palūkanų terminą :) Laziau, juk metinės palūkanos ir sudėtinės ne tas pats, ar klystu? ;]

 

p.s.2. trops > buvai pamiršęs pridėt 20000 paskolos litukų ;] juk ne vien palūkanas grąžint reiks.

Redagavo kntz
Nuoroda į pranešimą
Dalintis kituose puslapiuose
Mano variantas B-)

 

program paskola;
var sk, skola : real;
	i, m, n, k : longint;
begin
	k := 0; n := 1;
	writeln('Iveskit metu skaiciu');
	read(m);
	n := 12 * m;
	for i := 1 to n do
		begin
		if i mod 2 = 0 then
		k := k + 250;
		if i mod 2 <> 0 then
		k := k + k + 20;
		end;
	skola := (m * ((20000/100) * 5)) + 20000;
	if k >= skola
		then writeln('Petraiciai skola grazins')
		else writeln('Petraciai negrazins skolos');
	Readln;
end.

 

p.s. jei teisingai suprantu metinių palūkanų terminą :) Laziau, juk metinės palūkanos ir sudėtinės ne tas pats, ar klystu? ;]

 

p.s.2. trops > buvai pamiršęs pridėt 20000 paskolos litukų ;] juk ne vien palūkanas grąžint reiks.

 

Jūsų abiejų variantai teisingi :). Dėkuj

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 3 savaičių...

program pirmas_variantas;

var n,k,p:real;

begin

WriteLn('Iveskite obuoliu skaiciu');

read (n);

while n>3 do begin

p:=n/100*20;;

n:=n-p;

writeln ('suvalge obuoliu ',p:2:2);

writeln ('liko obuoliu ',n:2:2);

if n<3 then begin

writeln ('suvalge obuoliu ',n:2:2);

writeln ('obuoliu nebera');

end;

end;

 

Readln;

end.

 

 

Kaip cia ta "trunc" dabar padaryti?

SALYGA:

post-6670-1224180912_thumb.jpg

Redagavo trops
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Man atrodo ne visai tinkamai sąlygą supratai, nes neatsižvelgei į tai, kad jei p gauni mažiau už 3, tai jis vistiek suvalgo tris obuolius, nebent jų yra mažiau likę. Tuo atveju jis suvalgo visus likusius. Atrodytų maždaug taip: ;)

program pirmas_variantas;
var n, p:integer;
begin
WriteLn('Iveskite obuoliu skaiciu');
readln (n);
while n>0 do
begin
p:=trunc(n/100*20);
if (p < 3) then
	if  (n >= 3) then p := 3
				 else p := n;
n:=n-p;
writeln ('suvalge obuoliu ',p);
if n > 0
	then writeln ('liko obuoliu ',n)
	else writeln ('obuoliu nebera');
end;
Readln;
end.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Dėkuj, turiu dar viena kurio visaj nesuprantu ;)

 

program antras_variantas;

var n,k,r,p,o,w:real;

begin

WriteLn('Iveskite laimeta suma, procentus valstyvei, kasmetines islaidas');

read (n,k,r);

p:=n -(n/100*k);

while p>r do begin

For p:=1 to 10 do begin

o:=p+(p/100*6);

p:=o-r;

w:=???????????????????????;

writeln ('isleista pinigu ',w:2:2);

writeln ('liko pinigu ',p:2:2);

end;

if n<>0 then writeln ('pinigu nebera');

Readln;

end.

 

Čia pilna klaidų.. Kaip w rasti? :D

post-6670-1224182086_thumb.jpg

Nuoroda į pranešimą
Dalintis kituose puslapiuose
program antras_variantas;
var n,k,r,p,o,w:real;
i: integer;
begin
WriteLn('Įveskite laimėtą sumą, procentus valstybei, kasmetines išlaidas');
readln (n,k,r);
p:=n -(n/100*k);
For i:=1 to 10 do
	begin
		writeln (i, ':');
		if p < r then
			begin
				writeln ('Išleista pinigų: ',p:2:2);
				writeln ('Pinigų nebėra.');
				break;
			end
		else begin
				writeln ('Išleista pinigų: ',r:2:2);
				p:=p-r;
				writeln ('Liko pinigų: ',p:2:2);
				p:=p+(p/100*6);
			end;
	end;
Readln;
end.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
program antras_variantas;
var n,k,r,p,o,w:real;
i: integer;
begin
WriteLn('Įveskite laimėtą sumą, procentus valstybei, kasmetines išlaidas');
readln (n,k,r);
p:=n -(n/100*k);
For i:=1 to 10 do
	begin
		writeln (i, ':');
		if p < r then
			begin
				writeln ('Išleista pinigų: ',p:2:2);
				writeln ('Pinigų nebėra.');
				break;
			end
		else begin
				writeln ('Išleista pinigų: ',r:2:2);
				p:=p-r;
				writeln ('Liko pinigų: ',p:2:2);
				p:=p+(p/100*6);
			end;
	end;
Readln;
end.

 

 

Sakė daryti su While ciklu, bėja ta išleista pinigų suma manau turi būti suma kurią įvedi bet prie jos dar reikia pridėti k- procentus kuriuos duoda bankas palūkanų.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Sakė daryti su While ciklu, bėja ta išleista pinigų suma manau turi būti suma kurią įvedi bet prie jos dar reikia pridėti k- procentus kuriuos duoda bankas palūkanų.
Man tai kažkaip iš sąlygos atrodo, kad jis išleidžia tiesiog R litų, o tos palūkanos pasilieka sąskaitoje. ;)

Bet jei darant taip, kaip Tu sakai, tai būtų taip:

program antras_variantas;
var n,k,r,p,o,w,isleista:real;
i: integer;
begin
WriteLn('Įveskite laimėtą sumą, procentus valstybei, kasmetines išlaidas');
readln (n,k,r);
p:=n -(n/100*k);
i := 1;
while i <= 10 do
	begin
		writeln (i, ':');
		i := i + 1;
		if p <= r then
			begin
				writeln ('Išleista pinigų: ',p:2:2);
				writeln ('Pinigų nebėra.');
				break;
			end
		else begin
				isleista := r+(p/100*6);
				writeln ('Išleista pinigų: ',isleista:2:2);
				p:=p-r;
				writeln ('Liko pinigų: ',p:2:2);
			end;
	end;
Readln;
end.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Man tai kažkaip iš sąlygos atrodo, kad jis išleidžia tiesiog R litų, o tos palūkanos pasilieka sąskaitoje. ;)

Bet jei darant taip, kaip Tu sakai, tai būtų taip:

program antras_variantas;
var n,k,r,p,o,w,isleista:real;
i: integer;
begin
WriteLn('Įveskite laimėtą sumą, procentus valstybei, kasmetines išlaidas');
readln (n,k,r);
p:=n -(n/100*k);
i := 1;
while i <= 10 do
	begin
		writeln (i, ':');
		i := i + 1;
		if p <= r then
			begin
				writeln ('Išleista pinigų: ',p:2:2);
				writeln ('Pinigų nebėra.');
				break;
			end
		else begin
				isleista := r+(p/100*6);
				writeln ('Išleista pinigų: ',isleista:2:2);
				p:=p-r;
				writeln ('Liko pinigų: ',p:2:2);
			end;
	end;
Readln;
end.

 

nu va, dėkuj :D

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 4 savaičių...

Parašykite programą, kuri išspausdintų visus tobuluosius skaičius, telpančius jūsų kompiuterio atmintyje. Tobulasis skaičius - toks natūralusis skaičius, kurio visų daliklių (išskyrus patį skaičių) suma lygi jam pačiam.

 

Kaip suprasti telpančius jūsų kompiuterio atmintyje? Užveskit ant kelio, nes nelabai suprantu.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Kaip suprasti telpančius jūsų kompiuterio atmintyje? Užveskit ant kelio, nes nelabai suprantu.
Esmė tame, kad tu negali išspausdini visų tobulųjų skaičių (kadangi jų skaičius nėra baigtinis, o yra begalybė), tad tau reikia tik sudaryti algoritmą, kuris patikrintų, ar koks nors skaičius yra "tobulas", o kiek skaičių patikrinsi, tai čia nesvarbu. Pavyzdžiui gali patikrinti visus integer, t.y. nuo 1 iki "maxint" (tokia pascal'io konstanta). Visų longint'ų (nuo 1 iki "maxlongint") patikrinti tikriausiai nepavyks, kadangi esant nelabai efektyviam algoritmui tai užtruktų tikrai daug laiko.
Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 2 savaičių...

Parašykite funkciją, kurios rezultatas būtų skaičius, gautas iš natūraliojo skaičiaus, sukeitus jo i-tąjį ir k-tąjį skaitmenis vietomis. Skaitmenys numeruojami iš kairės į dešinę.

 

 

program skaicius;

var a,b,c,ps,sk,a1,sum,o,o1:integer;

begin

WriteLn('Iveskite skaiciu ir skaitmenis kuriuos norite apkeisti');

readln (a,b,c);

a1:=a;

sum:=0;

sk:=0;

while a>0 do begin

ps:=a mod 10;

sum:=sum+1;

a:=a div 10;

end;

o:=sum-b+1;

o1:=sum-c+1;

while a1>0 do begin

ps:=a1 mod 10;

sk:=sk+1;

if o=sk then b:=ps;

if o1=sk then c:=ps;

a1:=a1 div 10;

end;

 

Readln;

end.

 

Randu skaičius, kuriuos reikia apkeisti, bet kaip išvesti tą galutinį skaičių (su apkeistais skaitmenimis) ?

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 2 savaičių...

Gal galite padeti?

Salyga:

Vaikas važinėjasi liftu. Šis liftas ypatingas – ant jo mygtukų užrašyti teigiami ir nei¬giami skaičiai. Paspaudus mygtuką su teigiamu skaičiumi, liftas pakils per nurodytą aukštų skaičių, o paspaudus mygtuką su neigiamu skaičiumi – nusileis per nurodytą aukštų skaičių. Pavyzdžiui, jei septintame aukšte esantis vaikas paspaus mygtuką su skaičiumi –2 (minus du), liftas nusileis į penktą aukštą.

Parašykite programą, kuri suskaičiuotų, kelis kartus vaikas buvo (t. y. liftas sustojo arba pravažiavo nesustodamas) penktame aukšte. Pradiniu momentu vaikas yra pirmame aukšte. Duota vaiko paspaustų mygtukų seka (ji baigiama nuliu).

Aš taip bandžiau daryti tik nežinau kodėl neskaiciuoja:

program dvidesimt;

var kartai, aukstas, kiek: integer;

 

begin

kartai := 0; aukstas := 1;

readln(kiek);

while (kiek <> 0) do

begin

if ((aukstas < 5)and (aukstas+kiek >= 5)) or ((aukstas>5)and(aukstas+kiek <= 5)) then (kartai);

aukstas := aukstas + kiek;

readln(kiek);

end;

writeln(kartai, 'kartø');

readln; readln

end.

 

Gal žinote kodel?

 

Ir dar vienas:

 

Karalius savo ižde turi n auksinų. Kasdien jis išmoka savo pavaldiniams 2 auksinais daugiau, nei vakar dieną.

Parašykite programą, kuri rastų, po kelių dienų karaliaus iždas ištuštės, jei žinoma, kiek auksinų jis išmokėjo pirmąją dieną.

 

Gal kas nors esate šį uždavinį išsprendę? jei taip, tai gal galite parodyti kaip?

 

Dekui.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...