Pereiti prie turinio

Rekomenduojami pranešimai

Na čia, be abejo, nelabai tinklapių programavimas, tačiau nežinojau, kur daugiau galėčiau parašyti <_<

 

Iškilo problema, kažkodėl nenuskaito pradiniu duomenų.

 

Prad. Duomenys

 

4
Petras		 3
5 13 8
4 0  5
16 1 0
Algis		  1
9 6 13
Jurgis		 4
4 14 2
4 4  15
16 15 251
1  2  3
Rita		   2
6 65 4
4 4  13

 

Programa

 

program Grybautojai;
Const
CDuom = 'u2.txt';
CRez = 'u2rez.txt';
Type
grybautojas = record
	vard:string[15];
	dien_sk:integer;
end;

grybai = record
	barav,raudon,lep:integer;
end;
Tmas = array[1..100] of grybautojas;
Gmas = array[1..100] of grybai;

var n:integer; //grybautoju skaicius
i,j:integer; // ciklo kintamieji
D,R:text; // Duomenu ir rezultatu failai
T:Tmas; // Masyvu kintamieji T ir G
G:Gmas;


Procedure nuskaitymas;
begin
	Assign(D,CDuom);
	Reset(D);
	Readln(D,n);
		for i:=1 to n do
			begin
			read(D,T[i].vard);
			read(T[i].Dien_sk);
				for j:=1 to T[i].Dien_sk do
					begin
						Read(D,G[j].barav);
						Read(G[j].raudon);
						Read(G[j].lep);
						Close(D);
					end;
			end;
end;
begin
nuskaitymas;
write(T[2].dien_sk);
write(G[6].barav,' ',G[6].raudon,' ',G[6].lep);
write(G[10].lep);
read;

end.

 

Gal žinote, kur klaida? :)

 

P.S. kompiliuoja gerai, programa pasileidžia be klaidų, tiesiog neatspausdina masyvo reikšmės, kurią jis įgijo Nuskaitymo proceduroje.

 

 

 

Atsiprašau, prieš postinan nemačiau "Programavimo" subforumo :D

Redagavo DaDyZaZ
Nuoroda į pranešimą
Dalintis kituose puslapiuose

program Grybautojai;
Const
CDuom = 'u2.txt';
CRez = 'u2rez.txt';
Type
grybautojas = record
	vard:string[15];
	dien_sk:integer;
	bar:integer;
	raud:integer;
	lep:integer;
	suma:integer;
end;

Tmas = array[1..100] of grybautojas;


var n:integer; //grybautoju skaicius
i,j:integer; // ciklo kintamieji
D,R:text; // Duomenu ir rezultatu failai
T:Tmas; // Masyvo kintamasis T


Procedure nuskaitymas;
begin
	Assign(D,CDuom);
	Reset(D);
	Readln(D,n);
		for i:=1 to n do
			begin
			read(D,T[i].vard);
			readln(D,T[i].Dien_sk);
				for j:=1 to T[i].Dien_sk do
					begin
						Read(D,T[j].bar);
						Read(D,T[j].raud);
						Readln(D,T[j].lep);
					end;
			end;
	Close(D);
end;
begin
nuskaitymas;
writeln(T[1].vard);
writeln(T[1].bar,' ',T[1].raud,' ',T[1].lep);
readln;

end.

 

Susibūrė grybautojų mėgėjų grupė. Kiekvienas dalyvis, grįžęs iš miško, užrašo, kiek rado
baravykų, raudonikių ir lepšių.
Parašykite programą, kuri skaičiuotų, kiek kiekvienas grybautojas per sezoną rado atskirai
baravykų, raudonikių bei lepšių ir kuris grybautojas surinko daugiausia grybų ir kiek jų
surinko.
Pradiniai duomenys surašyti į tekstinį failą U2.txt. Pirmoje eilutėje įrašytas grybautojų skaičius
(1 ≤ n ≤ 100). Tolesnėse eilutėse pateikiami duomenys apie kiekvieno grybautojo surinktus
grybus. Viena eilutė skiriama grybautojo vardui (pirmos 15 eilutės pozicijų) ir jo grybautų dienų
skaičiui d (1 ≤ d ≤ 50) nurodyti. Tolesnės d eilučių skiriamos to grybautojo kiekvienos dienos
surinktiems grybams nurodyti: viena eilutė – vienai dienai, kiekvienoje eilutėje yra po tris sveikuosius
skaičius – baravykų skaičius, raudonikių skaičius ir lepšių skaičius. Po to ta pačia tvarka
pateikiami kitų grybautojų duomenys.
Rezultatai turi būti įrašomi į tekstinį failą U2rez.txt. Čia kiekvienoje eilutėje nuo pradžios
spausdinamas grybautojo vardas, toliau spausdinami jo surinktų per sezoną grybų skaičiai
– baravykų, raudonikių ir lepšių. Grybautojo vardui skirkite 15 pirmų pozicijų, spausdinkite
nuo eilutės pradžios. Toliau spausdinkite grybų skaičius (kiekvienam skirkite po 5 pozicijas).
Failo gale atskira eilute spausdinkite daugiausia grybų surinkusio grybautojo vardą ir jo surinktų
per sezoną grybų skaičių. Jeigu yra keli tokie grybautojai, tada spausdinkite pirmesnį pagal
pradinių duomenų sąrašą.
Nurodymai:
Duomenims ir rezultatams apdoroti naudokite įrašo tipo kintamuosius • ir masyvus su
įrašo tipo elementais.
• Duomenims skaityti iš failo parašykite procedūrą. Duomenų nebūtina laikyti pradiniu
pavidalu.
• Parašykite procedūrą rezultatams (kas, kokių ir kiek surinko grybų) spausdinti.
• Parašykite funkciją geriausiam grybautojui (radusiam daugiausia grybų) rasti.
• Programoje neturi būti sakinių, skirtų darbui su ekranu.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Na tai čia su nuskaitymu blogai. Tu overwritini

Read(D,T[j].bar);

Read(D,T[j].raud);

Readln(D,T[j].lep);

Tu visalaik būtent į šituos tris įrašai reikšmę, nežiūrint kelintas yra narys i. Čia reikia arba dvigubo masyvo, arba dar vieno masyvo.

 

Na tai kaip tai tūrėtų atrodyti ? <_<

Redagavo DaDyZaZ
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Man atrodo panasią programą buvau rašęs:

program Grybai;
 type
Mastip = array [1..100] of integer;
//----------------------------------------------------------------------------
//Nuskaito pradinius duomenis ið failo.
procedure Nuskaitymas (var D : text; var BARAV, RAUD, LEP : Mastip);
var dien, a, b, c, i , n : integer;
 begin
Assign (D, 'U1.txt');
Reset (D);
ReadLn (D, n);
For i := 1 to n do
  begin
	ReadLn (D, dien, a, b, c);
	BARAV[dien] := BARAV[dien] + a;
	RAUD[dien] := RAUD[dien] + b;
	LEP[dien] := LEP[dien] + c;
  end;
Close (D);
 end;
//-----------------------------------------------------------------------------
//Randa kurià dienà buvo surinkta daugiasuia grybø.
function Daug_gryb (BARAV, RAUD, LEP : Mastip) : integer;
var i, did : integer; SUM : Mastip;
 begin
Daug_gryb := 0;
did := 0;
For i := 1 to 31 do
  SUM[i] := BARAV[i] + RAUD[i] + LEP[i];
For i := 1 to 31 do
  If did < SUM[i] then
	begin
	  Daug_gryb := i;
	  did := SUM[i];
	end;
 end;
//-----------------------------------------------------------------------------
//Iðveda rezultatus.
procedure Isvedimas (var R : text; var BARAV, RAUD,
LEP : Mastip);
var i : integer;
 begin
Assign (R, 'U1rez.txt');
Rewrite (R);
For i := 1 to 31 do
  If (BARAV[i] > 0) and (RAUD[i] > 0) and (LEP[i] > 0) then
	WriteLn (R, i, ' ', BARAV[i], ' ',RAUD[i], ' ',LEP[i]);
i := Daug_gryb (BARAV, RAUD, LEP);
Write (R, i, ' ', BARAV[i] + RAUD[i] + LEP[i]);
Close (R);
 end;
//-----------------------------------------------------------------------------
 var
D, R : text;
BARAV, RAUD, LEP : Mastip;
begin
 Nuskaitymas (D, BARAV, RAUD, LEP);
 Isvedimas (R, BARAV, RAUD, LEP);
end.

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