Kezdőoldal » Számítástechnika » Programozás » Mi ebben a pascal programban...

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.

Figyelt kérdés

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.



2015. márc. 22. 15:19
 1/8 anonim ***** válasza:

"; expected but BEGIN found hibaüzenetet ír ki"


Valahol lemaradt egy pontosvessző, vagy egy nevet elgépeltél.

2015. márc. 22. 15:21
Hasznos számodra ez a válasz?
 2/8 coopper ***** válasza:

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.

2015. márc. 22. 16:51
Hasznos számodra ez a válasz?
 3/8 tabaki ***** válasza:
Coopernak igaza van, így lefordul és lefut. Viszont, annak ellenére, hogy egy kukkot sem értek a céljából, nekem első blikkre szörnyen terjengősnek tűnik. Szerintem egy eljárással sokkal tömörebben is megírható volna a rengeteg ismétlődés. Továbbá, én az igen/nem válasznak ezt a „számos” bekérését nagyon sutának tartom, következetesen el is tévesztem. Miért nem lehet 'i' és 'n'? Ha meg már úgyis használod a CRT unitot, élhetnél a ReadKey adta lehetőséggel, hogy ne kelljen az amúgy is sok beírást még az Enterrel is megduplázni.
2015. márc. 22. 20:51
Hasznos számodra ez a válasz?
 4/8 tabaki ***** válasza:

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...

2015. márc. 22. 21:26
Hasznos számodra ez a válasz?
 5/8 tabaki ***** válasza:

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?

2015. márc. 22. 21:46
Hasznos számodra ez a válasz?
 6/8 tomiblak válasza:

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.

2015. márc. 22. 22:09
Hasznos számodra ez a válasz?
 7/8 tabaki ***** válasza:

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.

2015. márc. 22. 22:13
Hasznos számodra ez a válasz?
 8/8 tabaki ***** válasza:

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.

2015. márc. 22. 23:40
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!