Inicio
Generalidades
Ejercicios
Talleres
Proyecto

|
Paradigma Imperativo (Procedural)
Es
el paradigma clásico o tradicional. En el paradigma imperativo, un
programa es visto como una lista de instrucciones o comandos. (Imperativo
viene del Latín imperare, que significa comando). Básicamente, se
le dice al computador que ejecute una secuencia de pasos, donde cada paso
cambia el contenido, estado, de la memoria. Los programas imperativos o
procedurales, explícitamente o implícitamente, asumen el computador basado
en la arquitectura de Von Neumann.
La programación estructurada es un enfoque
disciplinado para escribir programas más legibles y eficientes que los
programas no estructurados, así como más fáciles de probar, depurar y
modificar. Existen conceptos básicos que se deben conocer de todo lenguaje
de programación: Tipos de datos y operadores, declaración de constantes,
ámbito de las variables, instrucciones de entrada/salida, estructura
secuencial, condicional, iterativa, funciones de
biblioteca...
________________________________________
Programación
Estructurada en C++
La programación estructurada es un enfoque
disciplinado para escribir programas más legibles y eficientes que los
programas no estructurados, así como más fáciles de probar, depurar y
modificar. Existen conceptos básicos que se deben conocer de todo lenguaje
de programación: Tipos de datos y operadores, declaración de constantes,
ámbito de las variables, instrucciones de entrada/salida, funciones de
biblioteca...
Como lo sugiere su nombre, en
una estructura secuencial las instrucciones del programa se ejecutan en el
mismo orden en que están escritas. Una secuencia de instrucciones son
pasos sucesivos, uno seguido de otro.

- Escribir un programa para solucionar los siguientes problemas simples de computación:
Leer por teclado el radio de un
círculo y calcular e imprimir el área. // Esta es la forma de insertar comentarios en lenguaje
C++.
// Programa: Areac.cpp
// Autor : Usted
// Fecha : Marzo 9 de 2005
// Este programa permite calcular el área de un círculo
#include "iostream.h"
#include "conio.h"
#define cls clrscr( )
// Estas son declarativas del preprocesador. Son archivos
// de cabecera o librerias de funciones (de biblioteca) y
// macroinstrucciones. El compilador reemplazara la constante
// simbolica cls por la funcion clrscr(), limpiar pantalla.
void main( ) // funcion principal del lenguaje C
{ // Inicio
int radio; // declaracion de la variable entera radio
float area; // declaracion de variable tipo real
cls; //
limpiar pantalla;
cout << "<> AREA DE UN CIRCULO <>" << endl << endl;
// salida por pantalla y doble salto de linea
cout << "Por favor, digite el radio del circulo -> ";
cin >> radio; // entrada por teclado;
area = radio * radio * 3.1416; // instruccion de asignacion
cout << "Area = " << area << endl;
cout << "Presione ENTER para terminar...";
getch(); // detiene la ejecucion del programa
} //
Fin de la funcion main( ) y del programa ___________________________________________________________________________________________
Ejercicios "amistosos"
___________________________________________________________________________________________
-
Calcular el IVA y el valor a pagar por el
cliente en la venta de x cantidad de un producto cualquiera. Calcular e imprimir
también el cambio que se le debe entregar al cliente.
-
La gran pirámide de Egipto está
compuesta por 2 300 000 bloques de piedra, cada uno con una masa
promedio de 2.5 megagramos o toneladas (1 Megagramo equivale a 10^6
gramos). ¿Cuál es la masa total de la pirámide?
-
En N días 5 programadores
desarrollan una aplicación. ¿En cuántos días podrían desarrollar
el mismo software 8 programadores?
-
Un buque de la Armada, de N
marineros, tiene víveres para 2 meses. Si queremos que los víveres
duren 10 días más, ¿cuántos marineros habría que dejar en la base
naval?
-
Doce empleados de un juzgado digitan 240
páginas trabajando N horas diarias. ¿Cuántas páginas pueden
digitar diariamente dieciséis empleados si trabajan el doble del
tiempo en condiciones semejantes?
-
Calcular e imprimir la distancia entre dos puntos P1 y P2.
-
Leer por teclado el radio y la altura de un cilindro y calcular e imprimir el área y su volumen.
-
Leer la longitud de los catetos de un triángulo rectángulo y determinar e imprimir su hipotenusa.
-
Leer una cantidad entera de segundos y determinar e imprimir su equivalente en minutos y segundos. Por ej: 90 segundos equivalen a 1 minuto y 30 segundos.
-
Escriba un programa que acepte por
teclado un número de cinco dígitos, los separe y los imprima dejando
tres espacios entre ellos (utilice los operadores división y
módulo). Por ej., si el usuario teclea 27518, el programa debe
imprimir 2 7 5 1
8
________________________________________ Las técnicas básicas de solución de
problemas en computación requieren el uso de las estructuras de control
selectivas o condicionales, para elegir entre diferentes acciones
alternativas. Es aquí donde radica el mayor potencial inteligente de un
programa computacional.
En estas estructuras es fundamental el buen manejo de las expresiones y
los operadores lógicos y relacionales.
Las estructuras condicionales o selectivas que se utilizan para la toma de
decisiones lógicas se pueden clasificar así:
- Estructura selectiva simple (if
)
- Estructura selectiva doble
(if / else)
- Estructura selectiva múltiple (if /
else / if...)
- Estructura selectiva múltiple compuesta por casos (switch
case)
Todas estas estructuras se pueden combinar.
// Ejemplo de condicional doble (if-else)
#include "iostream.h"
#include "conio.h"
main(){
int res;
clrscr();
cout << "Cual es el resultado de (1+2*3-4) ? ";
cin >> res;
if (res == 3)
cout << "Todo bien, todo bien!...";
else
cout << "Ojo! usted tiene deudas con
Pitagoras...";
getch();
}
-
Un taxista trabaja en la empresa
"PengüiTAXI" en la cual le asignan 3 rutas: Ruta A
con un valor de $3000, Ruta B con valor $5000 y Ruta C
con valor $7000. Además, debe cobrar un recargo de $500 si
está trabajando entre las 20:00 y las 05:00. Si es festivo, hay
un recargo de $100. ¿Cuánto debe pagar un usuario que tome el
servicio?
-
Dados dos números enteros, determinar si
un número es divisor del otro.
-
Calcular las raíces reales, de ser
posible, de una ecuación de segundo grado: (ax² + bx + c = 0)
-
Determinar si un año es bisiesto. Un año
es bisiesto si es múltiplo de 4 (por ejemplo, 1984). Los años múltiplos
de 100 no son bisiestos, salvo si ellos son también múltiplos de 400
(2000 es bisiesto, 1800 no lo es).
-
Determinar e imprimir si un número
entero X es par, impar o nulo.
-
Hallar la solución de una ecuación de
la forma: ax + b = 0.
-
Calcular e imprimir el área de un círculo,
rectángulo o triángulo. Utilice una escalera if-else-if.
-
En el almacén "Don Pingüino"
se realiza descuento en las compras en función del valor total de
dichas compras. Si se paga con tarjeta de crédito, el descuento en
las compras se disminuye un 5%. Calcular el impuesto del IVA e
imprimir el valor a cobrar al cliente en función de las siguientes
premisas: a) Valor < $40000: sin descuento, b) Valor comprendido
entre $40000 y $80000: descuento del 10%, c) Valor superior a $80000:
descuento del 14%.
-
Leer por teclado tres números diferentes
y determinar cuál es el número mayor.
-
Dados como datos dos variables de tipo
entero, obtener el resultado de la siguiente función:
VAL = |
100*V |
si NUM=1 |
100^V |
si NUM=2 |
100/V |
si NUM=3 |
0 |
para cualquier otro
valor de NUM |
________________________________________
Las sentencias de control repetitiva se
constituyen en la esencia fundamental de los programas computacionales. Su
objetivo es controlar el flujo de ejecución de las instrucciones del
programa.
Por lo general, los lenguajes de programación contienen las siguientes
estructuras repetitivas:
- Estructura repetitiva while
- Estructura repetitiva do while
- Estructura repetitiva for
Todas estas estructuras también se pueden combinar.
Leer la edad de los n alumnos de un curso
de Paradigmas de Programación y determinar e imprimir la edad promedio:
#include "iostream.h"
#include "conio.h"
#include "stdio.h"
#define cls clrscr()
void main(){
int edad, na, conta, sume=0;
float prome;
cls;
cout << "Cuántos alumnos desea procesar? -> ";
cin >> na;
cout << "Por favor, digite la edad de los "<< na <<" alumnos"<< endl;
for (conta = 1; conta <= na; conta++){
cout << "Alumno"<< conta << " edad? -> ";
cin >> edad;
sume = sume + edad;
cls;
}
prome = sume/na;
cls;
cout << "La edad promedio del grupo es... " << prome << " años";
getch();
}
-
Calcular e imprimir los valores que toma
la ecuación Y = X² + 4X + 3 cuando X va de 1 a 10.
-
En el Banco "SinFondos"
desean registrar las transacciones realizadas a diario. Los tipos de
transacción son: 'C' si la transacción es una
consignación se debe actualizar el saldo del
cliente, 'R' si la transacción es un
retiro se debe tener en cuenta si el saldo le alcanza a la persona; se
debe dejar un saldo mínimo de $20000 en la cuenta y el valor mínimo
de cada transacción es de $20000. Si el retiro es aprobado se debe
actualizar el saldo. Por cada cliente se debe visualizar: Número de
la cuenta y nombre del cliente, tipo, fecha y valor de transacción, y
nuevo saldo.
-
Leer por teclado 27 números enteros y
determinar e imprimir cuántos números son primos.
-
Representar un modelo informatizado del
juego "adivina el número mágico". Funciona así: El
jugador tiene 7 intentos para adivinar el número mágico. Si el número
que se digita es el valor seleccionado como número mágico, el
programa debe imprimir el mensaje CORRECTO! y terminar. En caso
contrario, informar sobre si la suposición ha sido más alta o más
baja y permitir que el usuario introduzca números hasta que adivine
el número. Visualizar también el número de intentos.
-
Para las elecciones a la Alcaldía de
Chaparral, se inscribieron cuatro candidatos (con identificadores
1,2,3,4). Escriba un programa que permita determinar e imprimir el número
de votos correspondiente a cada candidato y el porcentaje que obtuvo
respecto al total de los votantes. El final de datos está
representado por un cero. ¿Cuál es el nuevo alcalde de Chaparral?
-
Laura está de compras en el hipermercado
'Mercacentro' de Ibagué y decide llevar un control sobre lo que va comprando, para
saber la cantidad de dinero que tendrá que pagar al llegar a una
caja. El supermercado tiene una promoción especial del 14% de
descuento sobre aquellos artículos cuya etiqueta sea de color verde:
del 10% sobre los de etiqueta amarilla, y del 7% sobre los de etiqueta vinotinto. Escriba un programa con un ciclo indeterminado que permita
determinar e imprimir la cantidad de dinero que Laura deberá pagar.
-
Una aplicación interesante de las
computadoras, es dibujar gráficos de barra (a veces llamados
"histogramas"). Escriba un programa que lea 10 números
(cada uno de ellos entre 1 y 27). Para cada uno de los números leídos,
su programa deberá imprimir una línea, conteniendo dicho número en
asteriscos adyacentes. Por ejemplo, si se lee por teclado el número
7, el programa deberá imprimir *******.
-
Escriba un programa que permita realizar operaciones
aritméticas elementales, según el operador ingresado por teclado.
Imprimir el operando1, operador, operando2 y el resultado de la
operación. El programa debe finalizar mediante una respuesta del
usuario.
(¿Desea salir? S = sí, N = no).
OPERADOR |
OPERACIÓN |
+ |
Suma |
- |
Resta |
* |
Multiplicación |
/ |
División |
- En el estadio 'Manuel Murillo Toro' se tienen 5 tipos
diferentes de localidades, las cuales se identifican por una clave numérica
(valor comprendido entre 1 y 5). Codifique un programa que permita:
a) Calcular e imprimir la recaudación total del estadio para el
partido TOLIMA
- CALI.
b) Para cada venta por localidad, imprimir el tipo de boleta, la cantidad
y el valor total de las boletas.
c) Imprimir la cantidad total de boletas vendidas de cada tipo.
10. El factorial de un número entero
positivo N se define como el producto de los números comprendidos
entre 1 y N. La expresión N! simboliza
el factorial de N. Por
definición: 0! = 1, 1! = 1, 2! = 1 * 2, 3! = 1 * 2 * 3 y así
sucesivamente. Escriba un programa que genere e imprima el factorial de un número N. ________________________________________
La modularidad de los programas es un elemento
clave en la programación estructurada. La parametrización de
funciones permite la reutilización de software y la facilidad de
mantenimiento, y es también característica fundamental de la programación
orientada a objetos.
Escriba un programa modular con un ciclo indeterminado
para leer el sueldo de los empleados de la empresa "PengüinSoft Ltda." y determinar e imprimir: a) Número de empleados de la
empresa, b) Total de nómina, c) cantidad de mujeres y de
hombres, d) sueldo promedio de mujeres y de hombres, e) sueldo
promedio de los ingenieros de sistemas.
#include "iostream.h"
#include "conio.h"
#include "ctype.h"
#define lp clrscr()
// Programa ejemplo de un bucle (ciclo) indeterminado y
// llamado de funciones con paso de parámetros por valor
float promedio(float, int); // Prototipos de función
void imprimir(float,float,float,float,int,int,int,int);
void titular();
void main(){
float sueldo; char sexo,sis;
int conte,contm,conth,contis; // contadores
float acuse,acusm,acush,acusis; // acumuladores
conte=contm=conth=contis=acuse=acusm=acush=acusis=0;
titular();
cin >> sueldo;
while(sueldo > 0){
cout << "Sexo(F/M) -> ";
cin >> sexo;
sexo=toupper(sexo); // conversion de minuscula a mayuscula
cout << "Es Ingeniero(a) de Sistemas?(S/N) -> ";
cin >> sis;
conte = conte + 1;
acuse = acuse + sueldo;
if (sexo == 'F'){
acusm=acusm + sueldo;
contm++;}
else{
acush=acush + sueldo;
conth++;}
if (sis == 'S' || sis == 's'){
acusis=acusis + sueldo;
contis++;}
titular();
cin >> sueldo;
}
if (contis > 0)
imprimir(acuse,acusm,acush,acusis,conte,contm,conth,contis);
else
cout << "No se procesaron sueldos!";
getch();
}
void imprimir(float acuse,float acusm,float acush,float acusis,int conte,int contm,int conth,int contis)
{
lp;
cout << "Número de empleados en PenguinSoft Ltda. :"<< conte <<endl;
cout << "Total nomina de la empresa $"<< acuse <<endl;
cout << "Mujeres :"<< contm <<endl;
cout << "Sueldo promedio de mujeres $"<<
promedio(acusm,contm)<<endl;
cout << "Hombres :"<< conth <<endl;
cout << "Sueldo promedio de hombres $"<< promedio(acush,conth)<<endl;
cout << "Ingenieros de Sistemas :"<< contis <<endl;
cout << "Sueldo promedio Ing. de Sistemas $"<<
promedio(acusis,contis)<<endl;
}
float promedio(float acum, int cont) // La funcion recibe copia de valores
{
return(acum/cont); // devuelve el promedio
}
void titular()
{
lp;
cout << "PenguinSoft Ltda."<<endl;
cout << "Sueldos de empleados..." << endl<< endl;
cout << "Digite un $ueldo. Para salir, teclee 0 -> ";
}
--------------------------------------------------------------------
-
Escriba una función Potencia(base, exponente)
que devuelva el valor de base^exponente. Por ejemplo, Potencia(3, 4) =
3 * 3 * 3 * 3. Suponga que exponente es un entero positivo diferente
de cero y que base es un entero. La función Potencia debería
utilizar for o while para controlar el cálculo. No utilice funciones
de la biblioteca matemática.
-
Escriba un programa que acepte como entrada una serie
de enteros y los pase, uno a la vez, a la función ParNon para
determinar si un entero es par. La función deberá devolver 1
si el número es par y 0 si no lo es.
3). Implemente las siguientes funciones: a) La
función Celsius devuelve el equivalente en grados centígrados de una
temperatura Fahrenheit. b) La función Fahrenheit devuelve el
equivalente en grados fahrenheit de una temperatura en grados
centígrados.
4). Un número entero es primo si sólo se puede dividir
entre 1 y entre sí mismo. Por ej. 2, 3, 5, 7... Escriba la función
para determinar si un número es primo.
5). Los computadores juegan cada vez más un papel importante en la
educación. Escriba un programa que ayude a un estudiante de primaria a
aprender a multiplicar. Mediante la función rand genere dos
enteros de un dígito. Después deberá desplegar una pregunta como
¿Cuánto es 3 veces 7?
El estudiante tecleará la respuesta. Su programa deberá
llamar la función Respue para revisar la respuesta. Si es
correcta, imprimir "Muy bien!!!" y presentar otro problema. Si
está equivocada, visualizar "No. Por favor, intente de nuevo!"
y permitir que el estudiante responda la misma pregunta hasta que esté
correcta.

|