Структурные операторы. Условный оператор.
⇐ ПредыдущаяСтр 2 из 2 Цель работы. Знакомство с работой опeрaтора if...then…, оператора if...then…else… и вложенных операторов if...then…else…
Краткая теория.
Выполнение условного оператора начинается с вычисления значения логического выражения, записанного в условии. Простые условия записываются в виде неравенств или равенств (например, if a>b then writeln (‘Число а – большее из двух’) else writeln (‘Число b – большее из двух’)). Сложные условия составляют из простых с помощью логических операций NOT, AND, OR (например,, if (a>b) and (a<>b) then writeln (‘Число а – большее из двух’) else writeln (‘Число b – большее из двух’)). Логическое выражение принимает одно из двух возможных значений – TRUE (истина) или FALSE (ложь). Если условие истинно, то выполняется <оператор1>, в противном случае - <оператор2>. Если в качестве оператора должна выполниться серия операторов, то они объединяются в операторные скобки begin-end.
Ветвь ELSE может отсутствовать, если в случае невыполнения условия ничего делать не надо (if C=0 then writeln (‘ температура замерзания воды’)). Разбор оператора можно выполнить на следующем примере. Написать программу, проверяющую, принадлежит ли число, введенное с клавиатуры, интервалу (0,5). Обозначим: х – число, вводимое с клавиатуры пользователем. Принадлежность числа х интервалу (0,5) определяется следующей системой неравенств:
0 5 Х принадлежит заданному интервалу лишь в том случае, если одновременно выполняются оба условия.
Program Primer2; Var x: integer; Begin Writeln (‘Введите число x’); Readln (x); {вводим целое число} If (x>0) and (x<5) then writeln (x, ‘принадлежит интервалу’) Else writeln (x, ‘не принадлежит интервалу’); End.
Часто приходится выбирать путь решения задачи не из двух, а из нескольких возможных. Это можно реализовать, используя несколько условных операторов. В этом случае после служебных слов Then и Else записывается новый условный оператор. Если элементами вложенных условных операторов служат неполные условные операторы, то могут возникать неясности, связанные с установлением границ условных операторов. В таких случаях служебное слово else относится к ближайшему if.
Пример. Даны целые числа а, b, c. Если a≤b≤c, то все числа заменить их квадратами, если a>b>c, то каждое число заменить наибольшим из них, в противном случае сменить знак каждого числа (а=а2, b=b2, c=c2 - если a≤b≤c; а=с, b=с - если a>b>c; а= -а, b= -b, с= -с – в остальных случаях).
Program Primer3; Var a,b,c: integer; Begin Writeln (‘Введите числа a,b,c’); Readln (a,b,c); If (a<=b) and (b<=c) then begin a:=sqr(a); b:=sqr(b); c:=sqr(c) end Else if (a>b) and (b>c) then begin a:=c; b:=c end else begin a:=-a; b:=-b; c:=-c end; Writeln (a:3,b:3,c:3); Readln; End. Решение задач. 1. Запишите программу в которой значение переменной вычисляется по формуле: A+B, если А – нечетное и A*B, если А – четное. 2. Найти наибольшее из трех данных чисел. 3. Вывести на экран номер четверти, которой принадлежит точка с координатами (х,у), при условии, что х и у отличны от 0. 4. Вычислить значение функции 5. Даны три целых числа, найти среднее из них. Средним назовем число, которое больше наименьшего из данных чисел, но меньше наибольшего. 6. Написать программу, подсчитывающую сумму только положительных из трех данных чисел. 7. Даны три числа. Написать программу, подсчитывающую количество чисел, равных нулю. 8. Составить программу нахождения произведения двух наибольших из трех введенных с клавиатуры чисел. 9. Если целое число М делится на целое число К, то вывести на экран частное от деления, в противном случае – сообщение «М на К нацело не делится». 10. Найти количество положительных чисел среди четырех целых чисел a,b,c,d.
11. Составить программу, которая определила бы вид треугольника. 12. Составить программу, в которой если число является четным, то вывести «ДА», иначе вывести «НЕТ». 13. Составить программу, в которой если число делится на 5, то вывести целую часть от деления. 14. Даны действительные числа a, b, c. Проверить, выполняются ли неравенства a<b<c. 15. Даны действительные числа a, b, c. Удвоить эти числа, если a≥b≥c и заменить их абсолютными значениями, если это не так. 16. Даны два действительных числа. Вывести первое число, если оно больше второго, и оба числа, если это не так. 17. Даны три числа, выбрать из них те, которые принадлежат интервалу (1,3). 18. Даны действительные числа х, у (х≠у). Меньшее из этих двух чисел заменить их полусуммой, а большее их удвоенным произведением. 19. Если сумма трех различных чисел x, y, z меньше единицы, то наименьшее из этих трех чисел заменить полусуммой двух других, в противном случае заменить меньшее из х и у полусуммой двух оставшихся значений. 20. Даны действительные числа a,b,c,d. Если a≤b≤c≤d, то каждое заменить наибольшим из них; если a>b>c>d, то числа оставить без изменения; в противном случае все числа заменяются их квадратами. 21. Составить программу, которая уменьшает первое число в пять раз, если оно больше второго по абсолютной величине. 22. Найти количество отрицательных чисел среди четырех целых чисел a,b,c,d. 23. опредедите попадает ли точка M(X,Y) в круг с центром O(Xc,Yc) и радиусом R Если точка M(X,Y) лежит в круге, включая границу, то вывести 1, иначе 0. 24. В декартовой системе координат на плоскости заданы координаты вершин треугольника и ещё одной точки. Определить, принадлежит ли эта точка треугольнику. 25. Два отрезка на плоскости заданы целочисленными координатами своих концов в декартовой системе координат. Требуется определить, существует ли у них общая точка. 26. Проверить истинность высказывания: «Среди трех данных целых чисел есть хотя бы одна пара совпадающих».
Лабораторная работа № 3 Оператор варианта Цель работы. Знакомство с работой оператора варианта (оператора выбора) case…of…end.
Краткая теория. Для ситуаций, где имеется несколько (три и более) альтернатив, больше подходит оператор варианта, предназначенный для замены конструкций из вложенных операторов If…then. Общий вид оператора выглядит следующим образом:
Рассмотрим элементы этой конструкции. Во-первых, это зарезервированные слова: case, of, else и end. Между словами case и of находится выражение, принимающее значение, которое, возможно, имеется в одном из списков значений, находящихся слева от двоеточий. Данное выражение называется селектором оператора case. Выполнение оператора выбора начинается с вычисления этого выражения. Если результат вычисления равен одной из перечисленных ниже констант, то выполняется соответствующий оператор. Затем управление передается за пределы оператора выбора. Если значение выражения не совпадает ни с одной константой, то выполняется оператор стоящий после else (если эта ветвь присутствует), либо выполняется следующий за case оператор. Примечание. 1. В списках значений оператора case допустимыми являются типы переменных, называемые скалярными, включая целые и исключая вещественные типы. 2. Тип константы должен совпадать с типом выражения. 3. Ветвь else заключена в квадратные скобки, т.к. эта часть оператора выбора необязательна. 4. В этой конструкции перед else стоит точка с запятой. 5. В качестве оператора может быть и составной оператор. Пример. Необходимо преобразовать целое число N в зависимости от величины остатка от его деления на 17 следующим образом: если N mod 17 =0, то N:=0; если N mod 17 =1 или 6, то N:=-N; если N mod 17 =2,3 или 5, то N:=2N; если N mod 17 =4, то N:=3N; во всех прочих случаях N:=5N.
Program Primer4; var n: integer; begin writeln (‘Введите целое число’)’ readln (n); case n mod 17 of 0: n:=0; 1,6: n:=-n; 2,3,5: n:=2*n; 4: n:=3*n; else n:=5*n; end; writeln (‘В результате преобразований n=’,n:3); readln; end.
В данном примере селектором является выражение n mod 17. Кроме этого, имеются 4 списка значений и ветвь else. Константы в этом случае перечисляются через запятую, но допускается использование диапазона значений (например, 3..6).
Решение задач. 1. Составить программу, определяющую к какой группе принадлежит введенный символ (английские буквы, русские буквы, цифры, спец. символы). 2. Написать программу, которая по заданной дате определяет время года. Программа должна проверять корректность введенной даты. 3. Написать программу, которая по номеру года определяет его название по восточному календарю (крыса, корова, тигр, заяц, дракон, змея, лошадь, овца, обезьяна, курица, собака, свинья). 4. Дано неотрицательное число k, не превышающее 10 000. Напечатать фразу «прилетело k ворон», учитывая изменение окончания. 5. Составить программу, определяющую принадлежит введенный символ английскому алфавиту, и если принадлежит, то гласной или согласной буквой он является. 6. Написать программу, которая по заданному времени определяет время суток. Программа должна проверять корректность введенной цифры. 7. Вычислить значение функции у= , где х - принадлежит интервалу (-100,100). 8. Даны целые числа х, у. Если сумма х и у отрицательна, то каждое значение заменить его модулем; если неотрицательна, то оба значения увеличить на 5; если сумма принадлежит отрезку [5, 20], то оба значения уменьшить в 10 раз; в остальных случаях х и у оставить без изменения. 9. Дано натуральное число n, не превышающее 100, которое определяет возраст человека (в годах). Дать для этого числа наименования «год», «года», «лет». 10. Используя следующие денежные единицы – 1 рубль, 2 рубля, 5 рублей, 10 рублей разменять некоторую денежную единицу монетами одного наименования. Если это невозможно сделать, то написать «не могу разменять вашу купюру». 11. Дано натуральное число n, не превышающее 100, которое определяет возраст человека. Дать для этого числа определение возрастной категории человека (младенчество, детство, отрочество, юность, молодость, зрелость, старость). 12. В соответствии с доходом человека и прожиточным минимумом определить социальную группу (за чертой бедности, малообеспеченные граждане, среднего достатка, превышающие средний уровень, олигархи). 13. Дано положительное число х, обозначающее количество денег. Записать фразу «я сегодня могу потратить х рублей», учитывая окончания. 14. Определить успеваемость ученика младших классов по 6 основным предметам (двоечник, троечник, хорошист, отличник). 15. Даны целые числа a,b,c,d. Если их произведение равно цифре большей 100, то каждое число уменьшить в 10 раз; если произведение меньше 10, то числа оставить без изменения; в противном случае все числа заменяются их квадратами.
16. Дана последовательность из 5 символов. Подсчитать сколько раз в ней встречаются знаки арифметических операций (+, -, *, /). 17. Дана последовательность из 5 символов. Преобразовать ее, заменив в ней: все восклицательные знаки вопросительными, все двоеточия точками; все запятые точками с запятой, в остальных случаях заменить символы на звездочки. 18. Если введенный символ является гласной буквой английского языка, то заменить его восклицательным знаком, если согласной – то вопросительным знаком, если цифрой – то двоеточием, в остальных случаях заменить символ звездочкой. 19. Вычислить значение, если 20. Вычислить значение, если 21. Вычислить значение, если 23-24. Для функций, представленных на графиках вычислить у(х). 25. Сгенерировать работу простого калькулятора. Исходные данные: символ операции С (+, -, *, /, ^ - степень); X-первое число; Y-второе число Вывести на экран результат с точностью до двух знаков после точки. На неправильный ввод данных или неправильное деление должно быть предусмотрено соответствующее сообщение "Error". 26. Даны натуральные числа, обозначающие число, месяц и год. Используя «вечный календарь» определить день недели, на который падает указанная дата.
Лабораторная работа № 4 Цикл с параметром. Цель работы. Ознакомится с работой оператора цикла for…to…do… и for…downto…do…. Установить, когда целесообразно применение данного оператора.
Краткая теория. Оператор цикла с параметром применяют тогда, когда известно число повторений одного и того же действия. Начальное и конечное значения параметра цикла могут быть представлены константами, переменными или арифметическими выражениями. Оператор цикла с параметром выглядит так: Рассмотрим, как выполняется оператор цикла с параметром вида For <параметр>:= A to B do <тело цикла>. Сначала вычисляются значения выражений А и В. Если А≤В, то <параметр> последовательно принимает значения, равные А, А+1,…, В-1,В и для каждого из этих значений выполняется <тело цикла>. Если А>В, то <тело цикла> не будет выполнен ни разу и выполнение цикла с параметром сразу же закончится. Оператор цикла с параметром For < параметр>:= A downto B do < тело цикла > выполняется аналогичным образом, но значение <параметра> изменяется с шагом, равным -1. Если <тело цикла> состоит из нескольких операторов, то операторы тела цикла заключаются в операторные скобки begin-end. Примеры.
1. Из чисел от 10 до 99 вывести те, сумма цифр которых равна n. Обозначим: k – просматриваемое число; р1 – первая цифра числа k; р2 – вторая цифра числа k; n – сумма цифр данного числа k. Число k будем выписывать только в том случае, когда сумма р1 и р2 будет равна s; 0<n≤18.
program Primer5; var k,n,p1,p2,s: integer; begin writeln (‘введите целое число’); readln (n); for k:=10 to 99 do {перебор всех двузначных чисел} begin p1:=k div 10; {выделяем первую цифру} p2:=k mod 10; {выделяем вторую цифру} s:=p1+p2: {находим сумму цифр} if s=n then writeln (k); {если сумма равна n, то выводим k} end; readln; end. 2. Составить программу вычисления значения выражения y=((…(202-192)-182)2-…-12)2. Обозначим: у – очередное значение квадрата числа; n – параметр цикла.
program Primer6; var y,n: integer; begin y:=sqr(20); for n:=19 downto 1 do y:=sqr(y-sqr(n)); writeln (‘Значение выражения равно’); writeln (y); end.
Решение задач.
Лабораторная работа № 5 Циклы с условием. Цикл с предусловием. Цель работы. Выяснить в каких случаях целесообразно применять операторы цикла с условием. Ознакомиться с работой этого оператора.
Краткая теория. Цикл с предусловием используется для программирования процессов, в которых число повторений оператора цикла не известно, а задается некоторое условие его окончания.
Выполнение оператора цикла с предусловием начинается с проверки условия, записанного после слова while. Если оно соблюдается, то выполняется <тело цикла>, а затем вновь проверяется условие и.т.д. Как только на очередном шаге окажется, что условие не соблюдается, то выполнение <тела цикла> прекратится. Если <тело цикла> состоит из нескольких операторов, то они объединяются операторными скобками. В теле цикла обязательно должен быть оператор, влияющий на соблюдение условия, в противном случае произойдет зацикливание. Пример. Дано натуральное число n. Подсчитать количество цифр данного числа. Подсчет количества цифр начнем с последней цифра числа. Увеличим счетчик цифр на единицу. Число уменьшим в 10 раз. Далее повторяем то же самое с получившимся числом до тех пор, пока оно не станет равным нулю. program Primer7; var m,n: longint; k: integer; {счетчик цифр} begin writeln (‘введите целое число’); readln (n); m:=n; k:=0; while m<>0 do begin k:=k+1; m:=m div 10: {уменьшаем число на последнюю цифру} end: writeln (‘ в числе ’, n,’ - ‘,k,’ цифр’);{вывод количества цифр} readln; end. Решение задач.
Лабораторная работа № 6 Циклы с условием. Цикл с постусловием. Цель работы. Выяснить в каких случаях целесообразно применять операторы цикла с условием. Ознакомиться с работой этого оператора. Краткая теория. Цикл с постусловием имеет следующий вид:
Этот оператор аналогичен оператору цикла с предусловием, но отличается от него тем, что проверка условия производится после очередного выполнения тела цикла. Это обеспечивает его выполнение хотя бы один раз. Обратите внимание на то, что данный оператор цикла предполагает наличие нескольких операторов в теле цикла, поэтому служебные слова begin-end не нужны. Последовательность операторов, входящих в тело цикла выполняется один раз, после чего проверяется соблюдение условия, записанного следом за служебным словом until. Если условие не соблюдается, цикл завершается. В противном случае – тело цикла повторяется еще раз, после чего снова проверяется соблюдение условия. При описании циклов с постусловием необходимо принимать во внимание следующее: - перед первым выполнением цикла условие его окончания (или продолжения) должно быть определено; - тело цикла должно содержать хотя бы один оператор, влияющий на условие окончания (продолжения), иначе цикл будет бесконечным; - условие окончания цикла должно быть в результате выполнено.
Используя оператор цикла с постусловием решить задачи из лабораторной работы № 5.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|