1. Объясните, чем отличаются следующие фрагменты программ:
if a > b: a = b
a = c
и
if a > b: a = b
else: a = c
Приведите примеры исходных данных, для которых результаты выполнения обеих программ (значение переменной a)
будут одинаковыми, и примеры данных, для которых они будут различными.
2. Объясните, чем отличаются следующие фрагменты программ:
if a > b: a = b
if a > c: a = c
и
if a > b: a = b
elif a > c: a = c
Приведите примеры исходных данных, для которых результаты выполнения обеих программ (значение переменной a)
будут одинаковыми, и примеры данных, для которых они будут различными.
3. Требовалось записать в переменную М максимальное из трёх
чисел, хранящихся в переменных a, b и c. Программист спешил и написал программу так:
if a > b: M = a
else: M = b
if c > b: M = c
else: M = b
Приведите контрпример, то есть значения переменных, при
котором в переменной M будет получен неверный ответ. Как
нужно изменить программу, чтобы она всегда работала правильно?
Для этого надо 17 поделить на 2, и каждое последующее частное (покуда это возможно) делить на 2.
17:2=8 (остаток 1)
---
8:2=4 (остаток 0)
===
4:2=2 (остаток 0)
+++
2:2=1 (остаток 0)
*** """
Теперь с конца начинаем записывать числа, начиная с 1, потом переходим на остатки снизу вверх
1 0 0 0 1 Получается, две единицы
*** """ +++ === ---
ответ: 2
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace zn
{
class Program
{
public static void Main(string[] args)
{
Console.Write("Введите кол-во минут по тарифу: ");
int a = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите цену за минуту по тарифу: ");
int b = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите цену за минуту сверх тарифа: ");
int c = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите время пользования услугами связи за месяц в минутах: ");
int d = Convert.ToInt32(Console.ReadLine());
int res = a > d ? a * b : a * b + (d - a) * c;
Console.WriteLine("Плата за пользование: " + res);
Console.ReadKey();
}
}
}