Форум программистов, компьютерный форум CyberForum.ru

помогите с подсчетом букв. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ заменить отрицательные елементы массива http://www.cyberforum.ru/cpp-beginners/thread355530.html
В общем, есть массив размерностью 100 элементов, диапазон от -100 до 100. Нужно заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов. Заранее спасибо)
C++ Дата и день недели В общем задача такая: надо реализовать функцию, которая на вход будет получать дату в формате (год, месяц ,день), и будет возвращать день недели,соответствующий данной дате, а также указание на то,я вляется ли данный год високосным.Подскажите, с помощью каких функций данная задача может быть решена http://www.cyberforum.ru/cpp-beginners/thread355523.html
C++ Двумерные массивы.
Помогите решить задачку!!!!!! Дана действительная квадратная матрица порядка 2N. Подучить новую матрицу, переставляя ее блоки размера N х N крест накрест.
C++ Задача Газон
Срочна нужна помощь в реализации в С++ Задачу нужно реализовать в с++ Газон Имя входного файла: lawn.in Имя выходного файла: lawn.out
C++ Задача Клавиатура http://www.cyberforum.ru/cpp-beginners/thread355513.html
Нужна реализация в С++ , заранее спс Задача Клавиатура Имя входного файла: keyboard.in Имя выходного файла: keyboard.out Максимальное время работы на одном тесте: 2 секунды Максимальный объем используемой памяти: 64 мегабайта Всем известно, что со временем клавиатура изнашивается, и клавиши на ней начинают залипать. Конечно, некоторое время такую клавиатуру еще можно использовать, но...
C++ последовательность дробных. чисел написать программу которая вычисляет среднее арифметические последовательности дробных вводимых с клавиатуры чисел. после ввода последнего числа программа должна вывести максимальное и минимальное число. последовательность должна выводиться во время работы программы подробнее

Показать сообщение отдельно
IrineK
Заблокирован
27.09.2011, 15:06     помогите с подсчетом букв.
Golum, ЭТО скрывалось в вашей программе? :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <vcl.h>
#include <math.h>
#pragma hdrstop
 
#include "un.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int kol, i, k, m;
double otnch, entropia;
char c;
const char s[] ="шла саша по шоссе и сосала сушку.";
int len = strlen(s);
 
//массив - маска для исходной строки,
//0 в массиве <-> буква в строке еще не подсчитывалась,
//1 <-> буква уже подсчитана
int *masq = new int [len];
for(i=0;i<len;i++)
        masq[i] = 0;
 
//шапка таблицы
SG->ColCount=5;
SG->RowCount=len+1;
SG->Cells[0][0]="№"; SG->ColWidths[0]=20;
SG->Cells[1][0]="Знак"; SG->ColWidths[1]=30;
SG->Cells[2][0]="Частота"; SG->ColWidths[2]=50;
SG->Cells[3][0]="Относительная частота (pi)"; SG->ColWidths[3]=150;
SG->Cells[4][0]="Энтропия (-pi*log2pi)"; SG->ColWidths[4]=115;
 
//k - позиция буквы в исходной строке
//m - строка в таблице вывода
for (k=0,m=1,kol = 0; k<len; k++)
{   if(!masq[k])//такой буквы еще не было
    {  c=s[k];
       masq[k] = 1;     //необязательно, для полноты "маскировки"
       kol++;           //по крайней мере одна такая буква есть
       for (i=k+1; i<len; i++)
             if (c==s[i])               //если есть повтор на позиции i
                {       masq[i]=1;      //букву на позиции i в дальнейшем
                                        // не обрабатывать
                        kol++;          //еще одна такая буква есть
                }
        otnch=1.0*kol/len;
        entropia=(-otnch)*(log(otnch)/log(2.0));
        SG->Cells[0][m]=AnsiString(k);
        SG->Cells[1][m]=AnsiString(s[k]);
        SG->Cells[2][m]=AnsiString(kol);
        SG->Cells[3][m]=AnsiString(otnch);
        SG->Cells[4][m]=AnsiString(entropia);
        m++;  //переход на следующую строку в таблице вывода
        kol=0;
    }
}
 
//убираем мусор сами
delete [] masq;
}
Результат:
Миниатюры
помогите с подсчетом букв.  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru