Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 14 odgovora
  • 3.565 pregleda

Najnovija ↓

Pomoć oko zadatka iz Paskal-a. Hitno. 12.12.2019. u 10:51 · pre 83 meseca #1
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.

Re: Pomoć oko zadatka iz Paskal-a. Hitno. 12.12.2019. u 12:02 · pre 83 meseca #2
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.
Potpis
http://pedja.supurovic.net - http://wireless.uzice.net - Besplatni .RS domeni - Mikrotik uputstva - YT9TP - OpenStreetMap Srbija
Sviđa mi se1
Re: Pomoć oko zadatka iz Paskal-a. Hitno. 12.12.2019. u 13:01 · pre 83 meseca #3
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
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Sviđa mi se1
Re: Pomoć oko zadatka iz Paskal-a. Hitno. 12.12.2019. u 13:23 · pre 83 meseca #4
^ Ovo je "školsko" rešenje; i meni je palo na pamet. Mana mu je što "kvari" niz, ali se svakako uklapa u specifikaciju ;)
Re: Pomoć oko zadatka iz Paskal-a. Hitno. 12.12.2019. u 15:23 · pre 83 meseca #6
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.
Re: Pomoć oko zadatka iz Paskal-a. Hitno. 13.12.2019. u 00:32 · pre 83 meseca #8
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.
Potpis
http://pedja.supurovic.net - http://wireless.uzice.net - Besplatni .RS domeni - Mikrotik uputstva - YT9TP - OpenStreetMap Srbija
Re: Pomoć oko zadatka iz Paskal-a. Hitno. 13.12.2019. u 00:53 · pre 83 meseca #9
I ne trazi se optimalno resenje za domaci zadatak, koga zanima optimizacija ide na dodatnu nastavu. Poenta je da svaki djak postupak moze razumeti.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Pomoć oko zadatka iz Paskal-a. Hitno. 13.12.2019. u 07:15 · pre 83 meseca #10
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ć
Re: Pomoć oko zadatka iz Paskal-a. Hitno. 13.12.2019. u 09:05 · pre 83 meseca #11
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.
Re: Pomoć oko zadatka iz Paskal-a. Hitno. 13.12.2019. u 09:21 · pre 83 meseca #12
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.


Potpis
http://pedja.supurovic.net - http://wireless.uzice.net - Besplatni .RS domeni - Mikrotik uputstva - YT9TP - OpenStreetMap Srbija
Re: Pomoć oko zadatka iz Paskal-a. Hitno. 13.12.2019. u 09:55 · pre 83 meseca #13
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.


Re: Pomoć oko zadatka iz Paskal-a. Hitno. 13.12.2019. u 10:24 · pre 83 meseca #14
> 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.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Pomoć oko zadatka iz Paskal-a. Hitno. 13.12.2019. u 10:45 · pre 83 meseca #15
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;
 

Sviđa mi se2
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme