Pereiti prie turinio

Padėkit ištaisyti klaidas pascal programoje


Rekomenduojami pranešimai

program skysciai;
  var bus,
   ltr,
   gal : longint;
   l_isviso : real;
begin
read (ltr, gal, bus);
l_isviso  := (bus * 3640 + gal * 455 + ltr / 100); {viskas ver?iama ? litrus}
gal := (ltr div 455);
bus := ((l_isviso - gal * 455) div 8 div 100);
  WriteLn('Litrai: ', l_isviso);
  writeln('Bu?eliai ir galonai: ',  bus, gal);
end.

Ir liko vienas erroras: Incompatible types: got "S80REAL" expected "LONGINT" ir kimba prie

bus := ((l_isviso - gal * 455) div 8 div 100);

, bus galinčių padėti?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Parašykite programą dviems skysčio kiekiams sudėti: pirmas pateiktas angliškais vienetais, o antrą sudaro 13,65 kartus daugiau litrų, nei galonų pirmame.

Galit šitą išversti į lietuvių kalbą? :rolleyes:

program skysciai;
  var ltr,
   gal,
   bus,
   l_isviso : real;
begin
read (ltr, gal, bus);
l_isviso  := (bus * 364 + gal * 455 + ltr) / 100; {viskas ver?iama ? litrus}
gal := (ltr / 455) * 100;
bus := ((l_isviso - gal) * 455 / 8) / 100;
writeLn('Litrai: ', l_isviso:5:2);
writeln('Bu?eliai ir galonai: ',  bus:5:2, gal:5:2);
end.

Programa veikia, bet nesuskaičiuoja gerai galonų ir bušelių, litrus suskaičiuoja gerai, salyga:

D. Britanijoje skysčiai buvo matuojami galonais ir bušeliais; 8 galonai sudarė bušelį, 4,55 litrai sudarė galoną. Parašykite programą dviems skysčio kiekiams sudėti: pirmas pateiktas angliškais vienetais, o antrą sudaro 13,65 kartus daugiau litrų, nei galonų pirmame. Rezultatas išreiškiamas tiek angliškais vienetais, tiek litrais. Pavyzdžiui, turime 5 bušelius ir 3 galonus, tai sudedame su 586,95 litrų ir suma bus lygi 21 bušeliui ir 4 galonui, arba 782,6 litrų. Pradiniai duomenys – du sveikieji skaičiai.

Pastaba. Programoje leistina naudoti tik sveikojo tipo kintamuosius.

Ačiū.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Parašykite programą dviems skysčio kiekiams sudėti: pirmas pateiktas angliškais vienetais, o antrą sudaro 13,65 kartus daugiau litrų, nei galonų pirmame.

Galit šitą išversti į lietuvių kalbą? :rolleyes:

program skysciai;
  var ltr,
   gal,
   bus,
   l_isviso : real;
begin
read (ltr, gal, bus);
l_isviso  := (bus * 364 + gal * 455 + ltr) / 100; {viskas ver?iama ? litrus}
gal := (ltr / 455) * 100;
bus := ((l_isviso - gal) * 455 / 8) / 100;
writeLn('Litrai: ', l_isviso:5:2);
writeln('Bu?eliai ir galonai: ',  bus:5:2, gal:5:2);
end.

Programa veikia, bet nesuskaičiuoja gerai galonų ir bušelių, litrus suskaičiuoja gerai, salyga:

D. Britanijoje skysčiai buvo matuojami galonais ir bušeliais; 8 galonai sudarė bušelį, 4,55 litrai sudarė galoną. Parašykite programą dviems skysčio kiekiams sudėti: pirmas pateiktas angliškais vienetais, o antrą sudaro 13,65 kartus daugiau litrų, nei galonų pirmame. Rezultatas išreiškiamas tiek angliškais vienetais, tiek litrais. Pavyzdžiui, turime 5 bušelius ir 3 galonus, tai sudedame su 586,95 litrų ir suma bus lygi 21 bušeliui ir 4 galonui, arba 782,6 litrų. Pradiniai duomenys – du sveikieji skaičiai.

Pastaba. Programoje leistina naudoti tik sveikojo tipo kintamuosius.

Ačiū.

 

Na visų pirma tai pateikti tik 2 pradiniai duomenys

toliau:

program skysciai;
  var ltr,
   gal,
   bus,
   l_isviso :integer;
begin
read (bus, gal);
l_isviso  := (bus * 8 + gal)*455+(bus * 8 + gal)*1365; {viskas verčiama į litrus x100}
writeLn('Litrai: ', l_isviso/100:5:2);
bus:=(l_isviso div 455) div 8;
gal:=(l_isviso div 455) mod 8;
writeln('Bušeliai ir galonai: ',  bus,' buš. ', gal,' gal.');
end.

visi duomenys sveikieji kaip ir prašė sąlyga

Redagavo oxopo
Nuoroda į pranešimą
Dalintis kituose puslapiuose
Na visų pirma tai pateikti tik 2 pradiniai duomenys

toliau:

program skysciai;
  var ltr,
   gal,
   bus,
   l_isviso :integer;
begin
read (bus, gal);
l_isviso  := (bus * 8 + gal)*455+(bus * 8 + gal)*1365; {viskas verčiama į litrus x100}
writeLn('Litrai: ', l_isviso/100:5:2);
bus:=(l_isviso div 455) div 8;
gal:=(l_isviso div 455) mod 8;
writeln('Bušeliai ir galonai: ',  bus,' buš. ', gal,' gal.');
end.

visi duomenys sveikieji kaip ir prašė sąlyga

Vykdymo klaida:

201: peržengti rėžiai

Kas čia per ...?

Nuoroda į pranešimą
Dalintis kituose puslapiuose
tuomet butu galima vykdyt cikla while skaicius > 0 , bet jei ciklu nesimoket, tai nezinau tuomet :)

Įvertinkit :)

program pavyzdys;
var sk, { nat?ralusis tri?enklis skai?ius }
s1,
s2,
s3,
suma,
s4,
s5 : integer;
begin
readln (sk);
s1 := sk div 100;
s2 := sk div 10 mod 10;
s3 := sk mod 10;
s2 := s2 * 2;
while (s2>9) do
begin
 s5 := s2 mod 10;
 s4 := s2 div 10;
 s2 := s5 + s4;
end;
write (s1, s2, s3); { para?omas rezultatas }
end.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Įvertinkit :)

program pavyzdys;
var sk, { nat?ralusis tri?enklis skai?ius }
    s1,
    s2,
    s3,
    suma,
    s4,
    s5 : integer;
begin
readln (sk);
s1 := sk div 100;
s2 := sk div 10 mod 10;
s3 := sk mod 10;
[color="#ff0000"]s2 := s2 * 2;[/color]
[color="#2e8b57"]while (s2>9) do
begin
  s5 := s2 mod 10;
  s4 := s2 div 10;
  s2 := s5 + s4;
end;[/color]
write (s1, s2, s3); { para?omas rezultatas }
end.

 

Atrodo veikia :)

 

 

Ivedus 123 isveda 143 nes antro (nuo galo) skaitmens reiksme yra padidinama 2 kartus (raudonai pazymejau), kiti skaitmenys atrodo gerai skaiciuojasi. O tos vietos kur zaliai pazymejau nelabai supratau ka ji turi daryti :)   . Ai dar programos pabaigoj galima prirasyt readln; kad isvedus reiksmes langas neuzsidarytu :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Atrodo veikia :)

 

 

Ivedus 123 isveda 143 nes antro (nuo galo) skaitmens reiksme yra padidinama 2 kartus (raudonai pazymejau), kiti skaitmenys atrodo gerai skaiciuojasi. O tos vietos kur zaliai pazymejau nelabai supratau ka ji turi daryti :)   . Ai dar programos pabaigoj galima prirasyt readln; kad isvedus reiksmes langas neuzsidarytu :)

Dėl readln žinau, bet pripratau be jo, tai ir darau jau be :)

Dėl žalios vietos: jeigu skaičius turi du skaitmenis, programa juos sudeda vieną su kitu, kad iš 366 nesigautų 3126, o 336 :)

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

Sveiki,

vėl prireikė pagalbos šįkart nedidelės, kaip padaryti, kad išspausdintų atsakymą šioje programoje? Neduoda man, ko negaliu paaiškinti, gal suprasit iš programos B-)

program robotas;

type salys = (siaure, rytai, pietus, vakarai);

var a,

ats : salys;

c, {salis}

d, {kryptis}

s1,

s2,

s3,

s4 : longint;

begin

read (c, d);

s1 := c div 1000; {suskai?iuojamas pirmas skaitmuo}

s2 := c div 100; {suskai?iuojamas antras skaitmuo}

s3 := c div 10 mod 10; {suskai?iuojamas tre?ias skaitmuo}

s4 := c mod 10; {suskai?iuojamas tre?ias skaitmuo}

if s1 = 0 then a := siaure;

if s2 = 0 then a := rytai;

if s3 = 0 then a := vakarai;

if s4 = 0 then a := pietus;

if d = 0 then ats := a;

if d = -1 then ats := pred(a);

if d = 1 then ats := succ(a);

writeln (ats);

end.

P.S. Blogai su eitute writeln (ats);

Redagavo BaSh_time
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Susitvarkiau pats: vietoj writeln (ats); parašiau keturias eilutes:

if ats = siaure then write ('siaure');

if ats = rytai then write ('rytai');

if ats = pietus then write ('pietus');

if ats = vakarai then write ('vakarai');

gal kas turi idėjų kaip sutrumpinti kodą? B-)

 

Radau bėda, jeigu įvedi -1, programa neveikia, peržengti rėžiai išmeta, kokius tipus ar ką daryti, kad veiktų ir su -1?

Redagavo BaSh_time
Nuoroda į pranešimą
Dalintis kituose puslapiuose

program robotas;
const salys : array[1..4] of string = ('siaure', 'rytai', 'pietus', 'vakarai');
var
d, {kryptis}
k: longint;
c:string;   {salis}
begin
read (c, d);

if c[1] = '0'  then k := 1;
if c[2] = '0'  then k := 2;
if c[3] = '0'  then k := 3;
if c[4] = '0'  then k := 4;

if d = -1 then if k -1 < 1 then k:=4 else k-=1;
if d = 1  then if k + 1 >4 then k:=1 else k+=1;

writeln(salys[k]);
end.

Mano variantas :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 2 mėnesių...

Sveiki,

yra dvi bėdos: neveikia eilutė if ((s1 = s4) and (s2 = s5) and (s3 = s6)) then, uždavinys:

program Bilietai;
var nr, s1, s2, s3, s4, s5, s6, ats : longint;
function laimingas (nr, s1, s2, s3, s4, s5, s6 : longint) : longint;
begin
 if (nr < 1000000) and (nr > 99999) then begin
  s1 := nr div 100000;
  s2 := nr div 10000;
  s3 := nr div 1000;
  s4 := nr div 100;
  s5 := nr div 10;
  s6 := nr mod 10;
 end
  else nr := 0;
if nr <> 0 then
 if ((s1 = s4) and (s2 = s5) and (s3 = s6)) then
 nr := 1
end;
begin
read (nr);
ats := laimingas(nr, s1, s2, s3, s4, s5, s6);
if ats = 1 then write ('true')
else write ('false');
end.

Sąlyga:

17.	Šešiaženklis autobuso bilieto numeris laikomas laimingu, jeigu pirmųjų trijų skaitmenų suma yra lygi paskutiniųjų trijų skaitmenų sumai.
Parašykite programą, kurioje būtų panaudota funkcija, kurios reikšmė būtų true, jeigu bilieto numeris laimingas ir false – priešingu atveju. Laikykite, kad visi bilietai, kurių numeriai sudaryti iš kitokio skaitmenų skaičiaus, nėra vadinami laimingais.

Ir antras uždavinys

Duota funkcija dviejų skaičių didžiausiam bendrajam dalikliui rasti:
function Dbd (a, b: integer): integer;
begin
  while a <> b do
  if a > b
	 then a := a - b
	 else b := b - a;
  Dbd := a
end;
Kokiems pradiniams duomenims esant ciklas tampa „amžinu“?
Paaiškinkite, kodėl taip manote.

Kas nors padės? ;)

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Čia tu ieškai ar pirmi trys skaitmenys yra lygus antirem trim skaitmenim.

o reikia tikrinti ar s1+s2+s3=s4+s5+s6

Whooops... dabar lyg ir viskas ok.

EDIT: ne viskas ok, jeigu įvedi 123123 vistiek false rodo

Antrą jau išspręndžiau pats, dabar dar vienas liko, kurio iki galo nepabaigiu niekaip. Sąlyga:

Užrašykite matematine formule šios funkcijos veiksmą:
function Y (a: real; n: integer): real;
  var i, j: integer;
begin
  for i := 1 to n do
  for j := 1 to n do
	 a := a * a;
  Y := a 
end;

Gaunasi kažkas panašaus į n^4=x; a^x, bet ne visada ji tinka, yra idėjų?

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