Pereiti prie turinio

fps didelei programoj reikia mazos pagalbos


Rekomenduojami pranešimai

uzuotis: tekstiniame faile pirmoje eiluteje irasytas skaicius nurodantis kiek gatveje yra namu.toliau eina n eiluciu, kuriu kiekvienoje yra du skaiciai 1.namo numeris 2.kiek gyventoju gyvena name. namai kurie lyginiai stovi desineje, nelyginiai kaireje. reikejo parasyti programa kuri atspausdintu: kiek gyventoju gyvena gatveje, kiek kaireje kiek desineje, kiek vidutiniskai kaireje ir kiek desineje,kuriame kairiosios ir kuriame desiniosios puses name gyvena daugiausi, maziausia gyventoju,kiek ju yra., VISUS KAIRIOSIOS IR DESINIOSIOS PUSES NAMUS DIDEJANCIAI,KURUOSE NIEKAS NEGYVENA.(cia nurodyta kad su procedura) tai va ikeliu savo rasyta koda,kuriame visi reikalavimai ir uzduotys ivykdytos, tik nezinau kaip su namais kuruose niekas negyvena, man rasymo procedura neatspausdina tu namu kuruose nera gyventoju. gal kas zino kaip padaryti ar bent gali uzvesti ant kelio kaip daryti, nes pati tai nebezinau :)

program gyventojai;

type masyvas = array[1..499] of integer;

var n, des, kair, y : integer;

A, B, C, D, x : masyvas;

{-----------------------procedura failo nuskaitymui----------------------------}

procedure skaitymas;

var i, nr, kk : integer; //kk-gyv. skaicius, nr- namo numeris

fd : text;

begin

assign(fd,'gyventojai.txt');

reset(fd);

readln(fd, n);

for i := 1 to n do

begin

readln(fd, nr, kk);

if nr mod 2 = 0

then begin

des += 1;

A[des] := kk;

C[des] := nr;

end

else begin

kair += 1;

B[kair] := kk;

D[kair] := nr;

end;

end;

close(fd);

end;

{----------------procedura atspausdinti namams kuruose niekas negyvena---------}

procedure begyventoju(G, F : masyvas; sk : integer; var xx:masyvas; yy:integer);

var i : integer;

begin

yy := 0;

for i := 1 to sk do

if G = 0

then begin

yy := yy + 1;

xx := F;

end;

end;

{---------------------------f-ja skaicuojanti gyventoju suma-------------------}

function viso(G :masyvas): integer;

var i : integer;

begin

viso := 0;

for i := 1 to n do

viso += G;

end;

{-------------------------f-ja skaicuojanti gyventoju vidurki------------------}

function vid(sum, sk : integer) : real;

begin

vid := sum / sk;

end;

{----------------f-ja skaicuojanti didziausia gyventoju skaiciu----------------}

function max(G:masyvas; sk:integer) : integer;

var i, maxnr : integer;

begin

max := 0;

for i := 1 to sk do

if max <= G

then begin

max := G;

maxnr := i;

end;

max := maxnr;

end;

{------------------f-ja skaicuojanti maziausia gyventoju skaiciu---------------}

function min(G:masyvas; sk:integer) : integer;

var i, minnr : integer;

begin

min := 100;

for i := 1 to sk do

if min > G

then begin

min := G;

minnr := i;

end;

min := minnr;

end;

{------------------procedura atsakymu rasymui i faila--------------------------}

procedure rasymas;

var fr : text;

i : integer;

begin

Assign(fr,'gyventojai.rez');rewrite(fr);

writeln(fr,viso(A) + viso(B));

writeln(fr,viso(B),' ',viso(A));

writeln(fr,vid(viso(B) ,kair):2:2,' ',vid(viso(A), des):2:2);

writeln(fr,D[max(B, kair)],' ',B[max(B, kair)]);

writeln(fr,C[max(A, des)],' ' ,A[max(A, des)]);

writeln(fr,D[min(B, kair)],' ',B[min(B, kair)]);

writeln(fr,C[min(A, des)],' ',A[min(A, des)]);

writeln(fr, y, x[1]);

for i := 1 to y do

write(fr, x,' ');

close(fr);

end;

{--------------------pagrindine programa---------------------------------------}

begin

skaitymas;

begyventoju(B, D, kair, x, y);

rasymas;

end.

aciu iems kurie nepatinges padeti ;)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

yy := yy + 1;
xx[i] := F[i];

 

Čia kaip suprantu yy - kaupi kiek namų yra be gyventojų ir xx - masyvas kuriame išsaugai tų namų numerius?

Jeigu taip,tai nemanau,kad reiktu naudot kintamajį 'i' , nes tu suki ciklą per visus namus,o tokių,kur nėra gyventoju bus tik keli,todėl tau reikia naudoti kitą kintamajį - 'yy', nes jis didėja tik tada kai randa nama be gyventojų.

yy:=yy +1;
xx[yy]:= F[i];

 

TOliau,jeigu viską viršui gerai supratau tai

for i := 1 to y do
write(fr, x[i],' ');

 

čia turėtų būt tų namų išvedimas.Tai kodėl tu naudoji 1 to y ,jeigu tu kaupei namus 'yy',tuo lab ir išvedinėji masyvą 'x' , kai naudojai masyvą ' xx '.Ar aš kažko nesuprantu? :|

 

P.S Nu išmokit įdėti kodą į tam skritus tagus,tikrai nefaina skaityt tokio teksto :|

Redagavo C_Linas
Nuoroda į pranešimą
Dalintis kituose puslapiuose
program gyventojai;
type masyvas = array[1..499] of integer;
var n, des, kair, skk, skd : integer;
   A, B, C, D, nerk, nerd : masyvas;
{-----------------------procedura failo nuskaitymui----------------------------}
procedure skaitymas;
var i, nr, kk : integer;  //kk-gyv. skaicius, nr- namo numeris
   fd : text;
begin
   assign(fd,'gyventojai.txt');
   reset(fd);
   readln(fd, n);
   for i := 1 to n do
       begin
           readln(fd, nr, kk);
           if nr mod 2 = 0
               then begin
                       des += 1;
                       A[des] := kk;
                       C[des] := nr;
                    end
               else begin
                       kair += 1;
                       B[kair] := kk;
                       D[kair] := nr;
                    end;
       end;
   close(fd);
end;
{----------------procedura atspausdinti namams kuruose niekas negyvena---------}
procedure begyventoju(B, D, A, C : masyvas; kair, des : integer);
var i : integer;
begin
   skk := 0;
   skd := 0;
   for i := 1 to kair do
       if B[i] = 0
           then begin
                   skk += 1;      //skk-kairiuju namu kuruose nera gyv. kiekis
                   nerk[skk] := D[i];//nerk-namu be gyventoju numeriai
                end;
   for i := 1 to des do
       if A[i] = 0
           then begin
                   skd += 1;  //skd-desiniuju namu kuruose nera gyv. kiekis
                   nerd[skd] := C[i]//nerd-namu be gyventoju numeriai
                end;
end;
{---------------------------f-ja skaicuojanti gyventoju suma-------------------}
function viso(G :masyvas): integer;
var i : integer;
begin
   viso := 0;
   for i := 1 to n do
       viso += G[i];
end;
{-------------------------f-ja skaicuojanti gyventoju vidurki------------------}
function vid(sum, sk : integer) : real;
begin
   vid := sum / sk;
end;
{----------------f-ja skaicuojanti didziausia gyventoju skaiciu----------------}
function max(G:masyvas; sk:integer) : integer;
var i, maxnr : integer;
begin
   max := 0;
   for i := 1 to sk do
       if max <= G[i]
           then begin
                   max := G[i];
                   maxnr := i;
                end;
max := maxnr;
end;
{------------------f-ja skaicuojanti maziausia gyventoju skaiciu---------------}
function min(G:masyvas; sk:integer) : integer;
var i, minnr : integer;
begin
   min := 100;
   for i := 1 to sk do
       if min > G[i]
           then begin
                    min := G[i];
                    minnr := i;
                end;
min := minnr;
end;
{------------------procedura atsakymu rasymui i faila--------------------------}
procedure rasymas;
var fr : text;
   i : integer;
begin
   Assign(fr,'gyventojai.rez');rewrite(fr);
   writeln(fr,viso(A) + viso(B));
   writeln(fr,viso(B),' ',viso(A));
   writeln(fr,vid(viso(B) ,kair):2:2,' ',vid(viso(A), des):2:2);
   writeln(fr,D[max(B, kair)],' ',B[max(B, kair)]);
   writeln(fr,C[max(A, des)],' ' ,A[max(A, des)]);
   writeln(fr,D[min(B, kair)],' ',B[min(B, kair)]);
   writeln(fr,C[min(A, des)],' ',A[min(A, des)]);
   for i := 1 to skk do
       write(fr, nerk[i],' ');
   for i := 1 to skd do
       write(fr, nerd[i],' ');
   close(fr);
end;
{--------------------pagrindine programa---------------------------------------}
begin
   skaitymas;
   begyventoju(B, D, A, C, kair, des);
   rasymas;
end.

atrodo pataisiau dabar gerai viskas

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