Pereiti prie turinio

Padėkit ištaisyti klaidas pascal programoje


Rekomenduojami pranešimai

Moksleivis parašė algoritmą, kuris pradinį įsivaizduojamo mechaninio laikradžio laiką, išreikštą valandomis, minutėmis ir sekundėmis, padidina duotu sekundžių skaičiumi. Rezultatas – įsivaizduojamo mechaninio laikradžio laikas, išreikštas valandomis, minutėmis ir sekundėmis. Pavyzdžiui, padidinus 11 valandų 59 minutes 59 sekundes 601 sekunde, gauname 12 valandų 10 minučių 0 sekundžių.

program laikas;

var val_prad, {pradinio laiko valandos}

min_prad, {pradinio laiko minutės}

sek_prad, {pradinio laiko sekundės}

sek_plius, {pridedamų sekundžių skaičius}

val, min, sek: integer;

begin

read(val_prad, min_prad, sek_prad, sek_plius);

sek:= (val_prad*360+min_prad*60+sek_prad+sek_plius) mod 60;

min:= (val_prad*3600+min_prad*60+sek_prad+sek_plius) div 600 mod 60;

val:= (((val_prad*3600+min_prad*60+sek_prad+sek_plius) div 3600 - 1) mod 12 + 1);

writeln( val, min:3, sek:3)

end.

Sugebėjau tik tiek, kad padariau, kad programa veiktų, bet gaunasi ne 12h ir 10min, o 12h it 13min, gal kas padėti galėtų? Ir neblogai būtų, kad paaiškintumėte ką keitėte. Ačiū.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Perrasiau, pasianalizuok.

 

program Noname1;
var h, m, s: longint;
sec: longint;
total: longint;
begin
 ReadLn(h, m, s, sec);
 total := h*3600 + m*60 + s + sec;
 h := total div 3600;
 total := total - h * 3600;
 m := total div 60;
 total := total - m * 60;
 s := total;
 WriteLn(h,':',m,':',s);
 ReadLn;
end.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Perrasiau, pasianalizuok.

 

program Noname1;
var h, m, s: longint;
sec: longint;
total: longint;
begin
 ReadLn(h, m, s, sec);
 total := h*3600 + m*60 + s + sec;
 h := total div 3600;
 total := total - h * 3600;
 m := total div 60;
 total := total - m * 60;
 s := total;
 WriteLn(h,':',m,':',s);
 ReadLn;
end.

Ačiū, reikės bandyti kažką daryti, tik kad labai jau programos skiriasi. Gal kas paredaguotų esamą? :lol:

Nuoroda į pranešimą
Dalintis kituose puslapiuose

program Laikas;

var val_prad, {pradinio laiko valandos}

min_prad, {pradinio laiko minutës}

sek_prad, {pradinio laiko sekundës}

sek_plius, {pridedamø sekundþiø skaièius}

val, min, sek : integer;

sek_isviso : longint;

begin

Readln(val_prad, min_prad, sek_prad, sek_plius);

sek_isviso := val_prad * 3600 + min_prad * 60 + sek_prad + sek_plius; // viskas verciama sekundem.

val := sek_isviso div 3600;

min := (sek_isviso - val * 3600) div 60;

sek := sek_isviso - val * 3600 - min * 60;

writeln(val, min:3, sek:3);

Readln;

end.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
program Laikas;

var val_prad, {pradinio laiko valandos}

min_prad, {pradinio laiko minutës}

sek_prad, {pradinio laiko sekundës}

sek_plius, {pridedamø sekundþiø skaièius}

val, min, sek : integer;

sek_isviso : longint;

begin

Readln(val_prad, min_prad, sek_prad, sek_plius);

sek_isviso := val_prad * 3600 + min_prad * 60 + sek_prad + sek_plius; // viskas verciama sekundem.

val := sek_isviso div 3600;

min := (sek_isviso - val * 3600) div 60;

sek := sek_isviso - val * 3600 - min * 60;

writeln(val, min:3, sek:3);

Readln;

end.

Ačiū, padėjai. O ką reiškia longint šioje programoje? Naujokas dar pascalyje

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Nezinau, butu gerai kad visa programa imestum. Gal kas zinos :lol:

nera formules, yra tik klausimas,

 

 

Kada nusileis lėktuvas. Lėktuvas pakilo iš Frankfurto aerouosto, kai buvo A

valandų ir B minučių. Lėktuvas ore praleis C minučių. Lėktuvo nusileidimo ir

pakilimo vietose laikas skiriasi D valandų.

 

Užduotis. Parašykite programą, kuri nustatytų, kuriuo laiku nusileis lėktuvas.

Lėktuvo nusileidimo laikas turi būti užrašytas valandomis ir minutėmis.

 

Pradiniai duomenys pateikiami vienoje eilutėje ekrane.

Galioja ribojimai: 0£A<23, 0£B<60, 30£C£600, –12£D£12; <<kas do cia per apribojimai ir kaip juos uzrasyti

Nuoroda į pranešimą
Dalintis kituose puslapiuose
nera formules, yra tik klausimas,

 

 

Kada nusileis lėktuvas. Lėktuvas pakilo iš Frankfurto aerouosto, kai buvo A

valandų ir B minučių. Lėktuvas ore praleis C minučių. Lėktuvo nusileidimo ir

pakilimo vietose laikas skiriasi D valandų.

 

Užduotis. Parašykite programą, kuri nustatytų, kuriuo laiku nusileis lėktuvas.

Lėktuvo nusileidimo laikas turi būti užrašytas valandomis ir minutėmis.

 

Pradiniai duomenys pateikiami vienoje eilutėje ekrane.

Galioja ribojimai: 0£A<23, 0£B<60, 30£C£600, –12£D£12; <<kas do cia per apribojimai ir kaip juos uzrasyti

 

Tai cia kaip supratau tie apribojimai bus vartotojui t.y. jis ivesdamas reiksmes ives tik tokias kad isitektu i apribojimus.

Pvz.:

Kintamasis A bus bet koks skaicius tarp 0 ir 23

Kintamasis B tarp 0 ir 60

ir t.t. 

 

Tu aprobojimu programoj aprasyti nereikia atrodo. O jei reikia tai gali rasyti salygini sakini kuris tikrintu ar ivestos reiksmes patenka i intervala, jei patenka tai vykdoma programa.

Redagavo Lin3R
Nuoroda į pranešimą
Dalintis kituose puslapiuose
Tai cia kaip supratau tie apribojimai bus vartotojui t.y. jis ivesdamas reiksmes ives tik tokias kad isitektu i apribojimus.

Pvz.:

Kintamasis A bus bet koks skaicius tarp 0 ir 23

Kintamasis B tarp 0 ir 60

ir t.t. 

 

Tu aprobojimu programoj aprasyti nereikia atrodo. O jei reikia tai gali rasyti salygini sakini kuris tikrintu ar ivestos reiksmes patenka i intervala, jei patenka tai vykdoma programa.

 

aj jo jo , supratau jau :DD

bet va dar beda

program lektuvas;
var a, b, c, d, p:integer;
begin
 WriteLn('iveskite 1lektuvo laikas pakilimo h, min, kiek skris min,vietos laiko skirtuma');
 Readln(a,b,c,d);
 p:=a+b+c-d;
 writeln ('nusileis frankfurte ',p) ;
 readln();
end.

kur tuos apribojimus ikisti?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

program Lektuvas;
var a, b, c, d, val, min : longint;
laik : longint;

begin
 Writeln('Iveskite reiksmes');
 Readln(a, b, c, d);
 If ( 0 <= a) and (a < 23) and (0 <= b) and (b < 60) and (30 > C) and (c < 600) and (-12 <= d) and (d <= 12)
 then
   begin
	 laik := a * 60 + b; // skaiciuoja kada lektuvas pakilo (minutemis).
	 laik := laik + c + d * 60;   // skaiciuoja kada nusileis (minutemis).
	 val := laik div 60; // skaiciuoja kiek valandu bus nusileidimo metu.
	 min := laik - val * 60; // skaiciuoja kiek minuciu bus nusileidimo metu.
	 Writeln('Lektuvas nusileis ', val,' val ',min,' min');
   end
 else
   Writeln('Ivestos netinkamos reiksmes');
Readln;
end.

 

Mano manymu taip turetu atrodyt programa. Komentaru nepagailejau, juos gali nutrinti :lol: :lol:

Tavo programoj kur parases buvai butu nesamones suskaiciave nes laikas ivedamas valandomis ir minutemis, o tau butu sudeje viska i viena ir nesamoningas ats. :lol:

Redagavo Lin3R
Nuoroda į pranešimą
Dalintis kituose puslapiuose
program Lektuvas;
var a, b, c, d, val, min : longint;
laik : longint;

