Pereiti prie turinio

FPS 3 uždaviniai


Rekomenduojami pranešimai

Sveiki, būtų šaunu jei atsirastų žmonių kurie galėtų padėti man.

 

Turiu tokią problemą reikia suprogramuoti 4 uždavinukus, bet bėda tame, kad aš nebuvau mokykloje 1 savaitę ir praleidau pora pamokų, tad neišmokai pora temų, 1 uždavinį šiaip netaip suprogramavau tad beliko kiti 3

 

 

1. Yra tokių įdomių naturaliūjų skaičių kurie lygūs savo skaitmenų kubu sumai pvz: 370 33+73+03=370. Reikia sudaryti programą jiems rasti, ir kiek jų yra? tik triženkliai skaičiai.

 

2. Reikia rasti skaičių kurie tenkitų ligybę (a+b+c+d)4=abcd. Kiek jų turi būti?

 

3.Į banką nunešiau k pinigų. Bankas teikia palūkanų normą p procentų. Ar per x metų mano indėlis padvigubės?

Redagavo zigmasas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

1 uzdavinys:

program Bevarde3;
type masyvas=array[1..999] of integer;
var i, x, y, t, s, kiekis : integer;
M : masyvas;
begin
kiekis:=0;
WriteLn('Idomus skaiciai');
for i:=1 to 999 do begin
s:=i;
while s > 0 do begin
t:=s mod 10;
x:=x + t * t * t;
s:=s div 10;
end;
if x = i then begin
	kiekis:=kiekis + 1;
	M[kiekis]:=i;
end;
x:=0;

end;
WriteLn('Tokie skaiciai: ');
for i:=1 to kiekis do
WriteLn(M[i]);
WriteLn('Is viso tokius skaiciu: ', kiekis);
ReadLn;
end.

Analogiska antras uzdavinys:

program Bevarde3;
type masyvas=array[1..999] of integer;
var i, x, y, t, s, kiekis : integer;
M : masyvas;
begin
kiekis:=0;
WriteLn('Idomus skaiciai');
for i:=100 to 9999 do begin
s:=i;
while s > 0 do begin
t:=s mod 10;
x:=x + t;
s:=s div 10;
end;
if (x * x * x * x) = i then begin
	kiekis:=kiekis + 1;
	M[kiekis]:=i;
end;
x:=0;

end;
WriteLn('Tokie skaiciai: ');
for i:=1 to kiekis do
WriteLn(M[i]);
WriteLn('Is viso tokius skaiciu: ', kiekis);
ReadLn;
end.

Jei netingesiu isspresiu ir 3, gan lengvas pamastyk ir pats :)

Redagavo night1
Nuoroda į pranešimą
Dalintis kituose puslapiuose
1 uzdavinys:

program Bevarde3;
type masyvas=array[1..999] of integer;
var i, x, y, t, s, kiekis : integer;
M : masyvas;
begin
kiekis:=0;
WriteLn('Idomus skaiciai');
for i:=1 to 999 do begin
s:=i;
while s > 0 do begin
t:=s mod 10;
x:=x + t * t * t;
s:=s div 10;
end;
if x = i then begin
	kiekis:=kiekis + 1;
	M[kiekis]:=i;
end;
x:=0;

end;
WriteLn('Tokie skaiciai: ');
for i:=1 to kiekis do
WriteLn(M[i]);
WriteLn('Is viso tokius skaiciu: ', kiekis);
ReadLn;
end.

Analogiska antras uzdavinys:

program Bevarde3;
type masyvas=array[1..999] of integer;
var i, x, y, t, s, kiekis : integer;
M : masyvas;
begin
kiekis:=0;
WriteLn('Idomus skaiciai');
for i:=100 to 9999 do begin
s:=i;
while s > 0 do begin
t:=s mod 10;
x:=x + t;
s:=s div 10;
end;
if (x * x * x * x) = i then begin
	kiekis:=kiekis + 1;
	M[kiekis]:=i;
end;
x:=0;

end;
WriteLn('Tokie skaiciai: ');
for i:=1 to kiekis do
WriteLn(M[i]);
WriteLn('Is viso tokius skaiciu: ', kiekis);
ReadLn;
end.

Jei netingesiu isspresiu ir 3, gan lengvas pamastyk ir pats :)

Jei jau spausdint tuos skaičius, tai šiuose uždavinuose geriau iškart if'e spausdint, nes manau masyvų dar tikrai neėjo ir efektyviau negu įrašinėt ir poto imti iš masyvo vėl :).

Redagavo oxopo
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Čia trečias. Jei sąlygą teisingai supratau. :) Mokamos paprastosios palūkanos, kas vieni metai.

program Bevardė14;
var sum,k,p:real;
i,x:integer;
begin
Readln(k);
Readln(p);
Readln(x);
sum:=k;
for i:=1 to x do
 sum:=sum+k*p/100;
if sum>=2*k then
  Writeln('Dvigubės')
 else
  Writeln('Nedvigubės');
Readln;
end.

 

EDIT:

oxopo teisingai sąko, reik optimizuot programą, o ne į tiesiai per aplinkui važiuot. :)

Pirmasis.

program Bevardė15;
uses math;
var i,s,z:longint;
sk:real;
begin
 for i:=100 to 999 do
  begin
s:=i;
while s>0 do
 begin
  sk:=sk+power((s mod 10),3);
  s:=s div 10;
 end;
if sk=i then
 begin
  Writeln(i);
  inc(z);
 end;
sk:=0;
  end;
 Writeln('Išviso tokių skaičių:',z);
 Readln;
end.

Antrasis. Nors sąlygą iš pradžių šiek tiek suklaidino, manyčiau taip:

program Bevardė18;
var i,s,sk,a:longint;
begin
 for i:=1000 to 9000 do
  begin
s:=i;
sk:=0;
while s>0 do
 begin
  sk:=sk+s mod 10;
  s:= s div 10;
 end;
if sk*sk*sk*sk=i then
 begin
  Writeln(i);
  inc(a);
 end;
 end;
 WriteLn('Išviso tokių skaičių:',a);
 Readln;
end.

Redagavo PixeLz
Nuoroda į pranešimą
Dalintis kituose puslapiuose
O kaip reikėtų padaryti 1,2 programas naudojant tik (if ir for)?

 

Kadangi žinom, kad pirmam skaičius triženklis, o antram keturženklis tai tiesiog pakeisk while ciklus į for.:

1.

while s>0 do
begin
  sk:=sk+power((s mod 10),3);
  s:=s div 10;
end;

Pakeisk į

for a:=1 to 3 do
 begin
  sk:=sk+power((s mod 10),3);
  s:=s div 10;
 end;

 

2.

while s>0 do
 begin
  sk:=sk+s mod 10;
  s:= s div 10;
 end;

Pakeisk į

for z:=1 to 4 do
  begin
   sk:=sk+s mod 10;
   s:=s div 10;
  end;

Ir nepamiršk pridėt papildomus kintamuosius. :)

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.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

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