Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Zadatak u Pascalu - Problem :((

[es] :: Pascal / Delphi / Kylix :: Zadatak u Pascalu - Problem :((

[ Pregleda: 1765 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.eunet.yu.



+13 Profil

icon Zadatak u Pascalu - Problem :((25.03.2007. u 23:06 - pre 207 meseci
Pozdrav,

Treba za sredu da uradim program u pascal-u, koji bi radio sledece:

Napisati program koji od datog niza x[ i ]=1,2,3,...n čiji su elementi realni brojevi, formira drugi niz y[ i ]=1,2,3,...k koji se sastoji od k najvećih elemenata nuya x[ i ], pri čemu je broj elemenata k niya y[ i ], manji ili jednak od broja elemenata n niza x[ i ] (k<=n). Napomena: Ne traži se da elementi niza y[ i ] budu uredjeni bilo u rastucem ili opadajucem poretku.

Objasnjenje: Odmah se uocava da k ne sme biti vece od n, jer u tom slucaju zadatak je ne korektan. Ukoliko je k=n zadatak je resen prepisom istih elemenata niza x, a preostali elementi niza x, od k+1 do n prvo se postavljaju da su po jedan minimalni, a zatim se ispituje da li to jesu ili nisu u nizu y. Ako je y[ j ] < min tada dolazi do promene mesta gde se na mesto u nizu y postavlja naravno veci element niza x. To se ponavlja sve do n-tog elementa niza x.

E sad, zadnjih 7 sati se mucim sa ovim problemom i ovo je kod koji sam uradio:


Code:

Program knajvecih;
var
  x,y:array[1..10] of real;
  i,j,k,n:1..100;
  min:integer;

begin
  writeln('Koliko elemenata N, treba da ima niz X?');
  readln(n);
  for i:=1 to n do
    begin
      write('Unesite x[', i, ']=');
      read(x[i]);
    end;
  writeln('Koliko elemenata K, treba da ima niz Y?');
  readln(k);
  if k > n
    then writeln('K mora biti <= N')
    else
      begin
        for i:=1 to k do
          y[i]:=x[i];
      end;
      writeln('Trazeni niz je: ');
        if k = n
          then for i:=1 to k do
            {write(y[i]:8:2)}
          else
            begin
              min:=0;
              for i:=k+1 to n do
              begin
               min:=min+1;

                 if x[i]>y[min]
                 then
                     y[min+1]:= y[min];
                     y[min]:=x[i];



              end;
      end;
  for i:=1 to k do
    write(' ', y[i]:8:2);
end.


Rezultal ovog programa su totalno neke besmislice .... Tako da bih stvarno bio veoma zahvalan, ako bi mi neko bar malo pomogao oko resavanja ovog problema, jer mi je hitno potreban ( do srede moram da ga imam uradjenog .... )

Hvala unapred !!!


[Ovu poruku je menjao X Files dana 26.03.2007. u 11:45 GMT+1]
 
Odgovor na temu

vlaiv
Vladimir Vlaisavljevic
Novi Sad

Član broj: 15993
Poruke: 352
212.200.249.*



+1 Profil

icon Re: Zadatak u Pascalu - Problem :((26.03.2007. u 12:47 - pre 207 meseci
uh ...

Probao sam da raspetljam ovaj tvoj kod ali sam odustao vrlo brzo ...

Evo ti pseudo kod pa probaj da implementiras

Code:

 var min,max, totmax;
 
 min = x[1]; //trazimo minimalni element X i pretpostavljamo da je prvi 
 totmax = x[1]+1; //trazimo vrednost vecu od maksimalnog elementa X i polazimo od prve

 for i:=2 to N do{
  if min<x[i] then
   min = x[i];
  if totmax<=x[i] then
   totmax = x[i] +1;
 }
 
 for i:=1 to K do {
   max = min;  //postavljamo trenutni maksimalni na minimalnu vrednost...
   for o:=1 to n do {
     if (x[o]>max) and (x[o]<totmax){  //uzimamo element veci od trenutnog ali manji od totalnog maksimuma
       max = x[o];  
     }   
   }
   // sada nam max ima najveci element u X koji je manji od totmax

   y[i] = max; // dodajemo "trenutno najveci" u izlazni niz ...
   totmax = max; //spustamo granicu tako da sledeci trazeni bude nizi od ovog sto smo nasli ...
   
 }



Koliko mi se cini, "nus produkt" ovog nacina je da je Y sortiran po opadajucim vrednostima ... :)
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Zadatak u Pascalu - Problem :((26.03.2007. u 14:24 - pre 207 meseci
> Rezultal ovog programa su totalno neke besmislice .... Tako da bih stvarno bio veoma
> zahvalan, ako bi mi neko bar malo pomogao oko resavanja ovog problema,

Prvo sortiraj niz (verovatno ste već radili u školi sortiranje, ili potraži algoritme na netu) i onda iz tog niza uzmi potreban broj stavki.


 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.eunet.yu.



+13 Profil

icon Re: Zadatak u Pascalu - Problem :((26.03.2007. u 19:14 - pre 207 meseci
@vlaiv - Hvala brate na tom novom kodu, al sam vec uspeo da sredim ovaj stari :))

@savkic - To mi je prvo palo na pamet, al u zadatku je stojalo - Napisati program koji od datog niza x[ i ]=1,2,3,...n čiji su elementi realni brojevi, formira drugi niz y[ i ]=1,2,3,...k koji se sastoji od k najvećih elemenata nuya x[ i ], pri čemu je broj elemenata k niya y[ i ], manji ili jednak od broja elemenata n niza x[ i ] (k<=n). Napomena: Ne traži se da elementi niza y[ i ] budu uredjeni bilo u rastucem ili opadajucem poretku.

Tako da nisam mogao na taj nacin da uradim ( da sortiram niz ) :((



Evo kako sam odradio ( mozda nekome zatreba :P )

Code:
Program knajvecih;
var
  x,y:array[1..10] of real;
  i,j,k,n,p:1..100;
  min,imin:real;

begin
  writeln('Koliko elemenata N, treba da ima niz X?');
  readln(n);
  for i:=1 to n do
    begin
      write('Unesite x[', i, ']=');
      read(x[i]);
    end;
  writeln('Koliko elemenata K, treba da ima niz Y?');
  readln(k);
  if k > n
    then writeln('K mora biti <= N')
    else
      begin
        for i:=1 to k do
          y[i]:=x[i];
        writeln('Trazeni niz je: ');
        if k=n
          then for i:=1 to k do

              {writeln('Posto je k=n, jednostavno cemo samo iskopirati niz y');}
              write(y[i]:8:2)

           else
            begin
             for i:=k+1 to n do
               begin
                 min:=x[i];
                   for j:=1 to k do
                     begin
                       if y[j]<min
                         then
                           begin
                             imin:=y[j];
                             y[j]:=min;
                             min:=imin;
                           end;
                     end;
               end;
            end;
      end;

 for i:=1 to k do
   write(y[i]:8:2);

end.



U svakom slucaju, hvala puno na pomoci :)))
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Zadatak u Pascalu - Problem :((26.03.2007. u 20:26 - pre 207 meseci
> @savkic - To mi je prvo palo na pamet, al u zadatku je stojalo -
> elemenata n niza x[ i ] (k<=n). Napomena: Ne traži se da elementi niza y[ i ] budu uredjeni bilo u rastucem ili opadajucem poretku.
> Tako da nisam mogao na taj nacin da uradim ( da sortiram niz ) :((

Kako ga ja tumačim, nije zabranjeno da se sortira, može a i ne mora.

 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.eunet.yu.



+13 Profil

icon Re: Zadatak u Pascalu - Problem :((27.03.2007. u 22:24 - pre 207 meseci
Da, da, u pravu si. Ja sam pogresno protumacio ... Al jbg, svejedno sam ga nekako uradio... Ako vec ne mora da se sortira, .... :))
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Zadatak u Pascalu - Problem :((

[ Pregleda: 1765 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.