Cod sursa(job #222390)

Utilizator cercelcercel maria luiza cercel Data 22 noiembrie 2008 10:09:59
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.46 kb
#include<iostream.h>
struct fractie{
	int x,y;
	};

const N=10;
fractie a[N+1],el;
int ie,in,opt;
//************************
//* testeaza coada goala *
//************************
int cgoala(){
	if(ie>in)
		return 1;
	else
		return 0;
	}
//************************
// testeaza coada plina
//************************
int cplina(){
	if(in-ie==N-1)
		return 1;
	else
		return 0;
	}
//**********************
// adauga element la coada
//***********************
void add_c(fractie x){
   int i;
   if(cplina()==0){
	if(in==N){
		for(i=ie;i<=in;i++)
			a[i+1-ie]=a[i];
		in=N-ie;
		ie=1;
		}
	in++;
	a[in]=x;
	}
   else
	cout<<"\ncoada plina";
   }
//***********************
// elimina element din coada
//************************
fractie delel_c(){
	ie++;
	return a[ie-1];
	}
//******************
// afisare coada
//*****************
void afisc(){
	int i;
	cout<<"\n<-";
	for(i=ie;i<=in;i++)
		cout<<a[i].x<<"/"<<a[i].y<<" ";
	cout<<"<-";
	}
//---------------------main
void main(){
	ie=1;in=0;
do{
	cout<<"\n1. Afisare coada";
	cout<<"\n2. Adauga element la coada";
	cout<<"\n3. Elimina element din coada";
	cout<<"\n0. Iesire";
	cout<<"\n\nOptiune:";cin>>opt;
	if(opt==1)
		afisc();
	if(opt==2){
		cout<<"\nelment=";
		cin>>el.x>>el.y;
		add_c(el);
		}
	if(opt==3){
		if(cgoala()==1)
			cout<<"\nCoada este goala";
		else{
			el=delel_c();
			cout<<"\elem eliminat="<<el.x<<"/"<<el.y;
			}
		}
	}while(opt!=0);
}