Beispiel #1
0
boolean MLT(Matrik M1, Matrik M2)
{
    if(NBElmt(M1)<NBElmt(M2))
        return true;
    else
        return false;
}
Beispiel #2
0
boolean IsEqM(Matrik M1, Matrik M2)
{
    int i,j;
    boolean sama;

    if(NBElmt(M1)==NBElmt(M2)){
        for (i=FirstIdxBrs(M1);i<=M1.NbrsEff;i++)
        {
            for (j=FirstIdxKol(M1);j<=M1.NkolEff;j++)
            {
                if(M1.Mem[i][j]==M2.Mem[i][j]){
                    sama=true;
                    continue;
                }
                else
                    return sama;
            }
        }
    }
    else{
        return sama;
    }

    return sama;
}
boolean IsGame(Queue Q)
/* mengembalikan true apabila kondisi permainan berakhir terpenuhi, yaitu */
/* salah satu pemain mendapatkan skor sebesar 3 atau */
/* hanya tinggal satu pemain yang bermain */
{
	if ((NBElmt(Q) == 1) || (InfoTailSkor(Q) == 3))
	{
		return true;
	}
	else
	{
		return false;
	}
}
Beispiel #4
0
boolean IsSparse(Matrik M)
{
    int countbukan0=0;
    int i, j;

    for(i=FirstIdxBrs(M);i<=M.NbrsEff;i++)
    {
        for(j=FirstIdxKol(M);j<=M.NkolEff;j++)
        {
            if(M.Mem[i][j]!=0)
                countbukan0++;
        }
    }

    return (countbukan0<=(0.05*NBElmt(M)));
}
boolean IsFull (Queue Q) {
	/*Algoritma*/
	return (NBElmt(Q) == Q.MaxEl);
}
boolean IsFullQueue(Queue Q)
/* Mengirim true jika tabel penampung elemen Q sudah penuh */
/* yaitu mengandung elemen sebanyak MaxEl */
{
    return NBElmt(Q) == MaxEl(Q);
}
Beispiel #7
0
int main()
{
	/*kamus*/
	Queue Q;
	int n,n2,i;
	int t = 0; // waktu masukan
	int pret = 0; // waktu sebelum t. cek pret<=t
	int tclose; // waktu tutup
	int visitor = 0;
	float srvtime = 0; // total waktu pelayanan
	float que = 0; // total antrian*waktu
	char input[6];
	boolean close;
	/*algoritma*/
	printf("Ukuran Queue : ");
	scanf("%d",&n);
	CreateEmpty(&Q,n);
	close = false;
	do {
		printf("Masukkan perintah: ");
		scanf("%d%s",&t,input);
		if(t<pret) printf("Waktu yang dimasukkan tidak valid, seharusnya >= %d\n",pret);
		else {
			switch(input[0]) {
				case 'a' : 
							if(IsFull(Q)) printf("Queue penuh, tidak bisa menerima pengunjung baru\n");
							else {
								que+=NBElmt(Q)*(t-pret);
								Add(&Q,t);
								printf("Q = ");
								PrintQueue(Q);
							}
							break;
				case 'c' :
							close = true;
							tclose = t;
							if (IsEmpty(Q)) 
								printf("Bank tutup, tidak ada pengunjung tersisa\n");
							else printf("Bank tutup, masih ada %d pengunjung tersisa\n",NBElmt(Q));
							break;
				case 'd' :
							if(IsEmpty(Q))
								printf("Queue kosong, tidak ada pengunjung yang akan dilayani\n");
							else {
								visitor++;
								Del(&Q,&n);
								if(!close) que+=NBElmt(Q)*(t-pret);
								printf("waktu kedatangan = %d, waktu tunggu = %d, Q = ",n,t-n);
								PrintQueue(Q);
								srvtime += t-n;
							}
			}
			pret=t;
		}
	}while(!close || !IsEmpty(Q));

	printf("\nBank tutup pada t = %d, layanan selesai pada t = %d\n",tclose,t);
	if(visitor) {
		printf("Jumlah pengunjung dilayani: %d orang\n",visitor);
		printf("Waktu tunggu rata-rata: %.0f satuan waktu\n",srvtime/visitor);
		printf("Panjang antrian rata-rata: %.3f orang\n",que/tclose);
	} else printf("Tidak ada pengunjung yang dilayani\n");
	
	return 0;	
}