Pereiti prie turinio

Pascal uzdavinys - reik pagalbos


Rekomenduojami pranešimai

Taigi turiu toki namu darba, esme tame kad nebezinau kaip ji uzbaigti.

 

Tarkim: x - b = a

 

Jei a yra sveikas skaicius t.y. be kablelio tada turetu ji spausdinti, jei jis su kableliu turetu rasyti mano pasirinkta teksta. Visa programa apacioje matote. Tik aisku neuzbaigta, reikia kazka su tuo n daryt. Ir kazka sutvarkyti.

 

program Olimpines_varzybos;

var x, n : real;

begin

Read ( x );

if (x - 1896) / 4 = n

then Write ( n:5:0 )

else Write ('Tokiais metais neivyko')

end.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

EDIT: Geriau parasyk programos salyga

 

Tau reikia sužinoti ar įvestais metais vyko olimpinės?

 

Jei taip, tada stai programa:

 

program Olimpines_varzybos;

var x, n : integer;

begin

Read (x);

n:= x - 1896;

if n mod 4 = 0

then Write (n div 4)

else Write ('Tokiais metais neivyko')

end.

Redagavo romka666
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Siūlyčiau pasinaudoti mod ir div operatoriais, kurie grąžina liekaną ir sveiką dalį. Maždaug

if x mod y = 0

then write(x div y)

else write('neįvyko')

 

Nežinau paskalio sintaksės, ir apskritai, su programavimu man liūdna, bet manau turėtų suveikti

 

P.S. mane jau spėjo aplenkti :)

Redagavo Silwen
Nuoroda į pranešimą
Dalintis kituose puslapiuose

EDIT: Geriau parasyk programos salyga

 

 

 

Jei taip, tada stai programa:

 

program Olimpines_varzybos;

var x, n : integer;

begin

Read (x);

n:= x - 1896;

if n mod 4 = 0

then Write (n div 4)

else Write ('Tokiais metais neivyko')

end.

 

Uzduotis tokia, ivedi data (1896 pirma karta ivyko olimp.) ir jei tais metais ivyko turi parasyti kelintos tarkim. Ivedi 1890, tai turi ismesti - 2, t.y. antros varzybos. Nes 1896 buvo pirmos. O dabar antros. Nes kas 4 metus vyksta.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Uzduotis tokia, ivedi data (1896 pirma karta ivyko olimp.) ir jei tais metais ivyko turi parasyti kelintos tarkim. Ivedi 1890, tai turi ismesti - 2, t.y. antros varzybos. Nes 1896 buvo pirmos. O dabar antros. Nes kas 4 metus vyksta.

 

 

Taigi viska parasiau savo programoi. Tik vietoj "n div 4" parasyk "n div 4 + 1" nes skaiciuoja vienetu maziau negu reikia :)

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

gal kas galit parasyt programa iki antos uzduoties viska suprantu :rolleyes: Klaviatūra įvedami natūralieji skaičiai (įvedimo pabaiga sk. 0) Parašyti programą, kuri atspausdintų

kiekvieno skaičiaus skaitmenų sumą;

nelyginių skaičiaus skaitmenų kvadratų sumą;

tik tuos skaičius, kurie sudaryti iš lyginių skaitmenų;

tik tuos skaičius, kurių didžiausias skaitmuo didesnis už skaičiaus skaitmenų sumą be jo;

skaičius perrašytus atbulai;

iki antros tai manau taip

var x, sum, ks, k : integer;

begin

WriteLn('iveskite skaicius');

Readln(x);

ns := 0;

sum := 0;

ks := 0;

j := 0;

 

while x > 0 do

begin

while x > 0 do

begin sum := sum + x mod 10;

x := x div 10;

end;

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Užduotis ne iš lengvųjų taigi ir kodas bus ne iš lengvųjų :/

 

program Progrrrama;
var
       i, j, k, l : integer;
              skc : integer;
         skaiciai : array[0..100] of integer;


function suma(skc_f : integer) : integer;
var temp : integer;
begin
   temp := 0;
   j := 1;
   while skc_f div j > 0 do
       begin
           temp := temp + skc_f div j mod 10;
           j := j * 10;
       end;
   suma := temp;
end;

function kvadratas(skc_f : integer) : integer;
var temps : integer;
begin
   temps := 0;
   j := 1;
   if skc_f mod 2 > 0 then
       begin
           //Nelyginis ;]
           while skc_f div j > 0 do
               begin
                   temps := temps + ((skc_f div j mod 10) * (skc_f div j mod 10));
                   j := j * 10;
               end;
       end;
   kvadratas := temps;
end;

function lyginiai(skc_f : integer) : integer;
begin
   j := 1;
   if skc_f mod 2 <= 0
       then lyginiai := skc_f
       else lyginiai := 0;

end;

function did_skc(skc_f : integer) : integer;
var did : integer;
begin
   //tik tuos skaičius, kurių didžiausias skaitmuo didesnis už skaičiaus skaitmenų sumą be jo;
   j := 1;
   did := 0;
   while skc_f div j > 0 do
       begin
           if skc_f div j mod 10 > did
               then did := skc_f div j mod 10;
           j := j * 10;
       end;
   if suma(skc_f) - did < did
       then did_skc := skc_f
       else did_skc := 0;
