[ Man-Wolf @ 25.03.2007. 23:06 ] @
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] |