В цифровой схемотехнике цифровой сигнал - это сигнал, который может принимать два значения, рассматриваемые как логическая "1" и логический "0".
Логические схемы могут содержать до 100 миллионов входов и такие гигантские схемы существуют. Представьте себе, что булева функция (уравнение) такой схемы была потеряна. Как восстановить её с наименьшими потерями времени и без ошибок? Наиболее продуктивный разбить схему на ярусы. При таком записывается выходная функция каждого элемента в предыдущем ярусе и подставляется на соответствующий вход на следующем ярусе. Этот анализа логических схем со всеми нюансами мы сегодня и рассмотрим
//объявляем все переменные и константы //константа n, определяющая размер массива const n = 5; //делаем предварительное описание тип для массива type arr = array[1..n] of integer; //целочисленный тип для примера. Можно использовать и вещественный, если потребуется //и объявляем остальные переменные (включая сам массив) var a: arr; i, sum: integer; //i - переменная цикла, sum - сумма элементов average: double; //тип может быть любым вещественным begin //вводим элементы writeln('введите элементы массива'); for i:=1 to n do readln(a[i]); //инициализируем переменную sum sum := 0; //далее собственно вычисление for i:=1 to m do begin if (i mod 2) = 0 then //проверка на чётность номера элемента sum := sum + a[i]; //находим сумму элементов для вычисления среднего арифметического end; // и последний шаг - находим среднее арифметическое. Не забываем, что количество чётных элементов только в 2 раза меньше количества. Поэтому используем div 2, то бишь делим без остатка на 2. Полученное число и будет количеством чётных элементов в нашем массиве. average := sum / (n div 2); writeln('среднее арифметическое чётных элементов равно'); writeln(average); end.
#include <iostream>using namespace std; //Функция возвращает минимальное возможное число,//Состоящее из цифр числа aint min(int a) { //Массив для подсчета цифр в числе int *k = new int[10]; for (int i = 0; i < 10; i++) k[i] = 0; //Считаем, сколько раз повторяется каждая цифра в числе for (; a; a /= 10) { int t = a % 10; //Если цифра не 0 if (t) k[t]++; } //Переменная для результата int rez = 0; //Множиель разряда int multiplier = 10; //Идем по массиву в обратном порядке for (int i = 9; i > 0; i--) //Если данная цифра есть в массиве (числе) for (; k[i]; k[i]--) { //Дописываем цифру в результат rez += i * multiplier * 0.1; //Увеличиваем множитель, для перехода к следующему разряду multiplier *= 10; } //Удаление массива delete[] k; return rez;}
void main(){ //Входные данные int n; printf("\n << n = "); scanf("%d",&n); //Вывод результата printf("\n >> min = %d", min(n)); system("pause>>void");}
В цифровой схемотехнике цифровой сигнал - это сигнал, который может принимать два значения, рассматриваемые как логическая "1" и логический "0".
Логические схемы могут содержать до 100 миллионов входов и такие гигантские схемы существуют. Представьте себе, что булева функция (уравнение) такой схемы была потеряна. Как восстановить её с наименьшими потерями времени и без ошибок? Наиболее продуктивный разбить схему на ярусы. При таком записывается выходная функция каждого элемента в предыдущем ярусе и подставляется на соответствующий вход на следующем ярусе. Этот анализа логических схем со всеми нюансами мы сегодня и рассмотрим