Minggu, 06 Januari 2013

program pointer pascal dan c++



Program pointer pascal
program susunangka;
uses crt;
type pointer = ^simpul;
     simpul = record
            data : byte;
            next : pointer;
     end;

var  awal,baru,bantu,hapus : pointer;
     angka,x : byte; mau : char;
procedure cetak;
begin
     new(bantu);
     bantu := awal;
     while bantu^.next <> nil do
     begin
          write(bantu^.data,' ');
          bantu := bantu^.next;
     end;
     write(bantu^.data);
end;

begin
     x := 1;
     repeat
           clrscr;
           new(awal);
           awal := nil;
           write('[0 untuk berhenti] Masukkan angka ke ',x,' : ');readln(angka);
           inc(x);
     until angka <> 0;
     repeat
        new(baru);
        baru^.data := angka;
        baru^.next := nil;
        if awal = nil then
           awal := baru
        else
        if baru^.data < awal^.data then
        begin
           baru^.next := awal;
           awal := baru;
        end
        else
        begin
             new(bantu);
             bantu := awal;
             while (bantu^.next <> nil) and (bantu^.next^.data < baru^.data) do
                  bantu := bantu^.next;
             baru^.next := bantu^.next;
             bantu^.next := baru;
        end;
        write('[0 untuk berhenti] Masukkan angka ke ',x,' : ');readln(angka);
        inc(x);
     until angka = 0;
     write('Setelah data diurutkan = ');
     cetak;
     writeln;
     repeat
       write('apakah anda ingin menghapus data angka genap ?[y/t] : ');readln(mau);
     until (mau = 'y') or (mau = 't');
     if mau = 'y' then
     begin
          while (awal^.data mod 2 = 0) and (awal^.next <> nil) do
          begin
               new(hapus);
               hapus := awal;
               awal := hapus^.next;
               dispose(hapus);
          end;
          if (awal^.next = nil) and (awal^.data mod 2 = 0) then
             awal := nil;
          if awal <> nil then
          begin
               new(bantu);
               bantu := awal;
               while bantu^.next <> nil do
               begin
                    if bantu^.next^.data mod 2 = 0 then
                    begin
                         new(hapus);
                         hapus := bantu^.next;
                         bantu^.next := hapus^.next;
                         dispose(hapus);
                    end
                    else
                        bantu := bantu^.next;
               end;
          end;
     end;
     if mau = 't' then
          write('Data masih tetap sama')
     else if awal <> nil then
     begin
          write('Data setelah semua angka genap dihapus = ');
          cetak;
     end
     else
         write('Data angka ganjil tidak ada');
     readln;
end.



  
Listing program
 
outputnya





Program pointer c++
#include "stdio.h"          
#include "conio.h"

void main()
{
 int *point;
 int a=7, b=15;

 printf(" Nilai a : %d \n", a);
 printf(" Alamat a : %p \n\n", &a);

 point=&a;

 printf(" Nilai point = %p \n", point);
 printf(" Alamat point = %p \n", &point);
 printf(" nilai rujukan point = %d \n\n", *point);

 *point=10;

 printf(" Nilai point = %p \n", point);
 printf(" Alamat point = %p \n", &point);
 printf(" nilai rujukan point = %d \n\n", *point);

 printf(" Nilai a : %d \n", a);
 printf(" Alamat a : %p \n\n", &a);

 printf(" Nilai B : %d \n", b);
 printf(" Alamat B : %p \n\n", &b);

 point=&b;

 printf(" Nilai point = %p \n", point);
 printf(" Alamat point = %p \n", &point);
 printf(" nilai rujukan point = %d \n\n", *point);

 getch();
}






Listng program c++ 


Outputnya