Составьте программу, которая формируют массив из шестнадцати случайных целых чисел от -20 до 20 и: а) находит элементы с нулевыми значениями; б) находит индексы четных элементов;
var i: integer; a: array [1..16] of integer; begin randomize; writeln('Массив: '); for i := 1 to 16 do begin a[i] := random(41) - 20; write(a[i]:5); end; writeln; writeln('Нулевые элементы: '); for i := 1 to 16 do if A[i] = 0 then write(i:5); writeln; writeln('Четные элементы: '); for i := 1 to 16 do if A[i] mod 2 = 0 then write(i:5); end.
В задании не сказано, откуда берутся исходные данные, поэтому будем вводить их с клавиатуры. Сначала ведем общее количество данных (не факт, что данные за месяц снимались строго ежедневно), а затем сами данные. Это позволит заодно осуществить контроль ввода.
var n,s,t,i:integer; begin Write('Укажите количество данных: '); Read(n); Writeln('Теперь вводите данные'); s:=0; for i:=1 to n do begin Read(t); s:=s+t end; Writeln('Средняя температура за месяц составила ',s/n:0:1) end.
Пример решения
Укажите количество данных: 11 Теперь вводите данные 27 29 26 31 24 23 27 30 31 28 25 Средняя температура за месяц составила 27.4
Дорога, соединяющая города i и j, даст единицу в две позиции - (i, j) и (j, i). Тогда общее количество единиц в матрице равно удвоенному числу дорог. Отсюда и простое решение - считать N^2 чисел, подсчитать количество единиц и поделить его на 2. Можно считать и сумму - от этого ничего не изменится.
#include <iostream> int main() { int n = 0, sum = 0, temp = 0; std :: cin >> n; for (int i = 0; i < n * n; i++) { std :: cin >> temp; sum += temp; } std :: cout << sum / 2; return 0; }
i: integer;
a: array [1..16] of integer;
begin
randomize;
writeln('Массив: ');
for i := 1 to 16 do
begin
a[i] := random(41) - 20;
write(a[i]:5);
end;
writeln;
writeln('Нулевые элементы: ');
for i := 1 to 16 do
if A[i] = 0 then write(i:5);
writeln;
writeln('Четные элементы: ');
for i := 1 to 16 do
if A[i] mod 2 = 0 then write(i:5);
end.