Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Clase Práctica 5
Sistema de Contenido:
Operadores de asignación (+=, -=, *=, /=) Operadores incrementales (++, --)
Habilidades
Estrategia curricular:
Dominio de la lengua materna (expresión oral y ortografía: colección, almacenar,
vector, índice, secuencial)
Formación de una cultura laboral, económica y tecnológica.
Orientación profesional pedagógica.
Educación ético – pedagógica
2
Introducción:
Preguntar sobre las principales dificultades que existieron para la preparación de la
clase práctica.
2. ¿Cuáles son los criterios de clasificación que conoces para agrupar las estructuras
iterativas?
Un centinela (señal o bandera) es un valor que indica el fin del ciclo, por tanto tiene que
pertenecer al conjunto de valores admisibles para la variable de control, pero debe ser
seleccionado de forma tal que no constituya uno de los valores de entrada aceptables. Se
recomienda fundamentalmente para detener ciclos de entrada.
Explicar que en la clase se desarrollarán diferentes tipos de ejercicios que tiene como
propósito general la fijación y aplicación de los elementos esenciales del lenguaje de
programación C++, así como del entorno de desarrollo C++ Builder, para la resolución
de problemas que se resuelven con una estructura repetitiva, especialmente con ciclos
indeterminados y para la cual se deben seguir los pasos del PHG. Señalando que la
solución de algunos de estos problemas fueron descritas algorítmicamente en la
asignatura Fundamentos de Programación.
Desarrollo:
Proponer la realización de las siguientes tareas:
Tarea 1: Se desea elaborar un programa que dadas las notas en una asignatura de un
grupo de estudiantes de la UCP Félix Varela, calcule y muestre la cantidad de
desaprobados.
3
Análisis:
No se conoce la cantidad de estudiantes
Hay que contar los desaprobados
Ciclo indeterminado
¿Qué hay que repetir?
- La entrada de las notas
- La verificación de si está aprobado o no
- Contar en caso de estar desaprobado
La entrada de las notas se debe controlar utilizando como centinela a la propia
variable de entrada en espera de un valor que indique el fin del ciclo.
Utilizar como centinela un valor que no constituya una de las posibles notas: 0
Variables:
De entrada: Nota
De salida: Cant_desap
Inicio
Cant_desap←0
Mostrar "Entre la nota o 0 para terminar” Condición a verificar para
Entrar Nota mantener la entrada de notas.
Mientras
Incremento del contador que registra
Inicio la cantidad de estudiantes
Si entonces desaprobados
¿De qué tipo deben ser las variables que se deben declarar?
4
¿Cuáles son las estructuras de programación del lenguaje C++ que intervienen
en la solución dada al problema?
#include <vcl.h>
#include <iostream.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
int nota,cantidad_desap=0;
cout<<"Entre la nota o 0 para terminar";
cin>> nota;
while (nota!=0)
{ if (nota==2)
cantidad_desap++;
cout<<"Entre la nota o 0 para terminar";
cin>> nota;}
cout<<"En el grupo existen "<<cantidad_desap<< " desaprobados.";
cin>>"";
return 0;
}
b) Rastrear el fragmento de código elaborado para un grupo de matrícula 7.
c) Implementa la codificación en el entorno de desarrollo C++ Builder. En este caso
debes
Análisis
Ciclo indeterminado
¿Qué hay que repetir?
- La entrada del valor de a
- El cálculo del valor de C
- La impresión del valor de C
Hay que utilizar un centinela para que finalice el ciclo.
Como el valor de entrada puede ser cualquier número no puede utilizarse la
variable de entrada para controlar el ciclo.
En estos casos se utiliza como centinela o bandera otra variable que esperará un
único valor que será el que indique el fin del ciclo.
Variables:
De entrada: a
De salida: C
De trabajo: Respuesta: centinela
Algoritmo en seudocódigo
Inicio
Hacer
Entrar a
Mostrar C
Mostrar “¿Desea terminar?”
Entrar Respuesta
Mientras
Fin
a) Codifica el algoritmo anterior en el lenguaje C++. Para ello debes
#include <vcl.h>
#include <iostream.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
6
{
float a,c;
char respuesta;
do
{ cout<<"Entre el valor de a:";
cin>>a;
c=2*a+5;
cout<<"C= "<<c<<"\n";
cout<<"Desea terminar s/n: ";
cin>>respuesta;
}
while (respuesta!='s');
cin>>"";
return 0;
}
b) Implementa la codificación en el entorno de desarrollo C++ Builder. En este caso
debes
Aplicar los conocimientos y habilidades que posees sobre el trabajo con el entorno de
desarrollo C++ Builder.
Estudio independiente
Análisis:
No se conoce a cantidad de estudiantes. Ciclo indeterminado
Utilizar como centinela la variable de entrada con valor -1.
Hay que contar la cantidad de estudiantes por cada calificación.
Hay que utilizar 4 contadores, uno para cada calificación.
Variables:
De entrada: Nota
De salida: Cant_2, Cant_3, Cant_4, Cant_5: todos son contadores
¿Qué hay que repetir?
7
- Entrada de la nota
- Incremento del contador correspondiente
Se propone el uso de una estructura condicional múltiple: se verifica la Nota y los
casos son las 4 posibles calificaciones.
Algoritmo en seudocódigo
Inicio
Caso :
Caso :
Caso :
Mostrar "Entre la nota o -1 para terminar
Entrar Nota
Fin
Mostrar Cant_2, Cant_3, Cant_4, Cant_5
Fin
a) Codifica el algoritmo anterior en el lenguaje C++.
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
int cant2=0,cant3=0,cant4=0,cant5=0;
int nota;
cout<<"Entre la nota o -1 para terminar";
cin>>nota;
while (nota!=-1)
{
switch (nota)
{
case 2: cant2++; break;
8
case 3: cant3++;break;
case 4: cant4++;break;
case 5: cant5++;break;
default :cout<<"error";
};
cout<<"Entre la nota o -1 para terminar";
cin>>nota;}
cout<<" Cantidad de 2: "<< cant2<<"\n";
cout<<" Cantidad de 3: "<< cant3<<"\n";
cout<<" Cantidad de 4: "<< cant4<<"\n";
cout<<" Cantidad de 5: "<< cant5<<"\n";
cin>>"";
return 0;
}
b) Implementa la codificación en el entorno de desarrollo C++ Builder.
Mostrar Z
Mostrar “¿Desea terminar?”
Entrar Respuesta
Mientras
Fin
a) Diga qué problema resuelve este algoritmo.
b) Codifica el algoritmo anterior.
Conclusiones:
Enfatizar en los elementos abordados en la clase en que se presentaron mayores
dificultades.
Dar la evaluación y explicarla.
9