Sei sulla pagina 1di 9

1

Clase Práctica 5

Tema 2: Programación estructurada.

Temática: Solución de problemas que se resuelven con la utilización de ciclos


indeterminados.
Objetivo: Codificar e implementar, en el entorno de desarrollo C++ Builder, la solución a
problemas que se resuelven con la utilización de ciclos indeterminados y que con
anterioridad se le realizó la descripción algorítmica, motivando el estudio de la
programación.

Sistema de Contenido:

 La repetición controlada por centinela.

 Uso de acumuladores y contadores.

 Sentencia while y do/while.

 Operadores de asignación (+=, -=, *=, /=) Operadores incrementales (++, --)

Habilidades

1. Elaborar programas que contemplen algoritmos cíclicos.

2. Interpretar y ejecutar programas sencillos.

3. Codificar algoritmos cuya solución necesite la utilización de la estructura repetitiva.

4. Aplicar funciones suministradas por el lenguaje de programación.

5. Rastrear programas o fragmentos de programas.

6. Determinar el ámbito de las variables en un programa.

Medios: PC, pizarra

Valores a trabajar: Perseverancia, Responsabilidad, Honestidad.

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.

 Recordar los principales elementos tratados en la conferencia anterior, a través de una


conversación heurística.

1. ¿Cuántos tipos de estructura cíclica conoces?

2. ¿Cuáles son los criterios de clasificación que conoces para agrupar las estructuras
iterativas?

3. Según el control de la repetición, cómo se clasifican los ciclos.


4. ¿Qué entiendes por repetición controlada por centinela?
La repetición controlada por centinela se usa cuando no se conoce la cantidad de
veces que se repetirá el ciclo. En estos casos se pueden usar también las estructuras
mientras y hacer…mientras; con la diferencia de que en este tipo de ciclos la variable de
control no puede ser usada como contador de la cantidad de repeticiones.

5 ¿Qué entiendes por centinela?

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

A continuación te muestro el análisis del problema, un algoritmo de solución que resuelve


el problema anterior:

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

Mostrar "Entre la nota o 0 para terminar


Entrar Nota
Fin Indicación al usuario y entrada de la nota
Mostrar Cant_desap en cada repetición.
Fin

a) Codifica el algoritmo anterior en el lenguaje C++. Para ello debes

 Analizar el problema y el algoritmo de solución que se proponen.

 Identificar los elementos del lenguaje de programación necesarios para


implementar el algoritmo:

 ¿De qué tipo deben ser las variables que se deben declarar?
4

 ¿Con qué valores deben ser inicializadas estas variables?

 ¿Cuáles son las estructuras de programación del lenguaje C++ que intervienen
en la solución dada al problema?

 Transcribir del lenguaje algorítmico al lenguaje de programación.

#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

 Editar la codificación de la solución del problema.

 Aplicar los conocimientos y habilidades que posees sobre el trabajo con el


entorno de desarrollo C++ Builder.

d) Ejecuta y pon a punto el programa elaborado.


Tarea 2: Se desea elaborar un programa que permita calcular y mostrar varios valores de

la variable C a partir de la expresión .

A continuación te muestro el análisis del problema, un algoritmo de solución que resuelve


el problema anterior:

Análisis

 No se conoce la cantidad de valores a calcular


5

 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

 Analizar el problema y el algoritmo de solución que se proponen.

 Identificar los elementos del lenguaje de programación necesarios para


implementar el algoritmo:

 Transcribir del lenguaje algorítmico al lenguaje de programación.

#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

 Editar la codificación de la solución del problema.

 Aplicar los conocimientos y habilidades que posees sobre el trabajo con el entorno de
desarrollo C++ Builder.

c) Ejecuta y pon a punto el programa elaborado.

Estudio independiente

Tarea 3: Se desea elaborar un programa que, dadas las notas de un grupo de


estudiantes en una asignatura, devuelva como resultado la cantidad de estudiantes por
cada una de las calificaciones posibles (2, 3, 4 o 5).

A continuación te muestro el análisis del problema, un algoritmo de solución que resuelve


el problema anterior:

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

Mostrar “Entrar Nota o -1 para terminar”


Entrar Nota
Mientras
Inicio
Sea Nota
Caso :

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.

c) Ejecuta y pon a punto el programa elaborado.

d) Tracea el programa elaborado para un grupo cuyas notas son: 3, 2, 3, 5, 4, 5, 2, 3, 4,


5.
 Aplicar evaluación escrita

A continuación te muestro un fragmento de algoritmo escrito en seudocódigo.


Inicio
Hacer
Entrar x

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

 Explicar que en esta clase se han analizado y resuelto problemas en que se


necesitaba la utilización de una estructura repetitiva, específicamente con ciclos
indeterminados.
 Explicar que con esta clase se han abordado las tres estructuras básicas de la
programación, que han permitido resolver varios problemas con la utilización de datos
simples. Sin embargo existe otro tipo de datos que fue objeto de estudio en la
asignatura anterior y al cual se dedicará la próxima conferencia: los datos
estructurados.

Potrebbero piacerti anche