Tworzenie histogramu

Odpowiedz Nowy wątek
2018-11-20 04:54
0

Witam serdecznie, jestem totalnym laikiem.
Potrzebuje napisać 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 ****

Z jednej strony chodzi mi o gotowca, a z drugiej potrzebuje zobaczyc jak to wszystko wyglada od srodka, co za co odpowiada i sprobowac go samemu zmodyfikowac. Nie potrafie nawet rozpoczac ze wzgledu na problem ze zrozumieniem tablic...

Pozostało 580 znaków

2018-11-20 07:33
0

W tym programie nie używasz tablic...

Pozostało 580 znaków

2018-11-20 08:56
0

Wątek o identycznej treści już się gdzieś pojawił i teraz pytanie: Czy chodzi o coś takiego?

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.WriteLine($"{n.Number} {new string('*', n.Count)}");
            }
        }
    }
}

No, bo rozumiem, że histogram ma przedstawiać ile razy wystąpiła dana cyfra.

edytowany 2x, ostatnio: grzesiek51114, 2018-11-20 08:59

Pozostało 580 znaków

2018-11-20 09:21
0
Marcin.Miga napisał(a):

W tym programie nie używasz tablic...

Sęk w tym, żeby było napisane za pomocą tablic...

Pozostało 580 znaków

2018-11-20 09:24
0
grzesiek51114 napisał(a):

Wątek o identycznej treści już się gdzieś pojawił i teraz pytanie: Czy chodzi o coś takiego?

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.WriteLine($"{n.Number} {new string('*', n.Count)}");
            }
        }
    }
}

No, bo rozumiem, że histogram ma przedstawiać ile razy wystąpiła dana cyfra.

Tak histogram ma pokazywać ile razy wystapiła dana liczba, ale to uzytkownik ma decydowac o dlugosci ciagu i jakie cyfry sie w nim znajda

Pozostało 580 znaków

2018-11-20 10:05
0

...ale to uzytkownik ma decydowac o dlugosci ciagu i jakie cyfry sie w nim znajda

To po prostu zamień tablicę na listę.

Pozostało 580 znaków

2018-11-20 10:44
0
grzesiek51114 napisał(a):

...ale to uzytkownik ma decydowac o dlugosci ciagu i jakie cyfry sie w nim znajda

To po prostu zamień tablicę na listę.

Ale potrzebuje to miec wykonane za pomoca tablic

Pozostało 580 znaków

2018-11-20 10:44
0

Na ten moment wyglada to tak

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp5
{
class Program
{
static void Main(string[] args)
{
{
Console.Write("Podaj długość ciągu: ");

            int dlugoscCiagu;

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

            int[] ciag = new int[dlugoscCiagu];

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

            foreach (int wartosc in ciag)
            {
                int i = 0;

                if (i == 1)
                {
                    Console.Write("*");
                }

                foreach (var item in ciag)
                {
                    Console.Write($"{++i}: {new string('*', item)} \n");
                }

                Console.ReadLine();
            }

        }

    }
}

}

Pozostało 580 znaków

2018-11-20 10:50
0

podaje dlugosc ciagu 3 i podaje 5 liczb i Twoj program sie krzaczy

Pozostało 580 znaków

2018-11-20 11:00
0

Dlatego wychodze z zapytaniem czy ktos doswiadczony moglby to napisac i bym porownal efekty i roznice, a tym samym zrozumial znaczenie danych komend w tym wzgledzie

Pozostało 580 znaków

2018-11-20 11:02
0

to co Ci napisal @grzesiek51114 bedzie najblizsze tego co potrzebujesz (musisz zmienic tylko z tablicy na liste i zeby ja uzupelniac)

zaden profesjonalista nie bedzie sie bawil ze zwykla tablica

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