You are on page 1of 86

LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

DESGLOSE DE
TEMAS
GLOSARIO
BIBLIOGRAFIA

MANUAL DEL DOCENTE

LOGICA DE PROGRAMACION

GUÍA DEL PROFESOR


SECRETARÍA DE EDUCACIÓN PÚBLICA
Universidad Tecnológica de Izúcar de Matamoros
Carrera de Tecnologías de la Información Área Sistemas Informáticos

ACADEMIA DE TECNOLOGIAS DE
ELABORÓ: LA INFORMACION AREA SISTEMAS REVISÓ:
INFORMATICOS
FECHA DE
COORDINACIÓN GENERAL DE
APROBÓ: ENTRADA EN SEPTIEMBRE 2005
UNIVERSIDADES TECNOLÓGICAS VIGOR:
Revisión no. 0. Fecha de revisión: septiembre, 2005. Página 1 de 54

Director:
ING. EDGAR LEÓN OLIVARES
I. DIRECTORIO

1
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Dr. Reyes Taméz Guerra


Secretario de Educación Pública
Dr. Julio Rubio Oca
Subsecretario de Educación Superior e Investigación Científica
DR. Arturo Nava Jaimes
Coordinador General de Universidades Tecnológicas
Reconocimientos
Universidad Tecnológica Emiliano Zapata
Divisiones de Informática

Calidad en el Desarrollo de Software D.R.  20005

ESTA OBRA, SUS CARACTERÍSTICAS Y DERECHOS SON PROPIEDAD DE LA: COORDINACIÓN GENERAL DE
UNIVERSIDADES TECNOLÓGICAS (CGUT) FRANCISCO PETRARCA No. 321, COL. CHAPULTEPEC MORALES,
MÉXICO D.F. LOS DERECHOS DE PUBLICACIÓN PERTENECEN A LA CGUT. QUEDA PROHIBIDA SU
REPRODUCCIÓN PARCIAL O TOTAL POR CUALQUIER MEDIO, SIN AUTORIZACIÓN PREVIA Y POR ESCRITO DEL
TITULAR DE LOS DERECHOS.
ISBN (EN TRÁMITE)
IMPRESO EN MÉXICO.

II. ÍNDICE

# CONTENIDO PAGINA

2
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

I. DIRECTORIO Y RECONOCIMIENTOS 1
II. ÍNDICE 2
III. INTRODUCCIÓN DE LA ASIGNATURA 4
IV. UNIDADES TEMÁTICAS 5

5
UNIDAD I. CONCEPTOS BASICOS 17
UNIDAD II. EXPRESIONES
UNIDAD III. DIAGRAMAS DE FLUJO Y PSEUDOCODIGO 22
UNIDAD IV. ARREGLOS 28

37
V. REFERENCIAS 43
VI. GLOSARIO 44
VIII. ANEXOS (FIGURAS, TABLAS, ETC.)
1. Evaluación del curso 47
2. Resultados Finales 49

III. INTRODUCCIÓN DE LA ASIGNATURA.

La Informática tiene su trascendencia desde el momento que surge información en


cualquier entidad, tiene como base presentar la información en forma rápida, eficiente y
segura. Para lograr este objetivo se requiere allegar al profesional en Informática de las
herramientas que le permitan manipular la información con éxito para la toma oportuna de
decisiones, de ahí surge la importancia de la Lógica de Programación.

3
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

El presente documento pretende brindar al profesor una guía para impartir la


asignatura de Lógica de Programación, en forma homogénea en todo el sistema de
Universidades Tecnológicas a fin de elevar la calidad académica y asegurar el éxito de futuro
de los egresados.

Fundamentalmente se trata que los alumnos apliquen un razonamiento sistemático,


basado en la lógica para resolver problemas de tipo algorítmico independientemente de un
lenguaje de programación. Esto se caracteriza por la necesidad de un análisis profundo y
sistemático y de un pensamiento flexible y estructurado para lacanzar su solución.

Se sabe que no existen reglas especificas para resolver un problema, sin embargo, se
pueden ofrecer un conjunto de técnicas y herramientas metodológicas que permitan
flexibilizar y estructurar el razonamiento seguido por un alumno en la solución de un
problema, por eso es importante enseñar e inducir al alumno a observar el problema desde
diferentes ángulos, a ser flexibles en el razonamiento que conduzca a su solución, a no
encerrarse en un solo punto de vista, a tener una mente crítica y a tener una metodología
bien estructurada para poder atacar los problemas.

4
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

IV. UNIDADES TEMATICAS

UNIDAD 1
CONCEPTOS BASICOS

INTRODUCCIÓN

El propósito de esta primera unidad de la asignatura de Lógica de Programación es


introducir a los alumnos en el tema de algoritmos, como una herramienta de interpretación de
un problema real en una solución computacional. Los algoritmos son independientes tanto
del lenguaje de programación en que se expresan como de la computadora que los ejecuta.
En cada problema el algoritmo se puede expresar en un lenguaje diferente de programación
y ejecutarse en una computadora distinta; sin embargo, el algoritmo será siempre el mismo.

Esta unidad esta integrada por 4 objetivos de aprendizaje que permitirán al alumno
desarrollar el diseño de algoritmos ya que requieren creatividad y conocimientos profundos
de las técnicas de programación.

OBJETIVO Y CRITERIOS DE APRENDIZAJE Página

1. Aprenderá en forma general los conceptos de algoritmo, seudocódigo y 7


diagrama de flujo; sabrá diferenciarlos y decidir cuando aplicar cada
herramienta.
1.1 Definir el concepto de algoritmo, seudocódigo y diagrama de flujo. 7
1.2 Observar la habilidad analítica del alumno al definir las partes principales
de un problema. 7
1.3 Fomentar la estructuración de una tarea, al elaborar ordenadamente una
tarea concreta 7
DEMOSTRACIÓN DE HABILIDADES PARCIALES (RESULTADO DE
APRENDIZAJE)
1.1.1 Diferenciar las aplicaciones que existen entre un algoritmo, seudocódigo y 8
diagrama de flujo.
1.1.2 Identificar el punto clave para la solución de un problema. 9
1.1.3.- Utilizar la herramienta correcta para la solución del problema 9

OBJETIVO Y CRITERIOS DE APRENDIZAJE


2. Identificará los tipos de operadores por sus características 9
2.1. Describir las características de los operadores aritméticos. 9
2.2 Describir las características de los operadores relacionales. 10
2.3 Describir las características de los operadores lógicos. 10
2.4 Explicar la tabla de jerarquía, aprender su prioridad y reglas de aplicación. 10

5
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

DEMOSTRACIÓN DE HABILIDADES PARCIALES (RESULTADO DE


APRENDIZAJE)
2.1.1 Diferenciar cada uno de los tipos de operadores 11
2.1.2 Identificar el orden de procedencia de los operadores. 11
2.1.3 Reafirmar las reglas de aplicación de los operadores 12

OBJETIVO Y CRITERIOS DE APRENDIZAJE


3.- Distinguirá los tipos de datos de acuerdo a su uso 12
3.1. Explicar los tipos de datos numericos. 12
3.2 Explicar los tipos de datos de caracteres. 13
3.3 Explicar los tipos de datos de cadenas. 13
3.4 Explicar los tipos de datos booleanos. 13
DEMOSTRACIÓN DE HABILIDADES PARCIALES (RESULTADO DE
APRENDIZAJE)
3.1.1 Resolver operaciones con datos numericos 13
3.1.2 Resolver operaciones con datos de caracteres. 13
3.1.3 Resolver operaciones con datos de cadenas 14
3.1.4 Resolver operaciones con datos booleanos 14

OBJETIVO Y CRITERIOS DE APRENDIZAJE


4. Manejará las variables y constantes de acuerdo a las operaciones realizadas 14
4.1 Identificar los tipos de variables y constantes enteras. 14
4.2 Identificar los tipos de variables y constantes reales. 15
4.3 Identificar los tipos de variables y constantes de caracter y de cadena. 15
4.4 Identificar los tipos de variables y constantes logicas. 15
DEMOSTRACIÓN DE HABILIDADES PARCIALES (RESULTADO DE
APRENDIZAJE)
4.1.1 Manejar operaciones con los diferentes tipos de variables 16
4.1.2 Manejar operaciones con los diferentes tipos de constantes 16

TEMA 1
Objetivo de Aprendizaje:

1. Aprenderá en forma general los conceptos de algoritmo, seudocódigo y diagrama de flujo;


sabrá diferenciarlos y decidir cuando aplicar cada herramienta.

6
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Criterio de aprendizaje :
1.1 Definir el concepto de algoritmo, seudocódigo y diagrama de flujo.

Algoritmo. Serie de pasos que solucionan un problema o realizan un objetivo específico.


Seudocódigo. Serie de instrucciones abstractas que resuelven un problema.
Diagrama de flujo. Representación gráfica de un procedimiento.
1.2 Observar la habilidad analítica del alumno al definir las partes principales de un problema
Para llegar a la realización de un programa es necesario el diseño previo de un algoritmo, de
modo que sin algoritmos no puede existir un programa, es por ello que se debe definir las
partes principales de un problema para su resolución por medio de preguntas informales. Por
ejemplo, para cambiar una bombilla quemada, proceso por demás común, la operación
básica puede expresarse en dos simples pasos:
1. Quítese la bombilla quemada
2. Colóquese una nueva
Pero, ¿Qué se necesita para quitar la bombilla antigua?, ¿Cómo se quita específicamente
la bombilla?, ¿Qué se necesita para colocar la nueva bombilla?, ¿Cómo se coloca
específicamente la nueva bombilla?
Al formular este tipo de preguntas se tendrá como objetivo obtener el grado de análisis de
un problema que tiene un alumno.

1.3 Fomentar la estructuración de una tarea, al elaborar ordenadamente una tarea concreta
La resolución de un problema exige el diseño de un algoritmo que resuelva el problema
propuesto. Los pasos para la resolución de un problema son:
1. Diseño del algoritmo que describe la secuencia ordenada a de pasos sin
ambigüedades que conducen a la solución de un problema dado (análisis del
problema y desarrollo del algoritmo).
2. Expresar el algoritmo como un programa en un lenguaje de programación adecuado
(fase de codificación).
3. Ejecución y validación del programa por la computadora.

Las características fundamentales que debe cumplir todo algoritmo son:


1. Debe tener precisión e indicar el orden de realización de cada uno.
2. Debe estar definido, si se sigue un algoritmo dos veces, se debe obtener el mismo
resultado cada vez.
3. Debe ser finito, en algún momento debe terminar.
Resultado de Aprendizaje
1.1.1 Diferenciar las aplicaciones que existen entre un algoritmo, seudocódigo y diagrama
de flujo.

Ejercicio 1.
Obtenga el área de un rectángulo utilizando las herramientas de programación
algoritmo, pseudocódigo y diagrama de flujo.

Algoritmo.
1. Obtener la medida de la base de la figura.
7
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

2. Obtener la medida de la altura de la figura.


3. Multiplicar la medida de la base por la medida de la altura.
Pseudocódigo.
1. Inicio
2. Leer BASE
3. Leer ALTURA
4. AREA = BASE * ALTURA
5. Escribir AREA
6. Fin

Diagrama de flujo

Inicio

Obtener base
y altura

Multiplicar
base * altura

Mostrar
resultado

Fin

1.1.2 Identificar el punto clave para la solución de un problema

Ejercicio 2.
Realice un análisis para intercambiar los valores de dos variables numéricas.

Para realizar este análisis se utiliza una variable auxiliar que de modo temporal toma
uno de los valores dados:
Variables: A, B, AUX
El método consiste en asignar una de las variables a la variable auxiliar:
AUX = A
A continuación se asigna el valor de la otra variable B a la primera:
A=B
Por último, se asigna el valor de la variable auxiliar a la segunda variable A:
B = AUX
8
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

1.1.3 Utilizar la herramienta correcta para la solución del problema


Ejercicio 3.
De acuerdo al análisis del problema anterior, determine cuál de las tres herramientas
de programación es la adecuada para resolver el problema.

Cualquiera de las tres herramientas nos pueden ayudar a la solución del problema,
siempre y cuando sepamos interpretar cada una de ellas, tal y como se vio en el
ejercicio 1.

TEMA 2

Objetivo de Aprendizaje:
2. Identificar los tipos de operadores por sus características.

Criterio de aprendizaje:
2.1 Describir las características de los operadores aritméticos

Operadores aritméticos.
Son aquellos que son análogos a las fórmulas matemáticas.
Símbolo Acción Ejemplo Resultado
+ Suma dos números 4+5 9
- Resta el segundo número del primero 7-3 4
* Multiplica dos números 4*8
/ Divide dos números. 5/2 2.5
El resultado es un número real (parte
entera y fraccionaria)
Div Divide dos números, regresa 5/2 2
solamente la parte entera del
cociente.
Mod Obtiene el residuo de la división 5/2 1
entera de dos números.

9
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

2.2 Describir las características de los operadores relacionales


Operadores relacionales.
Permiten comparar en que posición de la recta numérica se encuentran los números. Tras
la comparación se obtiene un resultado calificado como falso o verdadero.
Símbolo Descripción Ejemplo Resultado
< Menor que 5<9 verdadero
> Mayor que 9 > 11 falso
= Igual que 7=7 Verdadero
<= Menor o igual que 5 <= 9 Verdadero
>= Mayor o igual que 9 >= 11 Falso
<> Diferente de 7 <> 7 Falso

2.3 Describir las características de los operadores lógicos

Operadores lógicos.
Pueden ser utilizados para formar condiciones más complejas al combinar condiciones
simples.
Símbolo Descripción Ejemplo Resultado
AND Conjunción Y (1 > 0) AND(3 = 3) Verdadero
OR Disyunción O (0 < 5) OR (0 > 5) Verdadero
NOT Negación NO NOT (5 <>5) Verdad

2.4 Explicar la tabla de jerarquía, aprender su prioridad y reglas de aplicación

Las reglas de prioridad o procedencia que permiten determinar el orden de las


operaciones son:
1. Las operaciones que están encerradas entre paréntesis se evalúan primero. Si existen
diferentes paréntesis anidados (internos unos a otros), las expresiones más internas
se evalúan primero.
2. Las operaciones aritméticas suelen seguir el siguiente orden de prioridad:
• Operador exponencial
• Operadores de multiplicación y división
• Operador de módulo
• Operadores de suma y resta
3. En caso de coincidir varios operadores de igual prioridad en una expresión o sub
expresión encerrados entre paréntesis, el orden de prioridad en este caso es de
izquierda a derecha.
4. De modo similar, los operadores relacionales tienen un orden de prioridad:
• De izquierda a derecha >, <, >=, <=
• Diferente de < >
10
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

5. La prioridad de los operadores lógicos son:


• Conjunción Y
• Negación NO
• Disyunción O
6. La procedencia y asociatividad de operadores varía en cada lenguaje de
programación, así, por ejemplo, en C++ la procedencia es:
Operador Tipo
() Paréntesis
! No lógico
* / % Multiplicativo
> < > = <= Relacional
= Igualdad
&& And lógico
|| Or lógico

Resultado de Aprendizaje
2.2.1 Diferenciar cada uno de los tipos de operadores
Ejercicio 1.
Obtener los resultados de las siguientes expresiones:
1. 8 / 4 – 5
2. (4 - 2) < (3 - 4)
3. (5 <= 7) y (2 > 4)
Los resultados al ejercicio 1 propuesto son:
1. - 3 2. Falso 3. Falso

2.2.2 Identificar el orden de procedencia de los operadores


Ejercicio 2.
Calcular el valor de las siguientes expresiones:
1. 8 + 7 * 3 + 4 * 6
2. (33 + 3 *4) /5
3. 16 * 6 – 3 * 2
Los resultados del ejercicio 2 son:
1. 8 + 7 * 3 + 4 * 6

8 + 21 + 24

29 + 24

53
2. (33 + 3 * 4) / 5

(33 + 12 ) / 5

45 /5

9
3. 16 * 6 – 3 * 2
11
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

96 - 3 * 2

96 - 6

90

12
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

2.2.3 Reafirmar las reglas de aplicación de los operadores


Ejercicio 3
Deducir el valor de las expresiones siguientes:
X=A+B+C
X=A+B*C
X=A+B/C
X = A + B mod C
X = (A + B) / C
X = A + (B / C)
Siendo: A = 5 B = 25 C = 10
Expresión X
A + B + C = 5 + 25 +10 40
A + B * C = 5 + 25 *10 = 5 + 250 255
A + B / C = 5 + 25 / 10 = 5 + 2 7
A + B mod C = 5 + 25 mod 10 = 5 + 5 10
(A + B) / C = (5 + 25) /10 = 30 / 10 3
A + (B / C) = 5 + (25 / 10) = 5 + 2 7

TEMA 3

Objetivo de Aprendizaje:
3. Distinguirá los tipos de datos de acuerdo a su uso

Criterio de aprendizaje:

3.1. Explicar los tipos de datos numéricos.


Un dato es la expresión general que describe los objetos con los cuales opera una
computadora. Los tipos de datos son los siguientes:

Numéricos (enteros, reales)


Lógicos (booleanos)
Carácter (cadena, caracteres)

El tipo numérico es el conjunto de valores numéricos. Éstos pueden representarse en dos


formas distintas:
Tipo numérico entero (integer)
Tipo numérico real (real)

Enteros. Es un subconjunto finito de los números enteros. Los enteros son números
completos, no tienen componentes fraccionarios o decimales y pueden ser negativos o
positivos. Ejemplos de números enteros son:
5 -15 20 1340 -17

13
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Reales. Consiste en un subconjunto de los números reales. Los números reales siempre
tienen un punto decimal y pueden ser positivos o negativos. Un número real consta de un
número entero y una parte decimal. Los siguientes ejemplos son números reales:
0.08 3.74 -8.12 3.0

3.2 Explicar los tipos de datos de caracteres.


El tipo carácter es el conjunto finito y ordenado de caracteres que la computadora reconoce.
Un dato tipo carácter contiene un solo carácter.

Los caracteres que reconocen las diferentes computadoras no son estándar, sin embargo, la
mayoría reconoce los siguientes caracteres alfabéticos y numéricos:
• Caracteres alfabéticos: (A, B, C, ...., Z) (a, b, c, ..., z)
• Caracteres numéricos (1, 2, ...., 9, 0)
• Caracteres especiales (*, -, +, ., :, ;, >, <, $, ...)

3.3 Explicar los tipos de datos de cadenas.


Una cadena de caracteres (string) es una sucesión de caracteres que se encuentran
delimitados por una comilla (apóstrofo) o dobles comillas, según el tipo de lenguaje de
programación. La longitud de una cadena de caracteres es el número de ellos comprendidos
entre los separadores o limitadores. Algunos lenguajes tienen datos tipo cadena:
‘Hola Mortiner’
‘8 de octubre de 1946’
‘Sr. McKenna’

3.4 Explicar los tipos de datos booleanos.


El tipo lógico , también denominado booleano, es aquel dato que solo puede tomar uno de
dos valores:
Cierto o verdadero (true) y falso (false)
Este tipo de datos se utiliza para representar las alternativas (si/no) a determinadas
condiciones. Por ejemplo, cuando se pide si un valor entero es par, la respuesta será
verdadera o falsa, según sea par o impar.

Resultado de Aprendizaje
3.1.1 Resolver operaciones con datos numericos
Ejercicio 1.
Realice un algoritmo, que dado los números enteros A y B, escriba el resultado de la
siguiente expresión:
(A + B)2
3
Datos: A, B
Donde: A y B son variables de tipo entero, que expresan los datos que se
ingresan.
Algoritmo:
1. Pida los valores de A y B
2. Sume los valores de A y B
3. Eleve a la segunda potencia el resultado de A + B
4. Divida el resultado de la potencia entre 3
14
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

5. Asigne el resultado de la división a la variable RES


6. Imprima el valor de RES

3.1.2 Resolver operaciones con datos de caracteres.


Ejercicio 2.
Realice un algoritmo que pida un nombre de 4 letras, que las lea letra por letra y
despliegue el nombre completo

15
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Datos: LET1, LET2, LET3, LET4


Donde: LET1, LET2, LET3 y LET4 son las variables de tipo caracter donde se van
a almacenar las letras del nombre
Algoritmo:
1. Pida el valor de LET1
2. Pida el valor de LET2
3. Pida el valor de LET3
4. Pida el valor de LET4
5. Despliegue los valores de LET1, LET2, LET3, LET4 en forma
continua

3.1.3 Resolver operaciones con datos de cadenas


Ejercicio 3.
Realice un algoritmo que pida el nombre de una persona y lo despliegue con la fecha
actual en un mensaje que diga "<nombre_ de_la_persona> la fecha de hoy es
<fecha>"
Datos: NOMBRE
Donde: NOMBRE es la variable de tipo cadena donde se almacenará el nombre
de la persona
Algoritmo:
1. Pida el nombre de la persona y asígnelo a NOMBRE
2. Asigne 'Jueves 13 de junio de 2002' a FECHA
3. Imprima el valor de NOMBRE
4. Despliegue el texto ' la fecha de hoy es: '
5. Despliegue el valor de FECHA

3.1.4 Resolver operaciones con datos booleanos


Ejercicio 4.
Realice un algoritmo que pida dos valores A y B, y los compare, si el valor de A es
mayor que el valor de B, que despliegue un mensaje de A>B
Datos: AyB
Donde: A y B son variables de tipo entero que contienen lo valores
Algoritmo:
1. Pida los valores de A y B
2. Compare los valores de A y B
3. Asigne el resultado de la comparación a VALOR
4. Si VALOR es verdadero imprima ' A > B'

TEMA 4

Objetivo de Aprendizaje:
4. Manejará las variables y constantes de acuerdo a las operaciones realizadas

Criterio de aprendizaje:
4.1 Identificar los tipos de variables y constantes enteras.
Los programas de computadora contienen ciertos valores que no deben cambiar durante la
ejecución del programa. Tales valores se llaman constantes. De igual forma, existen otros

16
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

valores que cambian durante la ejecución del programa, a estos valores se les llama
variables.

Una variable es un objeto o partida de datos cuyo valor puede cambiar durante el desarrollo
del algoritmo o ejecución del programa. Dependiendo del lenguaje, hay diferentes tipos de
variables, tales como enteras, reales, caracteres, lógicas y de cadena.

Una variable que es de cierto tipo puede tomar únicamente valores de ese tipo. Si se intenta
cambiar un valor de un tipo a una variable de otro tipo se producirá un error de tipo. Una
variable se identifica por los siguientes atributos: nombre que lo asigna y tipo que describe el
uso de la variable. Los nombres de las variables, a veces conocidos como identificadores,
suele constar de varios caracteres alfanuméricos, de los cuales el primero normalmente es
una letra.

Nombres válidos de variables son:


A510
NOMBRES
NOTAS
NOMBRE_APELLIDOS

Los nombres de las variables elegidas para el algoritmo o programa deben ser significativos y
tener relación con el objeto que representan, como pueden ser los casos siguientes:
NOMBRE para representar nombres de personas
PRECIOS para representar los precios de diferentes artículos
NOTAS para representar las notas de una clase

4.2 Identificar los tipos de variables y constantes reales.


Una constante es una partida de datos (objetos) que permanecen sin cambios durante el
desarrollo de algoritmos o durante la ejecución del programa.

Constantes reales válidas:


1.258
-0.2547

4.3 Identificar los tipos de variables y constantes de carácter y de cadena.


Una constante tipo caracteres o constante de caracteres consiste en un caracteres válido
encerrado dentro de apóstrofos, por ejemplo:
‘B’ ‘+’ ‘4’

Una secuencia de caracteres se denomina normalmente una cadena y una constante tipo
cadena es una cadena encerrada entre apóstrofos. Por consiguiente:
‘Juan Minguez’ y ‘Pepe Luis García’
son constantes de cadenas válidas.

4.4 Identificar los tipos de variables y constantes lógicas.

17
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

De las constantes lógicas solo existen dos tipos:


Verdad y falso

La mayoría de los lenguajes de programación permiten diferentes tipos de constantes:


enteras, reales, caracteres y booleano o lógicas y representan datos de esos tipos.
Resultado de Aprendizaje
4.1.1 Manejar operaciones con los diferentes tipos de variables
Ejercicio 1.
Realice un algoritmo que calcule el area de un rectangulo
Datos: BASE, ALTURA,
Donde: BASE, ALTURA son las variables que contienen los valores del
rectangulo
Algoritmo:
1. Pida el valor de BASE
2. Pida el valor de ALTURA
3. Multiplique BASE * ALTURA y asignelo a AREA
4. Imprima el valor de AREA
Ejercicio 2.
Realice un algoritmo que calcule el pago de un producto, pida el nombre del producto,
el precio, la cantidad y despliegue el total a pagar de ese producto
Datos: PRODUCTO, PRECIO, CANTIDAD
Donde: PRODUCTO es una variable de tipo cadena que almacena el nombre
del producto
PRECIO, CANTIDAD son las variables de tipo entero que contienen los
valores del precio y la cantidad de productos
Algoritmo:
1. Pida el nombre del producto y lo asigna a PRODUCTO
2. Pida el precio del producto y lo asigan a PRECIO
3. Pida la cantidad de producto y lo asigna a CANTIDAD
4. Multiplique CANTIDAD * PRECIO y asigne el valor a TOTAL
5. Despliegue el valor de PRODUCTO
6. Despliegue el valor de TOTAL

4.1.2 Manejar operaciones con los diferentes tipos de constantes


Ejercicio 3.
Realice un algoritmo que calcule el area de un circulo
Datos: RADIO
Donde: RADIO es la variable de tipo entera que almacena el valor del radio del
circulo
Algoritmo:
1. Pida el valor de RADIO
2. Calcule el cuadrado de RADIO
3. Multiplique el resultado del cuadrado por la constante PI, 3.14
4. Asigne el resultado de la multiplicación a AREA
5. Imprima el valor de AREA

18
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

UNIDAD 2
EXPRESIONES

INTRODUCCIÓN

En esta segunda unidad se pretende que el alumno interprete en una representación


algoritmica las notaciones matemáticas tradicionales de las operaciones básicas que se
realizan en cualquier programa.

La unidad está integrada por 2 objetivos de aprendizaje que permitirán al alumno desarrollar
las primeras construcciones y elementos de un lenguaje de programación.

OBJETIVO Y CRITERIOS DE APRENDIZAJE Página

1. Aprenderá el desarrollo de las conversiones de expresiones algebraicias a 18


aritméticas.
1.1 Explicar qué es una expresión aritmética. 18
1.2 Describir el desarrollo de conversiones algebraicas a aritméticas. 18

DEMOSTRACIÓN DE HABILIDADES PARCIALES (RESULTADO DE


APRENDIZAJE)
1.1.1 interpretar el desarrollo de una conversion de expresión aritmética a 18
algebraica.

OBJETIVO Y CRITERIOS DE APRENDIZAJE


2.- Ejemplificará la solución de algún problema a través de expresiones
aritméticas lógicas 19
2.1 Explicar qué es una expresión aritmética lógica. 19
2.2 Describir el desarrollo de la solución de un problema. 19
DEMOSTRACIÓN DE HABILIDADES PARCIALES (RESULTADO DE
APRENDIZAJE)
2.1.1 Realizar conversiones algebraicas a aritméticas utilizando la 20
respresentación aritmética lógica

19
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

TEMA 1

Objetivo de Aprendizaje:
1. Aprenderá el desarrollo de las conversiones de expresiones algebraicas a aritméticas.

Criterio de aprendizaje:
1.1 Explicar qué es una expresión aritmética.
Las expresiones son combinaciones de constantes, variables, símbolos de operación,
paréntesis y nombres de funciones especiales. Las mismas ideas son utilizadas en notación
matemática tradicional, por ejemplo:
A + (b + 3) + √ c

Aquí los paréntesis indican el orden de cálculo y √ representa la función raíz cuadrada.
Cada expresión toma un valor que se determina tomando los valores de las variables y
constantes implicadas y la ejecución de las operaciones indicadas.

Una expresión consta de operando y operadores. Según el tipo de objetos que manipulan, las
expresiones se clasifican en:
Aritméticas
Lógicas
Carácter

El resultado de la expresión aritmética es de tipo numérico, el resultado de la expresión


relacional y de una expresión lógica es de tipo lógica, el resultado de una expresión carácter
es de tipo carácter.

1.2 Describir el desarrollo de conversiones algebraicas a aritméticas.


Las expresiones aritméticas son análogas a las fórmulas matemáticas. Las variables y
constantes son numéricas (real o entera) y las operaciones son las aritméticas. En la
expresión
5 + 3
los valores 5 y 3 se denominan operandos. El valor de la expresión 5 + 3 se conoce como
resultado de la expresión. Los operadores se utilizan de igual forma que en matemáticas. Por
consiguiente, A x B se escribe en un algoritmo como A * B, y 1/4 x C como C/4. Ejemplos:

5 x 7 se representa por 5 * 7

6 se representa por 6 / 4
4

El tipo de expresiones lógicas siempre tiene un valor de falso o verdadero

20
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Resultado de Aprendizaje
1.1.1 interpretar el desarrollo de una conversión de expresión aritmética a algebraica.
Ejercicio 1.
Convertir las expresiones aritméticas algorítmicas las siguientes expresiones algebraicas:
5(x+y)
x+y
u+w
a

x(z + w)
y

Los resultados serán:


5 * (x + y)
(x + y) / (u + w /a)
x / y * (z + w)

TEMA 2

Objetivo de Aprendizaje:
2.- Ejemplificará la solución de algún problema a través de expresiones aritméticas lógicas

Criterio de aprendizaje:
2.1. Explicar qué es una expresión aritmética lógica.

Las expresiones lógicas o booleanas, llamadas así en honor del matemático George
Boole, están constituidas por números, constantes o variables y operadores lógicos o
relacionales. El valor que pueden tomar estas expresiones es el de verdadero o falso.
Se utilizan frecuentemente en las estructuras selectivas (dependiendo del resultado de
la evaluación por un determinado camino alternativo) y en las estructuras repetitivas
(dependiendo del resultado de la evaluación se continua con el ciclo o se interrumpe el
mismo)

2.2 Describir el desarrollo de la solución de un problema.


Una expresión lógica es una expresión que sólo puede tomar estos dos valores de falso
o verdadero y forman combinando constantes lógicas, variables lógicas y otras
expresiones lógicas, utilizando los operadores lógicos AND, OR, NOT y los operadores
relacionales >, <, =, >=, <=, <>.

Los operadores de relación se pueden aplicar a los 4 tipos de datos estándar: enteros,
real, lógico, carácter. La aplicación a valores numéricos es evidente. Los ejemplos
siguientes son significativos:
Expresión lógica Resultado
3<6 Verdadero
0>1 Falso
4=2 Falso
8 <= 5 Falso
21
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

9 >= 9 Verdadero
5 <> 5 Falso

En las expresiones lógicas se pueden mezclar operadores de relación y lógicos. Así, por
ejemplo:

(1 < 5) y (5 < 10) es verdad


(5 > 10) o ('A' < 'B') es verdad, ya que 'A' < 'B'

Resultado de Aprendizaje
2.1.1 Realizar conversiones algebraicas a aritméticas utilizando la representación aritmética
lógica
Ejercicio 1.
Resuelva las siguientes expresiones lógicas con operadores relacionales
1. A2 > (B * 2)
Donde A = 5 y B = 16
Resultado
A2 > ( B * 2)
52 > (16 * 2)

25 > (16 * 2)
25 > 32
FALSO

2. (X * 5 + B 3 /4) <= (X 3 div B)


Donde X = 6 y B = 7.8
Resultado
(X * 5 + B 3 / 4) <= (X 3 div B)
(6 * 5 + 7.8 3 / 4) <= (63 div 7.8)

(6 * 5 + 474.552 / 4) <= (63 div 7.8)

( 30 + 474.552 / 4) <= (63 div 7.8)

( 30 + 118.638) <= (63 div 7.8)

148.638 <= (63 div 7.8)

148.638 <= (216 div 7.8)

148.638 <= 27.692

FALSO

22
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Ejercicio 2.
Resuelva la siguiente expresión lógica con operadores lógicos

NO (15 >= 72) O (43 - 8 * 2 div 4 <> 3 * 2 div 2 )

NO (15 >= 49) O (43 - 8 * 2 div 4 <> 3 * 2 div 2 )

NO FALSO O (43 - 16 div 4 <> 3 * 2 div 2 )

NO FALSO O (43 - 4 <> 3 * 2 div 2 )

NO FALSO O (43 - 4 <> 6 div 2 )

NO FALSO O (43 - 4 <> 3)

NO FALSO O (39 <> 3)

NO FALSO O VERDADERO

VERDADERO O VERDADERO

VERDADERO

23
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

UNIDAD 3
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO

INTRODUCCIÓN

La tercera unidad muestra el desarrollo de algoritmos en sus diferentes técnicas para que el
alumno tenga la habilidad y una capacidad de razonamiento estructurada y flexible que le
permita, en la medida que practique, obtener la soluciín a los problemas planteados.

Se integra de 3 objetivos que describen cada una de las herramientas utilizadas para el
desarrollo de dichos algoritmos y en las cuales el alumno sabrá diferenciar el uso de cada
una de ellas e implementar la que más se adecue a la solución del problema.

OBJETIVO Y CRITERIOS DE APRENDIZAJE Página

1. Aprenderá en forma general las técnicas para el desarrollo de algoritmos. 23


1.1 Definir el concepto de algoritmo. 23
1.2 Explicar las técnicas para el desarrollo de algoritmos. 23
DEMOSTRACIÓN DE HABILIDADES PARCIALES (RESULTADO DE
APRENDIZAJE)
1.1.1 Diferenciar el uso de las técnicas de desarrollo de algoritmos. 23

OBJETIVO Y CRITERIOS DE APRENDIZAJE


2. Aplicará correctamente los simbolos utilizados en los diagramas de flujo 24
2.1. Desarrollar correctamente mediante gráficas la solución de un problema. 24
DEMOSTRACIÓN DE HABIIDADES PARCIALES (RESULTADO DE
APRENDIZAJE)
2.1.1. Emplear gráficas para el desarrollo correcto de los diagramas de flujo. 26

OBJETIVO Y CRITERIOS DE APRENDIZAJE


3.- Desarrollará paso a paso la solución de un problema mediante pseudocódigo. 26
3.1. Emplear los pseudocódigos para resolver un problema. 26
DEMOSTRACIÓN DE HABIIDADES PARCIALES (RESULTADO DE
APRENDIZAJE)
3.1.1 Resolver un problema mediante el uso de pseudocódigo 27

24
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

TEMA 1

Objetivo de Aprendizaje:
1. Aprenderá en forma general las técnicas para el desarrollo de algoritmos.

Criterio de aprendizaje:
1.1 Definir el concepto de algoritmo.
Algoritmo. Es la secuencia ordenada de pasos que conducen a la solución de un
problema dado.

1.2 Explicar las técnicas para el desarrollo de algoritmos.

Para llegar a la realización de un programa es necesario el diseño previo de un algoritmo,


de modo que sin algoritmo no puede existir un programa. En la ciencia de la computación
y en la programación, los algoritmos son más importantes que los lenguajes de
programación o las computadoras. Un lenguaje de programación es tan solo un medio
para expresar un algoritmo y una computadora es sólo un procesador para ejecutarlo.
Dada la importancia del algoritmo en la ciencia de la computación, un aspecto muy
importante es el diseño de algoritmos y sus herramientas.

Las características fundamentales que debe cumplir un algoritmo son:


• Debe ser preciso e indicar el orden de realización de cada paso
• Debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo
resultado cada vez
• Debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento.

La definición de un algoritmo debe describir tres partes: entrada, proceso y salida.

Resultado de Aprendizaje
1.1.1 Diferenciar el uso de las técnicas de desarrollo de algoritmos.
Ejercicio 1.
Realice un algoritmo que calcule la suma de todos los números pares entre 2 y 1000.
El problema consiste en sumar 2 + 4 + 6 + 8 + …… + 1000
Utilizaremos las palabras SUMA y NUMERO (variables) para representar las sumas
sucesivas (2 + 4), (2 + 4 + 6), (2 + 4 + 6 + 8), etc.

La solución se puede escribir con el siguiente algoritmo:


1. Inicio
2. Establecer SUMA a 0
3. Establecer NUMERO a 2
4. Suma NUMERO a SUMA. El resultado será el nuevo valor de la suma (SUMA)
5. Incrementar NUMERO en 2 unidades
6. Si NUMERO es >= 1000 regresar al paso 4, en caso contrario, escribir el último valor
de SUMA y terminar el proceso
7. Fin
25
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Como podemos observar, este algoritmo cumple con las caracteristicas de desarrollo y
describe las tres partes principales de cualquier algoritmo: entrada (paso 2 y 3), proceso
(paso 4 y 5 ) y salida (paso 6).
TEMA 2

Objetivo de Aprendizaje:
2. Aplicará correctamente los simbolos utilizados en los diagramas de flujo

Criterio de aprendizaje:
2.1. Desarrollar correctamente mediante gráficas la solución de un problema.

Un diagrama de flujo muestra gráficamente los pasos o procesos a seguir para alcanzar
la solución de un problema. Su correcta construcción es sumamente importante, porque a
partir del mismo se escribe un programa en algún lenguaje de programación. Si el
diagrama de flujo está completo y correcto, el paso del mismo a un lenguaje de
programación es relativamente simple y directo.

A continuación se presentan los simbolos que se utilizan y una explicación de los mismos:

Representación del simbolo Explicación del simbolo


Se utiliza para marcar el inicio y el fin del
diagrama de flujo
Se utiliza para introducir los datos de entrada.
Expresa lectura.
Representa un proceso. En su interior se
expresan asignaciones, operaciones
aritméticas, cambios de valor de celdas de
memoria, etc.
Representa una decisión. En su interior se
No almacena una condición, y dependiendo del
resultado de la evalaución de la misma, se
Si sigue por una de las ramas o caminos
alternativos.
Representa una decisión múltiple. En su
interior se almacena un selector y
dependiendo del valor de dicho selector se
sigue por una de las ramas o caminos
alternativos.
Se utiliza para representar la impresión de un
resultado. Expresa escritura.
Simbolos utilizados para expresar la
dirección del flu jo del programa.
Expresa conexión dentro de una misma
página.
Simbolo utilizado para expresar conexión
26
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

entre páginas diferentes


Expresa un módulo de un problema. Esto es,
para continuar con el flujo normal del
diagrama, debemos primero resolver el
subproblema que enuncian en su interior.
Los simbolos presentados, colocados adecuadamente, permiten crear una estructura
gráfica flexible que ilustra los pasos a seguir para alcanzar un resultado especifico. Para
desarrollar correctamente un diagrama de flujo, se deben seguir las siguientes reglas:
1. Todo diagrama de flujo debe tener un inicio y un fin

Inicio

.
.
.

Fin

2. Las líneas utilizadas para indicar la dirección del flujo del diagrama deben ser rectas,
verticales y horizontales.

Así deben ser No deben ser inclinadas Tampoco debemos cruzarlas

3. Todas las líneas utilizadas para indicar la dirección del lfujo deben estar conectadas.
La conexión puede ser a un simbolo que exprese lectura, proceso, decisión, impresión,
conexión o fin de diagrama.

4. El diagrama de flujo debe ser construido de arriba a abajo y de izquierda a derecha.


5. La notación utilizada en el diagrama de flujo debe ser independiente del lenguaje de
programación.
6. Es conveniente cuando realizamos una tarea compleja poner comentarios que
expresen o ayuden a entender lo que hicimos.
7. Si el diagrama de flujo requiriera más de una hoja para su construcción, debemos
utilizar los conectores adecuados y enumerar las páginas convenientemente.
8. No puede llegar más de una línea a un simbolo.

27
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

No válido Válido No válido Válido

28
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Resultado de Aprendizaje
2.1.1. Emplear gráficas para el desarrollo correcto de los diagramas de flujo.
Ejercicio 1.
Dada la matricula y 5 alificaciones de un alumno obtenidas a lo largo del curso,
construya un diagrama de flujo que imprima la matricula del alumno y el promedio de
sus calificaciones.

Datos: MAT, CAL1, CAL2, CAL3, CAL4, CAL5


Donde:
MAT Es una variable de tipo entero que representa la matricula del alumno
CAL1, CAL2, CAL3, CAL4, CAL5 Son variables de tipo real que expresan
las 5 calificaciones del alumno

Inicio

MAT, CAL1, Lectura de la matricula y


CAL2, CAL3,
CAL4, CAL5 calificaciones

PROM = (CAL1, + CAL2 Almacena en la variable de tipo real PRO,


+ CAL3 + CAL4 +
CAL5) / 5
el promedio de las calificaciones

MAT, PROM
Escribe la matricula y el promedio

Fin

TEMA 3

Objetivo de Aprendizaje:
3.- Desarrollará paso a paso la solución de un problema mediante pseudocódigo.

Criterio de aprendizaje:
3.1. Emplear los pseudocódigos para resolver un problema.

El pseudocódigo es un lenguaje de especificación (descripción) de algoritmos, esto es,


una mezcla de un lenguaje de programación y español (o cualquier otro idioma). Se
considera un primer borrador dado que el pseudocódigo tiene que traducirse posteriorme
a un lenguaje de programación. No puede ser ejecutado por una computadora. La ventaja
es que en su uso, en la planificación de un programa, el programador se puede concentrar
en la lógica y en las estruturas de control y no preocuparse de las reglas de un lenguaje
específico.

29
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

La escritura de pseudocódigo exige normalmente la identación (sangría en el margen


izquierdo) de diferentes líneas.
Un pseudocódigo comienza con la palabra start y finaliza con la palabra end, en inglés (en
español, inicio , fin ). La línea precedida por // se denomina comentarios. Es una
información al lector del programa y no realiza ninguna instrucción ejcutable, sólo tiene
efecto de documentación interna del programa.

Resultado de Aprendizaje
3.1.1 Resolver un problema mediante el uso de pseudocódigo
Ejercicio 1.
Se desea obtener el salario neto de un trabajador conociendo el número de horas
trabajadas, el salario hora y la tasa de impuestos que se le debe deducir.

La representación del pseudocódigo es la siguiente:

Inicio
// cálculo de impuestos y salario
leer nombre, horas, precio_hora
salario_bruto <- horas * precio_hora
tasas <- 0.25 * salario_bruto
salario_neto <- salario_bruto - tasas
escribir nombre, salario_bruto, tasas, salario_neto
Fin

30
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

TEMA 4

SENTENCIAS DE CONTROL

INTRODUCCIÓN

Hay situaciones en las que durante el desarrollo de la solución de un problema debemos


tomar decisiones, para establecer un proceso o señalar un camino alternativo a seguir y
también es muy común encontrar en los algoritmos, operaciones que se deben ejecutar un
número repetido de veces, es por eso que en esta unidad se presentan las diferentes
sentencias de control que nos ayudarán a seguir el camino correcto para la solución de un
problema.

Con los objetivos establecidos el alumno identificará las caracteristicas de cada sentencia de
control y su aplicación en el diseño de algoritmos.

OBJETIVO Y CRITERIOS DE APRENDIZAJE Página

1. Diferenciar las sentencias de control condicionales simples y de evaluación 29


múltiple.
1.1 Definir que es una sentencia de control condicional. 29
1.2 Explicar cada una de las sentencias de control condicional. 29

DEMOSTRACIÓN DE HABILIDADES PARCIALES (RESULTADO DE


APRENDIZAJE)
1.1.1 Diferenciar las aplicaciones que existen entre cada una de las sentencias de 31
control condicional.
OBJETIVO Y CRITERIOS DE APRENDIZAJE
2.- Diferenciar las sentencias de control de ciclos mientras y repetir - hasta 32
2.1. Definir que es una sentencia de control de ciclos. 32
2.2 Explicar cada una de las sentencias de control de ciclos. 32
DEMOSTRACIÓN DE HABILIDADES PARCIALES (RESULTADO DE
APRENDIZAJE)
2.1.1. Diferenciar las aplicaciones que existen entre cada una de las sentencias 33
de control de ciclos.
OBJETIVO Y CRITERIOS DE APRENDIZAJE
3.- Hacer uso correcto de la sentencia de control para - hasta 35
3.1. Definir y explicar que es una sentencia de control para - hasta. 35
DEMOSTRACIÓN DE HABILIDADES PARCIALES (RESULTADO DE
APRENDIZAJE)
3.1.1 Diferenciar la aplicación que existe entre la sentencia de control para - hasta 36
y las sentencias de control de ciclos
31
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Objetivo de Aprendizaje:
1. Diferenciar las sentencias de control condicionales simples y de evaluación múltiple.

Criterio de aprendizaje :
1.2 Definir que es una sentencia de control condicional.
Las sentencias de control condicionales se basan en la evalaución de una o más
condiciones que nos señalarán como alternativa o consecuencia, la rama a seguir.

1.3 Explicar cada una de las sentencias de control condicional.


Las sentencias de control condicionales que se utilizan para la toma de decisiones
lógicas las podemos clasificar de la siguiente forma:
1. Si … entonces
2. Si … entonces … sino
3. Si múltiple

La estructura selectiva SI … ENTONCES (IF THEN)permite que el flujo del diagrama siga
por un camino específico si se cumple una condición o conjunto de condiciones. Si al
evaluar la condición (o condiciones) el resultado es verdadero, entonces se ejecutan
ciertas operaciones. Luego se continúa con la secuencia normal del diagrama.

Sintaxis:
Si condicion entonces
Hacer operación
{fin del condicional}

Diagrama:

condición Falsa
No
Verdadera
Si
operación

La estructura selectiva SI … ENTONCES SINO (IF THEN ELSE)permite que el flujo del
diagrama se bifurque por dos ramas diferentes en el punto de la toma de decisión. Si al
evaluar la condición (o condiciones) el resultado es verdadero, entonces se sigue por un
camino especifico y se ejeuta cierta operación. Por otra parte, si el resultado es falso,
entonces se sigue por otro camino y se ejecuta otra operación. En ambos casos, luego
de ejecutarse la operación indicada, se continúa con la secuencia normal del diagrama.

32
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Sintaxis:
Si condicion entonces
Hacer operación 1
Sino
Hacer operación 2
{Fin del condicional}

Diagrama :

Verdadera condición Falsa


Si No

Operación 1 Operación 2

La estructura selectiva SI MULTIPLE (CASE) permite que el flujo del diagrama se


bifurque por varias ramas diferentes en el punto de la toma de decisión, esto en función
del valor que tome el selector. Si el selector toma el valor 1 se ejecutará la acción1, si
toma el valor 2 se ejecutará la acción 2, si toma el valor N se ejecutará la acción N, y si
se toma un valor distinto entre 1 y N, se continuará con el lfujo normal del diagrama,
realizandose la acción N + 1.

Sintaxis:
Si selector igual
Valor 1: hacer acción 1
Valor 2: hacer acción 2

Valor N: hacer acción N
{Fin del condicional}
Hacer acción N + 1

Diagrama:

selector

Valor 1 Valor 2 Valor 3

Acción 1 Acción 2 Acción 3

33
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Acción N+1
Resultado de Aprendizaje
1.1.1 Diferenciar las aplicaciones que existen entre cada una de las sentencias de control
condicional.

Ejercicio 1.
Construya un diagrama de flujo tal, que dado como dato la calificación de un alumno
en un examen, escriba 'aprobado' en caso de que esa calificación fuese mayor que 8.

Dato: CAL
Donde: CAL es una variable de tipo real que expresa la calificación del alumno.

Diagrama:

Inicio

Estructura selectiva
CAL si… entonces

CAL > 8 No

Si
'Aprobado'

Fin

Ejercicio 2.
Construya un diagrama de flujo tal, que dado como dato la calificación de un alumno
en un examen, escriba 'aprobado' en caso de que esa calificación fuese mayor que 8 y
'reprobado' en caso contrario.

Dato: CAL
Donde: CAL es una variable de tipo real que expresa la calificación del alumno.

34
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Diagrama:
Inicio

Estructura selectiva
CAL si… entonces

CAL > 8 No

Si
'Aprobado'

Fin

TEMA 5

Objetivo de Aprendizaje:
5.- Diferenciar las sentencias de control de ciclos mientras y repetir - hasta

Criterio de aprendizaje:
5.1 Definir que es una sentencia de control de ciclos.
Se le llama ciclo al conjunto de instrucciones que se ejecutan repetidamente. Todo ciclo
debe terminar de ejecutarse luego de un número finito de veces, por lo que es necesario
en cada iteración del mimso, evaluar las condiciones necesarias para decidir si debe
seguir ejecutándose o debe detenerse. En todo ciclo siempre debe existir un control de
parada o fin de ciclo.

2.2 Explicar cada una de las sentencias de control de ciclos.


La estructura repetitiva MIENTRAS (WHILE) es aquella en la que el cuerpo del bucle se
repite mientras se cumple una determinada condición. Cuando se ejecuta la instrucción
mientras, lo primero que sucede es que se evalúa la condición. Si se evalúa falsa,
ninguna acción se toma y el programa prosigue en la siguiente instrucción del bucle. Si
la expresión booleana es verdadera, entonces se ejecuta el cuerpo del bucle, después
de lo cual se evalúa de nuevo la expresión booleana. Este proceso se repite una y otra
vez mientras la condición es verdadera.
Sintaxis:
Mientras condición hacer
Acción 1
Acción 2

Acción N

35
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Fin mientras
Diagrama:

Condición
No

Si
Acciones

La estructura repetitiva REPETIR (REPEAT) se ejecuta hasta que se cumpla una


condición determinada que se comprueba al final del bucle. El bucle repetir - hasta - que
se repite mientras el valor de la expresión booleana de la condición sea falsa, justo la
opuesta de la sentencia mientras.

Sintaxis:
repetir
Acción 1
Acción 2

Acción N
hasta que condición

Diagrama:

Acciones

No
Condición

Si

Resultado de Aprendizaje
2.1.1. Diferenciar las aplicaciones que existen entre cada una de las sentencias de control de
ciclos.

Ejercicio 1.
Realice un diagrama de flujo que cuente los números enteros positivos introducidos
por teclado y que se detenga el bucle cuando se lee un número negativo o cero.

36
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Diagrama:

Inicio

Cont = 0

Leer NUM

No
NUM > 0

Si
Cont = cont + 1

Leer NUM

Escribir ('El numero


de enteros positivos
es', cont)

Fin

Ejercicio 2.
Realice un diagrama de flujo que escriba los números del 1 al 100.
Diagrama:

Inicio

Num = 1

Escribir
(Num)

Num = Num + 1

No NUM = 101

Si
Fin
37
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

TEMA 6

Objetivo de Aprendizaje:
6.- Hacer uso correcto de la sentencia de control para - hasta

Criterio de aprendizaje:
6.1. Definir y explicar que es una sentencia de control para - hasta.
En muchas ocasiones se conoce de antemano el número de veces que se desean
aejcutar las acciones de un bucle. En estos casos, en los que el número de iteraciones es
fijo, se debe usar la estructura desde o para (for).

La estructura para ejecuta las acciones del cuerpo del bucle un número especificado de
veces y de modo automático controla el número de iteraciones o pasos a través del
cuerpo del bucle.

Sintaxis:
Para v <- vi hasta vf [incremento | decremento < valor] hacer
<acciones>

fin desde
Donde:
V: variable índice
Vi, vf: valor inicial y final de la variable

Diagrama:
Calcular valor
inicial y valor
final

V = vi

v>vf verdadero

falso
Acciones
Cuerpo del
bucle
Incrementar V

38
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

39
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

También se puede representar mediante este otro simbolo:

Repetir
variable = falso Vi: contador inicial
Vf: contador final
vi, vf, i
I : incremento o decremento
verdadero

proceso

Resultado de Aprendizaje
3.1.1 Diferenciar la aplicación que existe entre la sentencia de control para - hasta y las
sentencias de control de ciclos
Ejercicio 1.
Realice un diagrama que calcule la suma de N números ingresados por el usuario.
Datos: N
Donde: N es la variable de tipo entero que almacena el número ingresado.
Diagrama:

Inicio

Leer N

Suma = 0

Cont = falso
1 hasta
N
verdadero

Suma = suma + 1

Escribe
suma

Fin

40
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

TEMA 7
CONVERSION DE DIAGRAMAS DE FLUJO A UNA APLICACION

INTRODUCCIÓN

En las unidades anteriores se ha visto la forma de diseñar algoritmos para resolver


problemas con computadoras. En esta unidad se introduce al alumno en el proceso de
programación, que se manifiesta esencialmente en los programas que es el paso final para la
resolución del problema.

Sólo se integra por un único objetivo que describe al alumno las caracteristicas
principales para el desarrollo de un programa en un lenguaje de programación.

OBJETIVO Y CRITERIOS DE APRENDIZAJE Página

1. Identificará el código en un lenguaje de programación de alto nivel. 38


1.1 Describir el concepto de programa y sus elementos básicos. 38
1.2 Explicar las instrucciones y tipos de instrucciones más usuales. 39
DEMOSTRACIÓN DE HABILIDADES PARCIALES (RESULTADO DE
APRENDIZAJE)
1.1.1- Emplear un lenguaje de alto nivel para la solución de un problema en 41
computadora.

41
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Objetivo de Aprendizaje:
1. Identificará el código en un lenguaje de programación de alto nivel.

Criterio de aprendizaje:
1.1 Describir el concepto de programa y sus elementos básicos.
Un programa es un conjunto de instrucciones (órdenes dadas a las máquinas) que
producirán la ejecución de una determinada tarea. En esencia, un programa es un medio
para conseguir un fin.

En programación se debe separar la diferencia entre el diseño del algoritmo y su


implementación en un lenguaje especifico. Sin embargo, una vez que se comprendan los
conceptos de programación, cómo utilizarlos, la enseñanza de un lenguajes es
relativamente fácil.

Los lenguajes de programación tienen elementos básicos que se utilizan como bloques
constructivos, así como reglas para que esos elementos se combinen. Estas reglas se
denominan sintaxis del lenguaje. Solamente las instrucciones sintácticamente correctas
pueden ser interpretadas por la computadora y los programas que contengan errores de
sintaxis son rechazados por la máquina.

Los elementos básicos constitutivos de un programa son:


1. Palabras reservadas (begin, end, if then… etc)
2. Identificadores (nombres de variables esencialmente)
3. Caracteres especiales (coma, punto, apóstrofo)
4. Constantes
5. Variables
6. Expresiones
7. Instrucciones

Además de estos elementos básicos, existen otros elementos que forman parte de los
programas, cuya comprensión y funcionamiento será vital para el correcto diseño de un
algoritmo y naturalmente la codificación del programa. Estos elementos son:
1. Bucles
2. Contadores
3. Acumuladores
4. Interruptores
5. Estructuras
a. Secuenciales
b. Selectivas
c. Repetitivas

Un bucle o lazo es un segmento de un algoritmo o programa, cuyas instrucciones se


repiten un numero determinado de veces mientras se cumple una determinada condición.
Se debe establecer un mecanismo para determinar las tareas repetitivas. Un bucle
consta de tres partes:
• Decisión
42
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

• Cuerpo del bucle


• Salida del bucle
En un algoritmo pueden existir varios bucles. Los bucles pueden ser anidados o
independientes. Los bucles son anidados cuando están dispuestos de tal modo que unos
son interiores a otros; los bucles son independientes cuando son externos unos a otros.

Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad


constante en cada iteración, es una forma de controlar un bucle. El contador puede ser
positivo (incrementos uno en uno) o negativo (decremento uno en uno).

Un acumulador o totalizador es una variable cuya misión es almacenar cantidades


variables resultantes de sumas sucesivas. Realiza la misma función que un contador, con
la diferencia de que el incremento o decremento de cada suma es variable en lugar de
constante, como en el caso del contador.

Una instrucción de decisión o selección evalúa una condición, y en función del resultado
de esa condición, se bifurcará a un determinado punto.

Un interruptor o conmutador (switch) es una variable que puede tomar diversos valores a
lo largo de la ejecución del programa y que permite comunicar información de una parte a
otra del mismo. Los interruptores pueden tomar dos valores diferentes, 1 y 0 (De ahí su
nombre de interruptor, 'encendido' / 'apagado', 'abierto' / 'cerrado').

1.2 Explicar las instrucciones y tipos de instrucciones más usuales.


Instrucciones básicas en C++:
Comentarios: Los comentarios son ignorados por el compilador cuando se ejecuta el
programa. Los comentarios se representan con //.
Ejemplos:
1. Comentarios de una línea
// esto es una línea en C++
2. Comentarios en dos líneas o más
// los programas en C++
// utilizan también comentarios
Clase iostream. Se utiliza para operaciones de entrada - salida de flujo
<< Designa salida de flujo y se conoce como 'operador de inserción de flujo'
>> Designa entrada de flujo y se conoce como 'operador de extracción de flujo'
cin Objeto que se utiliza para entrada de flujo y se dice 'ligado a'.
Ejemplo: cin>>edad;
Lee la variable edad
cout Objeto que se utiliza para salida de flujo y se dice 'ligado con'.
Ejemplo: cout<<edad;
Despliega el valor de la variable edad

43
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Tipos de datos
Enteros int
Reales float
Caracter char
Cadenas char[num]

Estructuras de control
A. Selectivas
If (condicion)
Acción

Ejemplo:
If (calificacion >= 60)
cout << "aprobado";

If (condicion)
Acción 1
Else acción 2

Ejemplo:
If (calificacion >= 60)
cout << "aprobado";
Else cout <<"reprobado";

Switch (variable){
Caso1: acción 1
Caso2: acción 2
Caso3: acción 3
….
Por defecto:accion n
}

Ejemplo:
Switch (calificacion){
Case 90:
cout<<"excelente";
break;
Case 80:
cout<<"bueno";
break;
Case 70:
cout<<"regular";
break;
Case 60:
cout<<"malo";
break;
Case 50:

44
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

cout<<"muy malo";
break;
default:
break;
}

45
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

B. Repetitivas
While (condición)
Acción

Ejemplo:
Producto := 2;
While (producto <= 1000)
Producto := 2 * producto;

Do{
Acción
} While (condición);

Ejemplo:
Cont := 1;
Do{
Cout << cont;
Cont := cont + 1;
} while (cont <= 10);

For (expresión1; expresion2; expresion3)


Accion;

For (cont := 1; cont<= 10; cont++)


Cout<< cont;

Resultado de Aprendizaje
1.1.1- Emplear un lenguaje de alto nivel para la solución de un problema en computadora.
Ejercicio 1.
Desarrolle un programa en C++ que realice una acción de acuerdo al siguiente menú de
opciones:
1. Calcule una suma
2. Calcule una resta
3. Calcule una multiplicación
4. Calcule una división
5. Terminar
Programa:

#include <iostream.h>
main ()
{
// declaracion de variables
int opcion, num1, num2;
float resultado;
char resp;

46
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

// ingreso de datos
cout << "Escriba el primer número"; cin>>num1;
cout << "Escriba el segundo número"; cin>>num2;

// proceso de datos
do {
cout << "\nElija su opción";
cout << "\n 1. Calcular una suma";
cout << "\n 2. Calcular una resta ";
cout << "\n 3. Calcular una multiplicación ";
cout << "\n 4. Calcular una división ";
cout << "\n 5. Terminar";
cout << "\n Opción"; cin >> opcion;
switch (opcion) {
case 1:
resultado := num1 + num2;
break;
case 2:
resultado := num1 - num2;
break;
case 3:
resultado := num1 * num2;
break;
case 4:
resultado := num1 / num2;
break;
case 5:
break;
} // fin del case

// salida de resultados
cout << "\n El resultado es: " << resultado;
cout << "\n Desea realizar otra operación? S/n: ";
cin >> resp;
} while (resp == 'S'); // fin del ciclo do while

return 0;
} // fin del programa

47
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

48
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

UNIDAD 4
ARREGLOS

INTRODUCCIÓN

Los arreglos dentro de los lenguajes de programación, permiten reducir el espacio de


código utilizado, el espacio de memoria en caso de arreglos dinámicos y eficientar la
estructura de programación utilizada por el codificador. En esta unidad se introduce al alumno
en el proceso de programación, que se manifiesta esencialmente en los programas que es el
paso final para la resolución del problema.

Sólo se integra por un único objetivo que describe al alumno las características principales
para el desarrollo de un programa en un lenguaje de programación. El alumno comprenderá
el concepto y manejo básico de un arreglo.
.

OBJETIVO Y CRITERIOS DE APRENDIZAJE Página

1. Arreglos 38

DEMOSTRACIÓN DE HABILIDADES PARCIALES (RESULTADO DE


APRENDIZAJE)
2.- Tipos de Arreglos 41

49
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

TEMA 1
ARREGLOS

Objetivo de Aprendizaje:
1. Identificará la estructura básica de un arreglo.

Criterio de aprendizaje:
1.3 Describir el concepto de un arreglo y sus elementos básicos.

Un arreglo es un grupo de localidades de memoria que tienen el mismo nombre y el


mismo tipo. Para referirnos a una localidad o el elemento particular de un arreglo,
especificamos el nombre del arreglo y el número de posición del elemento particular dentro
de este.

La figura siguiente muestra un arreglo de enteros llamados c, el cual contiene siete


elementos .Nos podemos referir a cualquier de ellos dando el nombre del arreglo seguido por
el numero de posición del elemento especifico encerrándolo entre corchetes ([ ]).

Nombre del arreglo (observe que todos los elementos de


este arreglo tienen el mismo nombre, c)

c[0]
-45
c[1]
6
c[2]
72
c[3] 1543

c[4] -89

c[5] 0

c[6] 62

Números de posición del elemento


en el arreglo c

50
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

El primer elemento de cualquier arreglo es el elemento cero. Por lo tanto, nos


referimos al primer elemento del arreglo c como c[ i –1 ] .
Los nombres de los arreglos se apegan a las mismas convenciones que los demás
nombres de variables.
El número de posiciones entre los corchetes se conoce mas formalmente como
subíndice. Los subíndices deben ser enteros o expresiones enteras. Si algún programa
emplea como subíndice una expresión, entonces esta se evalúa para determinar el subíndice.
Por ejemplo, si suponemos que la a es igual a 5 y que la variable b es igual a 6, entonces la
instrucción

c [ a + b ] +=2;

suma dos al elemento c[7] del arreglo.

Declaración de arreglos

Los arreglos ocupan espacio en la memoria. El programador especifica el tipo de cada


elemento y el numero de elementos requerido por cada arreglo, de modo que el compilador
reserve la memoria necesaria. Para indicarle al compilador que reserve doce elementos para
el arreglo de enteros c, se utiliza la declaración

int c [ 12 ];

char nombre[20];
Mediante una sola declaración se puede reservar memoria para varios arreglos. La
siguiente declaración reserva 100 elementos para el arreglo de enteros b y 27 elementos
para el arreglo de enteros x.

int b [100 ], x [ 27 ];

Los arreglos pueden declararse para que contengan otros tipos de datos. Por
ejemplo, es posible utilizar un arreglo de tipo char para que almacene una cadena de
caracteres.

Ejemplo que utiliza arreglos

51
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

El programa siguiente utiliza una estructura de repetición for que inicializa a cero los
elementos de un arreglo de enteros n de diez elementos; luego imprime dicho arreglo en
forma de tabla. La primera instrucción de salida despliega los encabezados de las columnas
que se imprimirán en la estructura for subsiguiente recuerda que setw especifica el ancho del
campo en que se enviara a la salida el siguiente valor.

Los elementos de un arreglo también pueden inicializarse en la declaración del


arreglo siguiendo a la declaración con un signo de igualdad y una lista de inicializadores
separada por comas (encerrada entre corchetes).
//Inicialización de un arreglo

#include <iostream.h> Lo que muestra en pantalla es:


#include <iomanip.h>
Elemento Valor
int main() 0 0
{ 1 0
int i, n[10]; 2 0
3 0
for ( i=0; i<10; i++) //inicializa el arreglo
3 0
n[ i ]=0;
4 0
5 0
cout<<"elemento " <<setw (13) <<"valor" <<endl;
6 0
7 0
for ( i=0; i<10; i++) //imprime el arreglo
8 0
cout<< setw(7) << i << setw(13)<<n[ i ] <<endl;
return 0; 9 0
}

Arreglos de múltiples subíndices

Los arreglos en C++ pueden tener múltiples subíndices. Un uso común de los arreglos
de múltiples subíndices es la representación de tablas de valores que consisten en
información ordenada en filas y columnas. Para identificar un elemento en particular de una
tabla, debemos especificar dos subíndices el primero (por convención) identifica la fila del
elemento y el segundo (también por convenció), su columna.

Las tablas que requieren de dos subíndices para identificar un elemento en particular
se llaman arreglos de doble dimensión o arreglos bidimensionales. Los compiladores de C++
pueden manejar cuando menos 12 subíndices la siguiente tabla ilustra un arreglo de doble
subíndice, a. Dicho arreglo contiene tres filas y cuatro columnas, por lo que se dice es un
arreglo de 3 por 4. En general, un arreglo con m filas y n columnas se llama arreglo de m por
n.

Columna 0 Columna 1 Columna 2 Columna3

52
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Fila 0 a [0] [0] a [0] [1] a [0] [2] a [0] [3]


Fila 1 a [1] [0] a [1] [1] a [1] [2] a [1] [3]
Fila 2 a [2] [0] a [2] [1] a [2] [2] a [2] [3]

Subíndice de columna

Subíndice de fila

Nombres del arreglo

Cada elemento del arreglo a se identifica por medio de un nombre del elemento de la
forma a [ i ] [ j ]; a es el nombre del arreglo e i y j son los subíndices que identifican a cada
elemento de a en forma única. Observa que los nombres de los elementos de la primera fila
tienen un primer subíndice de 0; los de la cuarta columna tienen un segundo subíndice de 3.

El siguiente código muestra declaraciones de inicialización de arreglos con doble


subíndice. El programa declara tres arreglos, todos de dos filas y tres columnas. La
declaración de array1 proporciona seis inicializadores en dos sublistas. La primera sublista
inicializa la primera fila del arreglo con los valores 1,2 y 3 y la segunda inicializa la segunda
fila del arreglo con los valores 4,5 y 6. Si se eliminan los corchetes que encierran cada
sublista de la lista de inicialización de array1, el compilador inicializa automáticamente los
elementos de la primera fila y a continuación los elementos de la segunda fila.

La declaración del array2 proporciona cinco inicializadores. Estos se asignan a la


primera fila y luego a la segunda. Cualquier elemento que no tenga un inicializador explicito
se inicializa automáticamente a cero, por lo tanto, array2 [ 1 ] [ 2 ] se inicializa a 0.

La declaración del array3 proporciona tres inicializadores en dos sublistas. La sublista de la


primera fila explícitamente inicializa a 1 y 2 los primeros dos elementos de dicha fila; el
tercero se inicializa automáticamente a cero. La sublista de la segunda fila inicializa
explícitamente a 4 el primer elemento. Los últimos dos elementos se inicializan
automáticamente acero.

El programa llama a la función printArray para enviar a la salida los elementos de los
arreglos.

#include <iostream.h>

void printArray (int [ ] [ 3 ]);

int main ( )
{
int array1[ 2 ] [ 3 ] = { {1,2,3},{4,5,6,} },
array2[ 2 ] [ 3 ] = { 1,2,3,4,5 },
array3[ 2 ] [ 3 ] = { {1,2}, {4} };

53
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

cout<< "los valores en array1 por fila son:"<<endl;


printArray(array1);

cout<< "los valores en array2 por fila son:"<<endl;


printArray(array2);

cout<< "los valores en array3 por fila son:"<<endl;


printArray(array3);

return 0;
}

void printArray (int a[ ] [ 3 ] )


{
for(int i=0; i<2; i++)

{
for (int j=0; j<3; j++ )
cout<<a [ i ][ j ]<< ' ';
cout<<endl;
}
}

Lo que muestra en pantalla es:

Los valores en array1 por filas son:


123
456
Los valores en array2 por filas son:
123
450
Los valores en array3 por filas son:
120
400

54
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

V. REFERENCIAS

Metodología de la Programación
Osvaldo Cairó
Alfa - Omega
Tomo I, II

Fundamentos de Programación
Luis Joyanes Aguilar
McGraw Hill

Introducción a las Ciencias de las Computadoras


Enfoque algorítmico
Jean - Paul Tremblay
Richard B. Bunt
McGraw Hill

Programando en C/C++
Deytel / Deytel
Prentice may

Cómo Programar en C++ Segunda Edición


Deitel y Deitel
Prentice Hall

55
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

VI. GLOSARIO

\n Caracter de salto de línea

<iostream.h> Archivo de encabezado de flujo de entrada y salida. Contiene


información necesaria para compilar programas en los que se emplean
cin, cout y los operadores <<, >>.

Algoritmo Método paso a paso para solucionar un problema que termina en un


número finito de veces.
Asignación Acto de almacenar un valor calculado o especificado en una posición de
memoria.
Asignar Identificar un valor que pertenece a un conjunto de datos.

Boolean Tipo de dato que toma dos posibles valores verdadero (true) y falso
(false).
Bucle, ciclo, lazo Secuencia de instrucciones repetida continuamente hasta que se cumple
una determinada condición de salida del bucle.

Cadena String. Secuencia contigua de caracteres concatenados.


Carácter Character. Es una letra, dígito, signo de puntuación u otro símbolo
utilizado en la representación de la información.
Cin Objeto de flujo de entrada que sirve para introducir datos. Se utiliza junto
con el operador de extracción de flujo >>
Código En programación, forma de representar los datos y programas de modo
que puedan ser aceptados y tratados por la computadora.
Compilación Proceso de convertir un programa escrito en un lenguaje de alto nivel en
un lenguaje máquina
Compilador Programa que traduce un programa fuente escrito en lenguaje de alto
nivel en un programa en código máquina.
Concatenación Una operación que conecta dos cadenas juntas para formar una cadena.
Condición Expresión que se puede evaluar como falsa o verdadera.
Constante Elemento que no varía su valor en el transcurso de un programa.
Contador En programación, una variable que va incrementando o decrementando
su valor en modo constante.
Cout Objeto de flujo de salida que sirve para enviar información a un
dispositivo. Se utiliza junto con el operador de inserción de flujo >>

Declaración En los lenguajes de programación, las variables han de ser declaradas


utilizando reglas sintéticas preescritas, con objeto de informar al
compilador acerca de las características detalladas que se supone se
representan las variables.

56
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Diagrama de flujo Representación gráfica para la definición, análisis o solución de un


problema en la que los símbolos se utilizan para representar
operaciones, datos, flujos, ejemplos, etc.

Editor Programa para crear o modificar un archivo de texto (el programa fuente
escrito en un lenguaje de programación de alto nivel, textos, etc.).
Ejecución Realicación en forma secuencial de todas las instrucciones que
componen un programa.
Entero Tipos de datos que contienen números positivos o negativos sin parte
decimal.
Error de programación. Errores que se producen en un programa normalmente del
programador.
Error de tiempo de compilación. Un error, tal como un erro de sintaxis, detectado durante la
compilación de un programa.
Error lógico Un error normalmente procedente del diseño de algoritmo.
Estructura de control. Una construcción de programación, tal como selección o bucles, que
determina el orden en que se ejecutarán las sentencias.
Expresión aritmética . Una expresión de variables, constantes y operaciones artiméticas
que pueden ser evaluadas como un único valor númerico.
Expresión booleana. Expresión que cuando se evalúa, produce un valor lógico o booleano.

Instrucción Elemento básico constitutivo de los programas. Una instrucción es la


formulación de una orden a la computadora y que se manifiesta en la
expresión del conjunto de operaciones que debe ejecutar la
computadora.

Lenguaje de alto nivel. Lenguaje que permite generar código máquina a partir de sentencias
independientes de la máquina y representar los problemas de un usuario
de modo simple y claro
Lenguaje de programación. Conjunto de vocabulario, símbolos y reglas utilizados para
controlar las operaciones de una computadora.

Nombre de variable. Identificador que se asocia con una variable.

Operador Símbolo especial o palabra reservada que especifica una notación


aritmética o lógica.
Operador boolean, lógico. Operador que combina expresiones lógicas utilizando aritmética
lógica. Operadores booleanos son entre otros AND, OR, NOT.
Operando El valor utilizado cuando se evalúa un operador tal como la suma (+) o
multiplicación (*).

57
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Programa ejecutable. Programa compilado y traducido a código máquina y que puede ser
ejecutado directamente por la computadora.
Programa fuente Programa escrito en un lenguaje de alto nivel que requiere la compilación
o interpretación para su ejecución.
Programa objeto Programa en lenguaje máquina resultante de la traducción del programa
fuente.
Pseudocódigo Seudocódigo. Mezcla de instrucciones de computadora y lenguaje
natural (español o inglés) utilizados para expresar un algoritmo.

Sentencia Instrucción de un lenguaje de programación.


Sintaxis Reglas formales que definen las construcciones válidas de un lenguaje.

Variable Un objeto en un programa que puede cambiar su valor durante su


ejecución. Posición de memoria en el que se almacena la información y
de la que se puede recuperar.

58
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

VII. ANEXOS

1. Evaluación del curso

Unidad 1.
Tema 1.Realice un algoritmo que calcule el equivalente de grados Celcius a grados
Farenheit, utilizando la siguiente fórmula:
°F = (9 / 5) (°C + 32 )
donde:
°C Son los grados Celcius que se desean convertir a grados Farenheit

Tema 2. Realice un pseudocódigo para obtener la solución de los valores de X en la fórmula


general:
X = - b ± √ b2 - 4 a c
2a

Tema 3. Realice un pseudocódigo que calcule el pago de una nota de venta de 3 productos
diferentes. Pida la cantidad de compra de cada producto, la descripción del producto, el
costo unitario. Calcule el importe de cada por producto, el subtotal por los 3 productos, el
IVA del 10% y el total. Despliegue los resultados.

Tema 4. Realice un pseudocódigo que pida y despliegue los datos del trabajador, pida las
horas trabajadas, el pago por hora, calcule el impuesto 0.8% y despliegue el total a pagar

Undiad 2.
Tema 1. Diseñe un pseudocódigo que calcule el área de un triángulo en función de las
longitudes de sus lados:
Area = √p ( p - a ) ( p - b ) ( p - c )
Donde p=(a+b+c+)/2

Tema 2. Realice un pseudocódigo para resolver por partes la expresión lógica:


(256 > (7 + 8 * 81)) > ((15 * 2) = (60 * 2 / 4))

Unidad 3.
Tema 1. El cambio de divisas en la Bolsa de Madrid el día 25 de agosto de 1987 fue el
siguiente:
100 chelines = 956,871 pesetas
austriacos = 122,499 pesetas
1 dólar EEUU = 88,607 pesetas
100 dracmas griegas = 323,728 pesetas
100 francos belgas = 20,110 pesetas
1 franco francés = 178,938 pesetas
1 libra esterlina = 9,289 pesetas
100 liras italiana
Desarrollar algoritmos que realicen las siguientes conversiones:
59
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

A) Leer una cantidad en pesetas e imprimir el equivalente en las otras denominaciones

60
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Tema 2. Ealice el diagrama de flujo del algoritmo anterior.


Tema 3. Realice el pseudocódigo del diagrama de flujo anterior.

Unidad 4.
Tema 1. El costo de las llamadas telefónicas internacionales, depende de la zona geográfica
en la que se encuentre el país destino y del número de minutos hablados. En la siguiente
tabla se presenta el costo por minuto, por zona. A cada zona se le ha asociado una clave.

Clave Zona Precio


12 América del Norte 2
15 América Central 2.2
18 América del Sur 4.5
19 Europa 3.5
23 Asi 6
25 Africa 6
29 Oceanía 5

Construya un diagrama de flujo que le permita calcular e imprimir el costo total de una
llamada.

Tema 2. Una persona invierte en un banco un cierto capital y quiere saber cuánto obtendrá al
cabo de cierto tiempo, si el dinero se colocó en una determinada tasa de interés mensual.
Haga el diagrama de flujo correspondiente.
Tema 3. Calcular el factorial de un número dado, tomando en cuenta que el factorial de un
número N (N!) es el conjunto de productos sucesivos siguientes:

N! = N * (N-1) * (N-2)* (N-3) * … * 3 * 2 * 1

Los factoriales de los primeros números son:


1! = 1
2! = 2 * 1 = 2 * 1!
3! = 3 * 2 * 1 = 3 * 2!

N! = N * (N-1) * (N-2)* (N-3) * … * 3 * 2 * 1

Realice el pesudocódigo correspondiente.

Unidad 5.
Tema 1. Programa que pida al usuario un número y realice una tabla de multiplicar hasta 10
con ese número.

61
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

2. Resultados finales de evaluación

UNIDAD 1

Tema 1
1. Pedir los grados Celcius a convertir
2. Dividir 9 / 5
3. Sumar 32 a los grados Celcius
4. Multiplicar el resultado de la división por el resultado de la suma
5. Desplegar el resultado

Tema 2
1. Inicio
2. Declarar las variables x1, x2, suma, resta, mult, raiz
3. Leer a, b, c
4. Mult = 4 * a * c
5. Resta = ( b ^ 2 ) - mult
6. Raiz = raiz(resta)
7. X1 = (- b + raiz) / (2 * a)
8. X2 = (- b - raiz) / (2 * a)
9. Imprimir x1, x2
10. Fin

Tema 3
1. Inicio
2. Declarar variables cant1, cant2, cant3, prod1, prod2, prod3, uni1, uni2, uni3, imp1,
imp2, imp3, subtotal, iva, total
3. Leer cant1, prod1, uni1
4. Leer cant2, prod2, uni3
5. Leer cant3, prod2, uni3
6. Imp1 = cant1 * uni1
7. Imp2 = cant2 * uni2
8. Imp3 = cant3 * uni3
9. Subtotal = imp1 + imp2 + imp3
10. Iva = subototal - (subtotal * 0.10)
11. Total = subtotal + iva
12. Imprimir cant1, prod1, uni1, imp1
13. Imprimir cant2, prod2, uni2, imp2
14. Imprimir cant3, prod3, uni3, imp3
15. Imprimir subtotal,
16. Imprimir iva
17. Imprimir total
18. Fin

62
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Tema 4
1. Inicio
2. Declarar variables nombre, direccion, horas, pagoxhr, total, subtotal
3. Declarar constante impuesto = 0.8
4. Leer nombre, direccion
5. Leer horas, pagoxhora
6. Subtotal = horas * pago/hora
7. Total = subtotal - (subtotal * impuesto)
8. Imprimir nombre, direccion
9. Imprimir total
10. Fin

UNIDAD 2
Tema 1
1. Inicio
2. Declara variables a, b, c, p, area, mult
3. Calcular semiperimetro p = ( a + b + c ) / 2
4. Mult = p * ( p - a ) * ( p - b ) * ( p - c )
5. Area = raiz(mult)
6. Imprimir area
7. Fin

Tema 2
1. Inicio
2. Declarar variables val1, val2, val3, val4, val5, val6, val7, resultado
3. Val1 = 8 * 81
4. Val2 = 7 + val1
5. Val3 = 256 > val2
6. Val4 = 15 * 2
7. Val5 = 60 * 2
8. Val6 = val5 / 4
9. Val7 = (val4 = val6)
10. resultado = val3 > val7
11. imprimir resultado
12. Fin

Tema 3
1. Declarar las variables pesetas, chelin, dolar, dracmas, fbelga, ffrances, lester, lital
2. Leer el valor de la variable pesetas
3. Calcular la equivalencia de Chelin = ( pesetas * 100) / 956871
4. Calcular la equivalencia de Dolar = ( pesetas * 1) / 122499
5. Calcular la equivalencia de Dracmas = ( pesetas * 100) / 88607
6. Calcular la equivalencia de Fbelgas = ( pesetas * 100) / 323728
7. Calcular la equivalencia de Ffrances = ( pesetas * 1) / 20110
8. Calcular la equivalencia de Lester = ( pesetas * 1) / 178938
9. Calcular la equivalencia de Lital = ( pesetas * 100) / 9289
10. Escribir el resultado con un mensaje 'Las equivalencias son:'

63
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

11. Escribir el resultado con un mensaje 'chelines', chelin


12. Escribir el resultado con un mensaje 'dolares', dolar
13. Escribir el resultado con un mensaje 'dracmas', dracmas
14. Escribir el resultado con un mensaje 'francos belgas ', fbelgas
15. Escribir el resultado con un mensaje 'francos franceses', ffrances
16. Escribir el resultado con un mensaje 'libras esterlinas', lester
17. Escribir el resultado con un mensaje 'libras italianas', lital

Tema 2
Inicio

Leer pesetas

Chelin = ( pesetas * 100) / 956871


Dolar = ( pesetas * 1) / 122499
Dracmas = ( pesetas * 100) / 88607

Fbelgas = ( pesetas * 100) / 323728


Ffrances = ( pesetas * 1) / 20110
Lester = ( pesetas * 1) / 178938
Lital = ( pesetas * 100) / 9289

Imprimir 'Las equivalencias son:'


Imprimir 'chelines', chelin
Imprimir 'dolares', dolar
Imprimir 'dracmas', dracmas

Imprimir 'francos belgas ', fbelgas


Imprimir 'francos franceses', ffrances
Imprimir 'libras esterlinas', lester
Imprimir 'libras italianas', lital

Fin

Tema 3

64
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

1. Inicio
2. Declarar variables pesetas, chelin, dolar, dracmas, fbelga, ffrances, lester, lital
3. Leer pesetas
4. Chelin = ( pesetas * 100) / 956871
5. Dolar = ( pesetas * 1) / 122499
6. Dracmas = ( pesetas * 100) / 88607
7. Fbelgas = ( pesetas * 100) / 323728
8. Ffrances = ( pesetas * 1) / 20110
9. Lester = ( pesetas * 1) / 178938
10. Lital = ( pesetas * 100) / 9289
11. Imprimir 'Las equivalencias son:'
12. Imprimir 'chelines', chelin
13. Imprimir 'dolares', dolar
14. Imprimir 'dracmas', dracmas
15. Imprimir 'francos belgas ', fbelgas
16. Imprimir 'francos franceses', ffrances
17. Imprimir 'libras esterlinas', lester
18. Imprimir 'libras italianas', lital
19. Fin

UNIDAD 3
Tema 1
Inicio

Clave, min

12 29
Clave
15 23,25

Costo = min * 2 18 19 Costo = min * 5

Costo = min * 2.2 Costo = min * 6

Costo = min * 4.5 Costo = min * 3.5

'Costo total de la
llamada: ', costo

65
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Fin

Tema 2
Inicio

I=1

Capini, meses

SI
I > meses

NO

Tasa

Capfin = capini + (capini * tasa / 100)

Capini = capfin
I=I+1

Capfin

Fin

Tema 3

66
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

1. Declarar variables NUM, CONT, FACT


2. Leer NUM
3. Si NUM < 0 entonces
Escribir 'El número será positivo'
Si no FACT = 1
4. Si NUM >1 entonces
desde CONT = 2 hasta NUM hacer
FACT = FACT * CONT
Fin desde
5. Fin si
6. Escribir 'factorial de ', NUM, ' = ', FACT
7. Fin si
8. Fin

UNIDAD 3
Tema 1

#include <iostream.h>
main ()
{
// declaracion de variables
int num, result; cont;

// ingreso de datos
cout << "Escriba el número"; cin>>num;

// proceso y salida de datos


for (cont = 1; cont <= 10; cont++)
cout << "\n " << num << " * " << cont << cont * num;

return 0;
} // fin del programa

67
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

EJERCICIOS SUGERIDOS.
1.-El departamento de climatología de la UAP ha efectuado recientemente su conversión al
sistema métrico. Diseñar un programa para realizar las siguientes conversiones:
a) Léase la temperatura dada en la escala de Celsius e imprima en su equivalente Fahrenheit
(la formula de conversión es oF = 9/5 oC + 32).
b) Lease la cantidad de lluvia en pulgadas e imprima su equivalencia en milímetros (25.5mm
=1 pulgada).

2.- Formúlese un programa para leer el nombre de una persona en forma <nombre de
pila>seguido de <apellidos>, e imprima de la siguiente manera <apellidos>seguido por el
<nombre de pila>.Por ejemplo:
Entrada: “Hernández Martínez” “Arturo”.
Salida: “Arturo”, “Hernández Martínez”.

3.- El costo de un automóvil nuevo para el comprador es la suma total del costo del vehículo,
del porcentaje de ganancia del vendedor y de los impuestos locales o estatales aplicables
(sobre el precio de venta). Supóngase una ganancia del vendedor del 12% en todas las
unidades y un impuesto del 6%, diseñe un programa para leer el costo total del automóvil e
imprimir el costo para el consumidor.

4.-Dadas las calificaciones individuales de un estudiante llamado NAME en tres aspectos del
trabajo anual de un curso, TAREAS,PROYECTO,EXAMEN, este programa calcula la
calificación final con ponderaciones de 20% , 30% y 50% respectivamente la salida a pantalla
proporciona el nombre del estudiante, sus calificaciones individuales y la calificación final .La
variable CAL FINAL es real.

5.- Teclear cuatro números por teclado e imprima cual es el mayor y cual es el menor de los
cuatro. Supóngase que los cuatro números son enteros.

6.- El Instituto Tecnológico de Puebla ha decidido aumentar el salario a sus trabajadores de


acuerdo la siguiente forma

68
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Sueldo actual Aumento


0...$5000.00 20%
$5 0001.00...15 000.00 10%
$150001.00...20000.00 5%
Mas de 20000.00 no hay aumento

Calcular y mostrar a pantalla el nombre del trabajador y el sueldo actualizado.


7.- Diséñese un programa capaz de leer un valor entero y de determinar si se trata de un par
o impar.

8.- Diséñese un programa que lea la cantidad de pelotas compradas y determine el precio a
pagar de acuerdo al siguiente anuncio: Si se compra diez o mas el precio unitario de las
pelotas de béisbol es de $6.65 y de $8.60 en caso contrario.

9.- En vierto poblado de Estados Unidos, una mujer es elegible como bombera si su estatura
esta entre 1.65 m y 1.90m y un peso de 58k. Diséñese un programa que solicite como
entrada: El nombre de la candidata, la estatura ye l peso y determine si es aceptada
(mostrando un mensaje de ACEPTADA y su nombre) o si fue rechazada (mostrando un
mensaje RECHAZADA y su nombre).

10.- Un alumno es aceptado en una escuela, si tiene al menos 18 años y si obtiene más de
85 puntos en una de dos pruebas realizadas. Realizar un programa para solicitar como
entrada su nombre, su edad y dos calificaciones. Mostrar su nombre si es o no aceptado.

11.- Un trabajador gana $15.00 la hora por las primeras 40 horas de trabajo y $25.00 la hora
por cada hora posterior a las 40 horas. Realizar un programa que lea el nombre del
trabajador y las horas que trabajo. El programa deberá el nombre del trabajador y el sueldo a
pagarle.

12.- Escriba un programa que reciba como entrada dos enteros positivos distintos y escriba y
escriba la diferencia entre el número mayor y el menor. Ejemplo: Si se da 9 y 15 deberá
imprimir 6, lo mismo sucederá si se da 15 y 9. Recuerda que pueden ser diferentes valores.

13.- Escriba un programa que reciba dos números enteros como entrada y escriba el mensaje
“SIGNOS OPUESTOS”, solo si uno de los enteros es positivo y el otro negativo o “SIGNOS
IGUALES”, si ambos son positivos o ambos son negativos.

14.- Escriba un programa que reciba el peso de una carta en onzas como entrada e imprima
el costo del porte calculado según las reglas siguientes:
La primera onza cuesta $0.25 (dólares)
Cada onza adicional cuesta $ 0.04 dólares

PROGRAMAS CON SENTENCIAS SWITCH

69
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

15.- Realiza un programa en donde se lea por teclado un número del 1 al 7, e imprima a que
día de la semana corresponda. Ejemplo: Si se lee el 1 imprima por pantalla “domingo”, si se
selecciona 4 e imprima por pantalla “miércoles”.

16.- Realiza un programa en donde se lea por teclado un número del 1 al 12 (meses del año,
Ejemplo 1= Enero, 2= Febrero…) Y procesa a imprimir por pantalla cuántos días tiene ese
mes. Ejemplo: Si se selecciona 3 imprima, “El mes 3 tiene 31 días”: El programa deberá
mostrar por pantalla un menú como sigue:
“Meses del año”
“1…Enero”
“2…Febrero”
……
“12...Diciembre”
“Seleccione el numero del mes”.
17.- Realiza un programa donde se lea por teclado una calificación de un estudiante (En el
rango de 0 a 100) y muestre por pantalla un mensaje dependiendo de la calificación que
pueda ser:
Si se tecleo 100 imprima “EXCELENTE”.
Si se tecleo 90 imprima “MUY BIEN”.
Si se tecleo 80 imprima “BIEN”.
Si se tecleo 70 imprima “REGULAR”.
Si se tecleo 0.60 imprima “REPROBADO”.

18.- Realiza un programa para imprimir las 20 primeras potencias de 2

19.- Programa que lea 5 calificaciones de 3 alumnos e imprima el promedio de cada alumno y
el promedio general del grupo.

19.- Diseña un programa para calcular la suma de los siguientes 100 términos de la serie:
1- ½+1/4+1/6+1/8…

20.- Un número es primo si no tiene otros divisores además de uno y del mismo número
diseña un programa para leer un número y determinar si se trata o no de un número primo
realizarlo un número “n” de cálculos.

21.- Realizar un programa para calcular la nomina de una empresa que tiene “N”
trabajadores en donde se capturará por teclado: Nombre, Horas trabajadas, Sueldo por hora,
Sexo:

Calcular y mostrar por pantalla:

Nombre y sueldo por trabajador


Cuantos Trabajadores son hombre
Sueldo total pagas a los hombres
Cuantos Trabajadores son mujeres
Sueldo total pagado a las mujeres

70
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

22.- Se pide elaborar un programa para que procese la información de los clientes de una
compañía e informe ¿Cuánto suma la cartera de deudores?
La información de la cartera de la compañía tiene la siguiente información para cada uno de
los “N” deudores: Código del deudor, El valor de la deuda y la fecha de vencimiento de la
obligación.

23.- Deberá solicitarse por teclado de lo “N” trabajadores de una empresa. El tiempo
trabajado en una factoría está compuesta por: Código del empleado, numero de horas
normales, numero de horas extras. Validar los datos capturados que cumplan con los
siguientes requisitos:
.El Código de trabajador es mayor de 100 y menor de 400.
.Las horas normales no son mayores de 40
.Las horas extras no son superiores a 60.
.Los registros que resulten con todos lo datos validos se deberán mostrar por pantalla.

24.- Solicitar por teclado los datos de “N” artículos de una compañía con la siguiente
información para cada artículo: Referencia, Descripción, Cantidad mínima, Saldo actual de
existencia.
Deberá imprimir por pantalla los datos de a aquel artículo que detectes que la existencia sea
menor o igual a la cantidad mínima acompañado de un mensaje que diga “ARTICULO
APEDIR”.

25.- Programa que lea los datos de 10 alumnos del grupo de diseño estructurado de
algoritmos en donde deberá calcular y mostrar: Promedio individual de cada alumno (Cada
alumno tiene 5 calificaciones), y el medio general del grupo. Para cada alumno se solicitará
por teclado: Nombre, 5 calificaciones (en un ciclo utilizando una sola variable).

26: Programa que lea un numero “N” por teclado y calcule su potencia “X”. Deberá realizar
este programa mientras lo desees.

27.- Realizar un programa que lea un mes por teclado un año y mande por pantalla un
mensaje que diga es Bisiesto o no es Bisiesto. Realizar este programa un numero “N” de
veces.

28.- Realizar un programa para leer “N“números por teclado deberás calcular e imprimir:
Todos los números positivos que detectes:
Todos los números negativos que detectes:
La suma de los números positivos:
La suma de los números negativos:
Promedio de los números Positivos:
Cuantos ceros detectaste(los cuales no se acumulan en positivos ni en negativos)

29.- se desea calcular e imprimir independientemente la suma de los números pares e


impares comprendidos ente P y Q. Considerar que P deberá ser menor que Q.

71
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

30.- Se trata de escribir el programa que permita emitir la factura correspondiente a una
compra de un artículo determinado del que se adquieren una o varias unidades. El IVA a
aplicar es del 12% y si el precio bruto (Precio de venta más IVA) es mayor de $50.00, se
deberá realizar un de3scuento del 5%.
Este programa me deberá permitir procesar varias facturas.

31.- Se conoce la población de cada una de las 3 ciudades mas grandes de las tres
provincias de Andalucía y se desea identificar y visualizar la población de la ciudad más
grande de cada provincia.
El programa consistirá, en primer lugar, en la obtención de la población mayor de cada
provincia y realizar esta operación tres veces una para cada provincia.
1.- Encontrar y Visualizar la ciudad mayor que una provincia
2.- repetir el paso uno para cada una de la tres provincias andaluzas.
3.- Mostrar cual de todas las ciudades de cada provincia es la mayor.

32. A un trabajador le pagan según sus horas y una tarifa de pago por horas. sí la cantidad
de horas trabajadas es mayor a 40 horas. la tarifa se incrementa en un 50% para las horas
extras. calcular el
salario del trabajador dadas las horas trabajadas y la tarifa.

variables: horas_trabajadas,tarifa,horas_extras,salario,tarifa_e
inicio
leer: horas_trabajadas,tarifa
si: horas_trabajadas <= 40 entonces
salario <-- horas_trabajadas * tarifa
si_no
tarifa_extra <-- tarifa + 0.50 * tarifa
horas_extras <-- horas_trabajadas - 40
salario <-- horas_extras * tarifa_extra + 40 *
tarifa
fin_si
imprimir: salario.
fin

72
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

33. A un trabajador le descuentan de su sueldo el 10% si su sueldo es


menor o igual a 1000. por encima de 1000 y hasta 2000 el 5% del
adicional, y por encima de 2000 el 3% del adicional. calcular el
descuento y sueldo neto que recibe el trabajador dado su sueldo.

variables: sueldo,sueldo_neto,descuento
inicio
leer: sueldo
si: sueldo <= 1000 entonces
descuento <-- sueldo * 0.1
si_no
si: sueldo <= 2000 entonces
descuento <-- (sueldo - 1000) * 0.05 + 1000 * 0.1
si_no
descuento <-- (sueldo - 2000) * 0.03 + 1000 * 0.1
fin_si
imprimir: descuento.
fin

34. Dado un monto calcular el descuento considerando que por encima de


100 el descuento es el 10% y por debajo de 100 el descuento es el
2%.

variables: monto,descuento
inicio
leer: monto
si: monto > 100 entonces
descuento <-- monto * 10 / 100
si_no
descuento <-- monto * 2 / 100
fin_si
imprimir: monto, descuento
fin

35. Dado un tiempo en segundos, calcular los segundos restantes que le


correspondan para convertirse exactamente en minutos.

variables: tiempo_seg,minutos,segundos
inicio
leer: tiempo_seg
si minutos <-- tiempo_seg div 60 entonces
segundos <-- tiempo_seg mod 60
fin_si
imprimir: minutos,segundos.
fin

73
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

5. Dada las horas trabajadas de una persona la tarifa de pago.


Calcular su salario e imprimirla.

Inicio
leer: h, t
S<--h * t
Imprimir: s
fin

(Para dos personas)

inicio
leer: h, t
S<--h * t
Imprimir s
Leer: h, t
S<--h * t
Imprimir: s
Fin

6. Dado N notas de un estudiante calcular:

a) Cuantas notas tiene desaprobados.


b) Cuantos aprobados.
c) El promedio de notas.
d) El promedio de notas aprobadas y desaprobadas.

Inicio
Leer: N
X<--1
Cd<--0
NA <-0
acum_desap <-0
acum_ap <- 0
acum <- 0
Mientras x<=N hacer
Leer: not
Si: not < 10.5 entonces
CD<--cd+1
acum_desap <- acum_desap + not
Sino
NA <- NA + 1
acum_ap <- acum_ap + not
fin _ si
acum <- acum + not

74
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

x<--x+1
Fin _ mientras
prom_ap <- acum_ap /NA
prom_desap <- acum_desap/CD
prom <- acum / N
Imprimir: prom, prom_ap, prom_desap, NA, CD
Fin

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


correspondiente a una compra de un articulo determinado, del que
se adquieren una o varias unidades. El IVA es del 15% y si el precio
bruto ( precio venta mas IVA) es mayor de 50.00 pesetas se debe
realizar un descuento del 5%.

Variables: precio, numeros de articulos(Nart), precio venta(Pv), descuento(d)


Inicio
Leer precio, Nart
Pv= Precio * Nart
IVA= Pv * 0.15
Pb= Pv + IVA
Si Pb >= 50 entonces
d= (Pb * 5)/100
Sino
d= 0
Finsi
Pl= Pb - d
Escribir Pv, IVA, Pb,d, Pl
Fin

8. Desarrollar un algoritmo para calcular e


imprimir el factorial de un número.

variables: factorial(f). numero(n)


Inicio
f= 1
Para x= 1 hasta n
f=f*x
Fin_para
Escribir f
Fin

9. Calcular la media de 100 números e imprimir su resultado.

variables: suma(s), media


Inicio
s= 0

75
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

x= 1
Mientras x<= 100 hacer
Leer n
s=s+n
x=x+1
Finmientras
media = s /100
Escribir media
Fin

10) hacer un programa que permita calcular y mostrar el jornal mensual de acuerdo con
las siguientes especificación:

· los trabajadores tienen dos turnos (nocturno y diurno)


· la tarifa de las horas diurnas es de 10 soles.
· La tarifa de las nocturnas es de 50 soles.
· Ningun trabajador recibe nada por feriados.
· El trabajador sera despedido si sus horas_trabajadas son menores que 15.
(mensual)

Inicio
Leer Horas_trabajadas, dia, turno
Mientras dia <> “domingo” hacer
Si turno = “diurno” entonces
Jornal<-? 10 * Horas trabajadas
Sino
Jornal <- ? 50 * Horas_trabajadas
Fin_si
Fin_mientras
Si horas_trabajadas < 15 entonces
Escribir “Trabajador en observación”
Sino
Escribir “el jornal mensual es:” jornal
Fin_si
Fin

11.Determinar cuantos trabajadores recibirán un salario mayor o igual a 500.


conocida la tarifa y las horas trabajadas

76
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Variable: tarifa, horas, salaros,N,C,i


Inicio
Leer tarifa,N
C= 1
i= 0
mientras C<=N hacer
Leer horas
salario = tarifa*horas
si salario>=500 entonces
i = i+1
fin_si
fin_mientras
Imprimir i
Fin

12). Clasificar a 50 personas según la edad y el sexo al final deberá visualizar la cantidad
de personas:
Masculinas mayores de edad, la cantidad de personas femeninas menores de edad, cantidad
de
Personas mayores y menores. además deberá indicar el porcentaje que representa las
personas
Mayores y menores de edad.

Variables:
Nom(50), 5x(50):Texto
Ed(50),MMa, FMe,May,Men,C

Inicio
MMa=0
Fme=0
May=0
Men=0
para c=1 hasta c = 50 hacer
leer Ed(c),Sx(c)
si Ed(c)>=18 entonces
May=May+1
sino
Men=Men+1
fin_si
si sx(c)="M"entonces
Si Ed(c)>=18 entonces
MMa=MMa+1
fin_si
sino
si Ed(c)<18entonces
FMe=FMe+1
fin_si

77
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

fin_si
Fin Para
PMa=may*100/50
PMe=Men*100/50
mostrar MMa,FMe,May,Men,PMa,PMe
fin

13). Autogenerar el código del alumno tomando como datos los dos primeros caracteres del
apellido paterno el segundo y tercer carácter de apellido materno los dos últimos caracteres
de los nombres mas el numero que le corresponde en la lista. Además se deberá pedir dos
notas para calcular su promedio del curso de matemática. Se sabe que en el aula son 36
alumnos y además deberá mostrar al final la cantidad de alumnos desaprobados.
Variables
Nom(36),pat(369,Mat(36),Cod(36):Texto
N1(36),N2(36),Prom(36),A,D,C:Numerico

Inicio
A=0
D=0
paraC=1 hasta 36
leer Nom(c), Pat(c),Mat(c),N1(c),N2(c)
cod(c)=Left(pat(c),2)+Mid(Mat(c),2.2)+Rig(Nom(c),2)+STR(c)
Prom(c)=(N1(c))+N2(c))/2
escribir cod(c), prom(c)
si prom(c)>=10.5 Then
A=A+1
si no
D=D+1
fin_si
fin_para
escribir A,D
Fin

14). utilizando arraysbidimensional se pide realizar lo sgte:


Ingresar somo datos nombre del trabajador, categoria y cantidad de horas, segun
estos datos se debe
calcular el sueldo segun la sgt tabla de criterios

categoria Costo hora


1 8.5
2 9.7
3 10.5
4 11.5

la cantidad de trabajadores es de 30 y al final se pide mostrar lo sgte.

78
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Los nombres de los trabajadores con sus respectivos sueldos, ordenados por el sueldo
en forma descendente.
la cantidad de trabajadores por categorias y el total de los sueldos de dicho trabajador.

variables
Aux, Trab(30,4):Variant
I,Ts,C1,C2,C3,C4;Fil,VH:Numerico
Ordenar=Logico
Inicio
C1=0
C2=0
C3=0
C4=0
TS=0
para fil = 01 hasta 30
Ingresar trab(Fil,1), trab(Fil,2), trab(Fil,3)
Seleccione Caso segun trab(Fil,2)
Caso trab(Fil,2)= 1
VH=8.5
C1=C1+1
caso trab(Fil,2)=2
VH=9.7
C1=C2+1
caso trab(Fil,2)=3
VH =10.5
C3=C3+1
caso trab(Fil,2)=4
VH = C4=C4+1
Fin_Seleccione
trab(Fil,4)=Vh*Trab(Fil,3)
Ts=Ts+Trab(Fil,4)
Fin_para

Ordenar=True
mientras ordenar=True hacer
Ordenar=False
Para Fil=1 Hasta29
Si Trab(Fil,4)<Trab(Fil+1,4) Entonces
Aux=Trab(Fil,1)
Trab(Fil,1)=Trab(Fil+1,1)
Trab(Fil+1,1)=Aux
Aux=Trab(Fil,2)
Trab(Fil,2)=Trab(Fil+1,2)
Trab(Fil+1,2)=Aux
Ordenar=True
Fin-si
Fin_Para

79
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Fin mientras
Para Fil=1 hasta 30
Mostrar C1;C2,C3,C4,Ts
Fin_para
Fin

15).clasificar una lista de numeros indicando al final la cantidad de numeros pares y la


cantidad de numeros impares
el dato a ingresar es un numero y se debe en proceso repetir mientras el numero in gresado
sea diferente a cero
variables
NP, N1,NUm : numericos
Inicio
Np= 0
N1=0
leer Num
mientras Num <>0 hacer
si (NUM MOD 2) = 0 entonces
NP= NP+1
sino
NI= NI+1
Fin_si
Ingresar Num
Fin_Hacer
mostrar NP, NI
Fin

16) Leer dos números y ver en la pantalla si están en orden crecientes o decrecientes.
variables: A y B
inicio
leer a, b
si a < b entonces
Escribir “ orden creciente”
sino
Escribir “orden decreciente”
Fin_si
fin

17.-Hacer un programa que de lectura a 15 notas en un array de 1D , luego muestre en la


pantalla las notas aprobatorias
Inicio
Dimensionar nota [50]
x ???1
mientras x<=15 hacer
leer nota [x]
x ???x+1

80
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

fin mientras
x ???1
mientras x<=15 hacer
si nota[x]>=10.5 o nota[x]<=20 entonces
escribir nota[x]
fin_si
fin_ mientras
fin

18.-Hacer un programa que muestre el mensajedecuerdo la edad ingresada: Si la edad es de


0 a 10 años “niño”, si la edad es de 11 a 14 años “púber” , si la edad es de 15 a 18 años “
adolescente” , si la edad es de 19 a 25 años “joven” , si la edad es de 26 a 65 años “ adulto”
, si la edad es mayor de 65 “anciano”
inicio
Leer n
si n >=0 y n<=10 entonces
escribir “niño ”
sino
si n >=11 y n<=14 entonces
escribir “púber “
sino
si n>=15 y n<=18 entonces
escribir “adolescent e”
sino
si n>=19 y n<=25 entonces
escribir “ joven”
sino
si n>=26 y n<=65 entonces
escribir “adulto”
sino
| si n>65 entonces
escribir “anciano”
fin_si
fin_si
fin_si
fin_si
fin_si
fin_si
fin

19.-Hacer un programa que muestre Ejm.el horario en que se transmite “dibujos animados ” :
Si es de 10 a 12 horas “ tele serie ” , si es de 13 a 16 horas “ novelas repetidas ” si es de 16
a 18 horas “dibujos animados ” , si es de 18 a 22 ho ras “novela s juveniles ” , si es de 22 a 23
horas “noticiero”.

81
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

Inicio
Leer n
si n>=10 y n<=12 entonces
escribe “teleserie ”
sino
si n>13 y n<=16 entonces
escribe “nov elas repetidas”
sino
si n>=16 y n<=18 entonces
escribe “dibujos animados ”
sino
si n >=18 y n>22 entonces
escribe “novelas juveniles”
sino
si >=22 y n <=23 entonces
escribe “noticiero”
fin_si
fin_si
fin_si
fin_si
fin_si
fin

20.- "SAGA FALABELLA" se encuentra de aniversario y ha programado una serie de ofertas


con la finalidad de brindar facilidades a sus clientes y al a vez de incrementar sus ventas.
Estas ofertas se basan especificamente en un procentaje de descuento sobre eol total de
compra el cual varia de acuerdo al monto

* Por un monto mayor o igual a $500 se hara un descuento del 30%

* Por un monto menor de $500 pero mayor o igual a 200 se hara un descuento del 20%

* Por un monto menor de $200 pero mayor o igual a 100 se hara un descuento del 10%

* Considere 100 personas


INICIO
| x=x+1
| Leer Consumo
| Si consumo >=500 entonces
| descuento = Consumo*30/100
| Sino
| Si consumo >=200 entonces
| descuento = Consumo*20/100
| Sino
| Si consumo >=100 entonces
| descuento = Consumo*10/100

82
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

| Sino
| Descuento=0
| Fin_si
| Fin_si
| Fin_si
| Totalpagar= Consumo-Descuento
| Imprimir Totalpagar
| Si x<>100 entonces
| x=x+1
| Fin_si
FIN

21. Dado la tarifa de pago por horas de un trabajador, y sus horas trabajadas calcular
cuantos trabajadores reciben un salario mayor o igual a S/.500 y calcular ademas el promedio
de los salarios de todos los trabajores

INICIO
|
| Leer N
| Leer Tarifa
| i=0
| C=0
| Suma=0
| mientras i<=N Hacer
| | Leer horas
| | salario= tarifa * horas
| | Escribir salario
| | Si salario >=500 entonces:
| | c=c+1
| | Fin_si
| | Suma= suma + salario
| | i=i+1
| fin_mientras
| P=suma/N
| Escribir: P,C
|
FIN
22. Una tienda se dedica a la venta de computadoras, cuenta con 10 vendedores. Cada uno
de ellos tiene un sueldo mensual pero ademas de su sueldo ganan una comision por venta
* Si el monto de venta es mayor de 1000 la comsion sera del 15%
* Si el monto de venta es mayor o igual a 500 y menor de 1000 la comision es del 5%
* Si el monto de la venta es menor que 500 no tiene comision

INICIO
| x=x+1
| Leer "Sueldo", "Venta"

83
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

| Si venta>=1000 entonces
| | Sueldo = Venta * 15/100
| |
| Sino
| |
| | Si venta>=500 entonces
| | Sueldo = Venta * 5/100
| |
| | Sino
| | Comision=0
| |
| | Fin_si
| |
| Fin_si
|
| Sueldototal
| Si x<>10 entonces
| | x=x+1
| |
| Fin_si
|
FIN

23.- Katthy organiza una fiesta en la cual una computadora controla el ingreso mediante 5
claves. Si se ingresa al menos una clave incorrecta esta imprimira "TE EQUIVOCASTE DE
FIESTA" y no permitira el ingreso. Si las 5 claves son correctas imprimira "BIENVENIDO A LA
FIESTA"

Las Claves son:


1: "TIENES"
2: "QUE SER"
3: "INVITADO"
4: "PARA"
5: "INGRESAR"

INICIO
|
| Leer Claves: C1,C2,C3,C4,C5
|
| Si C1<>"TIENE" entonces:
| | escribir "Te Equivocaste de Fiesta"
| |
| Sino
| | escribir "Ingrese la Clave2"
| |

84
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

| | Si C2<>"QUE_SER" entonces:
| | | escribir "Te Equivocaste de Fiesta"
| | |
| | Sino
| | | escribir "Ingrese la Clave3"
| | |
| | | Si C3<>"INVITADO" entonces:
| | | | escribir "Te Equivocaste de Fiesta"
| | | |
| | | Sino
| | | | escribir "Ingrese la Clave4"
| | | |
| | | | Si C4<>"PARA" entonces:
| | | | | escribir "Te Equivocaste de Fiesta"
| | | | |
| | | | Sino
| | | | | escribir "Ingrese la Clave5"
| | | | |
| | | | | Si C5<>"INGRESAR" entonces:
| | | | | | escribir "Te Equivocaste de Fiesta"
| | | | | |
| | | | | Sino
| | | | | | escribir "Bienvenido a la Fiesta"
| | | | | |
| | | | | Fin_si
| | | | |
| | | | Fin_si
| | | |
| | | Fin_si
| | |
| | Fin_si
| |
| Fin_si
|
FIN

24.- Hacer un programa que al ingresar 2 numeros por la pantalla y que se calcule la suma,
resta, multiplicacion y division. El proceso debe terminar cuandon se hallan realizado 10
procesos (Hacer uso de contadores)

INICIO

X=X+1
Leer A,B

S=A+B

85
LOGICA DE PROGRAMACIÓN MANUAL DEL DOCENTE

R=A-B
M=A*B
D=A/B

IMPRIMIR ,S,R,M,D

Si x=10 entonces:
escribe "Fin del programa"

Sino
X=X+1

Fin_si

FIN

86