Polski Serwis Naukowy - OnLine od 1999 roku
RSS
Czwartek, 31 maja 2012
Petronia, Bożysława, Ernestyna, Teodor
 1891: budowa Kolei Transsyberyjskiej
 1970: zagłada miasta Yungay w Peru
 WHO: Dzień bez Papierosa
Nowe publikacje
Post dodany: |7 Sty 2008|, 2008 14:49
Data rejestracji: 11 Cze 2007 postów: 5113
W większości przypadków program działa poprawnie, ale na poniższym obrazku jest błąd, który czasami się pojawia. Program ma wypisywać na ekranie trzeci największy element tablicy i trzeci najmniejszy element tablicy.
Program:
| Kod | program zad2_4;
uses crt;
const n=10;
k=3;
var l:array[1..n] of integer;
a,b,i,min,max,c:integer;
procedure wczyt;
begin
for i:=1 to n do
begin
l[i]:= random(11);
writeln(i,'. ',l[i]);
end;
end;
procedure sort;
begin
for i:=1 to n-1 do
begin
min:=l[i];
for b:=i+1 to n do
begin
if l[b]<=min then begin
min:=l[b];
c:=b;
end;
end;
l[c]:=l[i];
l[i]:=min;
end;
end;
procedure linia;
begin
writeln;
for i:=1 to 80 do
write('=');
writeln;
end;
begin
clrscr;
randomize;
writeln('Elementy tablicy: ');
writeln;
wczyt;
linia;
sort;
i:=0; {3. najm. element}
a:=0;
min:=l[1];
repeat
i:=i+1;
if l[i]>min then begin
min:=l[i];
a:=a+1;
end;
until((a=k-1) or (i>n));
if i>n then writeln('Nie istnieje taki element tablicy. ')
else begin
a:=0;
for i:=1 to n do
if l[i]=min then a:=a+1;
writeln('Trzeci najmniejszy element w tablicy to ',min,', wystapil ',a,' razy. ');
end;
linia;
i:=n; {3. najw. element}
a:=0;
max:=l[n];
repeat
i:=i-1;
if l[i]<max then begin
max:=l[i];
a:=a+1;
end;
until((a=k-1) or (i<0));
if i<0 then writeln('Nie istnieje taki element tablicy. ')
else begin
a:=0;
for i:=1 to n do
if l[i]=max then a:=a+1;
writeln('Trzeci najwiekszy element tablicy to ',max,', wystapil ',a,' razy. ');
end;
linia;
write('Aby zakonczyc, nacisnij dowolny klawisz. ');
readkey;
end. |
Ostatnio zmieniony przez _Mithrandir |13 Sty 2008|, 2008 11:16, w całości zmieniany 4 razy
Post dodany: |11 Sty 2008|, 2008 20:24
Data rejestracji: 30 Lis 2006 postów: 1550
Przeglądnałem kod i wygląda na to, że wszystko jest dobrze. Może problem polega na tym, że nie wszystkie zmienne sa zerowane po zakończeniu programu. Spróbuj na początku wyzerować wszystkie zmienne.
Sprawdż czy będzie działać. Jeśli nie, to będziemy mysleć dalej.
wymiennik
Wyrafinowane piękno płci męskiej istnieje tylko po to, aby podniecać płeć żeńską.
Karol Darwin

Profil PW
»więcej
Opis: Chemik
Wiek: 30 Pomógł: 190 razy
Post dodany: |12 Sty 2008|, 2008 14:08
Data rejestracji: 11 Cze 2007 postów: 5113
Sprawdziłem, wyzerowanie nic nie daje. Momentami to wygląda po prostu tak, jakby czasami program sięgał o jedną liczbę za daleko (tzn. zamiast 3. największej wskazuje 4.), ale skoro kod wygląda poprawnie...
Nawiasem mówiąc - LaTeX chyba ma taką komendę, która sprawia, że tego typu kody są bardziej przejrzyste na forach (tzn. zachowane wcięcia), wiesz może jaka to komenda?
Ostatnio zmieniony przez _Mithrandir |12 Sty 2008|, 2008 14:13, w całości zmieniany 1 raz
Post dodany: |12 Sty 2008|, 2008 20:53
Data rejestracji: 30 Lis 2006 postów: 1550
Jeszcze się przyglądnę temu kodowi bliżej. Może coś znajdę.
Nie wiem czy w Latexie jest coś takiego, ale jak chcesz napisać post, to w miejscu gdzie są guziczki włączające/wyłączające np. wytłuszczenie, podkreślenie, kursywę, czy załączenie linku, jest guzik "Code". Jak go klikniesz, to zrozumiesz jak to działa. Analogicznie jakbys wstawiał wzór z latexu, link, czy inny kolor czcionki
Jeśli w takie znaczniki skopiujesz swój kod z wcięciami, to powinien go zachować w takiej postaci.
wymiennik
Wyrafinowane piękno płci męskiej istnieje tylko po to, aby podniecać płeć żeńską.
Karol Darwin

Profil PW
»więcej
Opis: Chemik
Wiek: 30 Pomógł: 190 razy
Post dodany: |13 Sty 2008|, 2008 11:42
Data rejestracji: 11 Cze 2007 postów: 5113
Wcięć nie zachowało, ale jeśli jest w miarę czytelne, to mniejsza z tym teraz.
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Nie możesz ściągać załączników na tym forum
|
Wersja do druku
Dodaj temat do Ulubionych
|
Powered by
phpBB © 2000, 2002, 2005, 2007 phpBB Group
|