begin
 Writeln('Iveskite reiksmes');
 Readln(a, b, c, d);
 If ( 0 <= a) and (a < 23) and (0 <= b) and (b < 60) and (30 > C) and (c < 600) and (-12 <= d) and (d <= 12)
 then
   begin
	 laik := a * 60 + b; // skaiciuoja kada lektuvas pakilo (minutemis).
	 laik := laik + c + d * 60;   // skaiciuoja kada nusileis (minutemis).
	 val := laik div 60; // skaiciuoja kiek valandu bus nusileidimo metu.
	 min := laik - val * 60; // skaiciuoja kiek minuciu bus nusileidimo metu.
	 Writeln('Lektuvas nusileis ', val,' val ',min,' min');
   end
 else
   Writeln('Ivestos netinkamos reiksmes');
Readln;
end.

 

Mano manymu taip turetu atrodyt programa. Komentaru nepagailejau, juos gali nutrinti :lol: :lol:

Tavo programoj kur parases buvai butu nesamones suskaiciave nes laikas ivedamas valandomis ir minutemis, o tau butu sudeje viska i viena ir nesamoningas ats. :lol:

###### matai gal ir as buciau taip parases :lol: bet truksta patirties ir loginio mastymo

Nuoroda į pranešimą
Dalintis kituose puslapiuose

program Lektuvas;
var a, b, c, d, val, min : longint;
laik : longint;

begin
 Writeln('Iveskite reiksmes');
 Readln(a, b, c, d);
 If ( 0 <= a) and (a < 23) and (0 <= b) and (b < 60) and (30 > C) and (c < 600) and (-12 <= d) and (d <= 12)
 then
   begin
	 laik := a * 60 + b; // skaiciuoja kada lektuvas pakilo (minutemis).
	 laik := laik + c + d * 60;   // skaiciuoja kada nusileis (minutemis).
	 val := laik div 60; // skaiciuoja kiek valandu bus nusileidimo metu.
	 min := laik - val * 60; // skaiciuoja kiek minuciu bus nusileidimo metu.
	 Writeln('Lektuvas nusileis ', val,' val ',min,' min');
   end
 else
   Writeln('Ivestos netinkamos reiksmes');
Readln;
end.

 

 

Pradinių duomenų pavyzdys: 6 5 184 -2

 

Paaiškinimas. Lėktuvas pakilo 6:05. Jis skrido 184 minutes, t. y. 3 valandas

ir 4 minutes. Nusileidimo momentu Frankfurte bus 9:09. Tačiau nusileidimo

vietoje laikas dviem valandomis ankstesnis nei Frankfurte.

 

 

ivedus duomis meta atseit blogai , bandau pats ieskot klaidos bet nelabai kas gauans ;/

 

 

 

program Lektuvas;
var a, b, c, d, val, min : longint;
laik : longint;

begin
 Writeln('Iveskite reiksmes');
 Readln(a, b, c, d);
 If ( 0 <= a) and (a < 23) and (0 <= b) and (b < 60) and (30 < C) and (c < 600) and (-12 <= d) and (d <= 12)
 then
   begin
	 laik := a * 60 + b; // skaiciuoja kada lektuvas pakilo (minutemis).
	 laik := laik + c + d * 60;   // skaiciuoja kada nusileis (minutemis).
	 val := laik div 60; // skaiciuoja kiek valandu bus nusileidimo metu.
	 min := laik - val * 60; // skaiciuoja kiek minuciu bus nusileidimo metu.
	 Writeln('Lektuvas nusileis ', val,' val ',min,' min');
   end
 else
   Writeln('Ivestos netinkamos reiksmes');
Readln;
end.

 

 

Pradinių duomenų pavyzdys: 6 5 184 -2

 

Paaiškinimas. Lėktuvas pakilo 6:05. Jis skrido 184 minutes, t. y. 3 valandas

ir 4 minutes. Nusileidimo momentu Frankfurte bus 9:09. Tačiau nusileidimo

vietoje laikas dviem valandomis ankstesnis nei Frankfurte.

 

 

ivedus duomis meta atseit blogai , bandau pats ieskot klaidos bet nelabai kas gauans ;/

radau klaida :lol:

istaisiau

Nuoroda į pranešimą
Dalintis kituose puslapiuose
program Lektuvas;
var a, b, c, d, val, min : longint;
laik : longint;

begin
 Writeln('Iveskite reiksmes');
 Readln(a, b, c, d);
 If ( 0 <= a) and (a < 23) and (0 <= b) and (b < 60) and (30 > C) and (c < 600) and (-12 <= d) and (d <= 12)
 then
   begin
	 laik := a * 60 + b; // skaiciuoja kada lektuvas pakilo (minutemis).
	 laik := laik + c + d * 60;   // skaiciuoja kada nusileis (minutemis).
	 val := laik div 60; // skaiciuoja kiek valandu bus nusileidimo metu.
	 min := laik - val * 60; // skaiciuoja kiek minuciu bus nusileidimo metu.
	 Writeln('Lektuvas nusileis ', val,' val ',min,' min');
   end
 else
   Writeln('Ivestos netinkamos reiksmes');
Readln;
end.

 

 

Pradinių duomenų pavyzdys: 6 5 184 -2

 

Paaiškinimas. Lėktuvas pakilo 6:05. Jis skrido 184 minutes, t. y. 3 valandas

ir 4 minutes. Nusileidimo momentu Frankfurte bus 9:09. Tačiau nusileidimo

vietoje laikas dviem valandomis ankstesnis nei Frankfurte.

 

 

ivedus duomis meta atseit blogai , bandau pats ieskot klaidos bet nelabai kas gauans ;/

 

 

 

radau klaida :o

istaisiau

Čia mokykloje ar kur tokius uždavinius davė?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Atsirado dar viena bėda:

program skysciai;
  var ltr,
   gal,
   bus,
   l_isviso : integer;
begin
read (ltr, gal, bus);
l_isviso  := bus * 36,4 + gal * 4,55 + ltr; {viskas ver?iama ? litrus}
gal := ltr div 4,55;
bus := (l_isviso - gal * 4,55) div 8;
  WriteLn('Litrai: ', l_isviso);
  writeln('Bu?eliai ir galonai: ',  bus, gal);
end.

 

ir išmeta syntax error dėl kablelių skaičiuose (36,4; 4,55), o vietoj kablelių sudėjus taškus išmeta Incompatible types: got "S80REAL" expected "SMALLINT", Incompatible types: got "S80REAL" expected "LONGINT". Kas padės čia? Galvoju, kad su tuo integer gal negerai kažkas?

Redagavo BaSh_time
Nuoroda į pranešimą
Dalintis kituose puslapiuose
sudedi taškus ir

program skysciai;
  var ltr,
   gal,
   bus,
   l_isviso : real;

 

Čia jei nori mažiau skaičių po kablelio:

writeLn('Litrai: ', l_isviso:5:2);
writeln('Bu?eliai ir galonai: ',  bus:5:2, gal:5:2);

Dingo erroras su SMALLINT, liko: Incompatible types: got "S64REAL" expected "LONGINT", Incompatible types: got "S80REAL" expected "LONGINT", Incompatible types: got "S80REAL" expected "LONGINT".

Ir pabraukia

gal := ltr div 4.55;

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Manau geriau butu jei parasytum salyga :) tuomet parasyciau programa. Nes dabar nelabai aisku ka ten skaiciuoti nori :)

Labiau norėčiau pats išmokti, tik errorai neduoda to padaryti :D

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.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Jei galima naudoti tik integer tada keistas kažkoks uždavinys :)

šiaip manau reiktų 'gal' padaryt integer, o visus kitus palikti real.

Arba jei 2 skaičių po kablelio tiklumu viską iš 100 dauginti ir poto atsakymą atitinkamai sumažinti :)

Redagavo oxopo
Nuoroda į pranešimą
Dalintis kituose puslapiuose
Jei galima naudoti tik integer tada keistas kažkoks uždavinys :)

šiaip manau reiktų 'gal' padaryt integer, o visus kitus palikti real.

Arba jei 2 skaičių po kablelio tiklumu viską iš 100 dauginti ir poto atsakymą atitinkamai sumažinti :)

Nežinau, gal ir taip būtų galima tada, galvojau, bet neišmasčiau ir aš, tai nusprendžiau paprastai padaryt, bet ir tas nesigavo, gal kas padėtų? :D

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Vakar ziurejau ta programa tai pastebejau kad reikia kablelius pakeisti i taskus. Ir jei bus naudojami realus skaiciai dai dalyba bus / o ne div ir mod :)

O pats kiekio litrais skaiciavimas tai man gauvosi taip:

l_isviso  := gal * 4.55 + bus * 36.4 + (bus * 8 + gal) + (bus * 8 + gal) * 13.65;

Tik nezinau ar cia gerai suskaiciuoja.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Vakar ziurejau ta programa tai pastebejau kad reikia kablelius pakeisti i taskus. Ir jei bus naudojami realus skaiciai dai dalyba bus / o ne div ir mod :)

O pats kiekio litrais skaiciavimas tai man gauvosi taip:

l_isviso  := gal * 4.55 + bus * 36.4 + (bus * 8 + gal) + (bus * 8 + gal) * 13.65;

Tik nezinau ar cia gerai suskaiciuoja.

O kam du kartus (bus * 8 + gal)? Ir kas tas 13.65? :)

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