Pereiti prie turinio

Paskalio pratimas


Rekomenduojami pranešimai

Labas, yra čia galinčių išspręsti 1 praktinę užduotį su komanda? http://www.nec.lt/failai/2730_IT-1-2012.pdf

 

program Noname4;

   type  Zaidejai = record
               nr, // zaidejo numeris
               zmin, // zaista minuciu
               smin: integer; //sedeta minuciu
               end;
   type komanda = array[1..9999] of zaidejai;
   var z : komanda; f :text; n, j,
   i,
   l // laiku skaicius
   :integer;
begin
 assign(f, 'U1.txt'); reset(f);
 readln(f, n);
 for i:=1 to n do
 read(f, z[i].nr, l);
 close(f);
 Readln;
end.

 

Va mano pradžia ir pakimbu, nežinau kas toliau

Redagavo dzodzo
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai kai skaitai

read(f, z.nr, l);

visų pirma turi būt readln(f, z.nr, l);

o tada su ifu pasitikrink, jei skaičius mažesnis už 0, tada dėk į tą savo z.smin, priešingu atveju z.zmin.

 

Tai kaip padaryti, kad skaitytu eilute nuo trečio skaitmens ir peršoktu naujon, kai baigias eilute ?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai kaip padaryti, kad skaitytu eilute nuo trečio skaitmens ir peršoktu naujon, kai baigias eilute ?

 

Tai ciklą cikle varyk.

 

begin

assign(f, 'U1.txt'); reset(f);

readln(f, n);

for i:=1 to n do

Begin

read(f, z.nr, l);

for j:=1 to l do

<skaitai laikus.....>

Readln;

end;

close(f);

end.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisegu savo kodą, žinau, kad ir optimaliau galima parašyti, bei nėra komentarų, tai gali klausti kas neaišku :) Pirma nusiskaičiau numerį, keitimų skaičių ir ar žaidžia startiniame penkete :)

 

program Krepsinis;
const
   Cmax = 100;
   Cduom = 'U1.txt';
   Crez = 'U1rez.txt';

   Type    Masyvas = array[1..Cmax] of integer;
   var
       n, k, Daugiausia, Maziausia, maz, daug:integer;
       A:Masyvas;
       Startinis: Masyvas;
       Laikas : Masyvas;
       VisoLaiko, Sedejo : Masyvas;

procedure Rikiavimas;
var
   i, j, trump:integer;
begin
   for i:= 1 to k do
   begin
       for j:= 1 to k-i do
           if (Startinis[j] > Startinis[j+1]) then
           begin
               trump := Startinis[j];
               Startinis[j] := Startinis[j+1];
               Startinis[j+1] := trump;
           end;
   end;
end;


function DaugiausiaIrMaziausiaLaiko(var Daugiausia:integer; var Maziausia:integer; var maz:integer; var daug:integer):integer;
var
   i :integer;
begin
   maz := Sedejo[1];
   daug := VisoLaiko[1];
   for i:= 1 to n do
   begin
       if (VisoLaiko[i] > daug) then
       begin
           daug := VisoLaiko[i];
           Daugiausia := A[i];
       end;

       if (Sedejo[i] < maz) then
       begin
           maz := Sedejo[i];
           Maziausia := A[i];
       end;
   end;
end;

procedure Skaitymas;
var
   F:text;
   i, j, keitim:integer;
begin
   assign(F, Cduom);
   reset(F);
   readln(F, n);
   k := 0;
   for i:= 1 to n do
   begin
       read(F, A[i], keitim);
       read(F, Laikas[1]);
       if Laikas[1] > 0 then
       begin
           Inc(k);
           Startinis[k] := A[i];
           VisoLaiko[i] := VisoLaiko[i] + Laikas[1];
       end;
       if Laikas[1] < 0 then
       Sedejo[i] := Sedejo[i] + Laikas[1];

       for j := 2 to keitim do
       begin
           read(F, Laikas[j]);
           if Laikas[j] > 0 then
               VisoLaiko[i] := VisoLaiko[i] + Laikas[j];
           if Laikas[j] < 0 then
               Sedejo[i] := Sedejo[i] + Laikas[j];
       end;
   end;
end;

procedure Irasymas;
var
   i:integer;
   F:text;
begin
   assign(F, Crez);
   rewrite(F);
   if maz < 0 then maz := maz * -1;

   for i:= 1 to k do
   if Startinis[i] > 0 then
   begin
       write(F, Startinis[i], ' ');
   end;
   writeln(F);
   writeln(F, Daugiausia, ' ', daug);
   writeln(F, Maziausia, ' ', maz );
   close(F);
end;

begin
Skaitymas;
DaugiausiaIrMaziausiaLaiko(Daugiausia, Maziausia, maz, daug);
Rikiavimas;
Irasymas;
end.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Jau išsprendžiau šitą, dabar prie antro sedžiu uždavinio :D

 

Meta klaida, blogas skaičiau formatas ir kas keisčiausiai, jei vietoj N įrašau skaičių 1, tada veikia, bet tik pirma eilute skaito, jei N, tada blogas skaičiaus formatas, kaip suprantu, neperšoka kiton eilute..

 

program Noname5;
   type    Vard = string[10];
           Dievai = record
               vard: Vard; // Dievo vardas
               lyg:integer; // ismesta lyginiu aukuciu suma
               nelyg: integer // ismesta nelyginiu aukuciu suma
               end;
   type Dievas = array[1..50] of Dievai;
   type Kauliukai = array[1..15] of integer;
   var d : Dievas; a : Kauliukai; n,k,i,j:integer;  f :text;
begin
 assign(f, 'U2.txt'); reset(f);
 readln(f, n, k);
   for i:=1 to N do begin
   read(f, d[i].vard);
       for j:=1 to k do   begin
           read(f, a[j]);
           if a[j] mod 2 = 0 then d[i].lyg:=d[i].lyg + a[j]
           else d[i].nelyg:=d[i].nelyg + a[j];
           end;
           end;
           writeln(d[1].vard, ' ', d[1].lyg);
   close(f);
 Readln;readln
end.

 

5 3
Denta     2 4 4
Hermis    6 1 2
Dzeima    5 1 1
Hera      4 4 1
Dusia     2 4 4

Redagavo dzodzo
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Po read(f, a[j]); pridek Readln(F); Nes nepereina į naują eilutę skaitant reikšmes :)

 

Negalima, nes perskaitys tik viena skaičių, o reikia, kad skaitytu K kiekį skaičių. Buvau sugalvojes ta bajeri, kad readln(f), bet rasydavau tik readln; pamirses (f) pridėt išsprendžiau va taip:

            <..>
           read(f, a[j]);
           if a[j] mod 2 = 0 then d[i].lyg:=d[i].lyg + a[j]
           else d[i].nelyg:=d[i].nelyg + a[j];
           end;
           for z:=1 to 1 do
           readln(f);
           end;
           <..>

 

Grezdiškai, bet bent jau veikia :D

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai ta prasme, kad po visų tų trijų reikšmių nuskaitymo (ciklo) turi pereiti į naują eilutę, nes tavo atveju nepereidavo :)

Šiame uždavinyje reikalauja, kad valdovą surastum per funkciją, tai geriau reikšmes nusiskaityti ir visus veiksmus atlikti naujoje funkcijoje, bus aiškiau manau :)

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