9.Определите значение переменной a после выполнения фрагмента программы:
a:=10;
b:=3;
if a > b then b:=b+12//а больше б, значит к б прибавим 12 и получим что б 21
else a:=a-7;//а это игнорим
if a > b then a:=a+12//теперь а не больше б(б21 а а 10), так что к а прибавим 12, получаем а 22
else a:=a-7;// а это игнорим
А = 22.
11.Определите что будет напечатано в результате работы следующей программы.
Var k,i: integer;
Begin
k :=4;/к равно 4
For i := 1 to 3 do//следующая строка повториться 3 раза, а и при этом будет меняться от 1 до 3
k := 2*k +i;
// При и равном 1 к станет 9
// При и равном 2 к станет 20
// При и равном 3 к станет 43
Writeln(k);// выведет 43
end.
ответ 43
12.Определите что будет напечатано в результате работы следующей программы.
Var s,i: integer;
Begin
s :=3;
For i := 2 to 5 do// и будет меняться от 2 до 5
s := s+2*i
//К с будет прибавляется 2i т.е. сперва 3;7;13;21;31
Writeln(s) ;//31
end
ответ:31
13.Определите что будет напечатано в результате работы следующей программы.
Var s,n: integer;
Begin
s :=1;
For n := 3 to 8 do//повториться 6 раз
s := s*2// каждый раз s увеличивается вдвое, т.е.это 2 в 6 степени
write(s) ;
end.
ответ:64
14.Чему будет равно значение переменной а после выполнения этого цикла?
i:=4;
a:=12;
while i<6 do begin//по сути он повторится 2 раза, а и будет принимать значение от 4 до 5
a:=a+i;//а увеличиваем на и: сперва это 16, потом 21
i:=i+1
end.
ответ:21
70, 35, 43, 132, 121, 11, 60, 64, 24, 31
Объяснение:
1) Изначально s = 0, затем на каждой из 12 – 6 + 1 = 7 итераций к ней прибавляется 10, итого получится 70
2) Аналогично, s = 0 + 7 * (8 – 3) = 35
3) Итерация с i = 1: k = 2 * 4 + 1 = 9. Итерация с i = 2: k = 2 * 9 + 2 = 20. Итерация с i = 3: k = 2 * 20 + 3 = 43.
4) s = 0 + 12 * 11 = 132
5) s = 0 + 11 * (12 – 1) = 121
6) u = 26 – 1 – 2 – 3 – 4 – 5 = 11
7) s = 4 + 5 + … + 11 = 60
8) s = 1 * 2 * 2 * … * 2 (8 – 3 + 1 раз) = 64
9) y = 0 + 4 * 1 + 4 * 2 + 4 * 3 = 24
10) s = 3 + 2 * 2 + 2 * 3 + 2 * 4 + 2 * 5 = 31
# Написать функцию date , принимающую 3 аргумента — день, месяц и год.
# Вернуть True, если такая дата есть в нашем календаре, и False иначе.
def is_year_leap(year):
"""
Принимает аргумент: порядковый номер года
Возвращает значение: если високосный год - True, иначе - False
"""
if year % 4 != 0:
return False
elif year % 100 == 0:
if year % 400 == 0:
return True
else:
return False
else:
return True
def date(day, month, year):
"""
Принимает аргументы: день, месяц, год
Возвращает значение: если дата правильная - True, иначе - False
"""
# Задаем количество дней в месяцах невисокосного года
set_months = {1: 31,
2: 28,
3: 31,
4: 30,
5: 31,
6: 30,
7: 31,
8: 31,
9: 30,
10: 31,
11: 30,
12: 31}
# Проверяем заданы ли верно год и месяц
if year > 0 and (month >= 1 and month <= 12):
# Изменяем количество дней для февраля в високосных годах
if month == 2 and is_year_leap(year) == True:
set_months[2] = 29
# Проверяем задан ли верно день
if day in range(1, set_months[month]+1):
return True
else:
return False
else:
return False
# Тест кейсы
print(date(31, 12, 2020)) # Правильная дата
print(date(1, 0, 2000)) # Месяц вне диапазона
print(date(1, 1, 0)) # Год вне диапазона
print(date(29, 2, 2000)) # 29 февраля високосный год
print(date(29, 2, 1900)) # 29 февраля невисокосный год
Объяснение: