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.

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