Está en la página 1de 36

Hola a todos, hoy os explicare que son las variables y las constantes y el uso que podemos hacer de ellas

en un algoritmo. Cuando programemos, necesitamos un lugar donde guardar los datos con los que operamos, ya sean nmeros, texto, etc. Estos datos pueden variar o no algoritmo, segn esa variacin, pueden ser: durante el proceso de ejecucin del

Variables: es un objeto en el que su contenido puede variar durante el proceso de ejecucin del algoritmo, se identifican por un nombre y su tipo de valores que puede contener para realizar un uso correcto (lo veremos mas adelante). Por ejemplo: acumulacin se una suma, realizar una cuenta, etc. Constantes: es un objeto que permanece sin cambios durante todo el desarrollo del algoritmo. Por ejemplo: el numero Pi, el IVA, etc. Para distinguirlos de las variables, podemos ponerle el nombre en mayusculas, esto es simplemente un consejo. Vamos a ver un simple ejemplo donde manipularemos tres variables.

1 2 3 4 5

Inicio A<-5 B<-3 C<-A+B Fin

Si mostrramos el resultado de C seria 8, ya que sumamos el valor de A que vale 5 y el valor de B que vale 3. Una variable tambin puede guardar cadenas de texto (se indica encerrando el texto entre comillas), booleanos o un valor que el usuario teclee por teclado. Un momento, que es un booleano? Es un tipo de dato que solo puede almacenar dos valores, true o false, son muy usados para poner condiciones en estructuras de control, como interruptores, etc. De todas formas, lo veremos muy pronto. En las variables numricas, puede contener un numero real o entero. Algo muy recomendable a la hora de programar es llamar a las variables por un nombre significativo sobre lo que contenga para mejorar su legibilidad. Por ejemplo, si queremos almacenar un da del mes, esa variable se puede llamar dia o si queremos almacenar el total de un producto, podemos usar precio_final. Es recomendable no dejar espacios en blanco e inicializar las variables que no tiene que ser introducidas por el usuario, tambin ser inicializada en 0. Por ltimo, vamos a hablar de unas variables especiales que se usan para ciertas funciones, el nombre de las variables pueden ser el que nosotros queramos como ya hemos dicho antes, lo especial de estas variables es la expresin (una suma, varias operaciones, etc.) que utiliza. Estasvariables son: Contadores: se utilizan para contar cualquier suceso que se necesite dentro de un programa. Se realiza en dos operaciones: o Inicializacin: se inicia en 0 si realiza una cuenta natural o desde un valor inicial, si queremos realizar otro tipo de cuenta. o Incremento: aumenta el valor de la variable en 1 si es una cuenta natural o con otro valor, si se desea realizar otro tipo de cuenta. La expresin que se utiliza para la variable es:

contador <- contador + constante Recuerda que contador, es el nombre que le hemos dado a la variable que puede ser el que queramos, la constante puede 1 o cualquier numero que queramos. Acumuladores: se utilizan para acumular resultados parciales de clculos con una misma operacin. Se realiza en dos operaciones: o Inicializacin: debe ser inicializado con un valor neutro segn el tipo de operacin que realicemos, si es una suma se inicializar en 0 y si es un producto se inicializar en 1. o Acumulacin: realiza la acumulacin con estas expresiones segn el tipo de operacin: acumulador <- acumulador+variable o acumulador <- acumulador*variable Interruptores: se utilizan para transmitir informacin de un punto a otro dentro del programa. Se inicializan en un valor y en donde nosotros veamos que sea conveniente cambiamos el valor al contrario, esto es de mucha utilidad cuando veamos los bucles y las estructuras de control. Solo pueden tomar dos valores: o Numrico: puede ser un 0 o 1. o Lgico: puede ser true o false. OPERADORES Hola a todos, hoy os explicare los operadores que podemos utilizar para realizar operaciones con variables de todo tipo. Los tipos de operadores son: Aritmticos: son anlogas a las frmulas matemticas, se usan para variables numricas. Estos son los operadores usados:
Operadores + * / DIV MOD ^ Significado Suma Resta Multiplicacion Division Division entera Modulo (resto de la division entera) Potencia

DIV es como si truncramos el resultado de una divisin. Por ejemplo, 5 DIV 2 seria 2 no 25. MOD es el resto del DIV. Por ejemplo, 5 MOD 2 es igual a 1. Un consejo para recordar la posicin es simplemente imaginar una divisin y que podemos coger el cociente o el resto, segn el operador usado.

NOTA: Si usas PSeInt, DIV no lo reconoce, si quieres una divisin entera escribe trunc(operador1/operador2). Si tenemos dos variables que contengan una cadena de texto cada una y las sumamos, se concatenaran formando una nueva cadena. Lgicas: solo pueden dar dos valores true o false. Pueden ser: o Relacionales: pueden comparar dos valores, mediante un smbolo. Estos son los operadores usados:
Operador > < = >= <= <> Significado Mayor que Menor que Igual que Mayor o igual que Menor o igual que Distinto que

Veamos uno ejemplo en los que se utilicen estos operadores:

1 2 3 4 5 6 7 8 9 10

Inicio A<-5 B<-3 C<-A>B D<-A<B E<-A>=B F<-A<=B G<-A=B H<-A<>B Fin

Vemos que en este ejemplo, tenemos dos variables A y B con sus respectivos valores, que comparamos con distintos operadores, en todos ellos el resultado sera un true o false. C sera true porque 5 es mayor que 3 y D sera false porque 5 no es menor que 3, si tuvieran el mismo valor y se usa el operador < o > el resultado seria false. E sera true porque es mayor o igual que 3 y F sera false porque 5 no es menor o igual que 3, si tuvieran el mismo valor y se usa el operador <= o >= el resultado seria true. G seria false porque 5 no es igual que 3 y H seria true porque 5 es distinto que 3, si fueran iguales y se usa el operador <> seria false. o Lgicos: combina condiciones, segn el tipo de operador se deber cumplir una u otra funcin. Estos son los operadores usados:
Operador AND OR NOT Significado Almacenara True, solo si todos las condiciones son verdaderas Almacenara True, solo si alguna de las condiciones es verdadera Cambia el valor al contrario

Lo mejor para ver como funcionan estos operadores es con un ejemplo:

1 2 3 4

Inicio A<-5 B<-3 C<-6 D<-1

5 6 7 8 9

E<-C>A AND D<B F<-C>A OR D>B G<-NOT F Fin

E sera true porque 6 es mayor que 5 (true) y porque 1 es menor que 3 (true). Si alguna de ella fuera falso, el resultado seria false. F sera true porque 6 es mayor que 5 (true) y porque 1 no es mayor que 3 (false). Aunque sea alguna falsa sigue siendo true, si las dos fueran falsas, entonces su resultado seria true. G sera false porque invierte el valor que hemos obtenido de F (true). Tambin podemos poner una condicin delante de NOT si queremos invertir su resultado. NOTA: Si usas PSeInt, si quieres usar AND debers escribir Y en su lugar, si quieres usarOR debers escribir O y si quieres usar NOT debers escribir NO (condicin o variable). Espero que os sea de ayuda.

Asignacion en Pseudocodigo
Hola a todos, hoy os explicare una parte importante la asignacin donde veremos como se comportan las variables cuando asignamos valores en ellas. La asignacin es la operacin que usamos para dar un valor a una variable. Debemos tener en cuenta el tipo de variable cuando almacenamos un valor en una variable, en otros lenguajes son mas estrictos con este tema, pero en pseudocdigo solo debemos saber que no podemos mezclar distintos tipos de valores. Por ejemplo, si tenemos una variable con un valor numrico y queremos volver asignarle un valor de otro tipo, una cadena de texto por ejemplo, nos dara un error porque no coincidiran los tipos. En cambio si ese valor fuera un valor numrico no dara ningn error. Otra aspecto a tener en cuenta, es que la asignacion es una operacion destructiva, es decir, que si almacenamos un valor en la misma variable el valor que tenia antes desaparece. Veamos un ejemplo:

1 2 3 4 5

Inicio A<-5+1 A<-2-1 A<-A+7 Fin

Vayamos por pasos, la variable A al principio vale 6, despus, A valdr 1 y por ultimo valdr 8. Como vemos al final prevalece el ultimo resultado, el valor 6 y 1 desapareceran, siempre y cuando se almacene en la misma variable. Por ltimo, debemos saber que en una operacin de asignacin debemos empezar a leer en la parte de la derecha, que puede contener un valor o una expresin (una suma, varias operaciones, etc.). Es decir, que primero tenemos que ver el valor o expresin y ese valor final sera el se asigne a la variable. Variable<-valor o expresin Debis saber, que cuando tenemos una expresin, como por ejemplo, 5+10/2, en pseudocdigo no se sigue la prioridad de la operacin es decir, que se suma 5+10 y se divide entre 2. Si queremos que una operacin tenga mas prioridad debemos ponerla entre parntesis, por ejemplo, 5+(10/2), realizara la operacin del parntesis antes de realizar la suma.

Para probar lo que hemos aprendido, os invito a realizar este ejercicio, pensarlo y mirar la solucin para ver si coincide.

1 2 3 4 5 6 7 8 9

Inicio A <B <C <A <B <A <C <Fin

5 7 2 A + B + C C / 2 A / B + A ^ C A+(B-C)-B

a) Qu valor contiene A despus de la quinta linea? b) Qu valor contiene B despus de la sexta linea? c) Qu valor contiene A despus de la septima linea? d) Qu valor contiene C despus de la octava linea?

Spoiler

SeleccionarEsconder

a) A tendr un valor de 14, ya que es el resultado de 5+7+2. Despus de esta operacin, el 5 que tenia desaparece. b) B tendr un valor de 1, ya el resultado de 2/2 es 1. Despus de esta operacin, el 7 que tenia desaparece. c) A tendr un valor de 210, ya que el resultado de 14/1+142. d) C tendr un valor de 208, ya que primero se realiza la resta que hay entre parntesis que el resultado es -1 y la expresin se queda de esta forma: 210-1-1

Operacion de entrada y salida en Pseudocodigo


Hola a todos, hoy os explicare como utilizar las operaciones de entrada y salida enpseudocdigo, para poder mostrar o introducir informacin. Para pedir al usuario que introduzca un valor por teclado, usaremos la operacin leer. Despus de esta operacin debe ir una variable donde se guarde lo que el usuario introduzca. Por ejemplo: Leer A Si usa PSeInt, si usas la operacin leer y ejecutas, te dejaras que escribas un valor. Para mostrar por pantalla un valor, usaremos la operacin escribir. Despus de esta operacin si ponemos una variable, nos mostrara el valor que contenga la variable. Escribir A Tambin se puede mostrar mensajes, simplemente despus de la operacin escribir escribimos el texto que queremos mostrar entre comillas, esto ayuda mucho al usuario para saber que tipo dato debe introducir. Por ejemplo

1 2 3 4

Inicio Escribir "Introduce un da del mes" Leer dia Fin

Por ltimo, tambin podemos mostrar un mensaje y el valor de una variable, lo unico que debemos hacer es igual que antes pero donde queremos que se vea el valor de la variable, que no este entre comillas. Por ejemplo:

1 2

Inicio Escribir "Introduce un dia del mes" Leer dia

3 4 5

Escribir "Has introducido el da " dia ", gracias" Fin

Si te das cuenta, la variable dia no esta entre la comillas dobles. Si quieres que te salga separado antes de cerrar comillas deja un espacio en blanco, pero esto ya es una cuestin de esttica. Espero que os sea de ayuda.

Funciones internas en Pseudocodigo


Hola a todos, hoy os explicare las funciones internas que podemos ejecutar en pseudocdigo, para realizar ciertas operaciones. Para utilizar estas funciones, debemos de escribir la funcin y entre parntesis, deberemos introducir los parmetros que queramos como un numero, una cadena o incluso una variable. Debemos de tener en cuenta lo que nos pide, por ejemplo, si queremos ponemos la funcin interna de la raz cuadrada, deberemos darle un numero positivo para que se pueda realizar y no una cadena de texto o un numero negativo. Las funciones son:
Funcion RC(X) o RAIZ(X) ABS(X) LN(X) EXP(X) SEN(X) COS(X) TAN(X) ASEN(X) ACOS(X) ATAN(X) TRUNC(X) REDOND(X) AZAR (X) LONGITUD(S) MAYUSCULAS(S) MINUSCULAS(S) SUBCADENA(S,X,Y) CONCATENAR(S1,S2) Significado Raz cuadrada de X Valor absoluto de X Logaritmo natural de X Funcion exponencial de X Seno de X Coseno de X Tangente de X Arcoseno de X Arcocoseno de X Arcotangente de X Parte entera de X Entero mas cercano a X Entero aleatorio entre 0 y 1 Cantidad de caracteres de la cadena S Retorna una copia de la cadena S con todos sus caracteres en maysculas Retorna una copia de la cadena S con todos sus caracteres en minsculas Retorna una nueva cadena que consiste en la parte de la cadena S que va desde la posicin X hasta la posicin Y. Empieza desde 0 y no desde 1. Retorna una nueva cadena resulta de unir las cadenas S1 y S2.

Recuerda que debes almacenar el resultado en una variable. Tambin puedes usarlo en una condicin. Espero que os sea de ayuda.

Instruccin de control condicional en Pseudocdigo


Hola a todos, hoy os explicare las instrucciones de control condicionales, que son, como utilizarlas y algunos ejemplos. Una instruccin de control condicional es un bloque de cdigo que se ejecuta si cumple una condicin, que nosotros pongamos. Esta condicin es una expresin lgica que debe dar como resultado true o false, para ello es habitual usar los operadores relacionales y lgicos. Las dos mas utilizadas son: Condicional simple: si la condicin es verdadera se ejecuta el bloque de cdigo que contenga y ya esta. Su sintaxis es: SI (condicin) Entonces Instrucciones Fin-Si Por ejemplo:

1 2 3 4 5 6

Inicio Leer numero1 Si (numero1>0) Entonces Escribir numero1 " es mayor que 0" FinSi Fin

Condicional doble: si la condicin es verdadera se ejecuta el bloque de cdigo que contenga y sino se cumple pues ejecuta otro bloque de codigo. Ejecuta uno o otro. Su sintaxis es: SI (condicin) Entonces Instrucciones Sino Instrucciones Fin-Si Por ejemplo:

1 2 3 4 5

Inicio Leer numero1 Si (numero1>0) Entonces Escribir numero1 " es mayor que 0" Sino

6 7 8
Fin

Escribir numero1 " es menor que 0" FinSi

Algo que se suele hacer es anidar estructuras Si, se puede usar para especificar aun mas una condicin Debemos recordar que debemos cerrar las estructuras Si que abramos, es recomendable tabular las instrucciones para mayor legibilidad. Veamos un ejemplo:

1
Inicio

2 3 4 5 6 7 8 9 10
Fin

Si (condicion) Entonces Si (condicion) Entonces Instrucciones Sino Intrucciones FinSi Sino Instrucciones FinSi

11
Tambin existe otra instruccin de control condicional, llamado segun sea, que segn un valor (de una variable, una constante, etc.) o expresin hace una operacin u otra. No puede ser una condicin. Su sintaxis es: Segun (valor o expresion) hacer valor1: Instrucciones valor2: Instrucciones . FinSegun Por ejemplo:

1 2 3

Inicio Leer mes Segun mes Hacer

4 5 6 7

1: escribir "Enero" 2: escribir "Febrero" 3:

8
escribir "Marzo"

9 10 11 12 13 14 15 16

4: escribir "Abril" 5: escribir "Mayo" 6: escribir "Junio" 7: escribir "Julio" 8:

17
escribir "Agosto"

18 19 20 21 22 23 24 25 26 27 28 29

9: escribir "Septiembre" 10: escribir "Octubre" 11: escribir "Noviembre" 12: escribir "Diciembre" FinSegun Fin

Espero que os sea de ayuda.

Instrucciones repetitivas o bucles en pseudocodigo


Hola a todos, hoy os explicare las instrucciones repetitivas o bucles , que son, su sintaxis y como debemos utilizarlos correctamente. Un bucle permite repetir una o varias acciones un nmero determinado de veces. El nmero de veces se indica mediante una condicin, si la condicin es verdadera ejecuta el bloque de cdigo que contenga, cuando la condicin sea falsa saldr del bucle. Las dos estructuras que se usan son:

Mientras: Se evala la condicin antes de iniciar el bucle, y se repiten sucesivamente las instrucciones mientras siga siendo cierta. Es importante que la variable que participe en la condicin se modifique dentro del bucle, ya que sino sera un bucle infinito del que no saldr. Susintaxis es: Mientras (condicin)
Instrucciones

FinMientras
Veamos un ejemplo:

1 2 3 4 5 6 7

Inicio contador<-0 Mientras (contador<3) escribir contador contador<-contador+1 FinMientras Fin

Como veis usamos una variable contador que se ira incrementando dentro del bucle, cuando este contador llegue a 3 saldr del bucle. Imprime en pantalla el 0, 1 y 2, el 3 no lo imprime porque 3<3 es falso, con lo que hace que sale del bucle. Hay que tener muy claro la condicin de salida. Desde-Hasta: se repiten las instrucciones desde una variable de control (Vc) a la que le damos un valor inicial (Vi) hasta un valor final (Vf) que le indiquemos, incrementndose en un valor. Se introduce en el bucle cuando la Vc es menor que la Vf. Para que lo recuerdes mejor, piensa en esta expresin, Vc<=Vf, incluyendo el valor final. Si el incremento es negativo, la condicin cambia as, Vc>=Vf . Su sintaxis es: Desde Vc<-Vi hasta Vf In constante Instrucciones

FinDesde
Si usas PSeInt, tendrs que usar esta sintaxis:

Para Vc<-Vi hasta Vf con paso constante Hacer


Instrucciones

FinPara
Veamos un ejemplo, usando el desde-hasta, si lo queremos usar en PseInt solo hay que cambiar algunas palabras:

1 2 3 4 5

Inicio Desde contador<-1 Hasta 5 Con Paso 1 Hacer escribir contador FinDesde Fin

La diferencia con la estructura mientras, es que en el mientras se necesita inicializar la variable fuera del bucle y aumentarla dentro del bucle. Y en la estructura desde, la inicializacin y el incremento se hace en una linea. Entonces, cual es mejor de los dos? La respuesta es segn el caso, la estructura desde es mejor usarla cuando sabemos el rango, es decir, el inicio y fin. Por ejemplo, la suma de los nmeros entre el 1 hasta el 20. La estructura mientras es mejor usarlo en casos donde no conozcamos el final. Por ejemplo, la suma de los nmeros que introduzca el usuario, sabemos cuando empieza pero no cuando acaba. Otra diferencia a tener en cuenta, es la condicin en la estructura mientras para que entre la condicin debe ser verdadera para que entre en el bucle y falso para salir y en la estructura desdesiempre va a incluir <= 0 >=, recordar que para que se salga se debe cumplir Vc<=Vf (siendo el incremento positivo). Espero que os sea de ayuda.

Seguimiento en pseudocodigo
Hola a todos, hoy os explicare como realizar una tcnica llamada seguimiento en pseudocdigo. El seguimiento es una tcnica en la que comprobamos que el programa hace lo que queremos que haga, se puede hacer en papel o en el PSeInt. En papel, lo nico que se hace es comprobar el valor de la variables en cada linea y realizar la operaciones que aparezcan como leer, escribir, etc.

1 2 3 4 5 6 7 8 9

Inicio contador<-1 suma<-0 Mientras contador<=2 Hacer suma<-suma+contador contador<-contador+1 FinMientras Escribir suma Fin

Esto es lo que iremos haciendo durante el seguimiento: Anotamos todas las variables que hay, en este caso, solo estn las variables contador y suma, contador esta inicializado en 1 y suma en 0. Tenemos una estructura mientas con una condicin contador<=2, ahora contador vale 1, 1<=2 es verdadero, por lo que entra en el bucle. Ahora realizamos la siguiente linea, suma<-suma+contador, es decir, suma<0+1, es igual a 1.Anotamos en suma 1. En la siguiente linea, contador<-contador+1, es decir, contador<1+1, contador ahora vale 2, lo reemplazamos por el valor que tenia.

Volvemos al inicio del mientras, ahora contador vale 2, la condicin se sigue cumpliendo, 2<=2. Se ejecuta las siguientes instrucciones como antes, pero con valores diferentes. La variablesuma valdr 3 y contador 3. Ahora en el mientras no se cumple la condicin, ya que 3<=2 no es verdadero. Seguimos las instrucciones despus del bucle, realizamos la linea Escribir suma, como suma vale 3, lo escribiremos en pantalla. Lo mas aconsejable es comprobar los valores limites (en este caso 2) para ver que todo esta bien. Si pedimos datos por teclado al usuario, debemos probar con varios nmeros para ver que cumple lo que necesitamos. PSeInt, debemos pinchar en ejecucin paso a paso, despus en comenzar, aparecer la ventana de ejecucin e ira ejecutando linea a linea. Si queremos ver el valor de una variable en un momento concreto, pausamos la ejecucin y pinchamos en evaluar y ponemos el nombre de la variable que queremos ver. Tambin podemos ejecutarlo linea a linea y modificar la velocidad de ejecucin. En

Espero que os sea de ayuda.

Declaracion de variables en pseudocodigo


Hola a todos, hoy os explicare la declaracin de variables en pseudocodigo, como se debe hacer correctamente. Declarar variables significa indicar el tipo de dato que almacenara las variables que participan en el programa. Hasta ahora, no hemos declarado las variables, a partir de ahora acostumbraos a hacerlo si lo hacis en papel, es bueno acostumbrarse para que cuando empecemos con otros

lenguajes no nos cueste declarar las variables. En caso de hacerlo con PSeInt, no es necesario hacerlo, aunque se puede hacer con define. Para declarar variables, lo nico que debemos hacer es indicar el nombre de la variable y su tipo (numrico, lgico y cadena), antes del inicio del programa, separados por comas. Si veis otra forma de declarar variables, tambin es valida. Es normal si al principio, no sabemos todas las variables que pueden aparecer, con el tiempo lo identificaremos de una forma mas rpida y sencilla. Lo importante de esto es reconocer que tipo de datos queremos que almacene una variable en concreto. Por ejemplo:

