ВЕТВЛЕНИЕ
Для работ с операциями типа ветвление в программировании обычно используется оператор if. Он предназначен для выбора одной из двух альтернатив. Более редко применяется оператор варианта — switch, который предназначен для выбора одной из нескольких альтернатив.
ОПЕРАТОР if
Оператор if предназначен для выбора одной из двух альтернатив. Он имеет две формы:
- Краткую
- Полную
КРАТКАЯ ФОРМА ОПЕРАТОРА if
Краткая форма оператора if имеет вид:
if(<условие>)
<оператор>;
Здесь ключевое слово if — имя оператора, <условие> — логическое выражение, то есть выражение, значением которого могуч бьпь true или false и <оператор> — оператор языка С.
Встретив в теле программы оператор if, компилятор вычислит выражение <условие> и, в случае его истинности, будет выполнен оператор <оператор>. после чего продолжится выполнение программы. В случае, когда значением выражения <условие> будет ложь, вычисления будут произведены без участия оператора <оператор>. Рассмотрим работу краткой формы оператора if на следующем примере:
Пример 1
/* программа определения четности числа */
# include <stdio.h>
void main()
{
int n, m;
scanf(«%i», &n);
m = n % 2;
if(m = 0)
printf(«Число четное»);
if(m != 0)
printf(«Число нечетное»);
}
- Логическое выражение <условие>, значение которого вычисляется в операторе if, обязательно должно быть заключено в круглые скобки.
- Оператор <оператор> может быть как простым, так и составным.
ПОЛНАЯ ФОРМА ОПЕРАТОРА if
Полная форма оператора if имеет вид:
if(<условие>)
<оператор1>
else
<оператор2>;
Здесь ключевые слова if и else — имя оператора, <условие> — логическое выражение, а <оператор1> и <оператор2> — операторы языка С.
Встретив в теле программы оператор if, компилятор вычислит выражение <условие> и, в случае его истинности, будет выполнен оператор <оператор1>, после чего продолжится выполнение программы. В случае, если значением выражения <условие> будет ложь, то будет выполнен оператор <оператор2>, после чего продолжится выполнение программы. Рассмотрим работу полной формы оператора if на следующем примере: Пример 2
/* модифицированная программа определения четности числа */
#include<stdio.h>
void main()
{
int n, m;
scanf(«%i», &n);
m = n % 2;
if(m = 0)
printf(«Число четное»);
else
printf(«Число нечетное»);
}
- Логическое выражение <условие>, значение которого вычисляется в операторе if, обязательно должно быть заключено в круглые скобки.
- Оператор <оператор> может быть как простым, так и составным.
Задания для самопроверки
2. Программы разветвляющейся структуры Средства разработки программ разветвляющейся структуры
Программой разветвляющейся структуры
называют такую программу, в которой, в
зависимости от исходных данных, возможны
различные последовательности выполнения
операторов, причем на любой из них каждый
оператор выполняется только один раз.
Для реализации программ или фрагментов
программ с разветвляющейся структурой
используются сложные операторы1:
условные операторы if и операторы
выбора case. В этом разделе ограничимся
рассмотрением полной формы условного
оператора – оператора if then else
и его сокращенной формы – оператора
if then.
При использовании условных операторов
ветвление алгоритма обусловлено
проверками логических выражений (в
языке Object Pascal их называют
булевскими выражениями), результатом
вычисления которых могут быть лишь два
значения: «истина» и «ложь». В условных
операторах могут использоваться как
простейшие булевские выражения,
основанные на сравнении выражений
других типов, так и сложные, использующие
логические операции.
Условные операторы
Оператор if then else имеет
следующую синтаксическую диаграмму
где БВ – булевское выражение (см.
ниже в разделе Булевский тип), значением
которого может быть либо «истина», либо
«ложь». Оп1 и Оп2 – операторы, каждый из
которых может быть пустым оператором.
При выполнении оператора if
then else
вначале вычисляется выражение БВ и
если результат – «истина», то выполняется
оператор Оп1, иначе, то есть если результат
имеет значение «ложь», – оператор Оп2.
В схемах алгоритмов оператору if
then else
соответствует конструкция
Оператор if then имеет синтаксическую
диаграмму
г
де
БВ – булевское выражение, Оп1 – оператор.
При выполнении оператора if
then вначале вычисляется
выражение БВ и если результат – «истина»,
то выполняется оператор Оп1, иначе, то
есть если результат – «ложь», управление
передается следующему по порядку
оператору программы. В схемах алгоритмов
оператору if then
соответствует конструкция
Простейшими булевскими выражениями
являются отношения. Знаки отношений
записываются следующим образом: >,
<, = – так же, как в математике,
знаки
записываются парами символов <=,
>=, <>
соответственно. Более сложные булевские
выражения рассмотрены в следующем
разделе.
Пример. Требуется записать условный
оператор, вычисляющий новое значение
Y по заданным значениям A, B, X, Y по формуле
то
есть в соответствии с алгоритмом
Вот этот оператор:
if
A > B then
if B >= 3 then
Y:=2
else
else
Y:=X;
Этому оператору if then else подчинен
оператор присваивания Y:=X
и еще один оператор if then else,
который, в свою очередь, содержит пустой
оператор (после первого else) и
оператор присваивания Y:=2.
Необходимость использования else во
вложенном условном операторе вытекает
из следующего правила: else
относится к ближайшему предшествующему
if, у которого
нет части else. Можно было бы не
использовать else во вложенном условном
операторе, но тогда пришлось бы заключить
его в операторные скобки, то есть заменить
его оператором
begin
if B >= 3 then
Y:=2 end.
Пример. Для функции предыдущего примера
можно составить другой алгоритм:
Тогда
соответствующим ему оператором if
then else
будет
if
A<=B then
Y:=X
else
if B>=3 then
Y:=2
и
вложенный в него условный оператор
естественно использовать в сокращенной
форме.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
План урока:
Программирование разветвляющихся алгоритмов
Определение разветвляющегося алгоритма
Условный оператор
Формы записи условного оператора if
Составной условный оператор 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 («ИЛИ», логическое сложение), например:
- p and q (истинно, если истинны обе логические переменные – p И q);
- a > b or x < 7 (истинно, если a > b, ИЛИ если x < 7);
- c < 3 or d > 5 and x <> 2 (истинно, если c < 3, ИЛИ если d > 5 И x <> 2).
В третьем примере сначала определяется истинность выражения d > 5 and x <> 2, а затем выполняется операция or, поскольку логическое умножение, как и арифметическое, имеет приоритет над сложением.
Вложенные ветвления представляют собой условие внутри условия. Когда «условие 1» будет принимать истинное значение, программа перейдёт на проверку «условия 2», иначе – выполнится «ветвь 1». Если «условие 2» окажется истинным, то выполнится «ветвь 3», иначе – «ветвь 2». Таким образом, «условие 2» является вложенным в «условие 1».
Какие условные операторы языка Паскаль позволяют описывать подобные разветвленные алгоритмы? На этом уроке мы продолжим разбор условного оператора if и рассмотрим различные его формы.
Условный оператор
Условный оператор в Паскале позволяет выбрать ветвь выполнения программы в зависимости от истинности или ложности логического выражения, записанного в условии.
Формы записи условного оператора if
Неполный условный оператор if включает в себя служебное слово if («если»), за которым следует условие – простое либо составное логическое выражение, после которого пишется слово then («то»). Далее указывается оператор, выполняемый тогда, когда заданное условие является истинным. В конце оператора ставится точка с запятой:
if <условие> then <оператор 1>;
Полный условный оператор if, в дополнение к «оператору 1», выполняющемуся при истинности условия, добавляет «оператор 2», который выполняется если условие ложно. При этом после «оператора 1» пишется служебное слово else («иначе»), за которым следует «оператор 2», а разделитель точка с запятой переносится в конец оператора:
if <условие> then <оператор 1> else <оператор 2>;
Поскольку для транслятора языка Паскаль разделителем между операторами является символ точки с запятой, а не перевод строки, для повышения читабельности программы, условный оператор принято записывать в несколько строк, выделяя отдельные ветви отступом от левого края:
if <условие> then
<оператор 1>
else
<оператор 2>;
Составной условный оператор
Составной оператор в Паскале применяется тогда, когда в одной из ветвей нужно выполнить более одного оператора. Составной оператор начинается со служебного слова begin и завершается служебным словом end. В промежутке между этими двумя словами находятся операторы, выполнение которых происходит в том порядке, в котором они записаны. Составные операторы могут применяться везде, где применяются простые операторы, и также как простые операторы, они должны отделяться точкой с запятой по тем же правилам. Пример использования составного оператора в конструкции if..then..else:
if <условие> then
begin
<оператор 1>;
<оператор 2>;
end
else
begin
<оператор 3>;
<оператор 4>;
end;
В данном примере, в случае истинности условия будут выполняться операторы 1 и 2, в случае ложности – операторы 3 и 4.
Вложенный условный оператор
Так как «оператор 1» в примерах выше может быть любым допустимым оператором языка Паскаль, никто не запрещает использовать вместо него еще один оператор if, создавая таким образом вложенные условные операторы:
if <условие 1> then
if <условие 2> then
<оператор 1>
else
<оператор 2>
else
<оператор 3>;
Таким образом, для множества алгоритмов разветвляющейся структуры существует множество простых и составных операторов.
Однако, на этом многообразие операторов ветвления не заканчивается. Так, для разветвляющихся циклических алгоритмов применяется оператор while.
Циклический оператор while
Если нужно создать цикл, то циклический оператор while отлично подходит для этой задачи. Он используется тогда, когда неизвестно точное число повторений одних и тех же действий. Однако, эти действия могут не выполниться ни разу. Оператор while записывается следующим образом:
While <условие> do
<оператор 1>;
Выполнение действий, заключённых в операторе 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. Проверка кода программы. После окончания всех циклов она должна вывести итоговое число и завершить свою работу.
ВЫПОЛНИЛ: СТУДЕНТ ГРУППЫ
07001504
Марко Тангуила
Проверила: Гахова Нина Николаевна
Оценка:___________________
Дата:_____________________
Лабораторная работа №2
С/C++: ПРОГРАММЫ РАЗВЕТВЛЯЮЩЕЙСЯ СТРУКТУРЫ
Цель и содержание работы: Приобретение навыков разработки алгоритмов и программ разветвляющейся структуры с использованием условного оператора и оператора множественного выбора.
Вариант 5
5.- С клавиатуры вводятся координаты вершин треугольника X1, Y1, X2, Y2, X3, Y3. Определить, какие вершины треугольника расположены в первой четверти.
Таблица 2 – Таблица вариантов задания 2
5.- С клавиатуры вводится оценка, полученная студентом – Ос. Выдать сообщение ‘Отлично’, если Ос=5, ‘Хорошо’ – Ос=4, ‘Удовлет.’ – Ос=3 или ‘Плохо’–для Ос=2 или Ос=1.
#include
int num;
int main ()
{
std::cout “n оценка, полученная студентом “;
std::cin num;
std::cout “n Это оценка=: “;
switch (num)
{
case 1:
std::cout “Плохо =1 n”; break;
case 2:
std::cout”Плохо =2n”; break;
case 3:
std::cout”Удовлет =3 n”; break;
case 4:
std::cout”Хорошо =4 n”; break;
case 5:
std::cout”Отлично =5 n”; break;
default :
std::cout “n Это не день оценка! nn”;
}
return 0;
}
ЛАБОРАТОРНАЯ РАБОТА
№ 2
Разработка алгоритмов и программ
разветвляющейся структуры
Цель: освоить методы разработки алгоритмов и программирования задач разветвляющейся структуры.
Краткие теоретические сведения
Решение абсолютного большинства задач
невозможно свести к алгоритмам
линейной структуры. Часто в зависимости от каких-либо промежуточных результатов или исходных данных вычисления осуществляются либо по одним, либо по
другим формулам, то есть в зависимости от выполнения некоторого логического условия вычислительный процесс осуществляется по
одной или другой ветке. Такие задачи можно описать
с помощью алгоритмов разветвляющейся структуры.
Алгоритм разветвляющейся структуры – это алгоритм, в котором осуществляется проверка какого-либо условия
и в зависимости от результата проверки выбирается один из нескольких возможных
путей вычислительного процесса.
Каждый подобный путь называется ветвью алгоритма.
В блок-схемах разветвляющийся вычислительный процесс может изображаться в двух формах: полной и неполной.
Полная форма:
Неполная форма:
19
Пример 1. Вычислить значение переменной Z, используя формулы:
ìsin(x),
ï
ícos(x),
ïtg (x),
если если если
x £ a
a x b x
³ b
Из математической формулировки задачи видно, что вычислительный процесс
имеет три ветви. С помощью
условного блока проверяется
выполнение только одного условия, по которому
выбирается выражение для реализации одной ветви. Поэтому
для определения того, по какой
из двух оставшихся ветвей должен идти вычислительный процесс
после невыполнения первого
условия, необходимо использовать еще один условный
блок. После вычисления переменной по формуле
осуществляется переход в общую
ветку к блоку вывода.
Схема алгоритма решения
задачи имеет вид:
Пример 2. Вычислить
значение переменной Z, используя формулы:
z = x ,
y
20
где
y = sin(nx) +
0,5
Казалось
бы, что решение этой задачи описывает алгоритм
линейной структуры. Однако для удовлетворения свойства массовости и результативности алгоритма
необходимо, чтобы при различных
исходных данных был получен числовой результат или сообщение о том, что задача не может быть решена при заданных исходных данных. Действительно, если у = 0, то
задача не может быть решена,
поскольку делить на ноль нельзя. Поэтому в алгоритме необходимо предусмотреть проверку условия и выдать как результат информацию о том, что у
= 0.
Схема алгоритма решения задачи имеет вид:
Для организации разветвленных вычислительных
процессов в программах используются операторы безусловного перехода, условий и выбора.
Оператор безусловного перехода
имеет вид:
Goto
метка;
Оператор
безусловного перехода – это оператор,
который передает управление
в программе другому оператору, перед которым
стоит метка, указанная
в операторе Goto.
Метка – это произвольный идентификатор
(имя) или целое число без знака,
которая должна быть объявлена в разделе описания Label. Отделяется метка от оператора двоеточием.
21
Условный оператор If … Then … Else является
простой формой проверки условий
и имеет следующий синтаксис:
If условие Then оператор 1 Else оператор
2;
Оператор 1 выполняется в том случае, если
условие истинно, иначе выполняется
оператор 2. Условие – это выражение логического типа.
В условном операторе
допустимо использование составного оператора. Составной оператор
– это объединение нескольких операторов в одну группу. Форма записи
данного оператора имеет вид:
If условие Then Begin
оператор 1;
…. оператор n
Else
End
Begin
оператор 1;
…. оператор n
End;
В этой форме записи условного оператора служебные слова Begin и End называются операторными скобками. Составной оператор
используется в тех случаях, когда по правилам
языка программирования Pascal разрешается использовать только один оператор,
а программисту для решения задачи
необходимо выполнить группу операторов.
Поскольку
ветвь Else является
необязательной, условный оператор может быть записан в краткой форме:
If условие Then Begin
оператор 1;
…. оператор n
или
22
End;
If условие Then оператор;
Оператор выбора Case, который позволяет выбрать и
выполнить один оператор,
имеет следующий вид:
Case
выражение of
список меток 1 : оператор
1;
список
меток 2 : оператор 2;
……………..
список меток
N :
оператор N;
Выражение – это выражение порядкового
типа, определяющее дальнейший ход выполнения программы. Не может принимать
значение действительного числа или строки.
Список меток представляет собой список констант,
разделенных запятыми, если диапазон чисел – то указывают первую и последнюю
константы диапазона,
разделенные двумя точками. Например,
список 1, 2, 3, 4 можно записать
как список 1 .. 4.
Выполняется оператор Case следующим
образом: вычисляется значение
выражения (за служебным словом Case), затем полученное значение последовательно сравнивается с константами из списка меток, стоящих перед двоеточием. Если значение выражения
совпадает с константой из какого-либо списка меток, то выполняется соответствующий этому списку меток оператор. Если значение выражения не совпадает ни с одной
константой из всех списков, то выполняется
оператор, стоящий за словом else. Раздел else является необязательным.
Например, вывести на экран название времени года, в зависимости от введенного
номера месяца
case n of
3..5 : s:=‟vesna‟;
6..8 : s:=‟leto‟;
9..11 : s:= „osen‟; else
s:=‟zima‟; end;
23
Пример 3. Вычислить значение переменной t, используя формулы:
ì
t = í
2x – p
,
если
x < a
Решение.
Исходные данные: x,
a.
îln x,
если
x ³ a
Результат вычислений: значение t. Ограничения:
1. для
вычисления переменной t по формуле
соответствующей условию х<а
необходимо дополнительно проверить
условие 2х-p³0, иначе вывести
сообщение «корень не вычисляется»;
2. для
вычисления переменной t по формуле
соответствующей условию х³а необходимо дополнительно проверить условие
х>0, иначе вывести
сообщение «логарифм не вычисляется».
Схема алгоритма решения задачи имеет вид:
Текст программы решения задачи имеет
вид: Program rabota;
Label 1;
Var x, a, t: real; begin
writeln („Ввод x, a‟); readln (x, a); If x < а Then
24
If 2 * x – pi >= 0 Then t: = Sqrt(2 * x – pi)
Else begin
writeln („Корень не вычисляется‟); goto 1 end Else
If x > 0 Then t: = Ln(x)
Else begin
writeln („ln не вычисляется‟); goto 1 end; Writeln (‘При х=‟, x:6:2,
„ a=‟, a:6:2, „ t=‟, t:6:2);
1: end.
Задание
1.
Изучить лекционный материал и методические рекомендации для выполнения задания.
2.
Разработать алгоритм для расчета
заданной переменной.
3. Составить программу на алгоритмическом языке Pascal.
4.
Выполнить отладку и тестирование программы на компьютере.
5.
Подготовить отчет о выполнении задания. Пример
оформления отчета представлен в приложении 2.
6.
Подготовить ответы на контрольные вопросы.
Варианты заданий
№ п/п |
Вид задания |
№ п/п |
Вид задания |
|
1 |
ìa + ln(x + a), если 0 £ x £ 2 y = ï sin(ax) , если x > 2 í ïx2 – cos a, если x < 0 î |
2 |
ìln x + b , если x < 4 ï z = í(1 + x2 ) × b, если 4 £ x £ 5 ïb × e–x , если x > 5 î |
|
3 |
ìb 2 – x + b, если x < 2 v = ï bx –1 í , если x ³ 2 ïln(x – b) î |
4 |
ì1.5 × t 2 z = ï2a – x + b, если x < 3 í ïî5t + bx – cos2 a, если x |
|
5 |
ìln x z = ï í sin x + b ï , если x ³ 1 î x – b |
6 |
ìc + x2 a = ï 2 – x , если x £ 4 í ï cx3 + x – c , если x î |
25
7 |
ìab(x + x2 ), если x < –1.2 ï a – b y = ï , если –1.2 £ x £ 1.1 í1 + x ï îï(a + b) × tgx, если x > 1.1 |
8 |
ì x – c , если x < 0 ï 2 y = ï in(x + c), если 0 £ x £ 0.5 ís ï3 + c ï , если x î ln x |
|
9 |
ì3 ax +1, если x > 1.5 z = ïax +1 í îï sin x , если x |
10 |
ìsin(z × a), если z > 0 y = ï cos z í ï , если z £ 0 î ln a |
|
11 |
z = ì1.5a – ln(x – a), если x £ 2 í î 8.5 – xa , если x > 2 |
12 |
p = ìïsin(x + a), если x ³ a í ïî3 ln(x – a), если x < a |
|
13 |
ì1+ sin3 x, если x > 1.5 a = ï íï 1 , если x £ 1.5 î1– x2 |
14 |
ì 1 y = ïe x–1 , если x < 2 í îï3 x 2 – 4, если x ³ 2 |
|
15 |
ì t × e –x y = ïln(x +1) , если x < 1 í ïsin x + t 2 , если x ³ 1 î |
16 |
ìsin(x + a), если x ³ 2 y = ïa – x íï , если x < 2 î x |
|
17 |
ì a + bx , если x < –2 y = ïa + bx, если – 2 £ x £ 0 í ï(a – b) × cos x, если x î |
18 |
ì y + 3 ax, если x < 0 v = ï y + x í , если x ³ 0 ïln(x – y) î |
|
19 |
ìsin x, если x < 1 y = ï a – x , если 1 £ x £ 2 í ïcos 3 x, если x > 2 î |
20 |
ìz – ab, если z < 0 y = ï + az, если 0 £ z < 1 íbz ï îab |
|
21 |
ìln ax +1, если x < –0.5 ï y = í ax , если – 0.5 £ x £ 2 ïax 3 +1, если x > 2 î |
22 |
ì 1 ït z = ï í x ïcos 2 , если t > 2 î a |
|
23 |
ìex × ab, если x < –0.1 ï 1 y = ï , если – 0.1 £ x £ 0.3 ísin x ï ïîax2 + b, если x > 0.3 |
24 |
ì x ïtg ï t = íe–x + 3 x , если x > 1 ïx ln b, если x < –1 ï î |
26
25 |
ì ïsin 2 x, если x £ 0 y = ï os x 3 , если 0 < x £ 0.5 íc ïcos x ï , если x î ln x |
26 |
ì ïln(xy), если x < –1 z = ï x , если x > 1 íe ï 1 , если –1 £ x £ 1 ï x î |
|
27 |
ì a + bx , если x < 0.3 ï ln x ï z = ía x + b2, если 0.3 £ x £ 0.6 ïbx2, если x > 0.6 ï î |
28 |
ìcos3 x, если x ï q = í b – x2 , если –1 £ x £ 1 ï x , если x < –1 î |
|
29 |
ìcos(xa), если x í1 , если x ³ a ï ln x î |
30 |
ì5 ax –1, если x < 5 s = ï í 2.5 , если x ³ 5 ïln( x î |
Контрольные вопросы
1.
Что такое алгоритм?
2.
Какими свойствами обладает алгоритм?
3. Какие формы используются для описания алгоритма?
4.
Какие геометрические фигуры могут
использоваться в блок-
схеме разветвляющегося алгоритма?
5.
Каковы типовые структуры алгоритма?
6. Какова структура программы?
7.Какие
разделы описаний используются при программировании разветвляющегося алгоритма?
8. Какова структура условного
оператора?
9.
Какие существуют формы записи
условного оператора?
10.
Что такое составной оператор? Привести примеры его использования.
11.
Какой оператор позволяет вывести на экран текстовое сообщение?
12. Что такое метка?
Привести примеры ее использования.
13.
Какой оператор позволяет передать
управление другому оператору в программе?
Скачано с www.znanio.ru