Допишите программный код, очень Задача.Написать программу, которая проверяет введенный возраст человека и определяет возрастной его период. При вводе ошибочных данных программа выдает сообщение «Не верно введён возраст».
1. Составим словесную модель:
По данным Всемирной организации здравоохранения
0-12 - детство
13-17 - юность
18-44 - молодость
45-60 - средний возраст
61-75 - пожилой
76-90 - старческий
91+ - долгожитель
procedure TForm1.Button1Click(Sender: TObject);
var …………………………..;
begin
N:= StrToInt (Edit1.Text);
case ……… of
0..12 : Label3.Caption:= ‘……………………………';
……………………………………………………………………..
……………………………………………………………………..
……………………………………………………………………..
……………………………………………………………………..
……………………………………………………………………..
……………………………………………………………………..
……………………………………………………………………..
Else Label3.Caption:= 'Не верно введен возраст';
end;
end;
Определим остаток от деления а на 8. Если он нулевой, то a - первое из найденных чисел. Остаток от деления 121 на 8 равен 1, т.е. нам не повезло. Тогда прибавим к значению а число 8 и вычтем найденный остаток.121+8-1=128. Это и есть наше первое число. Сужаем интервал [128;400]. Чтобы найти, сколько на нем чисел, кратных 8, надо разделить нацело 400-128 на 8 и прибавляем к результату единицу. Получаем 35 - это и есть ответ.
Программу составим универсальную, которая будет находить на интервале [a;b] количество чисел, кратных m.
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018
Внимание! Если программа не работает, обновите версию!
begin
var (a,b):=ReadInteger2('Введите через пробел границы интервала:');
var m:=ReadInteger('Укажите число для поиска кратных ему:');
var r:=a mod m;
if r>0 then a:=a+8-r;
Writeln('Количество чисел равно ',(b-a) div m +1)
end.
Пример
Введите через пробел границы интервала: 121 400
Укажите число для поиска кратных ему: 8
Количество чисел равно 35
2. В этой задаче все совсем просто. Читаем очередное число p, находим остаток от деления p на восемь. Если он ненулевой, проверяем, чтобы остаток от деления p на 10 был равен двум. Если и это верно, добавляем p к накапливаемой сумме s. Так поступаем n раз.
begin
var n:=ReadInteger('n=');
var s:=0;
var p:integer;
for var i:=1 to n do begin
Read(p);
if p mod 8 <> 0 then
if p mod 10 = 2 then s:=s+p
end;
Writeln('Сумма отобранных чисел равна ',s)
end.
Пример
n= 8
127 32 222 45 80 832 702 29
Сумма отобранных чисел равна 924
program z1;
var a:array [1..20] of integer;
i,s,k:integer;
begin
randomize;
s:=0;
k:=0;
write('Массив: ');
for i:=1 to 20 do
begin
a[i]:=random(90)+10;
if a[i] mod 2 <> 0 then
begin
s:=s+a[i];
k:=k+1
end;
write(a[i],' ')
end;
writeln;
writeln('Среднее арифметическое нечётных элементов: ',s/k:0:1)
end.
Объяснение:
Задаём значение элемента с random
Проверяем значение элемента на нечётность, если условие истинно, то считаем сумму и количество элементов
Выводим значение элемента на экран
Выводим среднее арифметическое (результат деления суммы на количество) нечётных элементов