1 2 3 4 5 6 7 8 9

Var contador: numrico , suma: nmerico Inicio contador<-1; suma<-0; Mientras contador<=5 Hacer suma<-suma+contador; contador<-contador+1; FinMientras Escribir suma Fin

10
Si tenemos muchas variables del mismo tipo, podemos agupar las variables separandolas con comas. Por ejemplo:

1 2 3 4 5 6 7 8 9

Var contador, suma: nmerico Inicio contador<-1; suma<-0; Mientras contador<=5 Hacer suma<-suma+contador; contador<-contador+1; FinMientras Escribir suma Fin

10
Espero que os sea de ayuda.

Anlisis de un problema a resolver en pseudocdigo


Hola a todos, hoy os explicare como debemos analizar un problema de pseudocdigo. Hasta ahora hemos visto como debemos construir el algoritmo en pseudocodigo, pero al tener un problema lo primero que debemos hacer es analizar el problema para saber como debemos construir el algoritmo. Os recomiendo que este anlisis lo hagis en papel, para que os sea mas sencilla y tengis mas libertad a la hora de escribir. Para empezar a analizar el problema, debemos leer atentamente el problema y extraer lo mas importante. Para extraer lo mas importante podemos preguntarnos a nosotros mismos, por ejemplo: Debe el usuario introducir datos? Hay algn tipo de repeticin dentro del algoritmo? Hay alguna estructura condicional? Que condicin seria la mas adecuada, si tenemos un bucle o una estructura Si? Que variables necesito en el algoritmo? Como debera iniciar las variables? Que resultado debo imprimir en pantalla? (Si es que hace falta) Veamos algunos ejemplo practico, para ver como se analiza. 1 ) Un vendedor recibe un sueldo base mas un 10 % extra por comisin de sus ventas, el vendedor desea saber cuanto dinero obtendr por concepto de comisiones por las tres ventas que ha realiza este mes, y el total que recibir. Empecemos analizando este enunciado, deberemos de preguntarnos las preguntas antes formuladas: Debe el usuario introducir datos? El usuario solo deber introducir el valor de sus ventas Hay algn tipo de repeticin dentro del algoritmo? En este caso, se podra hacer con o sin repeticin pero siempre que se pueda es bueno hacer un bucle. Como en este caso sabemos el rango, podemos usar una estructura desde-hasta, aunque tambin se puede hacer con un mientas. Esto ya es decisin nuestra. Hay alguna estructura condicional? En este ejercicio no tenemos ninguna condicin ya que nos pide que cumpla alguna condicin concreta. Que condicin seria la mas adecuada, si tenemos un bucle o una estructura Si? Como obtenemos del enunciado, nos pide 3 ventas, as que una buena condicin seria que hasta una variable del tipo contador sea mayor que 3 (incluyendo el 3) no nos pida mas ventas. Que variables necesito en el algoritmo? Necesitaremos una variable que almacene el valor de la venta, una variable contador para contar el numero de ventas, el total, el salario base y la comisin (estas dos ultimas pueden ser constantes).

Como debera iniciar las variables? Las constantes se debern asignar los valores que necesitemos, el total se inicializara a 0 y el contador a 1. Que resultado debo imprimir en pantalla? (Si es que hace falta) Deberemos imprimir el total que recibir el vendedor. En pseudocdigo seria asi: SeleccionarMostrar

Spoiler

2 ) Escriba un algoritmo que determine cuales son los mltiplos de 5 comprendidos entre 1 y N. Haremos lo mismo que antes, analizaremos el enunciado con las preguntas: Debe el usuario introducir datos? El nico dato que debe introducir el usuario es el limite. Normalmente, cuando se dice N es un dato que debe introducir el usuario. Hay algn tipo de repeticin dentro del algoritmo? Si tenemos una repeticin, tendremos que ver si cada numero es o no mltiplo de 5. Hay podemos usar una estructura desde-hasta, ya que sabemos el rango (aunque sea un dato introducido por el usuario). Hay alguna estructura condicional? En este ejercicio si tenemos una estructura condicional, ya que imprimiremos solo aquellos nmeros que sean mltiplos de 5. Que condicin seria la mas adecuada, si tenemos un bucle o una estructura Si? En el caso del bucle, la condicin para salir deber ser cuando el numero sea mayor que el limite. En el caso de la estructura condicional, la condicin para que imprima el numero es que sea mltiplo de 5. Que variables necesito en el algoritmo? Simplemente necesitamos almacenar el limite y contar los nmeros entre 1 y el limite. Como debera iniciar las variables? El variable contador se inicializara en uno. Que resultado debo imprimir en pantalla? (Si es que hace falta) Solo aquellos nmeros que sean mltiplos de 5. En pseudocdigo seria as: SeleccionarEsconder

Spoiler 1 2 3 4 5 6 7 8
Inicio Leer N Desde num<-1 Hasta N In 1 si (num MOD 5=0) Entonces Escribir num FinSi FinDesde Fin

EJERCISIOS

1) Dadas dos variables numricas A y B, que el usuario debe teclear, se pide realizar un algoritmo que intercambie los valores de ambas variables y muestre cuanto valen al final las dos variables (recuerda la asignacin). Spoiler
Papel: SeleccionarEsconder

1 2 3 4 5 6 7 8 9 10 11 1 2 3 4 5 6 7 8 9 10

Var A, B, C: Inicio Escribir Leer A Escribir Leer B C<-A A<-B B<-C Escribir Fin

numerica "Introduce el valor de A" "Introduce el valor de B"

"A vale " A " y B vale " B

PSeInt: Proceso ejercicio_1 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 FinProceso

2) Algoritmo que lea dos nmeros, calculando y escribiendo el valor de su suma, resta, producto y divisin. Spoiler
Papel: SeleccionarEsconder

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Var numero1, numero2, resultado: numerica Inicio Escribir "Introduce el primer numero" Leer numero1 Escribir "Introduce el segundo numero" Leer numero2 resultado<-numero1+numero2 Escribir resultado resultado<-numero1-numero2 Escribir resultado resultado<-numero1*numero2 Escribir resultado resultado<-numero1/numero2 Escribir resultado Fin

PSeInt: 1 Proceso ejercicio_2 Escribir "Introduce el primer numero" 2

3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Leer numero1 Escribir "Introduce el segundo numero" Leer numero2 //inicializamos la variable resultado a 0 (recomendable) resultado<-0 //sumamos los numeros y escribimos su resultado resultado<-numero1+numero2 Escribir resultado //restamos los numeros y escribimos su resultado resultado<-numero1-numero2 Escribir resultado //multiplicamos los numeros y escribimos su resultado resultado<-numero1*numero2 Escribir resultado //dividimos los numeros y escribimos su resultado resultado<-numero1/numero2 Escribir resultado FinProceso

3) Algoritmo que lea dos nmeros y nos diga cual de ellos es mayor o bien si son iguales (recuerda usar la estructura condicional SI) Spoiler
Papel: SeleccionarEsconder

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Var numero1, numero2: numerica Inicio Escribir "Introduce el primer numero" Leer numero1 Escribir "Introduce el segundo numero" Leer numero2 Si (numero1>=numero2) Entonces Si (numero1=numero2) Entonces escribir "los numeros " numero1 " " numero2 " son iguales" Sino Escribir numero1 " es el mayor de los dos" FinSi Sino Escribir numero2 " es el mayor de los dos" FinSi Fin

PSeInt: Proceso ejercicio_3 1 Escribir "Introduce el primer numero" 2 Leer numero1 Escribir "Introduce el segundo numero" 3 Leer numero2 4 //comparamos los dos numeros, 5 //si el primero es mayor o igual que el segundo entra 6 Si (numero1>=numero2) Entonces 7 //Si el numero1 y numero2 son iguales entra y escribe que son iguales 8 //Sino lo son escribe que el numero1 es el mayor 9 Si (numero1=numero2) Entonces 10 escribir "los numeros " numero1 " " numero2 " son

11 12 13 14 15 16 17 18 19 20

iguales" Sino Escribir numero1 " es el mayor de los dos" FinSi //Si el primer Si es falso, escribe que el numero2 es mayor Sino Escribir numero2 " es el mayor de los dos" FinSi FinProceso

4) Algoritmo que lea tres nmeros distintos y nos diga cual de ellos es el mayor (recuerda usar la estructura condicional Si y los operadores lgicos). Spoiler
SeleccionarEsconder NOTA: De esta forma que esta hecha, aunque dos de los nmeros sean iguales, siempre dir el mayor. Papel:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Var numero1, numero2, numero3: numerica Inicio Escribir "Introduce el primer numero" Leer numero1 Escribir "Introduce el segundo numero" Leer numero2 Escribir "Introduce el tercer numero" Leer numero3 Si (numero1>numero2 AND numero1>numero3) Entonces Escribir "el numero " numero1 " es el mayor" Sino Si (numero2>numero3) Entonces Escribir "El numero " numero2 " es el mayor" Sino Escribir "El numero " numero3 " es el mayor" FinSi FinSi Fin

PSeInt: Proceso ejercicio_4 1 Escribir "Introduce el primer numero" 2 Leer numero1 3 Escribir "Introduce el segundo numero" Leer numero2 4 Escribir "Introduce el tercer numero" 5 Leer numero3 6 //comparamos el numero1 con el numero2 y numero3 7 //Si las dos condiciones son verdaderas el numero1 es el mayor Si (numero1>numero2 Y numero1>numero3) Entonces 8 Escribir "el numero " numero1 " es el mayor" 9 //si el numero1 no es el mayor, 10 //comparamos el numero2 con el numero3 11 Sino 12 Si (numero2>numero3) Entonces Escribir "El numero " numero2 " es el mayor" 13 Sino 14 Escribir "El numero " numero3 " es el mayor" 15 FinSi

16 17 18 19 20 21

FinSi FinProceso

5) Disear un algoritmo que pida por teclado tres nmeros; si el primero es negativo, debe imprimir el producto de los tres y si no lo es, imprimir la suma. Spoiler
Papel: SeleccionarEsconder

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Var numero1, numero2, numero3, resultado: numerica Inicio Escribir "Introduce el primer numero" Leer numero1 Escribir "Introduce el segundo numero" Leer numero2 Escribir "Introduce el tercer numero" Leer numero3 Si (numero1<0) Entonces resultado<-numero1*numero2*numero3 Sino resultado<-numero1+numero2+numero3 FinSi Escribir resultado Fin

PSeInt: Proceso ejercicio_5 Escribir "Introduce el primer numero" Leer numero1 Escribir "Introduce el segundo numero" Leer numero2 Escribir "Introduce el tercer numero" Leer numero3 //si el numero1 es menor que 0, //multiplicara los numero y sino los sumara Si (numero1<0) Entonces resultado<-numero1*numero2*numero3 Sino resultado<-numero1+numero2+numero3 FinSi Escribir resultado FinProceso

6) Realizar un algoritmo que lea un nmero por teclado. En caso de que ese nmero sea 0 o menor que 0, se saldr del programa imprimiendo antes un mensaje de error. Si es mayor que 0, se deber calcular su cuadrado y la raiz cuadrada del mismo, visualizando el numero que ha tecleado el usuario y su resultado (Del numero X, su potencia es X y su raiz X ). Para calcular la raiz cuadrada se puede usar la funcin interna RAIZ(X) o con una potencia de 0,5.

Spoiler
Papel:

SeleccionarEsconder

1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Var numero, potencia, raiz: numerica Inicio Escribir "Introduce un numero" Leer numero Si (numero>0) Entonces potencia<-numero^2 raiz_cuadrada<-numero^0,5 Escribir "Su potencia es " potencia " Escribir "Su raiz es " raiz_cuadrada Sino Escribir "Error, introduce un numero mayor que 0" FinSi Fin

PSeInt: Proceso ejercicio_6 Escribir "Introduce un numero" Leer numero //si el numero es mayor que 0, calcula la potencia y la raiz //sino muestra un mensaje de error y sale del programa Si (numero>0) Entonces potencia<-numero^2 raiz_cuadrada<-RAIZ(numero) Escribir "Su potencia es " potencia Escribir "Su raiz es " raiz_cuadrada Sino Escribir "Error, introduce un numero mayor que 0" FinSi FinProceso

7) Un colegio desea saber qu porcentaje de nios y qu porcentaje de nias hay en el curso actual. Disear un algoritmo para este propsito (recuerda que para calcular el porcentaje puedes hacer una regla de 3). Spoiler
Papel: SeleccionarEsconder

1 2 3 4 5 6 7 8 9 10 11

Var numero_nios, numero_nias, resultado: numerica Inicio Escribir "Introduce el numero de nios" Leer numero_nios Escribir "Introduce el numero de nias" Leer numero_nias porcentaje_nios<-numero_nios*100/(numero_nios+numero_nias) porcentaje_nias<-100-porcentaje_nios Escribir "Hay un " porcentaje_nios " % de nios Escribir "Hay un " porcentaje_nias " % de nias Fin

PSeInt: 1 Proceso Ejercicio_7 Escribir "Introduce el numero de nios" 2

3 4 5 6 7 8 9 10 11

Leer numero_nios Escribir "Introduce el numero de nias" Leer numero_nias //calculamos el porcentaje porcentaje_nios<-numero_nios*100/(numero_nios+numero_nias) porcentaje_nias<-100-porcentaje_nios Escribir "Hay un " porcentaje_nios " % de nios Escribir "Hay un " porcentaje_nias " % de nias" FinProceso

8) Una tienda ofrece un descuento del 15% sobre el total de la compra durante el mes de octubre. Dado un mes y un importe, calcular cul es la cantidad que se debe cobrar al cliente. Spoiler
Papel: SeleccionarEsconder

1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 5 6 7 8 9 10 11 12 13

Var mes: cadena importe, total:numerico Inicio Escribir "escribe el importe de la compra" Leer importe Escribir "Introduce el mes" Leer mes Si (mes="octubre") Entonces total<-importe*0.85 Sino total<-importe FinSi Escribir total Fin

PSeInt: Proceso ejercicio_8 Escribir "escribe el importe de la compra" Leer importe Escribir "Introduce el mes" Leer mes //Si el mes es octubre, se aplicara el descuento Si (mes="octubre") Entonces total<-importe*0.85 Sino total<-importe FinSi Escribir total FinProceso

9) Realizar un algoritmo que dado un nmero entero, visualice en pantalla si es par o impar. En el caso de ser 0, debe visualizar el nmero no es par ni impar (para que un numero sea par, se debe dividir entre dos y que su resto sea 0) Spoiler
Papel: SeleccionarEsconder

Var numero: numerica Inicio

2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Escribir "Introduce un numero" Leer numero Si (numero=0) Entonces Escribir "El " numero " no es par ni impar" Sino Si (numero MOD 2=0) Entonces Escribir "El " numero " es par" Sino Escribir "El " numero " no es par" FinSi FinSi Fin

PSeInt: Proceso ejercicio_9 Escribir "Introduce un numero" Leer numero Si (numero=0) Entonces Escribir "El " numero " no es par ni impar" Sino //comprobamos si el numero es par Si (numero MOD 2=0) Entonces Escribir "El " numero " es par" Sino Escribir "El " numero " no es par" FinSi FinSi FinProceso

10) Modificar el algoritmo anterior, de forma que si se teclea un cero, se vuelva a pedir el nmero por teclado (as hasta que se teclee un nmero mayor que cero) (recuerda la estructura mientras). Spoiler
Papel: SeleccionarEsconder

1 2 3 4 5 6 7 8 9 10 11 12 13 14

Var numero: numerica Inicio Escribir "Introduce un numero" Leer numero Mientras (numero<=0) hacer Escribir "escribe un numero mayor que 0" Leer numero FinMientras Si (numero MOD 2=0) Entonces Escribir "El " numero " es par" Sino Escribir "El " numero " no es par" FinSi Fin

PSeInt: Proceso ejercicio_10 1 Escribir "Introduce un numero"

2 3 4 5 6 7 8 9 10 11 12 13 14

Leer numero //Hasta que no se introduzca un numero mayor que 0 no saldra del bucle Mientras (numero<=0) hacer Escribir "escribe un numero mayor que 0" Leer numero FinMientras Si (numero MOD 2=0) Entonces Escribir "El " numero " es par" Sino Escribir "El " numero " no es par" FinSi FinProceso

11) Algoritmo que nos diga si una persona puede acceder a cursar un ciclo formativo de grado superior o no. Para acceder a un grado superior, si se tiene un titulo de bachiller, en caso de no tenerlo, se puede acceder si hemos superado una prueba de acceso. Spoiler
Papel: SeleccionarEsconder

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Var bachiller, prueba_acceso: cadena Inicio Escribir "Tienes el titulo de bachiller?" Leer bachiller si (bachiller="si") Entonces Escribir "Puedes acceder al grado superior" Sino Escribir "Tienes la prueba de acceso superada?" Leer prueba_acceso si (prueba_acceso="si") Entonces Escribir "Puedes acceder al grado superior" Sino Escribir "No puedes acceder a un grado superior" FinSi FinSi Fin

PSeInt: Proceso ejercicio_11 Escribir "Tienes el titulo de bachiller?" Leer bachiller si (bachiller="si") Entonces Escribir "Puedes acceder al grado superior" Sino Escribir "Tienes la prueba de acceso superada?" Leer prueba_acceso si (prueba_acceso="si") Entonces Escribir "Puedes acceder al grado superior" Sino Escribir "No puedes acceder a un grado superior" FinSi FinSi FinProceso

15 12) Desarrollar un algoritmo que nos calcule el cuadrado de los 9 primeros nmeros naturales (recuerda la estructura desde-hasta) Spoiler
Papel: SeleccionarEsconder

1 2 3 4 5 6 7 1 2 3 4 5 6

Var num, res: numerica Inicio Desde num<-1 Hasta 9 In 1 res<-num^2 Escribir num " " res FinDesde Fin

PSeInt: Proceso ejercicio_12 Para num<-1 Hasta 9 Con Paso 1 res<-num^2 Escribir num " " res FinPara FinProceso

NOTA: este ejercicio tambin se puede hacer con la estructura Mientras, pero lo hemos hecho con la estructura Desde-Hasta porque sabemos el rango.

13) Se pide representar el algoritmo que nos calcule la suma de los N primeros nmeros naturales. Nse leer por teclado (no tenemos porque llamar a la variable N, podemos llamarla como queramos). Spoiler
Papel: SeleccionarEsconder

1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9

Var N, contador, suma: numerica Inicio Leer N suma<-0 Desde contador<-1 Hasta 5 In 1 suma<-N+suma N<-N+1 FinDesde Escribir suma Fin

PSeInt: Proceso ejercicio_13 Leer N suma<-0 Para contador<-1 Hasta 5 Con Paso 1 suma<-N+suma N<-N+1 FinPara Escribir suma FinProceso

14) Se pide representar el algoritmo que nos calcule la suma de los N primeros nmeros pares. Es decir, si insertamos un 5, nos haga la suma de 6+8+10+12+14.

Spoiler
Papel:

SeleccionarEsconder

1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12

Var N, contador, suma: numerica Inicio Leer N contador<-0 Mientras (contador<5) Hacer si (N MOD 2=0) Entonces suma<-N+suma contador<-contador+1 FinSi N<-N+1 FinMientras Escribir suma Fin

PSeInt: Proceso ejercicio_14 Leer N contador<-0 Mientras (contador<5) Hacer si (N MOD 2=0) Entonces suma<-N+suma contador<-contador+1 FinSi N<-N+1 FinMientras Escribir suma FinProceso

15) Dada una secuencia de nmeros ledos por teclado, que acabe con un 1, por ejemplo: 5,3,0,2,4,4,0,0,2,3,6,0,,-1; Realizar el algoritmo que calcule la media aritmtica. Suponemos que el usuario no insertara numero negativos. Spoiler
SeleccionarMostrar

16) Teniendo en cuenta que la clave es eureka, escribir un algoritmo que nos pida una clave. Solo tenemos 3 intentos para acertar, si fallamos los 3 intentos nos mostrara un mensaje indicndonos que hemos agotado esos 3 intentos. (Recomiendo utilizar un interruptor). Si acertamos la clave, saldremos directamente del programa. Spoiler
Papel: SeleccionarEsconder

1 2 3 4 5 6 7 8 9

Var clave: cadena acierto: booleano contador: numerica Inicio contador<-0 acierto<-Falso Mientras (contador<3 AND acierto=falso) Hacer Leer clave si (clave="eureka") Entonces Escribir "la clave es correcta" acierto<-Verdadero

10 11 12 13 14 15 16 17 18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

FinSi contador<-contador+1 FinMientras si (contador=3 AND acierto=falso) Entonces Escribir "Ya no tienes mas intentos" FinSi Fin

PSeInt:

Proceso ejercicio_16 contador<-0 //interruptor acierto<-Falso //usamos un interruptor, cuando acertemos, //cambiara y la condicion sera falsa Mientras (contador<3 Y acierto=falso) Hacer //ponemos aqui leer porque con las variables //iniciales entra en el bucle Escribir "introduce la clave" Leer clave si (clave="eureka") Entonces Escribir "la clave es correcta" //el interruptor cambia cuando acertamos acierto<-Verdadero FinSi contador<-contador+1 FinMientras //este mensaje solo aparecera si hemos agotado //todos los intentos y no hemos acertado si (contador=3 Y acierto=falso) Entonces Escribir "Ya no tienes mas intentos" FinSi FinProceso

17) Algoritmo que lea nmeros enteros hasta teclear 0, y nos muestre el mximo, el mnimo y la media de todos ellos. Piensa como debemos inicializar las variables. Spoiler
Papel: SeleccionarEsconder

1 2 3 4 5 6 7 8 9 10 11

Var maximo, minimo, num, suma, media, contador: numerica Inicio Leer num minimo<-num maximo<-num suma<-0 Mientras (num<>0) Hacer si (num>maximo) Entonces maximo<-num FinSi si (num<minimo) Entonces minimo<-num FinSi suma<-suma+num

12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

contador<-contador+1 leer num FinMientras media<-suma/(contador) Escribir "El maximo es " maximo Escribir "El minimo es " minimo Escribir "La media es " media Fin

PSeInt:

Proceso ejercicio_17 Leer num //maximo y el minimo se inician con el numero que //insertemos para que lo podamos modificar //durante el programa minimo<-num maximo<-num suma<-0 Mientras (num<>0) Hacer si (num>maximo) Entonces maximo<-num FinSi si (num<minimo) Entonces minimo<-num FinSi suma<-suma+num contador<-contador+1 leer num FinMientras media<-suma/(contador) //escrbimos los resultados Escribir "El maximo es " maximo Escribir "El minimo es " minimo Escribir "La media es " media FinProceso

18) Algoritmo que visualice la cuenta de los nmeros que son mltiplos de 2 o de 3 que hay entre 1 y 100. Spoiler
Papel: SeleccionarEsconder

1 2 3 4 5 6 7 8

Var num: numerica Inicio Desde num<-1 Hasta 100 In 1 //asi indicamos si un numero es multiplo de 3 o de 2 si (num MOD 2=0 OR num MOD 3=0) Entonces Escribir num FinSi FinDesde Fin

9
PSeInt:

1 2 3 4 5 6 7 8

Proceso ejercicio_18 Para num<-1 Hasta 100 Con Paso 1 //asi indicamos si un numero es multiplo de 3 o de 2 si (num MOD 2=0 o num MOD 3=0) Entonces Escribir num FinSi FinPara FinProceso

19) Leer tres nmeros que denoten una fecha (da, mes, ao). Comprobar que es una fecha vlida. Si no es vlida escribir un mensaje de error. Si es vlida escribir la fecha cambiando el nmero del mes por su nombre. Ej. si se introduce 1 2 2006, se deber imprimir 1 de febrero de 2006. El ao debe ser mayor que 0. (Recuerda la estructura segun sea). NOTA: en PSeInt, si queremos escribir sin que haya saltos de linea, al final de la operacion escribir escribimos sin saltar. Spoiler
Papel: SeleccionarEsconder

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Var dia, mes, ao: numerica Inicio Escribir "Introduce el dia" Leer dia Escribir "Introduce el mes" Leer mes Escribir "Introduce el ao" Leer ao //comprobamos que la fecha es correcto si ((dia<=31 y dia>=0) AND (mes<=12 y mes>=0) AND ao>0) Entonces Escribir dia sin saltar //usamos el segun sea para escribir el mes Segun mes Hacer 1: escribir " de enero de" sin saltar 2: escribir " de febrero de " sin saltar 3: escribir " de marzo de " sin saltar 4: escribir " de abril de " sin saltar 5: escribir " de mayo de " sin saltar 6: escribir " de junio de " sin saltar 7: escribir " de julio de " sin saltar 8: escribir " de agosto de " sin saltar 9: escribir " de septiembre de " sin saltar 10: escribir " de octubre de " sin saltar 11: escribir " de noviembre de " sin saltar 12: escribir " de diciembre de " sin saltar FinSegun

31 32 33 34 35 36 37 38 39 40 41 42 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

Escribir ao Sino Escribir "error" FinSi Fin

PSeInt: Proceso ejercicio_19 Escribir "Introduce el dia" Leer dia Escribir "Introduce el mes" Leer mes Escribir "Introduce el ao" Leer ao //comprobamos que la fecha es correcto si ((dia<=31 y dia>=0) y (mes<=12 y mes>=0) y ao>0) Entonces Escribir dia sin saltar //usamos el segun sea para escribir el mes Segun mes Hacer 1: escribir " de enero de" sin saltar 2: escribir " de febrero de " sin saltar 3: escribir " de marzo de " sin saltar 4: escribir " de abril de " sin saltar 5: escribir " de mayo de " sin saltar 6: escribir " de junio de " sin saltar 7: escribir " de julio de " sin saltar 8: escribir " de agosto de " sin saltar 9: escribir " de septiembre de " sin saltar 10: escribir " de octubre de " sin saltar 11: escribir " de noviembre de " sin saltar 12: escribir " de diciembre de " sin saltar FinSegun Escribir ao Sino Escribir "error" FinSi FinProceso

38 39 40 41 42 20) Calcular las calificaciones de un grupo de alumnos. La nota final de cada alumno se calcula segn el siguiente criterio: la parte prctica vale el 10%; la parte de problemas vale el 50% y la parte terica el 40%. El algoritmo leer el nombre del alumno, las tres notas, escribir el resultado y volver a pedir los datos del siguiente alumno hasta que el nombre sea una cadena vaca. Las notas deben estar entre 0 y 10, si no lo estn, no imprimir las notas, mostrara un mensaje de error y volver a pedir otro alumno. Spoiler
Papel: SeleccionarEsconder

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

Var alumno: cadena nota_teoria, nota_problemas, nota_teoria, nota_final: numerica Inicio Escribir "Introduce el nombre del alumno" Leer alumno Mientras alumno<>"" Hacer Escribir "Introduce la nota practica" leer nota_practica Escribir "Introduce la nota de problemas" leer nota_problemas Escribir "Introduce la nota de teoria" Leer nota_teoria //NOTA: este si esta agrupado por falta de espacio si (nota_practica<=10 AND nota_practica>=0) AND (nota_problemas<=10 AND nota_problemas>=0) AND (nota_teoria<=10 AND nota_teoria>=0) Entonces Escribir "El alumno " alumno Escribir "La nota practica es " nota_practica Escribir "La nota de problemas es " nota_problemas Escribir "La nota de teoria es " nota_teoria nota_practica<-nota_practica*0.1 nota_problemas<-nota_problemas*0.5 nota_teoria<-nota_teoria*0.4 nota_final<-nota_practica+nota_problemas+nota_teoria Escribir "La nota final es " nota_final Sino Escribir "Has escrito una nota incorrecta, vuelve a intentarlo" FinSi Escribir "Introduce el nombre de otro alumno" Leer alumno FinMientras Fin

PSeInt: Proceso ejercicio_20 1 Escribir "Introduce el nombre del alumno" 2 Leer alumno

3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

Mientras alumno<>"" Hacer //si introducimos un nombre de alumno //correcto, entrara en el bucle Escribir "Introduce la nota practica" leer nota_practica Escribir "Introduce la nota de problemas" leer nota_problemas Escribir "Introduce la nota de teoria" Leer nota_teoria //comprobamos si las notas tienen un rango correcto //NOTA: este si esta agrupado por falta de espacio si (nota_practica<=10 y nota_practica>=0) y (nota_problemas<=10 y nota_problemas>=0) y (nota_teoria<=10 y nota_teoria>=0) Entonces Escribir "El alumno " alumno Escribir "La nota practica es " nota_practica Escribir "La nota de problemas es " nota_problemas Escribir "La nota de teoria es " nota_teoria nota_practica<-nota_practica*0.1 nota_problemas<-nota_problemas*0.5 nota_teoria<-nota_teoria*0.4 nota_final<-nota_practica+nota_problemas+nota_teoria Escribir "La nota final es " nota_final Sino Escribir "Has escrito una nota incorrecta, vuelve a intentarlo" FinSi Escribir "Introduce el nombre de otro alumno" Leer alumno FinMientras FinProceso

