Introducción a la Programación Algoritmos en Pseudolenguaje Pseudolenguaje Forma de escribir un algoritmo, siguiendo las reglas de un lenguaje de programación real. Un peseudolenguaje está compuesto de definiciones (de variables y estructuras) e instrucciones. Definición (declaración) de variables: Indican el tipo de dato que almacenarán las variables en el proceso. Declaración de datos: tendremos dos tipos de datos numéricos y alfanuméricos. Dato numérico Dato alfanumérico : num nombre de la variable (Ejemplo: num Edad) : char nombre de la variable[tamaño] (ejemplo: char Apellido[15]) En este ejemplo, la variable Apellido podrá almacenar un valor de máximo 15 caracteres. Estructura de un algoritmo Inicial : Se declaran e inicializan las variables que se utilizarán en el programa. Cuerpo : conformado por las instrucciones del programa. Final : Impresión de resultados y otras operaciones de término de proceso. Instrucciones De entrada De asignación De salida De control : Representa el ingreso de datos al computador. : Representa el almacenamiento de un valor o expresión en una variable. : Representa la obtención de datos por pantalla o impresora. : Representan las decisiones (bifurcación) y ciclos (bucles) en el proceso. Nomenclatura para las instrucciones Entrada de datos: la instrucción será read mensaje,variable Ejemplo: Read “Ingrese el nombre:”,nom Salida de resultados: la instrucción será print mensajes y/o variables. Ejemplo: Print “el resultado es:”,suma Observación: Ud. Puede colocar comentarios en el programa. Estos comienzan con el carácter #. Ejemplo: # este es un ejemplo de programa Asignación de variable: la instrucción será variable := valor o expresión Ejemplos: Cuenta := Cuenta+1 Nomsuc:=”Maipu” 1 Introducción a la Programación Operadores +,*,/ ^ Div mod + <,>,= <= , >= , <> OR, AND, NOT Aritméticos Alfanumérico De relación Lógicos Suma y resta Multiplicación y división Elevación Cuociente entero de la división Resto de la división concatenación Menor , mayor , igual Menor o igual , mayor o igual , distinto o , y , negación Ejemplos de uso de los operadores Ejemplo 1: Suponga las siguientes variables numéricas en memoria: A 4 B 15 C R P Si ejecutamos la siguiente instrucción: P:=A2 C:=B div A R:=B mod A El computador calculará 42 y el resultado quedará en la variable P. El computador dividirá 15 por 4 y el cuociente (3 en este caso) quedará almacenado en la variable C El computador dividirá 15 por 4 y el resto de la división (3 en este caso) quedará almacenado en la variable R Observación: Las operaciones DIV y MOD implican división, pero sin decimales Ejemplo: 17 : 3 = 5 cuociente 2/ resto Ejemplo2: suponga las siguientes variables alfanuméricas: PAL1 hola PAL2 Como estás FRASE Al ejecutar la sentencia FRASE:=PAL1+PAL2 el computador concatenará los valores almacenados, por lo tanto en la variable FRASE quedará almacenado el valor holaComoestas. Sentencias condicionales Instrucción condicional simple If (condición) then .......... .......... else ......... ......... End_if 2 Introducción a la Programación A continuación se muestran ejemplos de equivalencia entre fragmentos de diagrama de flujo y pseudolenguaje. Ejemplo 1: en Diagrama de flujo Equivalencia en Pseudolenguaje . . . no B < 1000 If (B<1000) Then A:=A*3 B:=B+100 Else A:=A+2 B:=B+50 End_if print A,B . . . si AA+2 BB+50 AA*3 BB+100 A,B Ejemplo2: en diagrama de flujo En pseudolenguaje . . . MONTOCANT*PRECIO MONTO:=CANT*PRECIO If (SUC =1) Then no no SUC =1 PRECIO:=2000 FACTOR:=2 SUC =2 Else If (SUC =2) then si si PRECIO2000 FACTOR 2 PRECIO2500 FACTOR 3 no CANT >1000 si DESCMONTO*FACTOR/100 MONTOMONTO-DESC DESC0 PRECIO3000 FACTOR 4 PRECIO:=2500 FACTOR:=3 Else PRECIO:=3000 FACTOR:=4 End_if End_if If (CANT >1000) Then DESC:=MONTO*FACTOR/100 Else DESC:=0 End_if MONTO:=MONTO-DESC Print “el monto es:”,MONTO . . . MONTO 3 Introducción a la Programación Instrucción condicional múltiple Conviene utilizara cuando existe mas de dos caminos (bifurcaciones) y además estos están determinados por el valor especifico (=) de una variable. Select variable in Case Valor1: instrucciones Break Case Valor2: instrucciones Break . . Valorotro:Instrucciones End_case Ejemplo: Supongamos el mismo ejemplo anterior: Ejemplo3: en diagrama de flujo Con la sentencia if . . MONTOCANT*PRECIO MONTO:=CANT*PRECIO If (SUC =1) Then no PRECIO:=2000 FACTOR:=2 no SUC =1 SUC =2 Else If (SUC =2) Then PRECIO2000 FACTOR 2 PRECIO2500 FACTOR 3 no si DESCMONTO*FACTOR/100 MONTOMONTO-DESC MONTO PRECIO:=2500 FACTOR:=3 si si CANT >1000 En pseudolenguaje DESC0 PRECIO3000 FACTOR 4 Else PRECIO:=3000 FACTOR:=4 End_if End_if If (CANT>1000) Then DESC:=MONTO*FACTOR/100 Else DESC:=0 End_if MONTO:=MONTO-DESC Print “el monto es:”,MONTO . . Con la sentencia Case MONTO:=CANT*PRECIO Select SUC in case 1 : PRECIO:=2000 FACTOR:=2 break case 2 : PRECIO:=2500 FACTOR:=3 break valorotro : PRECIO:=3000 FACTOR:=4 End_case If (CANT>1000) Then DESC:=MONTO*FACTOR/100 Else DESC:=0 End_if MONTO:=MONTO-DESC Print “el monto es:”,MONTO 4 Introducción a la Programación Ciclos o bucles Un ciclo o bucle es un conjunto de sentencias que se ejecuta repetidamente, mientras se cumple una condición (sea verdadera). Existen varias instrucciones de ciclo. Revisaremos las más conocidas y presentes en casi todos los lenguajes. Sentencia While (Mientras): Ejecuta la o las instrucciones que están comprendidas entre While y End_while, mientras se cumpla la condición establecida. While (condición) Instrucciones End_While Sentencia For: Ejecuta la o las instrucciones una cantidad de veces. For(valor inicial,valor final,incremento) instrucciones End_for Sentencia Do: Es similar a la instrucción While, solo que el primer chequeo de la condición es al final del ciclo. Por lo tanto, el ciclo se ejecuta al menos una vez. Do instrucciones Do_While (condición) Ejemplo: Se requiere procesar el nombre y la edad de N personas. Al final entregar el promedio de las edades. Ejemplo 4: con diagrama de flujo En pseudolenguaje Con la sentencia While Start Num N,Edad,Cuenta, Suma Char Nombre N Cuenta0 Suma0 Cuenta<N no SumaSuma/N si Nombre, Edad SumaSuma+Edad Cuenta Cuenta+1 Start Num N,Edad,Cuenta,Suma Char Nombre[20] read "cuantas personas ingresará:",N Cuenta:=0 Suma:=0 While (Cuenta<N) read "ingrese nombre:",Nombre read "ingrese edad:",edad Suma:=Suma+Edad Cuenta:=Cuenta+1 End_while Suma:=Suma/N Print "el promedio es:",Suma End Suma End 5 Introducción a la Programación Con la sentencia For Start Num N,Edad,Cuenta,Suma Char Nombre[20] Read “cuantas personas ingresará:”;N Suma:=0 For (Cuenta:=0,Cuenta<N, Cuenta:=Cuenta+1) Read “ingrese el nombre”;Nombre Read “ingrese la edad:”;Edad Suma:=Suma+Edad End_for Suma:=Suma/N Print “El promedio de las edades es:”;Suma End Con la sentencia DO...While Start Num N,Edad,Cuenta,Suma Char Nombre Read “cuantas personas ingresará:”;N Cuenta:0 Suma:=0 Do() Read “ingrese el nombre”;Nombre Read “ingrese la edad:”;Edad Suma:=Suma+Edad Cuenta:=Cuenta+1 While (Cuenta<N) If (N=0) then Print “no se puede calcular promedio” Else Suma:=Suma/N Print “El promedio de las edades es:”;Suma End_if End 6