Pereiti prie turinio

Rekomenduojami pranešimai

Praktinė užduotis iš 2007 vbe:

http://www.part.lt/img/thumb/45b2939f7746f22990794d5a86028423996.JPG

 

Po kol kas atlikau tiek:

program Grybai;
//--------------------------------------------------------------
type masyvas1=array[1..31] of integer;
    masyvas2=array[1..31] of integer;
    masyvas3=array[1..31] of integer;
//--------------------------------------------------------------
var baravykai:masyvas1;
   raudonikiai:masyvas2;
   lepsiai:masyvas3;
//--------------------------------------------------------------
procedure surinkti_grybai;
var i,n,d,b,r,l,y : integer;
   ff,ffr : text;
begin
 assign(ff, 'U1.txt'); reset(ff);
 readln(ff, n);
  for i:=1 to n do
   begin
   readln(ff, d, b, r, l);
   baravykai[d]:=baravykai[d]+b;
   raudonikiai[d]:=raudonikiai[d]+r;
   lepsiai[d]:=lepsiai[d]+l;
   end;
  assign(ffr, 'U1rez.txt');
  rewrite(ffr);
  for y:=1 to 31 do
   begin
   if baravykai[y]+raudonikiai[y]+lepsiai[y]>0
    then
     begin
      writeln(ffr, y,' ',baravykai[y],' ',raudonikiai[y],' ',lepsiai[y]);
     end;
   end;
   close(ff);
   close(ffr);
end;
//--------------------------------------------------------------
begin
 surinkti_grybai;
 readln;
end.
//--------------------------------------------------------------

 

Neturiu idėjų funkcijai parašyti, pasidalinsite mintimis? :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

function DaugiausiaGrybu(B, R, L:mas1):integer;
var i:integer;
   max:integer;
   Diena:integer;
begin
max := -1;
for i:=1 to 31 do
  begin
  sum := B[i] + R[i] + L[i];
  if sum > max then 
               begin
               max := sum;
               Diena := i;
               end;
  end;
DaugiausiaGrybu := Diena;
end;

Funkcijos reikšmė bus diena kurią buvo surinkta daugiausia grybų, o kiek grybų buvo surinkta gali tiesiog vietoj sudėti visus grybus kiek tą dieną buvo surinkta. Štai taip:

 diena := DaugiausiaGrybu(baravykai, raudonikiai, lepšiai); 
Writeln(ffr, diena, baravykai[diena]+raudonikiai[diena]+lepsiai[diena])

Ir dar kai tu pradžioje apsibrėži TYPE, tai kadangi bus naudojamas vienodo tipo masyvas visiems masyvams, užtenka apsibrėžti vieną, taip:

type masyvas1=array[1..31] of integer;

ir po to

var baravykai,
   raudonikiai,
   lepsiai:masyvas1;

Redagavo audrius^
Nuoroda į pranešimą
Dalintis kituose puslapiuose

function DaugiausiaGrybu(B, R, L:mas1):integer;
var i:integer;
   max:integer;
   Diena:integer;
begin
max := -1;
for i:=1 to 31 do
  begin
  sum := B[i] + R[i] + L[i];
  if sum > max then 
               begin
               max := sum;
               Diena := i;
               end;
  end;
DaugiausiaGrybu := Diena;
end;

Funkcijos reikšmė bus diena kurią buvo surinkta daugiausia grybų, o kiek grybų buvo surinkta gali tiesiog vietoj sudėti visus grybus kiek tą dieną buvo surinkta. Štai taip:

 diena := DaugiausiaGrybu(baravykai, raudonikiai, lepšiai); 
Writeln(ffr, diena, baravykai[diena]+raudonikiai[diena]+lepsiai[diena])

Ir dar kai tu pradžioje apsibrėži TYPE, tai kadangi bus naudojamas vienodo tipo masyvas visiems masyvams, užtenka apsibrėžti vieną, taip:

type masyvas1=array[1..31] of integer;

ir po to

var baravykai,
   raudonikiai,
   lepsiai:masyvas1;

 

Didelis ačiū :)

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