Anda di halaman 1dari 24

Asignatura de Programación II: Borland C++ 4.

5 Página # 1

Programación II
Índice
Tema 1: Teoría de Algoritmos
1.1. Teoría de los Algoritmos
1.2. Lenguaje C++
1.3. Resolución de Ejemplos

1.1 - Teoría de los Algoritmos


¿Qué es un Algoritmo?
 Es un conjunto de Instrucciones o Reglas que permiten obtener un resultado determinado
a partir de ciertas reglas definidas y así resolver un problema específico. Es una
secuencia finita de instrucciones cada una de las cuales tienen un significado preciso y
puede ejecutarse con una cantidad finita de esfuerzo en un tiempo finito.

Ejemplo:
Problema: Determinar la Suma de dos números enteros.
Algoritmo (Solución del Problema):
Leer los dos números
Evaluar si los dos números leídos son enteros
Sumar los dos números
Presentar resultado de la operación

Características de un Algoritmo
 Debe consistir en una secuencia de instrucciones claras y finitas.
 Sus instrucciones deben ser legibles.
 Debe plantearse correctamente y ha de resolver el problema en todas sus facetas.
 Debe ser eficiente.

¿Qué es un Programa?
 Es el conjunto de Instrucciones o Líneas de Códigos definidos a través de un lenguaje
de programación para llevar a cabo una determinada tarea y así resolver un problema
específico. Es decir es el proceso de planificar y formalizar una secuencia de
instrucciones dadas en Algoritmos, a través de la codificación por medio de un lenguaje
de programación, que han de seguir en una computadora para dar solución a un problema
planteado.

Proceso de la Programación
Para realizar un Programa por computadoras, hay que proponer primeramente una solución para
un problema específico, es decir, pensar en una estrategia para solucionarlo. Posteriormente, se
pasa al análisis en donde se averigua qué tipo de problema es y como le vamos a dar solución, así
como de seleccionar el lenguaje de programación a utilizar. Finalmente, se procede a elaborar el
programa en la computadora.

Todo este proceso involucra los pasos siguientes:

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 2

 Definición del Problema


 Análisis del Problema
 Planificación del Problema
 Algoritmo Formulado
 Codificación del Algoritmo
 Ejecución y Verificación de Errores
 Documentación del Programa

Estructura de un Algoritmo
La estructura general de un Algoritmo está basada particularmente del modelo de programación
estructurada, la cual consta de los puntos siguientes:
 Diseño del problema de lo general a lo particular (Metodología TOP – DOWN)
 Teorema de la Estructura (Secuencial, Alternativa y Repetitiva)

Además, se puede representar dicha estructura en:


 Forma Gráfica: Flujogramas y Diagramas NS.
 Forma Textual: Pseudocódigo.

La estructura básica de un Algoritmo (en Pseudocódigo) sería:

Algoritmo Nombre_Algoritmo;
Declaración de Variables:
Nombre_Variable: Tipo_Datos
INICIO
Instrucciones
FIN

Los elementos que podemos identificar en esta estructura son:


 Identificación del Algoritmo
Consiste en una cabecera en la que se da un nombre característico al algoritmo. La instrucción de
está corresponde:
Algoritmo Nombre_Algoritmo;

 Declaración de Variables
Consiste en definir los nombres de las variables a usar en el algoritmo y el tipo de datos a que
pertenece. Los tipos de datos básicos son: Enteros, Real, Carácter y Lógico. La instrucción de
está corresponde:
Declaración de Variables:
Nombre_Variable1, Nombre_Variable2: Tipo_Datos

 Cuerpo del Algoritmo


Constituye la secuencia de acciones que resuelve el problema planteado. Estarán comprendidos
entre las palabras INICIO…FIN que indicarán el inicio de las acciones a realizar y el final de
ellos.

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 3

Operaciones Primitivas definidas en un Algoritmo


1. Operación de Asignación (Entradas de Datos)
Mediante esta operación se podrán dar valores a las variables. La notaremos mediante una
flecha, que partirá del valor a asignar y apuntará a la variable a la que se le asignará tal valor.

El formato sería:
Nombre_Variable  Valor Asignado

Ejemplo:
Salario  5000
Sexo  ‘M’
Vacío  True
PI  3.1416

A la operación de dar valor a una variable desde el teclado se le conoce como Lectura o
Entrada desde el Teclado. El formato sería:

Leer (Nombre_Variable)

Ejemplo:
Leer (Salario)

2. Operación de Salidas de Datos


A la operación que permite mostrar el contenido de una o más variables en la pantalla se le
denomina Escritura de Datos.

El formato sería:
Escribir (Nombre_Variable)

Ejemplo:
Escribir (Salario) reflejaría el valor de: 5000

Existe un segundo formato para la sentencia de Escritura de Datos que permite escribir
mensajes en la pantalla. Tales mensajes habrán de ir encerrados entre comillas dobles. La
sintaxis sería:

Escribir (“Contenido del Mensaje”)

Ejemplo:
Escribir (“Bienvenido a mi Primer Programa”)

La mayoría de los lenguajes de programación permiten agrupar mensajes y variables en la misma


sentencia de Escritura de Datos separándolas entre sí por comas. La sintaxis sería:

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 4

Escribir (“Mensaje”, Nombre_Variable)

Ejemplo:
Escribir (“El salario mensual obtenido fue: ”, Salario)
Reflejaría: El salario mensual obtenido fue: 5000

3. Estructura de Control
 Secuencia
Su Formato sería:
INICIO
Instrucción_1
Instrucción_2
Instrucción_3
….
FIN

 Selectiva o Alternativa
Su Formato sería (Simple):
INICIO
SI (Condición) ENTONCES
Instrucción_1_A
Instrucción_2_A
….
SINO
Instrucción_1_B
Instrucción_2_B
….
FIN_SI
FIN

Su Formato sería (Compuesta):


INICIO
EN CASO (Nombre_Variable) SEA
Valor_1:
Instrucción_1_A
Instrucción_2_A
….
Valor_2:
Instrucción_1_B
Instrucción_2_B
….
Valor_3:
Instrucción_1_C
Instrucción_2_C

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 5

….
Valor_4:
Instrucción_1_D
Instrucción_2_D
….
SINO
Instrucción
FIN_EN CASO
FIN

 Repetitiva o Bucle
Bucle Mientras:
Su Formato sería:
INICIO
Mientras (Condición) Haga
Instrucción_1
Instrucción_2
….
Instrucción que haga Falsa a la Condición
FIN_Mientras
FIN

Bucle Repetir:
Su Formato sería:
INICIO
Repita
Instrucción_1
Instrucción_2
….
Instrucción que haga Verdadera a la Condición
Hasta Que (Condición)
FIN

Bucle Desde:
Su Formato sería:
INICIO
Desde Nombre_Variable  Valor_Inicial Hasta Valor_Final Haga
Instrucción_1
Instrucción_2
….
Nombre_Variable  Nombre_Variable + Incremento
ó
Nombre_Variable  Nombre_Variable – Decremento
FIN_Desde
FIN

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 6

Ejemplos:
1.- Formular un Algoritmo que permita leer 2 números enteros y escribir el mayor de los
dos. Si son iguales mandar un mensaje indicándolos que lo son

Solución
 Definición del Problema

Problema: Determinar el mayor de dos números enteros dados

Si A > B entonces
Mensaje: El mayor es el número A

Si A < B entonces
Mensaje: El mayor es el número B

Si A = B entonces
Mensaje: Los dos números son iguales

 Análisis del Problema


Variables de Entradas: Variables de Salida:
Num_1 y Num_2 Mensaje en Pantalla

 Algoritmo Formulado

Algoritmo Ejemplo_1;
Declaración de Variables:
Num_1, Num_2: Enteros
INICIO
Limpiar_Pantalla
Escribir (“Comparación entre dos números dados”)
{Datos de Entradas}
Escribir (“Escriba el Primer Número: ”)
Leer (Num_1)
Escribir (“Escriba el Segundo Número: ”)
Leer (Num_2)
{Comparando los dos números}
SI (Num_1 > Num_2) ENTONCES
Escribir (“El mayor es el Num_1”)
SINO
SI (Num_1 < Num_2) ENTONCES
Escribir (“El mayor es el Num_2”)
SINO
Escribir (“Los números son iguales”)
FIN_SI
FIN_SI
FIN

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 7

2.- Leer un carácter y dos números enteros. Si el carácter leído es un operador aritmético
(+, –, *, /) calcular la operación correspondiente. Si es cualquier otro entonces mostrar un
mensaje de error.

Solución
 Definición del Problema
Problema: Determinar la operación aritmética entre dos números enteros dados

En caso que (Operador) sea


‘+’:
C=A+B
Mensaje: El Resultado de la operación fue C
‘–‘:
C=A–B
Mensaje: El Resultado de la operación fue C
‘*’:
C=A*B
Mensaje: El Resultado de la operación fue C
‘/‘:
C=A/B
Mensaje: El Resultado de la operación fue C

 Análisis del Problema


Variables de Entradas: Variables de Salida:
Operador, Num_1 y Num_2 Num_3 y Mensaje en Pantalla

 Algoritmo Formulado
Algoritmo Ejemplo_2;
Declaración de Variables:
Num_1, Num_2: Enteros
Num_3 : Real
Operador : Carácter
INICIO
Limpiar_Pantalla
Escribir (“Operación Aritmética entre dos números dados”)
{Datos de Entradas}
Escribir (“Escriba el Primer Número: ”)
Leer (Num_1)
Escribir (“Escriba el Segundo Número: ”)
Leer (Num_2)
Escribir (“Escoja qué operación aritmética desea (+,-,*,/): ”)
Leer (Operador)
{Operación Aritmética}
EN CASO (Operador) SEA
‘+’:

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 8

