elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 23:30  


Tema destacado: Nueva página de elhacker.net en Google+ Google+

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Ayuda [urgente] por favor, a corregir la llamada del proceso de mi menu..
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda [urgente] por favor, a corregir la llamada del proceso de mi menu..  (Leído 279 veces)
sTaborracho

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Ayuda [urgente] por favor, a corregir la llamada del proceso de mi menu..
« en: 11 Diciembre 2011, 02:18 »

Hola... disculpen quisiera saber si alguien me podria ayudar hee estado haciendo este programa pero no logro hacer que el menu funcione correctamente..

Despues de Memoria asignar:
Deberia aparecer las figuras que representan la memoria...
y un menu que diga:
1. Ingresar proceso
2. Borrar proceso
3. Compactar (desfragmentar)
4. Ingresar por el primer ajuste
5. Ingresar por el mejor ajuste
6. Ingresar por el peor ajuste
7. Salir

Pero no logro llamar a Ingreso por primer, mejor y peor ajuste... este es el codigo original... realice varios intentos pero solo logre revolverme mas... Gracias al que pueda ayudarme..

#Gracias por compartir su conocimiento#

Código:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define maxmem_no 100

int mem[maxmem_no], maxmem = maxmem_no;

void initmem()
{
int i = 0;
for(; i<maxmem; i++)
mem[i] = 0;
}

void comp()
{
int mem_temp[maxmem_no], i = 0, k;
for(; i<maxmem; i++)
mem_temp[i] = mem[i];
initmem();
for(i=0, k=0; i<maxmem; i++)
if(mem_temp[i] != 0)
{
mem[k] = mem_temp[i];
k++;

}
}

void removejob()
{
int jn, i=0;
printf("\nIngresa el Proceso a Borrar: "); scanf("%d", &jn);
if(jn<0)
{
printf("Error!");
getch();
return;
}
for (; i<maxmem; i++)
if (mem[i]== jn)
mem[i] =0;
}

void printmem()
{
int i =0;
for (printf("\n"); i<maxmem; i++)
{
(mem[i]==0)?printf("%c ", 157):printf("%c ", 200); //176,219 o 176,219 o 178,221|175,218|173,216|
}
printf("\n\n");
for (i=0; i<maxmem; i++)
{
if(mem[i]!=0)
printf("%d ", mem[i]);
else
printf("  ");
}
printf("\n\n");
}

void memalloc(int jn, int jm, int mem_srt)
{
int i = mem_srt;
for(; i<=mem_srt+jm-1; i++)
mem[i] = jn;
}

int memfreeFF(int memreq)
{
int i=0, start = -1, end = -1;
calc:
start=-1, end=-1;
for(; i<maxmem; i++)
{
if(mem[i] == 0)
{
start = i;
break;
}
}
for(; i<maxmem; i++)
{
if(mem[i]==0)
{
end = i;
}
else
{
break;
}
}
if ((end - start +1) >= memreq)
{
return start;
}
else if(i<maxmem)
{
goto calc;
}
return -1;
}

int memfreeBF(int memreq)
{
int i=0, start = -1, end = -1;
int start_temp = -1, tot_free = -1;
calc:
start=-1, end=-1;
for(; i<maxmem; i++)
{
if(mem[i] == 0)
{
start = i;
break;
}
}
for(; i<maxmem; i++)
{
if(mem[i]==0)
{
end = i;
}
else
{
break;
}
}
if ((end - start +1) >= memreq)
{
if (start_temp != -1)
{
if(tot_free <= (end - start + 1))
{
start = -1; end = -1;
}
else
{
start_temp = start;
tot_free = end - start + 1;
start = -1; end = -1;
}
}
else{
start_temp = start;
tot_free = end - start + 1;
start = -1; end = -1;
}
}
if(i<maxmem)
{
goto calc;
}
return start_temp;
}


int memfreeWF(int memreq)
{
int i=0, start = -1, end = -1;
int start_temp = -1, tot_free = -1;
calc:
start=-1, end=-1;
for(; i<maxmem; i++)
{
if(mem[i] == 0)
{
start = i;
break;
}
}
for(; i<maxmem; i++)
{
if(mem[i]==0)
{
end = i;
}
else
{
break;
}
}
if ((end - start +1) >= memreq)
{
if (start_temp != -1)
{
if(tot_free >= (end - start + 1))
{
start = -1; end = -1;
}
else
{
start_temp = start;
tot_free = end - start + 1;
start = -1; end = -1;
}
}
else{
start_temp = start;
tot_free = end - start + 1;
start = -1; end = -1;
}
}
if(i<maxmem)
{
goto calc;
}
return start_temp;
}

int checkname(int num)
{
int i;
for(i=0;i<maxmem;i++)
if(mem[i] == num)
return 1;
return 0;
}

void fit(int cho)
{
int ch, jn, jm, temp;
char fnam [5][25] = {"Primer Ajuste", "Mejor Ajuste", "Peor Ajuste"};
system("cls");

do{
system("cls");
printmem(); fflush(stdin);
printf("%s :\n\n1. Ingresar Proceso\n2. Borrar Proceso\n3. Compactar\n4. Regresar\nOpcion: ", fnam[cho-1]);
scanf("%d", &ch);
switch(ch)
{
case 1:
printf("\nNumero de proceso: "); scanf("%d", &jn);
if((jn<0) || (checkname(jn) == 1))
{
printf("Error, Please ingrese un numero valido!");
getch();
break;
}
printf("Ingrese memoria  requerida: "); scanf("%d", &jm);

switch(cho)
{
case 1:
temp = memfreeFF(jm); break;
case 2:
temp = memfreeBF(jm); break;
case 3:
temp = memfreeWF(jm); break;
}
if(temp == -1)
{
printf("\nMemoria no suficiente :O!\n");
getch();
}
else
memalloc(jn, jm, temp);
break;
case 2:
removejob();
break;
case 3:
comp();
break;
case 4:
return;
default:
printf("Opcion Equivocada");
getch();
break;
}
}while(ch !=4);
getch();
}

int main()
{
int ch=0;
initmem();

printf("Memoria a asignar: ");
scanf("%d", &maxmem);

do{
initmem();
fflush(stdin); system("color 03"); system("cls");
printf("                        Bienvenido a Memoria Virtual\n");
printf("                            ********************\n");
printf("                            *-------Menu-------*");
printf("\n                            * 1. Primer Ajuste *");
printf("\n                            * 2. Mejor Ajuste  *");
printf("\n                            * 3. Peor Ajuste   *");
printf("\n                            * 4.Salir          *");
printf("\n                            ********************\n");
printf("\n                            Opcion: ");
scanf("%d", &ch);
if ( (ch > 4) || (ch <1) )
printf("Error de opcion!\n Elija de nuevo : ");
else if (ch != 4)
fit(ch);
else
{
printf("                     Gracias por usar Memoria");
break;
}
}while(ch != 4);
getch();
}


« Última modificación: 11 Diciembre 2011, 02:22 por sTaborracho » En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA URGENTE POR FAVOR !!!!!!
Análisis y Diseño de Malware
eklik 4 437 Último mensaje 12 Diciembre 2004, 21:49
por templar
Ayuda urgente!!!!!!!!!!!!por favor
Windows
Zango 6 527 Último mensaje 10 Febrero 2006, 19:20
por dpx06
AYUDA urgente por favor
Windows
yogurina83 7 892 Último mensaje 7 Abril 2006, 00:28
por silverhack
AYUDA URGENTE POR FAVOR
Windows
mfighter 4 485 Último mensaje 17 Abril 2006, 13:39
por silverhack
Como corregir ...Popup menu se muestra en el form
Programación Visual Basic
byway 8 1,562 Último mensaje 13 Diciembre 2008, 18:17
por byway
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines