Autor Tema: Ayuda para armar un algoritmo

0 Usuarios y 1 Visitante están viendo este tema.

06 Septiembre, 2011, 11:01 pm
Leído 1648 veces

eze32

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 121
  • Karma: +0/-0
  • Sexo: Masculino
Hola me piden armar programa que ingrese un conjunto de ternas de valores reales. Para cada ternas determinar si forman triángulo, e informar de que tipos son (equiláteros, isósceles,escaleno). Debo informar al terminar cuantas ternas forman triángulos y cuántas no, cuantas equiléteros,cuantas isósceles y cuantas escalenos.

Yo hasta que tipo de triángulo llegué, pero no se como hacer para que los cuentes, se que se debe usar estructura iterativa o repetición pero no se como hacerlo.
Muchas gracias.

07 Septiembre, 2011, 01:37 am
Respuesta #1

Aylén

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 137
  • Karma: +0/-0
  • Sexo: Femenino
  • Con números se puede demostrar cualquier cosa

Hola, podrías mostrar hasta dónde has llegado?

No sé cómo lo has hecho y quizás no te sirva de nada lo que voy a decir: yo agregaría tres contadores (variables, una por cada tipo de triángulo), inicializadas en cero, y luego, a medida que va detectando qué tipo de triángulo forma (que es hasta donde tú llegaste), la variable "correspondiente" va incrementandose en uno.

______________________________________
Ej.:

eq=0; is=0; es=0;
Si (triangulo = isosceles) --> is = is + 1;
______________________________________


Obviamente, todo el proceso va dentro de una estructura iterativa, porque debes realizarlo para CADA UNA de las ternas ingresadas.
Para un número determinado de ternas, usas un PARA (de 1 a N veces, donde N es la cantidad de ternas ingresadas), mientras que para un número indeterminado, debes usar un MIENTRAS o un REPETIR/HASTA, que evalúa una condición (mientras haya ternas/hasta que no haya ternas para evaluar).

Un saludo!
Las matemáticas poseen no sólo la verdad, sino cierta belleza suprema.

07 Septiembre, 2011, 02:35 am
Respuesta #2

eze32

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 121
  • Karma: +0/-0
  • Sexo: Masculino
Hola hice yo lo tenes aca http://i.minus.com/inO6SK7wXbl4A.jpg , mi duda es donde poner los contadores.

07 Septiembre, 2011, 06:40 am
Respuesta #3

Aylén

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 137
  • Karma: +0/-0
  • Sexo: Femenino
  • Con números se puede demostrar cualquier cosa

En mi respuesta anterior, en mi ejemplo, se ve dónde va el contador.

Antes que nada, aclaro que no conozco la notación de tu diagrama, por si quizás no entiendo algo o no soy muy clara, y no puedo corregirte si algo no haz hecho bien.

En tu resolución, en la parte de los 3 IF anidados, donde se debe decidir qué tipo de triángulo es, allí, además de mostrar el mensaje diciendo el tipo, debe incrementarse el contador correspondiente. (Obviamente, antes de hacer que se incrementen debes darles un valor inicial igual a cero; antes de que comience el proceso iterativo)

Asumo que lo que indicas afuera es que todo el "proceso" se realiza para I de 0 a 19 (20 veces). No sé cómo modelas la entrada de datos, pero me limito a lo que entiendo.

Para contar cuántas ternas forman triángulos y cuántas no, no necesitas un contador aparte. Sumando los 3 contadores (equiláteros + isósceles + escalenos) da la cantidad que SÍ forman. Y restando esta última a 20, da los que NO.


Un saludo.
Las matemáticas poseen no sólo la verdad, sino cierta belleza suprema.

07 Septiembre, 2011, 07:23 am
Respuesta #4

Aylén

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 137
  • Karma: +0/-0
  • Sexo: Femenino
  • Con números se puede demostrar cualquier cosa
Unos detalles para optimizar un poco tu algoritmo...

(Es un ejercicio básico y claro está que las computadoras hoy por hoy tardan millonésimas de segundo en calcular cosas; pero viendolo como un simple ejercicio didáctico, para que aprendas paso a paso, notarás que ejecutar lo siguiente es más rápido que ejecutar la resolución que me mostraste. Aunque el código sea mucho más tedioso.)


\( EQ \leftarrow{0} ; IS \leftarrow{0} ; ES \leftarrow{0}; \)

PARA i de 1 a 20 HACER
{
     ingresar A, B y C;
     // Lo siguiente sólo se ejecuta SI (A!= 0) Y (B!=0) Y (C!=0) //
     SI (A = B ) ENTONCES:
     {
           SI ( A = C ) ENTONCES:
           {
                 Mensaje: "Triángulo equilátero";
                 \( EQ \leftarrow {EQ +1} \) ;
            }
            SI NO:
            {
                 Mensaje: "Triángulo isósceles";
                 \( IS \leftarrow{IS + 1} \);
            };

     SI NO:
     {
         SI ( A = C ) ENTONCES:
         {
                 Mensaje: "Triángulo isósceles";
                 \( IS \leftarrow {IS +1} \) ;
         }
         SI NO:
         {
                 SI ( B = C ) ENTONCES:
                 {
                       Mensaje: "Triángulo isósceles";
                       \(  IS \leftarrow {IS +1} \) ;
                 }
                 SI NO:
                 {
                       Mensaje: "Triángulo escaleno";
                       \( ES \leftarrow{ES + 1} \);
                  };
          };
     };
}.


Obviamente, aquí faltaría la declaración de variables, y la parte en que comprueba si es un triángulo o no. Esa parte, en lugar de haber anidado 3 IF, podrías haber hecho sólo uno, donde pase al verdadero sí y sólo SI (a!=0  Y  b!=0  Y c!=0). Si esto es falso, no es un triángulo. Y finalmente, la salida donde muestra los valores de los contadores, la cantidad T de ternas que forman triángulos, y (20-T).

Saludos cordiales.
Las matemáticas poseen no sólo la verdad, sino cierta belleza suprema.

07 Septiembre, 2011, 02:48 pm
Respuesta #5

eze32

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 121
  • Karma: +0/-0
  • Sexo: Masculino
Hola Aylén muchas gracias por la ayuda, me sirvió mucho.