Tworzenie histogramu

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...

0

W tym programie nie używasz tablic...

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.

0
Marcin.Miga napisał(a):

W tym programie nie używasz tablic...

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

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

0

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

To po prostu zamień tablicę na listę.

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

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();
            }


        }

    }
}

}

0

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

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

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

0

Chyba zabladzilem w takim razie

0
  1. czemu trzymasz sie tej tablicy
  2. jak bardzo chcesz tablice to obuduj to w try-catch
  3. mozesz uzywasz linq czy nic nie mozesz uzywac z wbudowanych biblotek jezyka?

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