Урок 6. Основы программирования. Условия
Условия необходимы при реализации алгоритма «ветвление»: чтобы что-то произошло, необходимо выполнение каких-то условий. В программировании они выражаются специальными конструкциями – условными операторами – и являются одним из элементов управления процессом программы.
Условные операторы
Условные операторы – это специальные конструкции, благодаря которым в программе происходит ветвление в зависимости от условий. Программа принимает логическое решение, выбор, в зависимости от которого выполняет те или иные действия: если так, то идём сюда, если иначе, то сюда.
Подбробнее об алгоритмах мы говорили в Уроке 1.
Чтобы программа смогла осуществить нужный выбор, программисту необходимо:
1. Задать в коде одно или более условий.
2. Задать одно или несколько действий, которые программа осуществит, если одно из условий определено как истина «true» или если все другие определены как ложь «false».
Справка! На основании результатов логического выражения – «true» или «false» – принимается решение, какую часть программы выполнять далее. Это и есть алгоритм ветвления.
Урок 10. Ветвление в Python
Чтобы осуществить этот алгоритм, в языках программирования существуют специальные операторы условий. В JavaScript, как и в большинстве языков программирования, они делятся на три вида:
Единичный
Для этого используется конструкция if… – логическое выражение, в котором производится сравнение данных с 1 условием и выбирается дальнейшее действие. При результате true процесс выполняется дальше, при false выполняется следующий блок кода.
Рассмотрим, как это работает:
1. Создадим переменную year со значением 2020:
let year = 2020;
Не забывайте ставить «;» в конце строки в JS.
2. Пропишем условие «если год не равен 2020, то выведи в консоль «А вот и нет! Год другой». Для этого после оператора if в круглых скобках необходимо указать условие, а затем в фигурных скобках вариант кода, который выполнится, если это условие определится как верное:
if (year != 2020)
3. Во всех других случаях укажем вывести фразу «Скоро или уже 2020!»:
if (year != 2020) < console.log (‘А вот и нет! Год другой’); >console.log (‘Скоро или уже 2020!’);
4. Запустим программу и увидим в консоли результат:
«Скоро или уже 2020!»
Поскольку мы ввели значение переменной 2020, то условие if «если year не равно 2020» не сработало. Мы увидели только фразу «Скоро или уже 2020!», которую задали выводить в консоль в любом случае.
5. Изменим значение переменной year на 2019 и заново запустим программу. В этом случае увидим другой результат:
«А вот и нет! Год другой» «Скоро или уже 2020!»
Теперь условие стало истинным (2019 не равно 2020) и в консоль выводятся оба сообщения: определённое внутри оператора if «А вот и нет! Год другой» и «Скоро или уже 2020!».
Двойной
Здесь используется конструкция if… else… – если проверяемое условие истинно «true», то выполняется блок команд, указанный после if. В противном случае – блок команд, указанный после else.
Git branch — работа с ветками
При этом у программы есть только 2 возможные ветви.
Добавим в рассмотренный выше пример с оператором if вторую ветку, которая при ложном значении проверяемого условия выведет в консоль строку «Всё верно! Уже 2020!»:
let year = 2020; if (year != 2020) < console.log (‘А вот и нет! Год другой’); >else
Увидим в консоли результат:
«Все верно! Уже 2020!»
Всё сработало правильно: так как значение переменной 2020, то выполняется блок else, а не if.
Множественный
Множественный выбор в JavaScript выражается несколькими конструкциями:
— else if;
— switch case.
При множественном выборе определяется несколько условий, а также действия, которые компьютер выполнит при истинности каждого из условий.
Логические выражения проверяются друг за другом по веткам. Программа перейдет на ту ветку, на которой результат станет истинным «true».
Else if
Начнём с оператора else if. В отличие от оператора else, его допускает указывать в условном операторе несколько раз, образуя множество веток. Возьмём переменную year и создадим несколько условий:
let year = 2020; if (year == 2020) < console.log(‘Да, но скоро 2021!’); >else if (year == 2021) < console.log(‘Ещё не 2021, но уже скоро!’); >else if (year > 2021) < console.log(‘Кажется, вы откуда-то из будущего!’); >else
Справка! Последняя ветка строится с помощью оператора else, а не else if, так как она не содержит дополнительных условий. В неё мы записываем ответ, который получает пользователь, если ни одно из условий выше не выполняется.
«Да, но скоро 2021!»
Сейчас значение переменной year равно 2020. Поэтому мы перешли на ветку, где указано условие (year == 2020) и получили ответ «Да, но скоро 2021!».
Поменяем значение переменной на 2022, чтобы оно соответствовало условию (year > 2021) и увидим результат:
«Кажется, вы откуда-то из будущего!»
Если же мы присвоим переменной значение меньше 2020 года, то оно не будет соответствовать ни одному из условий и запустится ветка else:
«Скорее всего, вы из прошлого!»
Switch case
Теперь попробуем использовать условную конструкцию switch. Синтаксис такой:
1. Берём созданную переменную year и создаем switch, передав ему значение year:
let year = 2020; switch (year)
2. Внутри фигурных скобок записываем все варианты ветвей друг за другом, только вместо else if используем ключевое слово case. Здесь не нужно помещать каждую ветку в отдельные фигурные скобки, как в else if.
Внимание! Необходимо ставить двоеточие между условием и действием. Это похоже на конструкцию «Если. то» в русском языке. И в данном случае двоеточие заменяет союз «то».
Вот как выглядит код:
let year = 2020; switch (year)
3. Для обозначения ветки, которая выполняется в случае несоответствия ни одному значению case, вместо else используем слово default. А после каждого условия необходимо прописать команду break.
Справка! Команда break означает, что если условие выполнено, необходимо прекратить работу и произвести соответствующее условию действие. Если его не поставить, программа продолжит сравнивать условия и выводить дополнительно иные значения до ближайшего break или до конца всех условий switch.
4. Запустим созданный нами switch со значением переменной year 2020 и посмотрим на результат в консоли:
«Да, но скоро 2021!»
Если бы мы забыли написать слово break после каждого условия, то получили бы результат:
«Да, но скоро 2021!» «Ещё не 2021, но уже скоро!» «Кажется, вы откуда-то из будущего!» «Скорее всего, вы из прошлого!»
С помощью этого оператора получится только сопоставить равенство переменной, указанной в скобках после switch, с конкретными значениями после слов case.
Чтобы через switch проверить больше, меньше, больше или равно, меньше или равно, конструкцию придётся изменить вот так:
let year = 2022; switch (true) < case (year==2020): console.log(‘Да, но скоро 2021!’); break; case (year==2021): console.log(‘Ещё не 2021, но уже скоро!’); break; case (year>2020): console.log(‘Кажется, вы откуда-то из будущего!’); break; default: console.log(‘Скорее всего, вы из прошлого!’); break; >
Результат в консоли:
«Кажется, вы откуда-то из будущего!»
Здесь мы передали switch не значение переменной year, как в предыдущем варианте, а значение логического выражения true. В этом случае компьютер сравнивает условия в скобках после case со значением true, а не со значением переменной year. То условие, которое в зависимости от значения year определено, как true, и будет выполнять.
Но чаще всего подобные неравенства прописываются через конструкцию else if.
Switch удобен, если вам предстоит описать множественный выбор с точными значениями. Через else if пришлось бы прописывать сравнение переменной для каждого условия, а конструкция switch по умолчанию сравнивает значение переменной со значением в case.
Домашнее задание
1. Представьте, что вы просите пользователя ответить на вопрос: «Сколько ног у паука?». Правильный ответ – 8. Пропишите несколько возможных сообщений для пользователя, в зависимости от введённых им значений, используя конструкцию else if:
— если пользователь ввёл 8, то он получит сообщение «Правильно!»;
— если меньше 8, то «Нет! Это слишком мало.»;
— если любое другое число, то «Нет! Это очень много.».
2. Теперь попросим пользователя вычислить результат простого арифметического выражения 3+2. Пропишите условия, используя конструкцию switch case:
— если пользователь ввёл 5, то он получит сообщение «Верно! Это 5.»;
— если 6, то «Нет, необходимо сложить, а не умножить!»;
— если 1, то «Нет, не вычитай, а складывай!»;
— во всех других случаях «Кажется, у тебя плохо с математикой!».
Источник: loftschool.com
Ветвление программы что это
Очень часто, так же, как и в жизни, при решении задач некоторые действия выполняются в зависимости от истинности каких-либо услов ий. Например, мы берем с собой зонт, если идет дождь или на небе ту чи. В математике часто встречаются следующие определения функций:
[если x >= 0, то f ( x ) = 2х.
Здесь значение функции вычисляется в зависимости от величины Х по разным формулам.
Для задания выбора того или иного действия в зависимости от условия в языке Pascal предназначен условный оператор, который имеет две формы: полную и сокращенную.
Полная форма:
В качестве условия используется значение логического выражения, В качестве операторов — любой простой или составной оператор, в том числе и сам условный оператор.
Если значение логического выражения — true , то выполняется оператор 1, если false , то выполняется оператор 2.
Часть условного оператора, начинающаяся со слова else , может отсутствовать, такая форма оператора называется сокращенной и выглядит следующим образом:
Оператор в этом случае выполняется, если условие истинно, иначе программа переходит к следующему оператору.
Для примера полной формы рассмотрим определение функции f (х):
Пример сокращенной формы условного оператора:
При использовании вложенных условных операторов может возникнуть неоднозначность, например:
В данном случае необходимо помнить, что служебное слово else всегда ассоциируется с ближайшим по тексту программы словом if , которое еще не связано с else . А, чтобы такая двусмысленность не возникала, лучше всего пользоваться операторскими скобками: begin . end
В случаях, когда условие составное (из нескольких условий), в программном коде каждое из них берется в ( ), а между ними ставится логическая связка: and – одновременное выполнение условий, or – должно выполнятся хотя бы одно из условий.
Пример 1:
Написать программу, проверяющую принадлежит ли число, введенное с клавиатуры, интервалу (1;5).
Writeln (‘Введите число х’);
Пример 2
Var a, b, с : Integer;
Writeln (введите числа а, Ь, с’);
Readln ( а , Ь , с ) ;
Else If (a>b) and (b>c) Then Begin a:=c; b:=c End
Else Begin a:=-a, b:=-b; c:=-c End;
Пример 3:
Найти значение Y по заданному выражению:
Обращаю Ваше внимание, что необходимо учитывать в задачах такого типа ОДЗ (область допустимых значений).
ОДЗ: знаменатель <>0 и подкоренное выражение должно быть >=0!
ОДЗ (нашего задания): В-А <>0 и А*В>=0
var B, A, X, Y: real;
if (B-A<>0) and (A*B>=0) then begin Y:= (A+5*X)/(B-A)+ sqrt(A*B); writeln (Y) end else writeln (‘ не существует ‘)
САМОСТОЯТЕЛЬНО
- Составьте программу для определения принадлежности точки D ( x , y ) заштрихованной области
2. Напишите программу для нахождения значения функции по заданному выражению.
3. Предложите свою задачу с ее решением по теме «Ветвления». Текст задачи и ее решение разместите в документ.
2.Оператор варианта
Более обобщенной формой условного оператора, учитывающей произвольное число альтернатив, является оператор варианта. Использование этого оператора позволяет задавать выполнение некоторые действий для нескольких различных значений одного выражения:
строка выполнится только в том случае, если значение выражения i совпадет с одним из значений . В качестве МОЖНО также задать список и(или) диапазон значений. Например:
Пример:
else writeln (‘Введен неправильный параметр!’)
Источник: www.sites.google.com
Алгоритм ветвления. Отличие от алгоритмов линейной структуры
Статья рассказывает про алгоритмы с разветвлённой структурой. Читатель узнает, чем их решение отличается от решения линейных алгоритмов, как выглядит программный способ записи таких алгоритмов, а также какова будет блок-схема.
В предыдущей статье шла речь об алгоритмах, их особенностях и свойствах. Особое внимание было уделено линейной структуре как самому простому способу реализации. Сегодня поговорим о более сложных алгоритмах, обладающих разветвлённой структурой. Но прежде чем продолжать, следует кое-что вспомнить.
Алгоритм – это ясный перечень действий, который направлен на решение какой-либо задачи. Одно из свойств алгоритма — дискретность. Дискретность связана с наличием в алгоритмической последовательности ряда операций (этапов, действий), выполняемых пошагово, то есть дискретно.
Алгоритм обладает свойством дискретности, так как он представляет собой процесс решения задачи в виде последовательного выполнения простых шагов. И каждое действие исполняется лишь после окончания исполнения предыдущего. Также предполагается наличие определённых исходных данных и результата выполнения.
Блок-схема — графический способ описания алгоритмов. Графическое представление обеспечивает наглядность и упрощает запись, делая последовательность более понятной. При использовании схемы каждому действию соответствует определённая геометрическая фигура (эти фигуры называют блоками). Вот наиболее часто употребляемые:
Ещё раз о линейности
Линейная последовательность — самая простая из возможных структур. При наличии линейности команды выполняются в чёткой последовательности и в порядке их записи, то есть друг за другом. Вот линейная алгоритмическая последовательность посадки дерева: 1) выкапывание ямки в земле; 2) размещение в ямке саженца; 3) закапывание ямки; 4) поливание места посадки водой.
Такой линейный алгоритм имеет следующую блок-схему:
А вот и общая схема линейного алгоритма:
Ветвление в алгоритмических последовательностях
На практике очень редко встречается, чтобы последовательность всех требуемых действий была известна заранее. Если на минуту покинуть мир алгоритмизации и программирования, можно спроецировать ветвление на многие жизненные ситуации. Если на улице дождь, человек берёт зонт, если очень жарко, будет выбрана одежда полегче и т. д. Всё зависит от условия выбора. Как тут не вспомнить рыцаря на распутье из русских народных сказок?
«Направо пойдёшь — жену найдёшь, налево пойдешь — богатым будешь, прямо пойдёшь — смерть найдёшь».
Подобная ситуация заставляет принимать решения с учётом определённого условия. Если нужна жена, то витязь идёт направо, если богатство, то налево, если жизнь не мила, то прямо. Условия, которые влияют на решение, располагаются между словами «если» и «то».
От значения условий зависит дальнейшее поведение. Когда условие выполняется, оно принимает значение «истина», когда нет — «ложь». Иногда анализ ситуации и выбор не вызывают особых затруднений, а иногда принять решение очень трудно. А всё потому, что принимающий решение пытается продумать каждый из вариантов и предугадать последствия выбора. Нельзя не вспомнить гроссмейстера, который анализирует позицию на ходы вперёд, прежде чем передвинуть фигуру на шахматной доске.
Компьютерные программы и игры тоже построены на выборе действий. А блок-схема при наличии ветвления приобретает иной вид:
Логика разветвляющих алгоритмов
Логику можно описать следующим образом:
ЕСЛИ ТО ИНАЧЕ
Ветвление — метод и форма организации действий, когда в зависимости от выполнения определённого условия совершается та либо иная последовательность шагов.
В результате совсем несложно составить алгоритм покупки мороженого с учётом наличия необходимой суммы денег. Описать эту алгоритмическую последовательность с помощью схемы и блоков тоже не составит труда:
Для закрепления можно решить задачу.
Есть 3 монеты одинакового достоинства. Одна из монет фальшивая (известно, что она имеет меньший вес). Найдите фальшивую монету на чашечных весах без гирь с помощью только одного взвешивания.
Решение легко описывается посредством схематических блоков:
Следующий пример легко экстраполируется в жизнь. Речь идёт об алгоритме для перехода дороги при наличии светофора. Он имеет следующий вид: 1. Подходим к светофору. 2. Смотрим, какой горит свет. 3. Если зелёный, переходим дорогу.
4. Если красный, ждём, пока загорится зелёный, а потом переходим дорогу.
Программный способ записи
Чтобы алгоритм было понятен компьютеру, машине и любой другой цифровой системе, следует оформить его в таком виде, который эта система способна воспринимать. То есть надо написать программу, используя для этого команды из СКИ. СКИ — это список команд исполнителя — перечень команд, ему понятных. А любой исполнитель способен исполнить лишь те команды, которые включены в его СКИ, а если говорить человеческим языком — входят в набор его компетенций.
Для примера можно реализовать алгоритм на языке программирования Pascal. Исходя из вышесказанного, следует использовать команды, входящие в терминологию Pascal.
Простейший пример описания алгоритма с разветвляющейся структурой — условный оператор IF. Полная конструкция этого условного оператора имеет следующий вид:
ifthenelse
Здесь if — это «если», then — это «то», else — «иначе».
Условный оператор работает просто: — вычисляется значение логического выражения, которое расположено после служебного слова IF; — если результат — истина, выполняется оператор 1, который размещён после THEN, причём действие после ELSE пропускается; — если результат — ложь, пропускается уже действие после THEN, а действие после ELSE выполняется с помощью оператора 2.
Теперь можно вспомнить пресловутого витязя на распутье и написать простую программу, реализующую этот алгоритм с помощью соответствующих условных операторов.
program Algoritm_vetvlenia; Var x :string; Begin WriteLn (‘Витязь, куда путь держишь?’); ReadLn (x); If x=’Направо’ then writeLn (‘Направо пойдёшь — жену найдёшь’); If x=’Налево’ then writeLn (‘Налево пойдешь — богатым будешь’); If x=’Прямо’ then writeLn (‘Прямо пойдёшь — смерть найдёшь’); ReadLn; End.
Попробовать этот алгоритм в работе можно на любом онлайн-компиляторе, поддерживающим Pascal. Но не стоит на этом останавливаться — лучше всего написать собственную программу, что позволит получить максимальную пользу от урока.
Источник: otus.ru
Программирование разветвляющихся алгоритмов. Условный оператор. Составной условный оператор. Многообразие способов записи ветвлений
В данном уроке закрепляется материал о разветвляющихся алгоритмах. В этот раз рассматриваются полная и краткая форма условного оператора if, основы работы с оператором while.
План урока:
Программирование разветвляющихся алгоритмов
Не все алгоритмы можно представить в виде списка действий. Бывают случаи, когда на выполнение чего-либо влияют определённые факторы. Например, если погода будет хорошей, то Настя пойдёт гулять и есть мороженое, однако, если погода будет плохой – она будет сидеть дома и делать уроки. В данном случае, окончательное действие зависело от того, какой будет погода. Это и есть условие выполнения.
Определение разветвляющегося алгоритма
Разветвляющиеся алгоритмы – это алгоритмы, имеющие несколько альтернативных путей, выбор которых зависит от выполнения некоторых условий. Ветвление — алгоритмическая конструкция, при выполнении которой, в зависимости от результата проверки условия («да» или «нет»), выполняется одна из двух последовательностей команд, называемых ветвями. Способ записи ветвления зависит от выбранного для выполнения определённой задачи оператора.
В линейных разветвляющихся алгоритмах можно выделить два типа условий: простые и составные.
Простые условия содержат одно логическое (булево) выражение, то есть такое утверждение, которое является либо истинным, либо ложным.
Логическое выражение может быть представлено как одним идентификатором логического типа, так и двумя идентификаторами или выражениями, между которыми стоит знак логической операции отношения, позволяющей сравнить их между собой. К операциям отношения относятся:
Примеры простых логических выражений:
- Value (идентификатор Value должен иметь логический тип данных);
- a — b<> 5 (истинно, если a -b не равно 5);
- c>= 10 + 11 (истинно, если c имеет значение 21 или больше);
- 7 > 8 (это выражение всегда ложно);
- ‘бабушка’ <> ‘дедушка’ (это выражение всегда истинно).
Первые три выражения имеют в своём составе переменные или константы, следовательно, об истинности всего выражения можно говорить только когда эти идентификаторы будут иметь какие-то определённые значения:
- Если a = 5, b = 3, то второе выражение является истинным. Однако, если a = 5, b = 0, то результатом их разности будет число 5, которое делает это выражение ложным.
- Если c = 9, то третье выражение будет ложным, при этом, если с имеет значение 21 и более, то выражение будет истинным.
Составные условия представляют выражения, составленные из нескольких логических выражений, соединённых при помощи служебных слов and («И», логическое умножение) или or («ИЛИ», логическое сложение), например:
В третьем примере сначала определяется истинность выражения d > 5 and x <> 2, а затем выполняется операция or, поскольку логическое умножение, как и арифметическое, имеет приоритет над сложением.
Вложенные ветвления представляют собой условие внутри условия. Когда «условие 1» будет принимать истинное значение, программа перейдёт на проверку «условия 2», иначе – выполнится «ветвь 1». Если «условие 2» окажется истинным, то выполнится «ветвь 3», иначе – «ветвь 2». Таким образом, «условие 2» является вложенным в «условие 1».
Какие условные операторы языка Паскаль позволяют описывать подобные разветвленные алгоритмы? На этом уроке мы продолжим разбор условного оператора if и рассмотрим различные его формы.
Условный оператор
Условный оператор в Паскале позволяет выбрать ветвь выполнения программы в зависимости от истинности или ложности логического выражения, записанного в условии.
Формы записи условного оператора if
Неполный условный оператор if включает в себя служебное слово if («если»), за которым следует условие – простое либо составное логическое выражение, после которого пишется слово then («то»). Далее указывается оператор, выполняемый тогда, когда заданное условие является истинным. В конце оператора ставится точка с запятой:
if then ;
Полный условный оператор if, в дополнение к «оператору 1», выполняющемуся при истинности условия, добавляет «оператор 2», который выполняется если условие ложно. При этом после «оператора 1» пишется служебное слово else («иначе»), за которым следует «оператор 2», а разделитель точка с запятой переносится в конец оператора:
if then else ;
Поскольку для транслятора языка Паскаль разделителем между операторами является символ точки с запятой, а не перевод строки, для повышения читабельности программы, условный оператор принято записывать в несколько строк, выделяя отдельные ветви отступом от левого края:
if then
else
Составной условный оператор
Составной оператор в Паскале применяется тогда, когда в одной из ветвей нужно выполнить более одного оператора. Составной оператор начинается со служебного слова begin и завершается служебным словом end. В промежутке между этими двумя словами находятся операторы, выполнение которых происходит в том порядке, в котором они записаны. Составные операторы могут применяться везде, где применяются простые операторы, и также как простые операторы, они должны отделяться точкой с запятой по тем же правилам. Пример использования составного оператора в конструкции if..then..else:
if then
begin
end
else
begin
end;
В данном примере, в случае истинности условия будут выполняться операторы 1 и 2, в случае ложности – операторы 3 и 4.
Вложенный условный оператор
Так как «оператор 1» в примерах выше может быть любым допустимым оператором языка Паскаль, никто не запрещает использовать вместо него еще один оператор if, создавая таким образом вложенные условные операторы:
if then
if then
else
else
Таким образом, для множества алгоритмов разветвляющейся структуры существует множество простых и составных операторов.
Однако, на этом многообразие операторов ветвления не заканчивается. Так, для разветвляющихся циклических алгоритмов применяется оператор while.
Циклический оператор while
Если нужно создать цикл, то циклический оператор while отлично подходит для этой задачи. Он используется тогда, когда неизвестно точное число повторений одних и тех же действий. Однако, эти действия могут не выполниться ни разу. Оператор while записывается следующим образом:
Выполнение действий, заключённых в операторе 1, продолжается до тех пор, пока логическое выражение в условии принимает истинное значение. Когда условие станет ложным, программа выйдет из цикла и перейдёт к выполнению последующих команд.
Задачи
Для закрепления полученных знаний необходимо решить несколько задач на условные операторы и рассмотреть примеры разветвляющихся алгоритмов.
Задача 1. Необходимо создать программу, которая на вход будет получать 2 числа, а выводить наибольшее из них. Если числа одинаковы, то нужно вывести любое из них.
Шаг 1. Необходимо ввести наименование программы. В данном случае это будет решение первой задачи.
Шаг 2. Учитывая, что числа, которые получит программа и запишет в переменные a и b, будут относиться к численному типу данных, необходимо указать тип integer.
Шаг 3. После записи слова begin, обозначающего начало командного блока, нужно записать текст, который программа будет выводить изначально. Так как на вход должны подаваться два числа, так и записывается: «Введите два числа: ».
Шаг 4. Необходимо записать оператора, благодаря которому будет происходить принятие входных данных и закрепление их за определёнными переменными.
Шаг 5. Появление условного оператора if. В данной задаче необходимо вывести наибольшее число, поэтому условием будет сравнение чисел.
Шаг 6. Проверка написанного кода программы и правильности выводящихся данных. Если значение a больше значения b, то программа выводит значение, закреплённое за переменной a. В противном случае, программа выведет число b. Если числа одинаковы, то программа автоматически перейдёт к выполнению оператора, записанного после слова else, так как числа одинаковы, нет разницы в том, какое из них выводить.
Задача 2. На вход программа получает 3 числа, которые обозначают длины различных отрезков. Необходимо выяснить, можно ли построить с помощью этих отрезков треугольник. Если да, то каким он будет: тупоугольным, прямоугольным или остроугольным.
Шаг 1. Для решения этой задачи понадобятся минимальные знания в области математики. Изначально необходимо помнить, что в прямоугольном треугольнике сумма квадратов катетов равна квадрату гипотенузы, в тупоугольном треугольнике сумма квадратов двух наименьших сторон меньше квадрата наибольшей, а в остроугольном то же самое, но наоборот: сумма квадратов двух наименьших сторон больше квадрата наибольшей.
Шаг 2. Построение кода программы. Для начала необходимо дать ей название.
Шаг 3. Указывается тип данных. Поскольку данные, которые получает программа, относятся к численному типу данных, то после названий переменных нужно написать integer.
Шаг 4. После этого пишется запрос программы, в случае со второй задачей текст будет выглядеть так: «Введите длины трёх отрезков в порядке возрастания: ».
Шаг 5. Запись оператора, который поможет программе получить данные.
Шаг 6. Запись и представление примерной работы всех необходимых условий. Изначально нужно понять, образуют ли отрезки какой-либо треугольник, для этого записывается условие, дословно переводящееся как «если c< a+b тогда». Если его значение будет истинным, то программа перейдёт к дальнейшим условиям, таким как «если квадрат c равен сумме квадратов a и b» и так далее.
Шаг 7. Проверка написанного кода программы и правильности выводящихся данных. В зависимости от того, какое из условий окажется верным, программа выведет создают ли эти отрезки треугольник и если да, то его тип. В случае, когда все условия будут ложными, программа выдаст, что «Заданные отрезки не образуют треугольник.».
Задача 3. Нужно найти минимальное целое число a, при котором равенство 3a > n является истинным. На вход подаётся число n, большее чем единица.
Шаг 1. Для начала необходимо дать программе название.
Шаг 2. Учитывая, что на вход подаётся целое число, указать тип данных, в данном случае – integer.
Шаг 3. Запись командного блока. Нужно написать слово, обозначающее начало, begin.
Шаг 4. Первоначальный вывод программы. Необходимо написать то, что программа будет выдавать в первую очередь. В данном случае, она будет запрашивать число, запрос так и пишется: «Введите число: » .
Шаг 5. Запись необходимых операторов. Используя оператор readln программа считывает данные и переводит курсор на новую строку. Далее она производит операции над поступившими данными.
Шаг 6. Запись цикла. «Пока 3*а меньше или равно n» она будет прибавлять к a по единице. После того, как цикл закончится, программа выведет итоговое значение a, которое и будет ответом к задаче.
Шаг 7. Проверка правильности записи алгоритма. В конце программного блока, после слова end нельзя забывать точку, её обязательно нужно поставить.
Задача 4. На вход подаётся натуральное число, из которого необходимо удалить заданную пользователем цифру.
Шаг 1. Для решения данной задачи понадобится вспомнить операции mod и div в Паскале. Div возвращает целую часть при делении какого-то числа на какое-то число. К примеру, если 5 поделить на 3, то в остатке будет 2. При записи 5 div 3 программа выдаст значение 1, тк 5 делится на 3 ровно 1 раз. Mod возвращает остаток от деления. При записи 5 mod 3 программа выдаст значение 2, поскольку остаток от деления 5 на 3 равен 2. Как же решать эту задачу?
Шаг 2. Записать название программы. В данном случае будет «Задача 4».
Шаг 3. Указание типа вводимых данных. Longint представляет тип данных с длинными целыми числами, к нему можно отнести подающееся на вход число (а) и цифру, которую нужно удалить (b). Следующим типом будет byte, он представляет целый беззнаковый тип.
Шаг 4. После этого следует командный блок. Вписываются 2 оператора readln, позволяющие программе считать необходимые данные.
Шаг 5. Запись цикла. В данной программе лучше всего использовать цикл «Пока a больше 0». Здесь идёт пример составного оператора. После присвоения переменной m нового значения программа переходит к условию «Если m не равно n, тогда», при истинности которого присваивает переменной b новое значение.
Из выполненного условия программа переходит к присвоению переменной a нового значения, равному целой части от деления числа, заключённого в a, на 10. После выполнения всех действий и условий в первом цикле, программа переходит ко второму циклу «Пока b больше 0». В нём она присваивает переменным a и b новые значения.
Шаг 6. Проверка кода программы. После окончания всех циклов она должна вывести итоговое число и завершить свою работу.
Источник: 100urokov.ru