Advertisement
Usow_Maxim

Информатика лаба 1

Feb 19th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.48 KB | None | 0 0
  1. #include <stdfix.h>
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. #include <time.h>
  5. #include <windows.h>
  6.  
  7. int WriteInt()
  8. {
  9.     char str[10];
  10.     int value = 0;
  11.     while(true)
  12.     {
  13.         scanf("%s", str);
  14.         value = atoi(str)? atoi(str) : 0;
  15.         if(value > 0)
  16.             break;
  17.         else
  18.             printf("Введите значение N > 0: ");
  19.     }
  20.     return value;
  21. }
  22.  
  23. int main()
  24. {
  25.     SetConsoleCP(1251);
  26.     SetConsoleOutputCP(1251);
  27.  
  28.     int N = 0, i = 0, menu = 0;
  29.     printf("Введите количество элементов алфавитного источника: \n");
  30.     N = WriteInt();
  31.     float A[N];
  32.     float summ = 0, sred = 0, d = 0;
  33.     do
  34.     {
  35.         printf("-----------------------------------------\n");
  36.         printf("|(1)  Заполнить алфавитный источник     |\n");
  37.         printf("|(2)       Выполнение задания           |\n");
  38.         printf("|(3)       Выход из программы           |\n");
  39.         printf("-----------------------------------------\n");
  40.         menu = WriteInt();
  41.  
  42.         switch (menu)
  43.         {
  44.         case 1:
  45.             {
  46.                 printf("Заполните алфавитный источник из %d эелементов:\n", N);
  47.                 printf("(Для обозначения дроби используйте запятую!)\n");
  48.                 for(i = 0; i < N; i++)
  49.                 {
  50.                     printf("Элемент алф-го источника [%d]: \n", i);
  51.                     A[i] = WriteInt();
  52.                 }
  53.                 printf("Полученный алфавитный источник: \n");
  54.                 for(i = 0; i < N; i++)
  55.                 {
  56.                 printf("%5f", A[i]);
  57.                 printf("\n");
  58.                 }
  59.             }
  60.             break;
  61.         case 2:
  62.             //Энтропия общая
  63.             for(i = 0; i < N; i++)
  64.             {
  65.                 summ += A[i];
  66.             }
  67.             printf("Общая энтропия = %f\n", summ);
  68.             //Энтропия средняя
  69.             sred = summ/N;
  70.             printf("Средняя энтропия = %f\n", sred);
  71.             //избыточность
  72.             d = ((summ - sred) / summ) * 100;
  73.             printf("Избыточность = %f\n", d);
  74.             break;
  75.         case 3:
  76.                 break;
  77.             default:
  78.             printf("Введите значение меню \n");
  79.         }
  80.     } while (menu != 3);
  81.     getchar();
  82.     return 0;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement