Помогите решить две задачки (Паскаль)Задание 1В одномерном массиве случайных вещественных...

0 голосов
35 просмотров

Помогите решить две задачки (Паскаль)

Задание 1
В одномерном массиве случайных вещественных числе F(17) определить количество положительных элементов и их сумму.

Задание 2
В матрице L(5,5) случайных вещественных чисел определить максимальный элемент выше побочной диагонали, поменять его местами с элементом 2 строки 2 столбца.

Большая просьба расписать задачу подробно , хочу не просто списать решения , а понять его и научиться решать сам , огромное спасибо.


Информатика (12 баллов) | 35 просмотров
Дан 1 ответ
0 голосов

1)uses crt;
const n=17;//число элементов в массиве
var f:array[1..n] of integer;
i,s,k:integer;
begin
randomize;
s:=0;
k:=0;//чтобы не возникало ошибок, на всякий случай все обнулим
for i:=1 to n do
begin
f[i]:=random(100)-50;//к примеру, взяла интервал от -50 до 50
//всего получилось 100 чисел, минимальное -50
writeln(f[i]);
if f[i]>0 then
begin
s:=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;
begin
randomize;
for i:=1 to n do
for j:=1 to n do
l[i,j]:=random(100)-50;
for i:=1 to n do
begin
for j:=1 to n do
write(l[i,j]:4);//это означает, что на запись элемента массива отводится 4 места
writeln;
end;//таким способом я вывела на экран двумерный массив в форме матрицы
writeln;
max:=-50;//чтобы найти максимальный элемент, нужно сначала приравнять его к минимально возможному значению
//так как побочная диагональ располагается для строк: от 1 до 4,а для столбцов - от 1 до 4 (сама побочная диагональ нас не интересует), то заведем еще переменные t и  m
t:=1;
m:=4;
//теперь найдем минимальный элемент выше побочной диагонали
repeat
for i:=t to t do
for j:=1 to m do
if l[i,j]>max then
begin
max:=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 do
begin
for j:=1 to n do
write(l[i,j]:4);
writeln;
end;//опять выводим матрицу на экран
writeln;
end.








(1.4k баллов)
0

Спасибо большое :)

0

Пожалуйста)