rias
A todos los que me apoyaron alguna vez
Sobre el Autor Ernesto Rodriguez es Ingeniero Técnico Industrial y Profesor de Educación Secundaria durante 18 años del área de Tecnología. Fundador de la empresa Ermoweb dedicaca al mundo de internet y la programación. En su labor docente sigue el lema: “Todo el mundo puede aprender si se le enseña adecuadamente”. Otros Libros del Autor
Electrónica Básica Fácil: Un libro sencillo y fácil de aprender con todos los conocimientos básicos sobre electrónica - Curso de Electricidad: El curso trata temas desde la estructura de átomo hasta montajes de motores en triangulo y calculo de potencias en corriente trifásica. 101 Problemas de Lógica: Juegos para agilizar la mente. Estilo Compadre: Su primera novela. Una novela policial y romántica, donde el pasado vuelve para traer inesperadas consecuencias.
Página web del autor: http://www.areatecnologia.com
INTRODUCCIÓN 1. ALGORITMOS, DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO 1.1 ¿Qué es un Algoritmo? 1.2 Diagramas de Flujo 1.3 Pseudocódigo
2. ELEMENTOS COMUNES EN LA PROGRAMACIÓN 2.1. Comentarios 2.2. Las variables
3. ESTRUCTURAS DE CONTROL 3.1 Estructuras secuenciales 3.2. Estructuras selectivas
3.2.1 Alternativas simples (condicional IF) 3.2.2 Alternativas dobles (IF…….ELSE….) 3.2.3 Alternativas múltiples o con varias condiciones. 3.3. Estructuras de control REPETITIVAS 3.3.1 Estructura MIENTRAS(condición) o "WHILE“ 3.3.2 Estructura REPETIR (hacer)... MIENTRAS QUE (condición) o "DO.....UNTIL“ 3.3.3 Estructura DESDE o "bucles FOR" 3.4 Otras Estructuras de Control 3.4.1 Variables “Acumuladores”
4. MATRICES 5. TIPOS DE ERRORES 6. EJEMPLOS DE PSEUDOCÓDIGOS
7. TIPOS DE LENGUAJES DE PROGRAMACIÓN Y PARA QUÉ SIRVEN.
Introducción Los fundamentos de programación son las bases comunes a todos los lenguajes de programación. Es lo primero que tendrás que aprender, incluso antes de elegir el programa con el que quieras programar.
El propósito general de un lenguaje de programación es permitir a un ser humano (el programador) traducir la idea de un programa en una secuencia de instrucciones que el ordenador sea capaz de ejecutar.
Como los lenguajes humanos, los lenguajes de programación son herramientas de comunicación, pero al contrario que los lenguajes corrientes como el inglés o el chino, los destinatarios de los lenguajes de programación no son sólo humanos sino también los ordenadores Si nos queremos entender con el ordenador, el ordenador solo entiende el llamado código máquina (1 y 0, 1=hay o 0=no hay corriente).
Es por eso que tenemos 2 tipos diferentes de lenguajes de programación, dependiendo de su cercanía al lenguaje del ordenador. Los de bajo y los de alto nivel. Estos lenguajes sirven para dar órdenes directas al hardware del ordenador.
Los lenguajes más cercanos al idioma del ordenador, llamados de bajo nivel, son muy complicados (casi como el código máquina) y poco usados. El más conocido es el código o lenguaje máquina, un código que el ordenador puede interpretar directamente. Aquí tienes un ejemplo: 8B542408 83FA0077 06B80000 0000C383 Complicado ¿NO?
De este tipo de lenguajes, que solo suelen utilizar los que programan los ordenadores inicialmente para su uso, no vamos hablar aquí. Hablaremos de los conocimientos comunes a los lenguajes de alto nivel. Los lenguajes de programación de alto nivel permiten dar órdenes al ordenador con un lenguaje parecido al nuestro (Visual Basic, Pascal, Logo, C++, etc.) y normalmente en ingles.
El código de un programa suele escribirse en uno o varios ficheros de texto. Este código que es interpretable por un humano (o al menos debiera serlo) no puede ser ejecutado directamente por el computador. El problema de los lenguajes de alto nivel es que necesitan un compilador o interprete para traducirlo al código máquina.
Existen unos lenguajes llamados lenguajes interpretados, en los que existe un programa llamado intérprete que lee las líneas de código y las ejecuta inmediatamente, es decir, se analizan y ejecutan las instrucciones por el propio programa directamente, pero siguen siendo lenguajes de alto nivel. Ejemplos de este tipo son el GML o el Java.
Pero no te vuelvas loco, todo esto es puramente técnico, lo importante es que los lenguajes, como todo, hay que aprendérselos, pero tienen una ventaja, y es que tienen varios puntos en común, más bien muchos. Estos puntos son lo que vamos a estudiar aquí, los fundamentos de programación común a cualquier lenguaje de alto nivel.
Una vez aprendidos, tendrás que elegir tu el lenguaje que quieras, pero con estos conocimientos, todos te resultarán muy fáciles de aprender, solo tendrás que aprender unas cuantas instrucciones en ingles.
1. Algoritmos, Diagramas de Flujo y Pseudocódigo Los lenguajes de programación, cuentan todos en su haber con un juego de "instrucciones". Una instrucción no es más que una orden que nosotros le damos a la máquina.
Y es que, al fin y al cabo, un programa no es más que una secuencia de instrucciones, escritas en algún lenguaje de programación y pensadas para resolver algún tipo de problema. Eso sí, si no sabemos resolver este problema, no podremos escribir el programa. Sería absurdo intentar hacer un programa informático para resolver un ejercicio que requiere de una fórmula, si no sabemos qué fórmula necesitamos, ni cómo aplicarla.
Por eso cuando te plantees crear un programa primero tendrás que saber para qué servirá y cómo lo resolverá. A ti se te puede ocurrir una manera de resolverlo, a tu compañero, otra. Y las dos formas pueden ser correctas. Este método con el que resolvéis el problema, es lo que se llama algoritmo, y es lo primero que vamos a ver.
1.1 ¿Qué es un Algoritmo? Un algoritmo es una secuencia de PASOS a seguir para resolver un problema. Por ejemplo, cuando quiero ver una película de vídeo, podría hacer los siguientes pasos = algoritmo: Elijo una película de las de mi colección.
- Compruebo SI TV y vídeo están conectados a la red (y procedo). SI la TV está apagada, la enciendo, SI NO, pues no. Y lo mismo con el vídeo. Introduzco la película en el vídeo. Dejo el estuche sobre el vídeo. SI la TV no está en el canal adecuado, la cambio, SI NO, pues no.
Cojo los mandos a distancia (el del TV y el del vídeo). -
Me pongo cómodo.
Pulso PLAY en el mando del vídeo. Fíjate bien en unos detalles que son fundamentales y que aparecen en este algoritmo:
- La descripción de cada paso no me lleva a ambigüedades, los pasos son absolutamente explícitos y no inducen a error. - El número de pasos es finito. Tienen un principio y un fin. Según lo visto una mejor definición de algoritmo sería:
“Un algoritmo es una sucesión finita de pasos (no instrucciones como en los programas) no ambiguos y que se pueden llevar a cabo en un tiempo finito.”
Hay distintas formas de escribir un algoritmo, bien usando un lenguaje específico de descripción de algoritmos, bien mediante representaciones gráficas como diagramas de flujo. Esta última suele ser la más utilizada por los programadores. Veamos un pequeño resumen de creación de diagramas de flujo.
1.2 Diagramas de Flujo Los diagramas de flujo representan la secuencia o los pasos lógicos para realizar una tarea mediante unos símbolos. Dentro de los símbolos se escriben los pasos a seguir. Un diagrama de flujo debe proporcionar una información clara, ordenada y concisa de todos los pasos a seguir.
Veamos un ejemplo muy sencillo. Haremos el algoritmo y el diagrama de flujo para cocinar un huevo para otra persona. Los pasos a seguir o algoritmo escrito sería: - Pregunto si quiere el huevo frito. - Si me dice que sí, lo frio, si me dice que no, lo hago hervido.
- Una vez cocinado le pregunto si quiere sal en el huevo. - Si me dice que no lo sirvo en el Plato. Si me dice que si le hecho sal y después lo sirvo en el plato. Ahora vamos hacer el diagrama de flujo:
Sencillo ¿NO?
Si uno tiene experiencia puede prescindir del algoritmo escrito, pero siempre tendremos que tenerlo en mente para hacer el diagrama de flujo sin equivocarnos. Reglas Básicas Para la Construcción de un Diagrama de Flujo 1. Todos los símbolos han de estar conectados 2. A un símbolo de proceso pueden llegarle varias líneas
3. A un símbolo de decisión pueden llegarle varias líneas, pero sólo saldrán dos (Si o No, Verdadero o Falso). 4. A un símbolo de inicio nunca le llegan líneas. 5. De un símbolo de fin no parte ninguna línea. Los símbolos que se usan para realizar los diagramas de flujo son los siguientes:
En el Símbolo de decisión a tomar, los valores de salida pueden ser SI o NO o VERDADERO o FALSO. El símbolo de Inicio o Final del Diagrama puede ser un cuadrado con los bordes redondeados o una elipse. Se pueden utilizar colores para los símbolos. Veamos otro ejemplo muy sencillo.
Queremos hacer un programa informático que nos sume dos números y nos dé el resultado en pantalla. Solución en la siguiente página:
El símbolo de resultado es un símbolo usado en los diagramas para soluciones con el ordenador. Es el símbolo de salida del resultado por la pantalla del ordenador. Ves que es muy sencillo, hay que ir poniendo los pasos lógicos que se deben seguir para realizar la tarea o el programa.
En el ejercicio tenemos el inicio y el fin, una entrada de datos, para meter los 2 números, una operación a realizar, la suma, y un resultado a mostrar. Cada uno de esos pasos con su símbolo correspondiente en el diagrama. Recuerda que estos diagramas de flujo te facilitarán mucho la tarea antes de empezar con tu programa.
Independiente del lenguaje de programación que vaya a usarse; un algoritmo que esté escrito en pseudocódigo o con un diagrama de flujo es fácilmente traducible a muchos lenguajes de programación. Si quieres ver más ejemplos de diagramas de flujo te recomendamos el siguiente enlace:
http://www.areatecnologia.com/informa de-diagramas-de-flujo.html
1.3 Pseudocódigo El pseudocódigo es una forma de escribir los pasos, pero de la forma más cercana al lenguaje de programación que vamos a utilizar, es como un falso lenguaje, pero en nuestro idioma, en el lenguaje humano.
Una de las mayores dificultades con las que se encuentran los hispanoparlantes que empiezan a programar es el idioma. Por eso es bueno utilizar el pseudocódigo, algo así como un falso lenguaje de programación en español, que ayuda a asimilar con más facilidad las ideas básicas. Incluso algunas universidades han creado sus propios "intérpretes de pseudocódigo".
Su misión es ayudar a los alumnos de primer curso a crear los programas "pensando en español", pero permitiéndoles además, probar esos programas desde un entorno "casi real". Por ejemplo, PSeInt es una herramienta para asistir a un estudiante en sus primeros pasos en programación, mediante un simple e intuitivo pseudolenguaje en español (complementado con un editor de diagramas de flujo).
Por ejemplo si queremos escribir algo en pantalla, en pseudocódigo podríamos poner: Escribir "Hola" o Escribir 20+30. También podemos usar: mostrar por pantalla "Hola"
Realmente el pseudocódigo lo podríamos escribir como nosotros quisiéramos, ya que realmente no es el programa en sí, solo es una ayuda para posteriormente realizar el programa mediante el lenguaje de programación que utilicemos, eso sí, es de gran ayuda. Recuerda que el pseudocódigo para un programador es fundamental.
Si sabes hacer el pseudocódigo del programa, pasarlo a cualquier lenguaje de programación es muy sencillo, solo tendrás que aprender los comandos equivalentes a las instrucciones en pseudocódigo. Además, la mayoría de los lenguajes utilizan prácticamente los mismos comandos en su lenguaje. Sigamos hablando un poco más sobre el pseudocódigo.
Para especificar el principio y el fin del programa pondremos: Inicio Aquí iría el programa en pseudocódigo Fin Otra forma muy utilizada sería: Proceso NombreDelPrograma Aquí iría el programa en pseudocódigo
FinProceso Las 3 cosas más comunes que podemos escribir en pseudocódigo son: Escribir Escribe en pantalla el texto que pongamos entre paréntesis o también puede escribir en pantalla el valor de una variable. Esta instrucción en casi todos los programas suele escribirse con la palabra write o document.write('Hola ');.
LeerEdad nos lee desde lo que el usuario marque desde el teclado y guarda el valor, por ejemplo dentro de una variable, en este caso la variable Edad (luego veremos lo que son las variables). En programación real suele utilizarse la instrucción input. Calcular3 x 5
Calcula valores
Ya veremos más adelante ejemplos de programas en pseudocódigo, pero recuerda que lo más usado es Leer, Escribir y Calcular. Ahora vamos a empezar con lo interesante, vamos a empezar aprender a programar.
2. Elementos Comunes en la Programación 2.1. Comentarios Poner comentarios de lo que vamos haciendo es muy útil, sobre todo cuando llega la hora de revisar el programa, si no, más de una vez nos encontraremos diciendo ¿qué hacía esto aquí?. No cuesta nada documentar el programa y nos ahorrará dolores de cabeza.
La norma que se sigue en todos los programas es poner // delante de los comentarios para identificarlos: // Esto será un comentario y no hará nada en el programa, solo servirá para leerlo nosotros dentro del programa. Nosotros durante las explicaciones también pondremos comentarios.
2.2. Las variables Esto es una de las cosas más importantes en programación. Entender bien que es una variable es fundamental. Una variable es como una caja donde metemos cosas (datos). Estos datos los podemos ir cambiando, ahora meto un 3, ahora lo quito y meto un 5.
Una variable tiene un nombre, que puede ser una letra, una palabra, varias palabras unidas por el guión bajo o varias palabras sin separar, pero la primera letra de cada palabra en mayúsculas Ejemplos para escribir el nombre de una variable: VidasPerdidas, vidaperdidas, vidas_perdidas.
Ojo las mayúsculas y minúsculas son muy importantes en las variables, no es la misma variable numero que Numero, son dos diferentes. ¿Pero no lleva acento la palabra número? OJO NO se pueden poner acentos en el nombre de las variables.
Las variables, además de un nombre, también tienen un valor que es lo que hay dentro de ella (recuerda dentro de la caja) en ese momento y que puede ir variando según se vaya desarrollando el programa, por eso se llama variable. Una variable dependiendo de su valor puede ser: Variable Numérica, si solo puede tener un valor numérico.
Variable de texto, si solo puede contener texto dentro de ella (letra, palabra o frase (string). Una frase se llama string.
En las variables de texto, su valor (el texto), debe ir entre comillas, para diferenciar que el texto es texto y no es el nombre de otra variable. Por ejemplo definamos 2 variables diferentes
vidas = "Cinco" Vidas_Fin = "5" En los dos casos el valor es un texto, nunca el valor de 5. Las numéricas no llevan comillas en su valor. Por ejemplo vidas = 5. En este caso su valor sí que es el número 5.
Hay otras variables que se llaman booleanas que solo pueden tener dos valores true o false. Normalmente true se puede sustituir por el valor 1 y false por el 0. Veamos algunos ejemplos de los tipos de variables: Edad=3; //variable numérica. Fíjate que esto no hace nada, es solo un comentario.
VariableDeTexto= “Edad”; VariableNumerica= Edad + 2 ; El valor de VariableNumerica, es el valor de la variable Edad (numérica y que valía 3) +2. En este caso el valor de VariableNumerica sería = 5 (resultado de 3+2). Ojo podría cambiar durante el desarrollo del programa, recuerda que es una variable.
VariableBooleana = true; en este caso sería de valor 1 ¿Te has dado cuenta que hemos puesto un punto y coma (;) al acabar de definir cada variable? En programación siempre que se acaba una instrucción o grupo de instrucciones se debe poner punto y coma (;) para decir al programa que pasamos a otra instrucción diferente. Pero sigamos con las variables.
Lo normal es declarar las variables al principio de un programa. Declarar no es más que decir "mira, yo quiero tres variables, y quiero que una se llame Nombre, otra Edad y otra Apellido". A partir de este momento, podrás meter su valor, en cualquier parte del programa.
Por ejemplo, “Juan” en Nombre, un 5 en Edad y “Rodríguez” en la variable Apellido. Ojo no es la misma variable Nombre que nombre, como ya dijimos anteriormente. Después podremos cambiar su valor dentro del programa las veces que queramos. Las variables se suelen declarar al principio del programa.
Declarar las variables es decir qué tipo de dato es el que queremos representar con ese nombre de variable. OJO hay lenguajes en los que no es necesario declarar la variable. Pero en la mayoría si es necesario Veamos un ejemplo:
numerica: Pepe //declaramos la variable Pepe como numérica. Solo puede almacenar números dentro del programa. Ahora ya la podemos usar. Pepe = 14 //Damos un valor a la variable ya declarada Pepe; Pepe = 42 // Cambiamos el valor de la variable a 42; Podemos sumar, restar, multiplicar y dividir las variables o cualquier número.
La resta se indicará con -, la suma con +, la multiplicación con *, la división con / y la potencia con ^. Una operación menos habitual es calcular el resto de una división. Esto también tiene un símbolo asociado: %. Esto se suele usar con frecuencia para saber si un número es múltiplo de otro (por ejemplo, será múltiplo de 10 si su resto entre 10 es 0, o será impar si su resto entre 2 es 1).
15%2 nos dará el resto de dividir 15 entre 2, es decir será 1. Además como el resto es 1 el número será impar. Cuando tenemos varias variables numéricas o de texto las podemos declarar todas a la vez de la siguiente foma:
numerica: Pepe, Mari ,Juan //Declaramos las variables numéricas que usaremos todas a la vez. Es más sencillo y se puede hacer. Posteriormente les asignamos sus valores iniciales. Texto: Nombre, Apellido, Ciudad // Declaramos las variables de texto que vamos a usar a la vez. Posteriormente les asignamos sus valores de texto iniciales.
Veamos una sencilla suma de variables: Pepe=2; Mari=3; Juan = Pepe + Mari; // Juan tiene ahora el valor numérico de 5. Hay variables ya definidas por el propio lenguaje de programación que usemos, y cuyo nombre no se lo podremos dar a ninguna de las que nosotros definamos.
Las podemos usar, pero tal y como el lenguaje las definió. Por ejemplo, en muchos lenguajes mouse_x es la variable que tiene el valor de la posición x del ratón en cada momento, hspeed es la velocidad horizontal, etc. Para acabar con el tema de las variables, decir que pseudocódigo para especificar que queremos recoger el valor de una variable desde el teclado, se suele hacer de la siguiente forma:
Leer NombreDeLaVariable Por ejemplo: Leer Edad; En este caso nos permite leer lo que el usuario teclee y dejarlo guardado para utilizarlo después mediante la variable nombre. Si el usuario teclea 5 la variable Edad quedará con 5 como valor. Fíjate en el siguiente programa escrito es pseudocódigo:
Proceso Ejemplo Escribir "Dime un numero" Leer primerNumero Escribir "Dime otro numero" Leer segundoNumero Escribir "Su suma es ", primerNumero + segundoNumero FinProceso ¿Lo entiendes verdad? Nos suma los dos números introducidos por el usuario desde el teclado.
Ojo si somos nosotros los que queremos definir el valor de una variable no pondremos Leer, simplemente el nombre de la variable y su valor. Edad = 15 //variable numérica EdadTexto = “Tengo 15 años” //variable de texto. Variables Locales y Globales
Si queremos que la variable se use en todo el programa deberemos nombrarla como una variable global, en caso contrario, si no la definimos como global, por defecto el lenguaje la considerará una variable local. Una variable local al salir del lugar donde la hemos asignado un valor, perderá ese valor y ya no existirá (al salir de un algoritmo, trozo de programa, del objeto, de una estructura IF, etc.).
En algunos lenguajes de programación, por defecto cuando asignamos una variable ya es global. En otros no. En la mayoría de los lenguajes que se necesita diferenciar local de global, se pone la palabra global, un punto y detrás el nombre de la variable. De esta forma, esta variable la podemos usar en todas las partes del programa sin problemas. Ejemplo global.pepe, que será distinta de la variable pepe.
3. Estructuras de Control Las estructuras de control tienen una finalidad bastante definida: “su objetivo es ir señalando el orden en que tienen que sucederse los pasos de un algoritmo o de un programa.” Las estructuras de control son de tres tipos: 3.1. Secuenciales 3.2. Selectivas
3.3. Repetitivas Empecemos por las primeras.
3.1 Estructuras secuenciales Una estructura de control secuencial, en realidad, no es más que escribir un paso del algoritmo detrás de otro. El que primero que se encuentre escrito será el que primero se ejecute. Veamos un ejemplo: queremos leer el radio de un círculo, calcular su área y mostrar por pantalla al usuario el resultado.
En pseudocódigo (algo parecido a nuestro lenguaje) sería: Inicio numerica: radio, area; //Declaración de variables; inicio mostrar por pantalla “dame el radio del circulo”;
Leer radio //asignación del valor de la variable radio por medio del teclado; area =3.14159*radio; //asignación del valor de la variable área por nosotros, en función del valor de radio. Escribir “el área del circulo es:” + area //En los textos debemos poner acentos; Fin
Como ves las instrucciones se van ejecutando unas detrás de otra hasta llegar al final. Es importante definir el inicio y el final del programa.
3.2. Estructuras selectivas Estas estructuras se utilizan para TOMAR DECISIONES (por eso también se llaman estructuras de decisión o alternativas). Lo que se hacen es EVALUAR una condición, y, a continuación, en función del resultado, se lleva a cabo una opción u otra.
3.2.1 Alternativas simples (condicional IF) Son los conocidas condicionales SI (if en ingles). Su traducción sería: "si se cumple esto... entonces hacemos algo". Se usan de la siguiente manera: yo quiero evaluar una condición, y si se cumple (es decir, si es cierta), entonces realizaré una serie de pasos. Un ejemplo en pseudocódigo sería: Inicio Declaración de variables
numerica: numero, raíz fin declaración de variables inicio Escribir “introduce un numero” Leer numero SI numero>=0 ENTONCES: // mayor o igual que cero;
raíz = raiz_cuadrada (numero) Escribir “la raíz cuadrada es:” Escribir raíz fin del SI fin En todos los lenguajes de programación la condicional SI se escribe de la siguiente forma.
if numero = 0 {Entre corchetes definimos lo que se hace si cumple la condición de que la variable numero sea igual a 0} Es decir la palabra if seguida de la condición y seguidamente entre corchetes lo que se realizará si se cumple la condición. if edad < 19 { resultado =”Eres menor de edad” }
En este ejemplo si la variable edad es menor de 19 la variable resultado (de texto) nos mostrará un texto que dice “Eres menor de edad”. Para las estructuras de control son muy importantes los operadores que nos permiten comparar. Aquí tienes los más usados:
También tienes operadores para realizar funciones matemáticas:
Si escribo numero = AZAR (100) el ordenador asignará a la variable numero, un número al azar entre 0 y 99. OJO siempre un número menos del que pongamos entre paréntesis.
3.2.2 Alternativas dobles (IF…….ELSE….) ¿Qué pasa si no cumple la condición puesta en los casos anteriores?
Pues si no le decimos nada, el programa pasará a la siguiente orden de forma secuencial. Pero también podemos especificar que pasaría si no cumple la condición. Es el famoso trío "si se cumple ... haces esto ... sino esto otro". Veamos cómo sería la estructura en todos los lenguajes:
if (condición) {se hace esto} else {si no cumple la condición se hace esto otro}; Lo que hay entre los primeros corchetes es lo que haría el programa si se cumple la condición. Lo que hay entre los corchetes después del else es lo que haría si la condición no se cumple. Dentro de los corchetes podemos especificar varias órdenes.
Ojo aquí no pasaría a la siguiente orden de forma secuencial. Para ir a otro sitio tendríamos que especificarlo dentro de los corchetes. Por ejemplo ir algún sitio si se cumple o ir a otro si no se cumple. En el ejemplo anterior sería mucho mejor hacerlo con este tipo: En pseudocódigo: Declaración de variables numerica: numero, raiz
fin declaración de variables inicio Escribir 'introduce un numero' Leer numero SI numero >= 0 ENTONCES: {raiz = raiz_cuadrada (numero); Escribir 'la raíz cuadrada es:' + raiz} SINO: {Escribir 'lo siento, no puedo calcular la raíz cuadrada de un numero negativo'} fin del SI fin
raíz es una variable que tomará el valor de la raíz cuadrada del número introducido por el usuario mediante la orden Leer numero. Fíjate que si el número que introduce el usuario en la variable número fuera un número negativo ( es decir menor que 0) el programa mostraría que no puede calcular la raíz. OJO en programación deberíamos sustituir SI por if y SINO por else.
En el siguiente caso vemos como sería para saber si un número es negativo o positivo, en lenguaje de programación real. if numero >= 0 {mostrar en pantalla "Numero Positivo} else { mostrar en pantalla "Numero Negativo} Estas estructuras seguirían el siguiente esquema:
Si se cumple la condición se realiza las acciones A, si no se cumplen se realizan las acciones B.
3.2.3 Alternativas múltiples o con varias condiciones.
Es muy probable que tengamos la necesidad de incluir en nuestros programas alternativas con muchas opciones posibles (varios SI diferentes). variableOpciones= un valor a elegir, por ejemplo desde el teclado if (variableOpciones=0) {lo que corresponda}; if (variableOpciones=1) {lo que corresponda}; if (variableOpciones=2) {lo que corresponda}; ……….
Podemos poner tantas if como queramos. En este caso el programa realizará las acciones en función de lo que valga la variable variableOpciones. Ejercicio propuesto: Intenta hacer un programa que nos diga la nota de un alumno, en función del número sacado en el examen.
Por ejemplo: si saca menos de 5 “Suspenso”, Si saca entre 5 y 6 suficiente, si saca entre 6 y 8 “notable”. También existe la posibilidad de que deban de cumplirse dos condiciones a la vez: if (condición1 && condición2) {Se cumple esto} Esto sería si se cumplen las condiciones 1 y 2 a la vez.
if (condición1 && condición2) {Se cumple esto} else {se cumple esto otro} Esto sería si se cumplen las condiciones 1 y 2 a la vez o si no se cumplen a la vez. OJO tienen que cumplirse las dos a la vez. Si solo se cumple una de las dos se realizará lo que tengamos en los corchetes del else. Los símbolos && significan "y", es decir si se cumple la condición1 y la condición2 a la vez.
Aquí tienes una tabla con los operadores lógicos utilizados para posibilidades de opciones:
if (condición1 | condición2) {Se cumple esto}
Este caso se realizaría las acciones entre corchetes si se cumpliera cualquiera de las dos opciones o las dos a la vez. Si solo se cumple la condición 1, ya valdría para que se realizaran las acciones que hay entre los corchetes. Intenta hacer los siguientes ejercicios con bolígrafo y papel: Sobre estructuras secuenciales
1. Escribid un algoritmo y su pseudocódigo que calcule el área de un triángulo o de un rectángulo. 2. Escribid un algoritmo y su pseudocódigo que calcule el precio de un artículo tras aplicarle un 16% de IVA. Sobre estructuras selectivas 1. Crea el pseudocódigo para un esquema de menú de opciones, para poder seleccionar un libro a leer de entre 3 disponibles.
2. Escribid un algoritmo y su pseudocódigo que lea tres números que introduzca el usuario e imprima por pantalla el mayor de ellos. 3. Crea un programa en pseudocódigo que pida un número al usuario y diga si es positivo, negativo o cero.
3.3. Estructuras de control REPETITIVAS Estas estructuras son instrucciones que se repiten formando un bucle (algo que se repite una y otra vez). El bucle se repite mientras se cumpla una condición que ha de ser especificada claramente. Cuando deje de cumplirse la condición, se sale fuera del bucle y no se repiten más las instrucciones.
Un BUCLE (loop, en inglés) es un trozo de algoritmo, pseudocódigo o de programa cuyas instrucciones son repetidas un cierto número de veces, mientras se cumple una cierta condición que ha de ser claramente especificada. Básicamente, existen tres tipos de estructuras repetitivas:
3.3.1 Los bucles "mientras..." en pseudocódigo o "while” en programación real. 3.3.2 Los bucles "repetir (hacer)... mientras que" en pseudocódigo o "do... until" en programación 3.3.3 Los bucles "desde" en pseudocódigo o "bucles for" en programación. Vamos a verlas todas dentro de un ejemplo.
El ejemplo es el siguiente: Vamos a suponer que estamos pensando en un programa que deba REPETIR algunas veces una acción. Un ejemplo más concreto. El ordenador se ha portado mal, y como castigo, le vamos a hacer imprimir por pantalla 3000 veces la frase "Prometo ser bueno".
¿Cómo lo hacemos? ¿Escribimos 3000 veces la instrucción pertinente? ¡Se supone que el castigo es para la máquina, no para uno mismo!
3.3.1 Estructura MIENTRAS(condición) o "WHILE“
En este tipo de estructura, el cuerpo del bucle se repite MIENTRAS se cumple una determinada condición, que especificamos entre paréntesis. Cuerpo del Bucle = las acciones que deben ejecutarse repetidas veces. Sería algo como “Repetir Hasta” o “Mientras….hacer” (mientras se cumpla algo…hacer….) Estas estructuras tendrían el siguiente diagrama de flujo:
Si se cumple la condición, se realiza una serie de acciones y se vuelve a comprobar la condición, y así sucesivamente hasta que la condición no se cumpla y se dejan de realizar las acciones.
Veamos un ejemplo en pseudocódigo y su explicación: Pseudocódigo Inicio Inicio del bucle mientras contador=1 Mientras (contador<=3.000) hacer Escribir 'Prometo ser bueno' contador = contador + 1
fin del bucle mientras fin Recuerda, una cosa es el “fin del bucle mientras” y otra el fin del programa. Expliquemos el programa anterior paso a paso. A la variable que "lleva" la cuenta de las veces que el bucle se ha ejecutado, se le he llamado variable contador.
Fijarse que ANTES de entrar en el bucle le asigno el valor 1 a la variable contador. Si no fuera así, al entrar en el bucle y la variable (contador) no tener valor, me saldría error. El programa se preguntaría: ¿Qué variable contador? ¿No sé qué valor inicial tiene? Por eso hay que especificarla siempre antes del “mientras”.
En cuanto vemos la palabra "mientras" o “while”, ya sabemos que hemos entrado en el bucle. Una vez enrado en el bucle, estamos en la decisión. ¿Es contador<=3000? Yo creo que sí, al menos si es cierto que 1<=3000. Recuerda que la primera vez contador vale 1. Vale, es cierto, así que deben ejecutarse todas las instrucciones del cuerpo del bucle.
En nuestro caso, se mostrará por pantalla la frase 'Prometo ser bueno', y, ATENCION, seguidamente sumo 1 a la variable contador. Como contador valía 1, si ahora le sumo 1, ahora contador vale 2. Llegamos al fin del mientras. Eso significa que se han terminado las instrucciones del cuerpo del bucle.
Antes de salir del bucle debemos volver a evaluar la condición que tenía el "mientras" o “while” entre paréntesis para ver qué hacemos ahora, si seguimos dentro del bucle o salimos definitivamente de él. Tenemos que ver si contador<=3000. Ahora, contador vale 2, y se cumple que 2<=3000, con lo que vuelve a mostrarse por pantalla la expresión 'Prometo ser bueno' y de nuevo se suma 1 a contador, con lo que ahora, contador pasa a valer 3.
De nuevo llegamos al fin del mientras. Y... un buen rato después.... cuando contador vale 3000, tenemos que ver si contador<=3000. Como es cierto que 3000<=3000, se muestra por pantalla el mensaje 'Prometo ser bueno', y sumamos 1 a contador.
Ahora, contador vale 3001. Llegamos (una vez más) al fin del mientras, por lo que tenemos que volver a evaluar la condición entre paréntesis que acompaña al "mientras". Hay que ver si contador<=3000. Pero no es cierto que 3001<=3000, es más bien al revés, o sea, la condición entre paréntesis ES FALSA.
¿Eso qué quiere decir? Pues quiere decir que se acabó, que ya no se ejecuta el cuerpo del bucle, sino que hemos llegado al final, el bucle a terminado y salimos fuera del. Nuestro ordenador cumplió su castigo perfectamente. Pero….
¿Qué pasaría si la variable contador, al definirla, su valor fuera ya mayor de 3000? Simplemente no haría el bucle y pasaría a la siguiente instrucción después del bucle, si la hay, si no la hay, se acabaría el programa. contador = contador + 1; se suele llamar el “paso” ya que es el valor que aumenta la variable cada vez.
En todas las estructuras de bucle, es necesario especificar el valor inicial (de la variable), el valor final y el paso. Pongamos otro ejemplo. Queremos un programa capaz de sumar muchos números, todos los que el usuario quisiera, y en el que hubiera que escribir "0" para indicar que queremos terminar. ¿Cómo sería? Aquí tienes una posible solución:
Proceso Mientras Escribir "Dime un numero"; Leer x; suma <= 0; Inicio Mientras Mientras x <> 0 Hacer suma <= suma + x; Escribir "Hasta ahora, la suma es ", suma; Escribir "Dime otro numero"; Leer x; FinMientras Escribir "Terminado";
FinProceso Ejercicio Propuesto: crea un programa que genere dos números al azar entre el 0 y el 100, y pida al usuario que calcule e introduzca su suma. Si la respuesta no es correcta, deberá volver a pedirla tantas veces como sea necesario hasta que el usuario acierte. Recuerda que para generar un número al azar del 0 al 100 puedes hacer:
numero: AZAR(101), la variable numero será un número al azar, elegido por el ordenador, entre 0 y 100. Recuerda que en la programación real se usa la palabra while en lugar de Mientras.
3.3.2 Estructura REPETIR (hacer)... MIENTRAS QUE (condición) o "DO.....UNTIL“
Aquí, lo que se desea es que un bucle se ejecute al menos una vez antes de comprobar la condición de repetición. Es decir, en el ejemplo anterior del castigo al ordenador, si partiéramos que la variable condición fuera mayor de 3000, en este caso, el bucle se ejecutaría una vez, incluso aunque la variable ya no cumpla la condición desde el principio. En el caso de hacerlo con while no se ejecutaría ninguna vez.
¡Esta es la única diferencia¡ La estructura PARA EJEMPLO es esta:
NUESTRO
Inicio Contador=1 Repetir Escribir 'Prometo ser bueno O:-)' Contador=Contador+1 mientras que(Contador<=3000)
fin Recuerda en programación real utilizamos Do... Until en lugar de Repetir…Mientras que.
3.3.3 Estructura DESDE o "bucles FOR" Esta estructura hubiera sido la más adecuada para resolver nuestra situación real.
For es de los bucles más versátiles y utilizados. Los bucles FOR se utilizan cuando queremos que se repita una serie de instrucciones un número determinado de veces, previamente fijadas. Así como los bucles WHILE se repiten mientras que se cumpla una determinada condición, los bucles FOR se repiten mientras que una variable no adquiera un determinado valor.
Así que, cada bucle FOR contiene una variable a la que llamaremos “variable del bucle for” y que suele llamarse “i”. Normalmente, por no decir siempre, con bucles for se suele usar la variable “i” para contar, y no la variable contador. Lógicamente tendremos que especificar el valor inicial de la variable i, el valor final y el paso del bucle (salto en el valor de la variable).
inicio desde i=1 hasta i<=3.000 i=i+1; Escribir 'Prometo ser bueno'; fin desde; fin En estos bucles for, la variable i toma el primer valor el que le pongamos nosotros detrás del “desde” o el (for) en programación real. No es necesario especificar su valor fuera del bucle.
Como ves claramente tenemos valor inicial de i (1), valor final 3000, y el paso de 1. Esta estructura en programación real tendrá la siguiente estructura: for ( variable = valor inicial ; condición ; incremento) { sentencias... } En nuestro ejemplo sería: Inicio
for ( i = 1 ; i<= 3000 ; i+1) { Escribir 'Prometo ser bueno'; Coordenada Y = 50*i //esta parte está en pseudocódigo. } Fin La mayoría de las ves para poner el incremento de la variable i en uno, su usa la expresión i++. for ( i = 1 ; i<= 3000 ; i++)
i++ significa incremento o paso 1 de i Después de todo lo visto, si hiciéramos el programa nos surgiría un “problemilla”. ¡Todas las frases se verían una encima de otras! Y no tendríamos la sensación de que se repiten una detrás de otra.
Lo que tendríamos que hacer es que cada frase tuviera una posición dentro de la pantalla (coordenada) diferente, cada una en una fila diferente. En este caso solo sería necesario cambiar la coordenada Y (vertical) en cada frase, siendo la X por ejemplo siempre 0. inicio desde i=1 hasta i<=3.000 i=i+1;
Escribir 'Prometo ser bueno'; Coordenada Y = 50*i fin desde; fin ¡Problema resuelto! Cada vez que escribe una frase cambia la coordenada Y. Cuando i es 1, la coordenada Y es 50, pero cuando i vale 2, la coordenada Y vale 100.
Las coordenadas son donde empieza la escritura de la frase. Como para X no decimos nada siempre la tomará como valor X = 0 (a la izquierda de la pantalla). Recuerda en programación real se usa la palabra for, y no desde. ¿Se te ocurre otra forma más sencilla? Sí que la hay, pero es menos efectiva. La solución sería poner dentro del bucle Borrar_pantalla( ).
Cada vez que comienza el bucle se borraría lo que había escrito anteriormente. Claro está que decimos que es menos efectiva porque la velocidad sería tan rápida que casi no veríamos los números según se van escribiendo y borrando. Otro ejemplo en pseudocódigo: Proceso Para02 Para i <= 10 Hasta 20 Con Paso 2 Hacer
Escribir i; FinPara FinProceso ¿Qué haría este programa? Pues el resultado obtenido sería: 10 12 14 18 20
Fíjate que al escribir para i <=10 el primer valor que toma i es 10 y va sumándose de 2 en dos. Ejercicio Propuesto: Programa que escriba los números del 1 al 10, con while, con do….until y con FOR.
3.4 Otras Estructuras de Control 3.4.1 “Acumuladores”
Variables
Son como las variables contador, con la diferencia que su incremento/decremento es variable (varía según el valor de i). Se hacen mediante ciclos for de la siguiente forma: acumulador=1 {{
for (i=0; i<=10; i+=1) { acumulador = acumulador+i //Aumenta el valor en i cada vez que llega aquí; draw_text (50,50*i,acumulador); } } // El resultado sería 1 2 4 7 11 16 22 …
Nota: draw_text es una orden para escribir en pantalla en muchos lenguajes, pero no vale para todos. Detrás de draw_text y entre paréntesis se pone lo primero la coordenada X donde se escribe, lo segundo la coordenada Y, y lo tercero el valor de lo que queremos escribir en pantalla. Que el bucle no se ejecute ninguna vez, puede tener aplicación en algunos casos.
4. Matrices Cuando necesitamos manejar muchos datos, generalmente hay soluciones más efectivas que tener muchas variables. Por ejemplo, si hay que guardar 100 números, suele ser más eficiente almacenar esos 100 datos "juntos", formando una "matriz", en vez de usar 100 variables distintas.
Otro ejemplo, imaginemos que deseamos leer las notas de una clase de 25 alumnos. Desearemos por tanto almacenarlas y para ello, con lo que conocemos hasta ahora, no habrá más remedio que declarar 25 variables. La palabra "matriz" es una traducción del inglés "array". Es por eso que en programación se habla siempre de arrays, ya sabes que es el inglés el lenguaje habitual.
Algunas personas que empiezan a estudiar la programación tienen horror a los arrays. ¡Parece extraño, pero es verdad!. Vamos a quitar ese miedo. En realidad, los arrays son como las variables comunes. Si no entramos en los detalles de las particularidades de la notación, no hay gran diferencia entre escribir una expresión utilizando variables simples: Variable0=1; Variable1=2;
o utilizando arrays: int Variable[3]; Variable[0]=1; Variable[1]=2; ¿Te has fijado en la diferencia?. Cuando especificamos una variable tenemos que poner un nombre diferente para cada una de ellas.
Un array tiene varias variables internas, pero el array un solo nombre. Además cada variable tiene un valor. Si te fijas pusimos int delante del array. Es porque en los arrays es necesario poner el tipo de array. int significa que los valores del array serán números enteros. float o doublé son para declarar tipos de arrays de números reales.
En un array ponemos entre corchetes la cantidad de variables que tiene el array. [3] Significa que ese array tiene 3 variables diferentes (0, 1 y 2), y cada una con un valor diferente. En este caso las 3 variables y sus valores serían: Variable[0]=1; Variable[1]=2; Variable[2]=3;
OJO siguen siendo 3 variables diferentes pero todas pertenecen al mismo array. Además los elementos del array se empiezan a contar a partir de cero. El número que hay dentro de cada corchete se conoce como índice del array. OJO Jugador [8] es un array con índice 8 pero Jugador8 es el nombre de una variable.
Un array nos permite referirnos a todos los elementos, pero también nos permite acceder individualmente a cada elemento. Las principales propiedades del array son las siguientes: tipo de sus variables (int, double, etc.), nombre del array, y el tamaño del array. Cuando declaramos un array de un tipo concreto, todos los datos del array deberán ser de ese tipo.
También podemos tener arrays de texto: string Boton[] = {"Botón 1", "Botón 2", "Botón 3"}; El número de sus elementos se determina por la lista de valores (entre las llaves). Las variables y sus valores serían: Boton[0] = “Boton 1” Boton[1] = “Boton 2”
Boton[2] = “Boton 3” ¿Cómo se hace todo esto en pseudocódigo? Proceso Prueba Dimension num[5]; FinProceso ¿Sencillo NO? Solo hay que definir la dimensión del array y el nombre del array, en este caso num.
Muchas veces se suelo definir antes el tipo de array. Eso se haría de la siguiente forma: Proceso Prueba Definir num como entero; Dimension num[5]; FinProceso En este caso, si no decimos nada, cada variable que tiene el array tendría asignado un valor, ya sabes desde el valor 1 hasta el 5.
¿Podríamos definir nosotros los valores? Pues sí. Mira el ejemplo: Proceso Prueba Definir num como entero; Dimension num[5]; num[0]=5; num[1]=10; num[2]=15; num[3]=20; num[4]=25; FinProceso
Aquí num[0] ya no tendrá el valor 1, nosotros hemos definido su valor y será 5. Veamos un ejemplo en pseudocódigo: Proceso Prueba Definir num como entero; Dimension num[5]; num[1]=5; num[2]=10; num[3]=15; num[4]=20; num[5]=25;
Para i = 1 Hasta 5 Con Paso 1 Hacer escribir num[i]; Fin Para FinProceso Recuerda i = 1 Hasta 5 Con Paso 1 Hacer se escribe: for ( i = 1 ; i<= 5 ; i++) {Lo que hace} ¿Qué hace esto?
Pues simplemente nos mostrará en pantalla 5,10,15,20,25. Si, los cinco valores del array. ¿Podemos hacer que los valores de cada variable del array los tome desde los valores que nosotros marquemos en el teclado? Pues también. Fíjate en el ejemplo: Proceso Prueba Definir num como entero; Dimension num[5]; num[1]=5;
num[2]=10; num[3]=15; num[4]=20; num[5]=25; Para i = 1 Hasta 5 Con Paso 1 Hacer leer num[i]; Fin Para Para i<-1 Hasta 5 Con Paso 1 Hacer escribir num[i]; Fin Para FinProceso Nota: El símbolo <- se utiliza mucho, pero no te lies es lo mismo que poner =.
OJO primero le hemos asignados unos valores a cada variable del array num. Posteriormente estos valores cambiarán con la orden leer. Vamos analizar la siguiente parte del programa: Para i = 1 Hasta 5 Con Paso 1 Hacer leer num[i]; Fin Para Aquí lo que hace el programa es crear 5 variables
num[1], num[2] num[3], num[4], num[5], pero cada vez que cree una variable del array el programa se parará para “leer” el dato que introduzcamos desde el teclado, que será es valor de esa variable. El primer dato introducido será el valor de num[1], y así sucesivamente.
5. Tipos de Errores Cuando tenemos que empezar a programar nos daremos cuenta que cuando ejecutemos nuestro programa probablemente empiece a darnos errores, también llamados bugs. Tranquilo, eso es normal, lo que no sería normal es que todo te saliera a la primera. Vamos analizar los 2 tipos de errores que se pueden cometer en programación:
Errores de sintaxis: Un error de sintaxis es aquel en el que el programa no sigue las reglas sintácticas definidas por el lenguaje. Por ejemplo es común que en alguna parte del programa escribamos fo, en lugar de for, o cualquier otra palabra del lenguaje mal escrita.
Errores Lógicos: Estos errores suelen ser los más complejos de localizar, ya que el entorno de desarrollo no suele ser capaz de detectarlos hasta que el programa está en funcionamiento. Estos errores son causados por fallo en la lógica del programa que hace que su funcionamiento no sea el que desea el programador. Por ejemplo un bucle que funciona incorrectamente y no hace lo que queremos.
¿Tenemos algún tipo de ayuda? Pues SI. Podemos utilizar lo que se llama Debugger o Depurador. El debugger o mejor dicho en español el depurador, es una Herramienta o Aplicación que permite la ejecución controlada de un programa o código para seguir cada instrucción ejecutada paso a paso y localizar así los Bugs o errores. Más concretamente, el depurador permite:
• ejecutar un programa línea a línea • detener la ejecución temporalmente en una línea de código concreta • detener temporalmente la ejecución bajo determinadas condiciones • visualizar el contenido de las variables en un determinado momento de la ejecución
• cambiar el valor del entorno de ejecución para poder ver el efecto de una corrección en el programa Un BreakPoint es un punto de corte, que en programación es una línea o líneas especificas en el cual queremos que se detenga el flujo habitual del programa. Los fines pueden ser varios, verificar el flujo del programa o valores de los datos, etc.
Hay muchos programas depuradores de código, solo tienes que buscar el que más te convenga. Si te vas a dedicar a esto de la programación, no hay otra alternativa que acostumbrarse a utilizarlo. Bien ya estás preparado para aprender a programar en cualquier lenguaje de programación de alto nivel.
Ahora tú elijes el que quieres aprender, veras que con estos conocimientos previos te será Muy Sencillo. Solo tendrás que aprender el vocabulario específico del lenguaje que utilices, aunque seguramente sea el mismo que hemos utilizado aquí.
Programar requiere mucho orden, y lo mejor para tener todo ordenado es separar el programa en varias piezas diferentes (trozos del programa). Cada pieza realizará una tarea concreta y todas juntas realizarán el deseado programa. Otra cosa que tenemos que decir es que programar tiene mucho de imaginación y de reto personal, ya que ese programa que realices, saldrá de tu mente.
La mejor forma de aprender a programar es programando, cometer errores y solucionarlos. Por eso el siguiente capítulo del libro te propone muchos ejemplos de programas es pseudocódigo. Lo ideal es que leas el enunciado y sin mirar la solución, intentes hacer tu solito el programa.
Ya sabes que no tiene porqué ser igual que la solución que nosotros proponemos, pero eso sí, tendrá que hacer los que te piden. También verás que no siempre utilizamos la misma nomenclatura para escribir el pseudocódigo. Ya sabes que no hay una regla fija, por eso es mejor acostumbrarse a verlo de diferentes formas. Tú puedes elegir la que más te guste y seguir siempre la misma.
El último capítulo está dedicado a la explicación y el uso de los lenguajes de programación más habituales. Quizás te ayude a seleccionar el lenguaje que quieres aprender. Ya sabes que tendrás que aprender el “idioma” del lenguaje con el que finalmente te decidas a programar. Pero…aunque parezca pesado, te recuerdo que sabiendo hacer el programa es pseudocódigo te será muy sencillo pasarlo al lenguaje real.
¡¡¡Suerte y a Practicar!!!
6. Ejemplos Pseudocódigos
de
1. Realizar el pseudocódigo de un programa que permita calcular el área de un rectángulo. Se debe introducir la base y la altura para poder realizar el cálculo. Programa área numerosenteros:
BASE,
ALTURA,
AREA Escribir “Introduzca la base y la altura”
Leer BASE, ALTURA Calcular AREA = BASE * ALTURA Escribir “El área del rectángulo es “AREA FinPrograma 2. Realizar el pseudocódigo que permita al usuario introducir por teclado dos notas, calculando la suma y el producto de las notas. Programa: SumaProducto
Entorno: NOTA1,NOTA2,SUMA,PRODUCTO son números enteros escribir “Introduzca las notas” leer NOTA1,NOTA2 calcular SUMA = NOTA1 + NOTA2 calcular PRODUCTO = NOTA1 * NOTA2 escribir “La suma de las dos notas es:” SUMA escribir “El producto de las dos notas es :”PRODUCTO Finprograma
3. Elaborar un algoritmo que obtenga e imprima el valor de Y a partir de la ecuación: : Y= 3*X + 2 + 7X – 15, introduciendo el valor que queramos de X. Inicio numericas: numx, numy; Leer numx; numy = 3*X + 2 + 7X – 15; Escribir numy; Fin
4. Realizar el pseudocódigo de un programa que permita saber si un número es mayor, menor o igual a cero. Programa: ComparaNúmeros Entorno: NUMERO es un número entero Escribir “Introduzca un número “ Leer NUMERO SI NUMERO>0 ENTONCES escribir “El número introducido es positivo” SI NO
SI NUMERO<0 ENTONCES escribir “El número introducido es negativo” SI NO escribir “El número es cero” FINSI FINSI Finprograma 5. Hacer un pseudocódigo que imprima los números del 1 al 100. Programa contador1 Entorno: c variable numérica.
c=1 InicioMientras Borrar_pantalla( ) MIENTRAS c < 101 HACER ESCRIBIR c c=c+1 FinMientras FinPrograma 6. Hacer un pseudocódigo que imprima los números del 100 al 0, en orden decreciente. Programa contador2
Entorno: c variable numérica c = 100 InicioMientras Borrar_pantalla( ) MIENTRAS c <= 0 HACER ESCRIBIR c c=c-1 FinMientras FinPrograma 7. Observa la siguiente secuencia de instrucciones:
1. 2.
A= 5 B=7
3.
C=2
4.
A= A+ B + C
5.
B=C/2
6.
A= A/ B + A^C
7.
Imprimir(A)
Nota: Imprimir es parecido a Escribir, con la diferencia que estamos diciendo que lo imprima por la impresora, en lugar de escribirlo en pantalla. Ahora responde a las siguientes cuestiones: a) ¿Qué valor contiene A después de la cuarta instrucción? b) ¿Qué valor contiene B después de la quinta instrucción?
c) ¿Qué valor contiene A después de la sexta instrucción? d) ¿Qué valor imprime la última instrucción? e) Si en lugar de Imprimir(A) hubiésemos escrito Imprimir(“A”) ¿Qué aparecería? Aquí no te ponemos las soluciones, esperamos que tu solito seas capaz de contestar a todas las cuestiones.
8. Supongamos un algoritmo que lea las coordenadas de tres puntos y los mueva tres puntos en la coordenada x y escriba el resultado en algún dispositivo de salida: ALGORITMO lee_tres_vertices ENTRADA: las coordenadas (x,y) de tres puntos SALIDA: las coordenadas (x,y) de los tres puntos movidos 3 puntos hacia la derecha. VARIABLES: i:entera
x,y: real INICIO PARA i=1 HASTA 3 CON INCREMENTO +1 ESCRIBE "Abscisa del punto número ", i LEER x ESCRIBE "Ordenada del punto número ", i LEER Y ESCRIBE "El punto es (" x+3","y")" FIN_PARA FIN
Te ponemos el programa equivalente en Pascal equivalente a este algoritmo. Como podemos apreciar en un programa en Pascal es importantísimo no olvidar detalles de sintaxis. Por ejemplo cada sentencia termina en punto y coma. De cualquier forma es inmediato apreciar los simples cambios existentes. program lee_tres_vertices; var x,y:real; i:integer; begin
for i:=1 to 3 do begin write ('Abscisa del punto número ',i); readln(x); write ('Ordenada del punto número ',i); readln(y); write (' El punto es (',x+3,',',y,')'); end; end; 9. Calcular y mostrar la suma de los diez primeros números entre 1 y 1000 que sean divisibles por uno dado.
programa suma_divisibles variables natural : divisor, suma, contador, número inicio programa divisor leer ‘Introduce el divisor: ’ suma 0 contador 0 para número desde 1 hasta 1000 hacer si divisor divide a número entonces suma = suma + número contador contador + 1 fin si
si contador = 10 entonces interrumpir fin si fin para escribir ‘La suma es’, suma fin programa 10. Un cine requiere conocer el total recaudado. Se debe ingresar el precio de cada entrada al cine y el total de entradas vendidas. inicio variables entero ev, pe, c
muestre 'ingresar total entradas vendidas', ' ingresar precio de cada entrada' lea ev, pe c= ev*pe muestre ' el total recaudado es ',: c,'$' fin 11. Crear un pseudocódigo que proporcione el volumen de un cilindro, conocidos su altura y diámetro. Inicio
Mostrar “Introduzca el diámetro, en metros” : Pedir D Mostrar “Introduzca la altura, en metros” : Pedir H R = D/2 : Pi = 3,141593 V = Pi * (R ^ 2) * H Mostrar “El volumen del cilindro es de”, V, “metros cúbicos” Fin Aquí puedes ver que hemos sustituido Escribir por Mostrar, pero es lo mismo.
12. Crear un pseudocódigo que proporcione el precio medio de un producto, calculado a partir del precio del mismo en tres establecimientos distintos. Inicio Mostrar “Introduzca el precio del producto en el establecimiento número 1, en euros” : Pedir Precio1 Mostrar “Introduzca el precio del producto en el establecimiento número 2, en
euros” : Pedir Precio2 Mostrar “Introduzca el precio del producto en el establecimiento número 3, en euros” : Pedir Precio3 Media = (Precio1 + Precio2 + Precio3) / 3 Mostrar “El precio medio del producto es”, Media, “Euros” Fin
13. Un operario de una fábrica recibe cada cierto tiempo un depósito cilíndrico de dimensiones variables, que debe llenar de aceite a través de una toma con cierto caudal disponible. Se desea crear un programa que le indique cuánto tiempo transcurrirá hasta el llenado del depósito.
El caudal disponible se considera estable para los tiempos que tardan los llenados de depósitos y se encuentra almacenado en un archivo del ordenador, figurando el dato en litros por minuto. Inicio Q = Caudal disponible en litros / minuto Leer Q Mostrar “Introduzca el diámetro del depósito, en metros” : Pedir D Mostrar “Introduzca la altura del depósito, en metros” : Pedir H
Pi = 3,141593 R=D/2 V = Pi * (R ^ 2) * H : Vlitros = V * 1000 tminutos = Vlitros / Q Mostrar “El tiempo que transcurrirá hasta el llenado del depósito es de”, tminutos, “minutos” Fin
14. Dadas dos variables numéricas A y B, que el usuario debe teclear, se pide realizar un algoritmo que intercambie los valores de ambas variables y muestre cuánto valen al final las dos variables (recuerda la asignación). Var A, B, C: numerica Inicio Escribir "Introduce el valor de A" Leer A Escribir "Introduce el valor de B" Leer B
C<-A A<-B B<-C Escribir "A vale " A " y B vale " B Fin 15. Realizar un algoritmo para hallar el coseno de un ángulo. inicio variables entero co, ca, h co=0, ca=0, h=0 muestre 'ingresar valor de cateto adyacente'
lea ca muestre ' ingresar valor de hipotenusa ' lea h co= ca/h muestre ' el coseno hallado es',:co fin 16. Realizar un algoritmo para ingresar un usuario y contraseña. inicio variables cadena usuario='', clave='' cadena usuario_valido= 'cristian', clave_valida= '1234'
muestre ' porfavor ingrese usuario y contraseña ' lea usuario, clave si usuario=='' o usuario=='' entonces muestre ' apreciado usuario verifique que el usuario y/o clave fueron digitados' sino si usuario=usuario_valido y clave=clave_valida entonces muestre ' bienvenido', usuario_valido sino muestre ' apreciado usuario verifique los datos digitados'
fin si fin si fin 17. Introducir tantas frases como queramos y contarlas. PROGRAMA frases ENTORNO: res = "S" frase = Espacios( 30 ) c <- 0 Borrar_pantalla( ) MIENTRAS res = "S" HACER ESCRIBIR "Frase: " LEER frase c <- c + 1
ESCRIBIR "Deseas introducir m s frases (S/N): " LEER res FINMIENTRAS ESCRIBIR "El número de frases introducidas son: " ESCRIBIR c FINPROGRAMA 18. Introducir un número por teclado. Que nos diga si es positivo o negativo. PROGRAMA signo ENTORNO: num = 0 ALGORITMO: Borrar_pantalla( )
ESCRIBIR "Introduce un n£mero: " LEER num SI num >= 0 ENTONCES ESCRIBIR "es positivo" SINO ESCRIBIR "es negativo" FINSI FINPROGRAMA 19. Crear el pseudocódigo y el diagrama de flujo para un programa que muestre todos los enteros comprendidos entre un número definido por el usuario y 100. Inicio
Mostrar “Introduzca un número entero comprendido entre 1 y 99” : Pedir Num Desde i = Num hasta 100 Hacer Mostrar i Siguiente Fin 20. Elabore un traductor simple de inglés-español utilizando dos arreglos o arrays de tipo cadena de texto con 20 palabras como mínimo. Variables de caracteres E[40], I[20] INICIO
Para i= 0 hasta i=19 hacer Leer I[20] Leer E[20] Fin _para Para i= 0 hasta i=19 hacer I[i] = E[i] S[i] = E[i] Para i=0 hasta i=19 hacer Escribir “Que significado quieres de las siguientes palabras: “I[i]” Leer I[i] Escribir “el significado es” S[i] Fin _para FIN
7. Tipos de Lenguajes de Programación y Para qué sirven. En la actualidad hay más de 100 lenguajes de programación diferentes. No vamos a definir todos los lenguajes de programación que existen porque son muchos pero sí os hablaremos de los más importantes y para qué se utilizan.
-Lenguaje de Programación “HTML”: Este lenguaje es con el que se crean las páginas web, por ejemplo, que básicamente es un conjunto de etiquetas que sirven para definir el texto y otros elementos que puedes ver en las páginas web. HTML significa HyperText Markup Lenguaje («lenguaje de marcas de hipertexto») y es muy fácil de aprender.
Luego ya depende de si queremos una web más o menos elaborada podremos profundizar en este lenguaje. Por ejemplo, el lenguaje de programación CSS (Cascading Style Sheets) son hojas que sirven para dar “estilo” a las páginas web como su color, definir su fondo, tipos de letra…etc -Lenguaje de Programación “SQL”: Este lenguaje está creado para realizar consultas a bases de datos principalmente.
SQL son las siglas de Structured Query Lenguaje ( Lenguaje estructurado de consultas) y se utiliza para páginas web y también para aplicaciones de ordenadores, para manejar datos sobre todo. (Introducir datos, actualizar datos, eliminar o seleccionar datos) -Lenguaje de Programación “Java”: Probablemente éste podría ser el favorito de más de uno ya que es el lenguaje utilizado para programas punteros como herramientas, juegos y aplicaciones.
Este lenguaje de programación utiliza en miles de millones dispositivos móviles y aparatos televisión y en más de 850 millones ordenadores personales de todo mundo.
se de de de el
Java está instalado en inmensidad de aplicaciones y sitios web. Probablemente también te suene JavaScript, que es otro lenguaje utilizado para crear pequeños programas encargados de realizar acciones dentro de una web como por ejemplo para crear efectos especiales o para definir interactividades con los usuarios.
-Lenguaje de Programación “C”: Este lenguaje de programación está orientado a los Sistemas Operativos y es muy eficaz y con él podemos crear Softwares de sistemas operativos como Windows o Linux y también para aplicaciones. También sirve para experimentos informáticos, físicos, matemáticos…etc. Es también muy utilizado en robótica con el que se programan simuladores, etc. Des este lenguaje se derivan otros como C++.
-Lenguaje de Programación “XML”: Este lenguaje es también un lenguaje de etiquetas como el HTML, pero a diferencia de éste, el lenguaje XML separa el contenido de la presentación, es decir, XML se preocupa del significado del texto que define el HTML. Te da el dato + el significado de ese dato, mientras que el HTML te da el dato nada más. El XML es un complemento fundamental al HTML.
-Lenguaje de Programación “PHP”: El PHP es un lenguaje de programación similar al HTML que nos sirve fundamentalmente para páginas web y se puede combinar con el lenguaje HTML. El lenguaje PHP se basa en los “scripts” que es un guión de órdenes o instrucciones que recibe un servidor de una página web para leer su código fuente.
-Visual Basic: Es uno de los lenguajes de programación MAS Fáciles de utilizar. Es muy intuitivo ya que muchas veces requieres solo arrastrar botones y controles de Windows a una ventana (conocida como forma) y le das "Run" y ya tienes una aplicación Windows. Con el puedes realizar aplicaciones de software de todo tipo bajo entorno Windows. La tecnologia .NET (Visual Basic NET) incluye el VBscript que es visual basic, el JScript que equivale al Javascript, C#... y puedes usar bases de datos SQL o Access.
- FORTRAN (Traductor de Fórmulas: Formula TRANslator): Diseñado específicamente para programas matemáticos y de ingeniería, motivo por el cual, no fue de amplio uso en computadoras personales. Su uso se dirige especialmente a equipos de cómputo dedicados a la investigación y la educación. Así podríamos seguir definiendo múltiples y variados lenguajes de programación. Como verás son verdaderamente útiles y necesarios y sirven prácticamente para cualquier cosa.