Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Задания к лабораторной работе
Лабораторная работа № 2
Программирование разветвляющихся вычислительных процессов
Теоретическая часть
Вычислительный процесс называется разветвляющимся, если он содержит несколько направлений (ветвей), отличающихся друг от друга содержанием выполняемых действий. В языке Turbo Pascal для реализации разветвляющихся вычислительных процессов служат следующие операторы: · условный оператор if; · оператор выбора case; · оператор перехода goto. Оператор if используется в программе, когда в зависимости от некоторого условия надо выбрать одно из двух действий, или когда какое-либо действие должно быть выполнено только при выполнении заданного условия. В общем виде оператор if записывается так: if <условие> then Begin {операторы, выполняемые, если условие истинно} End Else Begin {операторы, выполняемые, если условие ложно} end; Выполняется оператор if следующим образом. Сначала вычисляется значение выражения <условие>. Затем, если условие выполняется (то есть значение выражения <условие> равно true), то выполняются операторы, следующие за ключевым словом then, находящиеся между begin и end. Если условие не выполняется (значение выражения <условие> равно false), то выполняются операторы, следующие за словом else, находящиеся между begin и end. Если при выполнении (или невыполнении) условия надо выполнить только один оператор, то ключевые слова begin и end после then (или else) можно не писать. Если какое-либо действие нужно выполнить только при выполнении некоторого условия и пропустить это действие в случае невыполнения условия, то оператор if может быть записан в другой, более короткой форме: if <условие> Then Begin {операторы, выполняемые, если условие истинно} end;
П р и м е р 1. Вычислить корни квадратного уравнения ax2+bx+c=0. Блок-схема алгоритма решения задачи приведена на рис. 1.
Рис. 1 Текст программы: Program Korni; var a, b, c: real; {коэффициенты уравнения} d: real; {дискриминант} x1, x2: real; {корни уравнения} label 1,2; begin writeln(‘Введите коэффициенты a, b, c’); readln(a, b, c); d := b*b-4*a*c; {вычисление дискриминанта} ifd=0 then beginx1:= -b/(2*a); x2:=x1; goto 1 end else ifd>0 then beginx1:= (-b-sqrt(d))/(2*a); x2:= (-b+sqrt(d))/(2*a) end else beginwriteln (‘Уравнение не имеет действительных корней’); goto 2; end; 1: writeln(‘x1=’,x1:6:2, ‘x2=’,x2:6:2); 2: end.
Оператор caseпозволяет реализовать множественный выбор и в общем виде записывается так: case <выражение> of <список констант 1> :begin {последовательность операторов 1} end; <список констант 2> :begin {последовательность операторов 2} end; <список констант N> :begin {последовательность операторов N} end; else begin {последовательность операторов, выполняемая} {в случае, если значение выражения не попало} {ни в один из списков констант} end; end; Здесь: <выражение>- выражение, от значения которого зависит дальнейший ход программы (то есть одна из последовательностей операторов, которая должна быть выполнена); <список констант>- константы, разделенные запятыми. Если константы представляют диапазон чисел, то вместо списка можно указать первую и последнюю константу диапазона, разделив их двумя точками. Например, список 1,2,3,4,5,6 может быть заменен диапазоном 1..6. Если между beginи endнаходится только одна оператор, то слова beginи endможно не писать. Примеры: 1. casedayof 1, 2, 3,4, 5: write ('Рабочий день. '); 6 : write (' Суббота ! ') ; 7 : write (' Воскресенье ! ') ; end; 2. casedayof 1..5 : write ( ' Рабочий день . ' ); 6: write (' Суббота ! ') ; 7: write ('Воскресенье! '); end; Оператор case выполняется следующим образом. Сначала вычисляется значение выражения, стоящего после case, затем полученное значение последовательно сравнивается с константами из списков констант. Если значение выражения совпадает с константой из списка, то выполняется соответствующая этому списку последовательность операторов, и на этом выполнение оператора case завершается. Если значение выражения не совпадает ни с одной константой из всех списков, то выполняется последовательность операторов, следующая за else. Допускается не указывать else и соответствующую последовательность операторов. В этом случае, если значение выражения не совпадает ни с одной константой из всех списков, то выполняется следующий за саsе оператор программы. П р и м е р 2. Составить программу, имитирующую работу микрокалькулятора. Блок-схема алгоритма решения представлена на рис. 2. Рис. 2
Текст программы: ProgramCalculator; Var oper: char; {символ арифметической операции} x, a, b :real; {x – результат, a, b – операнды} stop :Boolean; {признак ошибочной операции} Begin stop := false; Write(‘Введите a и b’); Readln(a, b); Write(‘Введите символ операции '); Readln(oper); Case oper of {выбор арифметического действия} ‘+’:x:= a+b; ‘-‘: x:= a-b; ‘*”: x:= a*b; ‘/’: x:= a/b elsestop:=true end; if not stop then writeln(‘Результат = ‘, x:6:3) End.
Практическая часть
2.1. Ознакомиться с описанием лабораторной работы и по указанию преподавателя запустить систему программирования Turbo Pascal. 2.2. Для каждого из заданий к лабораторной работе составить блок-схему алгоритма решения и текст программы в рабочей тетради и предъявить их преподавателю. Для пояснения исходных данных, результатов и основных операций текст программы сопровождать комментариями. 2.3. Набрать текст программы, сохранить его в рабочем каталоге и выполнить компиляцию программы. 2.4. Подобрать контрольный набор исходных данных и запустить программу на выполнение. Результаты зафиксировать в рабочей тетради. Если возникли ошибки на этапе выполнения, то следует провести отладку программы, изменить исходные данные, и повторить пп. 2.3, 2.4. 2.5. Проверить работу программы, задавая 3 – 4 набора исходных данных. Результаты зафиксировать в рабочей тетради. 2.6. По данным рабочей тетради аккуратно оформить отчет по лабораторной работе и предъявить преподавателю. В отчете по каждому заданию должны быть отражены следующие пункты: 1. БСА алгоритма. 2. Исходный текст программы с комментариями. 3. Результаты отладки по п.2.4. 4. Результаты решения по п. 2.5.
Задания к лабораторной работе 1. Составить программу вычисления значений функции: 1 - e-ax*sin(ax+b) при x>π; Y = 1 - e-ax*(ax+b) при -π<x≤π 1 – (e-ax + eax )*sin(ax) при x≤-π 2. Даны три неравных числа a, b, c. Составить программу нахождения квадрата большего из этих чисел. 3. Треугольник задан координатами своих вершин xi, yi, i=1, 2, 3 на плоскости. Определить, является ли заданный треугольник равнобедренным. 4. Составить программу, в которой по заданному значению аргумента x определяется значение функции y, заданной в виде графика (рис. 3). Рис. 3
5. Составить программу, которая запрашивает у пользователя номер месяца и выводит соответствующее название времени года. Если пользователь укажет недопустимое число, программа должна вывести сообщение «Ошибка ввода данных». 6. Составить программу, которая после введенного с клавиатуры числа в диапазоне от 1 до 999, обозначающего денежную единицу, дописывает слово “рубль” в правильной форме. Например, 12 рублей, 21 рубль, 3 рубля и т. д.
|
||
Последнее изменение этой страницы: 2018-05-29; просмотров: 220. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |