Напишите класс Голубь (Pigeon), экземпляр p которого инициализируется с аргументами: имя (строка), дальность полёта и грузоподъёмность (целые числа). Класс реализует (инкапсулирует) функциональность:
str(p) — возвращает своё имя в формате Pigeon <имя>, <грузоподъёмность>;
p.eat(food) — подкрепляется. За каждые 10 порций еды грузоподъёмность увеличивается на 1. Если количество порций не кратно 10, остаток хранится в запасе и может быть учтён при следующей еде. Ничего не возвращает;
p.carry(load, range) — проверяет, может ли он донести переданный в качестве аргумента груз на заданную дальность. Возвращает True, если может, и False, если хоть что-то меньше;
p.flap_wings() — машет крыльями. При каждом вызове меняется возвращаемое значение: то up, то down. Первый раз up;
экземпляры класса можно сравнивать. Сначала сравниваются по грузоподъёмности, потом по дальности, потом по длине имени, потом по алфавиту.
Пример 1
Ввод Вывод
from solution import Pigeon
p = Pigeon('Johnas', 100, 10)
print(p)
print(p.flap_wings())
print(p.flap_wings())
print(p.flap_wings())
p.eat(25)
print(p)
print(p.carry(100, 13))
Вывод:
Pigeon Johnas, 10
up
down
up
Pigeon Johnas, 12
False
Пример 2
Ввод Вывод
from solution import Pigeon
p1 = Pigeon('Johnas', 100, 10)
p2 = Pigeon('Calman', 100, 10)
print(p1, p2, sep='\n')
print(p1 > p2)
p2.eat(13)
print(p1 >= p2)
p1.eat(42)
p2.eat(7)
print(p1, p2, sep='\n')
print(p1.carry(90, 15))
Вывод:
Pigeon Johnas, 10
Pigeon Calman, 10
True
False
Pigeon Johnas, 14
Pigeon Calman, 12
False
уточнять на каком языке программирования нужно написать задачки. Я же напишу на С++. Алгоритм везде будет один и тот же.
1 задача
int x1 = 0;
int x2 = 0;
int x3 = 0;
int x4 = 0;
int x5 = 0;
cin >> x1;
cin >> x2;
cin >> x3;
cin >> x4;
cin >> x5;
double sr = 0.0;
sr = (x1+x2+x3+x4+x5)/5;
Или же можно сделать по проще
int x = 0;
int sum = 0;
double sr = 0.0;
for(int i = 0; i<5; i++){
cin >> x;
sum = sum +x;
}
sr = sum/5;
2 Задача
int number = 5;
for(int i = 2; i<20; i=i+2){
number = number + i;
}
1) program exec;
var a:array[1..20] of integer;
var p,i:integer;
begin
randomize;
for i:=1 to 20 do begin
a[i]:=random(50);
writeln (a[i]);
if (a[i] mod 2<>0) then p:=p+1;
end;
if (p>0) then writeln ('Присутствуют нечётные элементы')
else writeln ('Не присутствуют нечётные элементы');
end.
2) program exec;
var a:array[1..20] of integer;
var p,i:integer;
begin
randomize;
for i:=1 to 20 do begin
a[i]:=random(50);
writeln (a[i]);
if (a[i] mod 2=0) then a[i]:=a[i]+1
else a[i]:=a[i]*2;
end;
writeln ('---'); // разделение двух массивов
for i:=1 to 20 do writeln (a[i]);
end.