Pascal-t hogy írjam át C++-ba?
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.
- { ... } 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.
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!
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!