Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Anna Rozhkova
0 / 0 / 0
Регистрация: 28.08.2011
Сообщений: 1
#1

"Теория вероятности Шейтона" и "Кодирование/дикодирование информации" (C++) - C++

31.08.2011, 18:26. Просмотров 979. Ответов 3
Метки нет (Все метки)

Всем здравструйте!
Есть две задачки: "Теория вероятности Шейтона" и "Кодирование/декодирование информации".
Код первой:
Задание первой:
1. Составить программу на языке C/С++ наличия букв русского алфавита в тексте, записанном в файл.
2. Определить энтропию этого текста.
3. Построить гистограмму распределения букв.
КОД
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
#include<iostream.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
#include<fstream.h>
#include<string.h>
char text;
char alf[26]="abcdefghijklmnopqrstuvwxyz";
int i,j,num[26];
float h;
void main()
{clrscr();
for (i=0;i<26;i++)
num[i]=0;
ifstream file("en.txt");
if (!file)
cout<<"Файл не открыт \n";
while (file>>text)
{for (i=0;i<26;i++)
if (alf[i]==text)
num[i]++; j++;}
for (i=0;i<26; i++)
if (num[i]!=0)
h=h+(float(num[i])/j)*(log(float(j)/num[i])/log(2));
cout<<"Распределение букв: \n";
for(i=0;i<26;i++)
cout<<alf[i]<<": "<<num[i]<<"\t";
cout<<"\n Энтропия: "<<h;
getch();
int dr=DETECT,mod;
initgraph(&dr,&mod,"");
setcolor(2);
line (40,440,550,440);
line (40,440,40,50);
outtextxy(45, 450, "a b c d e f g h i j k l m n o p q r s t u v w x y z");
int l;
for(i=0;i<26;i++)
{setcolor(14);
setfillstyle(SOLID_FILL,14);
l=45+i*16;
if (num[i]!=0)
{bar (l,440,l+7,440-num[i]);
floodfill(l+2,440-num[i]+1,14);}}
getch();
closegraph();}
Задание второй:
Программа работы
1. Составить программу по декодированию текста, если даны коды букв, удовлетворяющие условию Фано.
2. Определить расстояние Хемминга между словами, взятыми из файла с именем cshem.dat
3. Закодировать слово Y по данному слову X, слово Y будет производным от слова X.
КОД
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
 #include <iostream.h>
 #include <conio.h>
 #include <string.h>
 #include <fstream.h>
 char pas[100],z,n,c;
 int i;
 void main()
 { clrscr();
 cout<<"\t\t\t\tЗадание 1\n\n";
 char pas[]="LLLLOLOOLOOOOLLOLLOOLLLOLLOOOLOOLOL";
 cout<<"Нужно расшифровать слово: "<<pas<<" используя коды\n букв и условие Фано.";
 cout<<"\n\nПолученное слово: ";
 for (int i=0;i<strlen(pas);i++)
 {switch (pas[i]){case 'O' :{switch (pas[++i])
 {case 'L' : cout << "к"; goto w;
 case 'O' : cout << "о"; goto w;}}
 case 'L' : {switch (pas[++i]) {
 case 'O' : {switch (pas[++i])
 {case 'L' : cout << "д"; goto w;
 case 'O' : cout << "н"; goto w;}}
 case 'L' : {switch (pas[++i])
 {case 'L' :
 {switch (pas[++i])
 {case 'O' : cout << "ы"; goto w;
 case 'L' : cout << "э"; goto w;}}
 case 'O' : {switch (pas[++i])
 {case 'O' : cout << "й"; goto w;
 case 'L' : cout << "м"; goto w;} } } } } } }
 w:}
 getch();
 clrscr();
 
 //2
 cout<<"\t\t\t\tЗадание 2\n\n";
 ifstream file("cshem.dat");
 if (!file) cout<<"Файл не может быть открыт!";
 char k[10],l[10];
 int m=0;
 file>>k;
 while (file>>l)
 {
 m=0;
 for (i=0;i<strlen(k);i++)
 {if (k[i]!=l[i])
 m++;
 }
 cout<<"\nРасстояние Хемминга для слов "<<k<<" и "<<l<<" равно "<<m;
 strcpy(k,l);
 }
 file.close();
 getch();
 clrscr();
 //3
 cout<<"\t\t\t\tЗадание 3\n\n";
 char pr[]="LOOLLOOLLOO";
 char y[100];
 cout<<"Нужно найти производную слова: "<<pr<<"\n\n";
 for (i=0;i<strlen(pr);i++)
 {if (pr[i]==pr[i-1]) y[i]='O';
 else y[i]='L';}
 int n=i;
 cout<<"Производной является:";
 for (i=0;i<n;i++)
 cout<<y[i];
 getch();}
Если Вам не сложно, помогите, пожалуйста, разобраться с этим. Раскомментируйте, пожалуйста, программки.
Заранее большое спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2011, 18:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос "Теория вероятности Шейтона" и "Кодирование/дикодирование информации" (C++) (C++):

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс &quot;вентилятор&quot; содержащий в себе классы:...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата" - C++
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в программе ввести в массив данные и...

3
Jupiter
Каратель
Эксперт С++
6566 / 3987 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
31.08.2011, 18:38 #2
Цитата Сообщение от Anna Rozhkova Посмотреть сообщение
goto w;} } } } } } }
код нечитабелен ибо все "слиплось", а вы еще комментарии за так хотите
0
schdub
2974 / 1319 / 244
Регистрация: 19.01.2009
Сообщений: 3,471
Завершенные тесты: 1
31.08.2011, 18:59 #3
Цитата Сообщение от Anna Rozhkova Посмотреть сообщение
Составить программу на языке C/С++ наличия букв русского алфавита в тексте, записанном в файл
Цитата Сообщение от Anna Rozhkova Посмотреть сообщение
C++
1
char alf[26]="abcdefghijklmnopqrstuvwxyz";
Как это согласуется? Что в интернетах ничего лучше не нашлось?
0
grizlik78
31.08.2011, 20:32     "Теория вероятности Шейтона" и "Кодирование/дикодирование информации" (C++)
  #4

Не по теме:

Цитата Сообщение от Anna Rozhkova Посмотреть сообщение
"Теория вероятности Шейтона"
Теория Шайтана, чего уж там. Ага. Встречу Шайтана на улице, или не встречу.

1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.08.2011, 20:32
Привет! Вот еще темы с ответами:

по строкам.замените в слове сочетание "му" на "а" , а букву "ы" на "ца". очень нужно - C++
замените в слове сочетание &quot;му&quot; на &quot;а&quot; , а букву &quot;ы&quot; на &quot;ца&quot;. очень нужно Добавлено через 21 час 4 минуты неужели никто не знает...

Реализовать структуру "Анкета" с полями "Фамилия", "Пол" и "Адрес" - C++
Здравствуйте. Проходим тему Структуры, не могу понять, как определить количество, само задание: #include &lt;iostream&gt; #include...

Структура «Преподаватель» с полями "ФИО", "стаж", "категория", "нагрузка" - C++
Функция - расчёт зарплаты по нагрузке и оплате часа для определенной категории. Категория Оплата часа Вторая 150 Первая 200 ...

Создать иерархию классов "Фирма", "Бухгалтер", "Сотрудник", "Зарплата" - C++
Само по себе понятие &quot;зарплата&quot; не особенно конкретное: оно включает и почасовую, и ставочную зарплату, и комиссионные, и процент с продаж....


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

Или воспользуйтесь поиском по форуму:
4
31.08.2011, 20:32
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru