Está en la página 1de 48

FUNDAMENTOS DE

PROGRAMACIÓN

MBA. EDWARD ARIAS

2
1
TEMAS

FUNDAMENTOS DE
PROGRAMACIÓN
TEMA 01: Algoritmo: definición, características y representación
UNIDAD I: TEMA 02: Variables y tipos de datos
ESTRUCTURAS DE TEMA 03: Introducción a la programación: programas traductores,
CONTROL PARA LA programación estructurada
PROGRAMACIÓN:
TEMA 04: Estructuras de control para la programación: estructuras de
SECUENCIAL Y SELECTIVA control secuencial
TEMA 05: Estructuras de control para la programación: estructuras de control
selectiva: simple, compuesta y múltiple

MBA. Edward Arias


ESTRUCTURAS DE CONTROL PARA LA PROGRAMACIÓN

• En un programa los enunciados son ejecutados uno después del otro, en el orden en que aparecen
escritos.
• Sin embargo, habrá momentos en que el programa debe ejecutar determinadas partes dependiendo del
estado en el que se encuentre.
• Esto permite modificar el orden de la ejecución para adaptarse al estado del programa.
• Las sentencias de control son la esencia de cualquier lenguaje de programación, ya que gobiernan el flujo
de la ejecución del programa.

MBA. Edward Arias


ESTRUCTURAS DE CONTROL PARA LA PROGRAMACIÓN

Secuenciales
Estructuras de
Control Selectivas

Repetitivas

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES

• Las instrucciones se ejecutan en el mismo orden en que ellas aparecen en el programa.


• Una acción sigue a otra en secuencia.

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES

• La estructura secuencial es aquella en la que 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.
• Una estructura secuencial se representa de la siguiente forma:

Inicio

Acción 1
Acción 2
.
.

Acción N

Fin

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES

Asignación:
• La asignación consiste, en el paso de valores o resultados a una zona de la memoria.
• Dicha zona será reconocida con el nombre de la variable que recibe el valor.
• La asignación se puede clasificar de la siguiente forma:
1. Simples: Consiste en pasar un valor constate a una variable (a <– 5)
2. Contador: Consiste en usarla como un verificador del número de veces que se realiza un proceso (a <– 1)
3. Acumulador: Consiste en usarla como un sumador en un proceso (a <– b)
4. De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas
variables (a <– c+b*2/4).

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES

Lectura:
• La lectura consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor. Esta operación se
representa en un pseudocódigo como sigue:

Leer a, b

Donde “a” y “b” son las variables que recibirán los valores

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES

Escritura:
• Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o mensaje. Este
proceso se representa en un pseudocódigo como sigue:

Escribir “El resultado es:”, R

Donde “El resultado es:” es un mensaje que se desea aparezca y R es una variable que contiene un valor

MBA. Edward Arias


ESTRUCTURA BASICA DE UN ALGORITMO
1. Análisis
1.1. Entender el problema
1.2. Modelo
1.3. Especificación del algoritmo
a) Diccionario de variables
• Resultados
• Datos
b) Pre-Condición
c) Acción que debe realizar
d) Post-Condición
2. Diseño
2.1. Descripción del Algoritmo en pseudo-código
2.2. Verificación del algoritmo
3. Codificación en un lenguaje de programación (C, C++)

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 1: Escribir un algoritmo para calcular el área de un circulo

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 1: Escribir un algoritmo para calcular el área de un circulo

1. Análisis
1.1. Entender el problema 1.2. Modelo

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 1: Escribir un algoritmo para calcular el área de un circulo

1. Análisis
1.3. Especificación del algoritmo
a) Diccionario de variables
• Resultados
area: área del círculo : real
• Datos
• radio: radio del círculo : real
b) Pre-Condición:
{radio>0}
c) Acción que debe realizar:
Calcular el área del círculo
d) Post-Condición:
{area = 3.1416 * radio 2}

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 1: Escribir un algoritmo para calcular el área de un circulo

2. Diseño
2.1. Descripción del Algoritmo en pseudo-código

INICIO {Calcular el área del círculo}


{Leer radio}
leer radio

{Calcular el área}
area ß 3.1416 * radio * radio

{Escribir el area}
escribir area
FIN

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 1: Escribir un algoritmo para calcular el área de un circulo

2. Diseño
2.2. Verificación del Algoritmo

Con la presenta tabla vamos a representar el estado de las variables que


intervienen en el algoritmo, a medida que se vayan ejecutando las instrucciones

Intrucciones radio area


? ?
Leer radio 4
area = 3.1416 * radio 2 50.26

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 1: Escribir un algoritmo para calcular el área de un circulo
3. Codificación en un lenguaje de programación (C, C++)
/* Ejemplo de calcular el área del círculo Area = (radio*radio)*3.1416 */
#include<iostream>
using namespace std;
int main()
{
//Declaración de variables (según el ejemplo)
double radio, Area;
// Entrada de Datos
cout<<"Ingrese radio: ";
cin>>radio;
//Proceso
Area = radio*radio*3.1416;
// Salida de Datos
cout<<"EL área del circulo es: " << Area;
return 0;
} MBA. Edward Arias
ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 2: Escribir un algoritmo para calcular el promedio aritmético de 3 numeros

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 2: Escribir un algoritmo para calcular el promedio aritmético de 3 numeros

1.Análisis
1.1. Entender el problema

nota1 nota2 nota3 promedio


13 16 12 14

1.2. Modelo
El promedio aritmético se calcula mediante la siguiente expresión

promedio = (nota1 + nota2 + nota3)/3

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 2: Escribir un algoritmo para calcular el promedio aritmético de 3 numeros

1.Análisis
1.3. Especificación del algoritmo
a) Diccionario de variables
• Resultados
promedio = Promedio de tres notas : real
• Datos
nota1 = Primera nota : entero
nota2 = Segunda nota : entero
nota3 = Tercera nota : entero
b) Pre-Condición:
{(0 ≤ nota1 ≤ 20) ∧ (0 ≤ nota2 ≤ 20) ∧ (0 ≤ nota3 ≤ 20)}
c) Acción que debe realizar:
Calcular el promedio aritmético de 3 notas
d) Post-Condición:
{promedio = (nota1 + nota2 + nota3)/3}

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 2: Escribir un algoritmo para calcular el promedio aritmético de 3 numeros

2. Diseño
2.1. Descripción del Algoritmo en pseudo-código
INICIO {Calcular el promedio aritmético de 3 notas}
{Leer notas}
leer nota1
leer nota2
leer nota3

{Calcular el promedio}
promedio ß (nota1 + nota2 + nota3)/3

{Escribir el promedio}
escribir promedio
FIN

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 2: Escribir un algoritmo para calcular el promedio aritmético de 3 numeros

2. Diseño
2.2. Verificación del Algoritmo

Con la presenta tabla vamos a representar el estado de las variables que


intervienen en el algoritmo, a medida que se vayan ejecutando las instrucciones

Intrucciones nota1 nota2 nota3 promedio


? ? ? ?
Leer nota1 13
Leer nota2 14
Leer nota3 15
(nota1 + nota2 + nota3)/3 14

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
/* Ejemplo para calcular el promedio aritmético de 3 notas */
#include<iostream> 3. Codificación en un lenguaje de
using namespace std; programación (C, C++)
int main()
{
//Declaración de variables (según el ejemplo)
double nota1, nota2, nota3, Promedio;
// Entrada de Datos
cout<<"Ingrese Nota 1: ";
cin>>nota1;
cout<<"Ingrese Nota 2: ";
cin>>nota2;
cout<<"Ingrese Nota 3: ";
cin>>nota3;
//Proceso
Promedio = (nota1 + nota2 + nota3)/3;
// Salida de Datos
cout<<"El promedio de las notas es: " << Promedio;
return 0;
}

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 3: Escribir un algoritmo que convierta una distancia medida en pulgadas a centimetros

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 3: Escribir un algoritmo que convierta una distancia medida en pulgadas a centimetros

1. Análisis
1.1. Entender el problema
Datos Resultado
Distancia en pulgadas Distancia en cm.
20 50.8
10 25.4

1.2. Modelo
Una pulgada es aproximadamente igual a 2.54 cm.
Por lo tanto el modelo es:
Centímetro = Pulgadas * 2.54

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 3: Escribir un algoritmo que convierta una distancia medida en pulgadas a centimetros

1. Análisis
1.3. Especificación del algoritmo
a) Diccionario de variables
• Resultados
centimetros = Distancia en centímetros : real
• Datos
pulgadas = Distancia en pulgadas : real
b) Pre-Condición:
{pulgadas ≥0}
a) Acción que debe realizar:
Convertir una distancia medida en pulgadas a centímetros
b) Post-Condición:
{| centimetros = pulgadas * 2.54 |}

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 3: Escribir un algoritmo que convierta una distancia medida en pulgadas a centimetros

2. Diseño
2.1. Descripción del Algoritmo en pseudo-código

INICIO {Convertir una distancia medida en pulgadas a centímetros}


{Leer distancia en pulgadas}
leer pulgadas

{Convertir distancia a centímetros}


centimetros ß 2.54 * pulgadas

{Escribir distancia en centímetros}


escribir centimetros
FIN

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 3: Escribir un algoritmo que convierta una distancia medida en pulgadas a centimetros

2. Diseño
2.2. Verificación del Algoritmo

Con la presenta tabla vamos a representar el estado de las variables que


intervienen en el algoritmo, a medida que se vayan ejecutando las instrucciones

Intrucciones pulgadas centimetros


? ?
Leer pulgadas 20
Centimetros=2.54 * pulgadas 50.80

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 3: Escribir un algoritmo que convierta una distancia medida en pulgadas a centimetros
3. Codificación en un lenguaje de programación (C, C++)
/* Ejemplo para convertir una distancia medida en pulgadas a centimetros */
#include<iostream>
using namespace std;
int main()
{
//Declaración de variables (según el ejemplo)
double pulgadas, centimetros;
// Entrada de Datos
cout<<"Ingrese las pulgadas: ";
cin>>pulgadas;
//Proceso
centimetros = pulgadas*2.54;
// Salida de Datos
cout<<"La distancia en centímetros es: " << centimetros;
return 0;
} MBA. Edward Arias
ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 4: Escribir un algoritmo que evalue la función f(x) = 2X2 + 4X – 5 para un valor de X.

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 4: Escribir un algoritmo que evalue la función f(x) = 2X2 + 4X – 5 para un valor de X.

1. Análisis
1.1. Entender el problema
Datos Resultado
X Y
3 25
0 -5
1 1
1.2. Modelo
Para evaluar la función debemos reemplazar X con el valor para el cual se
desea evaluar la función, utilizando la expresión:
Y = 2X2 + 4X - 5

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 4: Escribir un algoritmo que evalue la función f(x) = 2X2 + 4X – 5 para un valor de X.

1. Análisis
1.3. Especificación del algoritmo
a) Diccionario de variables
• Resultados
y = valor de la función : real
• Datos
x = valor del punto en el cual se : real
quiere evaluar la función
b) Pre-Condición:
{x: puede tomar cualquier valor}
a) Acción que debe realizar:
Evaluar el valor de una función en un punto x
b) Post-Condición:
{| y = 2x2 + 4x - 5 |}

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 4: Escribir un algoritmo que evalue la función f(x) = 2X2 + 4X – 5 para un valor de X.

2. Diseño
2.1. Descripción del Algoritmo en pseudo-código

INICIO {Evaluar el valor de una función en un punto x}


{Leer el valor de x}
leer x

{Calcular el valor de la función en el punto x}


y ß 2*x2 + 4*x -5

{Escribir el promedio}
escribir y
FIN

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 4: Escribir un algoritmo que evalue la función f(x) = 2X2 + 4X – 5 para un valor de X.

2. Diseño
2.2. Verificación del Algoritmo

Con la presenta tabla vamos a representar el estado de las variables que


intervienen en el algoritmo, a medida que se vayan ejecutando las instrucciones

Intrucciones x y
? ?
leer x 3
y = 2x2 + 4x – 5 25

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 4: Escribir un algoritmo que evalue la función f(x) = 2X2 + 4X – 5 para un valor de X.
3. Codificación en un lenguaje de programación (C, C++)
/* Ejemplo para que evaluar la función f(x) = 2X2 + 4X – 5 para un valor de X.*/
#include<iostream>
using namespace std;
int main()
{
//Declaración de variables (según el ejemplo)
double x, y;
// Entrada de Datos
cout<<"Ingresar el valor de x: ";
cin>>x;
//Proceso
y = 2*x*x+4*x-5;
// Salida de Datos
cout<<"El valor de la función f(x) es: " << y;
return 0;
} MBA. Edward Arias
ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 5: Escribir un algoritmo que calcule la distancia entre dos puntos en el plano cartesiano

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 5: Escribir un algoritmo que calcule la distancia entre dos puntos en el plano cartesiano

1. Análisis
1.1. Entender el problema
Datos Resultados
Punto 1 Punto 2
Distancia
X1 Y1 X2 Y2
0 0 3 4 5
2 4 6 7 5
2 10 10 16 10

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 5: Escribir un algoritmo que calcule la distancia entre dos puntos en el plano cartesiano

1. Análisis
1.2. Modelo
En el planp cartesiano dados dos puntos (X1, Y1) y (X2, Y2), la distancia entre
estos puntos se calcula por medio de la siguiente expresión:

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 5: Escribir un algoritmo que calcule la distancia entre dos puntos en el plano cartesiano
1. Análisis
1.3. Especificación del algoritmo
a) Diccionario de variables
• Resultados
d = Distancia entre dos puntos : real
• Datos
X1 = Abcisa del primer punto : real
Y1 = Ordenada del primer punto : real
X2 = Abcisa del segundo punto : real
Y2 = Ordenada del segundo punto : real

b) Pre-Condición:
{Se puede hallar la distancia para cualquier par de puntos}
a) Acción que debe realizar:
Calcula la distancia entre dos puntos del plano cartesiano
b) Post-Condición:
{| |}
MBA. Edward Arias
ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 5: Escribir un algoritmo que calcule la distancia entre dos puntos en el plano cartesiano

2. Diseño
2.1. Descripción del Algoritmo en pseudo-código

INICIO {Calcular la distancia entre dos puntos en el plano cartesiano}


{Leer la abscisa y ordenada de los 2 puntos}
leer x1
leer y1
leer x2
leer y2

{Calcular la distancia entre los dos puntos}


d à (x2 – x1)2 + (y2 – y1)2

{Escribir distancia entre los puntos}


escribir d
FIN
MBA. Edward Arias
ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 5: Escribir un algoritmo que calcule la distancia entre dos puntos en el plano cartesiano

2. Diseño
2.2. Verificación del Algoritmo
Con la presenta tabla vamos a representar el estado de las variables que
intervienen en el algoritmo, a medida que se vayan ejecutando las instrucciones
Intrucciones x1 y1 x2 y2 d
? ? ? ? ?
leer x1 2
leer y1 4
leer x2 6
leer y2 7
d= (x2 – x1)2 + (y2 – y1)2 5

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
/* Ejemplo para calcular la distancia entre dos puntos en el plano cartesiano */
#include<iostream>
#include <cmath>
using namespace std;
int main()
{
//Declaración de variables (según el ejemplo)
double x1, y1, x2, y2, d;
// Entrada de Datos
cout<<"Ingresar abscisa del punto 1: "; 3. Codificación en un
cin>>x1; lenguaje de
cout<<"Ingresar ordenada del punto 1: "; programación (C, C++)
cin>>y1;
cout<<"Ingresar abscisa del punto 2: ";
cin>>x2;
cout<<"Ingresar ordenada del punto 2: ";
cin>>y2;
//Proceso
d = sqrt(pow((x2-x1),2) + pow((y2-y1),2));
// Salida de Datos
cout<<"La distancia entre los puntos es: " << d;
return 0; MBA. Edward Arias
ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 6: Escribir un algoritmo que calcula las unidades y decenas contenidas en un número de 2 dígitos

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 6: Escribir un algoritmo que calcula las unidades y decenas contenidas en un número de 2 dígitos
1. Análisis
1.1. Entender el problema

Datos Resultados Utilizando los operadores DIV y MOD


Número de 2 dígitos Unidades Decenas tenemos:

28 8 2 28 10
28 DIV 10 = 2
82 2 8 20 2
28 MOD 10 = 8
8
30 0 3

1.2. Modelo
Decenas = Número DIV 10
Unidades = Número MOD 10

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 6: Escribir un algoritmo que calcula las unidades y decenas contenidas en un número de 2 dígitos
1. Análisis
1.3. Especificación del algoritmo
a) Diccionario de variables
• Resultados
decenas = Número de decenas del número : entero
unidades = Número de unidades del número : entero
• Datos
numero = Número entero de 2 dígitos : entero
b) Pre-Condición:
{| 10 ≤ numero ≤ 99 |}
a) Acción que debe realizar:
Calcular el número de unidades y decenas de un número de 2 dígitos
b) Post-Condición:
{| (unidades = numero MOD 10) ^ (decenas = numero DIV 10)|}

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 6: Escribir un algoritmo que calcula las unidades y decenas contenidas en un número de 2 dígitos
2. Diseño
2.1. Descripción del Algoritmo en pseudo-código

INICIO {Calcular las unidades y decenas contenidas en un número de 2 digitos}


{Leer número de 2 digitos}
leer numero

{Calcular unidades y decenas}


unidades ß numero MOD 10
decenas ß numero DIV 10
{Escribir unidades y decenas}
escribir unidades, decenas
FIN

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 6: Escribir un algoritmo que calcula las unidades y decenas contenidas en un número de 2 dígitos

2. Diseño
2.2. Verificación del Algoritmo

Con la presenta tabla vamos a representar el estado de las variables que


intervienen en el algoritmo, a medida que se vayan ejecutando las instrucciones

Intrucciones numero unidades decenas


? ?
leer numero 32
numero MOD 10 2
numero DIV 10 3

MBA. Edward Arias


ESTRUCTURAS DE CONTROL SECUENCIALES
EJEMPLO 6: Escribir un algoritmo que calcula las unidades y decenas contenidas en un número de 2 dígitos
/* calcula las unidades y decenas contenidas en un número de 2 dígitos */
#include<iostream>
#include <cmath>
using namespace std;
int main()
{
//Declaración de variables (según el ejemplo)
int numero, unidades, decenas; 3. Codificación en un
// Entrada de Datos lenguaje de
cout<<"Ingresar un número de 2 dígitos: "; programación (C, C++)
cin>>numero;
//Proceso
unidades = numero % 10;
decenas = numero / 10;
// Salida de Datos
cout<<"El número " << numero << " tiene " << decenas << " decenas y " << unidades << " unidades";
return 0;
}
MBA. Edward Arias

También podría gustarte