Duda acerca programa - algoritmo
Publicado por Javier (1 intervención) el 28/09/2009 02:28:25
Buenas noches,
Tengo una duda a la hora de compilar un programa.
Las instrucciones a compilar son las siguientes:
const
FISEQ: real = -1.0;
fconst
algoritmo triangulosRectangulos
var
n: entero;
alt, base, hipotenusa: real;
fvar
{Pre: En la entrada estandar hay una secuencia: < aa1 ba1 ha1 aa2 ba2 ha2... aan ban han -1>}
n := 0;
alt := leerEntero();
mientras alt ≠ FISEQ hacer
base := leerReal();
hipotenusa :=leerReal();
si alt*alt + base*base = hipotenusa*hipotenusa entonces
n :=n+1;
fsi
alt := leerReal();
fmientras
escribirEntero(n);
falgorismo
{Post: Se ha escrito en la salida estandar el valor del número de triangulos rectangulos encontrados en la secuencia}
Se pide:
Codificar, compilar i probar en lenguaje C el algoritmo dado.
Yo lo he codificado de la manera siguiente:
#include <stdio.h>
/* Declaración de constantes */
#define FISEQ -1.0
/* algoritmo triangulosRectangulos */
/* Pre: En la entrada estandar hay una secuencia: < aa1 ba1 ha1 aa2 ba2 ha2... aan ban han -1> */
int main ()
{
int n;
float alt, base, hipotenusa;
n=0;
scanf ("%f", &alt);
while (alt != FISEQ)
{
if (alt*alt+base*base == hipotenusa*hipotenusa);
scanf ("%f", &base);
scanf ("%f", &hipotenusa);
{
n=n+1;
}
}
scanf ("%f", &alt);
printf ("%d ", n);
return 0;
}
/* Post: Se ha escrito en la salida estandar el valor del número de triangulos rectangulos encontrados en la secuencia). */
La condición while, si no me equivoco, se cumple siempre, por lo que el programa no funciona.
¿Alguién podría explicarme donde está el error, y cuál seria la forma correcta de codificarlo?
Muchas gracias por la ayuda.
Tengo una duda a la hora de compilar un programa.
Las instrucciones a compilar son las siguientes:
const
FISEQ: real = -1.0;
fconst
algoritmo triangulosRectangulos
var
n: entero;
alt, base, hipotenusa: real;
fvar
{Pre: En la entrada estandar hay una secuencia: < aa1 ba1 ha1 aa2 ba2 ha2... aan ban han -1>}
n := 0;
alt := leerEntero();
mientras alt ≠ FISEQ hacer
base := leerReal();
hipotenusa :=leerReal();
si alt*alt + base*base = hipotenusa*hipotenusa entonces
n :=n+1;
fsi
alt := leerReal();
fmientras
escribirEntero(n);
falgorismo
{Post: Se ha escrito en la salida estandar el valor del número de triangulos rectangulos encontrados en la secuencia}
Se pide:
Codificar, compilar i probar en lenguaje C el algoritmo dado.
Yo lo he codificado de la manera siguiente:
#include <stdio.h>
/* Declaración de constantes */
#define FISEQ -1.0
/* algoritmo triangulosRectangulos */
/* Pre: En la entrada estandar hay una secuencia: < aa1 ba1 ha1 aa2 ba2 ha2... aan ban han -1> */
int main ()
{
int n;
float alt, base, hipotenusa;
n=0;
scanf ("%f", &alt);
while (alt != FISEQ)
{
if (alt*alt+base*base == hipotenusa*hipotenusa);
scanf ("%f", &base);
scanf ("%f", &hipotenusa);
{
n=n+1;
}
}
scanf ("%f", &alt);
printf ("%d ", n);
return 0;
}
/* Post: Se ha escrito en la salida estandar el valor del número de triangulos rectangulos encontrados en la secuencia). */
La condición while, si no me equivoco, se cumple siempre, por lo que el programa no funciona.
¿Alguién podría explicarme donde está el error, y cuál seria la forma correcta de codificarlo?
Muchas gracias por la ayuda.
Valora esta pregunta


0