› Foros › PC › Software libre
Crapos escribió:1-Escribe un algoritmo que lea números introducidos aleatoriamente por teclado hasta que el valor introducido sea 0. A continuación, deberá visualizar el número de introducciones efectuadas y la mayor secuencia de números consecutivos iguales, indicando cual fue el número y cuantas veces seguidas lo hizo.
"Primero tengo que hacer variables para cada número del 1 al 10. Luego tengo que hacer un bucle para ir comprobando el número de veces que se repite el número introducido (if num = 1 then unos= unos + 1). El contador para la salida es cuando el num vale 0. Con esto ya tienes todos los números contados, que es lo que te pide el ejercicio, ahora solo tengo que hacer otro bucle para comparar cual de las variables es la que más se ha repetido y las veces que lo hizo."
amuchamu escribió:Crapos escribió:1-Escribe un algoritmo que lea números introducidos aleatoriamente por teclado hasta que el valor introducido sea 0. A continuación, deberá visualizar el número de introducciones efectuadas y la mayor secuencia de números consecutivos iguales, indicando cual fue el número y cuantas veces seguidas lo hizo.
"Primero tengo que hacer variables para cada número del 1 al 10. Luego tengo que hacer un bucle para ir comprobando el número de veces que se repite el número introducido (if num = 1 then unos= unos + 1). El contador para la salida es cuando el num vale 0. Con esto ya tienes todos los números contados, que es lo que te pide el ejercicio, ahora solo tengo que hacer otro bucle para comparar cual de las variables es la que más se ha repetido y las veces que lo hizo."
No necesitas una variable para cada número del 1 al 10, ni siquiera te dice que el máximo valor sea el 10 ni que no haya números negativos. Suponemos que son números enteros. Además, te pide introducciones consecutivas, no totales para cada número sino total de introducciones.
Primero un bucle que lea un número y termine cuando el número leído sea 0. Necesitas tener unas cuantas variables:
- Número que más veces consecutivas se ha introducido y cuántas veces ha sido
- Número anterior introducido y cuántas repeticiones lleva
- Otra variable que cuente el número de introducciones, que incrementas en cada iteración.
Dentro del bucle has de comprobar si el número introducido es el mismo que el introducido en la iteración anterior, en cuyo caso aumentarías en uno las repeticiones que lleva. Si no es así, modificas la variable que guarda el número anterior introducido, y pones sus repeticiones a 1. En determinado momento del bucle (tienes varias opciones), has de comprobar si el número actual se ha introducido más veces que el que guardas como el número que se ha introducido más veces y, si es así, modificarlo.
Crapos escribió:4-Escribe un algoritmo que lea 100 números introducidos por teclado de forma aleatorio y consecutiva. Para cada 10 números introducidos se procederá a mostrar la decencia actual y a la obtención del mayor de los números leídos de la decena. Por último, se deberá obtener el mayor valor introducido y en que decena apareció.
"Creo que el truco está en primero hacer un bucle que te recorra 100 números (supongo que para los números introducidos aleatoriamente podrás usar la función random o randomize con un rango de 0 a 100). Dentro de ese bucle tengo que hacer otro bucle que te vaya guardando 10 números en diferentes variables para luego así poder compararlas y mostrar el mayor número de los leídos (como en el primer ejercicio). Luego lo del final de obtener el mayor número introducido stengo que comparar las variables que has utilizado en los bucles anteriores. Creo que en total son 3 bucles."
var mayorDeLos100, mayorDeLos10, indice=0, numeroLeido;
mientras indice<100 hacer:
numeroLeido=leerTeclado();
si mayorDeLos100 es nulo o numeroLeido>mayorDeLos100 entonces:
mayorDeLos100=numeroLeido;
fin si
si mayorDeLos10 es nulo o numeroLeido>mayorDeLos10 entonces:
mayorDeLos10=numeroLeido;
fin si
si indice+1%100=0 entonces:
mostrarPorPantalla(mayorDeLos10);
mayorDeLos10 = nulo;
fin si
fin mientras
mostrarPorPantalla(mayorDeLos100);