Написать команды для следующих действий: 1.Ввести значение для переменной целого числа D 2.Ввести значение для переменной вещественного числа L 3.Вычислить S по формуле: S=L в степени D 4. Вывести переменную S на экран.
1. Видим, что у нас тут член массива сравнивается с нулем, и если наше условие выполняется, то мы к какой-то переменной прибавляем единичку. На что это похоже? Правильно! На поиск количества нулей в массиве.
2. Тут видим, что проверяется i на четность, а i это у нас счетчик и индекс элемента массива. Если счетчик четный, то мы к сумме прибавляем элемент. Что это? Правильно! Сумма всех элементов с четными номерами.
3. В этом куске кода мы видим, что цикл начинается с двух. Зачем же это надо? А всё просто, n = 1, a[n] = a[1], получается, что мы берем первый член массива за минимум и проверяем, есть ли элемент который меньше его, а это значит, что мы ищем минимум, но важно увидеть, что мы ищем не само значение, а индекс минимального элемента.
4. Тут всё просто, проверяем число на кратность 5, если наше условие кратно пяти, то к переменной k прибавляется единица. Ну и что же это у нас? Да-да, это количество всех элементов массива, значения которых кратны 5.
5. Здесь похожа ситуация с третьим куском кода, но теперь мы ищем максимум, а не минимум и ищем не индекс, а само значение. Первый элемент массива берем за максимум, далее проверяем нет ли элементов больше, чем этот, если какой-то элемент больше максимума, то мы присваиваем максимуму значение этого элемента.
6. Здесь можем наблюдать вот такую штуку "<>", в Паскале она означает "не равно", то есть, мы проверяем не равен ли элемент массива нулю, если не равен, то умножаем этот элемент на наше произведение.
PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018 Внимание! Если программа не работает, обновите версию!
begin Writeln('*** Исходный массив ***'); var k:=4; var a:=MatrRandom(k+1,k+1,-99,99); for var i:=0 to k do a[i,i]:=-1; a.Println(4); Writeln(4*k*'-'); var s:=a.ElementsByRow; // последовательность, памяти не занимает Writeln('Количество элементов, оканчивающихся на ноль: ', s.Where(t->t mod 10=0).Count); Writeln('Количество отрицательных элементов: ', s.Where(t->t<0).Count); Writeln('Количество нулевых элементов: ', s.Where(t->t=0).Count); Write('Сумма элементов побочной лиагонали: '); var sum:=0; for var i:=0 to k do sum+=a[i,4-i]; Writeln(sum) end.
1 - Количество нулевых элементов
2 - Сумма всех элементов с четными номерами
3 - Номер(индекс) минимального элемента
4 - Количество элементов, кратных 5
5 - Значение наибольшего элемента массива
6 - Произведение ненулевых элементов
Пояснения:
1. Видим, что у нас тут член массива сравнивается с нулем, и если наше условие выполняется, то мы к какой-то переменной прибавляем единичку. На что это похоже? Правильно! На поиск количества нулей в массиве.
2. Тут видим, что проверяется i на четность, а i это у нас счетчик и индекс элемента массива. Если счетчик четный, то мы к сумме прибавляем элемент. Что это? Правильно! Сумма всех элементов с четными номерами.
3. В этом куске кода мы видим, что цикл начинается с двух. Зачем же это надо? А всё просто, n = 1, a[n] = a[1], получается, что мы берем первый член массива за минимум и проверяем, есть ли элемент который меньше его, а это значит, что мы ищем минимум, но важно увидеть, что мы ищем не само значение, а индекс минимального элемента.
4. Тут всё просто, проверяем число на кратность 5, если наше условие кратно пяти, то к переменной k прибавляется единица. Ну и что же это у нас? Да-да, это количество всех элементов массива, значения которых кратны 5.
5. Здесь похожа ситуация с третьим куском кода, но теперь мы ищем максимум, а не минимум и ищем не индекс, а само значение. Первый элемент массива берем за максимум, далее проверяем нет ли элементов больше, чем этот, если какой-то элемент больше максимума, то мы присваиваем максимуму значение этого элемента.
6. Здесь можем наблюдать вот такую штуку "<>", в Паскале она означает "не равно", то есть, мы проверяем не равен ли элемент массива нулю, если не равен, то умножаем этот элемент на наше произведение.
Если остались вопросы - добро в комментарии.
Внимание! Если программа не работает, обновите версию!
begin
Writeln('*** Исходный массив ***');
var k:=4;
var a:=MatrRandom(k+1,k+1,-99,99);
for var i:=0 to k do a[i,i]:=-1;
a.Println(4); Writeln(4*k*'-');
var s:=a.ElementsByRow; // последовательность, памяти не занимает
Writeln('Количество элементов, оканчивающихся на ноль: ',
s.Where(t->t mod 10=0).Count);
Writeln('Количество отрицательных элементов: ',
s.Where(t->t<0).Count);
Writeln('Количество нулевых элементов: ',
s.Where(t->t=0).Count);
Write('Сумма элементов побочной лиагонали: ');
var sum:=0;
for var i:=0 to k do sum+=a[i,4-i];
Writeln(sum)
end.