Pereiti prie turinio

Rekomenduojami pranešimai

Galit pasakyti kodėl meta klaidą peržengti rėžiai?

 

program baldai;

type

uzsakymai=record

uzs:string[15];

a,b,c:longint;

end;

mas=array [1..100] of uzsakymai;

var m:mas;

n,sum,max,nr, i:longint;

df,rf :text;

procedure suma(n:longint;M:mas;

var max:longint; var nr:longint);

 

begin

readln(df, M.uzs, M.a, M.b, M.c);

sum:=0;

sum:=M[1].a+M[1].b+M[1].c;

sum:=max;

nr:=1;

for i:= 2 to n do

if max<M.a+M.b+M.c then begin

max:=M.a+M.b+M.c ;

nr:=i

end;

 

end;

begin

Assign (df, 'bald.txt');

reset(df);

readln(df, n);

suma(n,M,max,nr);

close(df);

assign(rf, 'baldrez.txt');

rewrite(rf);

writeln(rf, max);

writeln(rf, nr);

close(rf);

end.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Galit pasakyti kodėl meta klaidą peržengti rėžiai?

 

program baldai;

type

uzsakymai=record

uzs:string[15];

a,b,c:longint;

end;

mas=array [1..100] of uzsakymai;

var m:mas;

n,sum,max,nr, i:longint;

df,rf :text;

procedure suma(n:longint;M:mas;

var max:longint; var nr:longint);

 

begin

readln(df, M.uzs, M.a, M.b, M.c);

sum:=0;

sum:=M[1].a+M[1].b+M[1].c;

sum:=max;

nr:=1;

for i:= 2 to n do

if max<M.a+M.b+M.c then begin

max:=M.a+M.b+M.c ;

nr:=i

end;

 

end;

begin

Assign (df, 'bald.txt');

reset(df);

readln(df, n);

suma(n,M,max,nr);

close(df);

assign(rf, 'baldrez.txt');

rewrite(rf);

writeln(rf, max);

writeln(rf, nr);

close(rf);

end.

:o Kodėl tu viskam naudoji globalius kintamuosius? :o Juk už Globalius ciklo kintamuosius egzamine atima taškų... :/ Ir be to duomenų failo neįdėjai :D sunkoka patrikrint kodėl neveikia be duomenų failo :) Ir šiaip tu į masyvą įrašai tik pirmus elementus :D

Redagavo audrius^
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Galit pasakyti kodėl meta klaidą peržengti rėžiai?

 

program baldai;

type

uzsakymai=record

uzs:string[15];

a,b,c:longint;

end;

mas=array [1..100] of uzsakymai;

var m:mas;

n,sum,max,nr, i:longint;

df,rf :text;

procedure suma(n:longint;M:mas;

var max:longint; var nr:longint);

 

begin

readln(df, M.uzs, M.a, M.b, M.c);

sum:=0;

sum:=M[1].a+M[1].b+M[1].c;

sum:=max;

nr:=1;

for i:= 2 to n do

if max<M.a+M.b+M.c then begin

max:=M.a+M.b+M.c ;

nr:=i

end;

 

end;

begin

Assign (df, 'bald.txt');

reset(df);

readln(df, n);

suma(n,M,max,nr);

close(df);

assign(rf, 'baldrez.txt');

rewrite(rf);

writeln(rf, max);

writeln(rf, nr);

close(rf);

end.

 

Jeigu rašo: Peržengti rėžiai, tai klaida tikriausiai bus cikle. :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

:o Kodėl tu viskam naudoji globalius kintamuosius? :o Juk už Globalius ciklo kintamuosius egzamine atima taškų... :/ Ir be to duomenų failo neįdėjai :D sunkoka patrikrint kodėl neveikia be duomenų failo :) Ir šiaip tu į masyvą įrašai tik pirmus elementus :D

 

O tai kaip tada tų globalių ciklo kintamųjų nenaudoti? arba pakeisti?

 

Duomenų failas

 

5

užsakymas 1 30 15 20

užsakymas 2 10 10 10

užsakymas 3 50 20 30

užsakymas 4 15 15 20

užsakymas 5 40 15 15

Redagavo white2626
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Va parašiau šiek tiek labiau struktūrizuotą :)

Program programa;
const
   duom = 'DuomenuFailoPavadinimas.txt';
   rez  = 'RezultatuFailoPavadinimas.txt';
type
   irasas = record
       pav:string[15];
       x, y, z:longint;
       end;
   mas = array[1..100] of irasas;
var
   Uzsakymai:mas;
   Kiekis:integer;

Procedure Nusiskaitymas();
var D:text;
   i:integer;
begin
assign(D, duom); reset(D);
Readln(D, Kiekis);
for i:=1 to Kiekis do
   begin
   Readln(D, Uzsakymai[i].pav, Uzsakymai[i].x, Uzsakymai[i].y, Uzsakymai[i].z);
   end;
close(D);
end;

procedure NumerisDidziausiosSumos(var m, n:integer);
var i:integer;
   max, nr:longint;
begin
max := Uzsakymai[1].x + Uzsakymai[1].y + Uzsakymai[1].z;
for i:=2 to Kiekis do
   begin
   if Uzsakymai[i].x + Uzsakymai[i].y + Uzsakymai[i].z > max then
       begin
       nr := i;
       max := Uzsakymai[i].x + Uzsakymai[i].y + Uzsakymai[i].z;
       end;
   end;
m := max;
n := nr;
end;

Procedure Irasymas();
var R:text;
   max_suma, nr:integer;
begin
assign(R, rez); rewrite(R);
NumerisDidziausiosSumos(max_suma, nr);
writeln(R, max_suma);
writeln(R, nr);
close(R);
end;


Begin
Nusiskaitymas;

Irasymas;
End.

DuomenuFailoPavadinimas.txt
5
užsakymas     1 30 15 20
užsakymas     2 10 10 10
užsakymas     3 50 20 30
užsakymas     4 15 15 20
užsakymas     5 40 15 15 

Redagavo audrius^
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Va parašiau šiek tiek labiau struktūrizuotą :)

Program programa;
const
   duom = 'DuomenuFailoPavadinimas.txt';
   rez  = 'RezultatuFailoPavadinimas.txt';
type
   irasas = record
       pav:string[15];
       x, y, z:longint;
       end;
   mas = array[1..100] of irasas;
var
   Uzsakymai:mas;
   Kiekis:integer;

Procedure Nusiskaitymas();
var D:text;
   i:integer;
begin
assign(D, duom); reset(D);
Readln(D, Kiekis);
for i:=1 to Kiekis do
   begin
   Readln(D, Uzsakymai[i].pav, Uzsakymai[i].x, Uzsakymai[i].y, Uzsakymai[i].z);
   end;
close(D);
end;

procedure NumerisDidziausiosSumos(var m, n:integer);
var i:integer;
   max, nr:longint;
begin
max := Uzsakymai[1].x + Uzsakymai[1].y + Uzsakymai[1].z;
for i:=2 to Kiekis do
   begin
   if Uzsakymai[i].x + Uzsakymai[i].y + Uzsakymai[i].z > max then
       begin
       nr := i;
       max := Uzsakymai[i].x + Uzsakymai[i].y + Uzsakymai[i].z;
       end;
   end;
m := max;
n := nr;
end;

Procedure Irasymas();
var R:text;
   max_suma, nr:integer;
begin
assign(R, rez); rewrite(R);
NumerisDidziausiosSumos(max_suma, nr);
writeln(R, max_suma);
writeln(R, nr);
close(R);
end;


Begin
Nusiskaitymas;

Irasymas;
End.

DuomenuFailoPavadinimas.txt
5
užsakymas     1 30 15 20
užsakymas     2 10 10 10
užsakymas     3 50 20 30
užsakymas     4 15 15 20
užsakymas     5 40 15 15 

 

 

O tai aš nesuprantu pas mane gi beveik tas pats, kodėl man klaidą meta? o tau ne?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Todėl, kad tu į masyvą įsirašai tik pirmo užsakymo reikšmes, ir duomenų failas pas tave kitoks spėju :), ta prasme string[15], reiškia, kad nusiskaitomas pirmos 15 simbolių (įskaitant tarpus).

O ciklas automatiškai nepaima sekančios eilutės?mano duomenų failas

 

 

 

5

užsakymas 1 (15char)30 15 20

užsakymas 2 (15char)10 10 10

užsakymas 3 (15char)50 20 30

užsakymas 4 (15char)15 15 20

užsakymas 5 (15char)40 15 15

Redagavo white2626
Nuoroda į pranešimą
Dalintis kituose puslapiuose

O kaip man pataisyti saviškę programą? Bandžiau įdėti readln(df)------------- kad nuskaitytu sekančia eilutę, bet nepadeda, ryt egzas, gal gali paaiškinti, kas yra globalūs kintamieji cikle ir kaip man sutvarkyti, kad skaičiuotų nors ir su tais globaliais?

 

Maniškės jaučiu pataisyti neina? Nes aš viską sudėjau į vieną.

Redagavo white2626
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Norėjau paklaust gana paprasto klausimo. Uždavinio instrukcijose parašyta "Programoje būtinai naudokite vienmačius sveikųjų skaičių masyvus". Tai aš nesuprantu ar tas masyvas turi būtinai būt "... of integer;" ar gali būt sudarytas iš įrašų, kurie sudaryti iš sveikųjų skaičių?

 

Pagal tą sąlygą gali būt šitaip?

type irasas = record
    sk1, sk2:integer;

    masyvas = array[1..100] of irasas;

 

Ar būtinai turi būt tik šitaip:

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

Redagavo wiliasas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

O kaip man pataisyti saviškę programą? Bandžiau įdėti readln(df)------------- kad nuskaitytu sekančia eilutę, bet nepadeda, ryt egzas, gal gali paaiškinti, kas yra globalūs kintamieji cikle ir kaip man sutvarkyti, kad skaičiuotų nors ir su tais globaliais?

 

Maniškės jaučiu pataisyti neina? Nes aš viską sudėjau į vieną.

 

Na galima, bet čia daug daugiau darbo būtų negu tiesiog ją perrašyti :/. O dėl to, kad nuskaitytų viską iš failo (Jeigu žinai elementų skaičių), naudok FOR ciklą :). Būtų kažkas panašaus į tai:

readln(df, kiek);
for i:=1 to kiek do
  begin
  readln(df, elem1, elem2, elem3);
  end;

 

Norėjau paklaust gana paprasto klausimo. Uždavinio instrukcijose parašyta "Programoje būtinai naudokite vienmačius sveikųjų skaičių masyvus". Tai aš nesuprantu ar tas masyvas turi būtinai būt "... of integer;" ar gali būt sudarytas iš įrašų, kurie sudaryti iš sveikųjų skaičių?

 

Pagal tą sąlygą gali būt šitaip?

type irasas = record
    sk1, sk2:integer;

    masyvas = array[1..100] of irasas;

 

Ar būtinai turi būt tik šitaip:

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

Jeigu parašyta, kad galima naudoti tik sveikųjų skaičių masyvus, tai reiškia, kad TYPE gali būti tik: masyvas = array[1..n] of integer; įrašų naudoti negalima ;), beabejo su tokia sąlyga ir matricų naudoti negalima ;)

Redagavo audrius^
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Jeigu parašyta, kad galima naudoti tik sveikųjų skaičių masyvus, tai reiškia, kad TYPE gali būti tik: masyvas = array[1..n] of integer; įrašų naudoti negalima ;)

 

Labai ačiū :) Šiandien klasiokas mokytojo paklausė apie tai, tai jis pasakė, jog galima naudot įrašus, tada labai susipainiojau.. Nes pagal mane tai irgi negalima naudot įrašų šiuo atveju. Gal netaip mokytojas kažką suprato..

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Padarei abi praktines užduotis? Ar pastebėjai, kad antros užduotis pavizdiniai duomenys buvo klaidingi?

 

Deje, nepavyko pilnai padaryti nei vienos. Smagiausia tai buvo, kai pusė mokinių po 5min išėjo ir nebesprendė praktinės užduoties. Klaidą pastebėjau ir pataisiau, dar davė +15min

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Jo ir pas mūsų nemažai išėjo nepradėjus užduotys :D . Pirma užduotį padariau ligu teisingai, tik su antra kokį 20 min neradau, kodėl neskaito man duomenų ir meta error. Tai antrą nevisą padariau, mums nepridėjo laiko dėl klaidos :( . Dabar jaučiu pakartotinė sesija gaus žymiai lengvesnius egzus kaip ir 2009 pagrindinės sesijos užduotys sunkokos, o pakartotinės sesijos žymiai supaprastintos užduotys. Būtų fainai jei duotų taškų už tai, kad egze buvo klaida, bet aišku taip nebus, nes klaida nesalygoj, o tik duomenyse.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Šiap aš pasidariau 3 masyvus integer masyvus, vienas laikė skaičiu apie vyriškas arba moteriškas pirštines, kitas dydi pirštinių, o paskutinis masyvas laikė skaičiu kuris reiškė ranką (dešinę, kairę) . Ir tada su funkcijom dirbau, daug aiškint nevisai, prisimenu, gaila, kad neatsisiunčiau savo programos į savo emailą, nes dabar biški sunešiotas esu po tokio egzo :(.

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