Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Anna Rozhkova
0 / 0 / 0
Регистрация: 28.08.2011
Сообщений: 1
#1

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

31.08.2011, 18:26. Просмотров 1002. Ответов 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++):

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

Для каждой строки найти слова, которые не имеют ни одного из букв: "l", "k", "r", "s" i "j"
Задано символьные строки. Строка состоит из нескольких слов (наборов символов),...

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

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

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

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания"
Создать класс Книга поля: название книги,количество страниц,год издания...

3
Jupiter
Каратель
Эксперт С++
6568 / 3989 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
31.08.2011, 18:38 #2
Цитата Сообщение от Anna Rozhkova Посмотреть сообщение
goto w;} } } } } } }
код нечитабелен ибо все "слиплось", а вы еще комментарии за так хотите
0
schdub
Эксперт С++
3016 / 1361 / 415
Регистрация: 19.01.2009
Сообщений: 3,615
Завершенные тесты: 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
Привет! Вот еще темы с ответами:

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

Базовый класс "Изделие" и производные классы "Мышь", "Клавиатура", "Монитор"
/*Создать класс изделие, с полями себестоимость, цена, время выполнения,...

Реализовать структуру "Анкета" с полями "Фамилия", "Пол" и "Адрес"
Здравствуйте. Проходим тему Структуры, не могу понять, как определить...

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


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

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

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