• No se han encontrado resultados

Asignatura: Computación II Semestre: 2015-I Profesora: Lorena Estévez GUÍA DE EJERCICIOS RESUELTOS UNIDAD 02: PROGRAMACIÓN PROCEDIMENTAL

N/A
N/A
Protected

Academic year: 2021

Share "Asignatura: Computación II Semestre: 2015-I Profesora: Lorena Estévez GUÍA DE EJERCICIOS RESUELTOS UNIDAD 02: PROGRAMACIÓN PROCEDIMENTAL"

Copied!
17
0
0

Texto completo

(1)

1 UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA

“ANTONIO JOSÉ DE SUCRE” VICERECTORADO PUERTO ORDAZ

DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA SECCIÓN DE COMPUTACIÓN

Asignatura: Computación II Semestre: 2015-I Profesora: Lorena Estévez GUÍA DE EJERCICIOS RESUELTOS

UNIDAD 02: PROGRAMACIÓN PROCEDIMENTAL Parte 1. Subrutinas con Parámetros tipo Simple.

1

1.. Diseñe una subrutina que permita efectuar conversiones de temperatura en las escalas de Kelvin, Grados Centígrados y Fahrehneit. La subrutina debe recibir la opción de conversión deseada (Opción 1: ºC a ºF, Opción 2: ºF a ºC, Opción 3: ºC a K,…) y el valor a convertir.

Las relaciones para la conversión son las siguientes:

( ) ( ) ( )

Bloques de proceso de las subrutinas a desarrollar:

Validar Valor Lim_inf Lim_sup Conversión Temp1 Opcion Temp2

//Algoritmo Conversión de Temperatura #include<iostream.h>

#include<conio.h> // Subrutina Validar

void Validar (int &Valor, int Lim_inf, int Lim_sup) {

while (Valor<Lim_inf || Valor>Lim_sup)

{ cout<<"Valor fuera de rango, reintroduzca"; cin>>Valor;

} }

// Subrutina Conversión

float Conversion (float Temp1, int Opcion) {

float Temp2; switch (Opcion)

{ case 1:

Temp2 = (9/5)*Temp1 + 32; // Grados Centígrados a Fahrehneit break;

case 2:

(2)

2 break;

case 3:

Temp2 = Temp1 + 273; // Grados Centígrados a Kelvin break;

case 4:

Temp2 = Temp1 - 273; // Kelvin a Grados Centígrados break;

case 5:

Temp2 = ((5/9)*(Temp1 - 32)) + 273; // Grados Fahrehneit a Kelvin break;

case 6:

Temp2 = (9/5)*(Temp1 - 273) + 32; // Kelvin a Grados Fahrehneit break; } return (Temp2); } //PROGRAMA PRINCIPAL void main ()

{ float Temperatura1, Temperatura2; int Opc;

char resp= 'S';

while (resp== 's' || resp== 'S') { clrscr();

cout<<"Ingrese el valor de la Temperatura en la unidad deseada: "; cin>>Temperatura1;

cout<<"\nIngrese el tipo de conversion que desea Realizar\n"; cout<<"1) Grados Centígrados a Fahrehneit \n2) Grados"; cout<<"Fahrehneit a Centígrados\n";

cout<<"3) Grados Centígrados a Kelvin \n4) Kelvin a Grados Centígrados"; cout<<"\n5) Grados Fahrehneit a Kelvin \n6) Kelvin a Grados Fahrehneit"; cout<<"\nOpcion: ";

cin>>Opc;

Validar (Opc, 1, 6);

Temperatura2 = Conversion (Temperatura1, Opc); cout<<"El equivalente es "<<Temperatura2<<endl; getch();

cout<< "Desea realizar otra conversión? S: Si, N: Fin del programa"; cin>>resp;

} }

Parte 2. Subrutinas con Parámetros Tipo Arreglo. 2

2.. Diseñe un algoritmo que permita ingresar los valores de dos arreglos unidimensionales y llene un tercer arreglo con la suma, resta, multiplicación o división de los dos primeros según una opción que seleccione el usuario.

A[X] 1 3 5 6 8 2 4

(3)

3

Operación S R M D

+ - * /

C[X] 5 5 13 12 10 4 8

El algoritmo debe implementarse a través de tres subrutinas:

1) Ingresar: permite ingresar los valores de un arreglo unidimensional de N celdas.

2) Calcular: debe recibir el conjunto de arreglos y su dimensión, así como el parámetro que definirá la operación (S, R, M, D) que se realizará entre los dos primeros arreglos para llenar el tercero. 3) Muestra: imprime en pantalla los valores de un arreglo unidimensional de N celdas.

