[ Foro de Pascal ]

Problema con sqrt(x)

27-Jul-2014 04:31
Invitado (Jorge)
1 Respuestas

Buenas
tengo que hacer un programa en Pascal que, haciendo uso de la funcion sqrt(x), calcule el valor cuadrado de los 100 primeros números enteros, los almacene en un arreglo de 100 elementos y
los muestre en pantalla con el siguiente formato:


Raíz Cuadrada de 1 = 1.
Raíz Cuadrada de 2 = 1.41.
Raíz Cuadrada de 3 = 1.73.


esto es lo que llevo hasta el momento:


program Tarea_programada;
uses crt;
type
  vector=array[1..100] of real;
  var contador: integer;
      lista:vector;
      i:integer;

begin
  Clrscr;
   for contador:=1 to 100 do
   begin
   for i:=1 to 100 do
   begin
   writeln('Raiz cuadrada de ', contador , '=', Sqrt(i):0:3);
   end;
   end;
   readkey;
end.



el problema es que las iteraciones que me mustra son mas de las que necesito y no encuentro la sintaxis correcta para que me muestre en pantalla lo que se me pide.
muchas gracis de antemano por la ayuda.      


27-Jul-2014 14:43
Luis Torres (+18)

Sí, el programa está mostrando más resultados de lo esperado porque estás utilizando dos ciclos for (anidados) en vez de uno solo; entonces, para cada valor de "i" estás calculando la raíz cuadrada de los números del 1 al 100, o sea que, estás mostrando la raíz cuadrada de los números del 1 al 100, cien veces!!!!
Por otro lado, no veo que estés almacenando las raíces cuadradas en el vector "lista".
Te recomiendo que utilices un ciclo for para almacenar los resultados de haber calculado la raíz cuadrada en "lista"; luego, podrías usar "otro" ciclo for para mostrarlos en pantalla; agrégale una condición de parada, para que los vaya mostrando de 20 en 20, la cual podría ser:


if  (contador mod 20 = 0) then
 begin
    write('Presione una tecla para continuar...');
    readkey;
 end;


Saludos.






(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.)