Kezdőoldal » Számítástechnika » Programozás » Pascal-t hogy írjam át C++-ba?

Pascal-t hogy írjam át C++-ba?

Figyelt kérdés

Sajnos Pascalhoz nem értek semmit, de lenne egy kódsorom, amit át kellene írnom C++-ba.

Miket kel igazából átírnom, hogy működjön? például a write helyett, avagy a többi c++-ban nem ismert "változók" helyére? Nem zárkózom el a megoldástól sem :$ Köszönöm!


program kiut;

uses crt;


var lab:array [1..10,1..10] of byte

= ((9,9,9,9,9,9,9,9,9,9),

(9,0,0,9,0,9,0,9,0,5),

(9,0,9,9,0,9,0,9,0,9),

(9,0,0,0,0,9,0,0,0,9),

(9,9,0,9,9,9,9,9,0,9),

(9,0,0,0,0,0,0,9,0,9),

(9,0,9,9,9,0,9,0,0,9),

(9,0,0,0,9,0,0,0,9,9),

(9,0,9,0,9,0,9,0,0,9),

(9,0,9,9,9,9,9,9,9,9));


procedure kiiras;

var i,j:integer;

begin

for i:=1 to 10 do

begin

for j:=1 to 10 do

case lab[i,j] of

9: begin {fal}

textcolor(lightgray);

write(#219); { #219 = befestett

negyzet karakter }

end;

0,5: write(' '); { ures vagy celpont }

1: begin { helyes utvonal }

textcolor(lightgreen);

write('X');

end;

2: begin { bejart, de rossz utvonal }

textcolor(red);

write('O');

end;

end;

writeln;

end;

writeln;

end;


procedure lepes(x,y:integer);

begin

{ nem ertunk be a celba? }

if lab[x,y]<>5 then

begin

{ lepes elore... }

lab[x,y]:=1;

{ van felfele bejaratlan utvonal (ures vagy celpont)? }

if (x>1) and (lab[x-1,y] in [0,5]) then lepes(x-1,y);

{ van jobbra bejaratlan utvonal (ures vagy celpont)? }

if (y<10) and (lab[x,y+1] in [0,5]) then lepes(x,y+1);

{ van balra bejaratlan utvonal (ures vagy celpont)? }

if (y>1) and (lab[x,y-1] in [0,5]) then lepes(x,y-1);

{ van lefele bejaratlan utvonal (ures vagy celpont)? }

if (x<10) and (lab[x+1,y] in [0,5]) then lepes(x+1,y);

{ lepes vissza...

megjeloles bejart, de rossz utvonalnak }

lab[x,y]:=2;

end

else

begin

{ celba ertunk, utolso lepes elore... }

lab[x,y]:=1;

{ megtalalt utvonal kirajzolasa }

kiiras;

{ utolso lepes vissza }

lab[x,y]:=2;

end;

end;


begin

clrscr;

{ ures labirintus kirajzolasa }

kiiras;

{ megoldas keresese,

elso lepes: [10,2] }

lepes(10,2);

{ magyarazat kiirasa }

textcolor(lightgray);

writeln(#219,' ... fal');

textcolor(red);

write('O');

textcolor(lightgray);

writeln(' ... bejart, de rossz utvonal');

textcolor(lightgreen);

write('X');

textcolor(lightgray);

write(' ... helyes utvonal');

{ varakozas egy billentyu megnyomasara }

readkey;

end.



2014. márc. 17. 22:30
 1/2 anonim ***** válasza:

- { ... } ezek kommentek, átírhatod /* ... */ -re

- begin-eket átírhatod {-re

- end-eket átírhatod }-re

- procedure helyett function és a sor végéről vedd le a pontosvesszőt


A többi szerintem értelemszerűen átírható, akár kis guglizással, hogy mit csinál az adott dolog Pascal-ban, de szerintem eléggé beszédesek a kulcsszavak/függvénynevek.

2014. márc. 17. 22:35
Hasznos számodra ez a válasz?
 2/2 Tengor ***** válasza:

Hát lássuk csak: mindent.

Az egyes nyelvek közötti különbségek nem abból állnak, hogy kicseréljük a kulcsszavakat és annyi.

Ebben a kódban nem sok pascal specifikus dolog van. Ha kicsit értesz a C++-hoz, akkor van rendelkezned kell algoritmikus gondolkodással. Értsd meg mit csinál a kód és írd át!

2014. márc. 17. 22:35
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!