JaguarSpen escribió:Obtener un algoritmo que corresponda a un programa que lea una lista de números introducidos de manera consecutiva y aleatoria hasta que el valor introducido sea un cero.
Calcular la suma de todos los valores introducidos antes de que aparezca el primero mayor de 200. Por otra parte, sumar el resto de valores introducidos hasta que se introduzca el cero. Por último visualizará el número de datos introducidos, sin contar el cero, y las dos sumas realizadas.
Contemplar la posibilidad de que se introduzca antes el valor cero que cualquier número mayor de 200.
Muchas gracias!

Vale si te lo escribo no aprenderás pero al menos practica traduciendo del pseucódigo al código C
![Ok! [oki]](/images/smilies/net_thumbsup.gif)
:
X=1
Y=0
i=0
error=0
Crear Tabla[i]
Mientras (X <> 0) and ( Y < 201) Hacer:
leer(X)
Si X == 0 Entonces
error=1
BREAK
/* "break" es una instrucción que rompe un bucle... este sí es para contemplar el primer caso de primer valor introducido es igual a 0*/
END
Y=Y+X
tabla[i]=X
i++
Fin Mientras
Si error <> 1 ENTONCES
Escribir ("Ahora se procede a poner todos los números introducidos hasta ahora:")
Desde n==0 hasta n==i Hacer:
Escribir(Tabla[n])
Escribir(CARACTER INTRO)
/* Nota: Estas dos funciones escribir se pueden poner en 1 sóla en C te las pongo separadas en pseudocódigo para que lo comprendas */
Fin Desde
Fin Si
Fin programa...
Finalmente recordarte que existe una instrucción "mejor" que "mientras" para optimizar el pseudocódigo que te he pasado y así no tener que usar "BREAK"... te lo dejo para que lo pienses porque no olvides que un algoritmo es mejor que otro si es más eficiente...
En el que te paso y debe funcionar no es óptimo usar la sentencia "BREAK" y está puesta ahí por la cláusula que te dice de que contemples el paso de que el primer parámetro leido sea 0...
Pues bien como se puede ver el "si" que hay allí se ejecuta innecesariamente un número de veces (porque sólo sirve para la primera vez)... de tí depende remodelar el código para usar en lugar de "mientras" "REPETIR"...
No te lo doy todo hecho porque comprende que así no aprenderás pero te doy las ideas y el pseudocódigo para que avances.
No olvides NUNCA que en informática lo más importante NO ES QUE EL PROGRAMA FUNCIONE... (que es importante pero no del todo)... LO IMPORTANTE ES QUE FUNCIONE DE LA FORMA MÁS ÓPTIMA POSIBLE...
Recuerda que si Windows Falla (ahora menos desde XP) es gracias a que HAN OPTIMIZADO más el código que en sistemas anteriores.
Un saludo
BY DERHYUS.