Pereiti prie turinio

FPascal MaxMix Pagalba


Rekomenduojami pranešimai

Sveiki, taigi parasiau koda, kuris is esamu skaiciu nustato kuris yra didziausia o kuris maziausias, bet iskilo problema sis kodas turi buga.

Pvz jei parasysit 4 skaicius, ir tarp tu skaiciu priespaskutinis bus nulis, bei tas nulis bus maziausias skaicius is visu pvz (1,2,0,4) tai si programa pagal viska turetu isvest jog maziausias skaicius yra nulis o didziausias keturi, bet taip neivyksta del dvieju if'o (if max = 0 then max := sk; if min = 0 then min := sk;), taigi prasau pagalbos zmoniu kurie gali padet istaisyt/pataisyt si buga, jei kas neaisku klauskit :)

 

program MaxMin;
var n,
   max,
   min,
   sk,
   i : integer;
begin
 WriteLn('Kiek skaiciu vesite?');
 Readln(n);

 max := 0;
 min := 0;

 for i := 1 to n do
   begin
       Readln(sk);
       if max = 0 then max := sk;
       if min = 0 then min := sk;
       if sk >= max then max := sk;
       if sk <= min then min := sk;
   end;
   Writeln('Maziausias skaicius: ',min);
   Writeln('Didziausias skaicius: ',max);
   Readln();
end.

Redagavo xvivax
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Procedure MinMax (var min, max:real; nrmin, nrmax : integer);
var i:integer;
begin
min:=m[1]; nrmin:=1; max:=m[1]; nrmax:=1;
for i:=2 to n do
 begin
 if min > m[i]
  then begin
    min:=m[i]; nrmin:=i;
       end;
 if max < m[i]
  then begin
   max:=m[i]; nrmax:=i;
       end
 end;
end;

Cia pvz tokios pat programos, tik cia paima duomenis is masyvo ir suranda dar eiles nr masyve.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
program MaxMin;
var n,
   max,
   min,
   sk,
   i : integer;
begin
 WriteLn('Kiek skaiciu vesite?');
 Readln(n);
 ReadLn(sk);
 max := sk;
 min := sk;

 for i := 2 to n do
   begin
       Readln(sk);
       if sk >= max then max := sk;
       if sk <= min then min := sk;
   end;
   Writeln('Maziausias skaicius: ',min);
   Writeln('Didziausias skaicius: ',max);
   Readln();
end.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aciu visiems uz atsakymus, pasinaudojau paskutiniu atsakymu, viskas veikia gerai tik vat nesuprantu kaip veikia tas "for i := 2 to n do" juk programoj irasiu jog nori 3 skaiciu tai iseina jog foras turi suveikti tik viena karta o jis veikia visus tris kartus kaip cia taip iseina? Ar as ne taip kaska suptrantu?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aciu visiems uz atsakymus, pasinaudojau paskutiniu atsakymu, viskas veikia gerai tik vat nesuprantu kaip veikia tas "for i := 2 to n do" juk programoj irasiu jog nori 3 skaiciu tai iseina jog foras turi suveikti tik viena karta o jis veikia visus tris kartus kaip cia taip iseina? Ar as ne taip kaska suptrantu?

Pridėjau komentarus, sukompiliuok, pratestuok, aiškiau pasidarys.

Dar galima apribojimus uždėti, jei įveda tik vieną skaičių arba neigiamą/nulį.

 

Jei n=3, tai ciklas bus vykdomas, kai i= 2 ir kai i=3

program MaxMin;
var n,
   max,
   min,
   sk,
   i : integer;
begin
 WriteLn('Kiek skaiciu vesite?');
 Readln(n);
 WriteLn('Iveskite pirmaji skaiciu');
 ReadLn(sk);
 max := sk;
 min := sk;

 for i := 2 to n do
   begin
       WriteLn('Iveskite ',i,' skaiciu');
       Readln(sk);
       if sk > max then max := sk;
       if sk < min then min := sk;
   end;
   Writeln('Maziausias skaicius: ',min);
   Writeln('Didziausias skaicius: ',max);
   Readln();
end.

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