Documente Academic
Documente Profesional
Documente Cultură
CAPITULO II
DISEO DE ALGORITMOS ESTRUCTURAS SECUENCIALES ESTRUCTURAS NO 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
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.
PROPIEDADES:
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.
PROPIEDADES:
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.
DESCRIPCIN DE ALGORITMOS
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 ENTRADAENTRADA-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
PseudoCdigos se utilizar
el Entorno de Desarrollo Integrado 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 Programa
Proceso <nombre> <secuencia de instrucciones> FinProceso
Donde una secuencia de instrucciones es una lista de una o ms instrucciones, cada una terminada 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.
Leer , Escribir , Dimension Si-Entonces-Sino, Segun Mientras Hacer, Repetir Hasta Que, Para
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
ESTRUCTURA SECUENCIAL
La entrada de datos
Definida por la Instruccin Leer que permite el ingreso de datos al algoritmo desde el teclado.
Leer
<variable1>,<variable2>, ., <variableN>;
PSEUDOCDIGO
ESTRUCTURAS SECUENCIALES
La salida de Resultados
Definida por la Instruccin resultados en la pantalla.
Escribir
y permite mostrar
Escribir
PSEUDOCDIGO
ESTRUCTURA SECUENCIAL
Asignacin
La Instruccin de Asignacin permite almacenar un valor en una variable.
<variable>
<expresin> ;
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.
1;
// asigna el nmero 1 a n
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 Numero AT (distancia/(minuto*60+segundo+c/100)) u + 100 + d+10 + c
PSEUDOCDIGO
Expresiones
Las expresiones son combinaciones (asociaciones) de datos con operadores.
a b 3 5
a+b7
Cada expresin toma un valor que se determina al evaluar la expresin, el valor puede ser de tipo: numrico, lgico y carcter.
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)
.
suma
a + b 3 (expresin aritmtica)
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
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 NO
Accin
Conjuncin Disyuncin Negacin
Ejemplo
(5>2) Y (4>1) (2=2) O (a=b) 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
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
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 SELECCION 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).
Si
Finsi
SI
COND C N I I E S VERDAD
S ino
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
SENTENCIA DE SELECCIN ANIDADAS
Si (condicin1) Entonces <instruccion1> Sino
Si (condicin2) Entonces <instruccin2> Sino Si (condicin3) Entonces <instruccion3> Finsi Finsi Finsi
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 Sentencia 4
Segn sea
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.
N 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
CAPITULO II
ESTRUCTURAS NO SECUENCIALES Sentencias Repetitivas
Muchos problemas requieren una capacidad de repeticin en la cual el mismo clculo o secuencia de sentencias se repita, una y otra vez, usando diferentes conjuntos de datos.
Los casos de repeticin incluyen la verificacin continua de las entradas de datos del usuario hasta que se ingrese, una contrasea vlida; contar y acumular totales; y la aceptacin constante de datos de entrada y el reclculo de valores de salida que slo se detiene al ingresar un valor centinela.
La secuencia de sentencias que se repiten en la solucin de un problema se conoce como ciclo, porque despus que se ejecuta la ltima sentencia del ciclo, se regresa, a la primera sentencia de la seccin y comienza otra repeticin a travs de la seccin repetitiva.
PSEUDOCDIGO Para las estructuras repetitivas se utilizan dos tipos especiales de variables:
Contadores:
Son variables que incrementan o disminuyen su valor en una cantidad constante, la misma que debe inicializarse en un valor constante.
contador contador
1; contador +1;
PSEUDOCDIGO
Acumuladores:
Son variables que se usan para incrementar o disminuyen su valor en una cantidad variable, deben ser inicializados su valor. suma suma 0; suma + n ;
En general, existen tres formas de representar las sentencias repetitivas: Mientras Hacer Repetir Hasta Que Para. Para.
PSEUDOCODIGO
a) SENTENCIA REPETIR : MIENTRAS HACER
( condicin ) C I C L O V PROCESO:
secuencia de sentencias
FIN
PSEUDOCODIGO
a) SENTENCIA REPETIR : MIENTRAS HACER
Una sentencia Mientras contiene una condicin que controla la ejecucin de un proceso formado por una o ms sentencias, dicho proceso se ejecutar
PSEUDOCODIGO
a) SENTENCIA REPETIR : MIENTRAS HACER
i). La repeticin condicional de cero ciclos Si la primera evaluacin de la condicin es falsa, entonces la repeticin nunca se ejecutar.
ii) Repeticin indefinida de la secuencia de sentencias. La repeticin indefinida que nunca se termina se denomina ciclo indefinido o sin fin,
para evitar dichos ciclos indefinidos se debe estipularse una SENTENCIA que permita alterar el valor de la expresin probada en la seccin repetitivo.
iii) Finalizacin de bucles con datos de entrada. El mtodo ms correcto para terminar un bucle que lee una lista de valores es un centinela. Un valor centinela es un valor especial usado para indicar el final de una lista de datos.
CONSTRUCCION DE ALGORITMOS
PROBLEMA N8
Escribir un algoritmo que lea un nmero enteros positivos n y luego imprima su factorial.
CONSTRUCCION DE ALGORITMOS Proceso Problema8 Leer n; minumero <- n; fact <- 1; n > 0 Hacer fact <- fact * n; n <- n - 1; FinMientras Escribir "El factorial de n es: " , fact; MIENTRAS FinProceso
PSEUDOCODIGO
b) SENTENCIA REPETIR : HASTA QUE
INICIO
PROCESO: secuencia de sentencias
C I C L O
Secuencia de sentencias
HASTAQUE (condicin) sea verdad
( condicin ) V FIN
La sentencia HASTA QUE Ejecuta una secuencia de instrucciones hasta que la condicin sea verdad.
PSEUDOCODIGO
b) SENTENCIA
REPETIR HASTA QUE
La condicin es una expresin, el valor que representa slo puede ser verdadero o falso. Se repite una secuencia de sentencias HASTA QUE la condicin tome un valor de verdad. El ciclo se ejecuta por lo menos una vez porque la condicin se evala despus de la ejecucin de cada iteracin.
CONSTRUCCION DE ALGORITMOS
PROBLEMA N9 Disear un algoritmo que permita calcular la suma acumulada de la serie : 1+2+3+4+.+n El usuario ingresa el numero de trminos a sumar.
CONSTRUCCION DE ALGORITMOS Proceso Problema9 Leer n; cont <- 1; suma <- 0; Repetir suma <- suma + cont; cont <- cont + 1; Hasta Que ( n < cont ) Escribir " La suma es:" , suma ; FinProceso
PSEUDOCODIGO
c) SENTENCIA REPETITIVA: PARA
La sentencia PARA se utiliza para implementar un ciclo que se repite un nmero definido de veces. Donde:
INICIO
c i c l o
Vc: variable de control Vi: valor inicial Vf: valor final Inc: incremento
FIN
PSEUDOCODIGO
c) SENTENCIA REPETITIVA : PARA
PSEUDOCODIGO
c) SENTENCIA REPETIR - PARA La sentencia Para tiene los siguientes elementos: Vc: Vi: Inc: es la variable de control de la estructura repetitiva y F acta como un contador. es el valor inicial que inicializa la variable de control (nmero de repeticiones) de la estructura repetitiva. es el elemento de incremento que aumenta o disminuye la variable de control (contador) cada vez que se ejecuta el ciclo.
CONSTRUCCION DE ALGORITMOS
PROBLEMA N 10 Escribir un algoritmo que lea un nmero enteros positivos n y luego imprima su factorial.
CONSTRUCCION DE ALGORITMOS Proceso Problema10 Leer n; factorial <- 1; Para i <- 1 hasta n Hacer factorial<- factorial * i; FinPara Escribir " El Factorial de N es = ", factorial ; FinProceso
CONSTRUCCION DE ALGORITMOS
PSEUDOCODIGO
c) SENTENCIA REPETIR PARA Los CICLOS ANIDADOS son utilizados cuando un ciclo Para interior esta contenido dentro de otro ciclo exterior. Para i 1 hasta 5 // inicio del ciclo exterior F Escribir i toma el valor de, i; Para j 1 hasta 4 // inicio del ciclo interior* j Escribir j = , j ; FinPara Finpara // fin del ciclo exterior *i
PSEUDOCODIGO
c) SENTENCIA REPETIR PARA La salida del algoritmo sera la siguiente: i toma el valor de 1 // ciclo exterior // ciclo interior j
F
j = 1, j = 2, j = 3, j = 4 i toma el valor de 2 j = 1, j = 2, j = 3, j = 4
// ciclo interior j
PSEUDOCDIGO
ESTRUCTURAS REPETITIVAS ANIDADAS
Es posible insertar un bucle dentro de otro. La estructura interna debe estar incluida totalmente dentro de la externa y no puede existir solapamiento.
CONSTRUCCION DE ALGORITMOS
PROBLEMA N 11
Disear un programa que permita determinar el promedio de tres prcticas luego de eliminar la menor nota.
CONSTRUCCION DE ALGORITMOS
PROBLEMA N12
Escribir un algoritmo que lea un nmero compuesto por ms un dgito y luego muestre: total de dgitos, total de dgitos pares e impares, nmero invertido, total de suma de dgitos pares e impares respectivamente.