Novo

Forum kao aplikacija na telefonu

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

  • 4 odgovora
  • 3.238 pregleda

Najnovija ↓

Potrebna pomoc oko programa u pascalu 16.02.2010. u 17:50 · pre 203 meseca #1
Pozdrav...
Treba mi pomoc:
Kako da napravim program takav da od korisnika trazi broj unosa (maksimalan broj unosa 1000,unose se brojevi),zatim ako korisnik pri unosu upise broj koji je vec negde prethodno upisao dobija obavestenje npr. BROJ XXX JE VEC UPISAN.
Ovo je neko moje resenje kojim nisam zadovoljan:

Code:
program xxxxx;
uses crt;
var broj:array[1..1000]of integer;
    i,komada,provera:integer;

begin
Writeln('Broj unosa');Readln(komada);

for i:=1 to komada do begin
   writeln('Unesi broj');
   readln(broj[i]);

   for provera:=1 to i-1 do begin

    if (broj[i]=broj[provera]) then begin
        writeln('PONOVLJEN UPIS')
    end
   end
   end;

while not KeyPressed do
end.



Potpis
Ja slušam i zaboravljam.Ja gledam i pamtim.Ja radim i shvatam.
Re: Potrebna pomoc oko programa u pascalu 16.02.2010. u 20:12 · pre 203 meseca #2
Pazi, ja bas mislim da ti je solidan algoritam, unosis brojeve i odmah po unosu proveravas. Jedino sto bih ja izmenio tu je da monotoni posao prebrojavanja ostavis racunaru (korisnik ne mora da na pocketku zna koliko ce clanova biti).

Inace imam neki predlog ali ne zadovoljava kriterijum (ne radi vise od 256 unosa ) :)

Code:


var
  Brojevi: set of byte; //ovde je problem sto ide najvise do 256 unosa
  broj:Integer;

begin
  Brojevi := [];
  I := 0;
repeat
  Writeln('Unesi broj(9999 za kraj) ', I, ': ');
  Readln(broj);
  if broj in Brojevi then
  begin
    writeln('Broj ', Broj, ' postoji.');
    readln;
    exit;
  end;
  Brojevi := Brojevi + [Broj];
  Inc (I);
until
  (Broj = 9999) or (I = 255);



Pozdrav
Re: Potrebna pomoc oko programa u pascalu 16.02.2010. u 23:43 · pre 203 meseca #3
Ok tvoj predlog mi se dopada :) ,uz male izmene to je ono sto mi treba al je problem tih 256 unosa,potrebno mi je bar 500 i neophodno je da korisnik na pocetku odredi broj unosa.U mom kodu jedino mi se ne svidja sto npr. nakon trece provere odredjenog broja koji je upisan tri puta izbacuje 3 poruke da vec postoji a ne jednu.
Hvala...
Potpis
Ja slušam i zaboravljam.Ja gledam i pamtim.Ja radim i shvatam.
Re: Potrebna pomoc oko programa u pascalu 17.02.2010. u 08:21 · pre 203 meseca #4
Može ovako? :)

Code:


var
  Broj: array [1..1000] of Integer;
  I, Komada, Provera: integer;
  Nadjeno: set of Byte;
begin


  Nadjeno := [];

  Writeln('Broj unosa');
  Readln(komada);
  for I := 1 to komada do
  begin
    writeln('Unesi broj ', I, ':');
    readln(Broj[I]);

    for Provera := 1 to I - 1 do
    begin

    if broj[I] = broj[provera] then
    begin
      if not (broj[I] in Nadjeno) then
        Nadjeno := Nadjeno + [Broj[i]];


    end

   end

  end;
  writeln('Ponovljeni brojevi:');

  for I := 1 to Komada do
  begin
    if broj[I] in Nadjeno then
    begin
      writeln(Broj[I]);
      Nadjeno := Nadjeno - [Broj[I]];
    end;
  end;
  readln;

end.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme