Pereiti prie turinio

Pascal Ranges Overrun?


Rekomenduojami pranešimai

Padariau programa grybu skaiciavimams, viena is paprastesniu. Viskas ok, turetu veikt, bet meta Nr. 201: Renges Overrun. Gal gali kas padėti kas čia blogai? array kaip ir atitinka mėnesiui (ko ir užtenka). Ir jei yra vietu, kur butu galima patrumpinti, būčiau labai dėkingas, jei pataisytumėt :)

 

Štai programa.

 

program Noname1;
var duom, rez:text;
   n, i, k, l, a, b, d, e, max, h, p :integer;
diena, Bar, raud, leps, c, f, g,  s, j, o : array[1..100] of integer;
begin
   assign(duom, 'C:\Users\Rimas\Desktop\Grybautojas.txt');
   reset(duom);
   readln(duom, n);
   for i:=1 to n do
       begin
           read(duom, diena[i], bar[i],raud[i],leps[i]);
           {bar[k] - baravykai k-diena
            raud[k] - raudoniakiai k-diena
            leps[k] - lepsiai k-diena}
           a:= a + bar[i] + raud[i] + leps [i]; {a - grybu kiekis is viso}
           b:= b + bar[i]; {b - baravyku kiekis is viso}
           c[i]:= bar[i] + raud[i] + leps [i]; {c - kiek surinkta tam tikra diena}
           if diena[i] mod 2 = 0 then d:= bar[i]+raud[i]+leps[i]; {surinkti grybai lygine diena}
           if diena[i] mod 2 = 1 then e:= bar[i]+raud[i]+leps[i]; {surinkti grybai nelygine diena}
       end;
    k:=1;
    l:=1;
    for i:= 1 to a do
    begin
       if c[i] > 20 then
       begin
           f[k]:=diena[i]; {f - dienos, per kurias buvo surinkta daugiau nei 20 grybu is viso}
           k:= k + 1;
       end;
       if ((bar[i] > 20) and (raud[i]> 20) and (leps[i]>20)) then
       begin
           g[l]:= diena[i]; {g - dienos, kuriose buvo surinkta daugiau nei 20 kiekvienos grupes grybu}
           l:= l + 1;
       end;
    end;
    max:= c[1];
    p:= 1;
    for i:= 2 to n do
       if c[i] > max then max:= c[i];
    for i:= 1 to n do
       if max = c[i] then
       begin
           j[n]:= diena[i]; {j - kuria diena buvo surinkta daugiausiai grybu}
           p:=p+1;
       end;
    max:= bar[1];
    for i:= 1 to n do
       if bar[i] > max then
       begin
           max := bar[i];
           h:= diena[i]; { h - diena, kai buvo surinkta daugiausiai baravyku}
       end;
    for i:=1 to 31 do s[i]:= 1;
    for i:= 1 to a do s[diena[i]]:= 0;
    k:=1;
    for i:= 1 to 31 do
       if s[i]=1 then
       begin
           o[k]:= i; {o  - kuriomis dienomis nebuvo rinkta grybu}
           k:= k + 1;
       end;
    Writeln('Grybauta dienu: ', n);
    Writeln('Kiek grybu nugrybauta: ', a);
    Writeln('Kiek is viso baravyku: ', b);
    Writeln('Kiek surinkta grybu per lygines dienas: ', d);
    Write('Dienos, kuriose buvo surinkta daugiau nei 20 grybu: ');
       for i:= 1 to n do if f[i]>0 then Writeln(f[i]);
    Write('Dienos, kriuose buso surinkta kiekvieno grybo daugiau nei 20 vienetu: ');
       for i:= 1 to n do  if g[i]>0 then writeln (g[i]:2);
    Write('Diena, kada buvo surinkta daugiausiai grybu: ');
       for i:= 1 to n do if  j[i]>0 then writeln (j[i]:2);
    Writeln('Diena, kada buvo surinkta daugiausiai baravyku: ', h);
    Writeln('Dienos, kada nebuvo rinkta grybu: ');
       for i:= 1 to n-1 do write(o[i]);
    Readln;
end.

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