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.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...