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

Pomoć oko zadatka iz Paskal-a. Hitno.

[es] :: Pascal / Delphi / Kylix :: Pomoć oko zadatka iz Paskal-a. Hitno.

[ Pregleda: 1513 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

goranrst
Goran Maric

Član broj: 325791
Poruke: 49
31.223.144.*



+3 Profil

icon Pomoć oko zadatka iz Paskal-a. Hitno.12.12.2019. u 09:51 - pre 52 meseci
Zadatak glasi (PASKAL):
Učitati niz X od n članova i naći tri najmanja člana niza.

Ja naravno znam naći najmanji član niza (kao i najveći član niza), ali za ispis tri najmanja člana nemam ideju, sve sam probao.... Molim za pomoć. Hvala.

Primer za namnaji član niza:

Code:
program Najmanji_Clan;
var
i,n,min:integer;
x:array [1..100] of integer;
begin
writeln('Unesi broj n clanova niza ');
read(n);
for i:= 1 to n do 
begin
write('X[',i,']='); 
readln(x[i]); 
end;
min := x[i];
for i:= 1 to n do
if x[i] < min then
min := x[i];
WRITELN('NAJMANJI CLAN NIZA JE ',min);
end.

 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6275

Sajt: pedja.supurovic.net


+1570 Profil

icon Re: Pomoć oko zadatka iz Paskal-a. Hitno.12.12.2019. u 11:02 - pre 52 meseci
Prvo što mi pada na pamet je da uvedeš tri promenjlive za minimalne članove niza (ili bolje niz umesto jedne promenljive), pa kad nađeš novi najmanji, prethodne sve šiftuješ za jedno mesto.

 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Pomoć oko zadatka iz Paskal-a. Hitno.12.12.2019. u 12:01 - pre 52 meseci
Mislim da ti je najlakse da:
1) uneses sve clanove
2) sortiras po velicini od najmanjeg ka najvecem
3) ispises prva tri (ujedno i najmanja) clana

 
Odgovor na temu

stameni
Ivan Stamenković

Član broj: 6739
Poruke: 538



+9 Profil

icon Re: Pomoć oko zadatka iz Paskal-a. Hitno.12.12.2019. u 12:23 - pre 52 meseci
^ Ovo je "školsko" rešenje; i meni je palo na pamet. Mana mu je što "kvari" niz, ali se svakako uklapa u specifikaciju ;)
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
82.117.201.26



+1064 Profil

icon Re: Pomoć oko zadatka iz Paskal-a. Hitno.12.12.2019. u 12:31 - pre 52 meseci
Ides bubble sort prva tri prolaza i kraj.
 
Odgovor na temu

goranrst
Goran Maric

Član broj: 325791
Poruke: 49
31.223.144.*



+3 Profil

icon Re: Pomoć oko zadatka iz Paskal-a. Hitno.12.12.2019. u 14:23 - pre 52 meseci
Uradio sam kako je član savkic rekao i to je to radi posao. Hvala svima na savetima. Hvala savkic.

Code:
PROGRAM Ispis_Tri_najmanja_clana_niza;
USES Crt;
VAR
n, i, j, z : INTEGER;
a : ARRAY [1..100] OF INTEGER;
BEGIN
ClrScr;
WRITELN ('Clanovi niza su: ');
READLN(n);
FOR i := 1 TO n DO  
BEGIN
WRITE('a[',i,']= ');
READLN(a[i]);
END;
FOR i := 1 TO n - 1 DO
FOR j := i + 1 TO n DO
IF a[j] < a[i] THEN     
BEGIN
z := a[i];              
a[i] := a[j];
a[j] := z;              
END;
WRITELN('Tri najmanja clana niza su: ');
FOR i := 1 TO 3 DO  
WRITELN('a[',i,'] = ', a[i]);
ReadKey;
END.
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
82.117.201.26



+1064 Profil

icon Re: Pomoć oko zadatka iz Paskal-a. Hitno.12.12.2019. u 14:30 - pre 52 meseci
Ne vidim potrebu da sortiras ceo niz...
 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6275

Sajt: pedja.supurovic.net


+1570 Profil

icon Re: Pomoć oko zadatka iz Paskal-a. Hitno.12.12.2019. u 23:32 - pre 52 meseci
Citat:
savkic:
Mislim da ti je najlakse da:
1) uneses sve clanove
2) sortiras po velicini od najmanjeg ka najvecem
3) ispises prva tri (ujedno i najmanja) clana


Ovo nije ni blizu optimalnog rešenja.

 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Pomoć oko zadatka iz Paskal-a. Hitno.12.12.2019. u 23:53 - pre 52 meseci
I ne trazi se optimalno resenje za domaci zadatak, koga zanima optimizacija ide na dodatnu nastavu. Poenta je da svaki djak postupak moze razumeti.
 
Odgovor na temu

Milan Milosevic

Član broj: 67
Poruke: 932
*.dynamic.isp.telekom.rs.



+31 Profil

icon Re: Pomoć oko zadatka iz Paskal-a. Hitno.13.12.2019. u 06:15 - pre 52 meseci
Ja bih uzeo prva tri člana niza i sortirao ih po veličini.
Onda for petlja od četvrtog do poslednjeg i za svaki taj element bi prošao kroz niz od 3 člana, ako je manji od prvog onda njega stavljam na prvo mesto, a ostale pomeram za po jedno mesto.
Ovo može i kroz potprogram da se uradi, a i ne mora.

Ne verujem da su oni radili algoritam za brzo sortiranje, ako jesu onda ono što je predložio Savkić
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
109.72.51.23



+1064 Profil

icon Re: Pomoć oko zadatka iz Paskal-a. Hitno.13.12.2019. u 08:05 - pre 52 meseci
Stvar je sto je OP uradio kako treba samo ne treba da ide do n-1 nego do 2 tj index da ide od 0-2 i to je sve. Da li ces sad da ides ovako kako si naveo ili onako
isto je sto se tice broja koraka.
 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6275

Sajt: pedja.supurovic.net


+1570 Profil

icon Re: Pomoć oko zadatka iz Paskal-a. Hitno.13.12.2019. u 08:21 - pre 52 meseci
Citat:
savkic:
I ne trazi se optimalno resenje za domaci zadatak, koga zanima optimizacija ide na dodatnu nastavu. Poenta je da svaki djak postupak moze razumeti.


Al ne mora baš da se uči najgore moguće rešenje.

Iz samog zadatka je jasno da se traži razmišljanje. Sortiranje niza pa uzimanje prva tri je najočiglednije rešenje i očigledno najmanje poželjno rešenje. Sortiranje su sigurno radili kroz druge zadatke. pa im ovaj nije potreban da bi to učili.

Doduše ako je samo cilj da se dobije ocena, onda sve može.



 
Odgovor na temu

Milan Milosevic

Član broj: 67
Poruke: 932
*.dynamic.isp.telekom.rs.



+31 Profil

icon Re: Pomoć oko zadatka iz Paskal-a. Hitno.13.12.2019. u 08:55 - pre 52 meseci
Moja varijanta sa Delphi codom.


Code:


uses
  System.SysUtils, math;
  Var I,J,K:Integer;
  A:ARRAY [1..100] of integer;
  RESENJE :ARRAY [1..3] of integer;
  IZLAZ:BOOLEAN;
begin
   WRITELN ('Clanovi niza su: ');
  FOR i := 1 TO 100 DO
  BEGIN
    A[I]:=  RandomRange(1,200);
    WRITE(' a[',i,']= '); WRITELN(A[I])
  END;
   RESENJE[1]:= A[1];
   RESENJE[2]:= A[2];
   RESENJE[3]:= A[3];
   for I := 4 to 100 do
     BEGIN
        IZLAZ:=False;
        for J := 1 to 3 do
          BEGIN
             if (A[I]<RESENJE[J]) AND (NOT IZLAZ) then
             BEGIN
                for K := 3 downto J+1 do RESENJE[K]:= RESENJE[K-1];
                RESENJE[J]:= A[I] ;
                IZLAZ:=True;
             END;
          END;
     END;
    WRITELN ('Resenje je: ');
    FOR i := 1 TO 3 DO
    BEGIN
        WRITE(' R[',i,']= '); WRITELN(RESENJE[I])
    END;

   ReadLn; //don't close the window, wait for [Enter]
end.


 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Pomoć oko zadatka iz Paskal-a. Hitno.13.12.2019. u 09:24 - pre 52 meseci
> Al ne mora baš da se uči najgore moguće rešenje.
> Iz samog zadatka je jasno da se traži razmišljanje. Sortiranje niza pa uzimanje prva tri je najočiglednije rešenje
> i očigledno najmanje poželjno rešenje. Sortiranje su sigurno radili kroz druge zadatke. pa im ovaj nije potreban da bi to učili.
> Doduše ako je samo cilj da se dobije ocena, onda sve može.

Ocigledno mozda programeru, 90% djaka ce imati i poteskoce sa sortiranjem, resenje je primereno uzrastu i znanju. Drugo, po meni je mnogo bolje za ucenje da kod bude jednostavan i lak za pracenje, ko zeli vise ima dodatnu nastavu i samostalan rad.
 
Odgovor na temu

tkaranovic
Tomislav Karanović
Beograd

Član broj: 220507
Poruke: 307



+18 Profil

icon Re: Pomoć oko zadatka iz Paskal-a. Hitno.13.12.2019. u 09:45 - pre 52 meseci
Ovo vise nije hitno... :)

Posto nemam pojma sta je deci potrbno evo mog ucesca u kodu :) kao sto se vidi koristio sam gore postovan kod :)


Code (delphi):

Var
  I,J,K:Integer;
  A:ARRAY [1..100] of integer;
begin
   WRITELN ('Clanovi niza su: ');
  randomize; // ovo je obavezno
  FOR i := 1 TO 100 DO
  BEGIN
    A[I]:=  RandomRange(1,200);
    WRITE(' a[',i,']= '); WRITELN(A[I])
  END;
   for K := 1 to 3 do
     for I := K+1 to 100 do
       if A[K] > A[I] then
       BEGIN
         J := A[K];
         A[K] := A[I];
         A[I] := J;
       END;
    WRITELN ('Resenje je: ');
    FOR i := 1 TO 3 DO
    BEGIN
        WRITE(' R[',i,']= '); WRITELN(A[I])
    END;
 

 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Pomoć oko zadatka iz Paskal-a. Hitno.

[ Pregleda: 1513 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

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