Объясните как делать var k, m: integer; dat: array[1..10] of integer; begin a [1] : = 20; a [2] : = 16; a [3] : = 20; a [4] : = 36; a [5] : = 15; a [6] : = 21; a [7] : = 28; a [8] : = 17; a [9] : = 26; a [10] : = 35; m : = 1; for k : =1 to 10 do if a[k] > a[m] then begin m: =m+1 end writeln (m)
===== PascalABC.NET =====
begin
// 1
var a := ArrRandom(7, -4, 5);
a.Println;
// 2
var b := ReadArrInteger('Введи 8 чисел:', 8);
Println('Сумма четных:', b.Where(p -> p.IsEven).Sum);
var p := b.Where(p -> p > 4).DefaultIfEmpty.Product;
if p >0 then
Println('Произведение элементов, больших 4:', p)
else
Println('Нет элементов, больших 4');
// 3
var c := ArrRandom(10, -14, 7);
c.Println;
Print('Минимальный элемент, больший 5');
var m := c.Where(p -> p > 5).DefaultIfEmpty.Min;
if m = 0 then
Println('отсутствует')
else
Println('равен', m);
var im := c.IndexMin;
Println('Миниммальный элемент номер', im + 1, 'равен ', c[im])
end.
1. Заметим, что первый вариант дает в результате 0 во всех случаях, так как конъюнкция ложна, если ложен хотя бы один из её аргументов, а это не соответствует значениям F.
2. Выражение в варианте 2, как и в варианте 4, принимает ложные значения, если X не эквивалентно Z, а значит, по первой и третьей строчке и 2, и 4 вариант удовлетворяют F.
3. Остается сравнить их по второй строке, в которой F – истинно. В этой строке X=0, Y=1, Z=0, значит, выражение в варианте 2 здесь истинно.
4. Так как значения F и значения функции в варианте 2 сошлись по всем трем строкам, вариант 2 является ответом к данной задаче.
Объяснение: