Free pascalban while ciklussal, hogy lehet meghatározni hogy a rendezetlen lineáris tömbben van-e olyan szám ami egynél többször fordul elő?
Két ciklussal.
Belső ciklus hasonlítgatja az elemeket azzal, ahol a külső tart.
Ha csak ennyi a kérdés, akkor ha találsz ilyet beállítasz egy logikai értéket igazra, amivel ki is tudsz lépni a ciklusból.
És tudnál segíteni abban, hogy ebben mi a hiba?
program one;
uses crt;
var i,j,ref:integer;
vanbenne:boolean;
lin_tomb: array [1..10] of integer;
begin
randomize;
clrscr;
for i:=1 to 10 do
begin
lin_tomb[i]:=random(20 )+1;
write(lin_tomb[i],' ');
end;
writeln;
while i<=10 do
begin
ref:=lin_tomb[i];
inc(i);
while j=1+i do
begin
if lin_tomb[j]=ref then vanbenne:=true;
inc(j);
end;
end;
if vanbenne=true then writeln('igen') else writeln('nem');
readln;
end.
Megmondtuk mi a hiba, egészen pontosan.
A kezedet ne fogjuk meg?
program project1;
uses crt;
var i,j,ref:integer;
vanbenne:boolean;
lin_tomb: array [1..10] of integer;
begin
randomize;
clrscr;
for i:=1 to 10 do
begin
lin_tomb[i]:=random(20 )+1;
write(lin_tomb[i],' ');
end;
writeln;
i:=1;
j:=1;
for i:=1 to 10 do
begin
ref:=lin_tomb[i];
for j:=1 to 10 do
begin
if ref=lin_tomb[i+j] then vanbenne:=true;
end;
end;
if vanbenne=true then writeln('igen') else writeln('nem');
readln;
end.
Pl. így működne, habár nem a leghelyesebb megoldás. Habár ha ilyen logikai feladatot, nem tudsz kirázni az ujjadból, akkor felesleges programoznod. Nem sértésből mondom.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!