Num_3  Num_1 + Num_2


Escribir (“El Resultado de la operación fue ”, Num_3)
‘–‘:
Num_3  Num_1 – Num_2
Escribir (“El Resultado de la operación fue ”, Num_3)
‘*’:
Num_3  Num_1 * Num_2
Escribir (“El Resultado de la operación fue ”, Num_3)
‘/‘:
Num_3  Num_1 / Num_2
Escribir (“El Resultado de la operación fue ”, Num_3)
FIN_EN CASO
FIN

3.- Formular un algoritmo que muestre el promedio de una serie de números que finaliza
al introducir el valor de –1. Este valor no debe ser tenido en cuenta para el promedio.

Solución
 Definición del Problema
Problema: Determinar el promedio de los números introducidos desde el teclado.

 N um_ 1 + N um_ 2 + N um_ 3 + ....+ N um_ i 


Promedio =  
 i 

Si Num_i = – 1
Sale de la introducción y suma del númerados. Y Calcula el promedio
Sino
Continúa introduciendo los datos.

 Análisis del Problema


Variables de Entradas: Variables de Salida:
Num Promedio y Mensaje de Error

 Algoritmo Formulado
Algoritmo Ejemplo_3;
Declaración de Variables:
Num, Contador, Suma : Enteros
Promedio : Real
INICIO
Limpiar_Pantalla
Escribir (“Promedio de una Serie de Números”)
{Datos de Entradas}
Suma  0
Contador  0
Escribir (“Escriba el Primer Número: ”)

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 9

Leer (Num)

{Totalizando de Datos}
Mientras (Num < > – 1) Haga
Suma  Suma + Num
Contador  Contador + 1
Escribir (“Escriba el Siguiente Número: ”)
Leer (Num)
FIN_Mientras

{Determinando el Promedio}
SI (Contador = 0) ENTONCES
Escribir (“No se puede determinar Promedio”)
SINO
Promedio  Suma / Contador
Escribir (“El promedio fue ”, Promedio)
FIN_SI
FIN

4.- Formular un algoritmo que calcule el factorial de un número entero dado.

Solución
 Definición del Problema
Problema: Determinar el factorial de un número entero positivo dado.

0! Y 1! = 1
5! = 5 * 4 * 3 * 2 * 1
9! = 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1
….
N! = N * (N – 1) * (N – 2) * (N – 3) * … * (N – (N – 1))

Si N es menor a 0 mandar un mensaje de error.

 Análisis del Problema


Variables de Entradas: Variables de Salida:
Num Factorial y Mensaje de Error

 Algoritmo Formulado
Algoritmo Ejemplo_4;
Declaración de Variables:
Num, Controlador : Enteros
Factorial : Real
INICIO
Limpiar_Pantalla
Escribir (“Factorial de un Número Entero Positivo”)

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 10

{Datos de Entradas}
Escribir (“Escriba el Número: ”)
Leer (Num)

{Evaluando el número}
SI (Num < 0) ENTONCES
Escribir (“No se puede calcular el factorial de un número negativo”)
SINO
SI (Num = 0) ENTONCES
Factorial  1
Escribir (“El factorial de ”, Num, “ es de ”, Factorial)
SINO
Factorial  1
Desde Controlador  Num Hasta 1 Haga
Factorial  Factorial * Controlador
Controlador  Controlador – 1
FIN_Desde
Escribir (“El Factorial de ”, Num, “ es de ”, Factorial)
FIN_SI
FIN_SI
FIN

1.2 - Lenguaje C++


 Proceso para la Obtención de un Programa Ejecutable

Fichero Fuente y Programa o Código Fuente: Los programas C y C++ se escriben con la
ayuda de un editor de textos del mismo modo que cualquier texto corriente. Los ficheros que
contiene programas en C o C++ en forma de texto se conocen como Ficheros Fuentes, y el texto
del programa que contiene se conoce como Programa Fuente.

Ficheros Objeto, Código Objeto y Compiladores: Los Programas Fuentes no pueden


ejecutarse. Son Ficheros de Texto, pensados para que los comprendan los seres humanos, pero
incomprensibles para los ordenadores. Para conseguir un Programa Ejecutable hay que seguir
algunos pasos. El primero es Compilar o Traducir el Programa Fuente a su Código Objeto
equivalente. Este es el trabajo que hacen los Compiladores de C y C++. Consiste en obtener un
fichero equivalente a nuestro programa fuente comprensible para el ordenador, este fichero se
conoce como Fichero Objeto, y su contenido como Código Objeto. Los Compiladores son
programas que leen un Fichero de Texto que contiene el Programa Fuente y generan un fichero
que contiene el Código Objeto. El Código Objeto no tiene ningún significado para los seres
humanos, al menos no directamente. Además es diferente para cada ordenador y para cada
sistema operativo. Por lo tanto existen diferentes compiladores para diferentes sistemas
operativos y para cada tipo de ordenador.

Librerías: Junto con los Compiladores de C y C++, se incluyen ciertos ficheros llamados
Librerías. Las librerías contienen el Código Objeto de muchos programas que permiten hacer
cosas comunes, como Leer desde el teclado, Escribir en la pantalla, Manejar números,

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 11

realizar funciones matemáticas, etc. Las Librerías están clasificadas por el tipo de trabajos
que hacen, hay Librerías de E/S, Librerías de Matemáticas, Librerías de Manejo de
Memoria, Librerías de Manejo de Textos, etc. Hay un conjunto de librerías muy especiales,
que se incluyen con todos los Compiladores de C y de C++. Son las Librerías ANSI o
Estándar. Pero también hay librerías no estándar, y dentro de estas las hay públicas y
comerciales.

Ficheros Ejecutables y Enlazadores: Cuando obtenemos el Fichero Objeto, aún no hemos


terminado el proceso. El Fichero Objeto, a pesar de ser comprensible para el ordenador, no
puede ser ejecutado.

Existe un programa que hace todas estas cosas, se trata del "Link", o Enlazador. El Enlazador
toma todos los Ficheros Objeto que componen nuestro programa, los combina con los ficheros
de librería que sea necesario y crea un Fichero Ejecutable. Una vez terminada la fase de
enlazado, ya podremos ejecutar nuestro programa.

Errores: Por supuesto, somos humanos, y por lo tanto nos equivocamos. Los errores de
programación pueden clasificarse en varios tipos, dependiendo de la fase en que se presenten.

 Errores de Sintaxis.
 Errores de Avisos.
 Errores de Enlazado.
 Errores de Ejecución.
 Errores de Diseño.

 Definición del Lenguaje C++


Tanto C como C++ son lenguajes de programación de Propósito General. Todo puede
programarse con ellos, desde sistemas operativos y compiladores hasta aplicaciones de bases de
datos y procesadores de texto, pasando por juegos, aplicaciones a medida, etc.

Una de las propiedades de C y C++ es la reutilización del código en forma de librerías de


usuario. Después de un tiempo trabajando, todos los programadores desarrollan sus propias
librerías para aquellas cosas que hacen frecuentemente. Y además, raramente piensan en ello, se
limitan a usarlas.

Además, los programas escritos en C o C++ tienen ventajas importantes con respecto a otros
lenguajes de programación. Con la excepción del ensamblador, generan los programas más
compactos y rápidos. El código es transportable, es decir, un programa ANSI en C o C++ podrá
ejecutarse en cualquier máquina y bajo cualquier sistema operativo. Y si es necesario,
proporcionan un acceso a bajo nivel de hardware sólo igualado por el ensamblador.

Por último, existen varios compiladores de C y C++ gratuitos, o bajo la norma GNU, así como
cientos de librerías de todo propósito y miles de programadores en todo el mundo, muchos de
ellos dispuestos a compartir su experiencia y conocimientos.

 Uso del Programa Borland C++ 4.5

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 12

La palabra “C++” hace referencia al lenguaje C++, un C Mejorado a su versión anterior. Por
tanto, Borland C++ 4.5 ha evolucionado a partir del lenguaje C original y ahora contiene
centenares de instrucciones, funciones y palabras claves, muchas de las cuales están directamente
relacionados con la interfaz gráfica de Windows.

Elementos del Entorno Integrado de Desarrollo.

El Entorno de Trabajo del Borland C++ 4.5 se denomina Entorno Integrado de Desarrollo
(IDE), ya que integra muchas funciones diferentes como el diseño, modificación, compilación y
depuración en un entorno común. En las herramientas de desarrollo más tradicionales, cada una
de esas funciones funcionaría como un programa diferente, cada una con su propia interfaz.

Los pasos para acceder al programa Borland C++ 4.5 se ilustra a continuación:

Pasos para Crear una Aplicación en Borland C++ 4.5


Hay Cuatro Pasos Principales para crear una aplicación en el Lenguaje C++:
o Formular el Algoritmo solución al Problema.
o Escribiendo el código fuente
o Ejecutar la Aplicación.
o Generar el Código Ejecutable

Ejemplos:
1.- Formule un Programa en C++ que permita leer 2 números enteros y escribir el mayor
de los dos. Si son iguales mandar un mensaje indicándolos que lo son
Solución
 Algoritmo Formulado
Algoritmo Ejemplo_1;
Declaración de Variables:
Num_1, Num_2: Enteros
INICIO
Limpiar_Pantalla
Escribir (“Comparación entre dos números dados”)
{Datos de Entradas}
Escribir (“Escriba el Primer Número: ”)
Leer (Num_1)
Escribir (“Escriba el Segundo Número: ”)
Leer (Num_2)
{Comparando los dos números}
SI (Num_1 > Num_2) ENTONCES
Escribir (“El mayor es el Num_1”)
SINO
SI (Num_1 < Num_2) ENTONCES
Escribir (“El mayor es el Num_2”)
SINO
Escribir (“Los números son iguales”)

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 13

FIN_SI
FIN_SI
FIN
 Escribiendo el Código Fuente
El Código Fuente en C++ sería:
#include <iostream.h>
#include <conio.h>
int main()
{
//Declaración de Variables
int Num_1, Num_2;

// Inicio del Programa


clrscr();
cout<<"Comparación entre dos números dados"<<endl;
cout<<"Escriba el Primer Número: ";
cin>>Num_1;
cout<<endl<<"Escriba el Segundo Número: ";
cin>>Num_2;
if(Num_1 > Num_2)
cout<<"El mayor es el Num_1"<<endl;
else
if(Num_1 < Num_2)
cout<<"El mayor es el Num_2"<<endl;
else
cout<<"Los números son iguales"<<endl;

cout<<"Escriba cualquier tecla para terminar...";


getch();
return 0;
}

Explicación del Código, Partes por Partes:


 Primera Parte: Archivos o Librerías de Cabecera. En esta se hace referencia a los
archivos o librerías estándar del lenguaje. Todas las funciones de entradas y salidas,
funciones matemáticas y otras son definidas a partir de estos archivos con extensión h. Si
no se incluye estos archivos, no correrá cualquier programa que vayamos a realizar.

Archivos a Incluir:
#include <iostream.h>
#include <conio.h>

 Segunda Parte: int main (). Es el principio de la definición de la función principal del
programa. En general, todas las funciones en C++ toman unos valores de entrada,
llamadas Parámetros o Argumentos y devuelven un valor de retorno. La primera
palabra int indica el tipo de valor de retorno de la función principal, que en este caso es

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 14

un número entero. La función main siempre devuelve un entero expresada por la palabra
reservada return 0. La segunda palabra es el nombre de la función lo cual es usada para
ser llamada o invocada en algún punto del código. El cuerpo de la función estará
limitados por las llaves {}.
Sintaxis:
int main()
{
return 0;
}

 Tercera Parte: int Num_1, Num_2. Esta es nuestra primera sentencia, todas las
sentencias terminan con un punto y coma. Esta concretamente es una declaración de
variables. Una Declaración nos dice a nosotros y al compilador, que usaremos variables
Num_1 y Num_2 de tipo Entero (int). Esta declaración obliga al compilador a reservar un
espacio de memoria para almacenar las variables Num_1 y Num_2, pero no le da ningún
valor inicial. En general, todas las variables declaradas contendrán valores basuras, es
decir, lo que hubiera en esa zona de memoria cuando se reservó espacio para ellas. En
C++ es obligatorio declarar las variables que usará el programa.

Sintaxis:
Tipo_Datos Nombre_Variables;

 Cuarta Parte: cout<< y cin>>. Sentencias equivalente al Escribir y Leer del Algoritmo.

Sintaxis:
cout<< “Mensaje”<<Nombre_Variable;
cin>>Nombre_Variable

 Quinta Parte: if (Condición). Una estructura de control equivalente al SI (Condición)


Entonces del Algoritmo.

Sintaxis:
If (Condición)
{
Instrucciones
}
else
{
Instrucciones
}

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 15

Tarea:
I.- Formular los programas para los Algoritmos siguientes:

A) Leer un carácter y dos números enteros. Si el carácter leído es un operador aritmético


(+, –, *, /) calcular la operación correspondiente. Si es cualquier otro entonces mostrar un
mensaje de error.

 Algoritmo Formulado
Algoritmo Ejemplo_2;
Declaración de Variables:
Num_1, Num_2: Enteros
Num_3 : Real
Operador : Carácter
INICIO
Limpiar_Pantalla
Escribir (“Operación Aritmética entre dos números dados”)
{Datos de Entradas}
Escribir (“Escriba el Primer Número: ”)
Leer (Num_1)
Escribir (“Escriba el Segundo Número: ”)
Leer (Num_2)
Escribir (“Escoja qué operación aritmética desea (+,-,*,/): ”)
Leer (Operador)
{Operación Aritmética}
EN CASO (Operador) SEA
‘+’:
Num_3  Num_1 + Num_2
Escribir (“El Resultado de la operación fue ”, Num_3)
‘–‘:
Num_3  Num_1 – Num_2
Escribir (“El Resultado de la operación fue ”, Num_3)
‘*’:
Num_3  Num_1 * Num_2
Escribir (“El Resultado de la operación fue ”, Num_3)
‘/‘:
Num_3  Num_1 / Num_2
Escribir (“El Resultado de la operación fue ”, Num_3)
FIN_EN CASO
FIN

B) Obtener el promedio de una serie de números que finaliza al introducir el valor de –1.
Este valor no debe ser tenido en cuenta para el promedio.

 Algoritmo Formulado
Algoritmo Ejemplo_3;
Declaración de Variables:

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 16

Num, Contador, Suma : Enteros


Promedio : Real
INICIO
Limpiar_Pantalla
Escribir (“Promedio de una Serie de Números”)
{Datos de Entradas}
Suma  0
Contador  0
Escribir (“Escriba el Primer Número: ”)
Leer (Num)

