Задание:
Помогите решить две задачки (Паскаль) Задание 1В одномерном массиве случайных вещественных числе F (17) определить количество положительных элементов и их сумму. Задание 2В матрице L (5,5) случайных вещественных чисел определить максимальный элемент выше побочной диагонали, поменять его местами с элементом 2 строки 2 столбца. Большая просьба расписать задачу подробно, хочу не просто списать решения, а понять его и научиться решать сам, огромное спасибо.
Решение:
1) uses crt; const n=17; //число элементов в массивеvar f: array[1… n] of integer; i,s,k: integer; beginrandomize; s: =0; k: =0; //чтобы не возникало ошибок, на всякий случай все обнулимfor i: =1 to n dobeginf[i]: =random (100) -50; //к примеру, взяла интервал от -50 до 50//всего получилось 100 чисел, минимальное -50writeln (f[i]); if f[i]>0 thenbegins: =s+f[i]; inc (k) //собираем сумму положительных элементов массива//и находим их количество, прибавляя к переменной к единицуend; end; writeln; //протсо сделаем пробел между массивом и результатами, чтобы не получилась кашаwriteln (s); writeln (k); end.2) uses crt; const n=5; var l: array[1… n,1… n] of integer; i,j,max,k,t,m,i1,j1: integer; beginrandomize; for i: =1 to n dofor j: =1 to n dol[i,j]: =random (100) -50; for i: =1 to n dobeginfor j: =1 to n dowrite (l[i,j]: 4); //это означает, что на запись элемента массива отводится 4 местаwriteln; end; //таким способом я вывела на экран двумерный массив в форме матрицыwriteln; max: =-50; //чтобы найти максимальный элемент, нужно сначала приравнять его к минимально возможному значению//так как побочная диагональ располагается для строк: от 1 до 4, а для столбцов — от 1 до 4 (сама побочная диагональ нас не интересует), то заведем еще переменные t и mt: =1; m: =4; //теперь найдем минимальный элемент выше побочной диагоналиrepeatfor i: =t to t dofor j: =1 to m doif l[i,j]>max thenbeginmax: =l[i,j]; i1: =i; j1: =j; //мы нашли максимальный элемент и запомнили его положениеend; inc (t); m: =m-1; until t=5; l[2,2]: =l[2,2]+l[i1,j1]; l[i1,j1]: =l[2,2]-l[i1,j1]; l[2,2]: =l[2,2]-l[i1,j1]; // поменяли их местамиfor i: =1 to n dobeginfor j: =1 to n dowrite (l[i,j]: 4); writeln; end; //опять выводим матрицу на экранwriteln; end.
Знаете другой ответ?