Autor |
Mensaje |
Granada
Nivel 9
Edad: 31
Registrado: 16 Ago 2011
Mensajes: 1325
Carrera: Química
|
|
Hola gente, necesito una ayuda con un TP, se me hace mucho lio con los "if" y con los "case of"
El problema pide desarrollar un algoritmo que al ingresar notas de parciales y TP diga si un alumno recursa, aprueba o recupera un parcial.
"En caso de estar en condiciones de firmar la libreta, se deberá determinar e informar por
pantalla el promedio obtenido en la parte práctica y el promedio obtenido en la parte teórica.
De haber aprobado los parciales requeridos pero adeudar algún trabajo práctico, además de
mostrar por pantalla los promedios, se deberá emitir el mensaje: Adeuda TPs.
En caso de adeudar parciales teóricos se deberá mostrar por pantalla el promedio de la parte
práctica junto al mensaje: Adeuda parciales teóricos. Debe recuperarlos en fechas de
Evaluaciones Integradoras.
En el caso de haber agotado la instancia de recuperación (Parte Práctica), se deberá emitir por
pantalla el mensaje “Debe recursar la materia”.
Pense hacer un if concatenado con otro pero queda raro...
Espero consejos , saludos!
|
|
|
|
_________________
koreano escribió:
|
Una de las mentiras mas grandes: "si pasás el CBC, el resto es barranca abajo".
Después es "cuando aprobás AlgebraII/AnalisisII es barranca abajo".
Después es "después de FísicaII es cuestión de tiempo nomás".
No te dejes engañar, ES UNA PAJA ESTO Y CADA VEZ PEOR
|
|
|
|
|
|
Guido_Garrote
Moderador
Edad: 35
Registrado: 14 Oct 2007
Mensajes: 3319
Ubicación: AHÍ!
Carrera: Civil
|
|
Cómo almacenas la información?
|
|
|
|
_________________
|
|
|
|
|
Granada
Nivel 9
Edad: 31
Registrado: 16 Ago 2011
Mensajes: 1325
Carrera: Química
|
|
las variables? las notas las puse como word, el nombres y apellido como string y el promedio como real...
no se si era lo que preguntabas.
|
|
|
|
_________________
koreano escribió:
|
Una de las mentiras mas grandes: "si pasás el CBC, el resto es barranca abajo".
Después es "cuando aprobás AlgebraII/AnalisisII es barranca abajo".
Después es "después de FísicaII es cuestión de tiempo nomás".
No te dejes engañar, ES UNA PAJA ESTO Y CADA VEZ PEOR
|
|
|
|
|
|
Guido_Garrote
Moderador
Edad: 35
Registrado: 14 Oct 2007
Mensajes: 3319
Ubicación: AHÍ!
Carrera: Civil
|
|
Chico_Granada escribió:
|
las variables? las notas las puse como word, el nombres y apellido como string y el promedio como real...
no se si era lo que preguntabas.
|
Pero los guardas en un vector o cómo? qué tenés del programa?
|
|
|
|
_________________
|
|
|
|
|
Bistek
Nivel 8
Registrado: 07 May 2010
Mensajes: 691
Carrera: Informática
|
|
la manera de resolverlo es crearte un tipo enumerado que indique las condiciones posibles del alumno, por ejemplo una variable llamada condicion
type
condicion = (APROBADO, RECURSA, RECUPERA);
Luego de que calculás toda la sarasa, dependiendo tu resultado le asignas a tu variable "condicion" uno de los 3 posibles valores definidos.
Después no es mas que hacer un case
case (condicion) of:
'APROBADO': writeln ('blabla1');
'RECURSA': writeln ('balbal2');
'RECUPERA': ....;
O también, a lo negro, con If anidados sale, pero es muy poco elegante y el nivel de negricidad crece exponencialmente con el número de condiciones posibles que tengas.
|
|
|
|
|
|
|
|
|
Granada
Nivel 9
Edad: 31
Registrado: 16 Ago 2011
Mensajes: 1325
Carrera: Química
|
|
Guido_Garrote escribió:
|
Chico_Granada escribió:
|
las variables? las notas las puse como word, el nombres y apellido como string y el promedio como real...
no se si era lo que preguntabas.
|
Pero los guardas en un vector o cómo? qué tenés del programa?
|
tengo esto hasta ahora
Program CURSO;
uses crt;
const
p=100;
var
nombre, apellido : string[15];
parc_teo1, parc_teo2, parc_prac1, parc_prac2, recup : word;
: char;
prom_pract, prom_teo, : real;
begin
clrscr;
writeln('CURSO COMPUTACION 2011');
{INGRESO DE DATOS POR EL TECLADO}
writeln;
writeln;
write('Ingrese el nombre del alumno: ');
readln( nombre );
write('Ingrese el apellido: ');
readln( apellido );
writeln;
write<Ingrese>;
writeln;
write<'Primer parcial teórico: '>;
readln < parc_teo1);
write<'Segundo parcial teórico: '>;
readln <parc_teo2>;
writeln;
write<'Primer parcial práctico: '>;
readln <parc_prac1>;
writeln;
write ('Segundo parcial práctico: '>;
readln <parc_prac2>;
writeln;
write<'Recuperatorio parte práctica: '>;
readln <recup>;
writeln;
writeln;
{RESOLUCION}
if parc_teo1
|
|
|
|
_________________
koreano escribió:
|
Una de las mentiras mas grandes: "si pasás el CBC, el resto es barranca abajo".
Después es "cuando aprobás AlgebraII/AnalisisII es barranca abajo".
Después es "después de FísicaII es cuestión de tiempo nomás".
No te dejes engañar, ES UNA PAJA ESTO Y CADA VEZ PEOR
|
|
|
|
|
|
Granada
Nivel 9
Edad: 31
Registrado: 16 Ago 2011
Mensajes: 1325
Carrera: Química
|
|
Bistek escribió:
|
la manera de resolverlo es crearte un tipo enumerado que indique las condiciones posibles del alumno, por ejemplo una variable llamada condicion
type
condicion = (APROBADO, RECURSA, RECUPERA);
Luego de que calculás toda la sarasa, dependiendo tu resultado le asignas a tu variable "condicion" uno de los 3 posibles valores definidos.
Después no es mas que hacer un case
case (condicion) of:
'APROBADO': writeln ('blabla1');
'RECURSA': writeln ('balbal2');
'RECUPERA': ....;
O también, a lo negro, con If anidados sale, pero es muy poco elegante y el nivel de negricidad crece exponencialmente con el número de condiciones posibles que tengas.
|
Gracias señor informatico
igual soy un queso con esto, pero tengo una idea masomenos...
pero ese 'aprobado' lo tendria que asignar previamente a algo asi?
( suma de notas...)/4 := promedio;
y otra vez la laguna mental
|
|
|
|
_________________
koreano escribió:
|
Una de las mentiras mas grandes: "si pasás el CBC, el resto es barranca abajo".
Después es "cuando aprobás AlgebraII/AnalisisII es barranca abajo".
Después es "después de FísicaII es cuestión de tiempo nomás".
No te dejes engañar, ES UNA PAJA ESTO Y CADA VEZ PEOR
|
|
|
|
|
|
Bistek
Nivel 8
Registrado: 07 May 2010
Mensajes: 691
Carrera: Informática
|
|
El enunciado esta bastante choto porque no entiendo bien las condiciones en que queda el alumno, pero voy a suponer...
Vas a necesitar calcular dos promedios, uno para la parte teorica, y otro para la parte práctica. Eso lo haces con una función "calcularpromedio(nota1, nota2)" por ejemplo. El resultado se lo asignas por ejemplo a dos variables reales llamadas PT y PP (promedio teorica y promedio práctica, vos poné nombres claros).
Trato de interpretar el enunciado choto y calculo que pueden pasar 4 cosas:
Aprobado = si PT > 4 y PP > 4
RecuperaT = si PT <4> 4
RecuperaP = si PT > 4 y PP < 4
Recursa = si PT < 4 y PP <4
Sigo en el otro post porq no me deja escribir por algun motivo
|
|
|
|
|
|
|
|
|
Bistek
Nivel 8
Registrado: 07 May 2010
Mensajes: 691
Carrera: Informática
|
|
entonces podes anidar if tranquilamente, tenes 4 casos posibles
If (PT > 4) then
.....if (PP > 4) then
........hacerlo de aprobado
.....else
........hacer lo de recuperarP
else
......if (PT > 4) then
.........hacer lo de recuperarT
.......else
.........hacer lo de desaprobado
poniendo begin y end en cada if si le pones mas de una linea de codigo
(podés olvidar lo del enumerado, asi directo es mas simple)
|
|
|
|
|
|
|
|
|
Granada
Nivel 9
Edad: 31
Registrado: 16 Ago 2011
Mensajes: 1325
Carrera: Química
|
|
clap clap clap! gracias!!!
|
|
|
|
_________________
koreano escribió:
|
Una de las mentiras mas grandes: "si pasás el CBC, el resto es barranca abajo".
Después es "cuando aprobás AlgebraII/AnalisisII es barranca abajo".
Después es "después de FísicaII es cuestión de tiempo nomás".
No te dejes engañar, ES UNA PAJA ESTO Y CADA VEZ PEOR
|
|
|
|
|
|
|