Составить программу даны 3 числа a b c. если сумма первых двух чисел меньше третьего числа. увеличить каждое из чисел в два раза. если нет возвести числа в квадрат. схемой
Алгоритм – это полное и точное описание на некотором языке конечной последовательности правил, указывающих исполнителю действия, которые он должен выполнить, чтобы за конечное время перейти от (варьируемых) исходных данных к искомому результату. Алгоритм должен удовлетворять следующим свойствам: 1.Первым свойством алгоритма является дискретный, т. е. пошаговый характер определяемого им процесса. Возникающая в результате такого разбиения запись алгоритма представляет собой упорядоченную последовательность отдельных предписаний (правил, директив, команд) , образующих прерывную (или, как говорят, дискретную) структуру алгоритма: только выполнив требования одного предписания можно приступать к исполнению следующего. 2.Исполнитель может выполнить алгоритм, если он ему понятен, т. е. записан на понятном ему языке и содержит предписания, которые исполнитель может выполнить. Алгоритм не должен содержать предписаний, не входящих в систему команд исполнителя. 3.Алгоритмы, предназначенные для исполнения неким техническим устройством, не должны содержать предписаний, приводящих к неоднозначным действиям. Алгоритм рассчитан на чисто механическое исполнение, и если применять его повторно к одним и тем же исходным данным, то всегда должен получиться один и тот же результат. Это свойство однозначности и определенности – детерминированности – алгоритмов позволяет использовать в качестве исполнителя специальные машины – автоматы. 4.Основополагающим свойством алгоритмов является его массовость, или применимость к некоторому классу объектов, возможность получения результата при различных исходных данных на некоторой области допустимых значений. 5.Цель выполнения алгоритма – получение определенного результата посредством выполнения указанных преобразований над исходными данными. Причем при точном исполнении всех предписаний алгоритмический процесс должен заканчиваться за конечное число шагов. Это обязательное требование к алгоритмам. 6.Если алгоритм должен быть выполнен не просто за конечное время, а за разумное конечное время, то речь идет об эффективности алгоритма. Эффективность алгоритма часто определяет возможность его практической реализации. Самой распространенной формой представления алгоритмов, адресованных человеку, является обычная словесная запись. В этой форме могут быть выражены любые алгоритмы. Составим алгоритм определения максимального числа из трех: z:=max(a,b,c). Решение задачи на ЭВМ можно получить, действуя следующим образом. Сначала найдем наибольшее из двух чисел, например, а и b, сравнив их между собой. Предположим, что исполнитель может выполнить операцию сравнения «больше» . Найденное наибольшее число «запомним» в качестве значения переменной z. Далее сравним значение переменной z с оставшимся числом с. Если с больше z, то присвоим z новое значение – значение с, в противном случае значение z останется прежним. В результате переменная z будет равна наибольшему из a,b,c и будет являться искомым результатом. Эти рассуждения можно представить в виде словесной записи алгоритма: Начало 1.Ввести a,b,c. 2.Если a>b, то z::=a; иначе z:=b; 3.Если c>z, то z:=c. 4.Вывод z. Конец. Ход выполнения алгоритма зависит от результатов проверки условий a>b и c>z. Если для введенных значений a, b действительно a>b, то выполняется операция z:=a; если нет, то выполняется z:=b. Таким образом, в зависимости от результата проверки условия a>b требуется выполнить различные действия. В алгоритме на этом шаге предусмотрены оба возможных направления дальнейших вычислений. При проверке условия c>z операция z:=c может выполняться, если действительно c>z, или не выполняться в противном случае. Этот алгоритм обладает всеми необходимыми свойствами: дискретностью, массовостью, эффективностью. И так я могу долго
Наложим на шахматную доску систему прямоугольных координат так, чтобы в левом нижнем углу была клетка с координатами (1,1) - строка 1, колонка 1. Тогда в правом верхнем углу будет клетка с координатами (8,8) - строка 8, колонка 8. И вспомним, что шахматная доска кладется так, чтобы у игрока, играющего белыми, правое угловое поле было белого цвета. Тогда клетка (1,1) будет черного цвета, как и любая другая, у которой сумма координат четная. А если у клетки сумма координат нечетная, то она будет белого цвета. Собственно, цвет неважен, важно лишь то, что одноцветными клетки будут тогда и только тогда, когда у них обоих сумма координат будет или четным числом, или нечетным. Отсюда строим алгоритм: вводим координаты первой клетки (r1,c1) и второй клетки (r2,c2). Имена взяты от английских слов Row - строка и Column - колонка. Находим s1=r1+c1 и s2=r2+c2. Если s1 четное и s2 четное, или если s1 нечетное и s2 нечетное, выводим "Yes", в противном случае выводим "No". Четность s1 в языке Python можно проверить по условию s1%2==0 (остаток от целочисленного деления s1 на 2 равен 0). Однако такое условие получается очень громоздким и лучше воспользоваться возможностями логических выражений (b - логическая переменная): если s1 четное, то b=значение истинности логического выражения (s2=четное) иначе b=значение истинности логического выражения (s2=нечетное) eсли b, то вывести "Yes" иначе вывести "No"
Программа на языке Python 3.4: r1=int(input("Строка 1=")); c1=int(input("Колонка 1=")) r2=int(input("Строка 2=")); c2=int(input("Колонка 2=")) s1=r1+c1; s2=r2+c2 if s1%2==0: b=(s2%2==0) else: b=(s2%2!=0) if b: print("Yes") else: print("No")
Тестовое решение: Python 3.4.2 (v3.4.2:ab2c023a9432, Oct 6 2014, 22:15:05) [MSC v.1600 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. >>> RESTART >>> Строка 1=7 Колонка 1=3 Строка 2=2 Колонка 2=2 Yes >>>
Алгоритм должен удовлетворять следующим свойствам:
1.Первым свойством алгоритма является дискретный, т. е. пошаговый характер определяемого им процесса. Возникающая в результате такого разбиения запись алгоритма представляет собой упорядоченную последовательность отдельных предписаний (правил, директив, команд) , образующих прерывную (или, как говорят, дискретную) структуру алгоритма: только выполнив требования одного предписания можно приступать к исполнению следующего.
2.Исполнитель может выполнить алгоритм, если он ему понятен, т. е. записан на понятном ему языке и содержит предписания, которые исполнитель может выполнить. Алгоритм не должен содержать предписаний, не входящих в систему команд исполнителя.
3.Алгоритмы, предназначенные для исполнения неким техническим устройством, не должны содержать предписаний, приводящих к неоднозначным действиям. Алгоритм рассчитан на чисто механическое исполнение, и если применять его повторно к одним и тем же исходным данным, то всегда должен получиться один и тот же результат. Это свойство однозначности и определенности – детерминированности – алгоритмов позволяет использовать в качестве исполнителя специальные машины – автоматы.
4.Основополагающим свойством алгоритмов является его массовость, или применимость к некоторому классу объектов, возможность получения результата при различных исходных данных на некоторой области допустимых значений.
5.Цель выполнения алгоритма – получение определенного результата посредством выполнения указанных преобразований над исходными данными. Причем при точном исполнении всех предписаний алгоритмический процесс должен заканчиваться за конечное число шагов. Это обязательное требование к алгоритмам.
6.Если алгоритм должен быть выполнен не просто за конечное время, а за разумное конечное время, то речь идет об эффективности алгоритма. Эффективность алгоритма часто определяет возможность его практической реализации.
Самой распространенной формой представления алгоритмов, адресованных человеку, является обычная словесная запись. В этой форме могут быть выражены любые алгоритмы.
Составим алгоритм определения максимального числа из трех: z:=max(a,b,c).
Решение задачи на ЭВМ можно получить, действуя следующим образом. Сначала найдем наибольшее из двух чисел, например, а и b, сравнив их между собой. Предположим, что исполнитель может выполнить операцию сравнения «больше» . Найденное наибольшее число «запомним» в качестве значения переменной z. Далее сравним значение переменной z с оставшимся числом с. Если с больше z, то присвоим z новое значение – значение с, в противном случае значение z останется прежним. В результате переменная z будет равна наибольшему из a,b,c и будет являться искомым результатом.
Эти рассуждения можно представить в виде словесной записи алгоритма:
Начало
1.Ввести a,b,c.
2.Если a>b, то z::=a;
иначе z:=b;
3.Если c>z, то z:=c.
4.Вывод z.
Конец.
Ход выполнения алгоритма зависит от результатов проверки условий a>b и c>z. Если для введенных значений a, b действительно a>b, то выполняется операция z:=a; если нет, то выполняется z:=b. Таким образом, в зависимости от результата проверки условия a>b требуется выполнить различные действия. В алгоритме на этом шаге предусмотрены оба возможных направления дальнейших вычислений. При проверке условия c>z операция z:=c может выполняться, если действительно c>z, или не выполняться в противном случае.
Этот алгоритм обладает всеми необходимыми свойствами: дискретностью, массовостью, эффективностью.
И так я могу долго
Отсюда строим алгоритм: вводим координаты первой клетки (r1,c1) и второй клетки (r2,c2). Имена взяты от английских слов Row - строка и Column - колонка. Находим s1=r1+c1 и s2=r2+c2. Если s1 четное и s2 четное, или если s1 нечетное и s2 нечетное, выводим "Yes", в противном случае выводим "No".
Четность s1 в языке Python можно проверить по условию s1%2==0 (остаток от целочисленного деления s1 на 2 равен 0).
Однако такое условие получается очень громоздким и лучше воспользоваться возможностями логических выражений (b - логическая переменная):
если s1 четное, то
b=значение истинности логического выражения (s2=четное)
иначе
b=значение истинности логического выражения (s2=нечетное)
eсли b, то
вывести "Yes"
иначе
вывести "No"
Программа на языке Python 3.4:
r1=int(input("Строка 1=")); c1=int(input("Колонка 1="))
r2=int(input("Строка 2=")); c2=int(input("Колонка 2="))
s1=r1+c1; s2=r2+c2
if s1%2==0:
b=(s2%2==0)
else:
b=(s2%2!=0)
if b:
print("Yes")
else:
print("No")
Тестовое решение:
Python 3.4.2 (v3.4.2:ab2c023a9432, Oct 6 2014, 22:15:05) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> RESTART
>>>
Строка 1=7
Колонка 1=3
Строка 2=2
Колонка 2=2
Yes
>>>