Estoy haciendo la práctica 6,1 que dice lo siguiente: Ejercicio de repaso propuesto 6.1: Crea un programa que genere dos números al azar entre el 0 y el 100, y pida al usuario que calcule e introduzca su suma. Si la respuesta no es correcta, deberá volver a pedirla tantas veces como sea necesario hasta que el usuario acierte.
Pues bien la suma aunque al ejecutarlo me salga bien, continúa poniéndomela el programa como incorrecta... os dejo el código a ver si encontráis el error y me ayudáis:
Proceso práctica
número<-AZAR(101)
Escribir "Calcula la suma", número, "+", número;
leer suma
mientras x<> suma hacer
suma<-x+x;
Escribir "La suma es incorrecta, repita la operación";
Leer x
FinMientras
Escribir "La suma es correcta, fin";
FinProceso
En primer lugar te piden generar dos números al azar, pero tú solo generas un solo número.
Sigues teniendo el mismo error del post anterior, pero esta vez con la variable x, la cual representa la suma, calculada por el computador, de los dos numeros al azar, pero en ningún lugar está la instrucción que almacena esa suma en x. NO PUEDES utilizar una variable sin valor en la condición de un ciclo "mientras", es un error muy grave que te puede conducir a ciclos infinitos.
Dentro de las instrucciones del ciclo "mientras" hay un punto en el que deberías preguntarte si la suma calculada por el computador (x) es igual a la suma calculada por el usuario, no lo haces.
Saludos.
Coincido con Luis. Hay varias cosas que corregir:
1) Abres un nuevo hilo en vez de seguir la misma conversación.
2) Usas variables cuyo nombre está acentuado, algo que es mala costumbre, porque no es aceptable en la mayoría de lenguajes de programación.
3) Se te pide que generes dos números al azar, pero sólo generas uno.
4) Usas un "mientras" para comprobar el valor de una variable que aún no tiene valor.
5) Dentro de ese "mientras" no usas el valor de "número", sino el de "x" y el de "suma" (que vale el doble de x).
6) Como debes pedir al menos una vez, deberás pedir datos por primera vez antes de entrar al "mientras", y quizá no repitas si no se cumple la condición. La alternativa será usar "repetir-hasta", que verás en el apartado 7.
Reescríbelo teniendo en cuenta esas sugerencias y verás que sale casi solo...
Asi funciona
Proceso Ejercicio7a
x<-AZAR(101);
z<-AZAR(101);
escribir "calcula la suma ",x, "+", z;
leer suma
Mientras x<> suma Hacer
suma<-x+z;
escribir "la suma no es correcta, repite operacion"
leer x
Fin Mientras
escribir "OK la suma es correcta";
Finproceso
Proceso ejemplo
definir x Como Entero;
definir z como entero;
definir suma como entero;
x<-AZAR(101);
z<-AZAR(101);
Escribir "calcula la suma: ", x "+" z;
leer suma;
mientras x+z<>suma hacer
Escribir "la suma es incorrecta";
leer suma;
FinMientras
Escribir "la suma es correcta";
FinProceso
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)