Matlab - Mejorar un programa. Contabilizar

 
Vista:
sin imagen de perfil

Mejorar un programa. Contabilizar

Publicado por Juan José (60 intervenciones) el 08/03/2014 10:21:10
Hola amigos,

He realizado un programa, el cual quiero mejorar y no se cómo hacerlo, aunque realmente debe ser sencillo.

El programa consta de adivinar un número entre 1 y 10 escrito en un txt, y contabilizar los intentos hasta teclear el número acertado. (Adjunto script y txt)

Programa:
1
2
3
4
5
6
7
8
9
10
11
% Ejercicio 5.7 Averiguar un número
fp=fopen('Numero.txt','r');
[A,cont]=fscanf(fp,'%d',[1,1]);
a=input('Introduce un número entre 1 y 10\n a:');
intentos=1;
while (a~=A)
    a=input('No has acertado. Introduce otro número entre 1 y 10\n a:');
    intentos=intentos+1;
end
Resultado=sprintf('El número es %d ...........Lo has adivinado en %d intento/os',a,intentos);
disp(Resultado);

Mi intención es mejorarlo de forma que si alguien introduce un número fuera de rango, vuelva a pedirse el dato, y además que el número de intentos sólo se contabilizen si los datos introducidos están entre 1 y 10

Muchas gracias y reciban un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jorge De Los Santos
Val: 30
Ha disminuido su posición en 12 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Mejorar un programa. Contabilizar

Publicado por Jorge De Los Santos (213 intervenciones) el 08/03/2014 17:35:23
Hola Juan José.

Una forma de hacerlo sería la siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
% Ejercicio 5.7 Averiguar un número
 
fp=fopen('Numero.txt','r');
[A,cont]=fscanf(fp,'%d',[1,1]);
a=input('Introduce un número entre 1 y 10\n a:');
intentos=1;
 
while (a~=A)
    a=input('No has acertado. Introduce otro número entre 1 y 10\n a:');
    if a<1 || a>10
        a=input('Número fuera de rango, verifique por favor\n a:');
    else
        intentos=intentos+1;
    end
end
 
Resultado=sprintf('El número es %d ...........Lo has adivinado en %d intento/os',a,intentos);
disp(Resultado);


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Mejorar un programa. Contabilizar

Publicado por Juan José (60 intervenciones) el 08/03/2014 22:07:29
Muchas gracias Jorge,

Le había dado varias vueltas, pero la verdad no llegué a introducir el If dentro del While.

Gracias y un saludo!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Mejorar un programa. Contabilizar

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 09/03/2014 01:06:18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
% Ejercicio 5.7 Averiguar un número
fp=fopen('adivina_numero2.txt','r');
A=fscanf(fp,'%d');
a=input('Empezar.         Introduce un número entre 1 y 10  a: ');
intentos=1;
while a~=A
    if a>1 && a<10
        a=input('No has acertado. Introduce otro número entre 1 y 10  a: ');
        intentos=intentos+1;
    else
        a=input('No has acertado. Introduce otro número entre 1 y 10  a: ');
    end
end
fprintf('El número es %d ...........Lo has adivinado en %d intento(s)\n',a,intentos);


1
2
3
4
5
6
7
8
9
10
11
12
>> adivina_numero2
Empezar.         Introduce un número entre 1 y 10  a: 4
No has acertado. Introduce otro número entre 1 y 10  a: 7
No has acertado. Introduce otro número entre 1 y 10  a: 2
No has acertado. Introduce otro número entre 1 y 10  a: 3
No has acertado. Introduce otro número entre 1 y 10  a: 4
No has acertado. Introduce otro número entre 1 y 10  a: 9
No has acertado. Introduce otro número entre 1 y 10  a: 12
No has acertado. Introduce otro número entre 1 y 10  a: 45
No has acertado. Introduce otro número entre 1 y 10  a: 67
No has acertado. Introduce otro número entre 1 y 10  a: 6
El número es 6 ...........Lo has adivinado en 7 intento(s)


Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
[email protected]


http://matlabcaballero.blogspot.com


http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar