Anda di halaman 1dari 60

ALGORITMO Y ESTRUCTURA DE DATOS I

CAPÍTULO I: CONCEPTOS FUNDAMENTALES

1.1 CONCEPTO DE ALGORITMO, EL SOFTWARE, LENGUAJES


DE PROGRAMACIÓN

a) CONCEPTOS DE ALGORITMO
 Un algoritmo es un conjunto finito de instrucciones o pasos
con una secuencia lógica que sirven para ejecutar una
tarea o resolver un problema.
 De un modo más formal, un algoritmo es una secuencia
lógica finita de operaciones realizables, no ambiguas,
cuya ejecución da una solución de un problema en un
tiempo finito.

- COMPONENTES DE UN ALGORITMO
Entrada : Datos del problema a resolver.
Salida : El resultado de la resolución.
Procesos : Paso a seguir en la resolución.

- CARACTERÍSTICAS DE UN ALGORITMO

PRECISIÓN 
Solución clara sin ambigüedad.
REPETITIVIDAD 
Idénticos resultados en las mismas
condiciones iniciales.
FINITUD 
Solución en un tiempo finito.
EFICIENCIA 
Tiempo de ejecución.

Requerimiento de memoria.

- ALGORITMO VS LENGUAJE DE PROGRAMACIÓN


Un lenguaje de programación es tan solo un medio para
expresar un algoritmo.

EJEMPLO Nº 1
Un cliente efectúa un pedido a una compañía, La compañía
verifica en su banco de datos la ficha del cliente, si el cliente
es solvente entonces la compañía acepta el pedido; en caso

1
ALGORITMO Y ESTRUCTURA DE DATOS I

contrario, rechazará el pedido. Realizar el algoritmo del


ejemplo.

Los pasos del algoritmo son:


1. Inicio
2. Leer el pedido
3. Verificar la ficha del cliente
4. Si el cliente es solvente, aceptar pedido; en caso
contrario, rechazar pedido.
5. Fin

CONCEPTO DE PROGRAMA

 Un programa es una secuencia de instrucciones de la


CPU.
 Cada instrucción es un conjunto de bytes.
 Conjunto de instrucciones dado al ordenador para
realizar un proceso determinado.

EJEMPLO Nº 2

1. Leer un dato del teclado.


2. Guardar un dato en la memoria.
3. Ejecutar una operación sobre los datos.
4. Mostrar un dato en la pantalla.

b) CONCEPTO DE SOFTWARE
 Es la parte lógica de la computación.
 Conjunto de programas que sirven para representar un
segmento de la realidad y resolver un problema. Como
por ejemplo: el Office, un sistema operativo, C++, Pascal,
Java, etc.

c) LENGUAJES DE PROGRAMACIÓN
Son aquellos lenguajes que se utilizan para realizar
algoritmos interpretables por la computadora.
Características imprescindibles  Estructura de Control.
Programación Modular
(funciones).

Los principales tipos de lenguajes utilizados antes y en la


actualidad son tres:

2
ALGORITMO Y ESTRUCTURA DE DATOS I

 Lenguaje máquina.
 Lenguaje de bajo nivel (ensamblador).
 Lenguajes de alto nivel: C, C++, Visual Basic, Java,
Pascal, Prolog.

1.2 RESOLUCIÓN DE PROBLEMAS CON COMPUTADORA -


FASES
Actualmente la resolución de problemas con computadoras facilita
el trabajo del usuario, debido a la gran velocidad de esta
herramienta (computadora).

El siguiente esquema nos muestra las fases de la resolución de


problemas con computadora.

3
ALGORITMO Y ESTRUCTURA DE DATOS I

FASE Nº 01: ANÁLISIS DEL PROBLEMA

EJEMPLO Nº 3
Imprimir la hipotenusa, teniendo los lados de un triangulo
rectángulo.

 Variables: LADO1, LADO2 y LADO3 (tipo reales).


 Entradas: Valores de los lados (variable LADO1 y variable
LADO2).
 Salida: Valor de la hipotenusa (variable LADO3).

FASE Nº 02: DISEÑO DEL ALGORITMO

4
ALGORITMO Y ESTRUCTURA DE DATOS I

EJEMPLO Nº 4
Determine a los números menores que 90 y múltiplos de 9, así
como su sumatoria.

Definición del
Definiciónde Especificacion Especificacion
problema
l Problema e s de e s de salida
entrada

Imprimir TOTAL = 0 NUM, TOTAL


múltiplos de NUM = 9
9 y su suma LIMITE = 90
siempre y
cuando sea
menor que
90

FASE Nº 03: SOLUCIÓN DEL PROBLEMA POR COMPUTADORA


Traducción del algoritmo al lenguaje de programación. La
complejidad depende mucho del lenguaje escogido.

Imprescindible: Conocimiento de la sintaxis del lenguaje.

Buenos diseños del


Algoritmo
+  Traducción casi a
u
to

tic
a
Lenguaje estructurado

FASE Nº 04: VERIFICACIÓN Y DEPURACIÓN

5
ALGORITMO Y ESTRUCTURA DE DATOS I

FASE Nº 05: DOCUMENTACIÓN


Descripción de qué hace el programa y cómo lo hace.

Documentación interna:
Comentarios: líneas informativas incluidas en el código.

 Tarea que realiza.


 Datos de entrada y salida.
 Condiciones de error.
Codificación auto documentada.

 Nombres de variables y funciones con significado.


 Estructura fácil de leer.

Documentación externa:
Manuales, estructura y especificaciones del programa, historia de
las modificaciones, etc.

FASE Nº 06: MANTENIMIENTO

1.3 HERRAMIENTAS DE PROGRAMACIÓN


Son aquellas que permiten realizar aplicativos, programas, rutinas,
utilitarios y sistemas para que la parte física del computador u
ordenador, funcione y pueda producir resultados.

6
ALGORITMO Y ESTRUCTURA DE DATOS I

Un ejemplo claro son los Lenguajes de Programación, las librerías,


los utilitarios, los generadores de reportes, pantallas, etc.

Las herramientas más usadas para desarrollar algoritmos son:

 Lenguaje natural.
 Organigramas.
 Diagramas Nassi – Shneiderman (N - S).
 Pseudocódigo.
 Otros

LENGUAJE NATURAL:
Es un lenguaje utilizado para describir los pasos de cómo
realizamos algo, de una forma sencilla.

 Ventajas: Facilidad de comprensión.


 Inconvenientes:
o El lenguaje natural no es universal, un algoritmo de
lenguaje natural en inglés, por ejemplo, sería
completamente inútil para los hispanohablantes.
o El lenguaje natural es ambiguo y, por tanto, susceptible de
errores.
o El lenguaje natural es demasiado amplio, lo que para una
persona puede ser una instrucción sencilla puede no serlo
para otra y desde luego no lo será para una computadora.

EJEMPLO Nº 5
 El algoritmo para encontrar las raíces de una ecuación de
segundo grado podría describirse así:

x = (-b + √b2 – 4ac) / (2a)

1. Definir los coeficientes de la ecuación de segundo grado: a,


b y c.
2. Determinar el valor del discriminante: b2 – 4ac.
3. Si el discriminante es cero sólo hay una solución: -b/ (2a).

ORGANIGRAMAS:
 Los organigramas o diagramas de flujo permiten describir los
algoritmos de forma grafica.

7
ALGORITMO Y ESTRUCTURA DE DATOS I

 Utilizan una serie de bloques que indican distintas


circunstancias y flechas que muestran bajo qué condiciones se
pasa de un bloque a otro.

8
ALGORITMO Y ESTRUCTURA DE DATOS I

DIAGRAMA DE FLUJO VS PSEUDOCÓDIGO:

Estructuras Pseudocódigo Diagrama de flujo

Inicio Begin Begin

Read x
Entrada y salida de
Read x
Datos
Write x

Sentencia Calcular x = y+3

Se escribe en líneas
separadas
Secuencia de
Calcular x = y+3
sentencias
Calcular z = 2*x

IF condición entonces
Acción 1
Selección ELSE
Acción 2

DO WHILE
Acción 1

Repetición

Fin End

9
ALGORITMO Y ESTRUCTURA DE DATOS I

Una vez diseñado el algoritmo y representado mediante una


herramienta de programación se debe:

Solución del
Problema por
Computadora

Codificación Ejecución Comprobación


del del del
programa program programa
a

Programa Programa
ejecutable

Compilador Montador

1.4 TIPOS DE DATOS


 Un dato es la expresión general que describe los objetos con
los cuales opera la computadora.
 Todos los datos tienen un tipo asociado con ellos.
 Un dato puede ser un simple carácter, tal como “b”, un valor
entero tal como “35”.
 El tipo de dato determina la naturaleza del conjunto de valores
que puede tomar una variable.

DATOS VS INFORMACIÓN

DATOS VS INFORMACIÓN
- Medidas objetivas de atributos - Resultado de haber organizado
de entidades. o analizado los datos de alguna
- Cifras/hechos crudos (en manera lógica.
bruto) sin interpretar o analizar. - Reduce la incertidumbre.
- No son estímulos de acción. - Impulsa a la acción.

10
ALGORITMO Y ESTRUCTURA DE DATOS I

EJEMPLO Nº 6

DA TO S

PRO CESAM IENTO


35.000 Soles
DE DATOS
1250 unidades
José Perez Lima
83.000 Dólares. IN FO R M AC IÓ N
3800 unidades
.......
Cliente: José Perez
Sucursal: Lima
Compras del mes:
1250 unidades= 35.000
Soles. ......

- CLASIFICACIÓN

REAL
NUMERICO ENTERO
CHARACTER
ESTANDAR

LOGICO (BOOLEAN)
DATOS SIMPLES

DEFINIDOS X ENUMERATIVO
EL PROGRAMADOR
SUBRANGO
TIPO

DE ARRAYS
DATO ESTATICOS REGISTRO
ARCHIVO (FICHERO)
CONJUNTO)
DATOS
ESTRUCTURADOS CADENA (STRING)
LISTA (PILA/COLA)
DINAMICOS LISTA ENLAZADA
ARBOL
GRAFO

11
ALGORITMO Y ESTRUCTURA DE DATOS I

- TIPOS DE DATOS SIMPLES

DATOS NUMÉRICOS DATOS LÓGICOS

Permiten representar Son aquellos que sólo


valores escalares de pueden tener dos valores
forma numérica, esto (cierto o falso) ya que
incluye a los números representan el resultado
enteros y los reales. de una comparación entre
otros datos (numéricos o
Este tipo de datos alfanuméricos).
permiten realizar
operaciones aritméticas

DATOS ALFANUMÉRICOS

Es una secuencia de caracteres alfanuméricos que permiten


representar valores identificables de forma descriptiva, esto
incluye nombres de personas, direcciones, etc.

Es posible representar números como alfanuméricos, pero estos


pierden su propiedad matemática, es decir no es posible hacer
operaciones con ellos.

Este tipo de datos se representan encerrados entre comillas.

Longitud
Representación Tipo Rango
de byte
Char 1 -128 a 127
Carácter Unsigned 1
char
Int 2 -32768 a 32767
Short int 2 -32768 a 32767
Unsigned int 2 0 a 65535
Enteros
Long 4 -2147483648 a
Unsigned 4 2147483647
long 0 a 4294967295
Float 4 3.4E±38
Reales Double 8 1.7E±308
Long double 10 3.4E-4932 a 1.1E+4932

12
ALGORITMO Y ESTRUCTURA DE DATOS I

¿POR QUÉ ESTUDIAR LOS DATOS?

DATOS DE DATOS DE
SALIDA ENTRADA

ALGORITMO

LOS PROGRAMAS OPERAN SOBRE DATOS

ALGORITMOS
+
ESTRUCTURA DE DATOS
=
PROGRAMA
NIKLAUS WIRTH

1.5 CONSTANTES, VARIABLES, IDENTIFICADORES,


EXPRESIONES, FUNCIONES

- CONSTANTES
Constantes: Valores que durante la ejecución de un programa
no cambian su valor.

Ejemplo: pi = 3.1416

- VARIABLES
Definición 1: Valores que cambiarán durante la ejecución del
programa.

Definición 2: Es un espacio en la memoria de la computadora que


permite almacenar temporalmente un dato durante la ejecución de

13
ALGORITMO Y ESTRUCTURA DE DATOS I

un proceso, su contenido puede cambiar durante la ejecución del


programa.

CLASIFICACIÓN DE LAS VARIABLES

* POR SU USO
 DE TRABAJO
Variables que recibe el resultado de una operación
matemática completa y que se usan normalmente dentro
de un programa.

Ejemplo: Suma  a + b /c
 CONTADORES
Se utilizan para llevar el control del número de ocasiones
en que se realiza una operación o se cumple una
condición. Con los incrementos generalmente de uno en
uno.

Ejemplo: Cont  Cont + 1


Num  Num + 2
 ACUMULADORES
Forma que toma una variable y que sirve para llevar la
suma acumulativa de una serie de valores que se van
leyendo o calculando progresivamente.

Ejemplo: Suma  Suma + cant

IDENTIFICADORES
Para poder reconocer una variable o una constante en la memoria
de la computadora, es necesario darle un nombre con el cual

14
ALGORITMO Y ESTRUCTURA DE DATOS I

podamos identificarla dentro de un algoritmo, esto se llama un


identificador.

Ejemplo:
área  pi * radio ^ 2
Los identificadores son: el radio, el área y la constante es pi.

EXPRESIONES
Se definen como una combinación de constantes, variables,
símbolos de operación, paréntesis, y nombres de funciones
especiales.

Una expresión consta de operandos y operadores.

Ejemplo: x + (y+10)+ z/2

Las expresiones se clasifican en:

o Aritméticas
o Lógicas
o Carácter

