[ Foro de C# ]

C# sentencia for

30-Aug-2015 04:22
Haiver Aguilera
5 Respuestas

Hola, soy nuevo en el grupo.
Necesito que me ayuden con un problema de algoritmos  C# , de aplicacion de consola, la razon es que soy nuevo en todo esto y no entiendo lo de la sentencia for , para solucionar este problema :
Leer 10 números e imprimir solamente los números positivos.
ayudenme por favor.
Gracias


30-Aug-2015 11:00
Nacho Cabanes (+31)

Mira el ejemplo 4.1.3b del curso:

http://aprendeaprogramar.com/mod/resource/view.php?id=724

El principio de ese programa te enseña a crear un array de 5 números (que en tu caso serán 10) y a pedir los datos al usuario.

En cuanto entiendas eso, te será muy fácil mostrar los 10 datos en pantalla con otro "for", y casi igual de sencillo añadir un "if" para que sólo muestre los positivos.

Pon aquí tus intentos, para que te ayudemos a llegar (pero sin darte todo hecho desde un principio).


30-Aug-2015 22:51
Haiver Aguilera

Gracias por responder, ya lo hice pero con if, lo de array no lo entiendo muy bien que digamos, el problema es que estoy en un curso de programación, y me lo piden con for que me dices de esto que hice:

 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication17
{
    class Program
    {
        static void Main(string[] args)
        {
            int numero1, numero2, numero3, numero4, numero5, numero6, numero7, numero8, numero9, numero10;
            Console.WriteLine("Ingrese 10 valores numericos (máximo 10).");
            Console.WriteLine("Ingrese su primer valor:");
            numero1 = int.Parse(Console.ReadLine());
            Console.WriteLine("Ingrese su segundo valor:");
            numero2 = int.Parse(Console.ReadLine());
            Console.WriteLine("Ingrese su tercer valor:");
            numero3 = int.Parse(Console.ReadLine());
            Console.WriteLine("Ingrese su cuarto valor:");
            numero4 = int.Parse(Console.ReadLine());
            Console.WriteLine("Ingrese su quinto valor:");
            numero5 = int.Parse(Console.ReadLine());
            Console.WriteLine("Ingrese su sexto valor:");
            numero6 = int.Parse(Console.ReadLine());
            Console.WriteLine("Ingrese su séptimo valor:");
            numero7 = int.Parse(Console.ReadLine());
            Console.WriteLine("Ingrese su octavo valor:");
            numero8 = int.Parse(Console.ReadLine());
            Console.WriteLine("Ingrese su noveno valor:");
            numero9 = int.Parse(Console.ReadLine());
            Console.WriteLine("Ingrese su décimo valor:");
            numero10 = int.Parse(Console.ReadLine());
            Console.WriteLine("a continuacion se mostraran los numeros positivos:");
 
                               if (numero1 > 0)
                                {
                                    Console.WriteLine("{0}",numero1);
                                }
                                if (numero2 > 0)
                                {
                                    Console.WriteLine("{0}",numero2);
                                }
                                if (numero3 > 0)
                                {
                                    Console.WriteLine("{0}", numero3);
                                }
                                if (numero4 > 0)
                                {
                                    Console.WriteLine("{0}", numero4);
                                }
                                if (numero5 > 0)
                                {
                                    Console.WriteLine("{0}", numero5);
                                }
                                if (numero6 > 0)
                                {
                                    Console.WriteLine("{0}", numero6);
                                }
                                if (numero7 > 0)
                                {
                                    Console.WriteLine("{0}", numero7);
                                }
                                if (numero8 > 0)
                                {
                                    Console.WriteLine("{0}", numero8);
                                }
                                if (numero9 > 0)
                                {
                                    Console.WriteLine("{0}", numero9);
                                }
                                if (numero10 > 0)
                                {
                                    Console.WriteLine("{0}", numero10);
                                }
 
            Console.ReadKey();
        }
    }
} 
 


 


31-Aug-2015 07:49
Abdiel Perez

 

 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace mostrarnumerospositivosFor
{
    class Program
    {
        static void Main(string[] args)
        {
            int [] numero=new int [10];
 
            Console.WriteLine("POR FAVOR DIGITE 5 NUMEROS POSITIVOS Y NEGATIVOS");
            numero[0] = Convert.ToInt32(Console.ReadLine());
            numero[1] = Convert.ToInt32(Console.ReadLine());
            numero[2] = Convert.ToInt32(Console.ReadLine());
            numero[3] = Convert.ToInt32(Console.ReadLine());
            numero[4] = Convert.ToInt32(Console.ReadLine());
            numero[5] = Convert.ToInt32(Console.ReadLine());
            numero[6] = Convert.ToInt32(Console.ReadLine());
            numero[7] = Convert.ToInt32(Console.ReadLine());
            numero[8] = Convert.ToInt32(Console.ReadLine());
            numero[9] = Convert.ToInt32(Console.ReadLine());
            for (int i = 0; i <10; i++)
            {
                if (numero[i]>0)
                {
                    Console.WriteLine("Los numeros positivos son: "+numero[i]);
                }
 
            }
            Console.ReadKey();
 
        }
    }
}
 


 


31-Aug-2015 10:41
Nacho Cabanes (+31)

La respuesta de Abdiel se parece mucho a la respuesta correcta, aunque tiene varios detalles menores que corregir:

- La petición de datos es repetitiva, así que lo razonables es hacerla con otro "for".

- Menciona que se introduzcan 5 números pero realmente son 10 los que debe teclear el usuario.

- Incluye muchos "using" que no son necesarios (al igual que tu propuesta inicial), imagino que por usar Visual Studio.

- Tampoco es necesario el "namespace" en un programa tan simple.

- El "readkey" que provoca la pausa final no debería ser parte de un programa terminado (de hecho, puede no serlo ni siquiera durante las pruebas con Visual Studio si lanzas el programa utilizando la combinación de teclas Ctrl+F5).

Por eso, podría quedar así:
 

 
using System;
 
class MostrarNumerosPositivosFor
{
    static void Main()
    {
        int [] numero=new int [10];
 
        Console.WriteLine("Ingrese 10 valores numericos");
        for (int i = 0; i < 10; i++)
        {
            numero[i] = Convert.ToInt32(Console.ReadLine());
        }
 
        for (int i = 0; i < 10; i++)
        {
            if (numero[i] > 0)
            {
                Console.WriteLine("Los numeros positivos son: "+numero[i]);
            }
 
        }
    }
}
 


 


01-Sep-2015 22:45
Invitado (Abdiel)

Así es correcto, me leíste el pensamiento y si ocupo visual studio, pero mi idea era hacerlo con 2 for tal y como lu pusiste, 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.)