viernes, 15 de junio de 2012

Practicas para Hacer en Casa_Pseudocodigos



1.    Hacer un diagrama de flujo que lea N números, calcule y escriba la suma de los pares y el producto de los impares.
Programa: Leer                Programa: Calculo Programa: Suma   Programa: Producto
Entorno                 Entorno                 Entorno                 Entorno
X<_0                    B<_3                    C<_2                    D<_1
Algoritmo             Algoritmo             Algoritmo             Algoritmo
Borrar_Pantalla () Borrar_Pantalla () Borrar_Pantalla () Borrar_Pantalla ()
Mientras X<_0 Hacer      Mientra B<_3 Hacer        Mientras C<_2 Hacer      Mientras D<_1 Hacer
Escribir  X            Escribir B             Escribir C             Escribir D
X<_3                    B<_3                    C<_2                    D<_1
Fin Entorno           Fin Entorno           Fin Entorno           Fin Entorno
Fin  Programa                 Fin Programa                  Fin  Programa                 Fin Programa

2.  Hacer un diagrama de flujo para calcular el máximo común divisor de dos números enteros positivos N y M siguiendo el algoritmo de Euclídes, que es el siguiente:
1. Se divide N por M, sea R el resto.
2. Si R=0, el máximo común divisor es M y se acaba.
3. Se asigna a N el valor de M y a M el valor de R y volver al paso 1.
¿Por qué el método anterior acaba alguna vez? ¿por qué calcula el máximo común divisor de N y
M?
3. Calcular los números primos hasta el N, según la Criba de Eratóstenes, que consiste en poner todos los números del 2 al N en una tabla e ir tachando los múltiplos de cada número, detalladamente es como sigue:
1. Escribir los números del 2 al N.
2. Hacer I igual a 2
3. Mirar el número I de la tabla.
4. Si esta tachado ir al paso 6.
5. Si no lo esta tachar los múltiplos de I en la tabla.
6. Incrementar I.
7. Si I es menor o igual que N ir al paso 3.
8. En otro caso finalizar.
El punto 5 también requiere un algoritmo, que es el siguiente:
5.1 Hacer J igual al doble de I (primer múltiplo de I).
5.2 Si J es mayor que N finalizar (el apartado 5).
5.3 En otro caso tachar el elemento J.
5.4 Incrementar J en I (para pasar al siguiente múltiplo de I).
5.5 Volver a 5.2.
4. Hacer el diagrama de flujo para calcular el factorial de N (N!=1·2·3·...·N).
5. Hacer un diagrama de flujo para sumar los N primeros términos de una progresión geométrica de primer término A y razón R (dados por teclado). Se debe realizar la suma sin emplear la fórmula que existe para ello.
6. Hacer un diagrama de flujo para convertir un número decimal N dado por teclado a binario.
Programa: Conversión
Entorno
N<_2/2
Algoritmo
Borrar_Pantalla ()
Mientras N<_2/2 Hacer
Escribir N
N<_1
Fin Entorno
Fin Programa

7. Hacer un diagrama de flujo para calcular AB, siendo B un entero, nótese que B puede ser 0 o negativo. No se pueden emplear logaritmos.
8. Hacer un diagrama de flujo para calcular el máximo de N números leídos por teclado, se debe realizar de dos formas, una almacenando previamente los números dados por teclado en un array y la otra calculando el máximo directamente según se leen los números del teclado.
9. Hacer un diagrama de flujo para ordenar N números leídos por teclado y almacenados en un array A. El algoritmo es el siguiente:
1. Se lee N y después los N números al array A.
2. Se busca el máximo de los elementos del 1 al N y su índice J.
3. Se intercambian los elementos A(J) y A(N).
4. Se decrementa N en 1.
5. Se compara N con 1, si es mayor se vuelve a 2.
6. Si es menor o igual se termina.
10. Hacer el organigrama de un programa que dado un array A ordenado de N elementos, encuentre la posición de uno B leído por teclado. El algoritmo a emplear es el siguiente:
1. Se fijan los extremos de la porción a buscar: I=1, J=N.
2. Se calcula el índice del elemento medio K=(I+J)/2.
3. Se compara B con el elemento medio A(K).
4. Si es igual se escribe K y se termina.
5. Si es mayor se cambian los extremos a I=K+1, J=N y se vuelve a 2.
6. Si es menor se cambian los extremos a I=1, J=K-1 y se vuelve a 2.


Pensar después que habrá que modificar para que busque también valores de B que no estén en el
array A, si se da ese caso y no lo encuentra debe poner un mensaje diciendo que no esta.
Hacer un organigrama de un programa que adivine el número entre 1 y 1000 pensado por
un humano. El programa debe ir diciendo números y el humano responderá con los símbolos '<', '>' o '=', según el número pensado sea menor, mayor o igual que el dicho por el ordenador. Cuando lo adivine deberá poner un mensaje especificando cuantas preguntas
ha necesitado y finalizar. No debe realizar más de 10 preguntas y debe detectar si el humano le engaña diciéndole cosas imposibles, por ejemplo es mayor que 4 y menor que 5.
Si en lugar de estar el número de partida entre 1 y 1000 estuviera entre 1 y 1000000,
¿cuantas preguntas serían necesarias?

No hay comentarios:

Publicar un comentario