Está en la página 1de 11

TALLERES Y TAREAS DEL SEGUNDO CORTE 1P18

Talleres No. 1:

Calcular las notas definitivas de los 27 estudiantes de un curso de Programación I.


Cada estudiante tiene dos (2) notas en el período. Para cada estudiante se debe
leer su código y sus dos (2) notas. Se pide:

a) Calcular e imprimir la nota definitiva de cada estudiante con su respectivo


código.
b) Calcular e imprimir la nota promedio de todo el grupo.
c) Imprimir los datos del estudiante que obtuvo la mayor nota definitiva
d) Imprimir los datos del estudiante que obtuvo la menor nota definitiva
e) Imprimir un listado con todos los estudiantes que obtuvieron una definitiva
superior o igual a la nota promedio de todo el grupo.
f) Imprimir un listado con todos los estudiantes ordenados en forma
descendente por la definitiva. Para cada estudiante imprimir su código y la
definitiva.

Tenga en cuenta los siguientes requerimientos:

 Controlar que las notas leídas estén entre el rango de 0,5 a 5,0.
 Los datos de los estudiantes se deben leer e imprimir dentro de la
función main().
 Se deben utilizar dos (2) funciones definidas por el usuario, así: una
función para calcular la nota definitiva de cada estudiante; y la otra
función para controlar que las notas leídas estén entre el rango de 0,5 a
5,0.

Nilson cabarcas t00049776


#include <iostream>
//programa completo profesor ya que el miercoles de ese dia no lo reviso
using namespace std;
//Definiendo las variables globales, y las dos funciones
int n=27;
int numNotas=2;
bool verificaNota(float);
float notaDefinitiva(float,float);