{Totalizando de Datos}
Mientras (Num < > – 1) Haga
Suma  Suma + Num
Contador  Contador + 1
Escribir (“Escriba el Siguiente Número: ”)
Leer (Num)
FIN_Mientras

{Determinando el Promedio}
SI (Contador = 0) ENTONCES
Escribir (“No se puede determinar Promedio”)
SINO
Promedio  Suma / Contador
Escribir (“El promedio fue ”, Promedio)
FIN_SI
FIN

C) Obtener el factorial de un número entero dado.

 Algoritmo Formulado
Algoritmo Ejemplo_4;
Declaración de Variables:
Num, Controlador : Enteros
Factorial : Real
INICIO
Limpiar_Pantalla
Escribir (“Factorial de un Número Entero Positivo”)
{Datos de Entradas}
Escribir (“Escriba el Número: ”)
Leer (Num)

{Evaluando el número}
SI (Num < 0) ENTONCES
Escribir (“No se puede calcular el factorial de un negativo”)

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 17

SINO
SI (Num = 0) ENTONCES
Factorial  1
Escribir (“El factorial de ”, Num, “ es de ”, Factorial)
SINO
Factorial  1
Desde Controlador  Num Hasta 1 Haga
Factorial  Factorial * Controlador
Controlador  Controlador – 1
FIN_Desde
Escribir (“El Factorial de ”, Num, “ es de ”, Factorial)
FIN_SI
FIN_SI
FIN

II.- Obtener el Algoritmo y Programa para cada uno de los problemas siguientes:

a) Determine el Área de un triángulo sabiendo su base y su altura escrita e introducida desde


el teclado.

b) Leer las cantidades de toneladas de maíz producidas por los países de México, Nicaragua
y Canadá, calcular e imprimir el porcentaje de producción de cada uno de esos países.

c) Leer los votos obtenidos por los 3 candidatos por la Alcaldía Municipal, calcular e
imprimir al ganador. Se desconoce el número de votantes.

d) Leer dos números enteros distintos, donde el primero es mayor que el segundo y que
totalice los números comprendidos entre ellos, sin incluirlos.

e) Sean los datos a, b, c, d. Elabore algoritmos independientes para leer los datos, resolver e
imprimir el resultado de cada uno de los siguientes incisos:

a) Escribir los datos en orden inverso.


b) Escribir los datos en orden inverso, omitiendo el segundo dato.
c) Calcular: a+b-c
d
d) Calcular: (a - b)2 (a - b)3
c d
a

f) Elabore un algoritmos que teniendo como datos de entrada el radio y la altura de un


cilindro calcule el área total y el volumen del cilindro.

Análisis del problema:

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 18

Teniendo en cuenta que el área de un cilindro es igual a la suma de las áreas de los dos
círculos más el área del rectángulo formado por la longitud de la circunferencia y la altura
del cilindro y que el volumen se obtiene multiplicando la superficie de la base del círculo
por la altura del cilindro.

g) Un sistema de ecuaciones lineales:

ax + by = c
dx + ey = f

Se puede resolver con las siguientes fórmulas:

ce − bf af − cd
x= y=
ae − bd ae − bd

Elabore un algoritmos que lea dos conjuntos de coeficientes (a, b, y c; d, e, y f) y


visualice los valores de x e y.

h) Una persona recibe un préstamo de $10,000.00 de un banco y desea saber cuánto pagará
de interés al terminar el mes si el banco le cobra una tasa del 2% mensual.

a) Resuelva este caso particular.


b) Generalice este problema para un monto cualquiera de capital y para una tasa
cualquiera.

i) Sean los datos: x, a1, a2, a3, a4; Elabore un diagrama de flujo para calcular:

a1x3 + a2x2 + a3x + a4

Sin usar la operación de potencia.

a) ¿Cuántas operaciones de multiplicación y cuántas de suma utilizó?


b) ¿Puede reducir ambas cantidades? En caso afirmativo, hágalo.

j) Elabore un Algoritmo que lea dos valores numéricos a y b y los imprima en orden
ascendente.

k) Una empresa desea conocer el monto de comisión correspondiente a una venta realizada
por un vendedor bajo las siguientes condiciones. Si la venta es menor a $1,000.00, se le
otorga el 3% de comisión. Si la venta es de $1,000.00 o más, el vendedor recibe el 5% de
comisión.

l) Elabore un Algoritmo que lea un dato entero e imprima si ese dato es par o impar.

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 19

m) Una agencia automotriz ofrece planes de crédito para la adquisición de los diferentes
modelos de automóviles. Si el automóvil vale más de $250,000.00 la agencia solicita un
35% de enganche y el resto debe cubrirse en 24 mensualidades sin intereses. Si el
automóvil tiene un valor máximo de $250,000.00 se requiere un enganche del 25% y el
resto se debe pagar en 18 mensualidades sin intereses.

La agencia desea saber, en base al precio de un automóvil que un determinado cliente


elija, cuál es el monto del enganche; y cuál es el número y el monto de las mensualidades
que éste debe cubrir.

n) El precio de un boleto de viaje redondo en tren se calcula tomando en cuenta el número


de kilómetros que se van a recorrer, siendo el precio $60.00 por Km. Este precio puede
tener un descuento del 30% si el viaje de regreso se hace después de 7 días del viaje de
ida, o si el recorrido supera los 800 Km.

Elabore un Algoritmo para calcular cuánto se debe pagar por un boleto de tren dando
como datos el total de Km recorridos y el número de días entre el viaje de ida y el viaje de
vuelta.

Pruebe su Algoritmo con los siguientes grupos de datos:

a) 850 Km y 10 días.
b) 356 Km y 8 días.

o) Elabore un Algoritmo para resolver ax2 + bx + c = 0 en el caso de raíces reales. Los datos
son: a, b, c. Puede usar las operaciones que necesite. Asegúrese que el resultado sea
válido.
Análisis del problema:
Si a <> 0 se presentan tres casos:
 Primero con dos soluciones dadas con la fórmula que da la solución de la ecuación
de segundo grado cuando el discriminante es positivo.
 Segundo con una solución dada por la fórmula cuando el discriminante es cero.
 Tercero con dos soluciones complejas, dadas por la fórmula cuando el
discriminante es negativo.

Si a = 0 se presentan a su vez tres casos:


c
 Primero es cuando b <> 0, cuya solución es − .
b
 Segundo es cuando b = 0 y c = 0, que es evidente una identidad.
 Tercero cuando b = 0 y c <> 0 que no puede tener solución.

p) Elabore un Algoritmo que calcule el área de un triángulo mediante la formula:


Área = p ( p −a ) * ( p −b)( p −c )

donde p es el semiperímetro, p = (a + b + c) / 2, siendo a, b, c los tres lados del triángulo.

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 20

Análisis del problema:


Para que el triángulo exista debe cumplirse que los lados sean todos positivos, y además
que la suma de dos lados cualesquiera sea mayor que el otro lado.

q) Dado un valor de x calcular el valor de y según la siguiente función:

 3x + 3 6 s i x≤ 1 1

 r) Elabore un Algoritmo que
 x2 − 1 0 s i 1 1< x ≤ 3 3 calcule la siguiente

y = f ( x) =  función:
 x+ 6 s i 3 3< x ≤ 6 4


0 p a r alo sd e m ávsa lo r ed sex

 1 0 *0v s i n u m= 1


 1 0 *0*v s i n u m= 2

y = f (v) = 
 1 0 /0v s in u m= 3


0
 p a r ca u a l q uoi tre rov a lod ren u m
Datos: num, v

Donde:
num es una variable de tipo entera.
v es una variable de tipo entera.

s) En una empresa, se darán aumentos a los empleados según la categoría de su contrato


actual de la siguiente forma:

Clave de Categoría Aumento %


categoría
S Sindicalizado 20
C Confianza 10
D Directivo 5
E Ejecutivo 0

Elabore un Algoritmo que solicite la clave de la categoría y el sueldo actual de un


empleado y calcule e imprima el nuevo salario.

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 21

t) Elabore un Algoritmo para que, dados dos números enteros a, b y una clave, realice la
operación aritmética indicada por medio de la clave a los números dados. Por ejemplo, si
los datos son: 8 4 +, el algoritmo debe calcular la suma de 8 + 4. Las claves válidas
son: + - * /.

u) Elabore un Algoritmo para leer una serie de enteros positivos, contar los valores
introducidos y calcular su promedio. El final de los datos se indicará con un número
negativo.

v) Una tienda desea obtener una serie de reportes diarios a partir de las ventas realizadas en
un día. Elabore un Algoritmo que:

c) solicite el monto de cada venta sin IVA,


d) para cada venta, calcule e imprima el IVA y el total con IVA,
e) al terminar el día, imprima un reporte con los totales de:
• ventas sin IVA,
• IVA,
• ventas con IVA,
• promedio de las ventas con IVA.

Se desconoce el número de ventas que se realizan en un día, por lo que el final de los
datos se indica con un –1. Suponga que el IVA es del 15%.

w) Elabore un Algoritmo, que dada una n entera, con 1 ≤ n ≤ 100, imprima los primeros n
números naturales en orden ascendente.

x) Elabore un Algoritmo, que dada una n entera, con 1 ≤ n ≤ 100, imprima los primeros n
números naturales en orden descendente.

y) Elabore un Algoritmo, que imprima todos los pares menores o iguales a n.

z) Elabore un Algoritmo, que imprima los primeros n pares.

aa) Elabore un Algoritmo para leer n enteros, calcular e imprimir su suma y su promedio.

bb) Una tabla de estadísticas muestra la producción de barriles de petróleo de 5 países


petroleros (México, Venezuela, Arabia Saudita, Libia y Argelia), durante el primer
semestre de 2001. La tabla tiene el siguiente formato:

bm, bv, bas, bl, ba: No de barriles/país en enero.


bm, bv, bas, bl, ba: No de barriles/país en febrero.
...
bm, bv, bas, bl, ba: No. de barriles/país en junio.

Elabore un Algoritmo que calcule la producción total de barriles en el semestre y la de


cada uno de los países involucrados.

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 22

cc) Elabore un Algoritmo, que calcule m x n (m ≥ 0 , n ≥ 0, ambos enteros) sin utilizar la


operación de multiplicación.

dd) Elabore un Algoritmo, que calcule mn (n > 0 y entero) sin utilizar potencia.

ee) Elabore un Algoritmo que dado un valor n entero con n ≥ 1, calcule e imprima la
siguiente sumatoria:

∑i
i =1
i

ff) Elabore un Algoritmo que dado un número n entero positivo, imprima todos sus
divisores.

gg) Dada la función:

 x 2 − 3 s i x≤ 0



y = f ( x) =  x 2 + 4 s i 0 < x ≤ 1 0


 x + 5 s i x> 1 0

y dados los valores k,x1,x2,..,xk, Elabore un Algoritmo para calcular f(xi) para i = 1,2...,k.

hh) Dados los datos: a, b, c, d; Elabore un Algoritmo para cada uno de los siguientes
problemas:

f) Hallar el mayor.
g) Hallar el menor.
h) Hallar el mayor y el menor.

ii) Dados los datos: n, a1, a2,..., an con n > 0, Elabore un Algoritmo para encontrar el
máximo de los ai.

jj) Elabore un Algoritmo que reciba un valor n entero y

i) si n≥ 0 calcule n!
j) si n<0 escriba un mensaje de error y no calcule nada.

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 23

kk) Sean los datos m y n enteros positivos, Elabore un diagrama de flujo para calcular el
Máximo Común Divisor y el Mínimo Común Múltiplo de m y n. El Algoritmo de
Euclides establece que, si m>=n, MCD(m,n) = MCD(n, m mod n).

ll) Construya un Algoritmo que calcule e imprima los 150 primeros números de la serie de
Fibonacci. Recuerde que los dos primeros números de la serie son 0 y 1. El resto se
calcula como la suma de los dos números que lo preceden.

Ejemplo: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, . . .

mm) En una guardería hay 25 niños de 1, 2 y 3 años. Los niños de 1 año consumen 6
pañales al día, los niños de 2 años consumen 3 pañales diarios y los niños de 3 años
consumen 2 pañales diarios. Se desea conocer el consumo total de pañales diarios.

Datos: edad1
edad2
.....
edad25
donde edadi representa la edad del i–ésimo niño en años cumplidos (1, 2 ó 3).

nn) Una empresa que cuenta con k empleados desea realizar algunos cálculos para la nueva
nómina. Los datos con que cuenta son los sueldos de los k empleados:

k, s1, s2, s3, ..., sk.

Elabore un Algoritmo para leer los datos y contestar a las siguientes preguntas:

k) ¿Cuál es el aumento correspondiente a cada empleado según el siguiente criterio?

17% si el sueldo es inferior a $5,000


10% si el sueldo está entre $5,000 y $15,000
5% si el sueldo es superior a $15,000

l) ¿Cuál es el nuevo sueldo para cada empleado?


m) ¿Cuál es el total de la nueva nómina?
n) ¿Cuál es el incremento en la nómina?
o) ¿Cuál es el máximo sueldo nuevo?
p) ¿Cuál es el mínimo sueldo nuevo?

Resuelva los incisos progresivamente.

oo) Una empresa tiene n empleados, por los que aporta al INATEC el 2% de la nómina y al
INSS el 15%. Donde los datos son:

n, s1, s2,..., sn

Donde:

Ing. César Rivas López UPONIC


Asignatura de Programación II: Borland C++ 4.5 Página # 24

n representa el número de empleados


si representa el sueldo del empleado i

Elabore un Algoritmo que calcule e imprima:


q) el sueldo-empresa de cada empleado que consiste en el sueldo del empleado más
las aportaciones mencionadas;
r) el monto total de la nómina que paga la empresa; y
s) el total de aportaciones al INATEC y al INSS que realiza la empresa.

pp) Una carrera profesional consta de 40 materias, repartidas en 8 semestres a razón de 5


materias por semestre. Como datos se dan las 40 calificaciones correspondientes a un
alumno, en grupos de 5 según el semestre:

c1, c2,..., c5 <-primer semestre


c6, c7,..., c10 <-segundo semestre
.....
c36, c37,..., c40 <-octavo semestre

Elabore un Algoritmo para leer los datos y contestar a las siguientes preguntas:
t) ¿Cuál es el promedio del alumno por semestre? Indique tanto el promedio como el
semestre.
u) ¿Cuál es el promedio que obtuvo en la carrera?

Ing. César Rivas López UPONIC