Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Оператор безусловного переходаСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Действие оператора GOTO состоит в передаче управления соответствующему оператору. Структура оператора: GOTO метка; Метка в Турбо Паскале – это произвольный идентификатор, позволяющий именовать некоторый оператор программы и таким образом ссылаться на него. Метка располагается непосредственно перед помечаемым оператором и отделяется от него двоеточием. Перед тем как появиться в программе, метка должна быть задана в разделе описанания. Описание меток состоит из зарезервированного слова LABEL (метка), за которым следует список меток. Пример 2. LABEL 1; {в разделе описания}; goto 1; {в разделе операторов} {перейти на метку 1} 1: read(x,y); {строка с меткой 1 в разделе операторов} При исполнении меток необходимо руководствоваться следующими правилами: 1) метка, на которую ссылается оператор GOTO, должна быть задана в разделе описаний и она обязательно должна встретиться где-нибудь в теле программы; 2) метки, описанные в процедуре (функции), локализуется в ней, поэтому передача управления извне процедуры (функции) на метку внутри неё невозможна. Однако в программировании не рекомендуется использование оператора GOTO, т.к. это затрудняет понимание программ, делает ее запутанной и сложной в отладке. Современная технология структурного программирования основана на принципе программирования без GOTO. Операторы условного перехода Структура условного оператора имеет следующий вид: IF <условие> THEN <оператор 1> ELSE <оператор 2>; где: IF, THEN, ELSE – зарезервированные слова (если, то, иначе); <условие> – произвольное выражение логического типа; <оператор 1>, <оператор 2> – любые операторы языка Турбо Паскаль. Условный оператор работает по следующему алгоритму. Вначале вычисляется условное выражение <условие>. Если результат есть TRUE (истина), то выполняется <оператор 1>, а <оператор 2> пропускается; если результат есть FALSE (ложь), наоборот, <оператор 1> пропускается, а выполняется <оператор 2>. Поскольку любой из операторов <оператор 1> и <оператор 2> может быть любого типа, в том числе и условным, а в то же время не каждый из «вложенных» условных операторов может иметь часть ELSE <оператор 2>, то возникает неоднозначность трактовки условий. Эта неоднозначность в Турбо Паскале решается следующим образом: любая встретившаяся часть ELSE соответствует ближайшей к ней «сверху» части THEN условного оператора. Условный оператор позволяет проверить некоторое условие и в зависимости от результатов поверки выполнить то или иное действие. Таким образом, условный оператор – это средство ветвления вычислительного процесса. Операторы условного перехода подразделяются на: простые и составные, на короткие и полные. 1) Простой, короткий IF (если) Структура оператора имеет вид: IF (условие) THEN (оператор или метка); Пример 3. Вычислить y: = ln x, если x > 0. Программа имеет вид: Program PR3; Var y, x: real; begin writeln(‘ввести x’); Readln (x); {простой, короткий IF} IF x > 0 THEN y: = ln(x); writeln (‘x=’, x:7:2, ‘ y=’, y:7:2); end. 2) Простой, полный IF Пример 4. Вычислить y = ln x, если X>0, иначе y=cos x. В примере 4 рассматривается не только вариант «тогда», но и «иначе». Программа имеет вид: Program PR4; var x, y: real; begin writeln(‘ввести х’); Readln (х); {простой, полный IF} if x>0 THEN y:= ln (x) ELSE y:=cos(x); Writeln (‘x = ‘, x:6:2, ‘ y = ‘, y:7:2) end. Если Х > 0, тогда выполняется оператор за словом THEN, иначе выполняется оператор, следующий за этой строкой. 3) Составной, короткий IF Составной оператор – это последовательность произвольных операторов программ, заключенная в операторные скобки – зарезервированные слова BEGIN…END. Составные операторы – важный инструмент Турбо Паскаля, дающий возможность писать программы по современной технологии структурного программирования (без перехода GOTO). Язык Турбо Паскаль не накладывает никаких ограничений на характер операторов, входящих в составной оператор. Пример 5. Вычислить y=ln x, z=y–5×x, если x > 0. Оператор условия запишется в виде: IF x>0 then Begin y:=Ln(x); z:=y–5*x; Writeln (’y = ‘, y:7:2, ‘z =’, z:8:3) end; 4) Составной, полный IF Рассмотрим задание примера 4, но вывод делается для каждого условия. Пример 6. Оператор условия запишется в виде: IF x>0 then Begin Y:=ln (x); Writeln (‘x = ‘, x:6:2,’ y =’, y:7:2); End Else begin Y:=cos (x); Writeln (‘x = ‘, x:6:2,’ y =’, y:7:2); End; В примере 6 после слов then, еlse операторы заключены в операторные скобки. 5) Структурированный (разветвленный) IF Среди условных операторов можно выделить структурированный, который предполагает проверку условий путём вложения. 5.1) Структурированный, короткий, простой IF. В структурированном операторе содержится последовательная проверка вложенных условий. Пример 7. Вычислить r=ln(x+y+z), если x > 0, y > 0, z > 0. Оператор условия запишется в виде: IF x>0 then IF y>0 then IF z>0 then R:=LN(X+Y+Z); Пример 8. Можно этот пример записать иначе коротким, простым IF с логическим выражением: IF (x>0) and (y>0) and (z>0) then R:=LN(X+Y+Z); Пример 9. Вычислить r=x+y+z, если выполняется хотя бы одно из условий x>0, y>0, z>0. Оператор условия запишется в виде: IF (x>0) or (y>0) or (z>0) then R:=(x+y +z); В примерах 8, 9 логические выражения включают в себя логические операции. 5.2) Структурированный, полный, простой IF. Пример 10. Вычислить: r=ln(x+y+z), если x>0, y>0, z>0; r=ln (x+y)+ z, если x>0, y>0; r=ln (x)+y+ z, если x>0, иначе r = x+y+z. Оператор условия запишется в виде: IF x>0 then IF y>0 then IF z>0 then r:=ln (x+y+z) Else r:= ln (x+y)+z Else r:= ln (x)+y+z Else r:= x+y+z; Вначале проверяются три условия. Если они выполняются, то вычисляется r=ln(x+y+z). Иначе выполняются первые два условия, а последнее не выполняется и z ≤ 0 (первое слово else относится к последнему условию). В этом случае вычисляется r=ln(x+y)+z. Если из двух условий выполняется только первое, то вычисляется r=ln x+y+z (второе слово else относится ко второму условию) и в этом случае y ≤ 0. Последнее слово else относится к первому условию и в этом случае х ≤ 0. В этом случае вычисляется r=x+y+z. 3. Примеры выполнения задания к практическому занятию № 4 Программы линейных алгоритмов Пример 11. Написать программу линейного алгоритма примера 8 практической работы №1. Вычислить и вывести на экран значение функции: Y = sin (x+30)/(a + x)+b*a; Значение х ввести в градусах. Решение. В программе примера 11 после слова «BEGIN» перед операторами в фигурных скобках даются комментарии, поясняющие действия этих операторов. PROGRAM PR11; VAR a, b, x, y:real; BEGIN {На экран выводится подсказка – текст в скобках} Writeln (‘ввести a, x, b’); {Ввод с клавиатуры переменных a, x, b} Readln (a, x, b); {перевод из градусов в радианы переменной х} x:=x*pi/180; y: = sin (x+30*pi/180)/(a + x)+b*a; {Вывод переменных a, x, b} Writeln (‘a=’, a: 7:3,’ x=’, x: 7:3,’ y=’, y: 7:3); END. В примере11 вывод переменных записан в формате с фиксированной точкой. Примечание. Необходимо учесть последовательность действий при выполнении арифметического выражения с учётом приоритета арифметических действий: а) вычисляются скобки: первая слева и вторая, б) вычисляется синус первой скобки, в) выполняется операция деления синуса на вторую скобку, г) выполняется операция умножения b*a, д) выполняется операция сложения Программы разветвляющихся алгоритмов Пример 12. Написать программу разветвляющегося алгоритма примера 9 практической работы №1. Если х>0, тогда вычислить: y = lg(x) + (a-d)/(d+b); иначе вычислить: y=sin (x)/(a + b)-b/d. PROGRAM PR12; VAR a, b,d, x, y:real; BEGIN {На экран выводится подсказка – текст в скобках} Writeln (‘ввести a, x, b, d’); {Ввод с клавиатуры переменных a, x, b,d} Read (a, x, b, d); {перевод из градусов в радианы переменной х} x:=x*pi/180; if x>0 then y: = ln(x)/ln(10) + (a-d)/(d+b) else y:=sin (x)/(a + b)-b/d; {Вывод результата} Writeln (’y=’, y: 7: 3); END. Пример 13. Дана точка А (X,Y) с координатами X,Y не равными нулю. Найти четверть, в которой находится эта точка. Program Pr 13; Var X, Y: integer; Begin writeln(‘ввести координаты т. А: X,Y’); Readln (x,y); IF (x>0) and (y>0) then writeln (‘т. A: в 1четверти’) else IF (x>0) and (y<0) then writeln (‘т. А в 4 четверти’) else IF y>0 then writeln (‘т. А во 2 четверти’) else writeln (‘т. А в 3 четверти’); End. Каждому ELSE соответствует предыдущее свободное then. Задания к практическому занятию № 4
Задания ИДЗ №3 по теме: «Программирование. Линейные процессы. Ветвления» в Приложении №1 (Задание 4). Вопросы для самоконтроля к практическому занятию № 4 1. Во фрагменте программы: begin writeln (‘ x,y’); readln(x,y,z); z:=x+y; writeln (x,y,z); end. Представлен раздел: 1) операторов; 2) описания переменных; 3) ввода данных; 4) вывода данных. 2. Во фрагменте программы: var x,y,z: real; выполняется описание: 1) числовых переменных целого типа; 2) числовых переменных вещественного типа; 3) описание констант; 4) ввода данных. 3. Укажите правильно записанное логическое выражение на паскале: 1) r<0 and r>0; 2) 0 <x<1 and y >x; 3) (z>y) or (z<x); 4) A>B>C<0. 4. В программе паскаля оператор: writeln(‘z=’, z: 8: 4): 1) вводит данные с клавиатуры; 2) выводит на экран подсказку; 3) выводит переменную с плавающей запятой; 4) выводит переменную с фиксированной точкой. 5. В результате работы линейного алгоритма: x:=5 y:=x+1; x:=2*y; y:=x+y; вывод y. Переменная У приняла значение: 1) 16; 2) 5; 3) 6; 4) 18. 6. В результате работы линейного алгоритма: y:=x+3; x:=2*y; y:=x+y; вывод y. Переменная У приняла значение 18. Указать значение Х до начала работы алгоритма. 1) 7; 2) 3; 3) 5; 4) 10. 7. Укажите правильно записанный оператор присваивания на паскале: 1) z:= cos(x) + ln(y); 2) cos(x):= z+ln(y); 3) z =cos(x)+log(y); 4) a+b:=c+d. 8. При x, y: integer; в результате выполнения фрагмента программы: x:= -5; y:= -10; if abs (x) > abs(y) then x:= x + 15 else y:=x-y; write (x,y); на экран будет выведено: 1) 5; - 10; 2) 10; -10; 3) 10; 5; 4) -5; 5.
|
||||
Последнее изменение этой страницы: 2016-08-16; просмотров: 623; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.202.168 (0.01 с.) |