Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - chikardo

#1
Hola buenas estuve todo el dia tratando de entender cual es mi error , y no lo encuentro , si me dijeran cual es el problema o me lo solucionaran ,seria un gran alivio para mi , desde ya muchas gracias.
Les dejo el codigo : (Es un codigo en c++ de rounb robin con quantium 5)

Código (cpp) [Seleccionar]

#include<iostream>
#include<conio.h>
using namespace std;

void piladebusqueda(int pnt ,int tm);
void piladebusqueda2(int pnt ,int tm);
void anadir(int pnt);

int llegada[50];
int espera[50];
int fin[50]={0};
int quantium;
int rqi[50]={0};
int btm[50]={0};
int c=0;
int st;
int flg=0;
int tm=0;
int noe=0;
int pnt=0;
int servicio;
int esper;
float prom_servicio;
float prom_espera;



void piladebusqueda1(int pnt,int tm){
for(int x=pnt+1;x<5;x++){
if(llegada[x]<=tm){
rqi[noe]=x+1;
noe++; }
}
}


void piladebusqueda2(int pnt,int tm){
for(int x=pnt+1;x<5;x++){
int fl=0;
for(int y=0;y<noe;y++){
if(rqi[y]==x+1){
fl++;}}
if(llegada[x]<=tm && fl==0 && btm[x]!=0){
rqi[noe]=x+1;
 noe++;}
}
 }
 
 
 int main(){
  cout<<"\n\tAlgoritmo Round Robin\n";
 
 
 
  for(int x=0;x<5;x++){
  cout<<"\nProceso"<<x+1;
  cout<<"\nTiempo de llegada=";
  cin>>llegada[x];
  cout<<"\nTiempo de servicio";
  cin>>espera[x];
     btm[x]=espera[x];}
     cout<<"\nIngresa el quantum por favor:";
     cin>>quantium;
     system("CLS");
     
     do{
      if(flg==0){
      st=llegada[0];
      if(btm[0]<=quantium){
      tm=st+btm[0];
      btm[0]=0;
      piladebusqueda1(pnt,tm);}
      else{
      btm[0]=btm[0]*quantium;
      tm=st+quantium;
      piladebusqueda1(pnt,tm);
      anadir(pnt);}
 }
 else{
  pnt=rqi[0]-1;
  st=tm;
 
 
  for(int x=0;x<noe && noe!=1;x++){
rqi[x]=rqi[x+1]; }
noe--;




if(btm[pnt]<=quantium){
tm=st+btm[pnt];
btm[pnt]=0;
piladebusqueda2(pnt,tm);}
else{
btm[pnt]=btm[pnt]-quantium;
tm=st+quantium;
piladebusqueda2(pnt,tm);
anadir(pnt);}
 }
 if(btm[pnt]==0){
  fin[pnt]=tm;
 }
 flg++;
 }while(noe!=0);
 cout<<"\n\nPROCESOS\tTIEMPO DE LLEGADA\tTIEMPO DE SERVICIO\tTIEMPO FINAL\tTIEMPOS DE RESPUESTAS\tTIEMPO DE ESPERA\n";
 for(int x=0;x<5;x++){
  servicio=fin[x]-llegada[x];
  esper=servicio-espera[x];
  cout<<"proceso"<<x+1<<"\t\t"<<llegada[x]<<"\t\t"<<espera[x]<<"\t\t"<<fin[x]<<"\t\t"<<servicio<<"\t\t\t"<<esper<<"\t\t";
  prom_espera=prom_espera+esper;
  prom_servicio=prom_servicio+servicio;
 }
     cout<<"\n Tiempo promedio de servicio:" <<prom_servicio/5<<"\n Tiempo promedio de espera:"<<prom_espera/5;
 }




MOD: Etiquetas de Código GeSHi insertadas
#2
Paso mi codigo si alguien me lo puede arreglar , por favor es un trabajo final , lo necesito urgente

Código (cpp) [Seleccionar]

#include<stdio.h>
#define MAX 100

int leeCantidadElem()
{
   int n;  
   do{
       printf("Cantidad de elementos a ingresar");
scanf("%d",&n);
           if(n<=0){
            printf("No seas payaso(a), ingresa una cantidad correcta: ");
}
               
           if(n>MAX){
            printf("La cantidad maxima permitida es ");
}
               
   }while(n<=0 || n>MAX);
   return n;
}

int elegirEvento(int cant,int A[])
{
int i,k,elem,opt;
Opciones:

   printf("1. Insertar elemento: ");
   printf("2. Eliminar elemento: ");
    printf("3. Agregar elemento: ");
    printf("4. Buscar elemento: ");
    printf("Elija una opcion 1 , 2 , 3 o 4: ");
scanf("%d",&opt);
   switch(opt)
   {
       case 1:
               {
                   printf("\t>>Que elemento desea insertar: ");
                   scanf("%d",&elem);
                   do{
                   printf("\t>>En que posicion desea insertar...");
                   scanf("%d",&k);
                       if(k>(cant-1)||k<0){
                        printf(">>Ingrese una posicion valida!!!");
}
                         
                   }while(k>(cant-1)||k<0);
                   cant++;
                   for(i=cant-1;i>=k;i--)
                   {
                       A[i+1]=A[i];
                       if(k==i)
                       A[k]=elem;      
                   }
               }break;

       case 2:
               {
                   do{
                   printf("\t>>Que posicion desea eliminar.. ");
                   scanf("%d",&k);
                   if(k>(cant-1)||k<0)
                           printf(">>Ingrese una posicion valida!!!");
                   }while(k>(cant-1)||k<0);
                   for(i=k;i<cant;i++)
                   {
                       A[i]=A[i+1];
                   }
                       cant--;
               }break;

       case 3:
               {
                   for(i=0;i<1;i++)
                   {
                       printf("\t>>Que elemento desea agregar : ");
                       scanf("%d",&elem);
                   Agregar:
                       cant++;
                       A[cant-1]=elem;        
                   }
               }break;
       
       case 4:
               {
                    printf("\t>>Que elemento desea buscar: ");
                    scanf("%d",&elem);
                   for(i=0;i<cant;i++)
                   {
                       if(A[i]==elem)
                       {
                           printf("\t>>El elemento buscado se encuentra en:");
                           //Añandir el elemento al final de arreglo
                           printf("\t>>El elemento se agregara al final");
                       goto Agregar;
                       }
                       else
                       {
                           if(i==cant-1)
                           {
                           printf("\t>>No se encuetra el elemento que busca!!!");
                           printf("\t>>Puede confirmarlo viendolo Ud. mismo!!!");
                           }
                       }  
                   }

               }break;
       default:printf("No existe esa opcion, vuelva a intentar: ");
   }

return cant;
}

void main()
{
   int c;
   char opt;
   int n[MAX];
   printf("\t\t\tAGREGAR 2 ELEMENTOS AL FINAL");
   c=leeCantidadElem();
   leeCadena(c,n);
   do{
   c=elegirEvento(c,n);
   muestraCadena(c,n);
   printf("Desea realizar otra operacion!!!... S/s, caso contrario pulse otra tecla: ");
   scanf("%f",&opt);
   }while(opt=='s'||opt=='S');
}



[MOD] para publicar codigo usar etiquetas GeSHi.