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