КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Case i of
BEGIN END. Программа выдает результаты вычислений cos(x) для х = 0.01, 0.02, 0.03 и т.д., до 0.01. В последней программе булевское выражение х < = 0.1. Какие бывают булевские выражения? Вообще говоря, булевское выражение после вычисления всегда истинно или ложно, т.е. TRUE или FALSE. Действительно, выражение х < = 0.1 может быть истинно, если х меньше или равно 0.1, и ложно – в противном случае. Вообще булевское выражение может строиться из булевских констант TRUE и FALSE; переменных булевского типа (в которых могут храниться TRUE или FALSE); обращений к функциям, которые возвращают TRUE или FALSE и отношений, соединенных между собой булевскими операциями и круглыми скобками. Здесь следует расшифровать, что такое отношения и булевские операции. Примером отношения может быть приведенное выше х < = 0.01, т.е. в общем случае отношение – это два арифметических выражения, соединенных между собой операциями отношения. Операции отношения: = (равно), < > (неравно), > (больше), > = (больше или равно), < (меньше), < = (меньше или равно). Пример отношений: а + b < = sin(c) exp(p) > (cos(i) - a)/sgr(b). Как мы уже говорили, эти отношения могут быть истинны или ложны в зависимости от конкретного значения величин, в них входящих, на момент вычисления. Логические операции – это нам уже известные. Напомним, как они работают: or (или), and (и). Имеется описание Var A,B: boobean; Or – логическое сложение, читается как "или". Результат операций – истина, если или А, или В – истина, и ложь, если А и B ложны. Например: А В А ог В true true true true false true false true true false false false Замечание: данная операция аналогична арифметической OR, если TRUE заменить 1, а FALSE – 0. АND - логическое умножение, читается "и". Результат операции – истина только тогда, когда и А, и В – истина, в остальных случаях результат – ложь. А В A and B true true true true false false false true false false false false Кроме того, удобно применять однокомпонентную операцию Not, которая вводится следующим образом: если А есть TRUE, то Not А есть FALSE и если А есть FALSE, то Not А есть TRUE. С помощью этих операций можно построить условия любой сложности. Например, пусть необходимо решить задачу:
Напишем программу: Program Prim5; Var a,x:real; writeln('введите а,х'); readln(a,x); if (a>0) and (x>0) and (x<=0.5) then writeln('z=',a*sqr(x)/sin(x)) else if (a>0) and (x>=0.5) and (x<3) then writeln('z=',exp(x)) else if (a<=0) or (x<=0) then writeln('z=',sqrt(a)*sqrt(x)/sin(x)) else writeln('z=0'); readln; END. Замечание: в последнем примере мы видим, что операторы if могут быть вложены друг в друга. Вкладывать их можно неограниченное количество раз, причем новый if может начинаться как после слова then, так и после слова else. Еще один пример: пусть дана область (заштрихованная на рис. 3.3). Мы вводим с клавиатуры координаты точки. Машина должна определить, принадлежит ли данная точка этой области или нет. Разобьем область рис. 3.3 на несколько простых: 1. Внутренняя часть сектора, ограниченного отрицательной частью оси OX, положительной OY и окружностью с центром в начале координат и радиусом, равным 2.
2. Прямоугольник, ограниченный осями OX, OY и прямыми x=4, y=2. 3. Прямоугольник, ограниченный осями OX, ОУ и прямыми x=-2, y=-4. 4. Внутренняя часть сектора, ограниченного положительной частью оси OX, отрицательной OY и окружностью с центром в начале координат и радиусом, равным 3. 5. Внутренняя часть квадрата, ограниченного прямыми линиями x=2, x=3, y=-3, y=-4. 6. Область, лежащая внутри окружности с центром x=5, y=-3 и радиусом= 1,5. Программа: Program Prim6; Label N,K,L; Var x,y:real; f:char; BEGIN N: writeln('введите координаты точки'); readln(x); writeln('x=',x); readln(y); writeln('y=',y); if (x<=0) and (y>=0) and (sqr(x)+sqr(y)<=4) {1-я область} or (x>=0) and (x<4) and (y>=0) and (y<=2) {2- я область} or (x<=0) and (x>=-2) and (y<=0) and (y>=-4) {3- я область} or (x>=0) and (y<=0) and (sqr(x)+sqr(y)<=9) {4- я область} or (x>=2) and (x<=3) and (y<=-3) and (y>=-4) {5- я область} or (sqr(x-5)+sqr(y+3)<=2.25) {6- я область} then writeln('точка с координатами х=',x,' y=',y, 'принадлежит области') else writeln('точка с координатами х=',x,' y=',y, 'не принадлежит оласти); L: writeln('будем ли ещё вводить координаты точки?, Y, N'); readln(f); if (f='Y') or (f='y') then goto N else if (f='N') or (f='n') then goto K else writeln('неправильно нажали клавишу, попробуйте ещё раз'); goto L; K: readln; End. Замечание: для того, чтобы построить область, необходим здравый смысл и элементарные знания аналитической геометрии. Так, х>=0 определяет область (рис. 3.4)
x>=0 and x<=4 определяет полосу (рис. 3.5)
Вспомнив, что уравнение окружности с центром в начале координат x2+y2=r2, имеем x2+y2£4 (рис. 3.6),
x £0 является полуплоскостью (рис. 3.7),
y ³0 определяет полуплоскость (рис. 3.8),
x £0 and y ³0 есть квадрант (рис. 3.9)
и, наконец, x £0 and y ³0 and sqr(x)+sqr(y)£4 есть сегмент (рис. 3.10)
3.4. Оператор case (оператор выбора)
Общий вид: Case выражение - селектор of Список констант выбора 1: оператор 1; Список констант выбора 2: оператор 2; – – – – – – – – – – – – – – – – – – – – – – – – – – Список констант выбора n оператор n; else оператор end; Здесь выражение-селектор есть выражение, которое после выполнения имеет любое скалярное значение, кроме вещественного (типы данных; разд. 2.6.), т.е. выражение-селектор может быть байтового, целого, логического, символьного, перечисляемого и интервального типов. Список констант выбора состоит из перечня констант, разделенных запятыми, либо из констант, заданных интервалом, либо из комбинаций перечня констант и интервалов. Тип констант в списках Case должен соответствовать типу выражения селектор. Значения констант в списках не должны повторяться. Работа оператора. вначале вычисляется выражение-селектор, затем полученное значение сравнивается с константами выбора, и, если значение выражения-селектора совпадает с какой-либо константой выбора, то выполняется оператор, стоящий после списка констант, в котором есть константа, совпадающая со значением выражения-селектора. если значение выражения-селектора не совпадает ни с одной из констант выбора, то выполняется оператор, следующий за else. Else может в Case отсутствовать, тогда в случае несовпадения констант оператор Case игнорируется. Примеры: 1. Селектор целого типа, список констант представлены перечнем констант:
Program Prim7;Var i,z:integer;BEGIN writeln('введите целое i'); readln(i); 1,2,5: writeln('i=',i,' z=',i+10); 12,16: writeln('i=',i,' z=',i+100); 31,35,46: writeln('i=',i,' z=',i+1000); else writeln('неправильно задано i'); end; readln; END. 2. Селектор целого типа – список констант представлен диапазоном. вводится целое i, определить, находится ли оно в диапазоне 1-10 или 11-100, или 101-1000, либо вне этих диапазонов. Program Prim8;Var i:integer;BEGIN writeln('введите целое i'); readln(i); Case i of 1..10: writeln(' число в диапазоне1-10'); 11..100: writeln(' число в диапазоне11-100'); 101..1000: writeln(' число в диапазоне101-1000'); else writeln(' число вне диапазона 1-1000'); end; readln; END. 3. Селектор целого типа, список констант представлены перечнем констант и диапазоном:
Program Prim9; Var i:integer; x,m,a,b,c,d:real; BEGIN writeln('введите значение i'); readln(i); writeln('введите значения x,m,a,b,c,d'); readln(x,m,a,b,c,d);
Дата добавления: 2014-12-17; Просмотров: 523; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |