/*
  cuadrado(X,R)

  Predicado que comprueba si R es el cuadrado de un número X

  Argumentos
  + X:
    - Significado: número
    - Tipo: entrada
  + R: 
    - Significado: número
    - Tipo: entrada y salida
*/
cuadrado(X,R):- 
			R is X * X.

/*
  test

  Predicado que calcula el cuadrado de un número introducido por teclado.
  Termina cuando se introduce el carácter de fin de fichero.
  No tiene argumentos
  
  Nota: al leer el número, se debe escribir el punto "." al final

  Variables
  + Dato:
    - Significado: número

  + R: 
     - Significado: número

  Predicados relacionados
  cuadrado, write, read, nl, fail.
*/

test :- 
	repeat, 
	write('Introduce un número -->'),
	read(Dato),
	nl,
	(  Dato == end_of_file,   write('Fin del ejemplo'), nl; 
		cuadrado(Dato, R), write(R), nl, fail
    ).
