ekzamen (664995), страница 3
Текст из файла (страница 3)
Операторы условия if выполняются следующим образом. Сначала выражается выражение, записанное в условии. В результате его вычисления получается значение булевского типа. В первом случае, если значение выражения есть true (истина), выполняется , указанный после слова Then (то). Если результат вычисления выражений в условии естьFalse (ложь), то выполняется . Во втором – если результат выражения true, то выполняется , если false – оператор, следующий сразу за оператором if. Операторы if могут быть вложенными.
Read (Ch);
If Ch=’N’ then parol:= True
Else Parol := False;
Read (x);
If Parol = True then
If x = 100 then Writeln (‘пароль и код правельны’)
Else begin
Writeln (‘Ошибка в коде’);
End;
В данном примере с клавиатуры считывается значение переменной символьного типа Ch. Затем проверяется условие Ch=’N’. Если оно выполняется, то переменной Parol булевского типа присваеватся значение True, если условие не выполняется, False. Затем с клавиатуры считывается значение кода Х. Далее оператор проверяет условие Parol = True. Если оно имеет значение True, то выполняется проверка введённого пароля оператором if X=100. Если условие Х=100 имеет значение True, то выводится сообщение “Пароль и код правельны”, и управление в программе передаётся на оператор, следующий за словом end, если оно имеет значение False, выполняется соствной оператор, стоящий после слова else, который выводит на экран видеомонитора сообщение “ошибка в коде”, и вызывает стандартную процедуру Halt(1) для остановки программы.
-
Составной оператор (оператор варианта).
Условный оператор позволяет осуществить ветвление программы только по двум направлениям, одно из которых соответствует выполнению проверяемого условия. Если для переменной необходимо осуществить ряд действий, зависящих от других условий, то надо записывать либо вложенные условные операторы, либо несколько операторов подряд. Для такой операции удобно использовать оператор варианта.
Вход в структуру содержит вычисление или ранее полученное значение переменной (индекса варианта). Это значение может совпасть с меткой, стоящей перед оператором на одной из ветвей переключаются. В таком случае выполняется оператор, помеченный этой меткой, и происходит выход из структуры. Оператор бывает простым или составным, ограниченым операторными скобками begin … end; Если значение индекса варианта не совпало ни с одной из меток, то выполняется оператор с номером n + 1 из строки else. Если оператор варианта содержит строку else , то это - полная форма оператора, если такой строки нет, то используется сокращённая форма оператора варианта.
Метки оператора варианта могут быть константами любого типа. Их тип должен совпадать с переменной индекса варианта. Возможно, чтобы индекс варианта должен был как именем переменной, так и выражением соответствующего типа.
В рассмотренных до сих пор алгоритмах и программах все команды (операторы) выполнялись последовательно одна за другой в том порядке, в котором они были записаны. Однако таким образом может быть построен алгоритм для решения далеко не всякой задачи.
В практике хорошо известны задачи, дальнейший ход решения которых зависит от выполнения какого либо условия.
Рассмотрим простой пример задачи из курса алгебры. Требуется построить алгоритм вычисления значений функции у = |х|. Она задаётся соотношением:
Y =
На языке Паскаль оператор варианта имеет вид:
Case индекс варианта of
Метка 1: оператор 1;
Метка 2: оператор 2;
…
Метка n: оператор n;
Else оператор n + 1
End;
Пример:
Составить программу-решатель.
Дано: молярная масса вещества М, плотность данного вещества Р, масса R или объём V. Требуется найти число молекул К: 1) в единице массы вещества; 2) в теле заданной массой: 3) в единице объёма вещества; 4) в теле заданным объёмом. Для решения задачм воспользуемся формулой:
K = (NА/M)R,
Где NA = 6,022 * 10²³г/моль – число Авогадро.
На основании этой формулы получаем расчётные формулы для программы:
1)K=NA/M; 2)K=NAR; 3)K=NAPV/M 4)K=NAP/M.
Программа имеет вид:
Program E20;
Const NA = 6.022 E20;
Var N: integer; M, R, P, V, K: real;
Begin
Writeln (‘зная постоянную Авогадро, Плотность P данного вещества’);
Writeln (‘и его молярную массу М, можно найти число молекул в’);
Writeln (‘1. в единице массы вещества’);
Writeln (‘2. в теле массой R’);
Writeln (‘3. в единице объёма’);
Writeln (‘4. в теле объёмом V’);
Write (‘введите номер решающей задачи’);
Readln (N);
Write (‘введите исходные данные: М =’);
Readln (M);
Case N of
1: K: = NA / M;
2: begin
Write (‘R = ‘);
Readln (R);
K: = NA *R/M;
End;
3: begin
write (‘плотность вещества Р = ’);
Readln (P);
Write (‘V = ‘);
Readln (V);
K: = NA *P*V/M;
End;
4: begin write (‘плотность вещества P = ’);
Readln (P);
K: = NA *P/V
End;
End;
Write (‘число молекул K = ’, K’);
End.
2.3.2 Вложенные условия.
Существуют задачи в которых по одной из ветки ветвления нужно рассмотреть ещё одно условие.
Рассмотрим задачу: сравнить 3 целых числа и вывести на печать максимальное.
Program chisla;
Var a, b, c: integer;
Begin
Writeln (‘Введите три числа’);
Read (a, b, c);
If a
If a>c then writeln (‘ максимально число ’, a)
Else if b>c then writeln (b максимально число’, b)
Else writeln (‘c максимальное число’, c);
End.
Вот блок – схема данной задачи:
2.3.3 Логические выражения.
Алгоритм решения квадратного уравнения содержит проверку условия D<0. Два значения, D и 0, связаны отношением < - меньше. Если условие выполняется то говорят что соответствующее выражение истинно, если не выполняется то ложь.
Речь идёт о логическом выражении. Примером логических выражений могут служить математические отношения связанные знаками >, <, =, логические выражения имеют два значения True( истина) и False (ложно). Логические выражения такие могут иметь логические операции: отрицания (NOT), конъюнкций (OR) и дизъюнкции (AND).
Логические операции имеют следующую таблицу истинности:
| A | B | Not (A) | (A) AND (B) | (A) OR (B) |
| True | True | False | True | True |
| True | False | False | False | True |
| False | True | True | False | True |
| False | False | True | False | False |
Пусть требуется определить, принадлежит ли точка с координатой x отрезку [a; b]. Если записать это условие двойным неравенством, то читать его надо так: x меньше либо равен b и больше либо равен a (a (x>=a) and (x<= b). Отношения, между которыми стоит логическая операция, заключаются в круглые скобки. Имеется прямоугольное отверстие со сторонами a и b и кирпичь с рёбрами x, y z. Требуется составить условие прохождения кирпича в отверстие. Кирпич пройдёт в прямоугольное отверстие, если выполняется сложное условие: (a>=x) and (b>=y) or (a>=y) and (b>=x) or (a>=x) and (b>=z) or (a>=z) and (b>=x) or (a>=y) and (b>=z) or (a>=z) and (b>=y) Для трёх граней шесть условий получается потому, что можно каждую грань повернуть на 90 и проверить для каждой грани два случая. Определить принадлёжность точки фигуре. Пусть фигура задана ограничивающими её прямыми. Для каждой прямой определим полу плоскость, в которой находится фигура- треугольник АВС. Полуплоскость задаётся неравенством. Полуплоскость, находящаяся выше от оси х определяется неравенством y>0. Полуплоскость, находящаяся справа от прямой, соединяющей точки (-1,0) и (0,2), задаётся неравенством y-2x-2<0. Полуплоскость, находящаяся слева от прямой, соединяющей точки (1,0) и (0,2), задаётся неравенством y+2x-2<0. Условие принадлежности точки (x,y) фигуре : (y>0) and (y-2*x-2<0) and (y+2*x-2<0). Приведём пример программы определяющая существования треугольника со сторонами a, b и c. Условие существования треугольника известно из геометрии: сумма двух любых сторон должна быть больше третьей. Следовательно, для всех сторон условие “сумма двух больше третьей” должно выполняться. Program e4; Var a, b, c: real; Begin Writeln (‘дите длины трёх сторон треугольника’); Readln (a, b, С); Write (‘треугольник со сторонами ’, a, b, c); If (a+b>c) and (b+c>a) and (a+c>b) Then writeln (‘существуют’) Else writeln (‘не существуюет’); Readln End. Ш . Технологический пакет к урокам информатики по теме “Ветвление в Паскале” Задачи с ветвлением и их решение. Program vetvlenie; Var t: integer; Begin Writeln ('Введите температуру сегодня'); Readln (t); If t<=-30 Then Writeln (‘Не идти в школу ') Else writeln (‘Идти в школу'); End. Программа показывает идти ученику сегодня в школу или нет. С клавиатуры он вводит сегодняшнюю температуру, и если она меньше -30, то не идти в школу, а если больше то выводится сообщение о том чтобы идти в школу. Теперь попробуйте написать программу: Сделать так чтобы программа выводила сообщение о том у кого больше денег и у кого меньше. Переделать программу так чтобы вместо денег выводилось сообщение о том кто больше попрыгал. Значения так же вводятся с клавиатуры. Рассмотри задачу: Для модельного агентства выбираются девушки с объёмами 90 (грудь), 60 (талия), 90 (бёдра). Составить программу для отбора девушек по этим параметрам. Вы нам подходите. Вы нам не подходите
Конец
Вопросы и задачи по всей теме.
Составьте программу, которая из двух вводимых вами целых чисел печатает заключение о том, какое число больше
Составьте программу, проверяющую, верно ли утверждение, что введённое вами число является чётным.
Составить программу, определяющую, входит ли введенная вами цифра в десятичную запись введенного вами трёхзначного числа, и печатуящая сообщение о том, входит ли эта цифра в запись числа или нет.
Напишите программы на Паскале для решения следующих задач.
Даны три числа a, b, c. Выясните верно ли a
Даны положительные числа a, b, c, x. Выясните, пройдёт ли кирпич с рёбрами a, b, c в квадратное отверстие со стороной x.
Даны три действительных числа. Выберете те из них, которые принадлежат отрезку [1;3].
Присвойте величине а значение наибольшего из трёх заданных чисел.
Даны два числа. Выведите первое из них, если оно больше второго, и оба числа, если это не так.
Проверьте, если среди трёх заданных чисел равные.
Даны три действительных числа. Найдите наибольшее значение их суммы и произведения.
Напишите программу – модель анализа пожарного датчика в помещении, которая выводит сообщение «пожарная ситуация», если температура (в нашей модели она будет вводиться с клавиатуры) в комнате превысила 600 .
Составьте программу, которая из двух вводимых вами чисел, печатает заключение о том, какое число больше.
Составьте программу, проверяющую, верно ли утверждение, что введённое целое число делится без остатка на 3.
Напишите программу, которая анализирует человека по возрасту и относит его к одному из четырёх групп: дошкольник, ученик, рабочий, пенсионер. Возраст вводится с клавиатуры.
Составьте программу, определяющую, входит ли введённая вами цифра в десятичную запись введённого вами трёхзначного числа, и печатающую сообщение о том, входит ли эта цифра в запись числа или нет.
Составьте программу, которая по трём введённым вами числам определит,
могут ли эти числа быть длинами сторон треугольника, если да, то какой получился треугольник с данными длинами сторон (прямоугольный, остроугольный, тупоугольный).
Составьте программу, определяющую, лежит ли точка с указанными координатами X, Y на окружности радиуса R с центром начала координат.
Составьте программу нахождения корня уравнения ax+b=c, где a, b, c – данные числа.
Даны три действительных числа. Возвести в квадрат те из них, значения которых не отрицательны.
Даны три действительных числа. Выбрать из них те, которые принадлежат отрезку {-5;3}.
Известны результаты соревнования трёх лыжник4ов. Выбрать результат победителя и занявшего третье место.
Дано натуральное четырёхзначное число. Верно ли, что все четыре цифры различны?
Дано натуральное число n(n<100), определяющее возраст человека (в годах). Дать для этого числа наименование «год», «года» или «лет»: например, 21 год, 44 года, 65 лет и т.д.
Тест.
Что такое алгоритм?
А) последовательность выполнения действий.
Б) составление программы.
В) Не знаю.
Что такое Блок-схема?
А) Рисунки квадратиков.
Б) графическое изображение алгоритма.
В) Не имеющие смысла геометрические фигуры.
Для чего нужно ветвление в паскале?
А) Для решения более сложных задач.
Б) Для того чтобы больше подумать над решением задачи.
В) я не знаю.
Какое из этих языков программирования не относится к высшему уровню?
А) Паскаль
Б) Бейсик
В) Машинно – ориентированный
Где чаще всего используется язык программирования Паскаль?
А) Дома
Б) В хакерских группировках
В) В школе и других учебных заведениях.
Каких алгоритмов не существует?
А) Корявых
Б) линейных
В) С ветвлением.
Каких операторов не существует?
А) Условный.
Б) Заумный.
В) Составной.
Почему язык Паскаль такой популярный?
А) Он простой в обучении и изучается в школах
Б) Очень сложный Язык программирования и это мне нравится.
В) Я не знаю.
С какой командой начинается программа?
А) начало
Б) var
В) begin
Как выглядит оператор присваивания?
А) :=
Б) :()
В) =;
Что указывается в операторах?
А) условие
Б) переменные
В) начало и конец.
Заключение.
Цель моей работы достигнута: я рассмотрел различные виды алгоритмических конструкций, изучил конструкцию ветвления, научился решать задачи с ветвлением, подобрал и составил сам задачи, тесты и др. задания.
В дальнейшем я бы хотел продолжить свою работу, рассмотрев в Паскале другие конструкции. Так же мне хотелось бы узнать, как описывается конструкция ветвления в других языках программирования.(C++, Delphi)
126 (6-16)
Список литературы
Введение в програмирование: Учеб. Пособие для уч. Сред.и ст. шк. Возраста / Авт.-сост. В.А. Гольденберг.- Мн.: ООО”Харвест”, 1997.- 528 с. (библиотека школьника).
Бондарев В.М., Гублинский В.И., Качко Е.Г..
Основа програмирования/ худож. – оформитель С.А. Пяткова. – Харьков: Фолио; Ростов Н/Д: Феникс, 1997. –368с.
Турбо Паскаль 7.0 – К.: торгово – издательское бюро BHV, 1996 – 448с.: ил. Т. Рюттяна.
Игошев А.Д. Матинин Е.Г. Express Pascal. Учебное пособие для средних уч. Заведений.
Кузницов А.А. Патапова Н.В. Основы информатики. 8-9 кл.: Учеб. Для общеобразовательных учеб. Заведений 2001 176с.:ил.
29
0>0>0>0>100>














