OskarF - 2011-04-30 02:55:35

Napisać program, który dla pliku tekstowego o podanej nazwie wyznaczy „wykres”
częstości wystąpień małych liter alfabetu angielskiego. Słupki wykresu mają
zostać utworzone ze znaków gwiazdki ’*’, przy czym długość słupka dla najczęściej
występującej litery powinna wynosić 50. Dodatkowo dla każdego znaku należy dodatkowo
wyświetlić liczbę jego wystąpień.
Poniżej umieszczono przykładowy wykres wygenerowany dla tekstu „Adventures
of Huckleberry Finn” M. Twaina dostêpnego pod adresem:
http://www.gutenberg.org/dirs/7/76/76.txt
a ************************************* 36581
b ******* 7439
c ******** 8317
d ************************ 23754
e ************************************************** 49084
f ******** 7914
g ********** 10733
h ************************** 26338
i **************************** 28222
j * 1211
k ***** 5677
l ***************** 17446
m ********** 10337
n ********************************* 32818
o ************************************* 36700
p ****** 5971
q 189
r ******************** 20252
s ************************* 25193
t ******************************************* 42390
u ************** 13954
v ** 2944
w ************* 13347
x 453
y ********** 10312
z 185









#include <iostream>
#include <fstream>
#include <cctype>

using namespace std;

void wykres(string nazwaPliku);

int main()
{
    wykres("zad7tekst.txt");

    cin.get();
    return 0;
}

void wykres(string nazwaPliku)
{
    char z;
    int tab[26]={0};
    int numer, ilosc, max=0;
    ifstream plik;
    plik.open(nazwaPliku.c_str());

    if(plik.is_open())
    {
        while(plik>>z)
        {
            if(isalpha(z))
            {
                if(isupper(z)) z=tolower(z);
                numer=(int)(z-97);
                tab[numer]++;
            }

        }
        for(int i=0;i<26;i++)
        {
            if(tab[i]>max) max=tab[i];
        }
        for(int i=0;i<26;i++)
        {
            cout<<(char)(i+97)<<" ";
            ilosc=(tab[i]*50)/max;
            for(int j=0;j<ilosc;j++)
            {
                cout<<"*";
            }
        cout<<" "<<tab[i]<<endl;
        }
    }
    else cout<<"Blad otwarcia pliku!"<<endl;

    plik.close();
}

skrobaczki do komórek ezy mikrobiologiczne ciechocinek nocleg BoĂŽte de vitesses Mini