#include <stdio.h> void sort(int in[], int a, int b) { int i,j,mode; if (a >= b) return; for (i=a, j=b, mode=1; i < j; mode >0 ? j-- : i++) if (in[i] > in[j]) { int c = in[i]; in[i] = in[j]; in[j] = c; mode = -mode; } sort(in, a, i-1); sort(in, i+1, b); } int main(void) { int m = 0; int x = 0; int a[10] = {-8,-10,5,6,-10,-3,9,-7,-7,-8}; printf("\nИзначальный массив: "); for (int i = 0; i < 10; i++) { printf("%i ", a[i]); } printf("\nМетод обменом (пузырьком): "); for (int i = 0; i < 9; i++) { for (int j = 0; j < 9-i; j++) { if (a[j] < a[j + 1]) { m = a[j]; a[j] = a[j + 1]; a[j + 1] = m; } } } for (int i = 0; i < 10; i++) { printf("%i ", a[i]); } printf("\nМетод вставкой: "); for (int i = 0; i < 10; i++) { x = a[i]; m = i; while (m > 0 && a[m - 1] > x) { a[m] = a[m - 1]; m = m - 1; } a[m] = x; } for (int i = 0; i < 10; i++) { printf("%i ", a[i]); } printf("\nМетод выбором: "); for (int i = 0; i < 10; i++) { m = i; for (int j = i + 1; j < 10; j++) { if (a[j] > a[m]) { m = j; } } x = a[i]; a[i] = a[m]; a[m] = x; } for (int i = 0; i < 10; i++) { printf("%i ", a[i]); } printf("\nМетод разделением (qsort): "); sort(a, 0, 9); for (int i = 0; i < 10; i++) { printf("%i ", a[i]); } return 0; }
Для удобства записи будем использовать общепринятые сокращения. Операцию логического сложения (дизъюнкцию) "∨" будем обозначать знаком "+". Логическое умножение (конъюнкцию) "∧" будем обозначать знаком умножения (точкой) или опускать, как принято в алгебре. Вместо знака логического отрицания будем использовать надчеркивание.
2. Переведем в двоичную систему счисления заданные значения A, B, C:
3. Построим таблицу истинности для функции у
4. Переведем результат в десятичную систему счисления