SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
1. PROGRAMACION ESTRUCTURADA
Objetivos de Aprendizaje
Al finalizar esta unidad, usted será capaz de:
 Conocer las diferentes estructuras algorítmicas como componentes básicos
de los programas, bajo el Teorema Estructurado.
 Conocer las operaciones elementales de asignación, lectura y escritura.
Contenidos
1.0 Estructuras de Control
1.1 Estructura Secuencial.
1.2 Declaración de Variables y Constantes.
1.3 Asignación.
1.4 Lectura o entrada de datos.
1.5 Escritura o salida de datos.
1.6 Estructura de decisión
1.7 Estructura de Control Iterativas
1.8 Ejercicios Resueltos.
1.9 Ejercicios Propuestos.
Introducción
El principio fundamental de la programación estructurada es que en todo
momento el programador pueda mantener el programa “dentro” de la cabeza. Esto
se consigue con: un diseño descendente del programa, unas estructuras de
control limitadas y un ámbito limitado de las estructuras de datos del programa.
Para realizar un programa estructurado existen tres tipos básicos de
UNIDAD 4
estructuras de control: Secuencial: Ejecuta una sentencia detrás de otra;
Condicional: Se evalúa una expresión y, dependiendo del resultado, se decide la
siguiente sentencia a ejecutar e Iterativa: Repetimos un bloque de sentencias
hasta que sea verdadera una determinada condición.
1.1. ESTRUCTURA SECUENCIAL
La estructura secuencial se caracteriza porque la
ejecución de sentencias se realiza una detrás de la otra. Toda
una estructura secuencial se agrupa entre un inicio y fin.
En la estructura secuencial, una acción (instrucción) sigue a otra en
secuencia. Las tareas se suceden de tal modo que, la salida de una es la entrada
de la siguiente y así sucesivamente hasta el fin del proceso.
En Pseudocódigo una Estructura Secuencial se representa de la siguiente
forma:
Observe el siguiente problema de tipo cotidiano y sus respectivos algoritmos
representados en Pseudocódigo y en diagramas de flujos: Tengo un teléfono y
necesito llamar a alguien pero no sé cómo hacerlo.
El anterior ejemplo es un sencillo algoritmo de un problema cotidiano dado
como muestra de una estructura secuencial. Ahora veremos los componentes que
pertenecen a ella.
1.2. DECLARACIÓN DE VARIABLES Y CONSTANTES
La declaración de variables es un proceso que consiste en listar al principio
del algoritmo todas las variables que se usarán, además de colocar el nombre de
la variable se debe decir qué tipo de variable es.
Ejemplos:
ENTERO contador, edad, I;
CADENA_DE_CARACTERES Direccion;
REAL Salario_Basico;
CARACTER Opción;
En el momento de declarar constantes debe indicarse que lo es y colocarse
su respectivo valor.
Ejemplo:
CONSTANTE Pi 3.14159; en Lenguaje C++ sería #define PI 3.1416;
Cuando se trabaja con algoritmos por lo general no se acostumbra a declarar
las variables ni tampoco constantes debido a razones de simplicidad, es decir, no
es camisa de fuerza declarar las variables. Sin embargo en este curso lo haremos
para todos los algoritmos que realicemos, con esto logramos hacerlos más
entendibles y organizados y de paso permite acostumbrarnos a declararlas ya que
la mayoría de los lenguajes de programación (entre ellos el C++) requieren que
necesariamente se declaren las variables que se van a usar en los programas.
1.3. OPERACIÓN DE ASIGNACIÓN
Es el modo de darle un valor a una variable, el cual puede ser una constante,
otra variable o el resultado de una expresión.
En pseudocódigo la operación de asignación se representa mediante el símbolo
u operador ← para la asignación. En general el formato a utilizar es el siguiente: <
Variable > <valor o expresión >
El símbolo debe leerse “ asigne.
La asignación se puede clasificar de la siguiente forma:
 Simples: Consiste en pasar un valor constante a una variable (a 15)
 Contador: Consiste en usarla como un verificador del número de veces que se
realiza un proceso (a a + 1)
 Acumulador: Consiste en usarla como un sumador en un proceso (a a + b)
 De trabajo: Donde puede recibir el resultado de una operación matemática que
