Cita de: flony en 15 Mayo 2013, 04:22 AM
son nueve videos pero explica como hacerlo http://www.youtube.com/playlist?list=PLB114027943049361
el sensei paueky al rescate el es un titan para c++
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úCita de: flony en 15 Mayo 2013, 04:22 AM
son nueve videos pero explica como hacerlo http://www.youtube.com/playlist?list=PLB114027943049361
Citar
apt-get install -f
Citar
apt-get update
apt-get dist-upgrade
/* Se solicita codificar un programa en lenguaje C que solucione el siguiente problema:
Se inicia con un arreglo que contiene las matriculas de los alumnos inscritos en una
clase de programacion,esta lista se encuentra ordenada ascendentemente.
El programa permite al usuario agregar una nueva matricula o remover una existente
conservando el orden del arreglo. Se debera indicar cuando se haya alcanzado el maximo
numero de alumnos que se permiten en la materia y el usuario seleccione la opcion de agregar
una matricula;
tambien cuando la lista este vacia y el usuario desee dar de baja.
Utilice el siguiente esqueleto como base.*/
#include <stdio.h>
#include <stdlib.h>
#define CUPO_MAX 25
//como la lista de matriculas es una variable global, no es necesaria indexarla a las funciones
long lista[CUPO_MAX] = {137982, 145783, 156312, 166357, 175013};
void despliega();
short alta(int n);
short baja(int n);
void ordenar();
void corrimiento(int n);
int main(void)
{
short num_alumnos=5;
short op;
do{
printf("\n1) Desplegar lista de matriculas");
printf("\n2) Agregar a lista de matriculas");
printf("\n3) Borrar de la lista de matriculas");
printf("\n4) Salir");
printf("\n Seleccione una opcion: ");
scanf("%hd",&op);
switch(op)
{
//Despliega solo imprime en pantalla el numero de alumnos, lo que son esos codigos, supongo
//Por lo tanto no necesita pasar datos a la funcion, solo imprimarla en su totalidad
case 1: despliega();
break;
case 2: if(alta(num_alumnos) == 1); // si todo salio bien incrementa en uno el contador de alumnos
num_alumnos++;
break;
case 3: if (baja(num_alumnos) == 1 ) // si todo salio bien decrementa en uno el contador de alumnos
num_alumnos--;
break;
case 4: printf("\nGracias por usar el programa");
break;
}
}while (op != 4);
return 0;
}
void despliega()
{
int i;
printf("matriculas de la lista:\n\n");
for(i=0; i < CUPO_MAX ; i++)
{
if (lista[i] != '\0')
printf("%d, ",lista[i]);
}
printf("\n\n");
}
void ordenar()
{
//Ordenando ascendentemente los numeros del arreglo
int i, j, temp;
for (i=1; i<CUPO_MAX; i++)
{
for (j=0 ; j< CUPO_MAX - 1; j++)
{
if (lista[j] > lista[j+1])
{
temp = lista[j];
lista[j] = lista[j+1];
lista[j+1] = temp;
}
}
}
}
//agregando matriculas
short alta(int num)
{
long mat_nueva;
if(num <= 25)
{
printf("Digite el numero de matricula para agregar: ");
scanf( "%d", &mat_nueva);
//como el arreglo empieza en la posicion cero, no se necesita adicionar casilla ahi
//la suma se realiza en el case, para avanzar a la siguiente casilla del arreglo
lista[num] = mat_nueva;
printf("matricula agregada\n");
ordenar();
return 1;
}
else
{
printf("Se ha excedido el numero permitido de matriculas por clase.\n\n");
return 2;
}
}
short baja(int num)
{
long mat_retirada;
printf("Digite el numero de matricula para retirar: ");
scanf( "%d", &mat_retirada);
//printf("%d", mat_retirada);
//Se realiza una busqueda de la variable y se compara con los valores en las posiciones del arreglo
int i;
for(i=0; i<CUPO_MAX; i++)
{
if(mat_retirada == lista[i])
{
lista[i] == 0;
corrimiento(i);
printf("matricula retirada\n");
ordenar();
return 1;
}
}
printf("La matricula NO esta en la lista.\n\n");
return 2;
}
void corrimiento(int n)
{
//corriendo los numeros de las posiciones descendentemente
for( ;n <CUPO_MAX; n++)
{
lista[n] = lista[n+1];
}
}
Cita de: MatiasHA en 30 Marzo 2012, 05:54 AM
Muy interesante los videos, algun libro para recomendar para acompañar estos videos?