Известен рост каждого ученика группы. рост мальчиков задан отрицательными числами. верно ли, что средний рост мальчиков не превышает рост девочек более чем на 10 см? написать программу на free pascal.
Const nn=50; // максимальное количество учеников var i,n,sm,sd,km,kd:integer; am,ad:real; var a:array[1..nn] of integer; begin Write('Введите количество учеников: '); Read(n); Writeln('Введите рост учеников'); sm:=0; sd:=0; km:=0; kd:=0; for i:=1 to n do begin Read(a[i]); if a[i]>0 then begin sd:=sd+a[i]; Inc(kd) end else begin sm:=sm-a[i]; Inc(km) end end; am:=sm/km; ad:=sd/kd; Write('Средний рост мальчиков (',am:0:1,') '); if am-ad<=10 then Write('не '); Writeln('превышает средний рост девочек (',ad:0:1,') '); Writeln('больше, чем на 10 см') end.
Примерное решение
Введите количество учеников: 9 Введите рост учеников -192 165 -174 179 -172 171 169 170 -170 Средний рост мальчиков (177.0) не превышает средний рост девочек (170.8) больше, чем на 10 см
Все решается через степени двойки. 1. Номер года. Число от 1 до 2100. Можно перевести 2100 в двоичную систему и посмотреть, сколько бит оно займет. Но это долго. Ведь можно просто вспомнить, что 1 Кбайт - это 1024 байта или 2 в десятой степени. 2 в одиннадцатой 2048 (удваиваем), 2 в двенадцатой - 4096. Наш диапазон дат укладывается в интервал между 2048 и 4096, поэтому нам потребуется 12 бит. 2. Номер месяца - их 12. У нас есть 2 в четвертой - это 16, и два в кубе - только 8. Поэтому еще 4 бита запасаем на месяц. 3. Номер дня - максимальный 31. Мы знаем, что 2 в пятой степени равно 32, значит 5 бит будет достаточно. Всего нам потребуется 12+4+5=21 бит.
Набрать в 7л-ведро и вылить в 13л-ведро/ снова набрать 7л-ведро вылить в 13л-ведро\ в ведре остался 1л\ 13л-ведро освободить\ литр из ведра вылить в 13л-ведро\ набрать в 7л-ведро и вылить в 13л-ведро\снова набрать7л-ведро и вылить в 13л-ведро\ в ведре осталось 2л\ переливаем 2л в 13л-ведро\ набираем 7л-ведро и выливаем в 13л-ведро\набираем 7л-ведро и выливаем в 13л-ведро\ в ведре осталось 3л\ освободить 13л-ведро\перелить 3л в 13л-ведро\набрать 7л-ведро и вылить в 13л-ведро\набрать 7л-ведро и вылить в 13 л-ведро\в ведре осталось 4л\ дважды набираем 7л ведро и выливаем в 13л-ведро\в 7л-ведре останется 5л\ 13л-ведро освободить
nn=50; // максимальное количество учеников
var
i,n,sm,sd,km,kd:integer;
am,ad:real;
var a:array[1..nn] of integer;
begin
Write('Введите количество учеников: ');
Read(n);
Writeln('Введите рост учеников');
sm:=0; sd:=0; km:=0; kd:=0;
for i:=1 to n do
begin
Read(a[i]);
if a[i]>0 then begin sd:=sd+a[i]; Inc(kd) end
else begin sm:=sm-a[i]; Inc(km) end
end;
am:=sm/km; ad:=sd/kd;
Write('Средний рост мальчиков (',am:0:1,') ');
if am-ad<=10 then Write('не ');
Writeln('превышает средний рост девочек (',ad:0:1,') ');
Writeln('больше, чем на 10 см')
end.
Примерное решение
Введите количество учеников: 9
Введите рост учеников
-192 165 -174 179 -172 171 169 170 -170
Средний рост мальчиков (177.0) не превышает средний рост девочек (170.8)
больше, чем на 10 см