21) Algoritmo que lea un nmero entero (lado) y a partir de l cree un cuadrado de asteriscos con ese tamao. Los asteriscos slo se vern en el borde del cuadrado, no en el interior. Ejemplo, para lado = 4 escribira:
**** * * * * ****

Spoiler

SeleccionarEsconder

NOTA: este tipo de ejercicios cambian mucho en papel y en PSeInt, en papel es mas sencillo que en PSeInt. Papel: Var lado, asterisco, espacio: numerica 1 Inicio 2 Leer lado 3 Desde asterisco<-1 Hasta lado In 1 Escribir "*" 4 FinDesde 5 escribir " " 6 desde asterisco<-1 Hasta lado-2 In 1 7 Escribir "*"

8 9 10 11 12 13 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Desde espacio<-1 Hasta lado-2 In 1 Escribir " " FinDesde Escribir "*" escribir " " FinDesde Desde asterisco<-1 Hasta lado In 1 Escribir "*" FinDesde Fin

PSeInt: Proceso ejercicio_21 Leer lado Para asterisco<-1 Hasta lado Con Paso 1 Escribir "*" Sin Saltar FinPara escribir " " Para asterisco<-1 Hasta lado-2 Con Paso 1 Escribir "*" Sin Saltar Para espacio<-1 Hasta lado-2 Con Paso 1 Escribir " " sin saltar FinPara Escribir "*" Sin Saltar escribir " " FinPara Para asterisco<-1 Hasta lado Con Paso 1 Escribir "*" Sin Saltar FinPara FinProceso

22) Algoritmo que lea un nmero entero (altura) y a partir de l cree una escalera invertida de asteriscos con esa altura. Debera quedar asi, si ponemos una altura de 5.
***** **** *** ** *

Spoiler
Papel:

SeleccionarEsconder

1 2 3 4 5 6 7 8 9 10

Var altura, asterisco, espacio, espacio_linea, asterisco_linea: numerica Inicio Leer altura asterisco<-altura espacio<-0 Desde linea<-1 hasta altura In 1 Desde espacio_linea<-0 hasta espacio In 1 Escribir " " FinDesde Desde asterisco_linea<-1 hasta asterisco In 1 Escribir "*" FinDesde

11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

asterisco<-asterisco-1 espacio<-espacio+1 Escribir " " FinDesde Fin

PSeInt:

Proceso ejercicio_22 Leer altura //iniciamos las variables segun lo necesitamos asterisco<-altura espacio<-0 Para linea<-1 hasta altura con paso 1 //escribimos los espacios iniciales Para espacio_linea<-0 hasta espacio con paso 1 Escribir " " sin saltar FinPara //escribimos los asteriscos de la escalera Para asterisco_linea<-1 hasta asterisco con paso 1 Escribir "*" sin saltar FinPara //aumentamos los espacios y disminuimos los asteriscos asterisco<-asterisco-1 espacio<-espacio+1 Escribir " " FinPara FinProceso

23) Algoritmo que dado un ao, nos diga si es bisiesto o no. Un ao es bisiesto bajo las siguientes condiciones: Un ao divisible por 4 es bisiesto y no debe ser divisible entre 100.

Si un ao es divisible entre 100 y adems es divisible entre 400, tambin resulta bisiesto.

NOTA: este ejercicio tiene muchas formas de hacerlo si quieres comprobar que es correcto, puedes probarlo aqu, tambin encontraras informacin sobre las condiciones de cuando un ao es bisiesto. Spoiler
Papel: SeleccionarEsconder

1 2 3 4 5 6 7 8 9 10

Var ao: numerica Inicio Escribir "Introduce un ao" leer ao si (ao MOD 4=0 y ao MOD 100<>0)Entonces Escribir "El ao " ao " es bisiesto" Sino si (ao MOD 400=0 y ao MOD 100=0) Entonces Escribir "El ao " ao " es bisiesto" Sino escribir "El ao " ao " no es bisiesto" FinSi FinSi

11 12 13 14 1 2 3 4 5 6 7 8 9 10 11 12 13

Fin

PSeInt: Proceso ejercicio_23 Escribir "Introduce un ao" leer ao si (ao MOD 4=0 y ao MOD 100<>0)Entonces Escribir "El ao " ao " es bisiesto" Sino si (ao MOD 400=0 y ao MOD 100=0) Entonces Escribir "El ao " ao " es bisiesto" Sino escribir "El ao " ao " no es bisiesto" FinSi FinSi FinProceso

24) El siguiente es el men de un restaurante de bocadillos. Disear un algoritmo capaz de leer el nmero de unidades consumidas de cada alimento ordenado y calcular la cuenta total. Vamos a suponer que estos precios son fijos, es decir, que son constantes (recuerda que en PSeInt no se usa comas para separar la parte decimal de la parte entera).
Producto Bocadillo de jamn Refresco Cerveza Precio 1,5 1,05 0,75

Spoiler
Papel:

SeleccionarEsconder

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Inicio JAMON=1.5 REFRESCO=1.05 CERVEZA=0.75 total=0 Escribir "Introduce la cantidad de bocadillos de jamon" Leer cant_jamon Escribir "Introduce la cantidad de refresco" Leer cant_refresco Escribir "Introduce la cantidad de cerveza" Leer cant_cerveza //NOTA: las 2 siguientes lineas van en una linea total<-((cant_jamon*JAMON)+(cant_refresco*REFRESCO) +(cant_cerveza*CERVEZA)) Escribir total Fin

PSeInt: Proceso ejercicio_24 1 JAMON=1.5 2 REFRESCO=1.05

Producto

Precio

CERVEZA=0.75 3 total=0 4 Escribir "Introduce la cantidad de bocadillos de jamon" 5 Leer cant_jamon 6 Escribir "Introduce la cantidad de refresco" Leer cant_refresco 7 Escribir "Introduce la cantidad de cerveza" 8 Leer cant_cerveza 9 //NOTA: los dos siguientes van en una linea 10 total<-((cant_jamon*JAMON)+(cant_refresco*REFRESCO) 11 +(cant_cerveza*CERVEZA)) Escribir total 12 FinProceso 13 14 15 16 25) Algoritmo que nos calcule las races de una ecuacin de segundo grado. Controlar el caso de que las soluciones sean imaginarias.

Spoiler
Papel:

SeleccionarEsconder

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Var a,b, c, raizcua, x1, x2: numerica Inicio Escribir "escibe el valor de a" Leer a Escribir "escibe el valor de b" Leer b Escribir "escibe el valor de c" Leer c neg<--b raizcua<-(b^2-4*a*c)^0.5 Si raizcua<=0 Entonces Escribir "La ecuacion no se puede resolver" Sino x1<-(neg+raizcua)/(2*a) x2<-(neg-raizcua)/(2*a) Escribir x1 Escribir x2 FinSi Fin

PSeInt: Proceso ejercicio_25 1 Escribir "escibe el valor de a" 2 Leer a 3 Escribir "escibe el valor de b" 4 Leer b 5 Escribir "escibe el valor de c" Leer c 6 neg<--b 7 raizcua<-(b^2-4*a*c)^0.5 8 Si raizcua<=0 Entonces 9 Escribir "La ecuacion no se puede resolver" Sino 10

11 12 13 14 15 16 17 18

totalx1<-(NEG+Raizcua)/(2*a) totalx2<-(NEG-Raizcua)/(2*a) Escribir Totalx1 Escribir Totalx2 FinSi FinProceso

También podría gustarte