Задание 2 Параграф 3.4 ГДЗ Босова 8 класс (Информатика)
*Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания.
*размещая тексты в комментариях ниже, вы автоматически соглашаетесь с пользовательским соглашением
Похожие решебники
Популярные решебники 8 класс Все решебники
Боголюбов, Лазебникова
Вербицкая, Гаярделли, Редли
Габриелян, Остроумов, Сладков
Мерзляк, Поляков
Драгомилов
Драгомилов, Маш
§3.3. Программировани.
§3.4. Программировани.
©Reshak.ru — сборник решебников для учеников старших и средних классов. Здесь можно найти решебники, ГДЗ, переводы текстов по школьной программе. Практически весь материал, собранный на сайте — авторский с подробными пояснениями профильными специалистами. Вы сможете скачать гдз, решебники, улучшить школьные оценки, повысить знания, получить намного больше свободного времени.
Главная задача сайта: помогать школьникам и родителям в решении домашнего задания. Кроме того, весь материал совершенствуется, добавляются новые сборники решений.
Ветвление. Условный оператор
Ход выполнения программы может быть линейным, то есть таким, когда выражения выполняются друг за другом, начиная с первого и заканчивая последним. Ни одна строка кода программы не пропускается.
Однако чаще в программах бывает не так. При выполнении кода, в зависимости от тех или иных условий, некоторые его участки могут быть опущены, в то время как другие – выполнены. Иными словами, в программе может присутствовать ветвление, которое реализуется условным оператором – особой конструкцией языка программирования.
Проведем аналогию с реальностью. Человек живет по расписанию. Можно сказать, расписание – это алгоритм для человека, его программный код, подлежащий выполнению. В расписании на 18.00 стоит поход в бассейн. Однако экземпляр биоробота класса Homo sapiens через свои рецепторы-сенсоры получает информацию, что воду из бассейна слили. Разумно было бы отменить занятие по плаванию, то есть изменить ход выполнения программы-расписания. Одним из условий посещения бассейна должно быть его функционирование, иначе должны выполняться другие действия.
Подобная нелинейность действий может быть реализована в компьютерной программе. Например, часть кода будет выполняться лишь при определенном значении конкретной переменной. В языках программирования используется приблизительно такая конструкция условного оператора:
if логическое_выражение
Перевести на человеческий язык можно так: если логическое выражение возвращает истину, то выполняются выражения внутри фигурных скобок; если логическое выражение возвращает ложь, то код внутри фигурных скобок не выполняется. С английского «if» переводится как «если».
Конструкция if логическое_выражение называется заголовком условного оператора. Выражения внутри фигурных скобок – телом условного оператора. Тело может содержать как множество выражений, так и всего одно.
Пример использования условного оператора в языке программирования Python:
if n 100: a = a + b
В Питоне вместо фигурных скобок используется двоеточие. Обособление вложенного кода, то есть тела оператора, достигается за счет отступов. В программировании принято делать отступ равным четырем пробелам. Можно использовать клавишу табуляции ( Tab ) на клавиатуре.
Большинство сред программирования автоматически создают отступ, как только вы поставите двоеточие и перейдете на новую строку. Однако при работе в интерактивном режиме отступы надо добавлять вручную.
Нахождение в теле условного оператора здесь обозначается тремя точками. При создании файла со скриптом таких точек быть не должно, как и приглашения >>> .
Python считается языком с ясным синтаксисом и легко читаемым кодом. Это достигается сведением к минимуму таких вспомогательных элементов как различные скобки и точка с запятой. Для разделения выражений используется переход на новую строку, а для обозначения вложенных выражений – отступы от начала строки. В других языках данный стиль программирования также используется, но лишь для удобочитаемости кода человеком. В Питоне же такой стиль возведен в ранг синтаксического правила.
Данный пример вырван из контекста и сам по-себе не является рабочим. Полная версия программы могла бы выглядеть так:
a = 50 b = 10 n = 98 if n 100: a = a + b print(a)
Последняя строчка кода print(a) уже не относится к условному оператору, что обозначено отсутствием перед ней отступа. Она не является вложенной в условный оператор, значит, не принадлежит ему.
Поскольку переменная n равна 98, а это меньше 100, то a станет равной 60. Это значение будет выведено на экран. Если переменная n изначально была бы связана, например, со значением 101, то на экран было бы выведено 50. Потому что при n , равной 101, логическое выражение в заголовке условного оператора вернуло бы ложь. Значит, тело не было бы выполнено, и переменная a не изменилась бы.
Структуру программы можно изобразить следующим образом:
Основная ветка программы выполняется всегда, а вложенный код лишь тогда, когда в темно-зеленой строчке, обозначающей заголовок условного оператора, случается истина.
Для небольших программ иногда чертят так называемые блок-схемы, отражающие алгоритм выполнения. В языке блок-схем различные части кода обозначаются своими фигурами. Так блоку последовательно выполняемых действий соответствует прямоугольник, ветвлению – ромб. Для кода выше блок-схема может выглядеть так:
Условный оператор может включать не одну ветку, а две, реализуя тем самым полноценное ветвление.
В случае возврата логическим выражением False поток выполнения программы не возвращается сразу в основную ветку. На случай False существует другой вложенный код, отличный от случая True . Другими словами, встретившись с расширенной версией условного оператора, поток выполнения программы не вернется в основную ветку, не выполнив хоть какой-нибудь вложенный код.
В языках программирования разделение на две ветви достигается с помощью добавления блока else, получается так называемое if–else (если-иначе). Синтаксис выглядит примерно так:
if логическое_выражение < выражение 1; выражение 2; … >else
Если условие при инструкции if оказывается ложным, то выполняется блок кода при инструкции else . Ситуация, при которой бы выполнились обе ветви, невозможна. Либо код, принадлежащий if , либо код, принадлежащий еlse . Никак иначе. В заголовке else никогда не бывает логического выражения.
Пример программы с веткой else на языке Python:
tovar1 = 50 tovar2 = 32 if tovar1 + tovar2 > 99: print("99 рублей недостаточно") else: print("Чек оплачен")
Следует иметь в виду, что логическое выражение при if может выглядеть нестандартно, то есть не так просто, как a > b и тому подобное. Там может стоять просто одна переменная, число, слово True или False , а также сложное логическое выражение, когда два простых соединяются через логически and или or .
a = ? if a: a = 1
Если вместо знака вопроса будет стоять 0, то с логической точки зрения это False , значит выражение в if не будет выполнено. Если a будет связано с любым другим числом, то оно будет расцениваться как True , и тело условного оператора выполнится. Другой пример:
a = 5 > 0 if a: print(a)
Здесь a уже связана с булевым значением. В данном случае это True . Отметим, что в выражении a = 5 > 0 присваивание выполняется после оператора сравнения, так что подвыражение 5 > 0 выполнится первым, после чего его результат будет присвоен переменной a . На будущее, если вы сомневаетесь в последовательности выполнения операторов, используйте скобки, например так: a = (5 > 0) .
if a > 0 and a b: print(b - a)
Тут, чтобы вложенный код выполнился, a должно быть больше нуля и одновременно меньше b . Также в Питоне, в отличие от других языков программирования, позволительна такая сокращенная запись сложного логического выражения:
if 0 a b: print(b - a)
Практическая работа
- Напишите программу, которая просит пользователя что-нибудь ввести с клавиатуры. Если он вводит какие-нибудь данные, то на экране должно выводиться сообщение «ОК». Если он не вводит данные, а просто нажимает Enter , то программа ничего не выводит на экран.
- Напишите программу, которая запрашивает у пользователя число. Если оно больше нуля, то в ответ на экран выводится число 1. Если введенное число не является положительным, то на экран должно выводиться -1.
Примеры решения и дополнительные уроки в pdf-версии курса
X Скрыть Наверх
Python. Введение в программирование
Теоретический материал по теме «Полное и неполное ветвление» для языков программирования Паскаль и Питон
Презентация к уроку информатики по теме «Полное и неполное ветвление» по основам программирования на языке Паскаль или Питон.
Полное и неполное ветвление. Основы программирование Паскаль и Питон_.pptx
Полное и неполное ветвление Основы программирование
Полное и неполное ветвление
Основы программирование
На Паскале и Питоне
Разработчик: Черевичкина И.Н.
Конструкция «Полное ветвление»
Конструкция «Полное ветвление»
IF A>B THEN
Begin D:=A+B end
ELSE
Begin D:=ABS(A+B) end;
Конструкция «Неполное ветвление»
Алгоритмическая конструкция «Ветвление»
Синтаксис оператора ветвления на
Синтаксис оператора ветвления на
If (условие) THEN
begin действие 1; действие2; end
ELSE
begin действие 3; действие 4; end;
Если (условие), то Блок действий1 , иначе Блок действий_2
if (условие):
действие 1
действие2
else:
действие 3
действие 4
Оператор IF (УСЛОВИЕ).. THEN[…ELSE] —
Оператор IF (УСЛОВИЕ).. THEN[…ELSE] — УСЛОВНЫЙ оператор.
Условия в программировании пишутся при помощи знаков сравнения:
С двух сторон от знака сравнения могут стоять ПЕРЕМЕННЫЕ или ВЫРАЖЕНИЯ (функции или числовые).
Результат сравнения всегда логический: TRUE (Истина) или FALSE (Ложь).
В зависимости от результата условия при ИСТИНЕ оператор выполняет команды веточки THEN, а при ЛЖИ – веточки ELSE, если она есть.
IF A >15 THEN WRITE(‘ЧИСЛО’,A,’>15’)
ELSE WRITE(‘ЧИСЛО ‘,A,’не больше 15’) ;
При А=9 результат ложь
Оператор if (УСЛОВИЕ): .. […else] —
Оператор if (УСЛОВИЕ): .. […else] — УСЛОВНЫЙ оператор.
Условия в программировании пишутся при помощи знаков сравнения:
> — больше
< - меньше
>= — больше, либо равно
!= — не равно
== — равно
С двух сторон от знака сравнения могут стоять ПЕРЕМЕННЫЕ или ВЫРАЖЕНИЯ (функции или числовые).
Результат сравнения всегда логический: TRUE (Истина) или FALSE (Ложь).
В зависимости от результата условия при ИСТИНЕ оператор выполняет команды веточки «Да» (истина), а при ЛЖИ – веточки else, если она есть.
if A >15:
print(‘ЧИСЛО’,A,’>15’)
else:
print(“ЧИСЛО “ ,A,’не больше 15’) ;
Программирование разветвляющихся алгоритмов
Цель урока: Знакомство с понятием «условный оператор», его структурой; изучение способов записи алгоритмов ветвящейся структуры на языке Паскаль; закрепление новых знаний, выявление пробелов в знаниях по теме и их устранение; способствовать развитию алгоритмического мышления, внимательности, познавательной активности, самостоятельности обучающегося, стимулирование интереса обучающегося к данной теме и предмету в целом.
Просмотр содержимого документа
«Программирование разветвляющихся алгоритмов»
ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ
НАЧАЛА ПРОГРАММИРОВАНИЯ
Ключевые слова
- условный оператор
- неполный условный оператор
- составной оператор
- вложенные ветвления
Общий вид условного оператора
Полная форма условного оператора:
if then else
Неполная форма условного оператора:
if then
Перед else знак «;» не ставится.
Условия — логические выражения
‘); readln (a, b); write (‘Введите x’); readln (x); if (x=a) and (xthen writeln (‘Точка принадлежит отрезку’) else writeln (‘Точка не принадлежит отрезку’) еnd. a, b, x (x=a) and (xда нет НЕТ ДА » width=»640″
Условный оператор
program n_9;
var x, a, b: real;
writeln (‘Определение принадлежности
write (‘Введите а, b’);
write (‘Введите x’);
if (x=a) and (xthen
writeln (‘Точка принадлежит отрезку’)
else writeln (‘Точка не принадлежит отрезку’)
‘); readln (a, b, c); y:=a; if (by) then y:=b; if (cy) then y:=c; writeln (‘y=’, y) end. Y:=A нет да BY Y:=B да нет CY Y:=C » width=»640″
Неполный условный оператор
program n_10;
var y, a, b, c: integer;
writeln (‘Нахождение наибольшей из трёх величин’);
write (‘Введите а, b, с’);
if (by) then y:=b;
if (cy) then y:=c;
Составной оператор
В условном операторе и после then , и после else
можно использовать только один оператор .
Если в условном операторе после then или после else
нужно выполнить несколько операторов , то
используют составной оператор – конструкцию вида:
begin end
Блок-схема решения КВУР
Введите коэффициенты a, b, c
«Корень уравнения х=», х
‘); readln (a, b, c); d:=b*b-4*a*c; if dthen writeln (‘Корней нет’) else if d=0 then begin x:=-b/2/a; writeln (‘Корень уравнения x=’, x:9:3) end else begin x1:=(-b+sqrt(d))/2/a; x2:=(-b-sqrt(d))/2/a; writeln (‘Корни уравнения:’); writeln (‘x1=’, x1:9:3); writeln (‘x2=’, x2:9:3) end end. » width=»640″
program n_11;
var a, b, c: real;
var d: real;
var x, x1, x2: real;
writeln (‘Решение квадратного уравнения’);
write (‘Введите коэффициенты a, b, c ‘);
if dthen writeln (‘Корней нет’)
if d=0 then
writeln (‘Корень уравнения x=’, x:9:3)
writeln (‘Корни уравнения:’);
writeln (‘x1=’, x1:9:3);
writeln (‘x2=’, x2:9:3)
Вложенные ветвления
if then
if then
else всегда относится к ближайшему оператору if
‘); readln (a, b); if a0 then begin x:=-b/a; writeln (‘Корень уравнения x=’, x:9:3) end else if b0 then writeln (‘Корней нет’) else writeln (‘x – любое число’); end . Любое число Корней нет » width=»640″
Решение линейного уравнения
a, b, x — вещ
program n_12;
var a, b, x: real;
writeln (‘Решение линейного уравнения’);
write (‘Введите коэффициенты a , b’);
if a0 then
writeln (‘Корень уравнения x=’, x:9:3)
else if b0 then writeln (‘Корней нет’)
else writeln (‘x – любое число’);
Самое главное
При записи на языке Паскаль разветвляющихся алгоритмов используют условный оператор:
if then else
Для записи неполных ветвлений используется неполный условный оператор:
if then
Если при некотором условии требуется выполнить определённую последовательных операторов, то их объединяют в один составной оператор, имеющий вид:
begin end
5 then c:=2 else c:=3 Какое значение имеет переменная а , если в результате выполнения условного оператора переменной с присваивается значение 3? Напишите программу, которая производит обмен значений переменных x и y , если x больше y . Используя составной оператор, упростите следующий фрагмент программы: if ab then c:=1; if ab then d:=2; if aif a Имеются данные о количестве полных лет трёх призёров спартакиады. Напишите программу, выбирающую и выводящую возраст самого младшего призёра. Является ли условным оператором последовательность символов? а) if xб) if x=y then x:=0; y:=0 else write (z) в) if xЧто такое составной оператор? Для чего он используется в условном операторе? -1 при x 0 при x =0 1 при x 0 есть ли среди цифр заданного целого трёхзначного числа одинаковые ; Даны две точки в плоской прямоугольной системе координат. Напишите программу, определяющую, которая из точек находится ближе к началу координат. Напишите программу, в которой пользователю предлагается дополнить до 100 некоторое целое число а ( а — случайное число, меньшее 100). Ответ пользователя проверяется и комментируется. является ли число «перевёртышем», т. е. числом, десятичная запись которого читается одинаково слева направо и справа налево. Пример входных данных K, L-1 5 xa, ya 1 2 Пример выходных данных Точка лежит под прямой K, L-1 5 xa, ya 1 10 K, L-1 5 xa, ya 1 4 Точка лежит над прямой Точка лежит на прямой Как на языке Паскаль записывается полное и неполное ветвление? Пример входных данных x 5 y 6 Пример выходных данных x = 5 y = 6 x 6 y 5 x = 5 y = 6 y = Пример входных данных Координаты 1 – го поля 2 2 Координаты 2 – го поля 3 3 Пример выходных данных Координаты 1 – го поля 2 3 Координаты 2 – го поля 3 3 Поля одного цвета Координаты 1 – го поля 2 7 Координаты 2 – го поля 5 4 Поля разного цвета Поля одного цвета Пример входных данных a b c 1 2 1 Пример выходных данных a b c 2 2 2 Не существует Равносторонний a b c 20 20 30 a b c 3 4 5 Равнобедренный Разносторонний Пример входных данных Пример входных данных Пример входных данных 123 Координаты 1-й точки 1, 2 Координаты 2-й точки 3, 4 123 Пример выходных данных Пример выходных данных Пример выходных данных 121 121 Первая точка ближе Нет Нет Да Перевёртыш 222 222 Да Перевёртыш Пример входных данных -5 Пример выходных данных 0 y = -1 5 y = 0 y = 1 » width=»640″
Вопросы и задания
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8.
Напишите программу, которая по введённым координатам двух полей ( k, l ) и ( m, n ) определяет, являются ли эти поля полями одного цвета.
Дано трёхзначное число.
Напишите программу, которая определяет:
Напишите программу, вычисляющую значение функции:
Напишите программу, определяющую, лежит ли точка
А(ха, ya ):
а) на прямой y = kx + l , над ней или под ней;
Даны три натуральных числа. Напишите программу, определяющую, существует ли треугольник с такими длинами сторон.
Если такой треугольник существует, то определите его тип (равносторонний, равнобедренный, разносторонний).
Составьте программу для решения задачи:
Известно, что 31 января 2011 года приходится на понедельник. Какие значения должны быть присвоены литерной переменной y в алгоритме, определяющем день недели для любого числа ( chislo ) января 2011 года?
chislo:= chislo mod 7
если chislo=3 то у:=’…‘
если chislo=4 то у:=’…‘
если chislo=5 то у:=’…‘
если chislo=6 то у:=’…‘
если chislo=0 то у:=’…‘
если chislo=1 то у:=’…‘
если chislo=2 то у:=’…‘
Дан условный оператор:
If athen c:=1
else if a5 then c:=2
Какое значение имеет переменная а , если в результате выполнения условного оператора переменной с присваивается значение 3?
Напишите программу, которая производит обмен
значений переменных x и y , если x больше y .
Используя составной оператор, упростите следующий фрагмент программы:
Имеются данные о количестве полных лет трёх призёров спартакиады.
Напишите программу, выбирающую и выводящую возраст самого младшего призёра.
Является ли условным оператором последовательность символов?
б) if x=y then x:=0; y:=0 else write (z)
Что такое составной оператор?
Для чего он используется в условном операторе?
0 при x =0
1 при x 0
есть ли среди цифр заданного целого трёхзначного числа одинаковые ;
Даны две точки в плоской прямоугольной системе координат. Напишите программу, определяющую, которая из точек находится ближе к началу координат.
Напишите программу, в которой пользователю предлагается дополнить до 100 некоторое целое число а ( а — случайное число, меньшее 100).
Ответ пользователя проверяется и комментируется.
является ли число «перевёртышем», т. е. числом, десятичная запись которого читается одинаково слева направо и справа налево.
Пример входных данных
Пример выходных данных
Точка лежит под прямой
Точка лежит над прямой
Точка лежит на прямой
Как на языке Паскаль записывается полное и неполное
Пример входных данных
Пример выходных данных
Пример входных данных
Координаты 1 – го поля 2 2
Координаты 2 – го поля 3 3
Пример выходных данных
Координаты 1 – го поля 2 3
Координаты 2 – го поля 3 3
Поля одного цвета
Координаты 1 – го поля 2 7
Координаты 2 – го поля 5 4
Поля разного цвета
Поля одного цвета
Пример входных данных
Пример выходных данных
Пример входных данных
Пример входных данных
Пример входных данных
Координаты 1-й точки 1, 2
Координаты 2-й точки 3, 4
Пример выходных данных
Пример выходных данных
Пример выходных данных
Первая точка ближе
Пример входных данных
Пример выходных данных
Опорный конспект
Условный оператор
Полная форма
if then else
Неполная форма
if then
Составной оператор
begin end
-80%