Pereiti prie turinio

Maži neaiškumai FPS


Rekomenduojami pranešimai

Bandžiau viena programėlę rašyti ir iškart užstrigau ties duomenų nuskaitymu. Net juokinga, kad neišeina kažkas tokioje vietoje... Tai va, programa "Kauliukai" http://nec.lt/failai/2730_IT-1-2012.pdf. Duomenų failo duomenys:

 

2 3 (2 - dievų skaičius, 3 - tiek kartų metamas kauliukas)

 

Hermis 6 1 2

 

Hera 2 6 6

 

ir nepavyksta šių duomenų nuskaityti gražiai...

Štai mano programos pradžia. Kai bandau išvesti duomenis į ekraną pasitikrinimui man išveda ne visus duomenis. Išveda tik pirma eilute, kitų kažkodėl nenuskaito ir nesuprantu kodėl.

 

program Kauliukai;

const CMax = 50;

CDuom = 'duom.txt';

CRez = 'rez.txt';

 

type Dievai = record

vardas : string[10];

Kaul_Sk : integer;

end;

 

mas = array[1..Cmax] of Dievai;

 

var D:Mas; // Dievu ir ismestu kauliuku masyvas

 

 

Procedure skaityti;

var i, k, n : integer;

fd : text;

begin

assign(fd, CDuom); reset(fd);

readln(fd, n, k);

for i:=1 to n do with D do

begin

read(fd, vardas);

write(vardas);

for i:=1 to k do with D do

begin

read(fd, kaul_sk);

write(kaul_sk, ' ');

end;

end;

writeln;

close(fd);

end;

 

begin

skaityti;

end.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ech.. vistiek nepavyksta man. Pridėjau tą readln, kad pradėtu kitą eilutę skaityti, bet vistiek man nenuskaito tų duomenų. Tik pirmąją eilutę.

 

Procedure skaityti;
var i, j, n, k: integer;
   fd : text;
begin   j:=1;
   Assign(fd, Cduom); reset(fd);
   readln(fd, n, k);
   for i:=1 to n do with D[i] do
   begin
       read(fd, vardas);
       write(vardas);

                       for i:=j to k do with D[i] do
                       begin
                       j+=1;
                       read(fd, kaul_sk);
                       write(kaul_sk, ' ');
                       end;
                       writeln;
       readln(fd);
   end;
   close(fd);
end;

Nuoroda į pranešimą
Dalintis kituose puslapiuose

mano variantas:

program U2;

const CDuom = 'U2.txt';
     CRez  = 'U2rez.txt';
     CMax  = 50;

type Eil = string[10];
    dievas = record
               vardas : Eil;
               taskai : integer;   //tasku isviso
               klyg   : integer;   //kiek lyginiu skaicius
             end;

    TMas = array[1..CMax] of dievas;

var A,B,C : TMas;
   n,
   k : integer;
   nr : integer;

procedure Skaityti;
var i,j,sk : integer;
   F : text;
begin
 Assign(F,CDuom); Reset(F);
 ReadLn(F,n,k);
 for i := 1 to n do
   begin
     A[i].taskai := 0; A[i].klyg := 0;
     Read(F,A[i].vardas);
       for j := 1 to k do
         begin
           Read(F,sk);
             if sk mod 2 = 0 then begin
                                    A[i].taskai := A[i].taskai + sk;
                                    A[i].klyg := A[i].klyg + 1;
                                  end
                             else A[i].taskai := A[i].taskai - sk;

         end;
         ReadLn(F);
   end;
 Close(F);
end;  

Redagavo Hanteris
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ech.. vistiek nepavyksta man. Pridėjau tą readln, kad pradėtu kitą eilutę skaityti, bet vistiek man nenuskaito tų duomenų. Tik pirmąją eilutę.

 

Procedure skaityti;
var i, j, n, k: integer;
   fd : text;
begin   j:=1;
   Assign(fd, Cduom); reset(fd);
   readln(fd, n, k);
   for i:=1 to n do with D[i] do
   begin
       read(fd, vardas);
       write(vardas);

                       for i:=j to k do with D[i] do
                       begin
                       j+=1;                          //*
                       read(fd, kaul_sk);
                       write(kaul_sk, ' ');
                       end;
                       writeln;
       readln(fd);
   end;
   close(fd);
end;

 

Manau, jog klados čia(*). Tas kintamasis "j" ne įrašo elementas, todėl negali rašyti with D do, be to kam tu "j" didini vienetu, jei čia for ciklas.

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