Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Apuntes Unidad 1 - LOGICA

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 41

Lógica de Programación

Introducción.

Una de las áreas fundamentales en la preparación de los profesionistas


en Informática; es el área de Programación de computadoras. El desempeño del
profesionista en está área influirá significativamente en la función que las
computadoras realizan dentro de cualquier organización u empresa, es por esto
que una de las materias elementales de la Carrera de Lic. en Informática, es la
de Programación I o Algoritmos Computacionales.

El presente trabajo se creó con la finalidad de facilitar el aprendizaje a los


alumnos que cursan la materia de Lenguajes algoritmicos, al igual que a las
personas que necesitan solucionar problemas de tipo algorítmico, utilizando el
razonamiento lógico.

Estos apuntes presentan aspectos teóricos generales que deben


considerarse para la realización de diseño de la solución de problemas, además
de ofrecer las técnicas necesarias que ayuden a lograr las prácticas que
permitan desarrollar la lógica de programación.

Estos apuntes docentes están organizados en cuatro unidades,


ofreciendo en cada una de ellas el material de apoyo necesario, así como la
presentación de ejemplos que ayuden en el logro de nuevos conocimientos. La
unidad I trata de los algoritmos, sus características y aspectos básicos de la
programación. La unidad II muestra las diferentes técnicas que existen para la
solución de problemas, conociéndolas y aplicando la técnica acorde al caso. En
la unidad III, se presentan las instrucciones básicas en la lógica de
diagramación. Por último la unidad IV es una introducción al tema de estructuras
de datos (arreglos).

Elaboró: Dra. Margarita Ramírez Ramírez 2


Lógica de Programación

UNIDAD I. DEFINICIÓN DE CONCEPTOS Y PROPIEDADES DE LOS


ALGORITMOS.

Desarrollo didáctico del contenido.


El propósito general de estos apuntes docentes, es ofrecer al alumno un
conjunto de técnicas y herramientas metodológicas que permitan estructurar el
razonamiento lógico a seguir, para la solución de un problema.

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.

Elaboró: Dra. Margarita Ramírez Ramírez 3


Lógica de Programación

UNIDAD I. INTRODUCCION A LOS ALGORITMOS.

1.1. Introducción a los algorítmos.


Algoritmo proviene del nombre de Mohammed al-Khowarizmi, quien fue
un matemático persa que vivió durante el siglo IX y alcanzó gran reputación por
el enunciado de las reglas paso a paso para sumar, restar, dividir y multiplicar
números decimales; la traducción al latín del apellido en la palabra algorismus
derivó posteriormente en algoritmo.(Joyanes,2003)

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

El objetivo fundamental de la Programación es resolver problemas


mediante una computadora. Un programador de computadora es antes que
nada una persona que resuelve problemas de un modo riguroso y sistemático,
1
normalmente a está metodología se le conoce cómo metodología de la
programación. El eje central de esta metodología es el concepto de algoritmo.1

La resolución correcta de un problema exige el diseño de una técnica que


resuelva el problema propuesto, el cual puede ser un algoritmo

A continuación se muestra un diagrama de procesos, en los que se


definen los pasos que generalmente se realizan para llegar a la solución de un
problema mediante el uso de una computadora.

Fig. 1. Diagrama de procesos.

Como primer proceso es necesario identificar claramente al problema.


Posteriormente realizar el diseño del algoritmo para finalmente realizar un
programa en la computadora.

Elaboró: Dra. Margarita Ramírez Ramírez 4


Lógica de Programación

Los algoritmos son independientes tanto del lenguaje de programación en


que se expresan como de la computadora que los ejecuta. Por lo que, un
algoritmo puede ser expresado en diferentes lenguajes de programación y
siempre se debe obtener el mismo resultado.

En las ciencias de la Computación y programación los algoritmos son más


importantes que los lenguajes de programación o las computadoras, puesto que
el lenguaje, como la computadora son medios para expresar y efectuar un
proceso correspondiente.

El diseño de los algoritmos requiere creatividad y conocimientos


profundos de la técnica de la programación. En esencia todo problema se puede
describir por medio de un algoritmo.

1.2. Conceptos de algorítmo.

Conjunto de instrucciones que específican la secuencia de operaciones a


realizar, en orden, para resolver un sistema específico o clase de problemas, se
denomina algoritmo.

Otros conceptos de algoritmo:

Algoritmo es una fórmula para la resolución de problemas.

Conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un


resultado o resolver un problema.
Serie de pasos ordenados, encaminados a resolver un problema.

Las acciones que se pueden llevar a cabo en un algoritmo son las


siguientes. Pedir datos, desplegar los datos, evaluar condiciones, ejecutar
operaciones, repetir acciones y mostrar resultados.

Elaboró: Dra. Margarita Ramírez Ramírez 5


Lógica de Programación

1.3. Características de los algorítmos.


Las características fundamentales que debe cumplir todo algorítmo son:

a) Ser preciso e indicar el orden de realización de cada paso.


b) Estar definido, si se sigue un algoritmo dos veces, se debe obtener el mismo
resultado cada vez.
c) Ser finito, contar con un número definido de pasos.
d) Tener un inicio y un fin.
e) Ser determinísta, según un conjunto de datos idénticos de entrada, arrojará
los mismos resultados.
f) El flujo de control usual de un algoritmo es secuencial.

Un algorítmo consta de tres partes fundamentales

Entrada de datos.

Proceso de datos.

Salida de datos o impresión de resultados.

Ejemplos de Algoritmo.

I. Un cliente ejecuta un pedido a una fábrica. La fabrica examina en su banco de


datos la ficha del cliente, si el cliente es solvente entonces la empresa acepta el
pedido, en caso contrario lo rechaza. Redactar el algoritmo correspondiente.

Solución

Los pasos del algoritmo son:

1. Inicio.
2. Leer el pedido.
3. Examinar ficha del cliente.
Elaboró: Dra. Margarita Ramírez Ramírez 6
Lógica de Programación

4. Si el cliente es solvente aceptar pedido, en caso contrario rechazar


pedido.
5. Fin.

II. Realice un algoritmo que obtenga el salario neto de un trabajador conociendo


el número de horas trabajadas, el salario por hora y la tasa de impuestos que se
le debe deducir.

Solución
El algoritmo general es:

1. Obtener valor de horas-trabajadas, salario-hora y tasas.


2. Calcular salario-bruto, total de impuestos y salario-neto.
3. Visualizar salario-bruto, total de impuestos y salario-neto.

Datos de entrada.

Horas-trabajadas, salario-hora, tasa.

Datos de salida.

Salario bruto, total de impuestos y salario neto.

El refinamiento del algoritmo es:

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

Elaboró: Dra. Margarita Ramírez Ramírez 7


Lógica de Programación

III. Un corredor de maratón ha recorrido una distancia de 42.195 kilómetros, en


2 horas 25 minutos. Se desea realice un algoritmo que calcule la distancia
promedio en metros recorrida por minuto.

Solución

Datos de Entrada.

Puesto que los valores son definidos desde el planteamiento del


problema, no es necesario capturar ningún dato, sólo se requiere convertir
algunos datos.

(Tiempo empleado en la carrera (en minutos), el número total de metros en


42,195 kilómetros.)

Proceso.

Convertir los kilómetros a metros.


Se requiere dividir el número de metros entre el tiempo total en minutos.

Datos de Salida.

Número promedio de metros por minuto.

El refinamiento del algoritmo es:

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.

IV. Realiza un algoritmo que permita realizar la suma de 2 números.

Solución

Elaboró: Dra. Margarita Ramírez Ramírez 8


Lógica de Programación

Datos de Entrada.
num1, num2.
Proceso.
Realizar la suma de num1 + num2, (suma= num1 + num2).

Datos de salida.
Desplegar la variable suma.

V. Algoritmo que calcule la media de una serie de números positivos suponiendo


que los datos se leen desde una terminal. Un valor cero como entrada indicará
que se ha alcanzado el final de la serie de números positivos.

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

Los siguientes ejercicios se recomiendan sean resueltos en clase, para poder


aplicar los conocimientos y aclarar dudas.

1. Realiza un algoritmo que resuelva una ecuación cuadrática.

Elaboró: Dra. Margarita Ramírez Ramírez 9


Lógica de Programación

2. Realizar un algoritmo para intercambiar los valores de dos variables


numéricas.
3. Se desea un algoritmo para convertir metros a pulgadas (1 metro = 39.37
pulgadas).

4. Diseñar un algoritmo que calcule y escriba el cuadrado de 243.

5. Escribir un algoritmo que lea un nombre de una marca de automóviles


seguida del modelo e imprima del modelo seguido del nombre de la
marca.

6. Escribir un algoritmo para calcular el área de un triángulo dada la base y


la altura.

Elaboró: Dra. Margarita Ramírez Ramírez 10


Lógica de Programación

1.4. Concepto de datos.


El primer objetivo en el uso de toda computadora es el manejo de datos
para obtener información.
Estos datos pueden ser las cifras de ventas de un supermercado o las
calificaciones de una clase. Un dato es la expresión general que describe los
objetos con los cuales opera una computadora. La mayoria de las computadoras
trabajan con diferentes tipos de datos. Los algoritmos y los programas
correspondientes operan sobre datos.1

Los datos de entrada se transforman por el programa, después de las


etapas intermedias, que generalmente son procesos de conversión y/o
operaciones en datos de salida.
Existen diferentes tipos de datos: simples (sin estructura) y compuestos
(estructurados).
La principal característica de los datos simples es que ocupan sólo una
casilla de memoría, por lo tanto, una variables simple hace referencia a un único
valor a la vez.
Los datos estructurados se caracterizan por el hecho de que con un
nombre (identificador de variable) se hace referencia a un grupo de casillas de
memoría.2

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).

Elaboró: Dra. Margarita Ramírez Ramírez 11


Lógica de Programación

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.

Datos lógicos (Booleanos)


Son aquellos datos que sólo puede tomar dos valores: cierto o verdadero
(true o false). Este tipo de dato se utiliza para representar alternativas (si/no) a
determinadas condiciones.

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)

Elaboró: Dra. Margarita Ramírez Ramírez 12


Lógica de Programación

Una cadena (string) de caracteres 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 delimitadores. Algunos
lenguajes tienen este tipo de dato.
Ejemplo:

La memoría principal permite almacenar datos, las zonas de memoría se


pueden clasificar en constantes y variables.3

Tema 1.5. Concepto de constantes y variables.


Los programas de computadora contienen ciertos valores que no cambian
durante la ejecución del programa. Tales valores se llaman Constantes. De
igual forma, existen otros valores que cambiarán durante la ejecución del
programa o la fase de procesamiento de la información, a estos valores se les
llama Variables.1

Constante.
Datos que permanecen sin cambios durante todo el desarrollo del
algoritmo o durante la ejecución del programa.1

1.5.1. Tipos de constantes.


Constantes reales.
Constantes que almacenan valores numéricos reales.1
Ejemplo:
1.90, 89.08, 789.67

Constantes caracter
Consiste en un caracter válido en

Elaboró: Dra. Margarita Ramírez Ramírez 13


Lógica de Programación

Constante lógica (boolean)


Sólo existen dos valores en las constantes lógicas o booleanas: verdadero
y falso. La mayoría de los lenguajes de programación permiten diferentes tipos
de constantes: enteras, reales, caracteres y boolean o lógicas, y representan
datos de esos tipos.1

1.5.2. Tipos de variables.


Variable.
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, caracter lógicas y de cadena.
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,
suelen constar de varios caracteres alfanuméricos de los cuales el primero
normalmente es una letra.

Ejemplo de nombres válidos de variables.


A510, nombre, promedio, dirección.

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

Variable lógica (boolean).


Sólo existen dos valores en las variables lógicas o booleanas: verdadero y
falso. La mayoría de los lenguajes de programación permiten diferentes tipos de

Elaboró: Dra. Margarita Ramírez Ramírez 14


Lógica de Programación

variables: enteras, reales, caracteres y boolean o lógicas, y representan datos de


esos tipos.1

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.

Tema 1.6. Expresiones.


Las expresiones son combinaciones de constantes, variables, símbolos
de operación, paréntesis y nombres de funciones especiales. 1

Una expresión es la representación de un cálculo necesario para la


obtención de un resultado.
Un conjunto de operadores y operandos que producen un valor.
Una expresión está compuesta por operandos y operadores.

2. Una constante o variable es una expresión. Ejemplo: PI, E, X.


3. Una función es una expresión. Ejemplo: COS (X).
4. Una combinación de valores, constantes, variables, funciones y operadores
que cumplen determinadas reglas de construcción es una expresión.

Ejemplo: Cos(pi * x) +1.25


2 * pi * x

Elaboró: Dra. Margarita Ramírez Ramírez 15


Lógica de Programación

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 operandos y operadores. Según sea el tipo de
objetos que manipulan, se clasifican las expresiones en:
Aritméticas.
Alfanuméricas.
Relacionales.
Lógicas.
Tabla No. 1 Tipos de expresiones.

1.6.1. Tipos de expresiones.


Expresiones aritméticas.
Expresiones de tipo alfanuméricas.
Expresiones lógicas.

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


una expresión relacional y de una expresión lógica es de tipo lógico; el resultado
de una expresión caracter es de tipo caracter.
1.6.2. 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.
+ Suma.
- Resta.
* Multiplicación.
/ División.
**,^ Exponenciación.
div División entera.
mod Módulo (resto)

Tabla No. 2 Expresiones aritméticas.

Elaboró: Dra. Margarita Ramírez Ramírez 16


Lógica de Programación

Expresiones alfanuméricas
Son las que producen resultados de tipo alfanumérico. Se construyen
mediante los operadores alfanuméricos.

1.6.3. Reglas de prioridad en los operadores aritméticos.

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:

a. Las operaciones que están encerradas entre paréntesis se evalúan


primero. Si existen diferentes paréntesis anidados (interiores
unos a otros), las expresiones más internas se evalúan primero.
b. Las operaciones aritméticas dentro de una expresión suelen seguir
el siguiente orden de prioridad :

1. Paréntesis
2. Operador exponencial.
3. Operadores *, /.
4. Operadores +,-.
5. Operadores div y mod.
Tabla No. 3 Prioridad de operadores aritmétIcos.

En caso de coincidir varios operadores de igual prioridad en una


expresión o subexpresión encerrada entre paréntesis, el orden de prioridad en
este caso es de izquierda a derecha.

1.6.4. Expresiones lógicas (booleanas)


Este tipo de expresiones tiene solamente un valor, y siempre es
verdadero o falso. Las expresiones lógicas utilizando los operadores lógicos
not, and, y or y los operadores relacionales (de relación o comparación) =, <, >,
<=, >=, <>.
Elaboró: Dra. Margarita Ramírez Ramírez 17
Lógica de Programación

Son las que producen resultados cierto o falso.Se construyen mediante


los operadores relacionales y lógicos.
Ejemplo: A > 0 y B < = 5

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.

Existen cinco tipos de operadores.


1) Aritméticos
2) Alfanuméricos
3) Relacionales
4) Lógicos
5) Asociativos.
Tabla No. 4 Tipos de operadores.

Para la construcción de expresiones se pueden utilizar, de forma general,


los siguientes operadores:

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

Elaboró: Dra. Margarita Ramírez Ramírez 18


Lógica de Programación

+ 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

Elaboró: Dra. Margarita Ramírez Ramírez 19


Lógica de Programación

Los operadores relacionales o de relación permiten realizar


comparaciones de valores de tipo numérico o caracter. Los operadores de
relación sirven para expresar las condiciones en los algoritmos.
Operadores de relación.

Operador Significado

< Menor que


> Mayor que
= Igual que
<= Menor o igual a
=> Mayor o igual a
<> Distinto a

Tabla No.10 Operadores de Relación

1.6.5. Operaciones de asignación.


La operación de asignación es el proceso mediante el cual se determina
el valor a una variable. La operación de asignación se representa con el símbolo
u operador
La operación de asignación se conoce como una instrucción o sentencia
de asignación cuando se refiere a un lenguaje de programación.

VARIABLE EXPRESION

Tabla No.11 Operadores de Asignación

Se lee: A la variable se le asigna el valor de la expresión

Elaboró: Dra. Margarita Ramírez Ramírez 20


Lógica de Programación

Ejercicio No. 2 clase.

Determina cual será el orden de precedencia de las siguientes expresiones.


Ejemplo:
a)3 + 6 * 14 =
1) 6* 14.
2) 3 + Resultado 6 * 14.
b) 8 + 7 * 3 + 4 * 6
c) -4 * 7 + 2 ^ 3 / 4 - 5
d) 5 *(x + y)
e) a^2+ b^2
f) (x + y) / (u + w/ a)
g) x/y * (z + w)
h) a * (b +3)
i) (A*b) + 3

Elaboró: Dra. Margarita Ramírez Ramírez 21


Lógica de Programación

1.7. Estrategias utilizadas para la Solución de Problemas.

Fundamentos para la Solución de Problemas.

La resolución de problemas con computadoras se puede dividir en cuatro fases


globales:

Análisis del problema.


Diseño de la solución al problema.
Resolución del problema mediante la computadora.
Depuración y corrección de errores.

Cada uno de ellos se analizarán en los siguientes temas.

1.7.1. Análisis del problema.


En la fase de análisis del problema, el analista debe conocer ampliamente
el problema planteado analizar y determinar cuales serán las alternativas
posibles para lograr un objetivo en particular.

Para tener éxito en el análisis del problema, es necesario que este se


defina correctamente. Para poder definirlo con precisión se requiere que las
especificaciones de entrada/salida sean descritas con detalle.

Una vez analizado el problema, se debe desarrollar su algoritmo. Por


último, para resolver el algoritmo mediante una computadora es necesario
codificarlo en un lenguaje de programación: C, C#, Java, es decir convertir el
algoritmo en programa, ejecutarlo y comprobar que el programa soluciona
verdaderamente el problema.

Ejemplo:
Leer el radio de un círculo y calcular e imprimir su superficie y
circunferencia.

Elaboró: Dra. Margarita Ramírez Ramírez 22


Lógica de Programación

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.

Las salidas serán dos variables: superficie y circunferencia que también


serán de tipo real.

Entradas: Radio del círculo (variable radio)


Proceso: Aplicar las fórmulas.
Salidas: Superficie del círculo (variable área)
Circunferencia del círculo (variable circunferencia)

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.

1.7.2. Diseño de la solución de problemas.


Una computadora no tiene capacidad para solucionar problemas por sí
sola, únicamente cuando se le proporcionan los pasos sucesivos a realizar, que
indican las instrucciones a ejecutar, y constituyen un algoritmo.
Una vez que el problema es comprendido, el siguiente paso es conocer
cuál es la información útil que se tiene, los datos que se requieren, que
información se debe obtener, y decidir que herramientas se utilizarán en la
solución de éste problema.
La principal razón para que las personas aprendan a programar es utilizar
la computadora como una herramienta para la resolución de problemas. Sin
embargo para lograr la resolución de un problema, es necesario realizar los
siguientes procedimientos: análisis del problema, elegir el método de diseño:
algoritmo, pseudocódigo, diagrama de flujo, diseño descendente (top down), y

Elaboró: Dra. Margarita Ramírez Ramírez 23


Lógica de Programación

diseñarlo en base al resultado del análisis, realizar la codificación en el lenguaje


de programación elegido y transcribir el programa a la computadora.
Para realizar el diseño de la solución del problema, es necesario conocer
cada una de las herramientas o métodos. A continuación estudiaremos las
características básicas de cada uno de ellos.

Técnicas para la solución de un problema


Entre otras opciones para solucionar un problema es posible utilizar las
siguientes técnicas.

Diseño del algoritmo.


Anteriormente se comentó que para que una computadora fuera capaz de
solucionar un problema, es necesario que se le determinen los pasos
necesarios.
El paso inicial recomendable para solucionar un problema una vez
analizado éste, es el diseño de un algoritmo.

1.8. Representación gráfica del algoritmo.


Para representar un algoritmo se debe utilizar algún método que
independice el algoritmo del lenguaje de programación. Para está representación
se pueden utilizar entre otros los siguientes métodos:

Diagramas de flujo.
Diagrama N-S (Nassi-Schneiderman)
Lenguaje de especificación de algoritmos (pseudocódigo)
Diseño descendente (Top down)

Los cuales se describen a continuación.

Elaboró: Dra. Margarita Ramírez Ramírez 24


Lógica de Programación

1.8.1. Diagramas de flujo.


Un diagrama de flujo representa la esquematización gráfica de un
algoritmo. Esto es, muestra gráficamente los pasos o procesos a seguir para
alcanzar la solución de un problema.4

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

una operación específica.

1.8.2 Símbolos utilizados en los Diagramas de flujo.

Elaboró: Dra. Margarita Ramírez Ramírez 25


Lógica de Programación

Flujo de procesos

Conector dentro de la misma página

Decisión

Tipos de símbolos utilizados en un Diagrama de flujo.


Símbolos de operación: Son aquellos que permiten la graficación de
procesos, ya sean de asignación, operaciones aritméticas, etc.
Símbolos de decisión. Son los símbolos que representan una condición
para poder determinar la acción a seguir.
Líneas de flujo. Muestran el flujo de la información en el diagrama.
Símbolos de conexión. Permiten realizar conexiones de símbolos
cuándo no se puede contínuar con el flujo del diagrama en la ubicación de
la hoja o incluso en la hoja y es necesario pasar a otro punto y continuar
con el diagrama.
Símbolo de comentario. Símbolos utilizados para realizar algún
comentario en algún proceso o en el diagrama en general.
Símbolo de Inicio/ Fin. Este símbolo permite definir el inicio y fin de un
diagrama.
Símbolo de Entrada/Salida. Estos símbolos se utilizan para representar
gráficamente la entrada o salida de datos.
Símbolo de bifurcación. Estos símbolos muestran gráficamente un ciclo.

1.8.3. Reglas para la Construcción de un Diagrama de flujo.


Elaboró: Dra. Margarita Ramírez Ramírez 26
Lógica de Programación

1. Todo diagrama de flujo debe tener un inicio y un fin.2


2. Debe escribirse brevemente dentro de cada uno de los símbolos, el
texto que indica la operación a realizar.
3. Las líneas deben indicar la dirección del flujo de los datos.
4. Las líneas deben ser rectas horizontales y verticales.
5. Todas las líneas deben estar conectadas, ya sea por un símbolo
conector o por un símbolo que represente cualquier operación.
6. El diagrama de flujo debe ser construído de arriba hacia abajo y de
izquierda a derecha.
7. No es posible que a un símbolo llegue más de una línea de flujo de
procesos.
8. Si el diagrama de flujo requiere más de una hoja para su
representación es necesario colocar un conector, en el que se anota el
número de página en el que el diagrama contínua.

1.9. Diseño descendente (Top Down).