Operador
Operador Significado
Significado Tipo
Tipo de
de operandos
operandos Tipo
Tipo resultado
resultado
** Exponenciación Entero o real Entero o real

+ Suma Entero o real Entero o real

- Resta Entero o real Entero o real

* Multiplicación Entero o real Entero o real

/ División Real Real


Div División entera Entero Entero
Mod módulo Entero Entero

15
ALGORITMO Y ESTRUCTURA DE DATOS I

Reglas de prioridad

Operadores de relación

Operador
Operador Significado
Significado
< Menor
> Mayor
= Igual
<= Menor o igual
>= Mayor o igual
<>,!= Distinto

Operadores lógicos

Operador
Operador lógico
lógico Expresión
Expresión lógica
lógica Significado
Significado
Not Not p Negación
And PyQ Conjunción
Or PoQ disyunción

Ejemplo:
 Not 4 > 5 produce un error ya que el operador no se aplica a 4
 Not (4 > 5) produce un valor verdadero.

Ejemplo:
 P and Q.
 P or Q.

16
ALGORITMO Y ESTRUCTURA DE DATOS I

FUNCIONES
Las funciones pueden tener cualquier número de variables, incluso
cero. Para evaluar una función sin variables se debe escribir un par
de paréntesis después de su nombre (por ejemplo fun()). Las
funciones sin variables pueden servir como algoritmos de cálculo
que devuelven un valor real.

FUNCIONES MATEMÁTICAS

Función
Función Descripción
Descripción
Abs(x) Absoluto
Arctan(x) Tangente inversa
Cos(x) Coseno
Exp(x) Exponencial
Ln(x) Log neperiano
Log10(x) Log decimal
Round(x) Redondeo
Sin(x) Seno
Sqr(x) Cuadrado
Sqrt(x) Raíz cuadrada
Trunc(x) Truncamiento

1.6 PARTE PRÁCTICA

PROBLEMAS PROPUESTOS

1. Diseñar un algoritmo para cambiar la rueda de un auto.


2. Diseñar un algoritmo para preparar una torta
3. Diseñar un algoritmo para organizar una fiesta
4. Diseñar un algoritmo para organizar un paseo
5. Diseñar un algoritmo para organizar un concierto
6. Realizar el algoritmo para determinar el mayor de tres
números enteros

17
ALGORITMO Y ESTRUCTURA DE DATOS I

7. Realizar el algoritmo para calcular la superficie de un círculo.


8. Realizar el algoritmo para calcular el perímetro y la superficie
de un rectángulo dadas las base y la altura del mismo.
9. Escribir un algoritmo que lea un nombre de una marca de
automóviles seguida del nombre de su modelo e informe del
modelo seguido del nombre.
10. Realizar el algoritmo para determinar la hipotenusa de un
triángulo rectángulo conocidas las longitudes de los catetos.
11. Se desea un algoritmo para convertir metros a pies y
pulgadas.
(1 metro = 39.37 Pulgadas, 1 pie = 12 pulgadas).
12. Escribir un algoritmo que permita calcular el área de un
triangulo conocidos sus tres lados.
13. Diseñar un programa para calcular el área y el perímetro de un
triangulo rectángulo conociendo la longitud de sus catetos. Si
a, b y c representan los tres lados de un triangulo, entonces la
formula que determina su área será:
A = [p (p-a) (p-b) (p-c)]1/2
Donde p representa el semiperímetro del triangulo que se
calcula con la formula: p = (a+b+c)/2
14. Una empresa desea transmitir datos mediante el teléfono pero
en forma cifrada ante la posibilidad de que los teléfonos estén
intervenidos. La empresa le ha solicitado que escriba un
programa que cifre sus datos que consisten en números
enteros de cuatro dígitos. El cifrado debe hacerse de la
siguiente manera: Intercambiar el primer digito con el tercero,
y el segundo con el cuarto. A continuación imprimir el entero
cifrado.
15. Escribir un programa que lea un numero de 4 cifras y o invierta.
Así, por ejemplo, si el número leído es 2345 se debe convertir
en 5432.
16. Diseñar un programa para convertir una cantidad de nuevos
soles a billetes enteros de S/.100, S/. 50, S/.20, S/.10, S/.5 y
monedas de S/.1. Suponga que la cantidad es mayor que
S/.1000. Por ejemplo: en S/.1289 hay 12 billetes de S/.100, 1
billete de S/.50, 1 billete de S/.20, 1 billete de S/.10, 1 moneda
de S/.5 y 4 monedas de S/. 1.

18
ALGORITMO Y ESTRUCTURA DE DATOS I

17. Diseñar un programa para convertir una cantidad entera de


segundos a horas, minutos y segundos. Suponga que la
cantidad de segundos es mayor que 3600 sg.
18. Diseñar un programa para convertir grados Centígrados (C) a
grados Fahrenheit (F). Considere que: F = 9C/5 + 32.
19. Diseñar un programa para convertir grados sexagesimales (S)
a grados centesimales (C) y radianes (R). Considere que:
S/180 = C/200 = R/π.
20. Escriba un programa que permita calcular el área de un
triangulo conocido sus tres lados.
21. Escriba un programa que permita leer una medida en pies y la
convierta en centímetros, metros, pulgadas y yardas.
Considere los siguientes factores de conversión.
1 pie = 12 pulgadas
1 yarda = 3 pies
1 pulgada = 2.54 centímetros
1 metro = 100 centímetros
22. Escriba un programa que permita lea una temperatura en
grados Centígrados(C) y la convierta en sus equivalentes en
grados Fahrenheit (F), grados kelvin (K) y grados Rankine (R).
Utilice las siguientes formulas:
F = 9/5 C + 32
K = C + 273
R = C + 460
23. Un curso se evalúa de la siguiente forma: se toman 5 prácticas,
un examen parcial y un examen final. El promedio final se
calcula con la siguiente formulas: PF = (3PP + 2EP + 3EF)/7
Donde: PF = promedio final
PP = promedio de la 5 practicas
EP = examen parcial
EF = examen final
Escriba un programa que calcule el promedio final del curso.

19
ALGORITMO Y ESTRUCTURA DE DATOS I

24. Escriba un programa para calcular el monto a pagar por un


artículo. Los datos de entrada son: el precio de venta y el
número de unidades adquiridas. Considere un descuento fijo
de 20% y 19% de IGV. El programa deberá mostrar el monto
del descuento y el monto a pagar.
25. Escriba un programa para efectuar repartos proporcionales de
una suma de dinero a 5 personas en funciones de sus edades.
El programa deberá solicitar la suma de dinero y las edades
de las 5 personas. El monto que le corresponde a cada
persona se calcula con la formula:
edadP×montoT
MontoP =
edadT
Donde: montoT = monto del dinero a repartir
montoP = monto correspondiente a una persona
edadP = edad de la persona
edadP = suma total de edades
Imprimir el monto de dinero correspondiente a cada persona.
26. Escribir un programa para determinar el interés generado por
un capital C que representa un préstamo a una taza de interés
anual del T% durante N años. Mostrar el monto total obtenido
al cabo de los N años y el interés generado I. Use las
siguientes formulas:
M = C (1+ T/100)N
I=M–C
Donde: M = Monto total obtenido al cabo de los N años
C = Capital prestado
I = Interés generado al cabo de los N años
N = Numero de años
27. Escriba un programa que ingrese un valor de a y b y calcule
los valores de c y d de acuerdo con las siguientes formulas:
c = (4a4 + 3ab +b2) / (a2 + b2) ; d= (3c2 + a +b) / 4

20
ALGORITMO Y ESTRUCTURA DE DATOS I

LABORATORIO Nº 1

Este laboratorio tiene como objetivo que el alumno aprenda a convertir el


pseudo código a código TURBO C++ para su ejecución.

PASOS A SEGUIR:
Paso 1: Ingresar a inicio – programas – Turbo C++ 4.5. o en otro
compilador de C que le indique el docente

Paso 2: Hacer click en programa Turbo C++

Paso 3: Una vez abierto el programa haga click en File y en New,


generando una nueva hoja de trabajo.

21
ALGORITMO Y ESTRUCTURA DE DATOS I

Paso 4: Para guardar la hoja se hace click en File – Save as

Paso 5: Al hacer click en Save As saldrá una pantalla en donde se


colocara el nombre del archivo y nos indica la ruta en donde va a ser
guardada el archivo.

22
ALGORITMO Y ESTRUCTURA DE DATOS I

Paso 6: Una vez colocada el nombre y la ruta presionar OK.

Paso 7: Una vez guardada la hoja proceder a transcribir el siguiente


código de programa.

#include <iostream.h>
#include <conio.h>

Int main( )
{
float base, altura, area, perímetro;

cout<<"Base: "; cin>>base;


cout<<"Altura: "; cin>>altura;

área = base * altura ;


perímetro = 2 * (base + altura) ;

cout<<"El Area es :" << area << endl ;


cout<<"El perímetro es : " << perímetro << endl;
getch();
return 0;
}

23
ALGORITMO Y ESTRUCTURA DE DATOS I

Paso 8: Para compilar el programa hacer click en Project - Compile


Otra manera de compilar es presionar en el teclado Alt + F9.

24
ALGORITMO Y ESTRUCTURA DE DATOS I

Paso 9: Si no hubiera error aparecerá un cuadro con un visto indicando


OK, que indica Status: Success, quiere decir que no hay error de caso
contrario aparecerá Status: There are errors, indicando la posición en
donde esta el error.

Paso 10: Ejecutar el programa se realiza haciendo click en Debug –


Run.
Otra manera de ejecutar o correr el programa es
presionando las teclas Control + F9.

25
ALGORITMO Y ESTRUCTURA DE DATOS I

Paso 11: Mostrará el programa ejecutando los comandos escritos:

26
ALGORITMO Y ESTRUCTURA DE DATOS I

CAPÍTULO II: ESTRUCTURA GENERAL DE UN


PROGRAMA

CONCEPTO DE PROGRAMA
Es un conjunto de instrucciones, ordenes dadas a la máquina que
producirán la ejecución de una determinada tarea, en esencia es un medio
para seguir un fin.

DESARROLLO DE UN PROGRAMA
1. Definición y Análisis del problema
2. Diseño de algoritmos:

 Diagrama de flujo.
 Diagrama de N-S.
 Pseudocódigo.
 Otros

3. Codificación del Programa.


4. Depuración y verificación del Programa.
5. Documentación.
6. Mantenimiento.

PARTES CONSTITUTIVAS DE UN PROGRAMA


El programador debe establecer el conjunto de especificaciones que debe
contener el programa: entrada, salida y algoritmos de resolución.

ENTRADA PROGRAMA
SALIDA
Algoritmo de resolución

INSTRUCCIONES Y TIPOS DE INSTRUCCIONES


CONSISTE EN DEFINIR:
 LAS ACCIONES O INSTRUCCIONES, se deben escribir y
posteriormente almacenar en memoria en el mismo orden en que
han de ejecutarse; es decir en secuencia.

27
ALGORITMO Y ESTRUCTURA DE DATOS I

 Un programa es lineal si se ejecutan secuencialmente, sin


bifurcaciones decisión y comparación
IN S T R U C C IÓ N 1
IN S T R U C C IÓ N 2
.
.
.
I N S T R U C C IÓ N N

 En el caso de algoritmos las instrucciones se suelen conocer como


acciones y se tendría:
Acción 1
Acción 2
.
Acción N

 Y es no lineal cuando se interrumpe la secuencia mediante


instrucciones de bifurcación:
Acción 1
Acción 2
.
Accion x
Acción N
.

TIPOS DE INSTRUCCIÓN
1. Instrucciones de inicio / fin
2. Instrucciones de asignación
3. Instrucciones de lectura
4. Instrucciones de escritura
5. Instrucciones de bifurcación
6. Fin

- Instrucciones de asignación
A  80 la variable A toma el valor de 80
¿Cuál será el valor que tomara la variable C tras la ejecución de las
siguientes instrucciones?

28
ALGORITMO Y ESTRUCTURA DE DATOS I

A  12 A contiene 12
BA B contiene 12
CB C contiene 12
Antes de la ejecución de las tres instrucciones A, B, C son
indeterminados.

¿Cuál es el valor de la variable AUX al ejecutarse la instrucción 5?


1. A  10
2. B  20
3. AUX  10
4. A B
5. B  AUX;
En la instrucción 1, A toma el toma el valor de 10…

- Instrucciones de lectura de datos (entrada)


¿Cuál será el significado de las siguientes instrucciones?

Esta instrucción
a) Read numero, horas, tasa lee datos de
un
número12325 horas32 dispositivos
de entrada
tsa1200
a
b) Read A, B, C
A  100 B  200
C300

- Instrucciones de escritura de resultados (salida)

- A100
- B200
- C300 Esta instrucción
se escribe en
Write A, B, C un

de salida
29
ALGORITMO Y ESTRUCTURA DE DATOS I

2.1 ESTRUCTURA DE UN PROGRAMA EN C.


- Los programas en C pueden constar de uno o varios archivos.
- Cada archivo puede contener uno o varios espacios de
nombres.
- Un espacio de nombres puede contener tipos como clases,
estructuras, interfaces, enumeraciones y delegados, además
de otros espacios de nombres. A continuación, se muestra el
esqueleto de un programa en C que contiene todos estos
elementos.

30
ALGORITMO Y ESTRUCTURA DE DATOS I

EJEMPLO Nº 7

/* Comentarios de un párrafo completo comprendidos entre


/*.....*/,
Sirven para aclarar el programa o una parte del programa */
// Comentarios de 1 sola línea.
// Zona de ficheros de cabecera de las librerías.

Ejemplo:
/* El primer programa en C */
#include <stdio.h>
int main( void )
{ printf(“Bienvenido a C!" );
return 0; /* indica que el programa terminó con éxito */
}

EJEMPLO Nº 8

/* Programa de suma */
#include <stdio.h>
int main() /* la función main inicia la ejecución del programa */
{
int entero1; /* primer número introducido por el usuario */
int entero2; /* segundo número introducido por el usuario */

int suma; /* variable en la cual se almacena la suma */


printf( "Introduzca el primer entero\n" ); /* indicador */
scanf( "%d", &entero1 ); /* lee un entero */
printf( "Introduzca el segundo entero\n" ); /* indicador */
scanf( "%d", &entero2 ); /* lee un entero */
suma = entero1 + entero2; /* asigna el total a suma */
printf( "La suma es %d\n", suma ); /* imprime la suma */
return 0; /* indica que el programa terminó con éxito */
} /* fin de la función main */

31
ALGORITMO Y ESTRUCTURA DE DATOS I

 DEFINICIONES DE ARCHIVOS DE CABECERA DE LAS


LIBRERÍAS

io s t r e a m . h Flujodeentrada/salida

lim it s . h Limitesenterosdefinidoseimplantados

math.h F u n c i o n e s m a te m á ti c a s

st d i o . h Entrada/Salida

st d l i b . h Funcionesdeutilería

 Un comentario dentro del programa se utilizan para explicar


brevemente lo que hace el programa y facilitar así el recordar
que es lo que se están tratando de programar. Los
comentarios deben ser escrito en cualquier lugar donde pueda
haber confusión. En C debe ser escrito entre /* y */.
 Un comentario también se muestra en una sola línea de
código; pero se representa así: //

- VARIABLE GLOBAL
INFINITO
Una declaración global de una
variable, hace que la variable INICIO
sea disponible para el uso en
Suma = 0
todas las funciones del archivo
fuente.
Leer N

- BUCLES

Es un segmento de un algoritmo
Suma + N
o programa, cuyas
instrucciones se repiten un Escribir suma
número determinado de veces
mientras se cumple una
determinada condición (existe o es verdadera la condición)

32
ALGORITMO Y ESTRUCTURA DE DATOS I

Un bucle consta de tres partes:

o Decisión
o Cuerpo de bucle
o Salida de bucle.

TIPOS BUCLES

 Pueden existir varios bucles.


Bucles anidados, cuando están dispuestos de tal modo que
unos son interiores a otros, los Bucles independientes son
cuando son externos unos a otros.

Bucles anidados Bucles Independientes

in icio IN IC IO

Bu c le A

Bu c le B

B u cle C
FIN
fin

Bucles Cruzados

inicio

fin

33
ALGORITMO Y ESTRUCTURA DE DATOS I

2.2 ESTRUCTURA DE ALGORITMO


Los algoritmos deben ser escritos en lenguajes similares a los
programas.

Un algoritmo constará de dos componentes: Una cabecera de


programas y un bloque algoritmo. La cabecera de programa es
una acción simple que comienza con la palabra algoritmo. Esta
palabra estará seguida por el nombre asignado al programa
completo.

El bloque algoritmo es el resto del programa y consta de dos


componentes o secciones: las acciones de declaración y las
acciones ejecutables.

Las declaraciones definen o declaran las variables y constantes que


tengan nombres. Las acciones ejecutables son aquellas que
posteriormente deberá realizar la computadora cuando el algoritmo
convertido en programa se ejecute.

Algoritmo
Cabecera del programa
Sección de declaración
Sección de acciones

2.3 CONTADORES, ACUMULADORES.

 CONTADORES

DEFINICIÓN 1: Se utilizan para llevar el control del número de


ocasiones en que se realiza una operación o se cumple una
condición. Con los incrementos generalmente de uno en uno.

DEFINICIÓN 2: Un contador es una variable cuyo valor se


incrementa o decrementa en una cantidad constante cada vez
que se produce un determinado suceso o acción. Los
contadores se utilizan con la finalidad de contar sucesos o
acciones internas de un bucle; deben realizar una operación
de inicialización y posteriormente las sucesivas de incremento
o decremento del mismo.

34
ALGORITMO Y ESTRUCTURA DE DATOS I

La inicialización consiste en asignarle al contador un valor. Se


situará antes y fuera del bucle.

Representación de contadores:
Son variables que se utilizan para contar.
Normalmente su valor se incrementa o decrementa en 1.

Ejemplos:
contador  contador
+1 índice índice – 1

EJEMPLO Nº 9
BEGIN
eCon0

DO WHILE eCon <10


READ eR, eT
eSuneR+e
T
eConeCo
n+1

END DO
END

 ACUMULADORES

DEFINICIÓN 1: Forma que toma una variable y que sirve para


llevar la suma acumulativa de una serie de valores que se van
leyendo o calculando progresivamente

o Se utilizan para almacenar el resultado de sumas


sucesivas.
o Su valor se incrementa en cantidades variables.

Ejemplos:
total  total + valor

DEFINICIÓN 2: Es una variable que suma sobre sí misma un


conjunto de valores, de esta manera obtiene la suma de todos
ellos en una sola variable.

La diferencia entre un contador y un acumulador es que


mientras el primero va aumentando en una cantidad fija

35
ALGORITMO Y ESTRUCTURA DE DATOS I

predeterminada, el acumulador va aumentando en una


cantidad variable.

Representación:

<Nombre del acumulador>  <nombre del acumulador> +


<valor variable>

EJEMPLO Nº10:
BEGIN
eCon0,eAcu0
DO WHILE eCon<=10
READ eNume
eAcueAcu+eNume
eConeCon+1
ENDDO
WRITE eAcum
END

36
ALGORITMO Y ESTRUCTURA DE DATOS I

2.4 PARTE PRÁCTICA

PROBLEMAS PROPUESTOS

1.- Encontrar el valor de la variable VALOR después de la ejecución de


las siguientes operaciones:
a.- VALOR  4.0 * 5
b.- x 3.0
y 2.0
c.- VALOR 5
X 3
VALOR  VALOR * X

2.- Deducir el resultado que se produce con las siguientes


instrucciones:
var. entero: X,Y
X1
Y5
Write X,Y

3.- Deducir el valor de las expresiones siguientes:


XA +B+C
XA + *C
B
XA + /C
B
XA – /C
B
XA +B mod
C X(A
+B)/C XA
+(B/C)

Siendo A=5, B=25, C=20

4.- ¿Cómo se intercambian los valores de dos variables, A y B?


5.- Calcular el valor de las siguientes expresiones:
a. 8+7*3+4*6
b. -2^3
c. (33 + 3 * 4) / 5
d. 2^2 *3
e. 3+2 * (18-4^2)
f. 16*6-3*2

37
ALGORITMO Y ESTRUCTURA DE DATOS I

6.- Se tienen tres variables A, B y C; escribir las instrucciones necesarias


para intercambiar entre sí sus valores del modo siguiente:
 B toma el valor de A
 C toma el valor de B
 A toma el valor de C

Nota: Solo se debe utilizar una variable auxiliar.


7- Deducir el valor que toma la variable tras la ejecución de las
instrucciones:
A 4
B
A
B
A+3

8.- ¿Qué se obtiene en las variables A y B después de la ejecución de las


siguientes instrucciones?
A
5
B
A+6
A
A+1
B
A-5

9.- ¿Qué se obtiene en las variables A, B y C después de ejecutar las


instrucciones siguientes?
A3
B
20
C
A+B
B
A+
B A
B-
C

10.- ¿Que se obtiene en A y B tras la ejecución de?


A10
B
38

5
A

B
B

A

11. Se desea calcular independiente la suma de los números pares e


impares comprendidos entre 1 y 200.

12. Leer una serie de números distintos de cero (el último número de la
serie es -99) y obtener el número mayor. Como resultado se debe

39
ALGORITMO Y ESTRUCTURA DE DATOS I

visualizar el número mayor y un mensaje de indicación de número


negativo, caso de que se haya leído un número negativo.

13. Calcular y visualizar la suma y el producto de los números pares


comprendidos entre 20 y 400, ambos inclusive.

14. Leer 500 números enteros y obtener cuántos son positivos.

15. Se trata de escribir el algoritmo que permita emitir la factura


correspondiente a una compra de un artículo determinado, del que
se adquieren una o varias unidades. El IGV a aplicar es del 19% y si
el precio bruto es mayor a s/.50000, se debe realizar un descuento
del 5 por 100.

16. Sumar los números pares del 2 al 100 e imprimir su valor.

17. Sumar cinco números introducidos por teclado.

18. Calcular la media de tres números e imprimir su resultado.

19. Dados diez números enteros, visualizar la suma de los números pares
de una lista, cuántos números pares existen y cuál es la media
aritmética de los números impares

LABORATORIO Nº 2

Este laboratorio tiene como objetivo que el alumno aprenda la Estructura


de Los Programas Del Turbo C++.

ESTRUCTURA DE UN PROGRAMA:

 INCLUSIÓN DE ARCHIVOS DE CABECERA


Para muchas tareas especificas el lenguaje C dispone de librerías
de funciones preempacadas listas para ser usadas. Pero antes de
utilizar cualquier de estas funciones debemos informar al
compilador sobre las características de la función.

Todo lo que tenemos que hacer es averiguar en que archivo de


cabecera se encuentra el prototipo de la función a utilizar e incluir el
archivo en nuestro programa mediante la directiva.

40
ALGORITMO Y ESTRUCTURA DE DATOS I

#include <nombre_archivo_cabecera>

Un archivo de cabecera se reconoce porque tiene extensión .h


(como iostream.h, conio.h, string.h, etc.). Si las funciones a utilizar
están en distintos archivos de cabeceras debe incluir todos ellos
mediante una directiva #include para cada uno.

Ejemplo:
// Importamos la cabeceras de los módulos que necesitamos
#include <iostream.h> // entrada / salida define las variables cin
y cout (consola)
#include <string> // de la biblioteca estándar (STL)

 CUERPO DEL PROGRAMA


Es la parte donde se desarrollan las instrucciones que conforman el
programa. Aquí esta la parte medular del programa. Aquí es donde
su algoritmo se convierte en programa.
La estructura general de un programa simple en C++:

Inclusión de archivos de cabecera

int main ()
{
declaración de variables y constantes
cuerpo del programa
}

41
ALGORITMO Y ESTRUCTURA DE DATOS I

EXPLICACIÓN DE NUESTRO PROGRAMA


Para lograr explicar con mayor claridad se repite el código anterior
incluyendo un número de línea.
1. //Programa 01
2. //propósito: Estructura Secuencial
3. #include <iostream.h>
4. #include <conio.h>
5. int main()
6. {
7. // muestra mensaje endl permite un salto de línea
8. cout <<"Bienvenidos al primer programa " <<endl;

9. cout <<"utilizando C++";


10. getch();
11. return 0;
12. }
 Las líneas 1, 2,7 son comentarios que en tiempo de ejecución
son ignoradas por el compilador.
 Las líneas 3 y 4 se conocen como directivas de procesador del
compilador #include
 La línea 5 indica el inicio de la función principal main ().
 Las líneas 6 y 12 indican el inicio y el fin de bloque de la
función principal.
 La línea 8 muestra en pantalla el mensaje Bienvenidos al
Primer programa y un salto de línea.
 La línea 9 muestra en pantalla el mensaje utilizando C++,
 La línea 10 invoca a la función getch ( ) que espera a que el
usuario pulse una tecla.
 La línea 11 pasa el valor 0 de regreso al sistema operativo.
Esto le indica al sistema operativo que el programa fue
efectuado con éxito.

 DECLARACIÓN DE VARIABLES Y CONSTANTES


Todos los programas manejan datos. Estos datos se almacenan en
localizaciones de memorias llamadas variables. En esta sección se
informa al compilador sobre las variables que serán utilizadas en el
programa (a esto se llama declarar variables).

En C ++ permite declarar variables en cualquier parte del programa


con tal que la variable se declare antes de ser utilizada.

42
ALGORITMO Y ESTRUCTURA DE DATOS I

VARIABLES
Es un espacio en la memoria de la computadora que permite
almacenar temporalmente un dato durante la ejecución de un
proceso, su contenido puede cambiar durante la ejecución del
programa.

Una variable tiene las siguientes características:

1. Un nombre.
2. Un tipo de dato asociado.
3. Un valor inicial.
4. Una dirección de memoria.

CONSTANTES
Una constante es un dato numérico o alfanumérico que no cambia
durante la ejecución del programa.

43
ALGORITMO Y ESTRUCTURA DE DATOS I

LOS COMENTARIOS
Con fines de documentación se pueden añadir comentarios a un
programa. Los comentarios no generan código máquina sino que
son ignorados por el compilador.

Se considera como comentario:


 Al texto que sigue a los dos slash // hasta el final de las línea.
 Al texto ( una o mas líneas ) encerrado entre /* y */

Ejemplo:

// Este es un comentario de una sola línea.


/* Este es el otro comentario de una sola línea * /
/* Este es el ejemplo de un comentario de dos líneas */

44
ALGORITMO Y ESTRUCTURA DE DATOS I

 ENTRADA Y SALIDA BÁSICA EN C++


La entrada/salida (input/output) en C++ se hace mediante los
objetos cin y cout. La forma más simple de entrada/salida se
efectúa mediante las operaciones << (operador de inserción) y >>
(operador de extracción). Toda la información que necesita el
compilador sobre cin y cout se encuentra en el archivo de cabecera
iostream.h, el que debe ser incluido en todo programa que use cin
y cout escribiendo al principio del programa la línea:

#include <iostream.h>

Donde:

 Cout es un flujo de datos que conecta el programa con la


pantalla. Cuando un programa desea enviar algo a la pantalla lo
hace insertando los datos en el flujo cout y este a su vez se
encarga de enviar los datos a la pantalla.

 Cin es un flujo de datos que conecta el teclado con el programa.


Cualquier entrada desde el teclado es enviada primero al flujo
cin. Luego el programa puede extraer (leer) datos desde este
flujo.

45
ALGORITMO Y ESTRUCTURA DE DATOS I

Pantall Cout << Variable

Teclad Cin >> Variable

 SALIDA A LA PANTALLA CON COUT

Salida de constantes:
Cout << constantes;

Donde la constante puede ser cualquier tipo de constante


incluyendo las constantes de cadena. Recuerde que las constantes
de cadena van encerradas entre comillas dobles, así para imprimir
en la pantalla una constante de cadena escribiríamos:
Cout <<”aquí va la cadena a imprimir”;

Salida de variables:
Cout << variable;
Notas:

 La salida de cout se puede concatenar para hacer la salida de


distintas variables o cadenas en una sola sentencia.
 En una sentencia se puede enviar secuencias de escape con
la finalidad de mover el cursor al principio de la siguiente línea,
hacer sonar a alarma del sistema, etc.

46
ALGORITMO Y ESTRUCTURA DE DATOS I

 SECUENCIA DE ESCAPE
Las secuencias de escape proporcionan un determinado significado
al enviar ciertos caracteres especiales a la pantalla, a un archivo de
disco o a la impresora. Todas las secuencias de escape comienzan
con la barra invertida \.

Secuencia de
Descripción
escape
\n Nueva línea. Coloca el cursor al principio de la
segunda línea.
\r Retorno de carro. Coloca el cursor al principio de
la línea actual.
\t Tabulador horizontal. Mueve el cursor al siguiente
tabulador.
\a Alerta. Hace sonar la campana del sistema.
\` Imprime una comilla simple (`).
\” Imprime una comilla doble (“).
\\ Imprime una barra invertida (\)

 ENTRADA DESDE EL TECLADO DE CIN


La entrada o lectura desde el teclado para cualquier variable se
hace mediante la sentencia:

Cin >> variable;

47
ALGORITMO Y ESTRUCTURA DE DATOS I

Notas:
 La entrada con cin se puede concatenar para poder hacer la
entrada de distintas variables o cadenas en una sola
sentencia.
 Cin desprecia los caracteres blancos (espacios, tabuladores y
saltos de línea) al realizar la entrada desde el teclado. Esto
significa que no se puede leer con cin cadenas que contengan
espacios en blanco pues cin únicamente leerá la parte de la
cadena hasta el primer blanco. Si se desea leer cadenas que
contengan espacios en blanco use la función gets.

 LA FUNCIÓN GETS PARA LA ENTRADA DE CADENAS

Gets (cad);
La función gets lee una cadena de caracteres ingresada desde el
teclado, incluyendo espacios en blanco, y lo almacena en la variable
de cadena cad. Para usar la función gets debe incluirse el archivo
de cabecera stdio.h.

48
ALGORITMO Y ESTRUCTURA DE DATOS I

 OPERADORES DE INCREMENTO Y DECREMENTO

operador Acción

++ Suma 1 a su operando
-- Resta 1 a su operando

Uso de ++ y – en expresiones simples


Sea n una variable cualquiera.

Expresión Forma equivalente 1 Forma equivalente 2


n = n + 1; n ++; ++ n;
n = n – 1; n --; -- n;

Uso de ++ y – en otras expresiones


En expresiones de asignación u otras que no sean del tipo simple
se cumple que:

 Si ++ ó – están antes del operando, primero se suma o resta 1 al


operando antes de continuar con lo que sigue.
 Si ++ ó – están después del operando, primero se usa el valor
del operando y luego se le suma o resta 1.

49
ALGORITMO Y ESTRUCTURA DE DATOS I

CAPÍTULO III: ESTRUCTURAS DE CONTROL

3.1 PROGRAMACIÓN ESTRUCTURADA

 DEFINICIÓN
La programación estructurada es una forma de programar de
forma clara, para ello utiliza únicamente tres estructuras:
secuencial, selectiva simple e iterativa; siendo innecesario y
no permitiéndose el uso de la instrucción o instrucciones de
transferencia incondicional (GOTO).

 VENTAJAS DE LA PROGRAMACIÓN ESTRUCTURADA


- Los programas son más fáciles de entender. Un
programa estructurado puede ser leído en secuencia, de
arriba hacia abajo, sin necesidad de estar saltando de un
sitio a otro en la lógica, lo cual es típico de otros estilos
de programación.
- Los programas quedan mejor documentados
internamente.
- Reducción de los costos de mantenimiento.
- Aumento de la productividad del programador.

 DESVENTAJAS DE LA PROGRAMACIÓN
ESTRUCTURADA
- Es relativamente difícil de aprender ya que es para
expertos.

3.2 ESTRUCTURA DE CONTROL – TIPOS


En lenguajes de programación, las estructuras de control permiten
modificar el flujo de ejecución de las instrucciones de un programa.

Con las estructuras de control se puede:


 De acuerdo a una condición, ejecutar un grupo u otro de
sentencias (IF-ELSE y CASE OF)
 Ejecutar un grupo de sentencias HACER MIENTRAS exista
una condición (DO-WHILE)

50
ALGORITMO Y ESTRUCTURA DE DATOS I

 Ejecutar un grupo de sentencias REPETIR -HASTA que


exista una condición (REPEAT-UNTIL)
TIPOS
 SECUENCIAL
 SELECTIVA SIMPLE
 ITERACIÓN

3.2.1 SECUENCIAL
La estructura secuencial se refiere a la ejecución de una
secuencia de instrucciones en el orden en que aparecen, de
forma que cada instrucción se ejecuta exactamente una vez.

EJEMPLO Nº 11
BEGIN
REAL base, altura, área, perímetro
READ base, altura
área  base*altura
perímetro  2*(base+altura)
WRITE área, perímetro
END
Esta secuencia de instrucciones permuta los valores de x e y, con
ayuda de una variable auxiliar, intermedia.
1º Guardamos una copia del valor de x en auxiliar.
2º Guardamos el valor de y en x, se pierde el valor anterior de x
pero no importa porque tenemos una copia en auxiliar.
3º Guardamos en y el valor de auxiliar, que es el valor inicial de x.

El resultado es el intercambio de los valores de x e y, en tres


operaciones secuenciales.

ESTRUCTURA SELECTIVA
Las estructuras de selección son estructuras de control utilizadas
para la toma de decisiones dentro de un programa. A estas
estructuras se les conoce también como estructuras selectivas o
estructuras de decisión.

51
ALGORITMO Y ESTRUCTURA DE DATOS I

 TIPOS DE ESTRUCTURA SELECTIVA

DE SELECTIVA DOBLE
SELECCION

3.2.2 SELECTIVA SIMPLE IF (SI)


La estructura selectiva simple SI (en ingles IF) ejecuta una
determinada acción cuando se cumple una determinada
condición.

La selección SI evalúa la condición.

- Si la condición es verdadera, entonces ejecuta la acción


S1 (o acciones caso de ser S1 una acción compuesta y
constar de varias acciones)
- Si la condición es falsa, entonces no hace nada.

DIAGRAMA DE FLUJO:

condición
falsa

verdadera

accion S1

52
ALGORITMO Y ESTRUCTURA DE DATOS I

SINTAXIS:
SINTAXIS EN ESPAÑOL SINTAXIS EN INGLES

SI <condición> IF <condición>

<acción S1> <acción S1>

FIN _ SI ENDIF

EJEMPLO Nº 12:

PSEUDOCÓDIGO:
 Construya un algoritmo en pseudocódigo tal que, dado los
valores enteros P y Q, que deben leerse del teclado,
determine si los mismos satisfacen la siguiente expresión:

 En este caso debe escribir por pantalla los valores P y Q.

ALGORITMO Problema
VARIABLES
p, q SON ENTEROS
BEGIN
WRITE p
WRITE q
IF p^3 + q^4 -2*p^2<680
WRITE “Los Valores de p y q son:”
WRITE “p=“, p, “q=“, q
END_SI
END

53
ALGORITMO Y ESTRUCTURA DE DATOS I

EN C++:
Según una calificación imprimir si es aprobada

#include <stdio.h>
#include <conio.h>
int main ()

{
float Cal;
clrscr();
printf ("Introduzca la calificación: ");
scanf ("%f", &Cal);
if ( Cal >= 11 )
printf("Aprobó.");

return 0;
}

3.2.3 SELECTIVA DOBLE ( SI - SINO)


La estructura de selección doble permite seleccionar una
ruta de dos rutas posibles en base a la verdad o falsedad de
una condición.

 Si la condición es verdadera, entonces ejecuta la acción


S11 (o acciones caso de ser S11 una acción compuesta
y constar de varias acciones)
 Si la condición es falsa, entonces ejecuta la acción S21
(o acciones caso de ser S21 una acción compuesta y
constar de varias acciones)

DIAGRAMA DE FLUJO

si

54
ALGORITMO Y ESTRUCTURA DE DATOS I

SINTAXIS:

PSEUDOCODIGO EN PSEUDOCODIGO EN
ESPAÑOL INGLES

SI <condicion> IF <condición>
<accion S11> <acción S11>
<accion S12> <acción S12>
… …
<accion S2n> <acción S2n>
SI_NO ELSE
<acción 21> <acción 21>
<acción 22> <acción 22>
… …
<acción S1n> <acción S1n>
FIN_SI ENDIF

EJEMPLO Nº 13
La siguiente estructura de selección doble determina si una
persona es mayor o menor de edad:

IF edad >= 18
estado  "Mayor de e
d
a
d“
ELSE
estado  "Menor de e
d
a
d“
ENDIF
WRITE estado

Esto imprime "Mayor de edad", si la persona tiene 18 años a más


e imprime "Menor de edad" si la persona tiene menos de 18 años.
En cualquiera de los casos, después se efectuará la impresión

EN C++:
Imprimir si un número es par o impar

#include <stdio.h>
#include <conio.h>
int main()

55
ALGORITMO Y ESTRUCTURA DE DATOS I

{
int num;
clrscr();
printf("Introducir un número:\n");
scanf("%d",&num);
if ( num % 2 == 0 )
printf("%d es par.",num);
else
printf("%d es impar.",num);

return 0;
}

3.2.4 SELECTIVA MULTIPLE IF – ELSE- IF ( SI – SINO - SI)


Puede contener instrucciones sencillas o compuestas.
Pueden estar incluidas una o más instrucciones If - else. Al
incluir una o más instrucciones de if en una instrucción de if
existente se crean las instrucciones anidadas If.

EJEMPLO Nº 14
Este algoritmo lee tres números A, B, C, imprimiendo el valor
del más grande. Se supone que los tres valores son
diferentes.
Read (A, B, C) // Entrada de valores

if A > B // Se determina el valor más grande mediante comprobación


// por pares

then if A > C

then MAX  A (A > B, A > C)

else MAX  C (C > A >

B) else if B > C

then MAX  B (B > A, b >

C) else MAX  C (C > B

> A)

Write `El valor más grande es`, MAX // Se imprime el valor más grande

Exit // Termino

56
ALGORITMO Y ESTRUCTURA DE DATOS I

EJEMPLO Nº 15
#include<iostream.h>
int main ( )
{
char codigo;
cout << "Introduzca un código especificado: ";
cin >> codigo;
if (codigo == 'S' )
cout << "El componente tiene calificación de exploración
espacial . ";
else if (codigo == ‘M’)
cout << "El componente tiene calificación de militar. ";
else if (codigo == ‘C’)
cout << "El componente tiene calificación de comercial. ";
else if (codigo == 'J' )
cout << "El componente tiene calificación de juguete. ";

else
cout << "Se insertó un código invalido. ";
cout << endl;
getch();
return 0;
}

3.2.5 SELECTIVA DE CONTROL CASE OF ( SEGÚN SEA)


Esta sentencia se utiliza para elegir entre diferentes
alternativas. Esta se compone de varias sentencias simples,
cuando se ejecuta, una y solo una de las sentencias simples
se selecciona y ejecuta.

57
ALGORITMO Y ESTRUCTURA DE DATOS I

…… Sn
S1 S2 S3 S4

La sintaxis es la siguiente:
Según sea (selector) hacer
caso1, caso2, ..: sentencia 1
.... : .....
caso1n, caso2n, ..: sentencia n
sino
sentencia opcional
fin_según

El valor de selector debe ser un tipo ordinal, y los valores


constantes deben tener el mismo tipo que el selector. Se
pueden utilizar sentencias if anidados, pero la sentencia
según sea es más legible.

SINTAXIS:

PSEUDOCÓDIGO EN PSEUDOCÓDIGO EN
ESPAÑOL INGLES
En caso que E sea CASE EXPRESION OF
c1: acción S1 [c1]: acción S1
c2: acción S2 [c2]: acción S2
… …
cn: acción Sn> [cn]: acción Sn>
de otra forma: otherwise
acción Sx acción Sx
fin_caso ENDCASE
58
ALGORITMO Y ESTRUCTURA DE DATOS I

EJEMPLO Nº 16

EN C++:
Imprimir a que día de la semana corresponde un número.

#include
<stdio.h>
#include
<conio.h> int
main()
{
int
Dia;
clrscr(
);
printf("Escriba el número de día:
\n"); scanf("%d",&Dia);

switch(Dia)
{
case 1: printf("El %d corresponde a
Lunes.",Dia); break;
case 2: printf("El %d corresponde a
Martes.",Dia); break;
case 3: printf("El %d corresponde
a Miércoles.",Dia);break;
case 4: printf("El %d corresponde a
Jueves.",Dia); break;
case 5: printf("El %d corresponde a
Viernes.",Dia); break;
case 6: printf("El %d corresponde a
Sábado.",Dia); break;
case 7: printf("El %d corresponde
a Domingo",Dia);break;
default: printf ("El %d día no existe en
la semana.",Dia);
getch();
}
return 0;
}

59
60