Listing program pointer
pada pascal dan C++
1. Program pada pascal
Listing
string pascal
Program set2;
uses crt;
type karakter=
set of char;
var kapital :
karakter;
hidup :
karakter;
jumlahh,jumlahk
: integer;
kalimat :
string;
i:integer;
begin
clrscr;
kapital:=['A'..'Z'];
hidup:=['A','E','I','O','U','a','e','i','o','u'];
jumlahh:=0;
jumlahk:=0;
writeln('Masukkan
suatu kalimat : ');
read(kalimat);
for I:=1 to
length(kalimat) do
begin
if kalimat[i] in
kapital then inc(jumlahk);
if kalimat[i] in
hidup then inc(jumlahh);
end;
writeln('Jumlah
kapital = ',jumlahk);
writeln('Jumlah
huruf hidup = ',jumlahh);
readkey;
end.
Input
program
Logika
Setelah program selesai
dibuat kemudiaan berjalan, program ini akan memanggil library dengan tipe data
adalah variable capital sebagai karakter,hidup sebagai karakter,jumlah adalah
sebagai intger, dan kalimat sebagai string. Dimana program akan membaca huruf capital,jumalh huruf kaptal,
kita diminta menuliskan kalimat yang kita mau.
Output program
Listing
program pointer pascal
program deklarasi;
uses crt;
var p :
^integer;
nilai : integer;
begin
clrscr;
nilai:=32;
p:=@nilai;
writeln(p^);
p^:=130;
writeln(p^);
writeln(nilai);
readln;
end.
Input
program
Logika
program
Pointer merupakan
variabel khusus yang berisi suatu address (alamat) di lokasi lain didalam
memory. Suatu variabel yang points(menunjuk) ke sesuatu sehingga disebut
pointer. Setelah selesai program dibuat
kemudian, program kan bejalan dan memanggil tipe data dalam bentuk variable p
adalah sebagai pointer integer, dan nlai adalah sebagai integer. Program kan
melakukan deklerasi dimana nilai adalah sama dengan 32, dan pointer adalah sama
dengan 130, dan pointer akan membaca nilai integer itu, begitulah logikanya.
Program selesai.
Output
program
2. Program
pointer pada C++
Listing program
#include <iostream.h>
int
main()
{
int *a;
int b=10;
a=&b;
cout<<"alamat
a : "<<a<<endl;
cout<<"nilai b :
"<<b<<endl;
cout<<"nilai a :
"<<*a<<endl;
return 0;
}
Input
program
Logika
program
Program akan
memulai dengan tipe data dalam bentuk integer a adalah sebgai pointer dan
intger b nilainya sama dengan 10. Kemudian pointer a kan mengcopi nilai b. dan
program akan menampilkan nilaia dan nilai b. dan hasil copiannya harus
didahului dengan tanda*. begitulah
logika programnya.
Output
program
Listing
program pointer C++
#include <iostream.h>
#include
<conio.h>
#include
<stdio.h>
void main()
{
char kata[100];
char *balik;
int i,jumlah;
jumlah=0;
balik=kata;
char x;
do
{
cout<<"\t
===---------------**--------------=== \n\n";
cout
<<"\t Masukkan kata : ";
gets(kata);
for(i=0;kata[i]!='\0';i++)
{jumlah ++;}
cout<<"\n\t
===---------------**--------------=== \n\n";
cout
<< "\t Setelah Pembalikan Kata :";
for(i=jumlah-1;i>=0;i--)
{cout
<< *(balik + i);}
cout<<"\n\n\t
===---------------**--------------=== \n\n";
cout<<"\n\t
Tekan y untuk mengulang = ";
cin>>x;
} while ((x=='y') || (x=='Y'));
getch();
}
Input
program
Logika
program
Setelah program selesai dibuat maka program berjalan
dan memanggil libarary dengan tipe data dalam bentuk char kata[100] dan pointer
char balik. I, jumlah adalah sebagai integer, dimana jumlah adalah sama dengan
=0. Balik sama dengan kata, char x
Kemudian program melakukan proses pengulangan dengan
rumus do while, selnjutnya kita diminta memasukkan kata yang kita mau”…”. Dan
program membaca kalimat dari awal dan setelah itu program membaca pointer balik
dari belakang. Pointer balik disini berfungsi membaca kata yang kita masukan
tadi. Program selesai..
Game pada pascal
uses crt;
label
habis,
lanjut;
const
max_panjang
= 100;
batas_x =
80;
batas_y =
25;
speed = 200;
type
tempat =
record
x, y :
integer;
end;
var
ekor :
array[1..max_panjang] of tempat;
ujung,
makanan : tempat;
tkn : char;
i,pjg,skor,spd : integer;
mati :
boolean;
procedure atur_posisi;
begin
ujung.x :=
ekor[pjg].x;
ujung.y :=
ekor[pjg].y;
for i:=pjg
downto 2 do begin
ekor[i].x
:= ekor[i-1].x;
ekor[i].y
:= ekor[i-1].y;
end;
gotoxy(ekor[2].x, ekor[2].y); write('@');
gotoxy(ekor[3].x, ekor[3].y); write('&');
gotoxy(ekor[pjg-1].x, ekor[pjg-1].y); write('#');
gotoxy(ujung.x, ujung.y); write(' ');
for i:=3 to
pjg do if((ekor[2].x=ekor[i].x) and (ekor[2].y=ekor[i].y)) then mati:=true;
delay(speed-spd);
end;
procedure makan;
var beda : boolean;
begin
inc(skor,5);
gotoxy(10,26); write('Skor = ',skor);
repeat
beda :=
true;
makanan.x
:= random(batas_x-2)+2;
makanan.y
:= random(batas_y-2)+2;
for i:=1
to pjg do
if((makanan.x=ekor[i].x) and (makanan.y=ekor[i].y)) then beda:=false;
until beda;
gotoxy(makanan.x, makanan.y); write('o');
inc(pjg);
inc(spd,2);
end;
procedure bergerak(c : char);
begin
if c = 'd'
then begin
repeat
if((ekor[1].x = makanan.x) and (ekor[1].y = makanan.y)) then makan;
ekor[1].x := ekor[1].x+1;
atur_posisi;
if
(ekor[1].x = batas_x) or (ekor[1].y = batas_y) or (ekor[1].x = 1) or (ekor[1].y
= 1) then mati := true;
until
keypressed or mati;
if mati
then exit;
tkn:=readkey;
if tkn =
'a' then tkn:='d';
end
else if c =
's' then begin
repeat
if((ekor[1].x = makanan.x) and (ekor[1].y = makanan.y)) then makan;
ekor[1].y := ekor[1].y+1;
atur_posisi;
if
(ekor[1].x = batas_x) or (ekor[1].y = batas_y) or (ekor[1].x = 1) or (ekor[1].y
= 1) then mati := true;
until
keypressed or mati;
if mati
then exit;
tkn:=readkey;
if tkn =
'w' then tkn:='s';
end
else if c =
'w' then begin
repeat
if((ekor[1].x = makanan.x) and (ekor[1].y = makanan.y)) then makan;
ekor[1].y := ekor[1].y-1;
atur_posisi;
if
(ekor[1].x = batas_x) or (ekor[1].y = batas_y) or (ekor[1].x = 1) or (ekor[1].y
= 1) then mati := true;
until
keypressed or mati;
if mati
then exit;
tkn:=readkey;
if tkn =
's' then tkn:='w';
end
else if c =
'a' then begin
repeat
if((ekor[1].x = makanan.x) and (ekor[1].y = makanan.y)) then makan;
ekor[1].x := ekor[1].x-1;
atur_posisi;
if
(ekor[1].x = batas_x) or (ekor[1].y = batas_y) or (ekor[1].x = 1) or (ekor[1].y
= 1) then mati := true;
until
keypressed or mati;
if mati
then exit;
tkn:=readkey;
if tkn =
'd' then tkn:='a';
end;
end;
begin
tkn:='d';
mati :=
false;
randomize;
pjg := 10;
spd := 0;
makanan.x :=
random(batas_x-2)+2;
makanan.y :=
random(batas_y-2)+2;
ekor[1].x :=
40;
ekor[1].y :=
3;
for i:=2 to
pjg do begin
ekor[i].x
:= ekor[i-1].x;
ekor[i].y
:= 3;
end;
lanjut:
clrscr;
gotoxy(10,26); write('Skor = ',skor);
for i:=1 to
80 do begin
gotoxy(i,1); write('-');
gotoxy(i,25); write('-');
end;
for i:=2 to
24 do begin
gotoxy(1,i); write('|');
gotoxy(80,i); write('|');
end;
for i:=1 to
pjg do begin
gotoxy(ekor[i].x, ekor[i].y);
write('&');
end;
gotoxy(makanan.x, makanan.y); write('o');
repeat
if((tkn='w') or (tkn='a') or (tkn='s') or (tkn='d')) then bergerak(tkn)
else begin
repeat
gotoxy(20,10); write('
Lagi Galau..??');
gotoxy(20,11); write('
..Paused Game..');
repeat
gotoxy(20,13); write('..Press w, a, s or d to lanjut..'); delay(200);
gotoxy(20,13); write(' '); delay(200);
until
keypressed;
tkn:=readkey;
until((tkn='w') or (tkn='a') or (tkn='s') or (tkn='d')); goto lanjut;
end;
if mati
then goto habis;
until (tkn =
#27) or mati;
habis:
gotoxy(20,10); write(' Lagi
Galau..??');
gotoxy(20,11); write(' ..Paramex obatnya..');
gotoxy(20,12); write('
..wkwkwkwkwk..');
readln;
end.
Penjelasan
Program ini
akan bergerak dengan menekan tombol w,a,s,d, sebagai penun juk arah ular.
Program akan berkahir jika ular mencapai panjang 100,dengan kecepatan 200
delay, dengan tipe data x dan y. jika
ular gagal maka akan muncul kalimat “lagi galau, paramex obatnya, wkwkwkwk,
dank an muncul tampilan huruf W,A,S,D, unutk lanjut atau berhenti. Sekiranya
itulah jalannya program game ini secara sederhananya.
0 komentar:
Posting Komentar