Bloques de proceso de las subrutinas a desarrollar: Ingresar Arr[ ] n Muestra Arr[ ] n Calcular Arr1[ ] n Arr2[ ] Arr3[ ] Operacion

//Algoritmo Operaciones con Arreglos #include<iostream.h>

#include<conio.h> #define N 15

// Subrutina Ingresar

void Ingresar (int Arr[ ], int n) { int i;

for (i=0; i<n; i++)

{ cout<<“Ingrese el valor del elemento ”<<i<<“: ”; cin>>Arr[i];

} }

// Subrutina Muestra

void Muestra (int Arr[ ], int n) { int i;

for (i=0; i<n; i++)

cout<<“Elemento”<< i<<< “ = ”<< Arr[i]<<endl; }

// Subrutina Calcular

void Calcular (int Arr1[ ], int Arr2[ ], int Arr3[ ], int n, char Operacion) { int i;

for (i=0; i<n; i++)

{ switch (Operación) { Case „S‟: case „s‟:

Arr3[i] = Arr1[i] + Arr2[i]; break;

Case „R‟: case „r‟:

Arr3[i] = Arr1[i] - Arr2[i]; break;

(4)

4 Arr3[i] = Arr1[i] * Arr2[i];

break;

case „D‟: case „d‟: if (Arr2[i] != 0)

Arr3[i] = Arr1[i] + Arr2[i]; else Arr3[i] = 0; break; } } } //--- Programa Principal ---// void main( ) { int A[N], B[N], C[N]; char Opcion, resp=„s‟; while(resp== „s‟)

{

cout<<“Ingreso de los valores del primer arreglo:”; Ingresar (A, N);

cout<<“Ingreso de los valores del segundo arreglo:”; Ingresar (B, N);

cout<<“Seleccione que operación desea hacer con los arreglos: \n”; cout<<“S) Suma\n R) Resta\n M) Multiplicación\n D) División\n”; cin>>Opcion;

Calcular(A, B, C, N, Opcion); cout<<“El arreglo resultante es:\n ”; Muestra (C, N);

cout<<“Desea volver a ejecutar el programa? s/n”; cin>>resp;

} } 3

3.. Diseñe un algoritmo que permita ingresar los valores de un arreglo unidimensional y posteriormente mediante el uso de una función se calcule el promedio de los valores del mismo.

A[X] 1 3 5 6 8 2 4

El algoritmo debe implementarse a través de dos subrutinas:

1) Ingresar: permite ingresar los valores de un arreglo unidimensional de N celdas.

2) Promedio: debe recibir el arreglo y calcular el promedio de los elementos que este contenga. Bloques de proceso de las subrutinas:

Ingresar Arr[ ] n Promedio Arr[ ] n Prom

(5)

5 /**************Algoritmo Promedio*****************/ #include <conio.h> #include <iostream.h> #define N 20 // Subrutina Cargar

void Ingresar (float Arr[ ], int n) {

int i;

for(i=0; i<n; i++)

{ cout<<"Ingrese el valor del elemento "<< i<<endl; cin>>Arr[i];

} }

// Función Promedio

float Promedio (float Arr[ ], int n) {

int i;

float Sum = 0; for(i=0; i<n; i++)

Sum += Arr[i]; return (Sum/n); } //--- Programa Principal ---// void main() {