end;

function atbulai(skc_f : integer) : integer;
var temp, ilgis : integer;
begin
   //skaičius perrašytus atbulai;
   j := 1;
   temp := 0;
   // Kolkas dirbs tik su mažesniais nei 10000 skaičiais
   if skc_f > 999
       then ilgis := 1000
       else if skc_f > 99
           then ilgis := 100
           else if skc_f > 9
               then ilgis := 10
               else if skc_f < 10
                   then ilgis := 1; //
   while skc_f div j > 0 do
       begin
           temp := temp + (skc_f div j mod 10) * ilgis;
           ilgis := ilgis div 10;
           j := j * 10;
       end;
   if temp > 0
       then atbulai := temp
       else atbulai := 0;
end;

procedure spausdinti();
begin
   //kiekvieno skaičiaus skaitmenų sumą;
   l := 0;
   WriteLn;
   WriteLn('-------------------------Skaitmenų sumos-------------------------');
   for k := 0 to i do
       WriteLn(suma(skaiciai[k]));

   //nelyginių skaičiaus skaitmenų kvadratų sumą;
   WriteLn;
   WriteLn('-----------------Nelyginių skaičių kvadratų suma-----------------');
   for k := 0 to i do
       if kvadratas(skaiciai[k]) <> 0
           then begin
               l := l + 1;
               WriteLn(kvadratas(skaiciai[k]));
           end;
   if l = 0
       then WriteLn('Tokių skaičių nėra.');
   l := 0;

   //tik tuos skaičius, kurie sudaryti iš lyginių skaitmenų;
   WriteLn;
   WriteLn('------------------------Lyginiai skaičiai------------------------');
   for k := 0 to i do
       if lyginiai(skaiciai[k]) <> 0
           then begin
               l := l + 1;
               WriteLn(lyginiai(skaiciai[k]));
           end;
   if l = 0
       then WriteLn('Tokių skaičių nėra.');
   l := 0;

   //tik tuos skaičius, kurių didžiausias skaitmuo didesnis už skaičiaus skaitmenų sumą be jo;
   WriteLn;
   WriteLn('-Skaičiai kurių did. skaitmuo didesnis nei skaitemnų suma be jo-');
   for k := 0 to i do
       if did_skc(skaiciai[k]) <> 0
           then begin
               l := l + 1;
               WriteLn(did_skc(skaiciai[k]));
           end;
   if l = 0
       then WriteLn('Tokių skaičių nėra.');
   l := 0;

   //skaičius perrašytus atbulai;
   WriteLn;
   WriteLn('-------------------------Atbuli skaičiai-------------------------');
   for k := 0 to i do
       if atbulai(skaiciai[k]) <> 0
           then WriteLn(atbulai(skaiciai[k]));

end;
begin
 i := 0;
 skc := 1;
 WriteLn('Labas, įvesk skaičių arba nieko nedarysiu >:|');
 while skc <> 0 do
   begin
       ReadLn(skc);
       skaiciai[i] := skc;
       i := i + 1;
   end;
 i := i - 2;  // Taip jau reikia...
 spausdinti();
 Readln; // Kad neišsijungtų
end.

Redagavo new_one
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Labai ačiū Giedriau. :D as truputi perdariau ir gavau, manau, lengvesni varjanta. :rolleyes:

program Skaiciai;

var x, sks, g, skk, lyg, max, maxs, atb, a : longint;

begin

WriteLn('Iveskite pirmaji skaitmeni');

Readln (x);

While x <> 0 do

begin

sks := 0;

skk := 0;

lyg := 0;

atb := 0;

g := x;

while g > 0 do

begin

sks := sks + g mod 10;

g := g div 10;

end;

WriteLn ('Skaiciaus skaitmenu suma : ',sks);

g := x;

while g > 0 do

begin

if g mod 10 mod 2 <> 0 then skk := skk + SQR (g mod 10);

g := g div 10;

end;

WriteLn ('nelyginiø skaièiaus skaitmenø kvadratø suma : ',skk);

g := x;

while g > 0 do

begin

if g mod 10 mod 2 = 0 then g := g div 10;

begin

if g mod 10 mod 2 = 0 then lyg := lyg + 1;

g := g div 10;

end;

end;

if lyg = 0 then WriteLn ('Skaicius ', x, ' sudarytas is lyginiu skaitmenu');

g := x;

while g > 0 do

begin

atb := atb * 10 + g mod 10;

g := g div 10;

end;

WriteLn ('Skaicius atbulai : ',atb);

g := x;

max := 0; maxs := 0;

while g > 0 do

begin

a := g mod 10;

if max < a then max := a;

g := g div 10;

maxs := sks;

end;

maxs := maxs - max;

if max > maxs then

WriteLn ('Skaitmuo didesnis uz skaitmenu suma : ', max, ' Skaitmenu suma: ', maxs);

WriteLn;

WriteLn ('Iveskite sekanti skaiciu'); ReadLn (x);

end;

end.

 

taip dariau ir viska teisingai skaičuoja, man tavo pasirodė sudėtingai( nes as 11kl), nors pasidomėjau ir supratau, :rolleyes: AČIŪ UŽ PAGALBA!!!

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ą...