Mi ebben a pascal programban a hiba? Irányítatlan gráfra írtam, hogy megvizsgálja teljes vagy nem. ; expected but BEGIN found hibaüzenetet ír ki.
PROGRAM feladat;
USES CRT;
VAR a: ARRAY[1..10,1..10] of longint;
i,j,n,szam: integer;
BEGIN
CLRSCR;
szam:=0;
WRITE('adja meg hany csomopontbol all az iranyitatlan graf (maximum 10et adjon meg)=');
READLN(n);
i:=1;
FOR j:=2 to n do begin
WRITE('a grafban az 1. csomopontbol a(z) ',j,'. csomopontba tart él?(0-nem,1-igen)=');
READLN(a[i,j]);
(a[i,j]):=(a[j,i]);
END;
IF n>2 then do begin
i:=2;
FOR j:=3 to n do begin
WRITE('a grafban a 2. csomopontbol a(z) ',j,'. csomopontba tart él?(0-nem,1-igen)=');
READLN(a[i,j]);
a[i,j]:=a[j,i];
END;
END;
IF n>3 then do begin
i:=3;
FOR j:=4 to n do begin
WRITE('a grafban a 3. csomopontbol a(z) ',j,'. csomopontba tart él?(0-nem,1-igen)=');
READLN(a[i,j]);
a[i,j]:=a[j,i];
END;
END;
IF n>4 then do begin
i:=4;
FOR j:=5 to n do begin
WRITE('a grafban a 4. csomopontbol a(z) ',j,'. csomopontba tart él?(0-nem,1-igen)=');
READLN(a[i,j]);
a[i,j]:=a[j,i];
END;
END;
IF n>5 then do begin
i:=5;
FOR j:=6 to n do begin
WRITE('a grafban az 5. csomopontbol a(z) ',j,'. csomopontba tart él?(0-nem,1-igen)=');
READLN(a[i,j]);
a[i,j]:=a[j,i];
END;
END;
IF n>6 then do begin
i:=6;
FOR j:=7 to n do begin
WRITE('a grafban a 6. csomopontbol a(z) ',j,'. csomopontba tart él?(0-nem,1-igen)=');
READLN(a[i,j]);
a[i,j]:=a[j,i];
END;
END;
IF n>7 then do begin
i:=7;
FOR j:=8 to n do begin
WRITE('a grafban a 7. csomopontbol a(z) ',j,'. csomopontba tart él?(0-nem,1-igen)=');
READLN(a[i,j]);
a[i,j]:=a[j,i];
END;
END;
IF n>8 then do begin
i:=8;
FOR j:=9 to n do begin
WRITE('a grafban a 8. csomopontbol a(z) ',j,'. csomopontba tart él?(0-nem,1-igen)=');
READLN(a[i,j]);
a[i,j]:=a[j,i];
END;
END;
IF n>9 then do begin
i:=9;
FOR j:=9 to n do begin
WRITE('a grafban a 9. csomopontbol a(z) ',j,'. csomopontba tart él?(0-nem,1-igen)=');
READLN(a[i,j]);
a[i,j]:=a[j,i];
END;
END;
WRITELN('.');
WRITELN('.');
WRITELN('az iranyitatlan graf szomszedsagi matrixa a kovetkezo:');
FOR i:=1 to n do begin
FOR j:=1 to n do
WRITE(a[i,j]:5);
WRITELN;
END;
FOR i:=1 to n do
FOR j:=1 to n do begin
IF (a[i,j])=0 then
szam:=szam+1;
IF (i=j) and (a[i,j]=0) then
szam:=szam-1;
END;
WRITELN('.');
WRITELN('.');
IF szam=0 then
WRITELN('a graf teljes,mivel minden csomopont mindegyik csomoponttal osszekottetesben all')
ELSE
WRITELN('a graf nem teljes, ahhoz hogy teljes legyen meg ',szam,' elet kellene tartalmaznia');
READLN;
END.
"; expected but BEGIN found hibaüzenetet ír ki"
Valahol lemaradt egy pontosvessző, vagy egy nevet elgépeltél.
Szia.
Ilyen nincs a pascalban : IF n>2 then do begin
Tehát vagy ciklus és akkor do begin vagy feltétel és akkor csak begin.
Sok sikert.
üdv.
Na, én ezt sem értem:
READLN(a[i,j]);
a[i,j]:=a[j,i];
Beolvasunk egy 0 vagy 1 értéket az a[i,j] tömbelembe, azután a választól függetlenül azonnal felülírjuk a[j,i] értékével. Akkor mire volt jó a bonyodalmas bekérés? Elég lett volna az a[i,j]:=a[j,i]; értékadás...
IF n>9 then do begin
i:=9;
FOR j:=9 to n do begin
WRITE('a grafban a 9. csomopontbol a(z) ',j,'. csomopontba tart él?(0-nem,1-igen)=');
Kár, hogy sohasem foglalkoztam gráfokkal... Egy pontból ugyanabba a pontba tarthat él?
Program csucsmatrix;
uses crt;
var a:array[1..100,1..100] of real;
i,j,n:integer;
ossz:real;
Begin
Clrscr;
ossz:=0;
Write('Kerem adja meg a csucsok szamat :');
Readln(n);
Writeln;
Writeln('Kerem adja meg a csucsmatrix elemeit :');
For i:=1 to n do begin
For j:=1 to n do
Readln(a[i,j]);
end;
For i:=1 to n do begin
For j:=1 to n do
write(a[i,j]:5:0);
writeln;
writeln;
end;
For i:=1 to n do begin
For j:=1 to n do
ossz:=ossz+a[i,j];
end;
If ((ossz/sqr(n))=1) then
Write('A megadott graf teljes graf. ')
else
Write('A megadott graf nem teljes graf.');
Readln;
end.
Én valahogy így csinálnám meg ,talán valamivel rövidebb.
Ez is érdekes:
WRITE('adja meg hany csomopontbol all az iranyitatlan graf (maximum 10et adjon meg)=');
READLN(n);
i:=1;
FOR j:=2 to n do begin
WRITE('a grafban az 1. csomopontbol a(z) ',j,'. csomopontba tart él?(0-nem,1-igen)=');
...
Ha egy gonosz ember azt mondja, hogy legyen nulla vagy egyetlen csomópont, miért állítod, hogy van több is? Nem tudom, lehet, hogy ezek a speciális esetek már nem tekinthetők gráfnak, de akkor illenék küszöbölni ezt a lehetőséget.
Kérdező, én meg a te programodat írtam meg szebben, hibakezeléssel, már tényleg sajnálom, hogy működésképtelen a #4-ben említett értelmetlenség miatt. Addig nem is mutatom be, amíg nem t'om, ott mit kéne csinálnia. Nem olyan rövid, mint #6, de az eredetihez képest...
A fentieken túl is van még egy számomra érthetetlen dolog a programodban. Ha jól értem, a tömbelemek értéke csak 0 vagy 1 lehet. Minek ezt longint tömbben tárolni? Már a byte is luxus, de ha jól tudom, a boolean is ugyanakkora helyet foglal, azt nem erőltetem.
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!