float A[N], Prom;

cout<< “Ingrese los valores del arreglo:\n”; Ingresar (A, N);

cout<<"El Promedio es "<< Promedio (A,N)<<endl; getch();

} 4

4.. Diseñe un algoritmo que permita ingresar los valores de un arreglo unidimensional y llene un segundo arreglo con una copia de los elementos del primero pero de forma invertida.

Arr1[N] 1 3 5 6 8 2 4

Arr2[N] 4 2 8 6 5 3 1

El algoritmo debe implementarse a través de tres subrutinas:

1) Ingresar: permite ingresar los valores de un arreglo unidimensional de N celdas.

2) Invertir: toma los elementos de un primer arreglo y los carga en orden invertido en un segundo arreglo.

3) Muestra: imprime en pantalla los valores del arreglo resultante de N celdas. //******* Algoritmo Invertir **********//

#include <conio.h> #include <iostream.h> #define N 10

(6)

6 void Ingresar (int Arr[ ], int n)

{ int i;

for (i=0; i<n; i++)

{ cout<<"Ingrese el valor del elemento "<<i<<": "; cin>>Arr[i];

} }

// Subrutina Muestra

void Muestra (int Arr[ ], int n) { int i;

for (i=0; i<n; i++)

cout<<"Elemento"<< i<< " = "<< Arr[i]<<endl; }

// Subrutina Invertir

void Invertir (int Arr1[ ], int Arr2[ ], int n) {

int i;

for (i=0; i<n; i++)

Arr2[i] = Arr1[n-1-i]; } //--- Programa Principal ---// void main() { int A[N], B[N];

cout<<“Ingreso de los valores del arreglo:”; Ingresar (A, N);

Invertir (A, B, N);

cout<<"El arreglo original es"<<endl; Muestra (A, N);

cout<<"El arreglo invertido es"<<endl; Muestra (B, N);

getch(); }

Parte 03. Subrutinas con Parámetros tipo Registro. 5

5.. Diseñe un programa que permita guardar los datos de una encuesta que se realizará a 300 personas sobre su índice de masa corporal. A los encuestados se les pedirá su nombre, cédula, estatura y peso, para luego calcular su IMC y clasificarlo. El programa debe estructurarse utilizando programación procedimental, debe contar con las siguientes subrutinas:

1) Ingresar de los datos de la Encuesta: Permite ingresar los datos obtenidos de un encuestado, luego preguntar si se desea ingresar los datos de otra persona o si desea regresar al menú principal. 2) Mostrar Datos Ingresados: Imprime en pantalla la estructura con toda la información completa. 3) Calcular el Promedio de los IMC: Devolverá el cálculo del promedio de los IMC‟s de los encuestados.

4) Buscar los datos de un encuestado según su cédula: solicita el ingreso de la cédula del encuestado, en caso de encontrarlo retorna el número de fila que le corresponde en la estructura. 5) Salir del Programa.

(7)

7 Para calcular el índice de masa corporal se utiliza la fórmula:

IMC = Peso / Estatura2

Nota: Adicionalmente debe desarrollar las subrutinas para el

despliegue del menú y la validación de la opción.

Clasificación IMC Infrapeso < 18,50 18,50 ≤ Normal < 25 Sobrepeso ≥ 25,00 Obeso ≥ 30,00 Datos_IMC

Nombre [25] Cedula Estatura Peso IMC Eval

Encuesta [300]

Nombre [25] Cedula Estatura Peso IMC Eval

L 0

1 … 299

/*********Algoritmo Encuesta IMC**************/ #include<conio.h>

#include<iostream.h> #include<math.h>

//Declaración de Variables Globales #define N 300

//Definición de la Estructura (Formato) del Registro struct Datos_IMC

{ int Cedula;

float Peso, Estatura, IMC; char Nombre[25], Eval[15]; };

// Procedimiento Validar

void Validar (int &valor, int lim_inf, int lim_sup) {

while (valor<lim_inf || valor>lim_sup)

{ cout<<"Ha seleccionado una opción incorrecta, reintrodúzcala: "; cin>>valor; } } // Función Menu int Menu () { int opc; clrscr();

cout<<"Menu de Opciones\n1) Ingresar datos de Encuestado\n";

cout<<"2) Visualizar datos de la Encuesta\n3) Ver Promedio de IMC's"; cout<<"\n4) Buscar los datos de un encuestado\n5) Salir del Sistema"; cout<<"Seleccione una opcion: ";

cin>>opc;

(8)

8 clrscr();

return (opc); }

// Procedimiento Ingreso Fila por Fila void Ing_FxF (Datos_IMC Reg[ ], int &L) {

char Resp='s';

while (Resp=='s' && L<N-1) { L = L + 1;

cout<<"Ingrese los datos del Encuestado:\n"; cout<<"Nombre: ";

fflush(stdin); cin.getline(Reg[L].Nombre, 30, '.'); cout<<"Cedula: "; cin>>Reg[L].Cedula;

cout<<"Estatura: "; cin>>Reg[L].Estatura; cout<<"Masa Corporal: "; cin>>Reg[L].Peso;

Reg[L].IMC = Reg[L].Peso / pow(Reg[L].Estatura,2); if (Reg[L].IMC < 18.5)

strcpy(Reg[L].Eval, "Infrapeso");

else if (Reg[L].IMC >= 18,5 && Reg[L].IMC < 25) strcpy(Reg[L].Eval, "Normal");

else if (Reg[L].IMC >= 25 && Reg[L].IMC < 30) strcpy(Reg[L].Eval, "Sobrepeso");

else if (Reg[L].IMC >= 30)

strcpy(Reg[L].Eval, "Obeso");

cout<<"Desea ingresar los datos de otro encuestado??"; cout<<"\ns: si o n: regresar al menu principal";

cin>>Resp; }

}

// Subrutina Mostrar

void Mostrar (Datos_IMC Reg[ ], int n) {

int i; if (n>=0)

{ cout<<"Encuesta Índice de Masa Corporal\n";

cout<<"Nombre Cedula Estatura Peso IMC Eval\n"; for (i=0; i<=n; i++)

{ cout<<Reg[i].Nombre<<"\t"<<Reg[i].Cedula<<"\t"; cout<<Reg[i].Estatura<<"\t"<<Reg[i].Peso<<"\t"; cout<<Reg[i].IMC<<"\t"<<Reg [i].Eval<<endl; } } else

cout<<"No ha ingresado datos…"; }

(9)

9 float Promedio (Datos_IMC Reg[ ], int n)

{ int i;

float Prom = 0; if (n>=0)

{ for(i=0; i<=n; i++)

Prom = Prom + Reg[i].IMC; return (Prom/(n+1));

}

cout<<"No ha ingresado datos…\n"; return(0);

}

// Subrutina de Búsqueda

int Busqueda (Datos_IMC Reg[ ], int n) {

int i, CedB;

cout<<“Ingrese la cédula que desea buscar:\n”; cin>>CedB;

for(i=0; i<=n; i++)

if (Reg[i].Cedula == Ced_B) return(i); return (-1); } // Programa Principal void main() {

Datos_IMC Encuesta[N]; //Declaración del Arreglo de Registro int opc=1, pos, L=-1; //Declaración de las otras Variables

while (opc>=1 && opc<5)// Ciclo para repetir el Programa { opc=Menu(); // Llamada a la función menú

switch(opc)

{ case 1: Ing_FxF (Encuesta, L); break; case 2: Mostrar (Encuesta, L); break; case 3:

cout<<"El promedio del IMC de los encuestados es"; cout<<Promedio (Encuesta,L)<<endl;

break; case 4:

pos = Busqueda (Encuesta, L, Cedula_B); if (pos >= 0) { cout<<"Nombre\tCédula\tEstatura\tPeso\tIMC\tEval\n"; cout<<Encuesta[pos].Nombre<<"\t"<<Encuesta[pos].Cedula; cout<<"\t"<< Encuesta[pos].Estatura<<"\t"; cout<<Encuesta[pos].Peso<<"\t"<<Encuesta[pos].IMC<<"\t"; cout<<Encuesta[pos].Eval<<endl; } else cout<<"Cedula Inexistente";

(10)

10 } getch();

} } 6

6.. Su mejor amig@ se va a casar, por lo que le pide el favor de desarrollar un programa que permita automatizar el manejo de los invitados en las distintas mesas, los datos se encuentran almacenados en una estructura como la que se muestra a continuación:

Invitados [200]

Nombre Cedula Mesa Estado

0 Ivan Montero 21000000 1 A A: Ausente

1 Fernanda Gonzalez 10000000 2 P P: Presente

… Juan Lopez 14000000 5 P

199 Luisa Castro 18000000 10 A

El programa contará con un menú de opciones como el siguiente: 1) Cambiar Estado de Invitado a Presente.

2) Mostrar Lista de Invitados Presentes.

3) Ver número de Mesa del Invitado buscándolo por su Número de Cédula. 4) Salir del Programa.

Usted debe desarrollar el código a través de programación procedimental implementando las siguientes subrutinas:

a) Menú: Despliega el menú de opciones con la opción seleccionada por el usuario previamente validada.

b) Ya_llego: esta subrutina permitirá cambiar el estado del invitado a presente (P) buscándolo por su número de cédula.

c) Lista_Presentes: Mostrará el listado de invitados que se han hecho presentes en el evento. d) Buscar: Buscará un invitado por su cédula de identidad y retornará el número de mesa que éste

posea asignado, en caso de que la cédula no se consiga debe retornar un cero. #include<conio.h>

#include<iostream.h> #define N 200

struct Datos_boda

{ char Nombre[25], Estado; int Cedula, Mesa;

};

//Procedimiento de Validación

void validar(int &valor, int Lim_i, int Lim_s) { while(valor<Lim_i || valor>Lim_s)

{ cout<<"Valor incorrecto, reintroduzca"; cin>>valor; } } //Función Menú int menu () { int opc; clrscr();

(11)

11 cout<<"2)Cambiar estado\n3)Mostrar Listado Presentes";

cout<<"\n4)Ver número de mesa\n5)Salir\n"; cin>>opc;

validar(opc,1,5); return(opc); }

//Función Ya_llego

int ya_llego(Datos_boda Reg[], int n) { int CedB, i;

cout<<"Ingrese la cedula del invitado: "; cin>>CedB; for(i=0;i<=n;i++) { if(Reg[i].Cedula==CedB) { Reg[i].Estado='P'; return (1); } } return (0); }

// Función Buscar Mesa del Invitado

int Buscar_m(Datos_boda Reg[], int n, int CedB) { int i; for(i=0;i<=n;i++) { if(Reg[i].Cedula==CedB) { return (Reg[i].Mesa); } } return (0); }

//Procedimiento para imprimir en Pantalla la Lista de Invitados void Lista_P(Datos_boda Reg[], int n)

{ int i;

cout<<" Lista de invitados presentes\n"; cout<<" Nombre Mesa\n";

for(i=0;i<=n;i++) { if(Reg[i].Estado=='P') { cout<<Reg[i].Nombre<<"\t"; cout<<Reg[i].Mesa<<"\n"; } } getch(); }

void Ingresar(Datos_boda Reg[], int &L) { char res='s';

while (res=='s' && L<N) { L++;

cout<<"Ingrese el nombre: "; fflush(stdin);

cin.getline(Reg[L].Nombre, 25,'.'); cout<<"Ingrese la cedula: ";

(12)

12 cin>>Reg[L].Cedula;

cout<<"Ingrese el numero de mesa: "; cin>>Reg[L].Mesa;

Reg[L].Estado='A';

cout<<"Desea registrar otro invitado? s/n"; cin>>res;

} }

