Практическая работа_ Реализация алгоритма линейной струкруры на. Практическая работа Реализация алгоритма линейной структуры
Скачать 195.04 Kb.
|
Лабораторная работа№2Использование логических операций и оператора выбора при реализации алгоритмов разветвляющейся структурыЦель работы: получить навыки разработки алгоритмов разветвляющей структуры, отладки и тестирования программы. Задание для подготовки к работе Изучить логический тип. Изучить операторы языка Турбо Паскаль для организации ветвлений. Разработать алгоритм для решения задачи соответствующего варианта. Подобрать тестовые данные. Задание к работе Написать программу, отладить её, протестировать. Распечатать текст программы и результаты её работы на тестовых данных. Содержание отчёта Условие задачи. Описание алгоритма. Набор текстовых данных с обоснованием их выбора. Текст программы. Описание и анализ ошибок, выявленных при отладке программы. Краткие теоретические сведения Для программной реализации алгоритмов разветвляющейся структуры в языке программирования Pascal можно использовать три оператора: Условный оператор (оператор условного перехода). Оператор выбора (оператор варианта) Оператор безусловного перехода. Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие. Структура условного оператора: IF <условие> THEN <оператор1> ELSE <оператор2>; Условный оператор работает по следующему алгоритму. Вначале вычисляется условное выражение. Если его результат есть TRUE (истина), то выполняется оператор1, а оператор2 пропускается; если результат есть FALSE (ложь), то наоборот, пропускается оператор1, а выполняется оператор2. Например: var a, b, c:Integer; begin …………………….. if a >c then b :=c else b:=a; При выполнении этого фрагмента переменная b получит значение переменной а, если только это значение не превышает с, в противном случае b станет равно с. Часть ELSE условного оператора может быть опущена. Тогда при значении TRUE ycловного выражения выполняется оператор1. В противном случае этот оператор пропускается. Пример: Написать программу расчета функции Блок-схема program wetw; var y,x:real; begin writeln(‘x=’); readln(x);{ввод х} if (x>0) and (x<2) then y:=sqr(cos(x)) else y:=1-sin(sqr(x));{вычисление значения у} writeln(‘y(‘,x:8:2,’)=’,y:8:2);{вывод значения y на экран} readln;{пауза} end. Оператор выбора позволяет выбрать одно из нескольких возможных предложений программы. Параметром, по которому осуществляется выбор, служит ключ выбора - выражение любого порядкового типа (любого из рассмотренных, кроме типов REAL и STRING. Структура оператора выбора такова: CASE <целочисленное_выражение> OF константа1:список_операторов1; константа2:список_операторов2; константа3:список_операторов3; [ЕLSE< операторы>] END; Оператор выбора работает следующим образом. Вначале вычисляется значение выражения, а затем в последовательности операторов отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает свою работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается операторам, стоящим за словом ELSE. Часть ELSE можно опускать. Тогда при отсутствии в списке выбора нужной константы ничего не произойдет и оператор выбора просто завершит свою работу. Ниже приведен пример программы, вводящей числа и печатающей сообщения: "Четная цифра" (для цифр 0,2,4,6,8), "Нечетная цифра" (для цифр 1,3,5,7,9), "Число больше 10 "-для всех остальных Var I:Integer; Begin Repeat Readln(I); Case I of 0,2,4,6,8:Writeln ('Четная цифра'); 1,3,5,7,9:Writeln ('Нечетная цифра'); Else Writeln ('Число больше 10'); End. Оператор безусловного перехода имеет вид записи GOTO n; где n-метка. Метки представляют собой целые числа без знака, состоящие не более чем из четырёх цифр, и описываются в разделе описания меток. С помощью оператора перехода управление передаётся оператору n. Далее выполняются операторы, стоящие за ним. Метка располагается непосредственно перед помечаемым оператором и отделяется от него двоеточием. Оператор можно помечать несколькими метками, которые в этом случае отделяются друг от друга двоеточием. Перед тем, как появится в программе, метка должна быть описана. Описание меток состоит из зарезервированного слова LABEL (метка), за которым следует список меток. Label Loop, lb1,lb2; Begin ………………… goto lb1; ……………… loop:………….. …………….…. lb1:lb2: …………. ……….. gotolb2; ……………… Действие оператора goto состоит в передаче управления соответствующему меченному оператору. Варианты заданий 1/21. Даны действительные числа а,b,c,d. Если они упорядочены по убыванию, то каждое число заменить наибольшим из них. Если они упорядочены по возрастанию, то числа заменить их квадратами в противном случае все числа оставить без изменения. 2/22. Даны действительные числа x,y,z.Выяснить существует ли треугольник с длинами сторон x,y,z.Если да то то является ли он остроугольным. 3/23. Определить, находится ли точка с координатами (x,y) в I или III четверти и внутри круга даннного радиуса r с центром в начале координат. 4/24. Определить, найдутся ли среди трех натуральных чисел полные квадраты. (Например 25 это полный квадрат ) 5/25. Даны координаты вершин четырехугольника. Определить является ли данный четырехугольник ромбом. 6/26. Определить, каким является треугольник, заданный координатами своих вершин: раносторонним, равнобедренным или разносторонним. 7/27. Даны 3 вещественных числа. Если из них можно составить возростающую геометрическую прогрессию, то вывести эту прогрессию. В противном случае вывести сообщение, что последовательность чисел прогрессией не является. 8/28. Даны действительные числа x,y. Если x и y отрицательны, то каждое значение заменить его модулем, если отрицательно только одно из них, то оба числа увеличить на 0,5; если оба не отрицательны,то оба значения уменьшить в 10 раз. 9/29. Определить, является ли четырехугольник, заданный координатами своих вершин, прямоугольником. 10/30. Решить ситему 11/31. Если сумма трех различных чисел меньше 1, то наименьшее из них заменить полусуммой двух других , а наибальшее – полуразностью двух других. 1 2/32. Даны действительные числа x и y. Определить, принадлежит ли точка с координаткми x, y заштрихованной части плоскости. 13/33. Даны челые числа K и L. Если числа не равны, то заменить каждое из них одним и тем же числом, равное большему из исходных, а если равны, то заменить числа пулями. 14/34. Дано натуральное число n (n≤99). Выяснить, верно ли , что n2 равно кубу суммы цифр числа n . Например: n=25; 252=(2+5)3. 15/35. Определить верно ли, что при делении неотрицательного целого цисла а на положительное число b получится остаток, равный одному из двух заданных чисел R или S. 16/36. Составить программу, осуществляющую перевод величин из радианной меры в градусную и наоборот. Программа должна запрашивать, какой перевод нужно осуществить, и выполнять указанное действие. 17/37. Написать программу, которая анализирует данные о возрасте и относит человека к одной из четырех групп: дошкольник, ученик, работник, пенсионер. Возраст вводится с клавиатуры. 18/38. Составить программу, определяющую, пройдет ли график функции y=ax2+bx+c через заданную точку с координатами (m, n). 19/39. Даны вещественные числа x, y. Вычислить 20/40. Даны вещественные числа x, y. Вычислить Контрольные вопросы 1. Дайте характеристику логического типа? 2. Что представляет собой логическое выражение? 3. Какое выражение называется отношением? 4. В каком порядке выполняются операции в логических выражениях? 5. Как организовать бинарное ветвление? 6. Как организовать множественное ветвление? 7. Какие наборы тестовых данных необходимы для тестирования программ с ветвлением? 8. Раскажите о каждом из структурированных опараторов Паскаля, реализующих ветвление. 9. Дайте новичку несколько полезных советов о программировании вложенных условных операторов. 10. Перечислите арифметические и логические операции в порядке убывания их приоритета. |