Kategori :
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 Response to "pointer pada pascal dan C++ dan game ular pada pascal"
Post a Comment