Академический Документы
Профессиональный Документы
Культура Документы
e.codigo=110;
e.activo=1;
e.sexo='M';
e.sueldo_hora=25000.0;
e.horas_trab=30;
e.asignacionAS=100000;
e.deduccionDE=50000;
sueldo_total=(e.sueldo_hora*e.horas_trab)+e.asignacionASe.deduccionDE;
printf("Sueldo total del empleado %d es %f\n",e.codigo,
sueldo_total);
}
/* llama a la funcion para leer los datos de cada alumno, desde 1 hasta n */
Leer_alumnos( n );
3. Siguiendo con el mismo ejercicio 2, permita que la direccion contenga otros campos
de datos mas elaborados, tales como :
- Calle (entero)
- Localidad (cadena de caracteres)
- CodigoPostal (cadena de caracteres)
- Ciudad (cadena de caracteres)
Definas esta nueva estructura, y realice los cambios necesarios en el programa anterior
para permitir introducir estos datos en el campo direccin de cada alumno.
SOLUCION:
Se trata de construir una nuevo registro y cambiar el anterior usando el concepto de
registros anidados, se debe cambiar el proceso de lectura para leer datos para estos
campos.
4. Usando el concepto de funcin recursiva, reescriba el programa del ejercico No 6
de la Practica4-sem5, 6.
La serie de Fibonacci se define de la siguiente manera an
= an-1 + an-2. Con a0=0 y a1=1. Elabore un programa que determine el trmino ax de
la serie.
SOLUCIN:
#include <stdio.h>
/* se declara prototipo de la funcion recursiva */
double Fibonacci( int number );
main()
{
int x; // Entrada
TotalEnfermedades 100
TotalSintomas 50
LongNombre 20
LongEnfermedad 30
LongSintomas 20
NumeroPacientes 200
typedef struct {
char nombre[LongNombre];
char sexo;
char enfermedad[LongEnfermedad];
int cantidadSintomas;
char sintomas[TotalSintomas][LongSintomas];
} PACIENTE;
typedef struct {
char enfermedad[LongEnfermedad];
int cantidadSintomas;
char sintomas[TotalSintomas][LongSintomas];
} ENFERMEDAD;
PACIENTE pacientes[NumeroPacientes];
ENFERMEDAD SintomasEnfermedad[TotalEnfermedades];
pacientes[0].cantidadSintomas=4;
strcpy(pacientes[0].enfermedad,"");
strcpy(pacientes[0].sintomas[0],"tranquilidad");
strcpy(pacientes[0].sintomas[1],"sosiego");
strcpy(pacientes[0].sintomas[2],"felicidad");
strcpy(pacientes[0].sintomas[3],"fortaleza");
strcpy(pacientes[1].nombre,"otro");
pacientes[1].sexo='M';
pacientes[1].cantidadSintomas=3;
strcpy(pacientes[1].enfermedad,"");
strcpy(pacientes[1].sintomas[0],"cansancio");
strcpy(pacientes[1].sintomas[1],"ansiedad");
strcpy(pacientes[1].sintomas[2],"mareo");
/* Hacer el diagnostico ... */
pacientesActuales=2;
enfermedadesActuales=3;
sint=0;
for (i=0;i<pacientesActuales;i++)
for (j=0;j<enfermedadesActuales;j++) {
for (k=0;k<pacientes[i].cantidadSintomas;k++)
for (l=0;l<SintomasEnfermedad[j].cantidadSintomas;l++)
if (!
strcmp(pacientes[i].sintomas[k],SintomasEnfermedad[j].sintomas[l]))
sint++;
if (sint==SintomasEnfermedad[j].cantidadSintomas)
strcpy(pacientes[i].enfermedad,SintomasEnfermedad[j].enfermedad);
}
/* Contar los pacientes con determinada enfermedad */
for (i=0;i<enfermedadesActuales;i++) {
contadorEnfermedad[i]=0;
for (j=0;j<pacientesActuales;j++)
if (!
strcmp(SintomasEnfermedad[i].enfermedad,pacientes[j].enfermedad))
contadorEnfermedad[i]++;
}
/* Buscar cual es la enfermedad mas frecuente */
int maxEnfermedad=0;
int enf=2;
for (i=0;i<enfermedadesActuales;i++)
if (contadorEnfermedad[i]>maxEnfermedad) {
maxEnfermedad=contadorEnfermedad[i];
enf=i;
}
printf("La enfermedad mas frecuente es
%s\n",SintomasEnfermedad[enf].enfermedad);
/* Cuenta los enfermos por enfermedad */
for (i=0;i<enfermedadesActuales;i++)
printf("%s = %d
veces\n",SintomasEnfermedad[i].enfermedad,contadorEnfermedad[i]);
}