Pereiti prie turinio

Uždavinys su masyvu pascal


Rekomenduojami pranešimai

Sveiki, reikia atlikti šį uždavinį, naudojant masyvą. Taip gavosi, kad negalėjau dalyvauti pamokoje ir praleidau masyvo temą. Taigi prašau pagalbos, gal kas bent ant kelio galėtų užvest, kaip reikia atlikti šį uždavinį, AČIŪ :)

 

http://www.part.lt/img/66f7bc380a29a780a3ae6bd507cfb24e859.jpg

Nuoroda į pranešimą
Dalintis kituose puslapiuose

program grybai;

type mas = array[1..100] of integer;

const duom_byla = 'duom.txt';
     rez_byla = 'rez.txt';


procedure skaito (var A :text; var m1,m2,m3,m4 :mas; var n :integer);
var  i :integer;
begin
readln(A,n);
for i := 1 to n do
 begin
  read(A,m1[i],m2[i],m3[i],m4[i]);
  readln(A);
 end;

end; {end skaito}

function d_rasta (var m1,m2,m3,m4 :mas; var n :integer; var A :text) :integer;
var i,diena_t,diena_kiek,daug :integer;
begin
d_rasta := m1[1]; daug := m2[1]+m3[1]+m4[1];
writeln(d_rasta,daug);
for i := 1 to n do
 begin
 if m1[i] <> 0 then begin
                    diena_t := m1[i]; diena_kiek := m2[i]+m3[i]+m4[i];
                    end;

 if (diena_kiek > daug) or ((diena_kiek > daug) and (d_rasta > diena_t)) then begin
                                                                              d_rasta := diena_t;
                                                                              writeln(d_rasta);
                                                                              daug := diena_kiek;
                                                                              end;
 diena_t := 0;
 end;
write(A,d_rasta,' ',daug)
end; {end d_rasta}

procedure raso (var A :text; var m1,m2,m3,m4 :mas; var n :integer);
var i,j,t_d,r,t1,t2,t3,t4,DD :integer;
begin

for i := 1 to n do
begin
  if m1[i] <> 0 then t_d := m1[i];
  for j := i+1 to n do
   begin
    if t_d = m1[j] then begin
                        m1[j] := 0;
                        m2[i] := m2[i]+m2[j];
                        m2[j] := 0;
                        m3[i] := m3[i]+m3[j];
                        m3[j] := 0;
                        m4[i] := m4[i]+m4[j];
                        m4[j] := 0;
                        end;
   end;
end;

r:=0;
for i := 1 to n do
begin
 if (m1[i] <> 0) then begin
                  r := r+1;
                  write(r);
                  m1[r] := m1[i];
                  m2[r] := m2[i];
                  m3[r] := m3[i];
                  m4[r] := m4[i];
                  writeln('diena:',m1[r],' grybai:',m2[r],' ',' ',m3[r],' ',m4[r]);
                  end;
end;
writeln('r:',r);
for i := 1 to r-1 do
for j := i to r do
 if m1[i] > m1[j] then begin
                       t1 := m1[i]; t2 := m2[i]; t3 := m3[i]; t4 := m4[i];
                       m1[i] := m1[j]; m2[i] := m2[j]; m3[i] := m3[j]; m4[i] := m4[j];
                       m1[j] := t1; m2[j] := t2; m3[j] := t3; m4[j] := t4;
                       end;
for i := 1 to r do
writeln(A,m1[i],' ',m2[i],' ',m3[i],' ',m4[i]);

d_rasta(m1,m2,m3,m4,n,A);
end; {end raso}

var n,zz :integer;
   mm1,mm2,mm3,mm4 :mas;
   Ab,Bb :text;
begin
assign(Ab,duom_byla); reset(Ab);
assign(Bb,rez_byla); rewrite(Bb);

skaito(Ab,mm1,mm2,mm3,mm4,n);
raso(Bb,mm1,mm2,mm3,mm4,n);

close(Ab);
close(Bb);

readln;
end.

 

kai ruošiausi egzaminui teko rašyti :D gal ir nėra labai gera programa, bet manau veikianti :)

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