29 de julio de 2012
Pensamiento Algorı́tmico
Pontificia Universidad Javeriana
Outline Algoritmos Datos Constantes y variables Expresiones y operadores Representación de algoritmos
Índice
1 Algoritmos
Índice
1 Algoritmos
2 Datos
Índice
1 Algoritmos
2 Datos
3 Constantes y variables
Índice
1 Algoritmos
2 Datos
3 Constantes y variables
4 Expresiones y operadores
Índice
1 Algoritmos
2 Datos
3 Constantes y variables
4 Expresiones y operadores
5 Representación de algoritmos
Pseudocódigo
Diagramas de flujo
Introducción
Definition
Un ALGORITMO es una secuencia finita ’bien definida’ de tareas
’bien definidas’, cada una de las cuales se puede realizar con una
cantidad finita de recursos.
Caracterı́sticas de un algoritmo
Example
Algoritmo para saber si un número es primo o no:
1 Inicio
2 Poner X igual a 2
3 Dividir N por X
4 Si el resultado de N/X es entero, entonces N no es un número
primo y bifurcar al punto 7; en caso contrario, continuar el
proceso
5 Suma 1 a X
6 Si X es igual a N, entonces N es un número primo; en caso
contrario, bifurcar al punto 3
7 Fin
Definition
De manera informal, un dato es una pieza de información
simple como un número, un código, un hecho o una edad.
De manera formal, un dato es un elemento concreto de algún
conjunto.
Datos numéricos
Definition
Real: El tipo de dato real consiste en un subconjunto de los
números reales. Los números reales siempre tienen un punto
decimal y pueden ser positivos o negativos.
Datos lógicos
Definition
El tipo lógico – también denominado como booleano – es aquel
dato que sólo puede tomar uno de dos valores: verdadero (true) o
falso (false).
Datos Carácter
Definition
El tipo carácter es el conjunto finito y ordenado de caracteres que
la computadora reconoce. Un dato de tipo carácter contiene un
solo carácter.
Definition
Una cadena (string ) de caracteres es una sucesión de caracteres
que se encuentran delimitados por comillas dobles. La longitud de
una cadena es el número de caracteres comprendidos entre los
limitadores.
Constantes
Definition
Una constante es una partida de datos que permanecen sin
cambios durante todo el desarrollo del algoritmo.
Example
PI = 3,1415926
SALUDO BASICO = ”Hola, Buenos dı́as”
TAMANO MAXIMO = 1000
ESPACIO = ’ ’
Variables
Definition
Una variable es un objeto o partida de datos cuyo valor puede
cambiar durante el desarrollo del algoritmo.
Expresiones y operadores
Definition
Las expresiones son combinaciones de constantes, variables,
sı́mbolos de operación, paréntesis y nombres de funciones
especiales.
Expresiones aritméticas
Definition
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.
Sı́mbolo Operador
+ Suma
- Resta
* Multiplicación
/ División
% Módulo
Cuadro: Operadores aritméticos
Expresiones lógicas
Definition
Una expresión lógica es aquella en la cual el resultado se da en
términos de verdadero o falso.
Las expresiones lógicas se forman combinando constantes lógicas,
variables lógicas y otras expresiones lógicas, utilizando los
operadores lógicos y los operadores relacionales.
Sı́mbolo Operador
&& AND
k OR
! NOT
Cuadro: Operadores lógicos
Sı́mbolo Operador
< Menor que
> Mayor que
== Igual que
<= Menor o igual que
>= Mayor o igual que
!= Diferente de
Cuadro: Operadores Relacionales
Tablas de verdad
p !p
V F
F V
Cuadro: Negación
p q pkq p&&q
V V V V
V F V F
F V V F
F F F F
Cuadro: Conjunción lógica y disyunción lógica
Precedencia de operadores
Definition
La precedencia de operadores es un orden de evaluación estándar,
que se le ha asignado a los operadores para evitar excesivo uso de
paréntesis.
Evitan las posibles ambigüedades en el proceso de evaluación, es
decir, evitan que una expresión pueda tomar más de un valor.
Example
3+4∗5
Precedencia de operadores
Definition
La precedencia de operadores es un orden de evaluación estándar,
que se le ha asignado a los operadores para evitar excesivo uso de
paréntesis.
Evitan las posibles ambigüedades en el proceso de evaluación, es
decir, evitan que una expresión pueda tomar más de un valor.
Example
3+4∗5
=
23 ó 35
Precedencia Operadores
8 () Paréntesis
7 − (Signo menos)
6 ∗, /, %
5 +, −(sustracción)
4 >, <, ==, ≥, ≤, ! =
3 !
2 &&
1 k
Cuadro: Precedencia de operadores
Evaluación de expresiones
Una expresión se evalúa mediante el siguiente algoritmo:
Inicio
PASO 1. Reemplazar todas las variables de la expresión por su valor.
PASO 2. Desde los paréntesis más internos hacia los más externos mientras
existan paréntesis y/o operadores hacer:
2.1. Si una función no tiene todos sus argumentos evaluados,
evaluar cada uno de los mismos.
2.2. Evaluar toda función que tenga sus argumentos evaluados
y reemplazarla por su valor resultado.
2.3. Realizar las operaciones indicadas según la precedencia de
los operadores que actúan sobre números y/o valores de
verdad, es decir, términos ya evaluados.
2.4. Si sólo un número y/o valor de verdad se encuentra entre
paréntesis eliminar los paréntesis.
PASO 3. El número o valor de verdad que resulta es el valor de la expresión.
Fin
Example
Si los valores de las variables enteras A, B y C son 5, 3 y 9
respectivamente, la siguiente expresión
−(3 + 4) ∗ A/B ∗ C + B ∗ C
−(3 + 4) ∗ 5/3 ∗ 9 + 3 ∗ 9
−(7) ∗ 5/3 ∗ 9 + 3 ∗ 9
−7 ∗ 5/3 ∗ 9 + 3 ∗ 9
−35/3 ∗ 9 + 27
−11 ∗ 9 + 27
−99 + 27
−72
Example
Sean A y B variables de tipo entero con valores 6 y 8 respectivamente, la
expresión siguiente
Asignación
Definition
La operación de asignación es el modo de darle valores a una
variable. Se conoce como instrucción o sentencia de asignación
cuando se refiere a un lenguaje de programación.
Example
A = 25
X =Y +2
Pseudocódigo
Pseudocódigo
Pseudocódigo
Pseudocódigo
inicio
/*bloque de instrucciones*/
fin
Pseudocódigo
Example
funcion_principal
entero n;
entero suma;
entero dato;
entero i;
imprimir( "Número de enteros a considerar:");
leer(n);
suma = 0;
para(i=1;i<n;1) hacer
imprimir("ingrese un número entero:" );
leer(dato);
suma = suma + dato;
fin_para
imprimir("La suma de los números es:");
imprimir(suma);
fin_principal
Diagramas de flujo
Diagramas de flujo
Diagramas de flujo
Entrada/Salida
Diagramas de flujo
Example
Diagramas de flujo
Referencias