Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki, prireikė Jūsų pagalbos. Kažkodėl neįvykdoma šį procedūrą, jei kas galite pažiūrėkite kas blogai.

//-------------------------------------------------------------------------------------------------------------

//Procedura nuskaitanti duomenys is tekstinio failo

procedure duomenys (var vard : mas2; // masyvas i kuri irasomas vardas (string)

var men, dien : mas1; // masyvai i kuriuos irasoma menesiai ir dienos

var n : integer); // suskaiciuoja kiek yra zmoniu

var f : text;

begin

n := 0;

assign(f, 'duom.txt'); Reset(f);

while not eof do

begin

n := n + 1;

ReadLn(f, vard[n], men[n], dien[n]);

end;

Close(f);

end;

//---------------------------------------------------------------------------------------------------------------

 

O čia duomenų failas: (vardas, menuo, diena)

 

Benas 12 1

Gintaras 1 2

Gintare 4 21

Viktorija 5 21

Darius 5 19

Lina 2 14

Redagavo audrius159
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveiki, vėl iškilo problema. Nenoriu kurti naujos temos, todėl rašau čia.

 

Užduotis buvo tokia: duotame skaičių masyve sukeiskite vietomis didžiausią ir mažiausią elementą.

 

Mano paties kodas:

------------------------------------------------------------------------------------------------------------

 

program Bevarde11;

type mas = array [1..20] of integer;

//--------------------------------------------------------

//Nuskaitomi duomenys iš failo

procedure DuomSkaitymas (var n : integer; var a : mas);

var f : text;

begin

n := 0;

Assign(f, 'duom.txt'); Reset(f);

while not eoln(f) do

begin

n := n + 1;

Read(f, a[n]);

end;

Close(f);

end;

//-----------------------------------------------------------

// Funkcija, kurioje surandama indeksas ,kurio masyvas turi mažiausią reikšmę.

function maziausias (n : integer; a : mas) : integer;

var i, nr : integer;

begin

nr := 1;

for i := 2 to n do

if a[nr] > a

then nr := i;

maziausias := nr;

end;

//-------------------------------------------------------------

// Funkcija, kurioje surandama indeksas ,kurio masyvas turi didžiausią reikšmę.

Function didziausias (n : integer; a : mas) : integer;

var i, nr : integer;

begin

nr := 1;

for i := 2 to n do

if a[nr] < a

then nr := i;

didziausias := nr;

end;

//-------------------------------------------------------------

// procedūra ,kuri turėtų sukeisti mažiausią ir didžiausią masyvo elementus vietomis

procedure Sukeitimas(n : integer; var a : mas);

var laik : integer;

begin

laik := a[maziausias(n, a)];

a[maziausias(n, a)] := a[didziausias(n, a)];

a[didziausias(n, a)] := laik;

end;

//------------------------------------------------------------

// Procedūra išvedanti rezultatus

procedure rodyti (n : integer; a : mas);

var i : integer;

begin

for i := 1 to n do

write(a:3);

end;

//-----------------------------------------------------------

var a : mas;

n : integer;

begin

DuomSkaitymas(n, a);

Write('Pradiniai duomenys: ');

Rodyti(n, a);

WriteLn;

Sukeitimas(n, a);

write('Duomenys po sukeitimo: ');

Rodyti(n, a);

Readln;

end.

 

------------------------------------------------------------------------------------------------------------

 

Procedūra DuomSkaitymas ir funkcijos maziausias ir didziausias veikia gerai(tikrinau).

Atkreipkite dėmesį į procedūrą Sukeitimas.

Redagavo audrius159
Nuoroda į pranešimą
Dalintis kituose puslapiuose

procedure Sukeitimas(n : integer; var a : mas);
var laik, i1, i2 : integer;
begin
i1 := maziausias(n, a);
i2 := didziausias(n, a);

laik := a[i1];
a[i1] := a[i2];
a[i2] := laik;
end;

 

tiesiog nurodydamas masyvo indeksą, negali jo sužinoti kviesdamas funkciją (kitose kalbose manau, tai turėtų būti leidžiama), indeksus apsiskaičiuoji, tada nurodai kaip kintamuosius ir viskas veikia ;)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

procedure Sukeitimas(n : integer; var a : mas);
var laik, i1, i2 : integer;
begin
i1 := maziausias(n, a);
i2 := didziausias(n, a);

laik := a[i1];
a[i1] := a[i2];
a[i2] := laik;
end;

 

tiesiog nurodydamas masyvo indeksą, negali jo sužinoti kviesdamas funkciją (kitose kalbose manau, tai turėtų būti leidžiama), indeksus apsiskaičiuoji, tada nurodai kaip kintamuosius ir viskas veikia ;)

 

Dėkoju, Driule.

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