/*karena format HTML, maka semua karakter lebih besar (>) dan lebih kecil (<) diganti dengan karakter ((>)) dan ((<)) sorry (^-^)*/
//file header.h
#include (<)stdio.h(>)
#include (<)conio.h(>)
#include (<)stdlib.h(>)
#include (<)string.h(>)
#define max 69
typedef struct{
int top;
char kata[max];
}kalimat;
void palindrom(kalimat a);
//file definition.c
#include "header.h"
void palindrom(kalimat a)
{
char j;
int i,cek=1,pjg=0;
kalimat b;
a.top=strlen(a.kata);
for(i=0;i(<)a.top;i++)
{
for(j='A';j(<)='Z';j++)
{
if(toupper(a.kata[i])==j)
{
b.kata[pjg]=toupper(a.kata[i]);
pjg++;
}
}
}
a.top=pjg;
strcpy(a.kata,b.kata);
for(i=0;i(<)a.top;i++)
{
b.kata[i]=a.kata[(a.top)-i-1];
}
for(i=0;i(<)a.top;i++)
{
if(toupper(b.kata[i])!=toupper(a.kata[i]))
cek=0;
}
if(cek==1)
printf("Palindrom");
else
printf("Bukan Palindrom");
}
//file main.c
#include "header.h"
void main()
{
char pil,y[max];
kalimat r;
do
{
printf("Masukkan Kata/Kalimat : ");gets(y);
strcpy(r.kata,y);
palindrom(r);
printf("\nApakah Ingin Diulangi(y/n)?");
pil=getche();
printf("\n\n");
}while(pil!='n');
}
Showing posts with label Stack. Show all posts
Showing posts with label Stack. Show all posts
Tuesday, July 3, 2007
SD: Stack Unguided 3 Juli 2007
/*karena format HTML, maka semua karakter lebih besar (>) dan lebih kecil (<) diganti dengan karakter ((>)) dan ((<)) sorry (^-^)*/
//file header.h
#include (<)conio.h(>)
#include (<)stdio.h(>)
#include (<)stdlib.h(>)
#define max 10
typedef char str[20];
typedef struct{
str namacd;
float harga;
}cd;
typedef struct{
int top;
cd content[max];
}allcd;
void init(allcd *disk);
void pushcd(allcd *disk);
void popcd(allcd *disk);
void popallstack(allcd *disk);
int cekharga(allcd disk,float price);
//file definition.c
#include "header.h"
void init(allcd *disk)
{
(*disk).top=-1;
}
void pushcd(allcd *disk)
{
float price;
str name;
if((*disk).top(<)max-1)
{
(*disk).top++;
printf("\nMasukkan Nama CD : ");scanf("%s",&name);
strcpy((*disk).content[(*disk).top].namacd,name);
do
{
printf("Masukkan Harga CD : ");scanf("%f",&price);
if(cekharga((*disk),price))
(*disk).content[(*disk).top].harga = price;
else
printf("Maaf harga CD yang baru harus 5000 lebih mahal\ndibandingkan harga cd sebelumnya (%f)\n",(*disk).content[(*disk).top-1].harga);
}while(cekharga((*disk),price)==0);
}
else
printf("Maaf Rak Sudah Penuh");
}
void popcd(allcd *disk)
{
if((*disk).top(>)(-1))
{
printf("\nCD ke %d",(*disk).top+1);
printf("\nNama CD : %s",(*disk).content[(*disk).top].namacd);
printf("\nHarga CD : %f",(*disk).content[(*disk).top].harga);
(*disk).top--;
}
else
printf("\nMaaf, Rak Kosong");
}
void popallstack(allcd *disk)
{
int i;
if((*disk).top(>)-1)
{
for(i=0;i<=(*disk).top;i++)
{
printf("\nCD ke %d",i+1);
printf("\nNama CD : %s",(*disk).content[i].namacd);
printf("\nHarga CD : %f",(*disk).content[i].harga);
}
}
else
printf("Tidak Ada CD");
}
int cekharga(allcd disk, float price)
{
if(disk.top==0)
return 1;
else
{
if(price (>)= disk.content[disk.top-1].harga+5000)
return 1;
else
return 0;
}
}
//file main.c
#include "header.h"
void main()
{
char pil;
allcd disc;
init(&disc);
do
{
system("cls");
printf("MENU");
printf("\n1. Tambah CD");
printf("\n2. Keluarkan CD");
printf("\n3. Tampilkan Semua CD");
printf("\nesc untuk keluar\n");
pil=getch();
switch(pil)
{
case '1':
pushcd(&disc);
getch();
break;
case '2':
popcd(&disc);
getch();
break;
case '3':
popallstack(&disc);
getch();
break;
}
}while(pil != 27);
}
//file header.h
#include (<)conio.h(>)
#include (<)stdio.h(>)
#include (<)stdlib.h(>)
#define max 10
typedef char str[20];
typedef struct{
str namacd;
float harga;
}cd;
typedef struct{
int top;
cd content[max];
}allcd;
void init(allcd *disk);
void pushcd(allcd *disk);
void popcd(allcd *disk);
void popallstack(allcd *disk);
int cekharga(allcd disk,float price);
//file definition.c
#include "header.h"
void init(allcd *disk)
{
(*disk).top=-1;
}
void pushcd(allcd *disk)
{
float price;
str name;
if((*disk).top(<)max-1)
{
(*disk).top++;
printf("\nMasukkan Nama CD : ");scanf("%s",&name);
strcpy((*disk).content[(*disk).top].namacd,name);
do
{
printf("Masukkan Harga CD : ");scanf("%f",&price);
if(cekharga((*disk),price))
(*disk).content[(*disk).top].harga = price;
else
printf("Maaf harga CD yang baru harus 5000 lebih mahal\ndibandingkan harga cd sebelumnya (%f)\n",(*disk).content[(*disk).top-1].harga);
}while(cekharga((*disk),price)==0);
}
else
printf("Maaf Rak Sudah Penuh");
}
void popcd(allcd *disk)
{
if((*disk).top(>)(-1))
{
printf("\nCD ke %d",(*disk).top+1);
printf("\nNama CD : %s",(*disk).content[(*disk).top].namacd);
printf("\nHarga CD : %f",(*disk).content[(*disk).top].harga);
(*disk).top--;
}
else
printf("\nMaaf, Rak Kosong");
}
void popallstack(allcd *disk)
{
int i;
if((*disk).top(>)-1)
{
for(i=0;i<=(*disk).top;i++)
{
printf("\nCD ke %d",i+1);
printf("\nNama CD : %s",(*disk).content[i].namacd);
printf("\nHarga CD : %f",(*disk).content[i].harga);
}
}
else
printf("Tidak Ada CD");
}
int cekharga(allcd disk, float price)
{
if(disk.top==0)
return 1;
else
{
if(price (>)= disk.content[disk.top-1].harga+5000)
return 1;
else
return 0;
}
}
//file main.c
#include "header.h"
void main()
{
char pil;
allcd disc;
init(&disc);
do
{
system("cls");
printf("MENU");
printf("\n1. Tambah CD");
printf("\n2. Keluarkan CD");
printf("\n3. Tampilkan Semua CD");
printf("\nesc untuk keluar\n");
pil=getch();
switch(pil)
{
case '1':
pushcd(&disc);
getch();
break;
case '2':
popcd(&disc);
getch();
break;
case '3':
popallstack(&disc);
getch();
break;
}
}while(pil != 27);
}
SD: Stack Guided 3 Juli 2007
/*karena format HTML, maka semua karakter lebih besar (>) dan lebih kecil (<) diganti dengan karakter ((>)) dan ((<)) sorry (^-^)*/
//file header.h
#include (<)conio.h(>)
#include (<)stdio.h(>)
#include (<)stdlib.h(>)
#include (<)time.h(>)
#define max_stack 5
typedef int infotype;
typedef struct{
infotype top;
int content[max_stack];
}stack;
void init(stack *s);
void push(stack *s, int value);
infotype pop(stack *s);
void show(stack s);
void random(stack *s, int n);
//file definition.c
#include "header.h"
void init(stack *s)
{
(*s).top = -1;
}
void push(stack *s, int value)
{
if((*s).top (<) (max_stack - 1 ))
{
(*s).top++;
(*s).content[(*s).top]=value;
}
else
{
printf("\nStack Penuh...");
getch();
}
}
infotype pop(stack *s)
{
infotype a;
if(((*s).top) (>) (-1))
{
a=(*s).content[(*s).top];
(*s).top--;
return(a);
}
else
{
printf("\nStack Kosong...");
return 0;
}
}
void show(stack s)
{
if(s.top (>) -1)
{
while(s.top != -1)
{
printf("\n %d",s.content[s.top]);
s.top--;
}
}
else
printf("\nStack Kosong...");
}
void random(stack *s, int n)
{
int x,i,temp;
srand((unsigned)time(NULL));
x=rand();
temp=(*s).top+n;
for(i=(*s).top;i(<)temp;i++)
{
if((*s).top (<) (max_stack - 1 ))
{
(*s).top++;
x=rand()%100;
(*s).content[(*s).top]=x;
}
else
printf("Maaf Stack Sudah Penuh");
}
}
//file main.c
#include "header.h"
void main()
{
stack mystack;
char pilih;
infotype newval,a;
int el;
init(&mystack);
do
{
system("cls");
printf("\nMENU");
printf("\n1.PUSH");
printf("\n2.POP");
printf("\n3.Show All");
printf("\n4.Masukkan Bilangan Random");
printf("\n\npilihan : ");
pilih=getch();
switch(pilih)
{
case '1':
printf("\nMasukkan nilai yang akan di push : ");scanf("%d",&newval);
push(&mystack,newval);
break;
case '2':
a=pop(&mystack);
printf("\nIsi stack yang di-POP : %d",a);
getch();
break;
case '3':
printf("\n\n");
show(mystack);
getch();
break;
case '4':
printf("Masukkan banyaknya elemen yang ingin dimasukkan : ");scanf("%d",&el);
random(&mystack,el);
getch();
break;
}
}while(pilih != 27);
}
//file header.h
#include (<)conio.h(>)
#include (<)stdio.h(>)
#include (<)stdlib.h(>)
#include (<)time.h(>)
#define max_stack 5
typedef int infotype;
typedef struct{
infotype top;
int content[max_stack];
}stack;
void init(stack *s);
void push(stack *s, int value);
infotype pop(stack *s);
void show(stack s);
void random(stack *s, int n);
//file definition.c
#include "header.h"
void init(stack *s)
{
(*s).top = -1;
}
void push(stack *s, int value)
{
if((*s).top (<) (max_stack - 1 ))
{
(*s).top++;
(*s).content[(*s).top]=value;
}
else
{
printf("\nStack Penuh...");
getch();
}
}
infotype pop(stack *s)
{
infotype a;
if(((*s).top) (>) (-1))
{
a=(*s).content[(*s).top];
(*s).top--;
return(a);
}
else
{
printf("\nStack Kosong...");
return 0;
}
}
void show(stack s)
{
if(s.top (>) -1)
{
while(s.top != -1)
{
printf("\n %d",s.content[s.top]);
s.top--;
}
}
else
printf("\nStack Kosong...");
}
void random(stack *s, int n)
{
int x,i,temp;
srand((unsigned)time(NULL));
x=rand();
temp=(*s).top+n;
for(i=(*s).top;i(<)temp;i++)
{
if((*s).top (<) (max_stack - 1 ))
{
(*s).top++;
x=rand()%100;
(*s).content[(*s).top]=x;
}
else
printf("Maaf Stack Sudah Penuh");
}
}
//file main.c
#include "header.h"
void main()
{
stack mystack;
char pilih;
infotype newval,a;
int el;
init(&mystack);
do
{
system("cls");
printf("\nMENU");
printf("\n1.PUSH");
printf("\n2.POP");
printf("\n3.Show All");
printf("\n4.Masukkan Bilangan Random");
printf("\n\npilihan : ");
pilih=getch();
switch(pilih)
{
case '1':
printf("\nMasukkan nilai yang akan di push : ");scanf("%d",&newval);
push(&mystack,newval);
break;
case '2':
a=pop(&mystack);
printf("\nIsi stack yang di-POP : %d",a);
getch();
break;
case '3':
printf("\n\n");
show(mystack);
getch();
break;
case '4':
printf("Masukkan banyaknya elemen yang ingin dimasukkan : ");scanf("%d",&el);
random(&mystack,el);
getch();
break;
}
}while(pilih != 27);
}
Subscribe to:
Posts (Atom)

