Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 781; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.007 с.) |