Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdfix.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <time.h>
- #include <windows.h>
- int WriteInt()
- {
- char str[10];
- int value = 0;
- while(true)
- {
- scanf("%s", str);
- value = atoi(str)? atoi(str) : 0;
- if(value > 0)
- break;
- else
- printf("Введите значение N > 0: ");
- }
- return value;
- }
- int main()
- {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- int N = 0, i = 0, menu = 0;
- printf("Введите количество элементов алфавитного источника: \n");
- N = WriteInt();
- float A[N];
- float summ = 0, sred = 0, d = 0;
- do
- {
- printf("-----------------------------------------\n");
- printf("|(1) Заполнить алфавитный источник |\n");
- printf("|(2) Выполнение задания |\n");
- printf("|(3) Выход из программы |\n");
- printf("-----------------------------------------\n");
- menu = WriteInt();
- switch (menu)
- {
- case 1:
- {
- printf("Заполните алфавитный источник из %d эелементов:\n", N);
- printf("(Для обозначения дроби используйте запятую!)\n");
- for(i = 0; i < N; i++)
- {
- printf("Элемент алф-го источника [%d]: \n", i);
- A[i] = WriteInt();
- }
- printf("Полученный алфавитный источник: \n");
- for(i = 0; i < N; i++)
- {
- printf("%5f", A[i]);
- printf("\n");
- }
- }
- break;
- case 2:
- //Энтропия общая
- for(i = 0; i < N; i++)
- {
- summ += A[i];
- }
- printf("Общая энтропия = %f\n", summ);
- //Энтропия средняя
- sred = summ/N;
- printf("Средняя энтропия = %f\n", sred);
- //избыточность
- d = ((summ - sred) / summ) * 100;
- printf("Избыточность = %f\n", d);
- break;
- case 3:
- break;
- default:
- printf("Введите значение меню \n");
- }
- } while (menu != 3);
- getchar();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement