Download archivo adjunto

Document related concepts

Algoritmo wikipedia , lookup

Inferencia de tipos wikipedia , lookup

Hoja de cálculo wikipedia , lookup

Cálculo simbólico wikipedia , lookup

Algoritmo de eliminación de variables wikipedia , lookup

Transcript
RECORDAR TIPOS DE DATOS
VARIABLES: OBJETO CUYO valor cambia:
Int A=0;
float B=1;
A510
nombres
CONSTANTES: OBJETO cuyo valor no cambia
Int PI=3.1415
PI= 3.14159
NOTAS
LAS COMAS NO SE PERMITEN
EXPRESIONES: COBINACION DE LAS DOS ANTERIORES, (), SIMBOLOS DE OPERACIÓN
a + (b + 3) / c
OPERADORES: +- * /, DIV Y MOD. DIV y MOD solo se usan con números enteros. A div B
15/6 …15 entre 6…. Mod = 3RESIDUO Div= 2COCIENTE osea 15 DIV 6= 2 Y 15 MOD 6=3………..19/3 DIV=6 MOD=1
Prioridad de operadores
Cuando se utilizan en alguna expresión más de un operador, éstos se evalúan conforme a una prioridad establecida. Es
necesario conocer el orden de evaluación para evitar errores en nuestros programas.
El orden en que se ejecutan las operaciones es el siguiente:
Exp ^,*, /, DIV, MOD Primeros en evaluarse, todos tienen igual prioridad.
+, -
Últimos en evaluarse, ambos tienen igual prioridad.
En caso de existir paréntesis en la expresión se evaluará primero el contenido de los paréntesis antes que otros
operadores. Si existen dos operadores de igual prioridad se evaluará de izquierda a derecha.
3 + 6 * 14=84+3=87
libro pag 20
Estructuras de control
Lineales
Entrada de datos
Salida de datos
Asignación
No Lineales
De selección o condicionales
Repetitivas
Para
Mientras que
Hacer
mientras
OPERACIONES DE ASIGNACIÓN
Este es el modo de darle valores a una variable. La operación de asignación se representa con el símbolo u operador
O = (IGUAL). La operación de asignación se conoce como instrucción o sentencia de asignación cuando se refiere a un
lenguaje de programación. El formato general de una operación de asignación sería:
Nombre de la variable expresión …..Numero 10 A 10… A 11….. A 5+6+1 = 12.. A ‘12 DE OC 42’
Conversión de tipo: En la asignación no se puede asignar valores a una variable de un tipo diferente del suyo. Se
presentará un error si se trata de signar valores de tipo carácter a una variable numérica o un valor numérico a una
variable carácter. O sea, A (es una variable entera, o sea, numérica) Y decimos que A “12 de octubre de 1942” (esto
dará error ya que A es una variable de tipo numérica y “12 de octubre de 1942” es de tipo carácter).
A 3…. B 4….. C A+2*B…C C+B… B C-A… A B*C…… A SERA 180 ……PAG 30
ALGORITMO
Es una notación gráfica para implementar algoritmos. Las características fundamentales • Un algoritmo debe ser
preciso e indicar el orden de realización de cada paso.
• Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
• Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento;
Ejemplo 1.1
Un cliente ejecuta un pedido a una fábrica. La fábrica examina en su banco de datos la ficha del cliente; si el
cliente es solvente entonces la empresa acepta el pedido; en caso contrario, rechazará el pedido.Redactar el
algoritmo correspondiente.(vida cotidiana)Los pasos del algoritmo son:
1. Inicio.
2. Leer el pedido.
3. Examinar la ficha del cliente.
4. Si el cliente es solvente, aceptar pedido; en caso contrario, rechazar
pedido.
5. Fin.
Ejemplo 1.2
Se desea diseñar un algoritmo para saber si un número es primo o no.(calculo especifico, resultado exacto)
Un número es primo si sólo puede dividirse por sí mismo y por la unidad (es decir, no tiene más divisores que él mismo
y la unidad). Por ejemplo, 9, 8, 6, 4, 12, 16, 20, etc., no son primos, ya que son divisibles por números distintos a ellos
mismos y a la unidad. Así, 9 es divisible por 3, 8 lo es por 2, etc. El algoritmo de resolución del problema pasa por
dividir sucesivamente el número por 2, 3, 4, etc.
1. Inicio.
2. Poner X igual a 2 (x = 2, x variable que representa a los divisores del
número que se busca N).
3. Dividir N por X (N/X).
4. Si el resultado de N/X es entero, entonces N es un número primo y bifurcar al
punto 7; en caso contrario, continuar el proceso.
5. Suma 1 a X (X X + 1).
6. Si X es igual a N, entonces N es un número primo; en caso contrario,bifurcar
al punto 3.
7. Fin.
Por ejemplo, si N es 131, los pasos anteriores serían:
1. Inicio.
2. X = 2.
3 y 4. 131/X. Como el resultado no es entero, se continúa el proceso.
5. X <-2 + 1, luego X = 3.
6. Como X no es 131, se bifurca al punto 3.
3 y 4. 131/X resultado no es entero.
5. X 3 + 1, X = 4.
6. Como X no es 131 bifurca al punto 3.
3 y 4.131/X..., etc.
7. Fin.
Ejemplo 1.3
Realizar la suma de todos los números pares entre 2 y 1.000.
El problema consiste en sumar 2 + 4 + 6 + 8 ... + 1.000. Utilizaremos las palabras SUMA y NUMERO
(variables, serán denominadas más tarde) para representar las sumas sucesivas (2+4), (2+4+6), (2+4+6+8),
etcétera. La solución se puede escribir con el siguiente algoritmo:
1. Inicio.
2. establecer SUMA a 0.
3. establecer NUMERO a 2.
4. Sumar NUMERO a SUMA. El resultado será el nuevo valor de la suma
(SUMA).
5. Incrementar NUMERO en 2 unidades.
6. Si NUMERO =< 1.000 bifurcar al paso 4;
7. en caso contrario, escribir el último valor de SUMA y terminar el proceso.
8. Fin.
UN ALGORITMO
• Se basa en la utilización de unos símbolos gráficos denominados bloques, en los que escribimos las acciones
que tiene que realizar el algoritmo.
• Estos bloques están conectados entre sí por líneas y eso nos indica el orden en el que tenemos que ejecutar
las acciones.
• En todo algoritmo siempre habrá un bloque de inicio y otro de fin, para el principio y final del algoritmo.
DIAGRAMAS DE FLUJO control NO LINEALES
EJERCICIOS
1. Hacer el diagrama de flujo para
sumar dos números leídos por
teclado y escribir el resultado.
2. Modificar el anterior pero para sumar 100 números leídos por teclado.
3. Modificar el anterior para que permita
sumar N números. El valor de N se debe
Leer previamente por teclado.
4. Hacer un diagrama de flujo
que permita
escribir los 100
primeros pares.
5. Hacer el diagrama de flujo para sumar los N primeros impares. Realizar después uno que haga lo mismo con
los pares y, otro, con los múltiplos de 3.
6. La sucesión de Fibonacci se define de la siguiente forma: a1=1, a2=1 y an=an-1+an-2 para n>2, es decir los dos
primeros son 1 y el resto cada uno es la suma de los dos anteriores,l os primeros son: 1, 1, 2, 3, 5, 8, 13, 21, ...
Hacer un diagrama de flujo para calcular el Nésimo término de la sucesión.
7. Hacer un diagrama de flujo que simule un reloj.
SPEUDOCÓDIGO
Es una manera de escribir algoritmos de forma poco estricta (con una sintaxis relajada) o estructuras de datos
poco detalladas, pero intentando acercar las ideas del algoritmos a estructuras y sintaxis parecidas a las de los
lenguajes de alto nivel en los que vamos a programar el algoritmo.
• Es un lenguaje de especificación de algoritmos, pero muy parecido a cualquier lenguaje de programación, por
lo que luego su traducción al lenguaje de programación es muy sencillo, pero con la ventaja de que no se rige
por las normas de un lenguaje en particular. Nos centramos más en la lógica del problema.
• El pseudocódigo también va a utilizar una serie de palabras claves o palabras especiales que va indicando lo
que significa el algoritmo. EJEMPLO de un algoritmo que calcule la media de tres números:
Leer (n1);
Leer (n2);
Leer (n3);
suma = n1 + n2 + n3;
media = suma / 3;
escribir (media); El orden en el que se realizan las operaciones es importante: no puede calcularse la media sin antes
haber leído los números.
Estructura secuencial
1. EJEMPLO El Seguro Social requiere clasificar a las personas que se jubilarán en el año de 2005. para este
programa el seguro social plantea las siguientes reglas:
Existen tres tipos de jubilaciones: por edad, por antigüedad joven y por antigüedad adulta. Las personas adscritas a
la jubilación por edad deben tener 60 años o más y una antigüedad en su empleo de menos de 25 años. Las personas
adscritas a la jubilación por antigüedad joven deben tener menos de 60 años y una antigüedad en su empleo de 25
años o más. Las personas adscritas a la jubilación por antigüedad adulta deben tener 60 año s o mas y una
antigüedad en su empleo de 25 años o mas. Determinar en que tipo de jubilación, quedara adscrita una persona
conociendo su edad y tiempo de trabajo.
Inicio
Sino
fin
imprimir “digite la edad del
imprimir “jubilación por edad”
empleado”
Finsi
leer e
Sino
imprimir “digite la antigüedad delsi a >= 25 entonces
empleado”
imprimir “jubilación por
leer a
antigüedad joven”
si e >= 60 entonces
Sino
si a >=25 entonces
imprimir “no tiene jubilación”
finsi
imprimir “jubilación por
fin si
antigüedad adulta”
1.
2.
3.
4.
5.
6.
EJERCICIOS
Capturar por teclado tres números cualquiera (A, B y C) que corresponden a las aristas de un triángulo; el
programa debe determinar que tipo de triangulo, teniendo en cuenta la siguiente clasificación:
Si los tres lados son iguales es equilátero Si solo dos lados son iguales isósceles Si todos son diferentes
escalenos
Capturar por teclado un número y escriba el valor absoluto del mismo, sin usar funciones predefinidas en el
lenguaje.
Dado un número X determinar si es par o impar.
Dados 3 números determinar el mayor (o el menor o el del medio en otros algoritmos).
Dados 3 números determinar cuantos números repetidos existen
Dado un número natural n de 3 cifras, no todas iguales, encuentre e imprima el número mayor y el menor que
se puede formar con las mismas cifras y los muestre en pantalla. Ej 174 Mayor 741 y el menor 147
EJEMPLO: Dado un número calcular e imprimir si es primo
Análisis
Entradas: n: un entero positivo del cual se desea saber si es o no primo
Salidas: Un mensaje que diga si el número dado es primo o no
Inicio
leer( n )
e=0
para i =1 hasta n hacer
si ( (n mod i ) == 0)
e = e+1
Finsi
Finpara
si (e <= 2) entonces
imprimir( “el número es primo”)
Sino
imprimir( “el número no es
primo”)
Finsi
Fin
EJERCICIO
1. Hacer un programa que imprima los n primeros números primos. (n dado por teclado)