belajar komputer

Minggu, 16 Desember 2012

program HITUNG_UNGKAPAN_POSITIF;


 


 {*****************************************************
 * program 5.14. (PROG5-14.PAS)                      *                       
 * menghitung nilai ungkapan positifx.               *                      
 * ungkapan positifx dihasilkan dari ungkapan infix  *                      
 * operand pada ungkapan infix harus berupa angaka   *                      
 * sebelum dihitung ungkapan infixnya perlu          *                      
 * ditest validasinya.                               *                      
 * ^, *, /, dan -                                    *                       
 *****************************************************}
program HITUNG_UNGKAPAN_POSITIF;
uses wincrt;
const max = 80;
     operand = ['0'..'9'];
        operator= ['*', '/', '+', '-', '^'];
{*deklarasi tipe simpul*}
type kalimat = string [max];
    tumpukan = ^ elemen;
        elemen   = record
            huruf   : char;
            angka   : real;
            berikut : tumpukan;
            end;
var infix ,postfix  : kalimat;
     salah          :boolean ;
     kode ,cacah, I :integer ;
     lagi           :char    ;
     hitungan       :real; 
{*******************************************
 * fungsi berikut digunakan untuk mengecek *
 * valid tidaknya ungkapan infix           *
 * *****************************************}
function CEK_NOTASI (inf : kalimat) : boolean;
var I, N, C_Buka, C_Tutup           : integer;
    kar_Sah                : set of char;
    Salah                : boolean;
    I1, I2                : char;
begin
{* Notasi infix pertama kali dianggap benar *}
    salah := false;
    N:= length(inf);
    if N <= 2 then
        salah := true                 
    else if (inf[1] = ')') or (inf[N] = ' (') then
    {* jika infix diawali dengan ) atau diakhiri dengan (, berarti infixnya salah *}
        salah := true
    else
        begin
        {*himpunan dari karakter yang sah*}
        Kar_Sah := operand + operator + ['(', ')'];
        {*cacah kurang buka, dan kurung tutup*}
        C_Buka := 0; C_Tutup := 0;
        for I := 1 to N - 1 do
        begin
            I1 := inf[I]; I2 := inf[I+1];
            if ((I1 in operand) and (I2 in operand))
            or ((I1 in operator) and (I2 in operator))
            or ((I1 = ')') and (I2 in operand))
            or ((I1 = '(') and (I2 = ')'))
            or ((I1 in operand) and (I2 = '('))
            or ((I1 = ')') and (I2 in operand)) then
            begin
                salah := true;
                I:= N - 1
            end

Jumat, 02 November 2012

program membalikan_kata;







program membalikan_kata;

uses wincrt;

var

s,t,u,v,w,x,y,z:string;

p,q,i,j,k:integer;

begin

clrscr;
writeln (' Nama : MUKLISIN ');
writeln (' Nim  : 11295100 ');
writeln ('==================================');
writeln;

writeln ('masukan kalimat yang akan dibalik: ');

readln(s);

p:=length(s);

i:=1;

for q:=p downto 1 do

begin

insert(s[q],t,i);

inc(i);

end;

writeln(t);


end.

hasilnya: