Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
1 / 1 / 1
Регистрация: 14.11.2012
Сообщений: 57
1

Провести частотный анализ текста, т.е. указать (в процентах), сколько раз встречается та или иная буква

12.12.2012, 15:49. Показов 2290. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include "conio.h"
void main()
{
    char s1[100]; int i; char s2[10]; int m,n,b;
    gets_s(s1);
    printf("vvedite bukvu");
    gets_s(s2);
    for (i=0;i<strlen(s1);i++) {if (s1[i]==strcmp()) m=m+1 ;}
    b=strlen(s1);
    n=b/m*100;
    printf("%i %",n);
    _getch();
} //////////
что не правильно, подскажите, у меня с типами данных не получается))))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.12.2012, 15:49
Ответы с готовыми решениями:

Для каждого символа заданного текста указать, сколько раз встречается в тексте
обработка символьных данных: Для каждого символа заданного текста указать, сколько раз...

Для каждого символа заданного текста указать, сколько раз он встречается в тексте
Разработать алгоритм обработки символьных данных в соответствии с вариантом задания, указанным...

Для каждого слова текста указать, сколько раз слово встречается в тексте
Помогите написать программу, для каждого слова текста указать сколько раз слово встречается в...

Дан файл, содержащий текст. Провести частотный анализ текста
Умоляю помогите!!:wall: я вообще не знаю как ее делать... а очень нужно на си 5. Дан файл,...

3
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
12.12.2012, 21:16 2
Ты, конечно, извини, но у тебя вообще не понятно, что высчитывает программа. Вот как вариант решения:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
#define SIZE 126-33 // ASCII code
 
unsigned array[SIZE];
 
int main(void)
{
    int c, i, counts;
 
    counts = 0;
    while((c = getc(stdin)) != EOF && c != '\n')
    if(c >= 33 && c <= 126) {
        ++counts;
        ++array[c-33];
    }
    for(i = 0; i < SIZE; ++i )
    if( array[i] )
        printf( "symbol '%c' occur %d times, and it makes %.2f%%\n",
            i + 33, array[i], (double)array[i] / (double)counts * 100.0 );
    putc('\n', stdout );
    return 0;
}
Если будешь компилировать со Студии, добавь свой conio.h и _getch(), как в твоем примере.
0
1 / 1 / 1
Регистрация: 14.11.2012
Сообщений: 57
12.12.2012, 21:49  [ТС] 3
Цитата Сообщение от xtorne21st Посмотреть сообщение
Ты, конечно, извини, но у тебя вообще не понятно, что высчитывает программа. Вот как вариант решения:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
#define SIZE 126-33 // ASCII code
 
unsigned array[SIZE];
 
int main(void)
{
    int c, i, counts;
 
    counts = 0;
    while((c = getc(stdin)) != EOF && c != '\n')
    if(c >= 33 && c <= 126) {
        ++counts;
        ++array[c-33];
    }
    for(i = 0; i < SIZE; ++i )
    if( array[i] )
        printf( "symbol '%c' occur %d times, and it makes %.2f%%\n",
            i + 33, array[i], (double)array[i] / (double)counts * 100.0 );
    putc('\n', stdout );
    return 0;
}
Если будешь компилировать со Студии, добавь свой conio.h и _getch(), как в твоем примере.
Спасибо большое, просто я не спец в си,
0
Эксперт 1С
434 / 305 / 92
Регистрация: 28.05.2014
Сообщений: 1,247
08.10.2014, 12:03 4
Цитата Сообщение от xtorne21st Посмотреть сообщение
Ты, конечно, извини, но у тебя вообще не понятно, что высчитывает программа. Вот как вариант решения:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
#define SIZE 126-33 // ASCII code
 
unsigned array[SIZE]; 
 
int main(void)
{
    int c, i, counts;
 
    counts = 0;
    while((c = getc(stdin)) != EOF && c != '\n')
    if(c >= 33 && c <= 126) {
        ++counts;
        ++array[c-33];
    }
    for(i = 0; i < SIZE; ++i )
    if( array[i] )
        printf( "symbol '%c' occur %d times, and it makes %.2f%%\n",
            i + 33, array[i], (double)array[i] / (double)counts * 100.0 );
    putc('\n', stdout );
    return 0;
}
Если будешь компилировать со Студии, добавь свой conio.h и _getch(), как в твоем примере.
у меня примерно такая же задача, но алфавит включает русские символы + знак пробел. Подогнал под себя, но не понимаю логику в некоторых местах.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
 
#define SIZE 240-32 // ASCII code изменил параметры вставки кодов начиная с пробела и до "я"
unsigned array[SIZE]; // подставляем в массив значение параметра SIZE
 
int main(void)
{
    int c, i, counts;
 
    counts = 0; // количество символов вводимых
    while((c = getc(stdin)) != EOF && c != '\n') // пока получаем с клавиатуры поток данных и нет символа конца файла 
    if(c >= 32 && c <= 240) {  // символы в диапозоне
        ++counts; // увеличить на один кол-во символов 
        ++array[c-32]; // тут не пойму, здесь записывается представление символа в коде ASKII и записывается в массив?
    }
    for(i = 0; i < SIZE; ++i )// запускаем цикл для всех элементов массива
    if( array[i] ) // если элементо массива то
        printf( "symbol '%c' occur %d times, and it makes %.2f%%\n", 
            i + 32, array[i], (double)array[i] / (double)counts * 100.0 ); // вывод представления символа/кол-во повторений/ процент от всех символов в тексте, так?
    putc('\n', stdout ); // вывод на экран
    return 0;
}
Я не могу понять в какой момент запоминается символ, который уже упоминался в тексте и кол-во его повторений, для дальнейшего анализа
0
08.10.2014, 12:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.10.2014, 12:03
Помогаю со студенческими работами здесь

Провести частотный анализ текста, указать (в процентах) сколько раз встречается та или иная буква
Дан файл, содержащий текст, набранный заглавными английскими буквами. Провести частотный анализ...

Провести частотный анализ текста, т.е. указать (в процентах), сколько раз встречается та или иная буква.
помогите пожалуйста с алгоритмом для задачи:

Провести частотный анализ текста, т.е. указать (в %), сколько раз встречается та или иная буква
Дана строка, содержащая текст. Провести частотный анализ текста, т.е. указать (в %), сколько раз...

Указать (в процентах) сколько раз встречается та или иная буква в тексте
Дан фаил содержащий текст, набранный заглавными русскими буквами. В нем содержатся так же знаки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru