Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROGRAMACION
CAPITULO II
DISEO DE ALGORITMOS ESTRUCTURAS SECUENCIALES SENTENCIAS SELECTIVAS
DISEO DE ALGORITMOS
OBJETIVO
El objetivo principal de este Captulo es capacitar al estudiante en los conceptos bsicos de algoritmos, que le permitan obtener la destreza necesaria para disear sus propios algoritmos.
DISEO DE AGORITMOS
CONCEPTOS BASICOS
DESCRIPCION DE ALGORITMOS CONSTRUCCION DE ALGORITMOS
Un algoritmo es todo proceso, rutina mtodo para resolver un problema; mediante una secuencia finita de acciones , cada cual con un significado concreto y cuya ejecucin genera un tiempo finito. La ventaja del algoritmo es que el programador se puede concentrar en la lgica del problema y en las estructuras de control del mismo. Dejando de lado las reglas de sintaxis del lenguaje de programacin. Algoritmo, es sinnimo de procedimiento computacional y es fundamental para la ciencia de la computacin.
Finito
La ejecucin de un algoritmo acaba en un tiempo finito; un procedimiento que falla en la propiedad de la finitud es simplemente un procedimiento de clculo.
Preciso
Cada instruccin de un algoritmo debe ser precisa; debe tener en cuenta un rigor y no la ambigedad. Cada frase tiene un significado concreto.
Posee entradas
La entrada se toma como un conjunto especifico de valores que inicializan el algoritmo.
Posee salidas
Todo algoritmo posee una transformacin de la entrada. ms salidas; la salida es la
Efectivo
Un algoritmo es efectivo cuando las operaciones se efectan de un modo exacto y en un tiempo finito aun usando mtodos manuales.
PROBLEMA
SOLUCION DE UN PROBLEMA
DESCRIPCIN DE ALGORITMOS
Para describir un algoritmo se debe utilizar algn mtodo que permita independizar dicho algoritmo del lenguaje de programacin.
Diagramas de flujo
PseudoCdico
DIAGRAMAS DE FLUJO
Es una representacin detallada en forma grfica (mediante smbolos) de los pasos que se realizan para la solucin de un problema unidos por flechas, denominadas lneas de flujo, que indican la secuencia de ejecucin.
INICIO - FIN Este smbolo indica el comienzo y el final de un ALGORITMO ENTRADA-SALIDA Este smbolo indica operaciones que tienen relacin con los dispositivos de entrada/salida. PROCESO Este smbolo se utiliza para indicar operaciones aritmticas. DECISION Este smbolo se utiliza para indicar en su interior comparaciones de valores tales como: a=b j<i Estas comparaciones admiten dos salidas: verdad falso
Lneas de flujo
Este smbolo indica la direccin del flujo que el programa debe seguir. La secuencia normal de lectura de un diagrama de flujo es de arriba hacia abajo y de izquierda a derecha.
Ciclo repetitivo
Este smbolo se utiliza para indicar procesos repetitivos
PSEUDOCDIGO
Es la descripcin de un algoritmo mediante una secuencia lgica de acciones, que en su conjunto forman la solucin del problema, utilizando generalmente palabras reservadas para representar las acciones.
PSEUDOCDIGO
PseInt,
que es un
lenguaje de programacin imperativa simple y escrito en castellano. Es decir, PseInt es un editor e intrprete de programas escritos en PseudoCdigo. Su interfaz grfica permite crear, almacenar, ejecutar y corregir fcilmente los programas en PseudoCdigo.
PSEUDOCDIGO La sencillez del lenguaje PseudoCdigo lo hacen ideal para la enseanza de la programacin. Permitiendo el uso de valores numricos, nmeros decimales, lgicos, caracteres y arreglos. Provee tambin funciones de entrada/salida y Funciones matemticas.
PSEUDOCDIGO
Estructura de un Algoritmo
Proceso <nombre>
<secuencia de instrucciones>
FinProceso
Cada instruccin termina en punto y coma. <instruccin>; <instruccin>; ... <instruccin>;
PSEUDOCDIGO
Las palabras y smbolos que pertenecen al pseudocdigo se escriben tal como deben ir, por ejemplo: Proceso; a diferencia de los nombres de variables y otros smbolos y expresiones que pueden variar.
PSEUDOCDIGO
Se pueden introducir comentarios luego de una instruccin, o en lneas separadas, mediante el uso de la doble barra ( // ).
Todo lo que precede a //, hasta el fin de la lnea, no ser tomado en cuenta al interpretar el algoritmo.
PSEUDOCDIGO
Identificadores
Los Identificadores son palabras definidas por el programador para identificar variables.
Identificador, o nombre de variable, debe constar slo de letras y nmeros, comenzando siempre por una letra.
PSEUDOCDIGO
Tipo de Datos
a) Tipos Simples: Numrica, nmeros enteros y decimales, se usa el punto para separar los decimales. Carcter caracteres o cadena de caracteres se escribe entre comillas ( ) ( ) Lgicas toma dos valores: Verdadero Falso b) Estructura de Datos: Arreglos
PSEUDOCDIGO
Palabras Reservadas
Las palabras reservadas no llevan acento.
PSEUDOCDIGO
Estructuras Secuenciales
Las estructuras secuenciales estn formadas por las siguientes instrucciones:
Leer Entrada de datos Escribir Salida de Resultados Asignacin Almacena un valor en una variable
PSEUDOCDIGO
Entrada de Datos
Definida por la Instruccin Leer que permite el ingreso de datos al algoritmo desde el teclado.
Leer
<variable1>,<variable2>,., <variableN>;
PSEUDOCDIGO
Salida de Resultados
Definida por la Instruccin resultados en la pantalla.
Escribir
y permite mostrar
PSEUDOCDIGO
Sentencia de Asignacin
La Instruccin de Asignacin permite almacenar un valor en una variable.
<variable> <expresin> ;
PSEUDOCDIGO
Expresiones
Las expresiones son combinaciones (asociaciones) de datos con operadores.
a 3 b 5
a+b7
PSEUDOCDIGO
Expresiones
De acuerdo a los tipos de datos que se manipulan en las expresiones pueden ser:
Expresiones aritmticas (devuelve un nmero) Expresiones lgicas (devuelve un valor lgico) Expresiones de carcter (devuelve un carcter)
.
PSEUDOCDIGO Para ejecutarse la asignacin, primero se evala la expresin de la derecha y luego se asigna el resultado a la variable de la izquierda. El tipo de la variable y el de la expresin deben coincidir.
n 1;
suma suma + 1;
PSEUDOCDIGO
Sentencia de Asignacin
Ejemplo de sentencia de asignacin:
a 5
suma ( 2 + 3 ) * X + T + Z
La jerarqua de los operadores matemticos es igual a la del algebra, aunque puede alterarse con el uso de parntesis.
PSEUDOCDIGO
Sentencia de Asignacin
Como ejemplos de sentencias de asignacin podemos mencionar: Velocidad (distancia/(minuto*60+segundo+c/100)) Numero u + 100 + d+10 + c AT (s+(s-1) + (s-2) + (s-3))^2
PSEUDOCDIGO
Tipos de Operadores
Un operador indica el tipo de operacin a realizar sobre los datos. Los operadores se clasifican en:
PSEUDOCDIGO
Expresiones Aritmticas
En las expresiones aritmticas siguientes operadores aritmticos:
Operador Accin Ejemplo
se
utilizan
los
Resultado
Resta Suma
Multiplicacin Divisin Potencia
52 2+3
4* 5 9 / 3 5^ 2
3 5
20 3 25
*
/ ^
PSEUDOCDIGO
Expresiones Aritmticas
Los operadores aritmticos nos permiten, bsicamente, hacer cualquier operacin aritmtica (suma, resta, multiplicacin y divisin)
-6 -9
PSEUDOCDIGO
Expresiones Lgicas
Las expresiones lgicas son asociaciones de datos con operadores relacionales y de su evaluacin siempre se obtiene un valor de tipo lgico (verdadero o falso).
Operador Relacional Accin Ejemplo
Mayor que Mayor o igual que Menor que Menor o igual que Igual que Distinto que
PSEUDOCDIGO
Expresiones Lgicas
El operador conjuncin (y) y el operador disyuncin (o) siempre actan sobre dos operandos, mientras que, el operador negacin (no) slo acta sobre un operando.
Operadores Lgicos & | NO Accin Conjuncin ( y ) Disyuncin ( 0 ) Negacin (no) Ejemplo (5>3) & (5=1) // falso (7=7) | (4>9) // verdadero. NO (4=4) // falso
PSEUDOCDIGO
Expresiones Lgicas
Los operadores lgicos producen un resultado booleano, y sus operandos son tambin valores lgicos.
Operadores Lgicos
Y O
Accin
Conjuncin Disyuncin
Ejemplo
(5>2) Y (4>1) (2=2) O (a=b)
NO
Negacin
No (9>3)
PSEUDOCDIGO
Expresiones Lgicas
Tabla de verdad del operador Y:
PSEUDOCDIGO
Expresiones Lgicas
Tabla de verdad del operador O:
PSEUDOCDIGO
Expresiones Lgicas
Tabla de verdad del operador negacin (no):
PSEUDOCDIGO
( )
.
Parntesis Potencia Multiplicacin, divisin y negacin Signo ms, signo menos y conjuncin
^ * , / , NO
.
+,-,Y
>, <, >=, <=, <>, = , O Mayor que, menor que, mayor igual que, menor igual que, igual que, distinto que y disyuncin
Funciones Matemticas
FUNCIN
RC(X)
ABS(X) LN(X) EXP(X) SEN(X) COS(X) ATAN(X) TRUNC(X) REDON(X)
SIGNIFICADO
Raz Cuadrada de X
Valor Absoluto de X Logaritmo Natural de X Funcin Exponencial de X Seno de X Coseno de X Arcotangente de X Parte entera de X Entero ms cercano a X
La funcin raz cuadrada no debe recibir un argumento negativo. La funcin exponencial no debe recibir un argumento menor o igual a cero.
CONSTRUCCION DE ALGORITMOS
PROBLEMA N 1 Imprimir la suma, la resta y el producto de dos nmeros. Proceso Problema1 Leer a , b; Escribir "a = ", a; Escribir "b = ", b; suma <- a + b; resta <- a -b; multiplica <- a*b; dividir <- a/b; Escribir "suma = " , suma; Escribir "resta = " , resta; Escribir "multiplica = ", multiplica; Escribir "dividir = ", dividir; FinProceso
CONSTRUCCION DE ALGORITMOS
PROBLEMA N 2 Leer el radio de un circulo y calcular e imprimir su superficie y la longitud de la circunferencia.
Proceso Problema2 pi<-3.1416; Leer radio; Superficie <- pi * radio^2 ; Circunferencia <- 2 * pi * radio; Escribir "Radio", radio; Escribir "Superficie", superficie; Escribir "Circunferencia", circunferencia; FinProceso
PSEUDOCDIGO
Proceso problema3 Escribir "introdusca las variables a, b y c"; Leer a, b, c; x1<-(-b+RC((b^2)-(4*a*c))/(2*a)); x2<-(-b-RC((b^2)-(4*a*c))/(2*a)); Escribir "las raices son: ", x1, x2; FinProceso
PSEUDOCDIGO
Estructuras no Secuenciales
SENTENCIAS SELECTIVAS:
PSEUDOCDIGO
Sentencias de Seleccin
Se utiliza cuando en el desarrollo de la solucin de un problema debemos tomar una decisin, para seleccionar una alternativo a seguir.
La toma de decisin se basa en la evaluacin de una o ms condiciones que nos permitan seleccionar una alternativa de solucin al problema planteado.
PSEUDOCDIGO
a) SELECCION SIMPLE :
Si-Entonces
Consiste en evaluar una condicin; si el resultado de dicha evaluacin es Verdad, se ejecuta la sentencia por verdad y termina la estructura.
Si <condicin> Entonces
Sentencia ejecutada si la condicin es verdad finSi Si ( nota > = 10 ) Entonces Escribir ( ingreso) fin Si
PSEUDOCDIGO
V INICIO
Condicin
FIN
CONSTRUCCION DE ALGORITMOS
PROBLEMA N 4
Escribir un algoritmo que lea los datos: a , b y calcule e imprimir la suma, la resta, la multiplicacin y la divisin de ellos.
CONSTRUCCION DE ALGORITMOS
Proceso Problema4 Leer a, b; suma<- a+b; resta<- a-b; multiplica <- a*b; Si b>0 Entonces division <- a/b; FinSi Escribir "suma = ", suma; Escribir "resta = ", resta; Escribir "multiplica = ", multiplica; Escribir "division = ", division; FinProceso
PSEUDOCDIGO
b) SELECCION DOBLE :
Si-Entonces-Sino
La sentencia de seleccin doble nos permite tomar decisiones entre dos alternativas luego de evaluar una condicin (expresin lgica).
PSEUDOCDIGO
Si - Entonces - Sino
V INICIO
Condicin
F Sentencia por Falso
FIN
Si
Finsi
PSEUDOCDIGO
PROBLEMA N 5 Escribir un algoritmo que lea tres nmeros enteros positivos a, b y c e imprima el mayor de ellos.
INICIO a, b ,c NO Mayor b a>b SI
Mayor
c > Mayor
si
CONSTRUCCION DE ALGORITMOS
Proceso Problema5 Leer a, b, c; Si a > b Entonces mayor <- a; Sino mayor <- b; FinSi
Si c > mayor Entonces mayor <- c; Finsi Escribir "a = ", a; Escribir "b = ", b; Escribir "c = ", c; Escribir "mayor = ", mayor; FinProceso
PSEUDOCDIGO
Es posible utilizar la sentencia Si para disear estructuras de seleccin con ms de dos alternativas.
Una estructura de seleccin de n alternativas puede ser construida utilizando una estructura Si .
Las estructuras Si interiores a otras estructuras Si se denominan anidadas o encajadas. Debe existir una correspondencia entre las palabras reservadas Si y Finsi.
PSEUDOCDIGO
PSEUDOCDIGO
c) SENTENCIA DE SELECCIN MULTIPLE La sentencia de seleccin mltiple, se usa para seleccionar una de varias alternativas.
Sentencia 1 Sentencia 2 Sentencia 3 VALOR DE VARIABLE
Segn sea
Sentencia 4
Sentencia 5
PSEUDOCDIGO
C) SELECCION MULTIPLE
SENTENCIA Segun
INICIO 1
SELECTOR
sentencia 1 2 sentencia 2
La seleccin Mltiple se utiliza cuando existen ms de dos alternativas para la seleccin de una alternativa. El selector puede ser una variable simple o una expresin simple denominada expresin de control.
sentencia N
ACCION Z
FIN
PSEUDOCDIGO
C) SELECCION MULTIPLE : SENTENCIA Segun
Segun variable_numerica Hacer opcion_1: secuencia_de_acciones_1 opcion_2: secuencia_de_acciones_2 opcion_3: secuencia_de_acciones_3 De Otro Modo: secuencia_de_acciones_dom FinSegun
CONSTRUCCION DE ALGORITMOS
Proceso Problema6 leer n1, n2; leer opcion; segun opcion Hacer 1: suma <- n1 + n2; Escribir "suma = ", suma; 2: resta <- n1 - n2; Escribir "resta = ", resta; 3: multiplica <- n1*n2; Escribir "multiplica = ", multiplica; 4: divide <- n1/n2; Escribir "divide = ", divide; 5: potencia <- n1^n2; Escribir "potencia = ", potencia; De Otro Modo: Escribir "Numero no Definido" ; FinSegun FinProceso
CONSTRUCCION DE ALGORITMOS
PROBLEMA N 7 Disear un algoritmo que lea un entero positivo n y realice las siguientes clculos: Si N termina en 0 se cambia por el doble Si N termina en 3 se cambia por la dcima parte De otro modo matiene su valor inicial
CONSTRUCCION DE ALGORITMOS
Proceso Problema7 Leer n; Segun n mod 10 Hacer 0: n <- n*2; Escribir "Doble de N = ", n; 3: n <- n/10; Escribir "Decima parte de N = ", n; De Otro Modo: n <- n; Escribir "Numero N = ", n ; FinSegun FinProceso