Pereiti prie turinio

Rekomenduojami pranešimai

Taigi pasiūlysiu tiek pagalbą tiek sprendimą, jei nori tik pagalbos tai neleisk šio puslapio žemyn :)

 

Iš pradžių tau reikėtų patikrinti tą eilutę ar turimas skaičius yra mažiausias ('praleidžiant' su `for` funkcija)

Kai surandi mažiausią tikrini ar tame stulpelyje jis didžiausias (būtina išsaugoti `x` koordinates kai surandi mažiausią skaičių eilutėje)

 

Na o toliau sprendimas:

|

|

|

|

|

\/

 

program Arrrghhh;
const    CFailasIn = 'duom.txt';
       CFailasOut = 'rez.txt';
var
           failasIn, failasOut : text;
               plotis, aukstis : integer;
              i, j, k, l, temp : integer;
                          x, y : integer;
                      duomenys : array[1..30,1..30] of integer;

procedure nuskaityti();
begin
   //Nuskaitom failą
   assign(failasIn, CFailasIn);
   reset(failasIn);
   Read(failasIn, plotis, aukstis); //Gali būti ir aukštis, plotis...Neaiški sąlyga :)
   for i := 1 to aukstis do
       for j := 1 to plotis do
           Read(failasIn, duomenys[i][j]);
   close(failasIn);
end;

procedure rasyti(ka, y, x : integer);
begin
   //Rašom failą
   assign(failasOut, CFailasOut);
   rewrite(failasOut);
   Write(failasOut, ka, ' ', y, ' ', x);
   close(failasOut);
end;

procedure ieskoti();
begin
   //Bandom ieškoti to ko nori sąlyga
   //kurie kartu yra mažiausias tos eilutės ir didžiausias to stulpelio elementas.
   for i := 1 to aukstis do
       begin
           l := 0;
           temp := duomenys[i][1];
           x := 1;   //Tuo atveju jei pirmas skaitmuo ir yra tai ko mum reikia
           y := i;
           for j := 1 to plotis-1 do
   //Tikrinam sekantį narį ar jis nėra mažesnis už priešais esantį
               if temp > duomenys[i][j+1]
                   then begin
                       temp := duomenys[i][j+1]; //Yra, rašom į kintamajį
                       y := i;
                       x := j+1;
                   end;
                   //Radome toje eilutėje esantį mažiausią skaičių
                   // jis yra `temp`, beje kordinatės `x` ir `y` taipogi padės
           for k := 1 to aukstis do
   //Tikrinam ar tame stulpelyje mūsų rastas skaičius yra didžiausias
               if temp >= duomenys[k][x]
                   then l := l + 1;
               if l = aukstis
                   then rasyti(temp, y, x);
      end;
end;
begin
 nuskaityti();
 ieskoti();
end.

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