Programowanie C#

Odpowiedz Nowy wątek
2018-10-28 09:41
0

Napisz program rysujący poziomy histogram z gwiazdek ilustrujący rozkład wartości w podanym przez użytkownika ciągu liczb z przedziału 1 – 5. Program powinien najpierw zapytać użytkownika o długość ciągu. Przykład dla ciągu dziesięciu liczb: 5, 1, 5, 4, 1, 5, 5, 4, 1, 2.

1
2

3
4

5 ****
Pomoże ktoś ?

Pozostało 580 znaków

2018-10-28 09:47
0

Z czym masz konkretnie problem? Pokaż co już zrobiłaś. A jeśli chcesz gotowca, to jest do tego odpowiedni dział https://4programmers.net/Forum/Og%C5%82oszenia_drobne

edytowany 1x, ostatnio: john_klamka, 2018-10-28 09:56

Pozostało 580 znaków

2018-10-28 09:53
0

static void Main(string[] args)

{
System.Console.WriteLine("Podaj długość ciągu.");

int dlugoscCiagu;

dlugoscCiagu = int.Parse(System.Console.ReadLine());

int[] ciag = new int[dlugoscCiagu];

for (int i = 0; i < dlugoscCiagu; i++)
{
    System.Console.WriteLine("Podaj {0} liczbę ciągu w przedziale 1-5: ", i);
    ciag[i] = int.Parse(System.Console.ReadLine());
}

System.Console.WriteLine("\n\n\nZawartość ciągu to: ");
foreach (int x in ciag)
    System.Console.Write(x + ", ");

foreach (int wartosc in ciag)
{
    int i;
    if (i != 1)
    {
        if (i == 2)
        {
            System.Console.Write("\n");
            System.Console.WriteLine("*");
        }
        else if (i == 3)
        {
            System.Console.Write("\n");
            System.Console.WriteLine("*");
        }
        else if (i == 4)
        {
            System.Console.Write("\n");
            System.Console.WriteLine("*");
        }

        else if (i == 5)
        {
            System.Console.Write("\n");
            System.Console.WriteLine("*");
        }
    }
    else
    {
        System.Console.Write("{0} *", i);
    }
}

}
Zrobiłam już coś takiego, ale wyskakują mi błędy i w ogóle nie wiem co mam zrobić

Pozostało 580 znaków

2018-10-28 10:02
0

Pętla foreach jest do poprawy - musisz najpierw policzyć ile razy dana liczba wystąpiła, dopiero potem wypisać odpowiednią liczbę gwiazdek. Dodatkowo w pętli używasz niezainicjalizowanej zmiennej

int i;

i nigdzie nie przypisujesz do niej wartości,

Pozostało 580 znaków

2018-10-28 10:04
0
john_klamka napisał(a):

Pętla foreach jest do poprawy - musisz najpierw policzyć ile razy dana liczba wystąpiła, dopiero potem wypisać odpowiednią liczbę gwiazdek. Dodatkowo w pętli używasz niezainicjalizowanej zmiennej

int i;

i nigdzie nie przypisujesz do niej wartości,

Mógł byś to za mnie zrobić, bo ja totalnie tego nie ogarniam ?

Pozostało 580 znaków

2018-10-28 10:17
0

Zawsze można pójść całkowicie na łatwiznę i wykorzystać Linq:

using System;
using System.Linq;
using System.Collections.Generic;

namespace App
{
    public class Program
    {
        static void Main(string[] args)
        {
            var numbers = new int[] { 5, 1, 5, 4, 1, 5, 5, 4, 1, 2 };
            var grouped = numbers
                .GroupBy(n => n)
                .Select(n => new { Number = n.Key, Count = n.Count() })
                .OrderBy(n => n.Number);

            foreach (var n in grouped)
            {
                Console.Write(n.Number);
                for (int i = 0; i < n.Count; i++)
                {
                    Console.Write("*");
                }
                Console.WriteLine();
            }
        }
    }
}
no ta, pewnie linq to będzie łatwizna dla osoby, która piszę loopa z ifem dla każdego i - WeiXiao 2018-10-28 19:36
a w sumie nie zdziwiłbym się gdyby tak własnie było. ;) - grzesiek51114 2018-10-28 19:36
ps: jest takie fajny konstruktor stringa: String(Char, Int32) - WeiXiao 2018-10-28 19:38
a fakt, to ciekawe ;) +1 - grzesiek51114 2018-10-28 19:40

Pozostało 580 znaków

2018-10-28 11:32
0

Nie kumam o co tutaj chodzi , Masz wzór na ten ciąg ?

"podanym przez użytkownika ciągu" - Azarien 2018-10-28 12:09
Ciąg powinien mieć jakiś wzór ale mniejsza o to, chyba że są to jakieś dane statystyczne . A ten histogram ma pokazywać za pomocą gwiazdek ile dana wartość wystąpiła ? - Zimny Krawiec 2018-10-28 12:18

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0