Apuntes Unidad 1 - LOGICA
Apuntes Unidad 1 - LOGICA
Apuntes Unidad 1 - LOGICA
Introducción.
Competencia.
Aplicar los elementos básicos en la elaboración de un algoritmo y
diagramas de flujo para la solución de problemas.
Sugerencias de aprendizaje.
1. Lectura del material didáctico referente a la introducción de
algoritmos.
2. Trabajo de investigación de diferentes conceptos y características de
los algoritmos.
3. Resolver problemas por medio de algoritmos, durante la clase.
4. Solucionar problemas por medio de algoritmos extraclase.
5. Reconocer la simbología utilizada en los diagramas de flujo, por
medio de una investigación.
6. Resolver durante la clase problemas utilizando las técnicas de
pseudocódigo y diagramas de flujo
7. Realizar de tarea la solución de los problemas, por medio de
algoritmos, pseudocódigo, diagramas de flujo y diagramas N-S.
Sugerencias de evaluación.
Examen escrito que contenga problemas para resolver por
medio de pseudocódigo y algoritmos, diagramas de flujo y
diagrams N-S.
Resolución de problemas de tarea.
Trabajo de investigación.
Euclides, gran matemático griego (s. IV. A.C.) inventó un método para
encontrar el máximo común divisor de dos números, se considera junto con Al-
Khowarizmi el otro gran padre de la ciencia de los algoritmos o algorítmia.1
Entrada de datos.
Proceso de datos.
Ejemplos de Algoritmo.
Solución
1. Inicio.
2. Leer el pedido.
3. Examinar ficha del cliente.
Elaboró: Dra. Margarita Ramírez Ramírez 6
Lógica de Programación
Solución
El algoritmo general es:
Datos de entrada.
Datos de salida.
1. Inicio.
2. Obtener valor de horas trabajadas, salario hora y tasa de impuestos.
3. Calcular salario bruto, total de impuestos y sueldo neto.
3.1 Calcular salario bruto, multiplicando las horas trabajadas por el salario
x hora.
3.2 Calcular el total de impuestos, multiplicando salario bruto por tasa de
impuestos.
3.3 Calcular el salario neto, restando el total de impuestos del salario
bruto.
4. Visualizar salario bruto, total de impuestos, salario neto.
5. Fin
Solución
Datos de Entrada.
Proceso.
Datos de Salida.
1. Inicio.
2. Calcular la cantidad de metros en los 42.195 kilómetros.Dividir cantidad
de kilómetros entre 1000.
3. Calcular el total de minutos en 2 horas y 25 minutos. Puesto que una hora
tiene 60 minutos, se multiplica 2 horas * 60 minutos + 25 minutos = 145
minutos.
4. Calcular el número de metros por minuto. Dividiendo los metros obtenidos
entre el total de minutos.
5. Fin.
Solución
Datos de Entrada.
num1, num2.
Proceso.
Realizar la suma de num1 + num2, (suma= num1 + num2).
Datos de salida.
Desplegar la variable suma.
Solución
1. Inicio.
2. Inicializar contador de número C, y variable suma, S.
3. Leer un número.
4. Si el número leído es cero:
Calcular la media;
Imprimir la media
Fin del proceso si
5. Si el número leído no es cero
Calcular la suma;
Incrementar en un contador de números;
Ir al paso 2.
Fin del proceso si
6. Fin.
Ejercicio No. 1 Clase
Tipos de datos.
Los tipos de datos simples son:
Numéricos.
Lógicos.
Caracter
.
Datos numéricos:
Estos datos pueden representarse en dos formas: numérico entero
(integer) o numérico real (real).
Numérico entero:
Es un subconjunto finito de los números enteros. Estos son números
completos, no tienen componentes fraccionarios o decimales y pueden ser
negativos o positivos.
Ejemplo:
5, 8, 3456, -15, -987
Numérico real:
Los números reales siempre tienen un punto decimal y pueden ser
positivos o negativos. Un número real consta de un entero y una parte decimal.
Ejemplo:
0.08, 8.90, -89.79.
Ejemplo:
Cuando se pide si un valor entero es par, la respuesta será verdadera o
falsa, según sea el caso.
Datos caracter:
Es el conjunto finito y ordenado de caracteres que la computadora
reconoce. Un dato tipo caracter contiene un sólo caracter.
Ejemplo:
Caracteres alfabético (a, b, c...z)
Caracteres numéricos (1, 2, ...9)
Caracteres especiales (+, *, (, %, <, >, ?, etc)
Constante.
Datos que permanecen sin cambios durante todo el desarrollo del
algoritmo o durante la ejecución del programa.1
Constantes caracter
Consiste en un caracter válido en
Variable real.
Variables que almacenan valores numéricos reales.1
Ejemplo:
1.90, 89.08, 789.67
Variable carácter.
Consiste en un caracter válido en
Identificadores.
Los datos a procesar por una computadora, deben almacenarse en
casillas o celdas de memoría para su posterior utilización. Estas casillas o celdas
de memoria (constantes o variables) tienen un nombre que permiten su
identificación. Un Identificador es el nombre que se les da a las casillas de
memoría, existen ciertas reglas para la construcción de un identificador, a
continuación se describen:
El primer caracter debe ser una letra.
La longitud del identificador no debe exceder de ocho caracteres.
Expresiones alfanuméricas
Son las que producen resultados de tipo alfanumérico. Se construyen
mediante los operadores alfanuméricos.
Las expresiones que tienen dos o más operandos requieren unas reglas
matemáticas que permitan determinar el orden de las operaciones, se
denominan reglas de prioridad o precedencia y son:
1. Paréntesis
2. Operador exponencial.
3. Operadores *, /.
4. Operadores +,-.
5. Operadores div y mod.
Tabla No. 3 Prioridad de operadores aritmétIcos.
Operadores.
Un operador es un símbolo o palabra que significa que se ha de realizar
cierta acción entre uno, dos o más valores llamados operandos.
Operadores Aritméticos
Operadores que permiten realizar operaciones aritméticas entre
operandos. El resultado que se obtiene al evaluar una expresión aritmética es un
valor numérico.
**,^ Exponenciación
/ División DIV División entera
* Multiplicación MOD Resto de la división entera.
+ Suma o signo positivo
- Resta o signo negativo
Tabla No. 5 Operadores Aritméticos.
Operadores Alfanuméricos
+ Concatenación
Tabla No.6 Operador Alfanúmérico.
Operadores Relacionales
Permiten comparar dos valores ya sean numéricos o alfanuméricos. El
resultado es un valor de verdad (Falso o verdadero).
= Igual que
< Menor que
> Mayor que
>= Mayor o igual que
<= Menor o igual que
<> Distinto a
Tabla No.7 Operadores Relacionales
Operadores Lógicos
Permiten realizar operaciones lógicas de conjunción, disyunción o
negación. El resultado es un valor de verdad (falso o verdadero).
No Negación
y Conjunción
o Disyunción
Tabla No.8 Operadores Lógicos.
Operadores asociativos
El único operador asociativo que existe es el paréntesis, el cual permite
indicar en qué orden deben realizarse las operaciones. Cuando una expresión
se encuentra entre paréntesis, indica que las operaciones que están dentro de
ellos deben realizarse primero.
() Se utilizan para anidar expresiones.
Tabla No.9 Operador Asociativo.
Operadores de relación
Operador Significado
VARIABLE EXPRESION
Ejemplo:
Leer el radio de un círculo y calcular e imprimir su superficie y
circunferencia.
Análisis:
Las entradas de datos en éste problema se concentran en el radio del
círculo. Dado que el radio puede tomar cualquier valor dentro del rango de los
números reales, el tipo de dato radio debe ser real.
Una vez que se tienen definidos los datos de entrada, salida y que los
procesos necesarios para alcanzar los resultados, es el momento para pasar a la
fase de diseño de la solución de problemas.
Diagramas de flujo.
Diagrama N-S (Nassi-Schneiderman)
Lenguaje de especificación de algoritmos (pseudocódigo)
Diseño descendente (Top down)
Conceptos.
Un diagrama de flujo representa graficamente un algoritmo. Elaborar
correctamente un diagrama de flujo es muy importante, ya que de esto depende
la facilidad para la traducción del diagrama de flujo en programa escrito en algún
lenguaje de programación.
Otro concepto de diagrama de flujo es: Técnica de representación de
algoritmos más antigua y a la vez más utilizada, usa símbolos y los pasos del
algoritmo se escriben dentro de cada una de las cajas, unidas por flechas, que
indican la secuencia en que se deben ejecutar.
Un diagrama de flujo nos facilita la escritura de un programa
independientemente de cual haya sido el lenguaje de programación elegido.
Un diagrama de flujo utiliza símbolos estándar los cuales están
Flujo de procesos
Decisión
Ejemplo:
Historia.
El diagrama Nassi-Schneiderman surge a mediados de los años 70,
cuando la programación estructurada se torno popular. Se introducen como
Técnica estructurada de creación de diagramas de flujo. Tinenen una mejor
organización, más estructurados y más comprensibles que un diagrama de flujo
típico; por esto a veces se les refiere como herramienta para crear
especificaciones del proceso.
Definiciones.
Nassi-Shneiderman: es un diagrama de flujo con las flechas omitidas y
cajas o bloques contiguos, las acciones sucesivas se escriben en cajas
sucesivas.
Esto significa que el analista puede comenzar trazando primero los ciclos
principales y luego hacer una sangría para completar posteriormente los ciclos
interiores.
Diagrama: es un dibujo geométrico que representa gráficamente las
variaciones de un fenómeno.
Diagramación: es el uso de diagramas para facilitar la solución de algún
problema específico.
Se emplean para:
Para enfocar las características del sistema. Para discutir cambios o
correcciones a los requerimientos del usuario, a bajo costo y con riesgo mínimo.
Para verificar que se entienda el ambiente del usuario, y que se ha documentado
de tal manera que los diseñadores y programadores puedan contribuir al
sistema.
Características.
Deben ser gráficos.
Con detalles textuales de apoyo apropiados.
Deben permitir que el sistema sea visto en segmentos y en forma
descendente.
Deben tener redundancia mínima.
Elaboró: Dra. Margarita Ramírez Ramírez 29
Lógica de Programación
Ventajas.
Usa una cantidad limitada de símbolos, por lo que el diagrama de flujo
ocupa menos espacio. Puede ser leído por alguien que no este familiarizado
con los símbolos usados en otros tipos de diagramas de flujo.
Secuencial.
El primer símbolo es un cuadro, que se usa para representar cualquier
proceso en el programa.
Acción A
Acción B
..
Acción N
Alternativas.
El segundo símbolo es un triangulo divisor de columnas, que representa
una decisión.
Selección simple.
Si la condición es verdadera se ejecuta la acción y si es falsa las acciones
siguientes.
Selección simple
Condición
If
SI NO
.
.
.
Acción Then
Selección Doble.
Condición
SI NO If
Then
Else
Acción 1 Acción 2
Selección Múltiple.
Variable
1 2 3 ... n otro
Case
A B C X Z
Ejemplo.
End-case
Condición
Si No
Condición
Si No
Acción
Acción Acción
A C
B
Inicio
Leer 3 números N1, N2, N3
Si N1>N2
Entonces
Si N1>N3
Entonces MAYOR = N1
Elaboró: Dra. Margarita Ramírez Ramírez 32
Lógica de Programación
Si no MAYOR = N3
Fin_si
Si N2>N3
Entonces MAYOR = N2
Si no MAYOR = N3
Fin_si
Fin si
Fin
Diagrama Nassi-Schneiderman (N S)
Inicio
Ejemplo
Leer 3 número N1,N2,N3
N1>N2
Si No
N2>N3
N1>N3
Si No Si No
FIN
Acción
End-While
End While
1.11. Pseudocódigo.
La técnica de Pseudocódigo es una herramienta flexible para el diseño de
programas, por lo que nos permite solucionar problemas mediante
aproximaciones sucesivas.
Es un lenguaje de especificación de algoritmos, el uso de éste lenguaje
hace más sencillo, el paso de la codificación final (a un lenguaje de
programación)
Una notación es un pseudocódigo, si mediante ella podemos describir la
solución de un problema en forma de algoritmo dirigido a la computadora,
usando palabras y frases del lenguaje natural sujeto a determinadas reglas.
Secuencia I1,I2,I3; In
Condiciones
Alternativa múltiple
opción expresión do
opc1 hacer operación1
opc2 hacer operación2
opc3 hacer operación3
opcn hacer operaciónn
fin opción.
Repetición
Mientras (while)
Mientras condición hacer
operación(es)
fin mientras.
Repetir (Repeat)
Repetir
operaciónI, operaciónn
hasta condición.
Ejemplo:
Realiza un pseudocódigo, que permita calcular el promedio de
calificaciones de un grupo de n alumnos, el programa se detiene cuando el
nombre del alumno tecleado sea fin. Se deben capturar nombre alumno,
calificación del alumno.
Programa calificaciones
Variables
Nombre: alfanumérico
I, cont: numérico
calif, prom: numérico real.
Inicio
cont 0
prom 0
suma 0
Repetir
Leer nombre
Leer calif
cont cont + 1
suma suma+ calif
Elaboró: Dra. Margarita Ramírez Ramírez 36
Lógica de Programación
escribir prom
Fin programa
Ejemplo 2.
Se desea ir al cine a ver la película , si no está la película
en cartelera, se decidirá realizar otra actividad. Realice el Pseudocódigo, que
muestre los pasos necesarios a seguir para poder asistir al cine y ver dicha
película.
Pseudocódigo.
1. inicio.
2. ver la cartelera de cines en el periódico.
3. sino proyectan entonces decidir otra actividad
si proyectan ir al cine
si hay fila entonces ponerse en ella
mientras haya personas delante suya hacer
avanzar en la fila
si existen asientos disponibles entonces
comprar una entrada
encontrar el asiento correspondiente
mientras proyectan la película hacer ver la película
sino
abandonar el cine
volver a casa
fin
Supongamos que al anterior pseudocódigo deseamos agregarle una
modificación:
Elaboró: Dra. Margarita Ramírez Ramírez 37
Lógica de Programación
ALGORITMO
1. INICIO
2. Conocer año de nacimiento AN
3. Conocer año actual AA
4. Calcular edad E, con la siguiente operación
5. E= AA AN
6. Imprimir edad E
7. FIN
DIAGRAMA DE FLUJO
INICIO
AA, AN, E = 0
AA
AN
E = AA - AN
FIN
PSEUDOCÓDIGO
INICIO
FIN
Edad
Leer
AÑO_A, EDAD= AÑO_A AÑO_N La
AÑO_N