involucre muchas variables (a c + b*2/4).
En el contexto de un lenguaje de programación, a la operación de
asignación, se le llama instrucción o sentencia de asignación, el cual modifica el
estado de la variable.
La notación algorítmica (sintaxis) que utilizaremos para la asignación es:
<nombre de variable> = < constante o variable o expresión >;
Ejemplo:
// Declaración de variables
Caracter Nombre; Entero cociente; Lógico mayor;
// a continuación se le asignaran valores a las variables
Nombre = “Maria”; // a la variable Nombre se le asigna el valor “Maria”
mayor = (1 > 500); // a la variable mayor se le asigna Falso, ya que no se
cumple que 1 > 500
cociente = 5 + 12 div 3; // a la variable cociente se le asigna el valor 9
Reglas de la Asignación
• Una variable en el lado derecho de una sentencia de asignación debe tener un
valor antes de ser usado, en el caso de la anterior la variable Pi debe tener un
valor inicial antes de evaluar la operación Pi * 4. Por ejemplo, si el valor inicial de
Pi = 3,14 la expresión Pi * 4 arroja como resultado 12,56.
• Por el contrario, si a la variable Pi no le damos un valor antes de usarla, la
expresión no puede ser resuelta y por lo tanto no tiene resultado, ya que una de
sus variables (Pi) no está inicializada.
• A la izquierda de una sentencia de asignación sólo pueden existir variables o
constantes, por lo tanto la expresión Total – Deduccion = Sueldo * 0,15 es un
error, ya que a la izquierda no hay una variable sino la expresión Total -
Deduccion.
La expresión sería correcta rescrita como: Total = Sueldo * 0,15 + Deduccion;
1.4. OPERACIÓN DE LECTURA (READ)
La lectura o entrada de datos consiste en recibir desde un dispositivo externo
de entrada (teclado) un valor o dato y asignarlos a constantes o a variables. Este
dato va a ser almacenado en la variable que aparece a continuación de la
instrucción. Esta operación se representa así:
En pseudocódigo usamos la acción Leer para obtener los datos que nos
suministra el usuario del algoritmo, datos necesarios para el procesamiento o
cálculo posterior.
Los datos de entrada se introducen en el computador mediante dispositivos
de entrada (teclado, pantalla, unidades de disco, escáneres, entre otros). La
acción elemental Leer cambia el valor en la variable o variables que se está
usando en la instrucción de lectura. Luego de leer un valor, el valor de la variable
cambia en forma similar a si se hiciera una asignación.
La notación algorítmica (sintaxis) que utilizaremos para la asignación es:
Leer(<Nombre de variable>);
// Declaración de variables
Entero edad; Real i, j Caracter c;
//Acciones de lectura:
Leer(edad); Leer(i, j); Leer(c);
NOTA: Cuando vamos a leer datos suministrados por el usuario, la acción Leer
suele trabajar en conjunto con la acción Escribir, ya que primero le tenemos que
informar al usuario que datos necesita el algoritmo o que datos le estamos
solicitando, para luego leerlos, por ejemplo:
Escribir(“Suministre la edad de los 2 estudiantes”); Leer(edad1, edad2);
Respetando la secuencia lógica de acciones, primero le decimos al usuario que
datos estamos necesitando y luego los leemos.
1.5. OPERACIÓN DE ESCRITURA (WRITE)
Consiste en mandar por un dispositivo de salida (monitor o impresora) un
resultado o mensaje. Esta instrucción permite mostrar el valor de una variable,
constante o expresión, por ejemplo muestra por la pantalla del computador el
mensaje escrito entre comillas o el contenido de la variable. Este proceso se
representa así como sigue:
. Cuando estamos programando la acción Escribir trasmite un valor a un
dispositivo externo. La notación algorítmica (sintaxis) que utilizaremos para la
asignación es:
Escribir(< Nombre Variable, Constante o Expresión>);
Ejemplo:
Entero numero; // se declara la variable
numero = 26; // a la variable numero se le asigna el valor 26
Escribir(“El valor de la variable número es: ” numero ); // se muestra un mensaje
// equivalente a:
// El valor de la variable número es: 26
Estructura condicional -
Cuando se está construyendo un programa, es normal tener que seleccionar un
conjunto de instrucciones entre varias posibles, dependiendo de que se cumpla
o no una determinada condición. Esto se denomina estructura condicional que
presenta las variantes: - Estructura condicional simple En este tipo, si la
condición se cumple, se ejecutan un conjunto de acciones, pero si no se cumple
no se realiza ninguna acción. El pseudocódigo de esta estructura es el
siguiente:
Código:
Si condición
Entonces
Acción-1
Acción-2
..........
Acción-n
Fin_si
Por ejemplo, el problema a resolver consiste en leer por teclado un número,
que se denominará NUM, y si es mayor que 20 visualizarlo en la pantalla.
Código:
Inicio
Leer un número (NUM)
Si NUM > 20
Entonces
Mostrar NUM
Fin_si
Fin
En el ejemplo se señala que si, y sólo si, el valor NUM es mayor que 20 se debe
mostrar este valor; pero si no se cumple la condición no se hace nada. -
Estructura condicional doble En este tipo se ejecutará un bloque de
instrucciones u otro, dependiendo de que la condición sea cierta o falsa. El
presudocódigo de esta variante es:
Código:
Si condición
Entonces
Acción-1
Acción-2
.....
Acción-n
Si no
Acción-A
Acción-B
.....
Acción-Z
Fin_si
Por ejemplo: seleccionar y visualizar el mayor de dos números leídos.
Código:
Inicio
Leer A y B
Si A > B
Entonces
Mostrar "El Mayor es:" A
Si no
Mostrar "El Mayor es:" B
Fin_si
Fin
El problema es sencillo: primero se leen los dos números A y B. Si A es mayor
que B entonces se visualiza en la pantalla el texto "El Mayor es:" y a
continuación el valor de A. Y en caso contrario, es decir, si A no es mayor que B,
se visualiza el texto "El Mayor es:" seguido del valor de B. El programa así
diseñado es ilustrativo, pero no es totalmente correcto debido a que ambos
números pueden ser iguales, y no contempla esta opción, que se comentará
posteriormente. - Estructura condicional múltiple En este caso, dependiendo del
valor que tome la variable númerica que controla la condición, se ejecutará una
de las n acciones posibles definidas en la estructura. El pseudocódigo de esta
variante es el siguiente:
Código:
Según condición
= 1 Acción-1
= 2 Acción-2
.....
= n Acción-n
Fin_según
Por ejemplo: leer desde el teclado un valor numérico, denominado NUM-
CARTA, asociado a una carta de una baraja (del 1 al 12), y mostrar en pantalla
el nombre de la carta asociado a ese número.
Código:
Inicio
Leer NUM-CARTA
Según NUM-CARTA
= 1 Mostrar "As"
= 2 Mostrar "Dos"
..........
= 12 Mostrar "Rey"
Fin_según
Fin
En primer lugar, se lee un número de la carta y, a continuación, dependiendo
del valor de la variable NUM-CARTA se mostrará el nombre de la carta. Las
estructuras condicionales múltiples derivan de las estructuras condicionales
dobles de tipo anidado, es decir, cuando la parte "si no" de una estructura
condicional doble se transforma en otra estructura condicional. Así, el ejemplo
de seleccionar y visualizar el mayor de dos números dados debería quedar
programado, teniendo en cuenta que pueden ser iguales, como sigue:
Código:
Inicio
Leer A y B
Si A > B
Entonces
Mostrar "El Mayor es:" A
Si no
Si A < B
Entonces
Mostrar "El Mayor es:" B
Si no
Mostrar "A y B son iguales"
Fin_si
Fin
El programa lee dos números A y B, si A es mayor que B muestra A como el
mayor, si no pregunta si A es menor que B y en caso afirmativo muestra B como
el mayor. Pero si no se cumplen ninguna de las dos condiciones quiere decir
que ambos números son iguales. Transformado en una "estructura condicional
múltiple" sería de la forma:
Código:
Inicio
Leer A y B
Según Comparación (A,B)
= 1 Mostrar "El Mayor es:" A
=-1 Mostrar "El Mayor es:" B
= 0 Mostrar "A y B son iguales"
Fin_según
Fin
En este caso, se compara A con B mediante la función Comparación (A,B) que
devuelve el valor 1,-1,0 según sea el resultado de comparar A con B. Si el
resultado de la comparación es igual a 1 quiere decir que A > B, si es -1 indica
que A < B y si es 0, señala que A y B son iguales.
- Estructura repetitiva - En un programa es normal tener que ejecutar
repetidamente un conjunto de instrucciones, dependiendo de que sea cierta o
no una condición. La condición se conoce como "condición de salida" y la
instrucción se denomina "repetitiva" o "de bucle". Existen tres versiones: -
Estructura tipo Mientras.
- Estructura tipo Hasta.
- Estructura tipo Para.
- Estructura tipo Mientras
En este tipo, el bloque de instrucciones (acciones) se repetirá mientras que la
condición sea cierta. La condición se evalúa al comienzo de la estructura. Esto
implica que el bloque de instrucciones puede no ejecutarse ninguna vez si la
condición de salida es inicialmente falsa. El pseudocódigo de esta estructura es
de la forma:
Código:
Mientras Condición
Acción-1
Acción-2
..........
Acción-n
Fin_mientras
Por ejemplo: una empresa tienen grabados los datos personales de sus
empleados. se desea imprimir el nombre de aquellos empleados mayores de 55
años.
Código:
Inicio
Leer Empleado
Mientras Haya-Empleado
Si Empleado-Edad > 55
Entonces
Mostrar Empleado
Fin_si
Leer Empleado
Fin_mientras
Fin
En primer lugar, se leen los datos de un empleado, a continuación se evalúa la
condición de salida (Haya-Empleado), preguntando si existen empleados. Si la
condición es cierta, porque realmente se han leído los datos de un empleado,
entonces se comprueba, con una estructura condicional simple, si la edad del
empleado es mayor de 55 años, si lo es se muestra el nombre del empleado.
Después se vuelve a leer otro empleado y se retorna a la evaluación de la
condición salida del bucle, cuya finalización se realiza cuando no existan más
empleado. Obsérvese que si en la primera lectura no hay empleados, el bucle
Mientras no se realizará nunca, ya que se comprueba la condición al principio
de la estructura Mientras y, sólo si es cierta, se entra en ello.
- Estructura tipo Hasta
En este tipo, el bloque de acciones se repetirá hasta que la condición sea cierta.
Dicha condición se evalúa al final de la estructura. Esto implica que el bloque de
instrucciones se ejecutará al menos una vez, aunque la condición de salida ya
sea cierta al entrar en dicha estructura. La diferencia fundamental entre ambas
estructuras repetitivas es que, en el primer tipo (tipo Mientras), las acciones del
bucle no se realizan nunca si la condición de salida del mismo es inicialmente
falsa. Por el contrario, las acciones del bucle, en el segundo tipo (tipo Hasta), se
realizarán al menos una vez, ya que la condición se evalúa después de haber
sido realizadas dichas acciones. El pseudocódigo para esta estructura es:
Código:
Repetir
Acción-1
Acción-2
......
Acción-n
Hasta Condición de Fin_repetir
Por ejemplo: "Visualizar la tabla de multiplicar del número 4"
Código:
Inicio
CONT = 0
Repetir
CONT = CONT + 1
PROD = CONT * 4
Mostrar PROD
Hasta CONT = 10
Fin
Para resolver este problema se necesitan dos variables: CONT, que es un
contador que almacena cuantos números se han visualizado (es la variable que
contiene la condición de salida del bucle); y PROD, que almacena el valor del
número a mostrar y que corresponde a los números de la tabla.
- Estructura tipo Para
Si el número de repeticiones del bucle (iteraciones) es fijo o se conoce de
antemano, se puede utilizar una estructura tipo "Para", en lugar de una
estructura tipo "Mientras". La estructura "Para" indica que las acciones del bucle
se realizan un número específico de veces y que la estructura controla
automáticamente el número de repeticiones. Para dicho control hay que definir
dentro de la estructura el nombre de una variable, su valor inicial, su valor final y
un incremento fijo. Ello quiere decir que inicialmente el bloque de acciones se
ejecuta con el valor inicial de la variable, incrementándose este valor en cada
iteración con el valor del incremento y finalizan las iteraciones cuando el valor
de la variable sobrepasa su valor final. La evaluación de la condición de salida
se realiza al comienzo de cada iteración. El pseudocódigo de este tipo de
estructura es el siguiente:
Código:
Para VAR desde V1 hasta V2 incremento V3
Acción-1
Acción-2
.....
Acción-n
Fin_para
Por ejemplo: "Construir un programa en pseudocódigo estructurado que calcule
la suma de los números comprendidos entre 1 y 100, ambos inclusive"
Código:
Inicio
SUMA = 0
Para NUM desde 1 hasta 100
SUMA = SUMA + NUM
Fin_para
Mostrar SUMA
Fin
En el ejemplo se utiliza la variable SUMA para almacenar la suma de los 100
primeros números y la variable NUM para controlar el bucle. Éste empieza en 1
y llega hasta 100 con incremento 1, y cuando NUM sobrepasa el valor 100,
indica que ya se han sumado todos los números, con lo que el bucle tipo "Para"
termina y en SUMA se tendrá el valor buscado. La diferencia fundamental entre
los tipos "Mientras" y "Para" radica en que en la estructura "Mientras" hay que
realizar, mediante instrucciones, la inicialización de la variable que controla el
bucle y su incremento; mientras que en la estructura "Para" esto se hace
automáticamente. Así el ejemplo anterior desarrollado con una estructura del
tipo Mientras daría lugar al siguiente código:
Código:
Inicio
SUMA = 0
NUM = 1
Mientras NUM <= 100
SUMA = SUMA + NUM
NUM = NUM + 1
Fin_mientras
Mostrar SUMA
Fin
Obsérvese que en el código anterior hay que incorporar la instrucción de
inicialización de NUM (NUM=1), y de incremento (NUM=NUM 1), cosa que no hizo
falta en la estructura "Para". Pero recuérdese que la estructura "Para" sólo es
aplicable cuando se conoce a priori el número de repeticiones del bucle, es decir
el valor V3 de la variable VAR.
1.6. EJERCICIOS RESUELTOS
Estructura Secuencial
a. Escriba un algoritmo que pregunte por dos números y muestre como resultado la suma de
estos. Use Pseudocódigo y diagrama de flujos.
b. Escriba un algoritmo que permita conocer el área de un triángulo a partir de la base y la
altura. Exprese el algoritmo usando Pseudocódigo y diagrama de flujos.
c. Elaborar un diagrama que permita leer dos números, realizar las cuatro operaciones
fundamentales y visualice sus resultados.
Diagrama de flujo
Pseudocódigo
Inicializamos
A,B,S,R,M: ENTERO
D: REAL
Escriba “Diga dos número”
Lea A, B
S ← A+ B
R← A – B
Inicio
A, B
S = A + B
R = A – B
M = A * B
D = A / B
S, R, M, D
M← A * B
D ← A / B
Escriba “Los resultados son:”,
S, R, M, D
Fin
Traza del Algoritmo
Inicializamos
Diga dos número
6, 3
S = 6 + 3
R = 6 – 3
M = 6 * 3
D = 6 / 3
Los resultados son: 9, 3, 18, 2
Fin
d. El dueño de una tienda compra un artículo a un precio determinado, obtener el precio en
que debe vender para conseguir una ganancia del 30%.
Diagrama de flujo
Pseudocódigo
Inicializamos
PD, PV: REAL
Escriba “Diga el Precio”
Lea PD
PV ← (PD * 30 / 100) + PD
Escriba “El precio de venta
para obtener el 30% de
ganancia es:”, PV
Fin
Traza del Algoritmo
INICIO
PD
PV = (PD*30/100)+PD
PV
FIN
Inicializamos
Diga el Precio
130
PV = (130 * 30 / 100) + 130
El precio de venta para
obtener el 30% de ganancia es:
169
Fin
e. Calcular el nuevo salario de un obrero si obtuvo un incremento del 25% sobre su salario
anterior.
Diagrama de flujo
Pseudocódigo
Inicializamos
SA, INC, NS: REAL
Escriba “Diga el Salario”
Lea SA
INC = SA * 25 / 100
NS = SA + INC
Escriba “El incremento es de:”,
INC
Escriba “El nuevo salario es
de:”, NS
FIN
Traza del Algoritmo
Inicializamos
INICIO
SA
INC = SA * 25/100
NS = SA + INC
INC, NS
FIN
Diga el salario
120
Inc = 120 * 25 / 100
NS = 120 + 30
El incremento es de: 30
El nuevo salario es de: 150
Fin
Estructura condicional
Estructura repetitiva
Lenguaje de Programación C++
. Antecedentes
C es un lenguaje de programación creado en 1969 por Ken Thompson y Dennis
M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B. Al igual
que B, es un lenguaje orientado a la implementación de Sistemas Operativos,
concretamente Unix. C es apreciado por la eficiencia del código que produce y es
el lenguaje de programación más popular para crear software de sistemas, aunque
también se utiliza para crear aplicaciones.
Se trata de un lenguaje débilmente tipado de medio nivel pero con muchas
características de bajo nivel. Es necesario aclarar que un lenguaje fuertemente
tipado: es un lenguaje en el que los tipos de datos se mantienen siempre. Java y
Python son fuertemente tipados. Si se tiene un entero, no se le puede tratar como
una cadena sin convertirlo explícitamente.
Lenguaje débilmente tipado es un lenguaje en el que los tipos pueden ignorarse; lo
contrario de fuertemente tipado. VBScript es débilmente tipado. En VBScript, se
puede concatenar la cadena '12' con el entero 3 para obtener la cadena '123', y
después tratarla como el entero 123, todo ello sin conversión explícita.
. Filosofía
Es muy posible escribir C a bajo nivel de abstracción; de hecho, C se usó como
intermediario entre diferentes lenguajes. En parte a causa de ser de relativamente
bajo nivel y de tener un conjunto de características modesto, se pueden
desarrollar compiladores de C fácilmente.
C tiene las siguientes características de importancia:
• Un núcleo del lenguaje simple, con funcionalidades añadidas importantes,
como funciones matemáticas y de manejo de ficheros, proporcionadas por
bibliotecas.
• Es un lenguaje muy flexible que permite programar con múltiples estilos.
Uno de los más empleados es el estructurado.
• Un sistema de tipos que impide operaciones sin sentido.
• Usa un lenguaje de preprocesado, el preprocesador de C, para tareas como
definir macros e incluir múltiples ficheros de código fuente.
• Acceso a memoria de bajo nivel mediante el uso de punteros.
• Un conjunto reducido de palabras clave.
• Los parámetros se pasan por valor. El paso por referencia se puede simular
pasando explícitamente el valor de los punteros.
• Punteros a funciones y variables estáticas, que permiten una forma
rudimentaria de encapsulado y polimorfismo.
• Tipos de datos agregados (struct) que permiten que datos relacionados se
combinen y se manipulen como un todo.
C es más eficiente que otros lenguajes. Típicamente, sólo la programación
cuidadosa en lenguaje ensamblador produce un código más rápido, pues da
control total sobre la máquina, aunque los avances en los compiladores de C y la
complejidad creciente de los procesadores modernos han reducido gradualmente
esta diferencia. En 1973, el lenguaje C se había vuelto tan potente que la mayor
parte del kernel Unix, originalmente escrito en el lenguaje ensamblador PDP11/20,
fue reescrita en C. Éste fue uno de los primeros núcleos de sistema operativo
implementados en un lenguaje distinto al ensamblador.
1.7. EJERCICIOS PROPUESTOS
Estructura Secuencial
Diseña algoritmos que resuelvan los siguientes problemas:
a. Diseñe un algoritmo que pregunte la edad y luego la muestre en pantalla.
b. Realizar un algoritmo que calcule la edad de una persona.
c. Convertir 125 metros a centímetros
d. Suponga que un individuo desea invertir su capital en un banco y desea saber cuánto
dinero ganará después de un mes si el banco paga a razón de 2% mensual.
e. Un vendedor recibe un sueldo base más un 10% extra por comisión de sus ventas, el
vendedor desea saber cuánto dinero obtendrá por concepto de comisiones por las tres
ventas que realiza en el mes y el total que recibirá en el mes tomando en cuenta su
sueldo base y comisiones.
f. Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente
desea saber cuánto deberá pagar finalmente por su compra.
g. Un alumno desea saber cuál será su calificación final en la materia de Algorítmica y
Programación. Dicha calificación se compone de los siguientes porcentajes:
h. 55% del promedio de sus tres calificaciones parciales.
i. 30% de la calificación del examen final.
j. 15% de la calificación de un trabajo final
k. Un maestro desea saber qué porcentaje de hombres y que porcentaje de mujeres hay
en un grupo de estudiantes.
l. La Sra. López realizó sus compras en un conocido supermercado, en dicha tienda el
precio del kilo de arroz es de Bs 8.75, el kilo de azúcar cuesta Bs 5.55 y el kilo de café vale
Bs 14.25. Si la Sra. López compró dos kilos de arroz, un kilo de azúcar y medio kilo de
café. Calcule cuánto gastó la Sra. López en total.
m. Hacer un algoritmo para calcular el promedio de calificaciones de un estudiante, dando
como datos de entrada el nombre y las cuatro calificaciones obtenidas en los exámenes. La
información de salida requerida es el nombre y el promedio de las calificaciones (el
promedio se obtiene sumando las cuatro calificaciones y dividiéndolas entre 4).
n. Dada una cantidad en bolívares, obtener la equivalencia en dólares, asumiendo que la
unidad cambiaría es un dato desconocido.
o. Calcular el nuevo salario de un obrero si obtuvo un incremento del 50% sobre su
salario anterior.
p. El dueño de una tienda compra un artículo a un precio determinado. Obtener el
precio en que lo debe vender para obtener una ganancia del 40%.
q. Tres personas deciden invertir su dinero para fundar una empresa. Cada una de ellas
invierte una cantidad distinta. Obtener el porcentaje que cada quien invierte con
respecto a la cantidad total invertida.
r. Calcular el número de estudiantes eximidos de la unidad curricular Algorítmica si el
porcentaje de estos corresponde a un 25% del total de estudiantes inscritos en la sección y
mostrarle al profesor cuantos participantes se eximen y cuantos no eximen .
s. Convertir una cantidad de segundos, suministrados como un valor entero positivo, a
minutos y a horas.
Guia didactica programacion estructurada unidad 4

Más contenido relacionado

La actualidad más candente

Unidad 03 variables, constantes y operadores
Unidad 03   variables, constantes y operadoresUnidad 03   variables, constantes y operadores
Unidad 03 variables, constantes y operadores
Lorenzo Alejo
 
Ejercicios Whule y Do While
Ejercicios Whule y Do WhileEjercicios Whule y Do While
Ejercicios Whule y Do While
Joshe Varillas
 
Jumping statements
Jumping statementsJumping statements
Jumping statements
Suneel Dogra
 

La actualidad más candente (20)

Pseint
PseintPseint
Pseint
 
Guía de algoritmos teoría
Guía de algoritmos teoríaGuía de algoritmos teoría
Guía de algoritmos teoría
 
Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
Unit 1 python (2021 r)
Unit 1 python (2021 r)Unit 1 python (2021 r)
Unit 1 python (2021 r)
 
Java Decision Control
Java Decision ControlJava Decision Control
Java Decision Control
 
Medidas de tendencia central
Medidas de tendencia centralMedidas de tendencia central
Medidas de tendencia central
 
Estructura de Lenguaje C++
Estructura de Lenguaje C++Estructura de Lenguaje C++
Estructura de Lenguaje C++
 
Arrays in c unit iii chapter 1 mrs.sowmya jyothi
Arrays in c unit iii chapter 1 mrs.sowmya jyothiArrays in c unit iii chapter 1 mrs.sowmya jyothi
Arrays in c unit iii chapter 1 mrs.sowmya jyothi
 
Unidad 03 variables, constantes y operadores
Unidad 03   variables, constantes y operadoresUnidad 03   variables, constantes y operadores
Unidad 03 variables, constantes y operadores
 
Curso de Python
Curso de PythonCurso de Python
Curso de Python
 
Algoritmos, dfd, pseudocodigo
Algoritmos, dfd, pseudocodigoAlgoritmos, dfd, pseudocodigo
Algoritmos, dfd, pseudocodigo
 
Tema 1-2 identificadores - variable y constante
Tema 1-2 identificadores - variable y constanteTema 1-2 identificadores - variable y constante
Tema 1-2 identificadores - variable y constante
 
Algoritmos secuenciales resueldos
Algoritmos  secuenciales resueldosAlgoritmos  secuenciales resueldos
Algoritmos secuenciales resueldos
 
11 Funciones
11 Funciones11 Funciones
11 Funciones
 
Qué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSQué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOS
 
Ejercicios Whule y Do While
Ejercicios Whule y Do WhileEjercicios Whule y Do While
Ejercicios Whule y Do While
 
Tipo de dato DOUBLE
Tipo de dato DOUBLETipo de dato DOUBLE
Tipo de dato DOUBLE
 
Manual de raptor
Manual de raptorManual de raptor
Manual de raptor
 
Jumping statements
Jumping statementsJumping statements
Jumping statements
 

Similar a Guia didactica programacion estructurada unidad 4

Estructura Secuencial
Estructura SecuencialEstructura Secuencial
Estructura Secuencial
Regina Flores
 
ESTRUCTURA DE CONTROLYoselyn garcia trabajo
ESTRUCTURA DE CONTROLYoselyn garcia trabajoESTRUCTURA DE CONTROLYoselyn garcia trabajo
ESTRUCTURA DE CONTROLYoselyn garcia trabajo
DANNYOSE
 
INTRODUCCIÓN ADSI - PARTE 3
INTRODUCCIÓN ADSI - PARTE 3INTRODUCCIÓN ADSI - PARTE 3
INTRODUCCIÓN ADSI - PARTE 3
thefasp10
 
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -1.pdf
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -1.pdfTRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -1.pdf
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -1.pdf
AndresAranda22
 
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdfTRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
NicolHenao2
 
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdfTRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
camilaviafara3
 
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdfTRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
juanmanuellopeztarap
 
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdfTRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
sharonardila478
 
Introducci+¦n a los algoritmos1
Introducci+¦n a los algoritmos1Introducci+¦n a los algoritmos1
Introducci+¦n a los algoritmos1
Joaquin1418
 

Similar a Guia didactica programacion estructurada unidad 4 (20)

Guía didáctica estructura secuenciales
Guía didáctica estructura secuencialesGuía didáctica estructura secuenciales
Guía didáctica estructura secuenciales
 
Trabajo final programacion
Trabajo final programacionTrabajo final programacion
Trabajo final programacion
 
Algoritmos secuenciales
Algoritmos secuencialesAlgoritmos secuenciales
Algoritmos secuenciales
 
Sophia leonzio tarea4
Sophia leonzio tarea4Sophia leonzio tarea4
Sophia leonzio tarea4
 
Estructura Secuencial
Estructura SecuencialEstructura Secuencial
Estructura Secuencial
 
ESTRUCTURA DE CONTROLYoselyn garcia trabajo
ESTRUCTURA DE CONTROLYoselyn garcia trabajoESTRUCTURA DE CONTROLYoselyn garcia trabajo
ESTRUCTURA DE CONTROLYoselyn garcia trabajo
 
Estructuras de control algoritmos dq
Estructuras de control algoritmos   dqEstructuras de control algoritmos   dq
Estructuras de control algoritmos dq
 
INTRODUCCIÓN ADSI - PARTE 3
INTRODUCCIÓN ADSI - PARTE 3INTRODUCCIÓN ADSI - PARTE 3
INTRODUCCIÓN ADSI - PARTE 3
 
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -1.pdf
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -1.pdfTRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -1.pdf
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -1.pdf
 
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdfTRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
 
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdfTRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
 
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdfTRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
 
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdfTRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
TRABAJO SOBRE LOS CONCEPTOS BASICOS DE PROGRAMACION 10-1 -2.pdf
 
Introduccion a los algoritmos parte 1
Introduccion a los algoritmos parte    1Introduccion a los algoritmos parte    1
Introduccion a los algoritmos parte 1
 
Introducci+¦n a los algoritmos1
Introducci+¦n a los algoritmos1Introducci+¦n a los algoritmos1
Introducci+¦n a los algoritmos1
 
Informe de pseint
Informe de pseintInforme de pseint
Informe de pseint
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
algortimos
algortimosalgortimos
algortimos
 
Algortimos jury
Algortimos juryAlgortimos jury
Algortimos jury
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 

Más de Sol Hernández

Planificacion de entregables proyecto ii fase 1 2021
Planificacion de entregables  proyecto ii  fase 1 2021Planificacion de entregables  proyecto ii  fase 1 2021
Planificacion de entregables proyecto ii fase 1 2021
Sol Hernández
 

Más de Sol Hernández (20)

Linea de tiempo sol loyo12
Linea de tiempo sol loyo12Linea de tiempo sol loyo12
Linea de tiempo sol loyo12
 
Linea de tiempo sol loyo
Linea de tiempo sol loyoLinea de tiempo sol loyo
Linea de tiempo sol loyo
 
Ejerreueltos de c
Ejerreueltos de cEjerreueltos de c
Ejerreueltos de c
 
Guia programacion modular
Guia programacion modularGuia programacion modular
Guia programacion modular
 
Santaella u6 programacionmodular (1)
Santaella u6 programacionmodular (1)Santaella u6 programacionmodular (1)
Santaella u6 programacionmodular (1)
 
Lenguaje c sintaxis
Lenguaje c sintaxisLenguaje c sintaxis
Lenguaje c sintaxis
 
331985319 santaella u5-lenguajedeprogramacionc
331985319 santaella u5-lenguajedeprogramacionc331985319 santaella u5-lenguajedeprogramacionc
331985319 santaella u5-lenguajedeprogramacionc
 
Replanificacion de entregables proyecto ii fase 1 2021
Replanificacion de entregables  proyecto ii  fase 1 2021Replanificacion de entregables  proyecto ii  fase 1 2021
Replanificacion de entregables proyecto ii fase 1 2021
 
Lineamientos academicos pstii pnfi 2021
Lineamientos academicos  pstii pnfi 2021Lineamientos academicos  pstii pnfi 2021
Lineamientos academicos pstii pnfi 2021
 
Plan evaluacion 1-2021reprogramada
Plan evaluacion 1-2021reprogramadaPlan evaluacion 1-2021reprogramada
Plan evaluacion 1-2021reprogramada
 
Santaella u5 ejerciciosestructurasdecontrol
Santaella u5 ejerciciosestructurasdecontrolSantaella u5 ejerciciosestructurasdecontrol
Santaella u5 ejerciciosestructurasdecontrol
 
Lineamientos academicos pstii pnfi 2021
Lineamientos academicos  pstii pnfi 2021Lineamientos academicos  pstii pnfi 2021
Lineamientos academicos pstii pnfi 2021
 
Planificacion de entregables proyecto ii fase 1 2021
Planificacion de entregables  proyecto ii  fase 1 2021Planificacion de entregables  proyecto ii  fase 1 2021
Planificacion de entregables proyecto ii fase 1 2021
 
Plan evaluacion 1-2021ultimo2.docx
Plan evaluacion 1-2021ultimo2.docxPlan evaluacion 1-2021ultimo2.docx
Plan evaluacion 1-2021ultimo2.docx
 
Informe pstii 2020 (1)
Informe pstii 2020 (1)Informe pstii 2020 (1)
Informe pstii 2020 (1)
 
Planificacion de entregables proyecto ii fase 1
Planificacion de entregables  proyecto ii  fase 1Planificacion de entregables  proyecto ii  fase 1
Planificacion de entregables proyecto ii fase 1
 
Clase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemasClase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemas
 
Clase de datos variables constantes
Clase de datos variables constantesClase de datos variables constantes
Clase de datos variables constantes
 
331161221 santaella u2-estandaresenedisenodealgoritmos
331161221 santaella u2-estandaresenedisenodealgoritmos331161221 santaella u2-estandaresenedisenodealgoritmos
331161221 santaella u2-estandaresenedisenodealgoritmos
 
Plan evaluacion 1-2021ultimo
Plan evaluacion 1-2021ultimoPlan evaluacion 1-2021ultimo
Plan evaluacion 1-2021ultimo
 

Último

NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 

Último (20)

Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Diapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundariaDiapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundaria
 
semana 4 9NO Estudios sociales.pptxnnnn
semana 4  9NO Estudios sociales.pptxnnnnsemana 4  9NO Estudios sociales.pptxnnnn
semana 4 9NO Estudios sociales.pptxnnnn
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 

Guia didactica programacion estructurada unidad 4

  • 1. 1. PROGRAMACION ESTRUCTURADA Objetivos de Aprendizaje Al finalizar esta unidad, usted será capaz de:  Conocer las diferentes estructuras algorítmicas como componentes básicos de los programas, bajo el Teorema Estructurado.  Conocer las operaciones elementales de asignación, lectura y escritura. Contenidos 1.0 Estructuras de Control 1.1 Estructura Secuencial. 1.2 Declaración de Variables y Constantes. 1.3 Asignación. 1.4 Lectura o entrada de datos. 1.5 Escritura o salida de datos. 1.6 Estructura de decisión 1.7 Estructura de Control Iterativas 1.8 Ejercicios Resueltos. 1.9 Ejercicios Propuestos. Introducción El principio fundamental de la programación estructurada es que en todo momento el programador pueda mantener el programa “dentro” de la cabeza. Esto se consigue con: un diseño descendente del programa, unas estructuras de control limitadas y un ámbito limitado de las estructuras de datos del programa. Para realizar un programa estructurado existen tres tipos básicos de UNIDAD 4
  • 2. estructuras de control: Secuencial: Ejecuta una sentencia detrás de otra; Condicional: Se evalúa una expresión y, dependiendo del resultado, se decide la siguiente sentencia a ejecutar e Iterativa: Repetimos un bloque de sentencias hasta que sea verdadera una determinada condición. 1.1. ESTRUCTURA SECUENCIAL La estructura secuencial se caracteriza porque la ejecución de sentencias se realiza una detrás de la otra. Toda una estructura secuencial se agrupa entre un inicio y fin. En la estructura secuencial, una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que, la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. En Pseudocódigo una Estructura Secuencial se representa de la siguiente forma:
  • 3. Observe el siguiente problema de tipo cotidiano y sus respectivos algoritmos representados en Pseudocódigo y en diagramas de flujos: Tengo un teléfono y necesito llamar a alguien pero no sé cómo hacerlo. El anterior ejemplo es un sencillo algoritmo de un problema cotidiano dado como muestra de una estructura secuencial. Ahora veremos los componentes que pertenecen a ella. 1.2. DECLARACIÓN DE VARIABLES Y CONSTANTES La declaración de variables es un proceso que consiste en listar al principio del algoritmo todas las variables que se usarán, además de colocar el nombre de la variable se debe decir qué tipo de variable es. Ejemplos: ENTERO contador, edad, I; CADENA_DE_CARACTERES Direccion; REAL Salario_Basico; CARACTER Opción; En el momento de declarar constantes debe indicarse que lo es y colocarse su respectivo valor.
  • 4. Ejemplo: CONSTANTE Pi 3.14159; en Lenguaje C++ sería #define PI 3.1416; Cuando se trabaja con algoritmos por lo general no se acostumbra a declarar las variables ni tampoco constantes debido a razones de simplicidad, es decir, no es camisa de fuerza declarar las variables. Sin embargo en este curso lo haremos para todos los algoritmos que realicemos, con esto logramos hacerlos más entendibles y organizados y de paso permite acostumbrarnos a declararlas ya que la mayoría de los lenguajes de programación (entre ellos el C++) requieren que necesariamente se declaren las variables que se van a usar en los programas. 1.3. OPERACIÓN DE ASIGNACIÓN Es el modo de darle un valor a una variable, el cual puede ser una constante, otra variable o el resultado de una expresión. En pseudocódigo la operación de asignación se representa mediante el símbolo u operador ← para la asignación. En general el formato a utilizar es el siguiente: < Variable > <valor o expresión > El símbolo debe leerse “ asigne. La asignación se puede clasificar de la siguiente forma:  Simples: Consiste en pasar un valor constante a una variable (a 15)  Contador: Consiste en usarla como un verificador del número de veces que se realiza un proceso (a a + 1)  Acumulador: Consiste en usarla como un sumador en un proceso (a a + b)  De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas variables (a c + b*2/4). En el contexto de un lenguaje de programación, a la operación de asignación, se le llama instrucción o sentencia de asignación, el cual modifica el estado de la variable. La notación algorítmica (sintaxis) que utilizaremos para la asignación es: <nombre de variable> = < constante o variable o expresión >; Ejemplo: // Declaración de variables
  • 5. Caracter Nombre; Entero cociente; Lógico mayor; // a continuación se le asignaran valores a las variables Nombre = “Maria”; // a la variable Nombre se le asigna el valor “Maria” mayor = (1 > 500); // a la variable mayor se le asigna Falso, ya que no se cumple que 1 > 500 cociente = 5 + 12 div 3; // a la variable cociente se le asigna el valor 9 Reglas de la Asignación • Una variable en el lado derecho de una sentencia de asignación debe tener un valor antes de ser usado, en el caso de la anterior la variable Pi debe tener un valor inicial antes de evaluar la operación Pi * 4. Por ejemplo, si el valor inicial de Pi = 3,14 la expresión Pi * 4 arroja como resultado 12,56. • Por el contrario, si a la variable Pi no le damos un valor antes de usarla, la expresión no puede ser resuelta y por lo tanto no tiene resultado, ya que una de sus variables (Pi) no está inicializada.
  • 6. • A la izquierda de una sentencia de asignación sólo pueden existir variables o constantes, por lo tanto la expresión Total – Deduccion = Sueldo * 0,15 es un error, ya que a la izquierda no hay una variable sino la expresión Total - Deduccion. La expresión sería correcta rescrita como: Total = Sueldo * 0,15 + Deduccion; 1.4. OPERACIÓN DE LECTURA (READ) La lectura o entrada de datos consiste en recibir desde un dispositivo externo de entrada (teclado) un valor o dato y asignarlos a constantes o a variables. Este dato va a ser almacenado en la variable que aparece a continuación de la instrucción. Esta operación se representa así: En pseudocódigo usamos la acción Leer para obtener los datos que nos suministra el usuario del algoritmo, datos necesarios para el procesamiento o cálculo posterior. Los datos de entrada se introducen en el computador mediante dispositivos de entrada (teclado, pantalla, unidades de disco, escáneres, entre otros). La acción elemental Leer cambia el valor en la variable o variables que se está usando en la instrucción de lectura. Luego de leer un valor, el valor de la variable cambia en forma similar a si se hiciera una asignación. La notación algorítmica (sintaxis) que utilizaremos para la asignación es: Leer(<Nombre de variable>); // Declaración de variables Entero edad; Real i, j Caracter c; //Acciones de lectura: Leer(edad); Leer(i, j); Leer(c); NOTA: Cuando vamos a leer datos suministrados por el usuario, la acción Leer
  • 7. suele trabajar en conjunto con la acción Escribir, ya que primero le tenemos que informar al usuario que datos necesita el algoritmo o que datos le estamos solicitando, para luego leerlos, por ejemplo: Escribir(“Suministre la edad de los 2 estudiantes”); Leer(edad1, edad2); Respetando la secuencia lógica de acciones, primero le decimos al usuario que datos estamos necesitando y luego los leemos. 1.5. OPERACIÓN DE ESCRITURA (WRITE) Consiste en mandar por un dispositivo de salida (monitor o impresora) un resultado o mensaje. Esta instrucción permite mostrar el valor de una variable, constante o expresión, por ejemplo muestra por la pantalla del computador el mensaje escrito entre comillas o el contenido de la variable. Este proceso se representa así como sigue: . Cuando estamos programando la acción Escribir trasmite un valor a un dispositivo externo. La notación algorítmica (sintaxis) que utilizaremos para la asignación es: Escribir(< Nombre Variable, Constante o Expresión>); Ejemplo: Entero numero; // se declara la variable numero = 26; // a la variable numero se le asigna el valor 26 Escribir(“El valor de la variable número es: ” numero ); // se muestra un mensaje // equivalente a: // El valor de la variable número es: 26
  • 8. Estructura condicional - Cuando se está construyendo un programa, es normal tener que seleccionar un conjunto de instrucciones entre varias posibles, dependiendo de que se cumpla o no una determinada condición. Esto se denomina estructura condicional que presenta las variantes: - Estructura condicional simple En este tipo, si la condición se cumple, se ejecutan un conjunto de acciones, pero si no se cumple no se realiza ninguna acción. El pseudocódigo de esta estructura es el siguiente: Código: Si condición Entonces Acción-1 Acción-2 .......... Acción-n Fin_si Por ejemplo, el problema a resolver consiste en leer por teclado un número, que se denominará NUM, y si es mayor que 20 visualizarlo en la pantalla. Código: Inicio Leer un número (NUM) Si NUM > 20 Entonces Mostrar NUM Fin_si Fin En el ejemplo se señala que si, y sólo si, el valor NUM es mayor que 20 se debe mostrar este valor; pero si no se cumple la condición no se hace nada. - Estructura condicional doble En este tipo se ejecutará un bloque de instrucciones u otro, dependiendo de que la condición sea cierta o falsa. El
  • 9. presudocódigo de esta variante es: Código: Si condición Entonces Acción-1 Acción-2 ..... Acción-n Si no Acción-A Acción-B ..... Acción-Z Fin_si Por ejemplo: seleccionar y visualizar el mayor de dos números leídos. Código: Inicio Leer A y B Si A > B Entonces Mostrar "El Mayor es:" A Si no Mostrar "El Mayor es:" B Fin_si Fin El problema es sencillo: primero se leen los dos números A y B. Si A es mayor que B entonces se visualiza en la pantalla el texto "El Mayor es:" y a continuación el valor de A. Y en caso contrario, es decir, si A no es mayor que B, se visualiza el texto "El Mayor es:" seguido del valor de B. El programa así diseñado es ilustrativo, pero no es totalmente correcto debido a que ambos números pueden ser iguales, y no contempla esta opción, que se comentará
  • 10. posteriormente. - Estructura condicional múltiple En este caso, dependiendo del valor que tome la variable númerica que controla la condición, se ejecutará una de las n acciones posibles definidas en la estructura. El pseudocódigo de esta variante es el siguiente: Código: Según condición = 1 Acción-1 = 2 Acción-2 ..... = n Acción-n Fin_según Por ejemplo: leer desde el teclado un valor numérico, denominado NUM- CARTA, asociado a una carta de una baraja (del 1 al 12), y mostrar en pantalla el nombre de la carta asociado a ese número. Código: Inicio Leer NUM-CARTA Según NUM-CARTA = 1 Mostrar "As" = 2 Mostrar "Dos" .......... = 12 Mostrar "Rey" Fin_según Fin En primer lugar, se lee un número de la carta y, a continuación, dependiendo del valor de la variable NUM-CARTA se mostrará el nombre de la carta. Las estructuras condicionales múltiples derivan de las estructuras condicionales dobles de tipo anidado, es decir, cuando la parte "si no" de una estructura condicional doble se transforma en otra estructura condicional. Así, el ejemplo de seleccionar y visualizar el mayor de dos números dados debería quedar programado, teniendo en cuenta que pueden ser iguales, como sigue:
  • 11. Código: Inicio Leer A y B Si A > B Entonces Mostrar "El Mayor es:" A Si no Si A < B Entonces Mostrar "El Mayor es:" B Si no Mostrar "A y B son iguales" Fin_si Fin El programa lee dos números A y B, si A es mayor que B muestra A como el mayor, si no pregunta si A es menor que B y en caso afirmativo muestra B como el mayor. Pero si no se cumplen ninguna de las dos condiciones quiere decir que ambos números son iguales. Transformado en una "estructura condicional múltiple" sería de la forma: Código: Inicio Leer A y B Según Comparación (A,B) = 1 Mostrar "El Mayor es:" A =-1 Mostrar "El Mayor es:" B = 0 Mostrar "A y B son iguales" Fin_según Fin En este caso, se compara A con B mediante la función Comparación (A,B) que devuelve el valor 1,-1,0 según sea el resultado de comparar A con B. Si el resultado de la comparación es igual a 1 quiere decir que A > B, si es -1 indica
  • 12. que A < B y si es 0, señala que A y B son iguales. - Estructura repetitiva - En un programa es normal tener que ejecutar repetidamente un conjunto de instrucciones, dependiendo de que sea cierta o no una condición. La condición se conoce como "condición de salida" y la instrucción se denomina "repetitiva" o "de bucle". Existen tres versiones: - Estructura tipo Mientras. - Estructura tipo Hasta. - Estructura tipo Para. - Estructura tipo Mientras En este tipo, el bloque de instrucciones (acciones) se repetirá mientras que la condición sea cierta. La condición se evalúa al comienzo de la estructura. Esto implica que el bloque de instrucciones puede no ejecutarse ninguna vez si la condición de salida es inicialmente falsa. El pseudocódigo de esta estructura es de la forma: Código: Mientras Condición Acción-1 Acción-2 .......... Acción-n Fin_mientras Por ejemplo: una empresa tienen grabados los datos personales de sus empleados. se desea imprimir el nombre de aquellos empleados mayores de 55 años. Código: Inicio Leer Empleado Mientras Haya-Empleado Si Empleado-Edad > 55
  • 13. Entonces Mostrar Empleado Fin_si Leer Empleado Fin_mientras Fin En primer lugar, se leen los datos de un empleado, a continuación se evalúa la condición de salida (Haya-Empleado), preguntando si existen empleados. Si la condición es cierta, porque realmente se han leído los datos de un empleado, entonces se comprueba, con una estructura condicional simple, si la edad del empleado es mayor de 55 años, si lo es se muestra el nombre del empleado. Después se vuelve a leer otro empleado y se retorna a la evaluación de la condición salida del bucle, cuya finalización se realiza cuando no existan más empleado. Obsérvese que si en la primera lectura no hay empleados, el bucle Mientras no se realizará nunca, ya que se comprueba la condición al principio de la estructura Mientras y, sólo si es cierta, se entra en ello. - Estructura tipo Hasta En este tipo, el bloque de acciones se repetirá hasta que la condición sea cierta. Dicha condición se evalúa al final de la estructura. Esto implica que el bloque de instrucciones se ejecutará al menos una vez, aunque la condición de salida ya sea cierta al entrar en dicha estructura. La diferencia fundamental entre ambas estructuras repetitivas es que, en el primer tipo (tipo Mientras), las acciones del bucle no se realizan nunca si la condición de salida del mismo es inicialmente falsa. Por el contrario, las acciones del bucle, en el segundo tipo (tipo Hasta), se realizarán al menos una vez, ya que la condición se evalúa después de haber sido realizadas dichas acciones. El pseudocódigo para esta estructura es: Código: Repetir Acción-1 Acción-2
  • 14. ...... Acción-n Hasta Condición de Fin_repetir Por ejemplo: "Visualizar la tabla de multiplicar del número 4" Código: Inicio CONT = 0 Repetir CONT = CONT + 1 PROD = CONT * 4 Mostrar PROD Hasta CONT = 10 Fin Para resolver este problema se necesitan dos variables: CONT, que es un contador que almacena cuantos números se han visualizado (es la variable que contiene la condición de salida del bucle); y PROD, que almacena el valor del número a mostrar y que corresponde a los números de la tabla. - Estructura tipo Para Si el número de repeticiones del bucle (iteraciones) es fijo o se conoce de antemano, se puede utilizar una estructura tipo "Para", en lugar de una estructura tipo "Mientras". La estructura "Para" indica que las acciones del bucle se realizan un número específico de veces y que la estructura controla automáticamente el número de repeticiones. Para dicho control hay que definir dentro de la estructura el nombre de una variable, su valor inicial, su valor final y un incremento fijo. Ello quiere decir que inicialmente el bloque de acciones se ejecuta con el valor inicial de la variable, incrementándose este valor en cada iteración con el valor del incremento y finalizan las iteraciones cuando el valor de la variable sobrepasa su valor final. La evaluación de la condición de salida se realiza al comienzo de cada iteración. El pseudocódigo de este tipo de
  • 15. estructura es el siguiente: Código: Para VAR desde V1 hasta V2 incremento V3 Acción-1 Acción-2 ..... Acción-n Fin_para Por ejemplo: "Construir un programa en pseudocódigo estructurado que calcule la suma de los números comprendidos entre 1 y 100, ambos inclusive" Código: Inicio SUMA = 0 Para NUM desde 1 hasta 100 SUMA = SUMA + NUM Fin_para Mostrar SUMA Fin En el ejemplo se utiliza la variable SUMA para almacenar la suma de los 100 primeros números y la variable NUM para controlar el bucle. Éste empieza en 1 y llega hasta 100 con incremento 1, y cuando NUM sobrepasa el valor 100, indica que ya se han sumado todos los números, con lo que el bucle tipo "Para" termina y en SUMA se tendrá el valor buscado. La diferencia fundamental entre los tipos "Mientras" y "Para" radica en que en la estructura "Mientras" hay que realizar, mediante instrucciones, la inicialización de la variable que controla el bucle y su incremento; mientras que en la estructura "Para" esto se hace automáticamente. Así el ejemplo anterior desarrollado con una estructura del tipo Mientras daría lugar al siguiente código: Código: Inicio
  • 16. SUMA = 0 NUM = 1 Mientras NUM <= 100 SUMA = SUMA + NUM NUM = NUM + 1 Fin_mientras Mostrar SUMA Fin Obsérvese que en el código anterior hay que incorporar la instrucción de inicialización de NUM (NUM=1), y de incremento (NUM=NUM 1), cosa que no hizo falta en la estructura "Para". Pero recuérdese que la estructura "Para" sólo es aplicable cuando se conoce a priori el número de repeticiones del bucle, es decir el valor V3 de la variable VAR. 1.6. EJERCICIOS RESUELTOS Estructura Secuencial a. Escriba un algoritmo que pregunte por dos números y muestre como resultado la suma de estos. Use Pseudocódigo y diagrama de flujos. b. Escriba un algoritmo que permita conocer el área de un triángulo a partir de la base y la altura. Exprese el algoritmo usando Pseudocódigo y diagrama de flujos.
  • 17. c. Elaborar un diagrama que permita leer dos números, realizar las cuatro operaciones fundamentales y visualice sus resultados. Diagrama de flujo Pseudocódigo Inicializamos A,B,S,R,M: ENTERO D: REAL Escriba “Diga dos número” Lea A, B S ← A+ B R← A – B Inicio A, B S = A + B R = A – B M = A * B D = A / B S, R, M, D
  • 18. M← A * B D ← A / B Escriba “Los resultados son:”, S, R, M, D Fin Traza del Algoritmo Inicializamos Diga dos número 6, 3 S = 6 + 3 R = 6 – 3 M = 6 * 3 D = 6 / 3 Los resultados son: 9, 3, 18, 2 Fin d. El dueño de una tienda compra un artículo a un precio determinado, obtener el precio en que debe vender para conseguir una ganancia del 30%. Diagrama de flujo Pseudocódigo Inicializamos PD, PV: REAL Escriba “Diga el Precio” Lea PD PV ← (PD * 30 / 100) + PD Escriba “El precio de venta para obtener el 30% de ganancia es:”, PV Fin Traza del Algoritmo INICIO PD PV = (PD*30/100)+PD PV FIN
  • 19. Inicializamos Diga el Precio 130 PV = (130 * 30 / 100) + 130 El precio de venta para obtener el 30% de ganancia es: 169 Fin e. Calcular el nuevo salario de un obrero si obtuvo un incremento del 25% sobre su salario anterior. Diagrama de flujo Pseudocódigo Inicializamos SA, INC, NS: REAL Escriba “Diga el Salario” Lea SA INC = SA * 25 / 100 NS = SA + INC Escriba “El incremento es de:”, INC Escriba “El nuevo salario es de:”, NS FIN Traza del Algoritmo Inicializamos INICIO SA INC = SA * 25/100 NS = SA + INC INC, NS FIN
  • 20. Diga el salario 120 Inc = 120 * 25 / 100 NS = 120 + 30 El incremento es de: 30 El nuevo salario es de: 150 Fin Estructura condicional Estructura repetitiva Lenguaje de Programación C++ . Antecedentes C es un lenguaje de programación creado en 1969 por Ken Thompson y Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B. Al igual que B, es un lenguaje orientado a la implementación de Sistemas Operativos, concretamente Unix. C es apreciado por la eficiencia del código que produce y es el lenguaje de programación más popular para crear software de sistemas, aunque también se utiliza para crear aplicaciones. Se trata de un lenguaje débilmente tipado de medio nivel pero con muchas características de bajo nivel. Es necesario aclarar que un lenguaje fuertemente tipado: es un lenguaje en el que los tipos de datos se mantienen siempre. Java y Python son fuertemente tipados. Si se tiene un entero, no se le puede tratar como una cadena sin convertirlo explícitamente. Lenguaje débilmente tipado es un lenguaje en el que los tipos pueden ignorarse; lo contrario de fuertemente tipado. VBScript es débilmente tipado. En VBScript, se puede concatenar la cadena '12' con el entero 3 para obtener la cadena '123', y después tratarla como el entero 123, todo ello sin conversión explícita. . Filosofía Es muy posible escribir C a bajo nivel de abstracción; de hecho, C se usó como intermediario entre diferentes lenguajes. En parte a causa de ser de relativamente
  • 21. bajo nivel y de tener un conjunto de características modesto, se pueden desarrollar compiladores de C fácilmente. C tiene las siguientes características de importancia: • Un núcleo del lenguaje simple, con funcionalidades añadidas importantes, como funciones matemáticas y de manejo de ficheros, proporcionadas por bibliotecas. • Es un lenguaje muy flexible que permite programar con múltiples estilos. Uno de los más empleados es el estructurado. • Un sistema de tipos que impide operaciones sin sentido. • Usa un lenguaje de preprocesado, el preprocesador de C, para tareas como definir macros e incluir múltiples ficheros de código fuente. • Acceso a memoria de bajo nivel mediante el uso de punteros. • Un conjunto reducido de palabras clave. • Los parámetros se pasan por valor. El paso por referencia se puede simular pasando explícitamente el valor de los punteros. • Punteros a funciones y variables estáticas, que permiten una forma rudimentaria de encapsulado y polimorfismo. • Tipos de datos agregados (struct) que permiten que datos relacionados se combinen y se manipulen como un todo. C es más eficiente que otros lenguajes. Típicamente, sólo la programación cuidadosa en lenguaje ensamblador produce un código más rápido, pues da control total sobre la máquina, aunque los avances en los compiladores de C y la complejidad creciente de los procesadores modernos han reducido gradualmente esta diferencia. En 1973, el lenguaje C se había vuelto tan potente que la mayor parte del kernel Unix, originalmente escrito en el lenguaje ensamblador PDP11/20, fue reescrita en C. Éste fue uno de los primeros núcleos de sistema operativo implementados en un lenguaje distinto al ensamblador.
  • 22. 1.7. EJERCICIOS PROPUESTOS Estructura Secuencial Diseña algoritmos que resuelvan los siguientes problemas: a. Diseñe un algoritmo que pregunte la edad y luego la muestre en pantalla. b. Realizar un algoritmo que calcule la edad de una persona. c. Convertir 125 metros a centímetros d. Suponga que un individuo desea invertir su capital en un banco y desea saber cuánto dinero ganará después de un mes si el banco paga a razón de 2% mensual. e. Un vendedor recibe un sueldo base más un 10% extra por comisión de sus ventas, el vendedor desea saber cuánto dinero obtendrá por concepto de comisiones por las tres ventas que realiza en el mes y el total que recibirá en el mes tomando en cuenta su sueldo base y comisiones. f. Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente desea saber cuánto deberá pagar finalmente por su compra. g. Un alumno desea saber cuál será su calificación final en la materia de Algorítmica y Programación. Dicha calificación se compone de los siguientes porcentajes: h. 55% del promedio de sus tres calificaciones parciales. i. 30% de la calificación del examen final. j. 15% de la calificación de un trabajo final k. Un maestro desea saber qué porcentaje de hombres y que porcentaje de mujeres hay en un grupo de estudiantes.
  • 23. l. La Sra. López realizó sus compras en un conocido supermercado, en dicha tienda el precio del kilo de arroz es de Bs 8.75, el kilo de azúcar cuesta Bs 5.55 y el kilo de café vale Bs 14.25. Si la Sra. López compró dos kilos de arroz, un kilo de azúcar y medio kilo de café. Calcule cuánto gastó la Sra. López en total. m. Hacer un algoritmo para calcular el promedio de calificaciones de un estudiante, dando como datos de entrada el nombre y las cuatro calificaciones obtenidas en los exámenes. La información de salida requerida es el nombre y el promedio de las calificaciones (el promedio se obtiene sumando las cuatro calificaciones y dividiéndolas entre 4). n. Dada una cantidad en bolívares, obtener la equivalencia en dólares, asumiendo que la unidad cambiaría es un dato desconocido. o. Calcular el nuevo salario de un obrero si obtuvo un incremento del 50% sobre su salario anterior. p. El dueño de una tienda compra un artículo a un precio determinado. Obtener el precio en que lo debe vender para obtener una ganancia del 40%. q. Tres personas deciden invertir su dinero para fundar una empresa. Cada una de ellas invierte una cantidad distinta. Obtener el porcentaje que cada quien invierte con respecto a la cantidad total invertida. r. Calcular el número de estudiantes eximidos de la unidad curricular Algorítmica si el porcentaje de estos corresponde a un 25% del total de estudiantes inscritos en la sección y mostrarle al profesor cuantos participantes se eximen y cuantos no eximen . s. Convertir una cantidad de segundos, suministrados como un valor entero positivo, a minutos y a horas.