void main()

{ Datos_boda Invitados[N];

int opc=1, CedulaB, mesa, L=-1; while(opc>=1 && opc<5)

{ opc=menu(); //LLamada switch(opc)

{

case 1: Ingresar(Invitados,L); break; case 2:

if(ya_llego(Invitados,L)==1) cout<<"Cambio exitoso..."; else

cout<<"Cedula no encontrada, se esta coleando"; break;

case 3: Lista_P(Invitados, L); break; case 4:

cout<<"Indique la cedula del invitado: "; cin>>CedulaB;

mesa=Buscar_m(Invitados,L,CedulaB); if(mesa>0)

cout<<"La mesa asignada es la numero "<<mesa<<endl; else

cout<<"Coleado..."; break;

case 5:

cout<<"Fin del programa..."; break; } getch(); } } 7

7.. La profesora requiere de un programa para manejar de forma automatizada las notas de las secciones T2 y T3 de Computación II. Usted implementará el programa utilizando el método de programación procedimental, se pide desarrollar las siguientes subrutinas que conformarán las opciones disponibles en el menú:

1) Ingresar Estudiante: solicita el ingreso de los datos del estudiante (nombre, cedula y notas de los parciales) y calcula la nota definitiva. Al finalizar, pregunta al usuario si desea registrar otro o volver al menú principal.

2) Mostrar Listado de Estudiantes: imprime en pantalla de forma tabulada los datos registrados en la estructura.

(13)

13 3) Buscar estudiante: efectuará la búsqueda de la cédula del estudiante en la estructura, si se

encuentra devuelve el número de fila, en caso contrario devuelve -1.

4) Calcular el promedio de la sección: realiza el cálculo del promedio de las notas definitivas de la estructura.

5) Modificar nota de un estudiante: a partir del número de fila obtenido de la función de búsqueda, solicita el número de evaluación a modificar, sustituye el valor recalculando la definitiva del estudiante.

#include<iostream.h> #include<conio.h> #define N 45 #define M 7

// Definicion de la estructura como global struct Datos_Est

{ char Nombre[30]; int Cedula;

float Notas[M], Def; };

// Vector de comparación de los máximos valores para cada evaluación float Valor_Parcial[M]={20,6,10,25,7,25,7};

//Codigo de las subrutinas

void Validar(float &Valor, float Lim_inf, float Lim_sup) { while(Valor<Lim_inf || Valor>Lim_sup)

{ cout<<"Valor fuera de rango, reintroduzca: "; cin>>Valor; } } int Menu () { int opc; clrscr();

cout<<"1)Ingresar estudiantes\n2)Mostrar Lista\n";

cout<<"3)Buscar Estudiantes\n4)Ver Promedio de las secciones\n"; cout<<"5)Modificar nota de un estudiante\n6)Salir\n";

cin>>opc;

Validar(opc, 1, 6); return(opc); }

// Subrutina ingreso fila por fila

void IngresoFxF (Datos_Est Reg[ ], int &L, int m) { char resp='s';

int j;

while (resp=='s' && L<N) { L++;

cout<<"Ingrese los datos del estudiante:\n";

cout<<"Nombre: "; fflush(stdin); cin.getline(Reg[L].Nombre, 30, '.'); cout<<"Cedula: "; cin>>Reg[L].Cedula;

Reg[L].Def=0; for(j=0;j<m;j++)

(14)

14 cin>>Reg[L].Notas[j];

Validar(Reg[L].Notas[j],0, Valor_Parcial[j]); Reg[L].Def+=Reg[L].Notas[j];

}

cout<<"Desea ingresar otro estudiante?s/n"; cin>>resp; }

}

void Mostrar (Datos_Est Reg[ ], int n, int m, char seccion[ ]) { int i, j;

cout<<"********NOTAS SECCION "<<seccion<<"************\n"; cout<<"N Nombre Cedula N1 N2 N3 Definitiva\n";

for(i=0;i<=n;i++) { cout<<i+1<<" "<<Reg[i].Nombre<<"\t"<<Reg[i].Cedula<<"\t"; for(j=0;j<m;j++) { cout<<Reg[i].Notas[j]<<"\t"; } cout<<Reg[i].Def<<endl; } getch(); }

