Написать программу,которая формирует случайным образом массив из n целых чисел, лежащих в диапазоне от 1 до 5, после чего на экран выводится сам массив и номера элементов с последним элементом
Стоит внести ясность, что из себя представляет логическая операция И и ИЛИ.
Логическая операция И выполняется в том случае, когда оба оператора принимают истинное значение.
Операция ИЛИ же требует наличие одного истинного значения из двух операторов.
Чтобы стало понятнее окончательно, давайте представим, что в классе есть 20 учеников, у всех одинаковая фамилия - Иванов, но разные имена.
Логическое выражение (ИМЯ = ИВАН) & (ФАМИЛИЯ = ИВАНОВ) подразумевает, что мы ищем именно Ивана Иванова из списка всех учеников.
Когда же мы составляем запрос (ИМЯ = ИВАН) | (ФАМИЛИЯ = ИВАНОВ), то мы подразумеваем, что ищем либо ученика с именем Иван, либо ученика с фамилией Иванов. Естественно, во втором случае будет больше запросов.
Итак, касаемо задания:
Чтобы расставить всё в порядке возрастания, необходимо начать с выражений, где используется логический оператор И.
Таким образом, самое маленькое количество запросов будет в 3 варианте.
Ищем дальше логические операторы И. Второй вариант. Но он кажется очень странным, поскольку там используется две одинаковые переменные (шкафы ИЛИ (стулья И шкафы)). Нам необходимо раскрыть сложную формулу. Для этого нужно знать законы логики. Воспользуемся законом поглощения:
x ИЛИ (z И x) = x
Здесь один запрос - шкафы. Это будет вторым вариантом.
Дальше всё предельно просто - в 4 варианте одно ИЛИ и два варианта, а в первом - два. Где больше ИЛИ - там больше запросов. Следовательно, 4 вариант и 1.
uses CRT;
type mas=array[1..20,1..20] of integer;
var a,b,c,m,n,i,j,max,kol:integer;
D:mas;
Begin
clrscr;
write ('Введите размер матрицы: ');
readln (n);
write ('Введите диапазон чисел: ');
readln (a,b);
Randomize;
For i:=1 to n do
Begin
For j:=1 to n do
Begin
D[i,j]:=random(b-a)+a;
write (D[i,j]:4);
End;
writeln;
End;
For i:=1 to n do
For j:=1 to n do
Begin
If (D[i,j] mod 5)=0 then
If max<D[i,j] then
Begin
max:=D[i,j];
End;
End;
kol:=0;
For i:=1 to n do
For j:=1 to n do
Begin
If max<D[i,j] then
Begin
kol:=kol+1;
End;
End;
writeln ('Макс число кратное 5= ',max);
writeln ('Количество чисел больших макс= ',kol);
readln;
End.
3241
Объяснение:
Стоит внести ясность, что из себя представляет логическая операция И и ИЛИ.
Логическая операция И выполняется в том случае, когда оба оператора принимают истинное значение.
Операция ИЛИ же требует наличие одного истинного значения из двух операторов.
Чтобы стало понятнее окончательно, давайте представим, что в классе есть 20 учеников, у всех одинаковая фамилия - Иванов, но разные имена.
Логическое выражение (ИМЯ = ИВАН) & (ФАМИЛИЯ = ИВАНОВ) подразумевает, что мы ищем именно Ивана Иванова из списка всех учеников.
Когда же мы составляем запрос (ИМЯ = ИВАН) | (ФАМИЛИЯ = ИВАНОВ), то мы подразумеваем, что ищем либо ученика с именем Иван, либо ученика с фамилией Иванов. Естественно, во втором случае будет больше запросов.
Итак, касаемо задания:Чтобы расставить всё в порядке возрастания, необходимо начать с выражений, где используется логический оператор И.
Таким образом, самое маленькое количество запросов будет в 3 варианте.
Ищем дальше логические операторы И. Второй вариант. Но он кажется очень странным, поскольку там используется две одинаковые переменные (шкафы ИЛИ (стулья И шкафы)). Нам необходимо раскрыть сложную формулу. Для этого нужно знать законы логики. Воспользуемся законом поглощения:
x ИЛИ (z И x) = xЗдесь один запрос - шкафы. Это будет вторым вариантом.
Дальше всё предельно просто - в 4 варианте одно ИЛИ и два варианта, а в первом - два. Где больше ИЛИ - там больше запросов. Следовательно, 4 вариант и 1.