Este diseño consiste en una serie de descomposiciones sucesivas del
problema inicial, en subproblemas, cada uno de ellos con procesos específicos.
Se establece una serie de níveles de menor a mayor complejidad (arriba-
abajo) que den solución al problema.
Los problemas complejos se pueden resolver más eficazmente con la
computadora cuando se descomponen en subproblemas que sean más fáciles
de solucionar que el original. Este método suele denominarse divide y vencerás
(divide and conquer) porque divide un problema complejo en otros más simples.
La descomposición del problema original en subproblemas más simples y
a continuación dividir estos problemas en otros más simples para su solución en
la computadora se denomina diseño descendente (top-down design).

Ejemplo:

Elaboró: Dra. Margarita Ramírez Ramírez 27


Lógica de Programación

El problema de cálculo de la longitud y superfície de un círculo se puede


descomponer en subproblemas más simples:
1) Leer datos de entrada.
2) Calcular superfície y longitud.
3) Escribir resultados (datos de salida).

Las ventajas más importantes del diseño descendente son:


El problema se comprende más fácilmente al dividirse en partes más
simples denominadas módulos.
Las modificaciones en los módulos son más fáciles, puesto que se
realiza el cambio en la parte que sea necesario.
La comprobación del problema se verifica fácilmente y si existiésen
errores se detectan en el área en el que se encuentran.

Después de realizar el algoritmo o diseño descendente, es necesario


representar el algoritmo mediante una determinada herramienta de
programación: diagrama de flujo, pseudocódigo o diagrama N-S, de tal manera
que sea más fácil transcribir la solución de un problema a un lenguaje de
Programación.

1.10. Diagrama N-S (Nassi-Schneiderman).


Es un método de representación de programas en forma de bloque
compacto, es semejante a un diagrama de flujo en el que se omiten las flechas
de unión y las cajas son contiguas. Las acciones sucesivas se escriben en cajas
sucesivas.

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

Elaboró: Dra. Margarita Ramírez Ramírez 28


Lógica de Programación

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.

El diagrama se lee de arriba-abajo. Cada bloque ejecuta una operación


específica que se puede documentar o describir con la precisión que se desee.

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

Deben ayudar al comportamiento del sistema.


Deben ser transparentes para el lector.

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

Fig. 2 Diagrama N-S Secuencial.

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.

Elaboró: Dra. Margarita Ramírez Ramírez 30


Lógica de Programación

Selección simple

Condición
If
SI NO
.
.
.

Acción Then

Fig. 3 Diagrama N-S Selección Simple

Selección Doble.

Condición

SI NO If
Then
Else

Acción 1 Acción 2

Fig. 4 Diagrama N-S Selección Doble

Si la condición es verdadera se ejecuta la acción 1 y si es falsa la acción 2

Elaboró: Dra. Margarita Ramírez Ramírez 31


Lógica de Programación

Selección Múltiple.

Variable

1 2 3 ... n otro

Case

A B C X Z

Fig. 5 Diagrama N-S Selección Múltiple.

Dependiendo del valor de la variable se ejecutará el proceso y en caso de


que la variable no este en el rango 1 a N se efectuará el bucle Z.

Ejemplo.
End-case

Condición
Si No

Condición
Si No

Acción
Acción Acción
A C
B

Fig. 6 Ejemplo Diagrama N-S Selección Múltiple.

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

MAYOR MAYOR MAYOR MAYOR


= = = =
N1 N3 N2 N3

FIN

Fig. 7 Ejemplo Diagrama N-S Selección Múltiple.

Elaboró: Dra. Margarita Ramírez Ramírez 33


Lógica de Programación

Estructura Repetitivas en N-S

While <expresión lógica>


While
.

Acción
End-While

End While

Fig.8 Diagrama N-S Estructura Repetitiva While.

While <expresión lógica> Repeat


.
.
Acción .
Until
Until <condición>

Fig.9 Diagrama N-S Estructura Repetitiva Repeat.

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.

Elaboró: Dra. Margarita Ramírez Ramírez 34


Lógica de Programación

La técnica de Pseudocódigo es una herramienta para diseño de


programas. Es flexible por lo que nos permite obtener la solución de problemas
mediante diversas maneras.
En el método pseudocódigo, es posible realizar operaciones de
entrada/salida, proceso, operaciones repetitivas, sentencias de control,
alternativas, etc.
El pseudocódigo utiliza palabras en inglés, para representar cada una de
las acciones que se desean realizar, normalmente estas palabras son
semejantes a las utilizadas en los lenguajes de programación.
En el método pseudocódigo existen diferentes palabras reservadas como
(mientras, sino, etc.). Estas palabras describen las estructuras de control
fundamentales y procesos de toma de decisión e incluyen los conceptos
importantes de selección (expresadas con mientras-hacer o a veces repetir-
hasta e iterar-fin iterar, en inglés (while-do y repeat-until) que se encuentran
en casi todos los algoritmos, especialmente los de proceso de datos. La
capacidad de decisión permite seleccionar alternativas de acciones a seguir o
bien la repetición una y otra vez de operaciones básicas.

Representación de las operaciones en pseudocódigo


Asignación variable <--- expresión

Entrada Leer variable

Salida Escribir variable, expresión

Secuencia I1,I2,I3; In

Condiciones

Alternativa simple Si condición


entonces operación
Fin si

Alternativa doble Si condición


entonces operación
si no operación 2
Fin si

Elaboró: Dra. Margarita Ramírez Ramírez 35


Lógica de Programación

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.

Ciclo Para (For)


Para I de 1 a 10 con incremento 1
hacer
operación (es)
Fin para

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 nombre, calif

prom suma / cont

escribir prom
Fin programa

Este ejemplo nos muestra, la manera de solucionar un problema


utilizando la técnica de pseudocódigo.

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

Encontrar el asiento correspondiente


Si los números de los asientos están impresos en el boleto, esta acción
compuesta se resuelve con el siguiente algoritmo o pseudocódigo:

1. Inicio {algoritmo para encontrar el asiento del espectador}


2. Caminar hasta llegar a la primera fila de asientos.
3. Repetir
Comparar número de fila con número impreso en boleto
si no son iguales, entonces pasar a la siguiente fila
hasta_que se localice la fila correcta.
4. Mientras número de asiento no coincida con número de boleto
hacer avanzar através de la fila al siguiente asiento.
5. Sentarse en el asiento.
6. Fin
En este algoritmo la repetición se ha mostrado de dos modos, utilizando
ambas notaciones repetir... hasta_que y mientras... fin_mientras.

Elaboró: Dra. Margarita Ramírez Ramírez 38


Lógica de Programación

1.12. Resolución de un problema mediante las diversas técnicas de diseño.


Utilizando las diferentes técnicas de diseño, calcula la edad de una
persona teniendo como base únicamente el año de nacimiento y el año actual.

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

Elaboró: Dra. Margarita Ramírez Ramírez 39


Lógica de Programación

DIAGRAMA DE FLUJO

INICIO

AA, AN, E = 0

AA

AN

E = AA - AN

FIN

Elaboró: Dra. Margarita Ramírez Ramírez 40


Lógica de Programación

PSEUDOCÓDIGO

PROGRAMA: CONOCER _ EDAD;


VARIABLES:
AÑO_ A: NÚMERICO
AÑO_ N: NÚMERICO
EDAD: NÚMERICO
INICIO
LEER AÑO A
LEER AÑO
EDAD:= AÑO_A - AÑO_N
ESCRIBIR
FIN

DIAGRAMA N-S (Nassi Schneiderman)

INICIO

AÑO_A, AÑO_N, EDAD=0

Leer AÑO_A, AÑO_N

EDAD = AÑO_A AÑO_N

FIN

Elaboró: Dra. Margarita Ramírez Ramírez 41


Lógica de Programación

DIAGRAMA TOP DOWN

Edad

Leer
AÑO_A, EDAD= AÑO_A AÑO_N La
AÑO_N

Elaboró: Dra. Margarita Ramírez Ramírez 42

También podría gustarte