Решить задачи ** языке Pascal. Заранее спасибо) 1. Дан целочисленный массив из 31...

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

Решить задачи на языке Pascal. Заранее спасибо)
1. Дан целочисленный массив из 31 элемента, в котором записаны значения температуры воздуха в марте. Элементы массива могут принимать значения от (–20) до 20. Подсчитайте среднюю температуру по всем дням, когда была оттепель (температура поднималась выше нуля).
2. В массиве X(m) заменить элементы с четными номерами суммой элементов с нечетными номерами.


Информатика (27 баллов) | 45 просмотров
Дано ответов: 2
0 голосов
Правильный ответ
Задача №1

// PascalABC.NET 3.1, сборка 1239 от 08.05.2016
begin
  var a:=ArrRandom(31,-20,20); a.Println;
  Writeln('Средняя температура в оттепели: ',
    a.Where(x->x>0).Average:0:1,' град.')
end.

Тестовое решение
7 -9 -18 -8 14 -2 12 13 4 -18 13 -6 -8 6 -10 -8 20 -15 15 -2 17 20 19 -1 16 10 -7 9 -15 20 -20
Средняя температура в оттепели: 13.4 град.

Задача №2

// PascalABC.NET 3.1, сборка 1239 от 08.05.2016
// Также проверено в WDE: http://pascalabc.net/WDE
begin
  var x:=ArrRandom(ReadInteger('m='),1,99); x.Println;
  var sn:=x.Where((x,i)->i.IsEven).Sum;
  var i:=1;
  while i  x.Println
end.

Тестовое решение
m= 15
26 31 19 99 3 93 64 31 97 14 88 88 81 49 43
26 421 19 421 3 421 64 421 97 421 88 421 81 421 43
(142k баллов)
0 голосов

1)
const n=31;
var a:array[1..n] of integer;
i,s,k:integer; 
begin
Randomize;
for i:=1 to n do
 begin
 a[i]:=random(41)-20;
 write(a[i]:4);
 end;
writeln;
s:=0; k:=0;
for i:=1 to n do
 if a[i]>0 then begin s:=s+a[i]; k:=k+1; end;
writeln('Средняя температура дней с оттепелью = ',s/k:4:2);
end.

Пример:
 -7  4 17-13 20 -8 12 11 15-17 -5 15-17 -4 14-12  3-20  6 -8-14 -8 18 17  6 -9 16 10 17 20-15
Средняя температура дней с оттепелью = 13.00

2)
const m=10;
var a:array[1..m] of integer;
i,s:integer; 
begin
Randomize;
for i:=1 to m do
 begin
 a[i]:=random(21);
 write(a[i]:4);
 end;
writeln;
s:=0;
for i:=1 to m do 
 if i mod 2 = 1 then s:=s+a[i];
writeln('s = ',s);
for i:=1 to m do 
 if i mod 2 = 0 then a[i]:=s;
for i:=1 to m do write(a[i]:4);
writeln;
end.

Пример:
  14   9   0   8   6   2   2  16   1  16
s = 23
  14  23   0  23   6  23   2  23   1  23

(194k баллов)