Jawaban Tugas Kelas A
Jawaban Unguided Kelas A
Jawaban Unguided Kelas C
Monday, October 29, 2007
Jawaban Unguided Kelas C
//file header.h
#include
#include
#include
#include
#define Max 5
typedef int address;
typedef int infotype;
typedef char string[20];
typedef struct
{
string strNama;
infotype umur;
}Anak;
typedef struct
{
Anak Element[Max];
address Head;
address Tail;
}Queue;
void createEmpty(Queue *Q);
int isEmpty(Queue Q);
int isFull(Queue Q);
int isOneElmt(Queue Q);
void Add(Queue *Q,Anak data);
void Del(Queue *Q);
void PrintQueue(Queue Q);
//file function.c
#include"header.h"
void createEmpty(Queue *Q)
{
(*Q).Head=(*Q).Tail=-1;
}
int isEmpty(Queue Q)
{
return(Q.Head==-1 && Q.Tail==-1);
}
int isFull(Queue Q)
{
return((Q.HeadQ.Tail && Q.Head-Q.Tail==1));
}
int isOneElmt(Queue Q)
{
return(Q.Head==Q.Tail && Q.Head!=-1);
}
void Add(Queue *Q,Anak data)
{
if(!isFull(*Q))
{
if(isEmpty(*Q))
{
(*Q).Head=(*Q).Tail=0;
(*Q).Element[(*Q).Head]=data;
}
else
{
if((*Q).Tail==Max-1)
(*Q).Tail=0;
else
(*Q).Tail++;
(*Q).Element[(*Q).Tail]=data;
}
}
else
printf ("Antrian penuh\n");
}
void Del(Queue *Q)
{
int bantu=(*Q).Head;
if(!isEmpty(*Q))
{
if(isOneElmt(*Q))
createEmpty(&(*Q));
else
{
if((*Q).Head==Max-1)
(*Q).Head=0;
else
(*Q).Head++;
}
printf("\nData yang dihapus");
printf("\nNama : %s",(*Q).Element[bantu].strNama);
printf("\nUmur : %d",(*Q).Element[bantu].umur);
}
}
void PrintQueue(Queue Q)
{
address i;
if(!isEmpty(Q))
{
if(Q.Head<=Q.Tail)
{
for(i=Q.Head;i<=Q.Tail;i++)
printf("%s/(%d tahun) ",Q.Element[i].strNama,Q.Element[i].umur);
}
else
{
for(i=Q.Head;i<=Max-1;i++)
printf("%s/(%d tahun) ",Q.Element[i].strNama,Q.Element[i].umur);
for(i=0;i<=Q.Tail;i++)
printf("%s/(%d tahun) ",Q.Element[i].strNama,Q.Element[i].umur);
}
}
else
printf("Queue kosong");
printf("\n");
}
//file main.c
#include"header.h"
main()
{
Queue Q[4];
Anak Data;
int i,iPilih,iHapus;
for(i = 0;i < 4;i++)
createEmpty(&Q[i]);
do
{
system("cls");
printf("MENU\n");
printf("1.Add Queue\n");
printf("2.Del Queue\n");
printf("3.Print Queue\n");
printf("0.Keluar\n");
printf("Pilihan: ");
scanf("%d",&iPilih);
switch(iPilih)
{
case 1:
fflush(stdin);
printf("Masukkan Nama = ");
gets(Data.strNama);
printf("Masukkan Umur = ");
scanf("%d",&Data.umur);
if(Data.umur >= 7 && Data.umur <= 15)
{
if(Data.umur == 7 || Data.umur == 8)
Add(&Q[0],Data);
else if(Data.umur == 9 || Data.umur == 10)
Add(&Q[1],Data);
else if(Data.umur == 11 || Data.umur == 12)
Add(&Q[2],Data);
else
Add(&Q[3],Data);
}
else
printf("Maaf lomba hanya untuk anak umur 7 tahun sampai 15 tahun\n");
for(i = 0;i < 4;i++)
{
printf("Loket %d: ",i+1);
PrintQueue(Q[i]);
}
getch();
break;
case 2:
printf("Masukkan loket yang antriannya ingin dihapus = ");
scanf("%d",&iHapus);
Del(&Q[iHapus-1]);
getch();
break;
case 3:
for(i = 0;i < 4;i++)
{
printf("Loket %d: ",i+1);
PrintQueue(Q[i]);
}
getch();
break;
}
}while(iPilih!=0);
}
#include
#include
#include
#include
#define Max 5
typedef int address;
typedef int infotype;
typedef char string[20];
typedef struct
{
string strNama;
infotype umur;
}Anak;
typedef struct
{
Anak Element[Max];
address Head;
address Tail;
}Queue;
void createEmpty(Queue *Q);
int isEmpty(Queue Q);
int isFull(Queue Q);
int isOneElmt(Queue Q);
void Add(Queue *Q,Anak data);
void Del(Queue *Q);
void PrintQueue(Queue Q);
//file function.c
#include"header.h"
void createEmpty(Queue *Q)
{
(*Q).Head=(*Q).Tail=-1;
}
int isEmpty(Queue Q)
{
return(Q.Head==-1 && Q.Tail==-1);
}
int isFull(Queue Q)
{
return((Q.Head
}
int isOneElmt(Queue Q)
{
return(Q.Head==Q.Tail && Q.Head!=-1);
}
void Add(Queue *Q,Anak data)
{
if(!isFull(*Q))
{
if(isEmpty(*Q))
{
(*Q).Head=(*Q).Tail=0;
(*Q).Element[(*Q).Head]=data;
}
else
{
if((*Q).Tail==Max-1)
(*Q).Tail=0;
else
(*Q).Tail++;
(*Q).Element[(*Q).Tail]=data;
}
}
else
printf ("Antrian penuh\n");
}
void Del(Queue *Q)
{
int bantu=(*Q).Head;
if(!isEmpty(*Q))
{
if(isOneElmt(*Q))
createEmpty(&(*Q));
else
{
if((*Q).Head==Max-1)
(*Q).Head=0;
else
(*Q).Head++;
}
printf("\nData yang dihapus");
printf("\nNama : %s",(*Q).Element[bantu].strNama);
printf("\nUmur : %d",(*Q).Element[bantu].umur);
}
}
void PrintQueue(Queue Q)
{
address i;
if(!isEmpty(Q))
{
if(Q.Head<=Q.Tail)
{
for(i=Q.Head;i<=Q.Tail;i++)
printf("%s/(%d tahun) ",Q.Element[i].strNama,Q.Element[i].umur);
}
else
{
for(i=Q.Head;i<=Max-1;i++)
printf("%s/(%d tahun) ",Q.Element[i].strNama,Q.Element[i].umur);
for(i=0;i<=Q.Tail;i++)
printf("%s/(%d tahun) ",Q.Element[i].strNama,Q.Element[i].umur);
}
}
else
printf("Queue kosong");
printf("\n");
}
//file main.c
#include"header.h"
main()
{
Queue Q[4];
Anak Data;
int i,iPilih,iHapus;
for(i = 0;i < 4;i++)
createEmpty(&Q[i]);
do
{
system("cls");
printf("MENU\n");
printf("1.Add Queue\n");
printf("2.Del Queue\n");
printf("3.Print Queue\n");
printf("0.Keluar\n");
printf("Pilihan: ");
scanf("%d",&iPilih);
switch(iPilih)
{
case 1:
fflush(stdin);
printf("Masukkan Nama = ");
gets(Data.strNama);
printf("Masukkan Umur = ");
scanf("%d",&Data.umur);
if(Data.umur >= 7 && Data.umur <= 15)
{
if(Data.umur == 7 || Data.umur == 8)
Add(&Q[0],Data);
else if(Data.umur == 9 || Data.umur == 10)
Add(&Q[1],Data);
else if(Data.umur == 11 || Data.umur == 12)
Add(&Q[2],Data);
else
Add(&Q[3],Data);
}
else
printf("Maaf lomba hanya untuk anak umur 7 tahun sampai 15 tahun\n");
for(i = 0;i < 4;i++)
{
printf("Loket %d: ",i+1);
PrintQueue(Q[i]);
}
getch();
break;
case 2:
printf("Masukkan loket yang antriannya ingin dihapus = ");
scanf("%d",&iHapus);
Del(&Q[iHapus-1]);
getch();
break;
case 3:
for(i = 0;i < 4;i++)
{
printf("Loket %d: ",i+1);
PrintQueue(Q[i]);
}
getch();
break;
}
}while(iPilih!=0);
}
Jawaban Unguided Kelas A
//file header.h
#include
#include
#include
#include
#define MaxEl 10 //maksimal isi antrian
typedef int address;
typedef struct{
char Elmt[MaxEl]; //tempat menyimpan isi antrian
address Head;
address Tail;
}Queue;
typedef struct{
Queue antrian[2];
}Queues;
void CreateEmpty(Queue *Q);
int IsEmpty(Queue Q);
int IsFull(Queue Q);
int IsOneElmt(Queue Q);
void Add(Queues *Q,char C); //memasukkan data-data ke antrian
void Del(Queue *Q); //hapus data di head
void PrintQueue(Queues Q);
int CekChar(char C); //mengecek karakter berupa angka,huruf atau lainnya
void JmlChar(Queues Q); //menghitung jumlah isi tiap antrian
int Search(Queues Q,char X);
//file function.c
#include"header.h"
void CreateEmpty(Queue *Q)
{
(*Q).Head=(*Q).Tail=-1;
}
int IsEmpty(Queue Q)
{
return(Q.Head==-1 && Q.Tail==-1);
}
int IsFull(Queue Q)
{
return((Q.HeadQ.Tail && Q.Head-Q.Tail==1));
}
int IsOneElmt(Queue Q)
{
return(Q.Head==Q.Tail && Q.Head!=-1);
}
void Add(Queues *Q,char C)
{
int j=CekChar(C);
if(j!=-1)
{
if(!IsFull((*Q).antrian[j]))
{
if(IsEmpty((*Q).antrian[j]))
{
(*Q).antrian[j].Head=(*Q).antrian[j].Tail=0;
(*Q).antrian[j].Elmt[(*Q).antrian[j].Tail]=C;
if(j==0)
printf("%c masuk antrian angka\n",C);
else
printf("%c masuk antrian huruf\n",C);
}
else
{
if((*Q).antrian[j].Tail==MaxEl-1)
(*Q).antrian[j].Tail=0;
else
(*Q).antrian[j].Tail++;
(*Q).antrian[j].Elmt[(*Q).antrian[j].Tail]=C;
if(j==0)
printf("%c masuk antrian angka\n",C);
else
printf("%c masuk antrian huruf\n",C);
}
}
else //penuh, hapus data di head
printf("Antrian sudah penuh");
}
else
printf("Karakter bukan merupakan huruf maupun angka\n");
}
void Del(Queue *Q)
{
char temp=(*Q).Elmt[(*Q).Head];
if(!IsEmpty(*Q))
{
if(IsOneElmt(*Q))
CreateEmpty(&(*Q));
else
{
if((*Q).Head==MaxEl-1)
(*Q).Head=0;
else
(*Q).Head++;
}
printf("Elemen yang dihapus:%c\n\n",temp);
}
}
void PrintQueue(Queues Q)
{
address i,j;
for(j=0;j<2;j++) j="="0)" i="Q.antrian[j].Head;i<="Q.antrian[j].Tail;i++)" i="Q.antrian[j].Head;i<="MaxEl-1;i++)" i="0;i<="Q.antrian[j].Tail;i++)">=48 && C<=57) return 0; //angka else if((C>=65 && C<=90) || (C>=97 && C<=122)) return 1; //huruf else return -1; } void JmlChar(Queues Q) { int i,j,jml; for(j=0;j<2;j++) { jml=0; if(!IsEmpty(Q.antrian[j])) { if(Q.antrian[j].Head<=Q.antrian[j].Tail) { for(i=Q.antrian[j].Head;i<=Q.antrian[j].Tail;i++) jml=jml+1; } else { for(i=Q.antrian[j].Head;i<=MaxEl-1;i++) jml=jml+1; for(i=0;i<=Q.antrian[j].Tail;i++) jml=jml+1; } } if(j==0) printf("\nLoket angka berisi: %d karakter",jml); else printf("\nLoket huruf berisi: %d karakter",jml); } }
//file main.c
#include"header.h"
void main()
{
Queues Q;
char string[30];
int pil,i,pjg;
for(i=0;i<2;i++)
CreateEmpty(&(Q.antrian[i]));
do{
system("cls");
puts("Menu:");
puts("1.Isi Queue");
puts("2.Print Queue");
puts("3.Jumlah karakter tiap antrian");
puts("0.Keluar");
printf("Pilihan: ");
scanf("%d",&pil);
switch(pil)
{
case 1:{
puts("\nMasukkan string: ");
scanf("%s",&string);
pjg=strlen(string);
for(i=0;i
Add(&Q,string[i]);
getch();
}break;
case 2:{
printf("\nIsi dari antrian:");
PrintQueue(Q);
getch();
}break;
case 3:{
printf("\nJumlah karakter tiap antrian: ");
JmlChar(Q);
getch();
}break;
}
}while(pil!=0);
}
#include
#include
#include
#include
#define MaxEl 10 //maksimal isi antrian
typedef int address;
typedef struct{
char Elmt[MaxEl]; //tempat menyimpan isi antrian
address Head;
address Tail;
}Queue;
typedef struct{
Queue antrian[2];
}Queues;
void CreateEmpty(Queue *Q);
int IsEmpty(Queue Q);
int IsFull(Queue Q);
int IsOneElmt(Queue Q);
void Add(Queues *Q,char C); //memasukkan data-data ke antrian
void Del(Queue *Q); //hapus data di head
void PrintQueue(Queues Q);
int CekChar(char C); //mengecek karakter berupa angka,huruf atau lainnya
void JmlChar(Queues Q); //menghitung jumlah isi tiap antrian
int Search(Queues Q,char X);
//file function.c
#include"header.h"
void CreateEmpty(Queue *Q)
{
(*Q).Head=(*Q).Tail=-1;
}
int IsEmpty(Queue Q)
{
return(Q.Head==-1 && Q.Tail==-1);
}
int IsFull(Queue Q)
{
return((Q.Head
}
int IsOneElmt(Queue Q)
{
return(Q.Head==Q.Tail && Q.Head!=-1);
}
void Add(Queues *Q,char C)
{
int j=CekChar(C);
if(j!=-1)
{
if(!IsFull((*Q).antrian[j]))
{
if(IsEmpty((*Q).antrian[j]))
{
(*Q).antrian[j].Head=(*Q).antrian[j].Tail=0;
(*Q).antrian[j].Elmt[(*Q).antrian[j].Tail]=C;
if(j==0)
printf("%c masuk antrian angka\n",C);
else
printf("%c masuk antrian huruf\n",C);
}
else
{
if((*Q).antrian[j].Tail==MaxEl-1)
(*Q).antrian[j].Tail=0;
else
(*Q).antrian[j].Tail++;
(*Q).antrian[j].Elmt[(*Q).antrian[j].Tail]=C;
if(j==0)
printf("%c masuk antrian angka\n",C);
else
printf("%c masuk antrian huruf\n",C);
}
}
else //penuh, hapus data di head
printf("Antrian sudah penuh");
}
else
printf("Karakter bukan merupakan huruf maupun angka\n");
}
void Del(Queue *Q)
{
char temp=(*Q).Elmt[(*Q).Head];
if(!IsEmpty(*Q))
{
if(IsOneElmt(*Q))
CreateEmpty(&(*Q));
else
{
if((*Q).Head==MaxEl-1)
(*Q).Head=0;
else
(*Q).Head++;
}
printf("Elemen yang dihapus:%c\n\n",temp);
}
}
void PrintQueue(Queues Q)
{
address i,j;
for(j=0;j<2;j++) j="="0)" i="Q.antrian[j].Head;i<="Q.antrian[j].Tail;i++)" i="Q.antrian[j].Head;i<="MaxEl-1;i++)" i="0;i<="Q.antrian[j].Tail;i++)">=48 && C<=57) return 0; //angka else if((C>=65 && C<=90) || (C>=97 && C<=122)) return 1; //huruf else return -1; } void JmlChar(Queues Q) { int i,j,jml; for(j=0;j<2;j++) { jml=0; if(!IsEmpty(Q.antrian[j])) { if(Q.antrian[j].Head<=Q.antrian[j].Tail) { for(i=Q.antrian[j].Head;i<=Q.antrian[j].Tail;i++) jml=jml+1; } else { for(i=Q.antrian[j].Head;i<=MaxEl-1;i++) jml=jml+1; for(i=0;i<=Q.antrian[j].Tail;i++) jml=jml+1; } } if(j==0) printf("\nLoket angka berisi: %d karakter",jml); else printf("\nLoket huruf berisi: %d karakter",jml); } }
//file main.c
#include"header.h"
void main()
{
Queues Q;
char string[30];
int pil,i,pjg;
for(i=0;i<2;i++)
CreateEmpty(&(Q.antrian[i]));
do{
system("cls");
puts("Menu:");
puts("1.Isi Queue");
puts("2.Print Queue");
puts("3.Jumlah karakter tiap antrian");
puts("0.Keluar");
printf("Pilihan: ");
scanf("%d",&pil);
switch(pil)
{
case 1:{
puts("\nMasukkan string: ");
scanf("%s",&string);
pjg=strlen(string);
for(i=0;i
Add(&Q,string[i]);
getch();
}break;
case 2:{
printf("\nIsi dari antrian:");
PrintQueue(Q);
getch();
}break;
case 3:{
printf("\nJumlah karakter tiap antrian: ");
JmlChar(Q);
getch();
}break;
}
}while(pil!=0);
}
Subscribe to:
Posts (Atom)