int Busqueda( Datos_Est Reg[ ], int n, int CedB) { int i; for(i=0;i<=n;i++) { if (CedB==Reg[i].Cedula) return (i); } return(-1); }

float Promedio (Datos_Est Reg[ ], int n) { float Prom=0; int i; if(n>=0) { for(i=0;i<=n;i++) Prom+=Reg[i].Def; Prom=Prom/(n+1); } return(Prom); }

void Modificar (Datos_Est Reg[ ], int i, char Secc[ ]) { int parcial,j;

cout<<"Estudiante de la Sección "<<Secc<<endl; cout<<"Nombre Cedula N1 N2 N3 Definitiva\n"; cout<<Reg[i].Nombre<<"\t"<< Reg[i].Cedula<<"\t"; for(j=0;j<M;j++)

{ cout<< Reg[i].Notas[j]<<"\t"; } cout<<Reg[i].Def<<endl;

cout<<"Indique el numero de parcial a modificar: "; cin>>parcial;

(15)

15 Reg[i].Def-= Reg[i].Notas[parcial-1];

cout<<"Ingrese el nuevo valor del parcial: "; cin>> Reg[i].Notas[parcial-1];

Reg[i].Def+= Reg[i].Notas[parcial-1]; clrscr();

cout<<"Estudiante de la Sección "<<Secc<<endl; cout<<"Nombre Cedula N1 N2 N3 Definitiva\n"; cout<<Reg[i].Nombre<<"\t"<< Reg[i].Cedula<<"\t"; for(j=0;j<M;j++) { cout<< Reg[i].Notas[j]<<"\t"; } cout<<Reg[i].Def<<endl; } //******Programa Principal****** void main() { Datos_Est T2[N], T3[N]; char Secc[3];

int opc=1, L2=-1, L3=-1, CedB, Fila, j; while(opc>=1 && opc<6)

{

opc=Menu(); switch(opc) {

case 1: clrscr();

cout<<"Indique la seccion a llenar: "; cin>>Secc; if( strcmpi(Secc,"T2")==0 ) IngresoFxF(T2, L2,M); else if (strcmpi(Secc,"T3")==0) IngresoFxF(T3,L3,M); else

cout<<"Esta seccion no la tiene asignada..."; break;

case 2: clrscr();

cout<<"Indique la seccion que quiere visualizar, si quiere ver ambas coloque TT "; cin>>Secc;

if(strcmpi(Secc,"T2")==0) { if (L2>=0)

Mostrar(T2, L2, M, Secc); else

cout<<"No ha ingresado datos en la seccion T2\n"; }

else if (strcmpi(Secc,"T3")==0) { if (L3>=0)

Mostrar(T3, L3, M, Secc); else

cout<<"No ha ingresado datos en la seccion T3\n"; }

else if (strcmpi(Secc,"TT")==0)

(16)

16 if (L3>=0) Mostrar(T3,L3, M, "T3");

if (L2<0 && L3>=0)

cout<<"No ha ingresado datos en la seccion T2\n"; if (L2>=0 && L3<0)

cout<<"No ha ingresado datos en la seccion T3\n"; if(L2<0 && L3<0)

cout<<"No ha ingresado datos en ninguna de las secciones\n"; }

else

cout<<"Esta seccion no la tiene asignada..."; break;

case 3: clrscr();

cout<<"Ingrese la cédula del estudiante a buscar: "; cin>>CedB;

Fila=Busqueda(T2, L2, CedB); if(Fila>=0)

{ cout<<"Estudiante de la Sección T2\n";

cout<<"Nombre Cedula N1 N2 N3 Definitiva\n"; cout<<T2[Fila].Nombre<<"\t"<<T2[Fila].Cedula<<"\t"; for(j=0;j<M;j++) { cout<<T2[Fila].Notas[j]<<"\t"; } cout<<T2[Fila].Def<<endl; } else { Fila=Busqueda(T3, L3, CedB); if(Fila>=0) { cout<<"Estudiante de la Sección T3\n";

cout<<"Nombre Cedula N1 N2 N3 Definitiva\n"; cout<<T3[Fila].Nombre<<"\t"<<T3[Fila].Cedula<<"\t"; for(j=0;j<M;j++) { cout<<T3[Fila].Notas[j]<<"\t"; } cout<<T3[Fila].Def<<endl; } else

cout<<"No se encontro la cedula del estudiante"; }

break;

case 4: clrscr();

cout<<"Indique la seccion donde quiere calcular el promedio, si quiere calcular el de ambas coloque TT ";

cin>>Secc;

if(strcmpi(Secc,"T2")==0) { if (L2>=0)

cout<<"El promedio de la seccion es "<<Promedio(T2,L2)<<endl; else

(17)

17 cout<<"No ha ingresado datos en la seccion T2\n";

}

else if (strcmpi(Secc,"T3")==0) { if (L3>=0)

cout<<"El promedio de la seccion es "<<Promedio(T3,L3)<<endl; else

cout<<"No ha ingresado datos en la seccion T3\n"; }

else if (strcmpi(Secc,"TT")==0)

{ if (L2>=0) cout<<"El promedio de la seccion T2 es "<<Promedio(T2,L2)<<endl; if (L3>=0) cout<<"El promedio de la seccion T3 es "<<Promedio(T3,L3)<<endl; if (L2<0 && L3>=0)

cout<<"No ha ingresado datos en la seccion T2\n"; if (L2>=0 && L3<0)

cout<<"No ha ingresado datos en la seccion T3\n"; if(L2<0 && L3<0)

cout<<"No ha ingresado datos en ninguna de las secciones\n"; }

else

cout<<"Esta seccion no la tiene asignada..."; break;

case 5: clrscr();

cout<<"Ingrese la cédula del estudiante a buscar: "; cin>>CedB; Fila=Busqueda(T2, L2, CedB); if(Fila>=0) { Modificar( T2, Fila, "T2"); } else { Fila=Busqueda(T3, L3, CedB); if(Fila>=0) { Modificar(T3, Fila, "T3"); } else

cout<<"No se encontro la cedula del estudiante"; }

break;

case 6: cout<<"Fin del programa..."; break; } getch();

} }

Referencias

Documento similar

• Lenguajes de programación de alto nivel: Este tipo de lenguajes de programación son independientes de la máquina, lo podemos usar en cualquier computador con muy pocas

El laboratorio de Introducción a la Programación y Computación II cubrirá conceptos y herramientas para el desarrollo de programas de software utilizando conceptos de POO y

Recordatorio Jueves 24/02/22 Viernes 25/02/22 Recuerda estudiar para el interrogatorio del Plan Lector II que se realizará el día de mañana 25/02/22.. Dibuja en tu cuaderno de

Tal afirma la profesora Biglino, siguiendo la línea expuesta por M. Aragón en su libro Constitución y democracia. La aceptación de esta tesis depende, no obstante, de

EDUCACIÓN FILOSOFÍA Y CIENCIAS HISTÓRICO SOCIALES DISEÑO Y GESTIÓN DE PROYECTOS OBLIGATORIO PRESENCIAL..

Como se aprecia en la parte inferior del cuadro se alude a los tipos de documentos que se identifican en las instituciones, Organizaciones comunitarias y vinculadas nombradas en la

Para cursar el primer cuatrimestre será suficiente el tomo I del texto base de teoría y la unidad didáctica de problemas resueltos de Física de Dispositivos. Para

ESTRUCTURA DE SELECCIÓN MÚLTIPLE La estructura de control de selección múltiple nos permite manipular el flujo del algoritmo para que siga por uno de varios