03 - Manual de Pseudocódigo
Temas abordados
03 - Manual de Pseudocódigo
Temas abordados
com
[Link]
Posterior
1 - Introducción
1 - Introducción
Una de las mayores dificultades con las que se encuentran los hispanoparlantes que empiezan a programar
es el idioma.
Por una parte, la mayoría de lenguajes de programación se basan en el inglés, por lo que un estudiante de
habla hispana tiene que aprender que "write" o "print" son las palabras equivalentes a "escribir".
Además, la mayoría de lenguajes tienen órdenes que realmente son abreviaturas de una o varias palabras
inglesas, de modo que el aprendiz tiene que entender o memorizar palabras como "printf" o "writeln" incluso
para realizar las tareas más sencillas.
Para colmo, la mayoría de entornos de programación están también en inglés (menús, mensajes de error y
aviso, etc).
Por eso, una herramienta habitual para ayudar a los que empiezan es el "Pseudocódigo", algo así como un
[Link] [Link]
1 - Introducción - [Link]
falso lenguaje de programación en español, que ayuda a asimilar con más facilidad las ideas básicas.
El pseudocódigo soluciona el primer problema: no hace falta aprender inglés para entender los conceptos
básicos. Pero "históricamente" no solucionaba el problema del "entorno de programación": no existían
entornos para programar en pseudocódigo, así que típicamente ha sido una herramienta para usar "con
lapiz y papel".
Algunas universidades han creado sus propios "intérpretes de pseudocódigo", para 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".
Existen varios de estos "intérpretes de pseudocódigo", que permiten teclear nuestro programa y ver cual
sería el resultado, pero hay uno que me parece especialmente bueno: PSEINT, que además realza con
colores la sintaxis de nuestros programas para ayudar a detectar errores, tiene autocompletado para permitir
ganar tiempo, está disponible para Windows y Linux, es gratuito (1), etc. Éste es el que usaremos en este
curso introductorio.
Eso sí, no existe un estándar claro en cuanto a pseudocódigo, puede que la sintaxis que empleen en tu
universidad o centro de estudios sea ligeramente diferente a la que veremos aquí. Aun así, esperamos poder
ayudarte a coger con facilidad las nociones básicas.
(1) PSEINT realmente es "de código abierto": cualquiera puede ver cómo está creado, de forma que incluso si su autor
perdiera el interés por el proyecto, otras personas podrían retomarlo, lo que le garantiza una vida mucho mayor.
Si aun así quieres llegar más allá y no te asusta el inglés, bien porque lo conozcas o bien porque estés
dispuesto a aprender 30 palabras, estás de suerte: el pseudocódigo en inglés se parece a varios lenguajes
de programación, así que podrías aprender los conceptos básicos usando "entornos reales".
Posiblemente Pascal sería el lenguaje que más se parecería al pseudocódigo, y por eso durante mucho
tiempo se ha considerado un lenguaje muy adecuado para aprender, pero hoy en día está un tanto
[Link] [Link]
2- Toma de contacto. - [Link]
[Link]
Anterior Posterior
2- Toma de contacto.
2 - Toma de contacto
Vamos a empezar por lo más sencillo: escribir en pantalla.
Si queremos crear un programa que escriba algo en pantalla, usaremos la orden ESCRIBIR. A continuación
de esta palabras, entre comillas, escribiremos el texto que queremos que aparezca en pantalla.
Escribir "Hola"
Crear un programa que escriba Hola en la pantalla usando PSEINT también es igual de simple. En el caso de
PSEINT, cada programa debe encerrarse entre las palabras "Proceso" (para indicar dónde comienza) y
"FinProceso" (para señalar dónde termina). Pero eso no añade ninguna dificultad, porque cuando entramos a
PSEINT, ese esqueleto de programa ya aparece escrito:
[Link] [Link]
2- Toma de contacto. - [Link]
Algoritmo
FinAlgoritmo
Nuestro programa debería tener un nombre: se nos propone que se llame "sin_titulo", pero mejor podemos
hacer clic en esa palabra y escribir otro título que recuerde mejor lo que va a hacer nuestro programa. De
momento, bastará con "Ejemplo001", por eso de que es nuestro primer ejemplo.
Después, bajamos a la siguiente línea y comenzamos a teclear la palabra "Escribir". Veremos que PSEINT se
da cuenta, y nos recuerda cómo era la orden exacta, incluso cuando apenas llevamos unas pocas letras :
[Link] [Link]
2- Toma de contacto. - [Link]
Cuando terminamos la palabra "Escribir", se nos propone que escribamos una o más expresiones, separadas
por comas; en nuestro caso, será la palabra "Hola", entre comillas:
[Link] [Link]
2- Toma de contacto. - [Link]
Nuestro programa está completo: podemos comprobar su funcionamiento pulsando el botón que recuerda al
"Play " de los equipos de música:
[Link] [Link]
2- Toma de contacto. - [Link]
Y entonces aparecerá una nueva ventana que nos muestra el resultado de nuestro programa (por supuesto,
se trata de la palabra Hola):
[Link] [Link]
2- Toma de contacto. - [Link]
Por supuesto, no sólo podemos escribir textos prefijados. Podemos usar nuestro ordenador como calculadora,
que nos muestre el resultado de una operación aritmética:
Proceso Ejemplo002
Escribir 20+30
FinProceso
Como es habitual en matemáticas, el símbolo + será el que utilizaremos para calcular una suma. La resta se
indicará con -, la multiplicación con *, la división con /. y la potencia con ^. Una operación menos habitual,
el resto de la división, también tiene un símbolo asociado: %. Lo usaremos 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).
Proceso Ejemplo002b
Escribir 15%2
FinProceso
También podemos incluir comentarios, aclaraciones, que nos ayuden a explicar la lógica del programa o
cualquier detalle que no sea evidente. En el caso de PseInt, cualquier línea que comience con una doble barra
(//) se considerará un comentario y no se tendrá en cuenta en el momento de analizar nuestro programa:
En el próximo apartado puntualizaremos un poco más lo que hemos hecho en este último programa y poco
después veremos cómo comprobar condiciones.
[Link] [Link]
2- Toma de contacto. - [Link]
Ejercicio de repaso propuesto 2.1: Crea un programa que escriba "Comienzo a aprender"
Ejercicio de repaso propuesto 2.2: Crea un programa que escriba el resultado de multiplicar 123 por 134
Ejercicio de repaso propuesto 2.4: Crea un programa que escriba el resultado de dividir 37 entre 5
Ejercicio de repaso propuesto 2.5: Crea un programa que escriba el resto de la división de 37 entre 5
(Nota: ¿no has conseguido resolver alguno de los ejercicios propuestos? Puedes preguntar tus dudas en el
foro de [Link])
Anterior Posterior
En los foros...
23-03-2015 03:48 Tabla vista con Select Count sobre 2 tablas [SQL]
[Link] [Link]
3 - Variables - [Link]
[Link]
Anterior Posterior
3 - Variables
3 - Variables
Vamos a hacer algo un poco más complejo: vamos a sumar dos números que no estén prefijados dentro del
programa, sino que deberá teclear el usuario. Para eso, usaremos la orden "Leer", que nos permite leer lo
que el usuario teclee y dejarlo guardado para utilizarlo después. Debemos dar un nombre temporal a estos
datos que leemos del usuario. Parece razonable que el primer n úmero que teclee el usuario se llame algo
como " primerNumero", y el segundo sea algo como "segundoNumero ". El resultado que queremos obtener
será la suma de ese primer número y ese segundo número, así que nuestro programa podría quedar así:
Proceso Ejemplo003
Escribir "Dime un numero"
Leer primerNumero
Escribir "Dime otro numero"
Leer segundoNumero
Escribir "Su suma es ", primerNumero + segundoNumero
FinProceso
[Link] [Link]
3 - Variables - [Link]
Esas dos palabras, "primerNumero" y "segundoNumero" representan a números que no tienen un valor
prefijado. Eso es lo que llamaremos "variables". En las variantes de pseudocódigo que emplean en muchas
universidades y centros de estudio (ya habíamos avisado de que no existe ningún estándar totalmente
asentado) debemos " declarar las variables" antes de usarlas: decir qué tipo de dato es el que querremos
representar con ese nombre. En nuestro ejemplo anterior se trataba de dos números enteros, así que el
programa sería:
Proceso Ejemplo003b
Definir primerNumero como Entero
Definir segundoNumero como Entero
Esto se debe a que en la mayoría de lenguajes de programación "reales" es necesario detallar qué tipo de
datos querremos guardar en cada variable, para que la herramienta de programación sepa exactamente qué
cantidad de memoria será necesaria para guardar ese dato.
Insisto: no es el caso de PSEINT; con esta herramienta no es necesario declarar las variables, el propio
entorno presupone de qué estamos hablando.
Por otra parte, no siempre querremos que el valor de una variable lo introduzca el usuario. Habrá veces que
seamos nosotros mismos los que demos el valor inicial a una variable desde nuestro programa, bien para
usarlo en una serie de cálculos posteriores, o bien por legibilidad (es más fácil entender algo como
"longitudCircunferencia = 2 * pi * radio" que algo como "longitudCircunferencia = 6.28 * radio".
radio <- 3
longitudCircunferencia <- 2 * pi * radio
(esos símbolos representan una flecha, para indicar que el valor 3 se va a guardar en el espacio de memoria
reservado para la variable llamada "radio").
¿Y qué ocurre si usamos una variable sin haberle dado valor? Esto pasa a veces por despiste, si tecleamos
[Link] [Link]
3 - Variables - [Link]
primerNumero <- 2
Escribir primerNmero
Si lees ese fragmento con cuidado, verás que el nombre de la variable que aparece en la segunda línea es
incorrecto, falta la letra "u". ¿Qué sucede en ese caso? En algunos lenguajes (pocos, afortunadamente) se
da por sentado que es una variable nueva, y se le da el valor 0; en el caso de PseInt, igual que en la mayoría
de lenguajes actuales, obtendremos un mensaje de error que nos dirá que estamos usando una variable que
no tenía valor.
Ejercicio de repaso propuesto 3.1: Crea un programa que escriba el resultado de multiplicar los dos
números que introduzca el usuario
Ejercicio de repaso propuesto 3.2: Crea un programa que calcule la superficie de un rectángulo a partir de
su base y su altura, y que después muestre el valor de dicha superficie.
Ejercicio de repaso propuesto 3.3: Crea un programa que calcule la superficie de un círculo a partir de su
radio (la fórmula es "PI * radio2") y que después muestre el valor de dicha superficie (pista: para calcular el
cuadrado de un número basta con multiplicar el número por él mismo: x2=x*x).
Anterior Posterior
En los foros...
[Link] [Link]
4 - Comprobando condiciones (1: Si) - [Link]
[Link]
Anterior Posterior
Si condicion Entonces
pasos_a_dar_si_es_verdadero
Si No
pasos_a_dar_si_es_falso
FinSi
El bloque "Si No" es opcional: podemos optar por no indicar lo que queremos que se haga cuando no se
cumpla la condici ón.
Para ayudarnos a planificar el comportamiento de una secuencia de instrucciones, se suele usar como ayuda
los llamados "diagramas de flujo". En estos diagramas, una condición se representa como un rombo, del que
salen dos flechas: una para la secuencia de acciones a realizar si se cumple la condición y otra para cuando
[Link] [Link]
4 - Comprobando condiciones (1: Si) - [Link]
no se cumple:
Así, si en PSeInt hacemos clic en el icono de la parte derecha que representa la condición SI, aparece un
esqueleto de programa casi completo, para que hagamos los cambios que nos interesen:
Sólo tenemos que escribir la condición que realmente nos interesa, y la serie de pasos a dar si se cumple y si
no se cumple, de modo que nuestro programa podría quedar as í:
Proceso Ejemplo004
[Link] [Link]
4 - Comprobando condiciones (1: Si) - [Link]
Leer primerNumero
Escribir "Dime otro numero"
Leer segundoNumero
FinProceso
En ese ejemplo hemos comparado si un valor es mayor que el otro ( >). Los operadores de comparación que
tenemos disponibles son:
Ejercicio de repaso propuesto 4.1: Crea un programa que pida un número al usuario y diga si es positivo,
negativo o cero.
[Link] [Link]
4 - Comprobando condiciones (1: Si) - [Link]
También podemos comprobar varias condiciones a la vez, para hacer construcciones como: "si a es mayor
que b y b es mayor que c", o como "si a es igual a 1 o b es igual a 1 ". Los operadores lógicos que de los que
disponemos son:
Ejercicio de repaso propuesto 4.2: Crea un programa que pida al usuario dos números y diga cuántos de
ellos son positivos.
Ejercicio de repaso propuesto 4.3: Crea un programa que pida al usuario dos números y muestre su
división si el segundo no es cero, o un mensaje de aviso en caso contrario.
Anterior Posterior
En los foros...
23-03-2015 03:48 Tabla vista con Select Count sobre 2 tablas [SQL]
[Link] [Link]
5 - Comprobando condiciones (2: Segun) - [Link]
[Link]
Anterior Posterior
El bloque "De Otro Modo" es opcional: si detallamos todos los valores posibles, no sería necesario utilizarlo.
[Link] [Link]
5 - Comprobando condiciones (2: Segun) - [Link]
El número de valores que podemos probar es indefinido: no tiene por qué ser 3, sino que pueden ser menos
casos o muchos más.
Según la variante de pseudocódigo (o el lenguaje de programación) que empleemos, puede haber restricciones
en el tipo de datos que es aceptable. Por ejemplo, en el caso de PseInt, la variable tiene que tener un valor
numérico, no puede ser un texto. En versiones anteriores PseInt no permitía el uso de textos pero en
versiones más recientes sí.
Al igual que ocurría con la orden SI, existe un sí mbolo que podemos usar en los diagramas de flujo para
ayudarmos a planificar nuestro programa (aunqe este símbolo está menos extendido que el de SI):
Así, si en PseInt hacemos clic en el icono de la parte derecha que representa la condición SI, aparece un
esqueleto de programa casi completo, para que hagamos los cambios que nos interesen:
[Link] [Link]
5 - Comprobando condiciones (2: Segun) - [Link]
Sólo tenemos que escribir la condición que realmente nos interesa, y la serie de pasos a dar si se cumple y si no
se cumple, de modo que nuestro programa podría quedar as í:
Proceso EjemploCasos
Escribir "Introduzca la nota";
Leer nota;
Segun nota Hacer
10:
Escribir "Ha obtenido un sobresaliente alto";
9:
Escribir "Ha obtenido un sobresaliente bajo";
8:
Escribir "Ha obtenido un notable alto";
7:
Escribir "Ha obtenido un notable bajo";
6:
Escribir "Ha obtenido un aprobado alto";
[Link] [Link]
5 - Comprobando condiciones (2: Segun) - [Link]
5:
Escribir "Ha obtenido un aprobado";
De Otro Modo:
Escribir "Ha suspendido";
FinSegun
FinProceso
Pero no siempre habrá que comprobar condiciones una única vez. Es muy frecuente que haya que hacerlo de
forma repetitiva. Por ejemplo, "pedir una contraseña al usuario hasta que sea la correcta", o aún más cercano al
mundo real, "pedir una contraseña al usuario hasta que sea la correcta o agote sus intentos". De eso hablaremos
en la próxima entrega.
Ejercicio de repaso propuesto 5.1: Crea un programa que pida un número al usuario un número de mes (por
ejemplo, el 4) y escriba el nombre del mes correspondiente (por ejemplo, "abril").
Anterior Posterior
[Link] [Link]
6 - Condiciones repetitivas (1: Mientras) - [Link]
[Link]
Anterior Posterior
Por eso, igual que cualquier lenguaje de programación tiene una orden "si", la gran mayoría de ellos tendrá una
orden "mientras", que permite que un fragmento de un programa se repita mientras una cierta condición se siga
cumpliendo (por ejemplo, mientras la contraseña que teclee el usuario sea incorrecta, el usuario deberá volver a
introducirla).
También existe un símbolo habitual en los diagramas de flujo para representar este tipo de condiciones
repetitivas, en las que 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:
[Link] [Link]
6 - Condiciones repetitivas (1: Mientras) - [Link]
Por ejemplo, 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, podría ser así:
Proceso Mientras01
Escribir "Dime un numero";
Leer x;
suma <- 0;
Mientras x <> 0 Hacer
suma <- suma + x;
Escribir "Hasta ahora, la suma es ", suma;
Escribir "Dime otro numero";
Leer x;
FinMientras
[Link] [Link]
6 - Condiciones repetitivas (1: Mientras) - [Link]
Escribir "Terminado";
FinProceso
Ejercicio de repaso propuesto 6.1: 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.
Pista: como verás en el apartado 10, para generar un número al azar del 0 al 100 puedes hacer numero <-
AZAR(101)
Anterior Posterior
En los foros...
[Link] [Link]
7 - Condiciones repetitivas (2: Repetir-hasta) - [Link]
[Link]
Anterior Posterior
[Link] [Link]
7 - Condiciones repetitivas (2: Repetir-hasta) - [Link]
Por ejemplo, un programa que pida al usuario una clave de acceso, y que no le permita seguir hasta que la
introduzca correctamente, se podría hacer así:
Proceso Repetir01
Repetir
Escribir "Dime tu clave de acceso";
Leer clave;
Si clave <> 1234 Entonces
Escribir "Clave incorrecta";
FinSi
[Link] [Link]
7 - Condiciones repetitivas (2: Repetir-hasta) - [Link]
Queda otra forma de repetir fragmentos de programa. Pronto estaremos con ella...
Ejercicio de repaso propuesto 7.1: Crea un programa que pida al usuario un código de usuario y una
contraseña. Deberá repetirse hasta que el código sea "1" y la contraseña sea "1234".
Anterior Posterior
En los foros...
[Link] [Link]
8 - Repetir un cierto número de veces: Para - [Link]
[Link]
Anterior Posterior
Es la orden "para", que hace que una variable tome una serie de valores que se van incrementando. Por ejemplo, una
estructura como "para x con valores desde 2 hasta 4" haría que un bloque de programa se repitiera 3 veces. En la
primera repetición, la variable "x" tendría el valor 2, en la segunda tendría el valor 3 y en la tercera tendría el valor 4. La
sintaxis exacta en PseInt es: " Para variable <- valorInicial Hasta valorFinal Hacer"
[Link] [Link]
8 - Repetir un cierto número de veces: Para - [Link]
Por ejemplo, un programa que mostrara los números del 1 al 10, podría ser:
Proceso Para01
Para x <- 1 Hasta 10 Hacer
Escribir x;
FinPara
FinProceso
[Link] [Link]
8 - Repetir un cierto número de veces: Para - [Link]
Proceso Para02
Para x <- 10 Hasta 20 Con Paso 2 Hacer
Escribir x;
FinPara
FinProceso
Y obtendríamos:
Hemos visto casi todas las construcciones que podremos encontrar en los lenguajes de programación convencionales (y,
por tanto, al planificarlos usando pseudocódigo). En la próxima entrega veremos alguna otra posibilidad, como el manejo
de matrices y las funciones matemáticas, para pasar después a algunos ejemplos completos.
Ejercicio de repaso propuesto 8.1: Crea un programa que escriba los múltiplos del 3, desde el 3 hasta el 30.
[Link] [Link]
8 - Repetir un cierto número de veces: Para - [Link]
Ejercicio de repaso propuesto 8.2: Crea un programa que escriba los números del 20 al 10, descendiendo.
Ejercicio de repaso propuesto 8.3: Crea un programa que escriba la tabla de multiplicar del 5: desde "5 x 0 = 0" hasta
"5 x 10 = 50"
Anterior Posterior
En los foros...
23-03-2015 03:48 Tabla vista con Select Count sobre 2 tablas [SQL]
(Anteriores...)
[Link] [Link]
9 - Matrices - [Link]
[Link]
Anterior Posterior
9 - Matrices
9 - 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.
La palabra "matriz" es una traducción del inglés "array". Algunos autores lo traducen alternativamente como
tabla, vector o incluso "arreglo".
Normalmente, en una matriz podremos acceder individualmente a cada uno de sus elementos usando
corchetes: el primer dato ser ía algo como "dato[1]".
Vamos a ver un ejemplo que nos pida 6 datos y luego los muestre en orden contrario al que se han
introducido:
Proceso MostrarAlReves
Dimension datos[6]
[Link] [Link]
9 - Matrices - [Link]
FinProceso
Ejercicio de repaso propuesto 9.1: Crea un programa que pida un número al usuario un número de mes
(por ejemplo, el 4) y diga cuántos días tiene (por ejemplo, 30). Debes usar una matriz.
[Link] [Link]
10 - Funciones matemáticas. - [Link]
[Link]
Anterior Posterior
10 - Funciones matemáticas.
10 - Funciones matemáticas.
Casi cualquier lenguaje de programación tiene incorporadas ciertas funciones matemáticas, de modo que
nos permita calcular raíces cuadradas, logaritmos, senos y cosenos, etc.
Lo mismo ocurre en muchas variantes de pseudocódigo. Por ejemplo, PseInt incluye las siguientes
funciones matemáticas:
Función Significado
RC(X) Raíz Cuadrada de X
SEN(X) Seno de X
COS(X) Coseno de X
[Link] [Link]
10 - Funciones matemáticas. - [Link]
TAN(X) Tangente de X
ASEN(X) Arco seno de X
(Si no sabes qué hace alguna de estas funciones, no te preocupes mucho, es señal de que hasta ahora no la
has necesitado... ;-) Las más importantes de ellas las probaremos directamente como parte de los ejercicios)
Ejercicio de repaso propuesto 10.1: Crea un programa que genere un número al azar entre el 1 y el 100.
El usuario tendrá 7 oportunidades para adivinarlo. Tras cada intento, se le dirá si se ha pasado o se ha
quedado corto.
Anterior Posterior
En los foros...
23-03-2015 03:48 Tabla vista con Select Count sobre 2 tablas [SQL]
[Link] [Link]
11 - Ejercicios resueltos - [Link]
[Link]
Anterior Posterior
11 - Ejercicios resueltos
11 - Ejercicios resueltos
a) Enunciados
2.- Crear un algoritmo que pida al usuario un número y le diga si es positivo, negativo o cero.
4.- Crear un algoritmo que calcule la raíz cuadrada del número que introduzca el usuario. Si se introduce un
número negativo, debe mostrar un mensaje de error y volver a pedirlo (tantas veces como sea necesario).
5.- Crear un algoritmo que pida al usuario un número y un símbolo, y dibuje un cuadrado usando ese
símbolo. El cuadrado tendrá el tamaño que ha indicado el usuario. Por ejemplo, si el usuario introduce 4
como tamaño y * como símbolo, deberá escribirse algo como:
[Link] [Link]
11 - Ejercicios resueltos - [Link]
****
****
****
****
Proceso Resuelto01
Para x <- 1 Hasta 5 Hacer
Escribir "Hola";
FinPara
FinProceso
2.- Crear un algoritmo que pida al usuario un número y le diga si es positivo, negativo o cero.
// 2.- Crear un algoritmo que pida al usuario un numero y le diga si es positivo, negativo o ce
ro.
Proceso Resuelto02
Escribir "Dime un numero";
Leer x;
Si x > 0 Entonces
Escribir "Es positivo";
Sino
Si x < 0 Entonces
Escribir "Es negativo";
Sino
Escribir "Es cero";
FinSi
FinSi
FinProceso
Proceso Resuelto03
suma <- 0
Para x <- 1 Hasta 5 Hacer
Escribir "Dime un dato";
[Link] [Link]
11 - Ejercicios resueltos - [Link]
Leer x;
suma <- suma + x;
FinPara
Escribir "Su suma es ", suma;
FinProceso
Proceso Resuelto03
Dimension dato[5]
suma <- 0
4.- Crear un algoritmo que calcule la raíz cuadrada del número que introduzca el usuario. Si se introduce un
número negativo, debe mostrar un mensaje de error y volver a pedirlo (tantas veces como sea necesario).
Proceso Resuelto04
Repetir
Escribir "Dime un numero";
Leer x;
Si x < 0 Entonces
Escribir "No puede ser negativo";
FinSi
Hasta Que x >= 0
FinProceso
[Link] [Link]
11 - Ejercicios resueltos - [Link]
5.- Crear un algoritmo que pida al usuario un número y un símbolo, y dibuje un cuadrado usando ese
símbolo. El cuadrado tendrá el tamaño que ha indicado el usuario.
Proceso Resuelto05
Escribir "Dime el lado";
Leer lado;
FinProceso
Anterior Posterior
En los foros...
[Link] [Link]
12.- Ejercicios propuestos - [Link]
[Link]
Anterior Posterior
12 - Ejercicios propuestos
1.- Crear un algoritmo que pida al usuario 10 datos y muestre su promedio.
2.- Crear un algoritmo que calcule la raíz cuadrada del número que introduzca el usuario. Si se introduce un
número negativo, debe mostrar un mensaje de error y volver a pedirlo (tantas veces como sea necesario).
3.- Crear un algoritmo que pida al usuario 3 datos y diga cual es el mayor de los tres.
4.- Crear un algoritmo que pida al usuario 5 datos, luego le pida un valor con el que comparar, y finalmente
diga cuales de esos 5 datos son mayores que el valor de comparación.
5.- Crear un algoritmo que resuelva una ecuación de segundo grado del tipo ax2+bx+c=0. Las soluciones
son x1 = (- b + raiz (b 2 - 4ac)) / (2 a) , x2 = (- b - raiz (b 2 - 4ac)) / (2 a)
6.- Crear un algoritmo que genere un número al azar entre el 1 y el 1000, y dé al usuario la oportunidad de
acertarlo en 10 intentos. Tras cada intento se le dirá si ha acertado (y en ese caso terminará la ejecución), si
[Link] [Link]
12.- Ejercicios propuestos - [Link]
7.- Crear un algoritmo que pida al usuario una cantidad no definida de datos y calcule su suma. Debe estar
preparado para un máximo de 100 números, que pedirá de uno en uno. Cuando se introduzca un valor 0,
mostrará la suma de todos los anteriores y terminará la ejecución.
8.- Crear un algoritmo que pida al usuario que introduzca una frase, y diga cuántas veces contiene la letra A
(ya sea en mayúsculas o en minúsculas).
Anterior Posterior
En los foros...
23-03-2015 03:48 Tabla vista con Select Count sobre 2 tablas [SQL]
(Anteriores...)
[Link] [Link]
13.- Funciones de cadenas de texto - [Link]
[Link]
Anterior Posterior
Las dos más sencillas son las que permiten convertir un texto a mayúsculas y a minúsculas:
Proceso Cadenas01
Escribir "Dime tu nombre"
Leer nombre
[Link] [Link]
13.- Funciones de cadenas de texto - [Link]
Para resolver problemas reales de computación, hay otras dos funciones que dan mucho más juego: una
nos dicen la longitud de una cadena y otra permite extraer una subcadena, desde cierta posición inicial hasta
cierta posición final:
Proceso Cadenas02
Escribir "Dime tu nombre"
Leer texto
(Si dejamos las opciones de PseInt sin modificar, las posiciones dentro de la cadena se empezarán a contar
desde uno; ya sabemos, como vimos en el apartado sobre "Matrices", que en muchos otros lenguajes de
programación se empieza a contar desde cero).
También tenemos la posibilidad de "concatenar" dos cadenas, para formar una nueva cadena a partir de
esas dos seguidas. Así el quinto ejercicio resuelto se podría plantear también creando una Pero todavía no
está tan bien como debería: siempre estamos escribiendo 20 guiones, aunque el texto sea más largo o más
corto. En la mayoría de lenguajes de programación se puede indicar detalles adicionales ("parámetros") para
que se puedan utilizar desde dentro de esa subrutina. Por ejemplo, en nuestro caso podríamos indicarle qué
texto queremos escribir y qué longitud queremos que tenga la secuencia de guiones:
Proceso Resuelto05b
Escribir "Dime el lado"
Leer lado
[Link] [Link]
13.- Funciones de cadenas de texto - [Link]
FinProceso
Ejercicios propuestos:
1. Crea un programa que pida su nombre al usuario y lo escriba al revés (de principio a fin)
2. Crea un programa que pida su nombre al usuario y lo escriba alternando letras mayúsculas y
minúsculas (por ejemplo, "Nacho" se mostraría como "NaChO"
3. Crea un programa que pida su nombre al usuario y diga cuántas vocales contiene
Anterior Posterior
En los foros...
23-03-2015 03:48 Tabla vista con Select Count sobre 2 tablas [SQL]
[Link] [Link]
14.- Creación de funciones y procedimientos (subprocesos) - [Link]
[Link]
Anterior
PseInt permite definir "subrutinas" (o "funciones") dentro del pseudocódigo, desde la versión del 10 de
[Link] [Link]
14.- Creación de funciones y procedimientos (subprocesos) - [Link]
Vamos a empezar por crear un subproceso (o "subrutina", o "procedimiento") que escriba 20 guiones, que
podríamos utilizar para subrayar textos. Un programa completo que escribiera tres textos y los subrayara
podría ser:
Proceso SubProcesos01
Escribir " Primer ejemplo"
Para x <- 1 Hasta 20 Hacer
Escribir Sin Saltar "-"
FinPara
Escribir ""
Proceso SubProcesos02
Escribir " Primer ejemplo"
Subrayar
Subproceso Subrayar
Para x <- 1 Hasta 20 Hacer
Escribir Sin Saltar "-"
FinPara
Escribir ""
FinSubproceso
Mucho más legible. Pero todavía no está tan bien como debería: siempre estamos escribiendo 20 guiones,
[Link] [Link]
14.- Creación de funciones y procedimientos (subprocesos) - [Link]
aunque el texto sea más largo o más corto. En la mayoría de lenguajes de programación se puede indicar
detalles adicionales ("parámetros") para que se puedan utilizar desde dentro de esa subrutina. Por ejemplo,
en nuestro caso podríamos indicarle qué texto queremos escribir y qué longitud queremos que tenga la
secuencia de guiones:
Proceso SubProcesos03
EscribirSubrayado(" Primer ejemplo", 16)
EscribirSubrayado(" Segundo ejemplo", 17)
EscribirSubrayado(" Tercer ejemplo", 16)
FinProceso
Aunque todavía es un poco redundante: en general, querremos escribir tantos guiones como letras tenga el
texto, así que no será necesario indicar ese dato. Desde octubre de 2012, PseInt incluye ciertas funciones
predefinidas para manejo de cadenas de texto; una de ellas es "Longitud", que nos indica la cantidad de
letras que tiene un texto, de modo que nuestro programa se podría simplificar así:
Proceso SubProcesos04
EscribirSubrayado("Primer ejemplo")
EscribirSubrayado("Segundo ejemplo")
EscribirSubrayado("Tercer ejemplo")
FinProceso
Subproceso EscribirSubrayado(texto)
Escribir texto
Para x <- 1 Hasta Longitud(texto) Hacer
Escribir Sin Saltar "-"
FinPara
Escribir ""
FinSubproceso
También podemos crear funciones que realicen ciertas operaciones aritméticas y devuelvan un resultado,
como las funciones matemáticas que vimos en el tema 10. Se puede hacer con la misma palabra
"subproceso" que hemos empleado hasta ahora, pero muchos lenguajes de programación distinguen entre
un "procedimiento" o "subrutina", cuando se da una serie de pasos pero no se devuelve ningún valor, y una
[Link] [Link]
14.- Creación de funciones y procedimientos (subprocesos) - [Link]
"función", cuando sí se devuelve un resultado, así que usaremos esta última nomenclatura. Se parece
mucho a lo que hemos hecho hasta ahora, con la diferencia de que escogeremos un nombre para la
variable que guardará el resultado, así:
Proceso Funciones01
Escribir "El máximo de 5 y 12 es:"
Escribir Maximo(5,12);
Escribir "El máximo de 25 y 12 es:"
Escribir Maximo(25,12);
Finproceso
Este programa crea una función que calcula cuál es el mayor de los dos números que se le indican como
parámetro, y la usa dos veces, para mostrar el máximo de dos valores prefijados.
No sólo pdemos devolver valores numéricos; también podemos devolver cadenas (como las funciones que
vimos en el apartado 13) o "valores de verdad" (verdadero, falso). Por ejemplo, podemos crear una función
que diga si un número es primo o no (lo vamos a hacer de la forma más simple pero también de la menos
eficiente: aplicar la definición, probando a dividir entre todos los números que hay entre 1 y n; si hemos
encontrado dos divisores -o menos, para el número uno-, entonces el número es primo):
Proceso PrimosDel1Al30
Para n <- 1 hasta 30
si Primo(n) Entonces
Imprimir n
FinSi
[Link] [Link]
14.- Creación de funciones y procedimientos (subprocesos) - [Link]
FinPara
FinProceso
Hay más detalles que comentar sobre funciones, pero son un poco más avanzados, así que vamos a
descansar un poco aquí de nuevos conceptos y a practicar lo que hemos visto...
Ejercicios propuestos:
1. Crea un subproceso que reciba como parámetro un texto y lo escriba centrado en pantalla (suponiendo
una anchura de 80 columnas)
2. Crea una función que reciba un número entero y devuelva la cantidad de divisores (por ejemplo, para
el número 16, sus divisores son 1, 2, 4, 8, 16, luego la respuesta debería ser 5).
3. Crea un programa que pida dos número enteros al usuario y diga si alguno de ellos es múltiplo del
otro. Crea una función EsMultiplo que te ayude a que el proceso principal sea legible.
Anterior
En los foros...
23-03-2015 03:48 Tabla vista con Select Count sobre 2 tablas [SQL]
[Link] [Link]