int main() {
//Definiendo los vectores y una matriz
string codigo[n];
float notas[n][numNotas];
float definitiva[n];
//variables para ordenar el vector de las notas y para sacar el
promedio
float temp,promedio=0.0;
string temp1;
//variables auxiliares para calcular la nota mayor y menor
int mayor,menor;
float auxMenor=6,auxMayor=0;

cout<<"Ingresando datos ddel estudiante..."<<endl;


//Ingresando el codigo y las dos notas validadas de cada estudiante
for(int i=0;i<n;i++){
cout<<"Codigo estudiante "<<i+1<<": ";
cin>>codigo[i];

for(int k=0;k<numNotas;k++){

do{
cout<<"Nota "<<k+1<<":";
cin>>notas[i][k];
if(!verificaNota(notas[i][k])){
cout<<"¡La nota debe estar entre 0.5 y 5!"<<endl;
}
}while(!verificaNota(notas[i][k]));

}
}
//En este 'for' saco la definitiva de todos los enstudiantes
for(int i=0;i<n;i++){
definitiva[i]=notaDefinitiva(notas[i][0],notas[i][1]);
}

bool s=true;
int opcion;
while(s){
cout<<"|----------------------------------------|"<<endl;
cout<<"|------------------MENU------------------|"<<endl;
cout<<"| 1. Notas definitivas |"<<endl;
cout<<"| 2. Notas definitivas (Mayor a Menor) |"<<endl;
cout<<"| 3. Nota promedio del CURSO |"<<endl;
cout<<"| 4. Nota mas alta |"<<endl;
cout<<"| 5. Nota mas baja |"<<endl;

Nilson cabarcas t00049776


cout<<"| 6. Estudiantes por encima del promedio |"<<endl;
cout<<"| 7. Salir |"<<endl;
cout<<"|----------------------------------------|"<<endl;
cout<<"|----------------------------------------|"<<endl;

cout<<">> ";
cin>>opcion;

switch (opcion){
case 1:
//Imprime el vector de definitivas y el de codigos
cout<<"Codigo: Nota"<<endl;
for(int i=0;i<n;i++){
cout<<codigo[i]<<": "<<definitiva[i]<<endl;
}
system("Pause");
break;
case 2:
//Este el ordenamiento "Burbuja", para ordenar las definitivas de
mayor a menor
for (int i=1; i<n; i++){
for (int j=0 ; j<n - 1; j++){
if (definitiva[j] < definitiva[j+1]){
temp = definitiva[j];
temp1=codigo[j];

definitiva[j] = definitiva[j+1];
codigo[j]=codigo[j+1];

definitiva[j+1] = temp;
codigo[j+1]=temp1;
}
}
}
cout<<"Codigo: Nota"<<endl;
for(int i=0;i<n;i++){
cout<<codigo[i]<<": "<<definitiva[i]<<endl;
}
system("Pause");
break;
case 3:
//promedio general del grupo de estudientes
for(int i=0;i<n;i++){
promedio=promedio+definitiva[i];
}
promedio=promedio/n;
cout<<"El promedio del curso es: "<<promedio<<endl;
system("Pause");
break;
case 4:
//Verifico cual es la mayor nota y guardo su indice
for(int i=0;i<n;i++){
if(definitiva[i]>auxMayor){
auxMayor=definitiva[i];
mayor=i;
}

Nilson cabarcas t00049776


}
cout<<"La nota mas alta es: "<<endl;
cout<<codigo[mayor]<<": "<<definitiva[mayor]<<endl;
system("Pause");
break;
case 5:
//Verifico cual es la menor nota y guardo su indice
for(int i=0;i<n;i++){
if(definitiva[i]<auxMenor){
auxMenor=definitiva[i];
menor=i;
}
}
cout<<"la nota mas baja es: "<<endl;
cout<<codigo[menor]<<": "<<definitiva[menor]<<endl;
system("Pause");
break;
case 6:
//para saber cuales son las notas por encima del promedio general,
necesito sacar el promedio primero
promedio=0;
for(int i=0;i<n;i++){
promedio=promedio+definitiva[i];
}
promedio=promedio/n;
cout<<"Estudiantes por encima del promedio"<<endl;
//Cuando ya tengo el promedio solo verifico que la definitiva sea
mayor que esta para que pueda mostrarla al usuario
for(int i=0;i<n;i++){
if(definitiva[i]>=promedio){
cout<<codigo[i]<<": "<<definitiva[i]<<endl;
}
}

system("Pause");
break;
case 7:
cout<<"¡Adios!"<<endl;
s=false;
break;
default:
cout<<"ERROR: esta opcion es incorrecta"<<endl;
system("Pause");
break;
}

bool verificaNota(float nota){


bool aux;
//validando si la nota es aceptada o no
if(nota<0.5 || nota>5){
aux=false;
}else{

Nilson cabarcas t00049776


aux=true;
}
return aux;
}

float notaDefinitiva(float n1,float n2){


//promedio de las dos notas de cada estudiente
float aux;
aux=(n1+n2)/2;
return aux;
}

//nota: profe el programa está completo imprime las notas de los 27 estudiantes y
todo lo que pide.

Solo con vectores =>


#include <iostream>

using namespace std;


//Definiendo las variables globales, y las dos funciones
int n=3;
int numNotas=2;
bool verificaNota(float);
float notaDefinitiva(float,float);

int main() {
//Definiendo los vectores
string codigo[n];
float notas1[numNotas];
float notas2[numNotas];
float definitiva[n];
//variables para ordenar el vector de las notas y para sacar el
promedio
float temp,promedio=0.0;
string temp1;
//variables auxiliares para calcular la nota mayor y menor
int mayor,menor;
float auxMenor=6,auxMayor=0;

cout<<"Ingresando datos ddel estudiante..."<<endl;


//Ingresando el codigo y las dos notas validadas de cada estudiante
for(int i=0;i<n;i++){
cout<<"Codigo estudiante "<<i+1<<": ";
cin>>codigo[i];

do{
cout<<"Nota "<<1<<":";
cin>>notas1[i];
if(!verificaNota(notas1[i])){
cout<<"¡La nota debe estar entre 0.5 y 5!"<<endl;
}
}while(!verificaNota(notas1[i]));

Nilson cabarcas t00049776


do{
cout<<"Nota "<<2<<":";
cin>>notas2[i];
if(!verificaNota(notas2[i])){
cout<<"¡La nota debe estar entre 0.5 y 5!"<<endl;
}
}while(!verificaNota(notas2[i]));
}
//En este 'for' saco la definitiva de todos los enstudiantes
for(int i=0;i<n;i++){
definitiva[i]=notaDefinitiva(notas1[i],notas2[i]);
}

bool s=true;
int opcion;
while(s){
cout<<"|----------------------------------------|"<<endl;
cout<<"|------------------MENU------------------|"<<endl;
cout<<"| 1. Notas definitivas |"<<endl;
cout<<"| 2. Notas definitivas (Mayor a Menor) |"<<endl;
cout<<"| 3. Nota promedio del CURSO |"<<endl;
cout<<"| 4. Nota mas alta |"<<endl;
cout<<"| 5. Nota mas baja |"<<endl;
cout<<"| 6. Estudiantes por encima del promedio |"<<endl;
cout<<"| 7. Salir |"<<endl;
cout<<"|----------------------------------------|"<<endl;
cout<<"|----------------------------------------|"<<endl;

cout<<">> ";
cin>>opcion;

switch (opcion){
case 1:
//Imprime el vector de definitivas y el de codigos
cout<<"Codigo: Nota"<<endl;
for(int i=0;i<n;i++){
cout<<codigo[i]<<": "<<definitiva[i]<<endl;
}
system("Pause");
break;
case 2:
//Este el ordenamiento "Burbuja", para ordenar las definitivas de
mayor a menor
for (int i=1; i<n; i++){
for (int j=0 ; j<n - 1; j++){
if (definitiva[j] < definitiva[j+1]){
temp = definitiva[j];
temp1=codigo[j];

definitiva[j] = definitiva[j+1];
codigo[j]=codigo[j+1];

definitiva[j+1] = temp;
codigo[j+1]=temp1;

Nilson cabarcas t00049776


}
}
}
cout<<"Codigo: Nota"<<endl;
for(int i=0;i<n;i++){
cout<<codigo[i]<<": "<<definitiva[i]<<endl;
}
system("Pause");
break;
case 3:
//promedio general del grupo de estudientes
for(int i=0;i<n;i++){
promedio=promedio+definitiva[i];
}
promedio=promedio/n;
cout<<"El promedio del curso es: "<<promedio<<endl;
system("Pause");
break;
case 4:
//Verifico cual es la mayor nota y guardo su indice
for(int i=0;i<n;i++){
if(definitiva[i]>auxMayor){
auxMayor=definitiva[i];
mayor=i;
}
}
cout<<"La nota mas alta es: "<<endl;
cout<<codigo[mayor]<<": "<<definitiva[mayor]<<endl;
system("Pause");
break;
case 5:
//Verifico cual es la menor nota y guardo su indice
for(int i=0;i<n;i++){
if(definitiva[i]<auxMenor){
auxMenor=definitiva[i];
menor=i;
}
}
cout<<"la nota mas baja es: "<<endl;
cout<<codigo[menor]<<": "<<definitiva[menor]<<endl;
system("Pause");
break;
case 6:
//para saber cuales son las notas por encima del promedio general,
necesito sacar el promedio primero
promedio=0;
for(int i=0;i<n;i++){
promedio=promedio+definitiva[i];
}
promedio=promedio/n;
cout<<"Estudiantes por encima del promedio"<<endl;
//Cuando ya tengo el promedio solo verifico que la definitiva sea
mayor que esta para que pueda mostrarla al usuario
for(int i=0;i<n;i++){
if(definitiva[i]>=promedio){
cout<<codigo[i]<<": "<<definitiva[i]<<endl;
}

Nilson cabarcas t00049776


}

system("Pause");
break;
case 7:
cout<<"¡Adios!"<<endl;
s=false;
break;
default:
cout<<"ERROR: esta opcion es incorrecta"<<endl;
system("Pause");
break;
}

bool verificaNota(float nota){


bool aux;
//validando si la nota es aceptada o no
if(nota<0.5 || nota>5){
aux=false;
}else{
aux=true;
}
return aux;
}

float notaDefinitiva(float n1,float n2){


//promedio de las dos notas de cada estudiente
float aux;
aux=(n1+n2)/2;
return aux;
}

Solo con matrices

#include <iostream>

using namespace std;


//Definiendo las variables globales, y las dos funciones
int n=3;
int numNotas=2;
bool verificaNota(float);
float notaDefinitiva(float,float);

int main() {
//Definiendo los vectores y una matriz
float codigoYFinal[n][2];
float notas[n][numNotas];
//variables para ordenar el vector de las notas y para sacar el
promedio

Nilson cabarcas t00049776


float temp,temp1,promedio=0.0;
//variables auxiliares para calcular la nota mayor y menor
int mayor,menor;
float auxMenor=6,auxMayor=0;

cout<<"Ingresando datos ddel estudiante..."<<endl;


//Ingresando el codigo y las dos notas validadas de cada estudiante
for(int i=0;i<n;i++){
cout<<"Codigo estudiante "<<i+1<<": ";
cin>>codigoYFinal[i][0];

for(int k=0;k<numNotas;k++){

do{
cout<<"Nota "<<k+1<<":";
cin>>notas[i][k];
if(!verificaNota(notas[i][k])){
cout<<"¡La nota debe estar entre 0.5 y 5!"<<endl;
}
}while(!verificaNota(notas[i][k]));

}
}
//En este 'for' saco la definitiva de todos los enstudiantes
for(int i=0;i<n;i++){
codigoYFinal[i][1]=notaDefinitiva(notas[i][0],notas[i][1]);
}

bool s=true;
int opcion;
while(s){
cout<<"|----------------------------------------|"<<endl;
cout<<"|------------------MENU------------------|"<<endl;
cout<<"| 1. Notas definitivas |"<<endl;
cout<<"| 2. Notas definitivas (Mayor a Menor) |"<<endl;
cout<<"| 3. Nota promedio del CURSO |"<<endl;
cout<<"| 4. Nota mas alta |"<<endl;
cout<<"| 5. Nota mas baja |"<<endl;
cout<<"| 6. Estudiantes por encima del promedio |"<<endl;
cout<<"| 7. Salir |"<<endl;
cout<<"|----------------------------------------|"<<endl;
cout<<"|----------------------------------------|"<<endl;

cout<<">> ";
cin>>opcion;

switch (opcion){
case 1:
//Imprime el vector de definitivas y el de codigos
cout<<"Codigo: Nota"<<endl;
for(int i=0;i<n;i++){
cout<<codigoYFinal[i][0]<<": "<<codigoYFinal[i][1]<<endl;
}
system("Pause");
break;

Nilson cabarcas t00049776


case 2:
//Este el ordenamiento "Burbuja", para ordenar las definitivas de
mayor a menor
for (int i=1; i<n; i++){
for (int j=0 ; j<n - 1; j++){
if (codigoYFinal[j][1] < codigoYFinal[j+1][1]){
temp = codigoYFinal[j][1];
temp1=codigoYFinal[j][0];

codigoYFinal[j][1] = codigoYFinal[j+1][1];
codigoYFinal[j][0]=codigoYFinal[j+1][0];

codigoYFinal[j+1][1] = temp;
codigoYFinal[j+1][0]=temp1;
}
}
}
cout<<"Codigo: Nota"<<endl;
for(int i=0;i<n;i++){
cout<<codigoYFinal[i][0]<<": "<<codigoYFinal[i][1]<<endl;
}
system("Pause");
break;
case 3:
//promedio general del grupo de estudientes
for(int i=0;i<n;i++){
promedio=promedio+codigoYFinal[i][1];
}
promedio=promedio/n;
cout<<"El promedio del curso es: "<<promedio<<endl;
system("Pause");
break;
case 4:
//Verifico cual es la mayor nota y guardo su indice
for(int i=0;i<n;i++){
if(codigoYFinal[i][1]>auxMayor){
auxMayor=codigoYFinal[i][1];
mayor=i;
}
}
cout<<"La nota mas alta es: "<<endl;
cout<<codigoYFinal[mayor][0]<<": "<<codigoYFinal[mayor][1]<<endl;
system("Pause");
break;
case 5:
//Verifico cual es la menor nota y guardo su indice
for(int i=0;i<n;i++){
if(codigoYFinal[i][1]<auxMenor){
auxMenor=codigoYFinal[i][1];
menor=i;
}
}
cout<<"la nota mas baja es: "<<endl;
cout<<codigoYFinal[menor][0]<<": "<<codigoYFinal[menor]
[1]<<endl;
system("Pause");

Nilson cabarcas t00049776


break;
case 6:
//para saber cuales son las notas por encima del promedio general,
necesito sacar el promedio primero
promedio=0;
for(int i=0;i<n;i++){
promedio=promedio+codigoYFinal[i][1];
}
promedio=promedio/n;
cout<<"Estudiantes por encima del promedio"<<endl;
//Cuando ya tengo el promedio solo verifico que la definitiva sea
mayor que esta para que pueda mostrarla al usuario
for(int i=0;i<n;i++){
if(codigoYFinal[i][1]>=promedio){
cout<<codigoYFinal[i][0]<<": "<<codigoYFinal[i][1]<<endl;
}
}

system("Pause");
break;
case 7:
cout<<"¡Adios!"<<endl;
s=false;
break;
default:
cout<<"ERROR: esta opcion es incorrecta"<<endl;
system("Pause");
break;
}

bool verificaNota(float nota){


bool aux;
//validando si la nota es aceptada o no
if(nota<0.5 || nota>5){
aux=false;
}else{
aux=true;
}
return aux;
}

float notaDefinitiva(float n1,float n2){


//promedio de las dos notas de cada estudiente
float aux;
aux=(n1+n2)/2;
return aux;
}

Nilson cabarcas t00049776

También podría gustarte