GUIA DE EJERCICIOS DE PROGRAMACIÓN En esta guía usted debe desarrollar cada uno de los ejercicios utilizando instrucciones de: Asignación Leer Escribir Si …entonces…sino…finsi Se recomienda utilizar la ayuda de PSEINT para recordar la estructura y significado de cada una de ellas. Además revise cuidadosamente las FUNCIONES del pseudolenguaje que se indican a continuación: Función Significado RC(X) Raíz Cuadrada de X ABS(X) LN(X) EXP(X) SEN(X) COS(X) TAN(X) ASEN(X) ACOS(X) ATAN(X) TRUNC(X) REDON(X) AZAR(X) Valor Absoluto de X Logaritmo Natural de X Función Exponencial de X Seno de X Coseno de X Tangente de X Arcoseno de X Arcocoseno de X Arcotangente de X Parte entera de X Entero más cercano a X Entero aleatorio entre 0 y x-1 No es menos importante manejar adecuadamente los OPERADORES que tiene esta notación: OPERADOR SIGNIFICADO > < = <= >= <> &óY │ óO ῀ ó NO + * / ̂ % ó MOD 1 Mayor que Menor que igual Menor igual que Mayor igual que Distinto que Conjunción Disyunción Negación Suma Resta Multiplicación División Potenciación Módulo (resto de la división entre enteros) Computación para Ingeniería TIPO OPERADOR RELACIONALES LÓGICOS ALGEBRAICOS El pseudolenguaje, PSEINT, será utilizado como una notación para escribir algoritmos; por esta razón, usted deberá ser capaz de escribir la resolución de problemas sin que sea absolutamente necesario usar un computador. La dinámica que se espera es que usted desarrolle la solución en papel y después, sólo para corroborar la efectividad, la pruebe ingresando cada una de las instrucciones en el ambiente PSEINT. La evaluación de los conocimientos adquiridos se hará en una prueba escrita SIN uso de computador. En primera instancia desarrollaremos ejercicios simples documentándolos1 extensamente. Proceso prueba_entero // El objetivo de este algoritmo es comprobar si un valor ingresado por un usuario es entero o fraccionario Escribir “ingrese un valor” Leer numero //Es importante que siempre coloquemos un escribir antes de un leer para que el usuario sepa que debe ingresar Si numero = trunc(numero) Entonces Escribir “el valor ingresado es entero” Sino Escribir “el valor ingresado es fraccionario” Finsi Finproceso Comentarios: Es MUY IMPORTANTE escribir indentadamente de forma de visualizar fácilmente el ámbito de acción de cada instrucción. No volveremos a insistir en este tema, por eso lo colocamos en negrita. La acción que ejecuta el computador con la instrucción ESCRIBIR es mostrar en la pantalla lo que hemos escrito entre comillas (también pueden usarse apóstrofes). En el caso que se coloque algún nombre de variable, nos mostrará el valor que ella tiene asignado. La acción del LEER es efectuar la asignación del valor ingresado al nombre de la variable registrada. Supongamos que el usuario ingresa 3.5 y presiona ENTER; en la memoria del computador se registra que NUMERO tiene asignado el valor 3.5 Si se ingresó el valor 3.5, el resultado de trunc(3.5) es 3. Lo anterior implica que la condición lógica al ser evaluada (numero = trunc(numero)) da como resultado FALSO por lo que se escribirá: el valor ingresado es fraccionario. Es recomendable que usted “rutee”2 el algoritmo ingresando otros valores. Recordemos que en el SI sólo se ejecutan las acciones que están entre el ENTONCES y el SINO si y sólo si la evaluación de la condición lógica es VERDADERA. También podemos utilizar un SI sin utilizar la opción SINO, pero sería un tanto grosero no dar mensaje alguno 1 Utilizaremos la notación con que PSEINT reconoce los comentarios, es decir, comenzaremos esas instrucciones con // 2 Haga la labor del computador escribiendo el resultado que debe entregar 2 Computación para Ingeniería si el valor ingresado no era entero. En el caso de usar un SI sin SINO, la estructura es: SI … ENTONCES … FINSI. Proceso prueba_par // El objetivo de este algoritmo es comprobar si un valor ingresado por un usuario es par o impar Escribir “ingrese un numero” Leer valor //Es importante que siempre coloquemos un escribir antes de un leer para que el usuario sepa que debe ingresar Si valor / 2 = trunc(valor/2) Entonces Escribir “el numero ingresado es par” Sino Escribir “el numero ingresado no es par” Finsi Finproceso Comentarios: ¿Será o no necesario comprobar primero si el valor ingresado es o no fraccionario? ¿Será o no necesario comprobar primero si el valor ingresado es o no positivo? ¿Cuáles serán los resultados al ingresar los siguientes valores( y solicitar la ejecución del programa con cada uno de ellos): 5 4 3.2 0 -2,5? ¿Qué cambio(s) habría que hacer si utilizamos la función MOD (ó %)? ¿Qué cambio(s) habría que hacer si deseamos saber si es múltiplo de 3? ¿Qué cambio(s) habría que hacer si deseamos saber si es múltiplo de otro valor que ingresemos? Proceso prueba_tipovalor // El objetivo de este algoritmo es comprobar si un valor ingresado por un usuario es positivo, negativo o cero Escribir “ingrese un numero” Leer valor //Es importante que siempre coloquemos un escribir antes de un leer para que el usuario sepa que debe ingresar Si valor > 0 Entonces Escribir “el numero ingresado es positivo” Sino Si valor < 0 entonces Escribir “el numero ingresado es negativo” Sino Escribir “usted ingreso un cero” Finsi Finsi Finproceso 3 Computación para Ingeniería Comentarios: Vemos que puede ir un SI dentro de otro SI3, por esa razón encontramos dos FINSI. ¿Si utilizamos sólo SI … ENTONCES … FINSI, cómo cambiaría el algoritmo? ¿Qué pasa si accidentalmente ingresamos una letra en vez de un número? 3 De hecho, pueden haber varios 4 Computación para Ingeniería