Файл: Практическая работа Реализация алгоритма линейной структуры.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.02.2024
Просмотров: 26
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Практическая работа
Реализация алгоритма линейной структуры
Цель работы: Научиться решать, тестировать и отлаживать на ЭВМ типовые задачи вычислительного характера. Получить навыки разработки алгоритмов линейной структуры.
Задание для подготовки к работе
-
Изучить структуру программы на языке Паскаль: числовые типы данных, правила записи арифметических выражений; организацию стандартного ввода вывода. -
Разработать алгоритм для вычисления значений а и b по формуле для соответствующего варианта из таблицы. Определить область значений переменных. -
Подобрать тестовые данные.
Задание к работе
Написать программу, отладить её, протестировать. Распечатать текст программы и результаты её работы на тестовых данных.
Содержание отчёта
-
Описание алгоритма. -
Наборы тестовых данных с обоснованием их выбора. -
Текст программы. -
Описание и анализ ошибок, выявленных при отладке программы.
Краткие теоретические сведения
Программа состоит из заголовка программы и тела программы (блока), за которым следует точка – признак конца программы. В свою очередь, блок содержит разделы описаний и раздел операторов.
Program <имя программы>;
Label <раздел меток>;
Const <раздел констант>;
Type <раздел типов>;
Var <раздел переменных>;
Procedure (Function) <раздел подпрограмм>;
Begin
<раздел операторов>
End.
В Турбо Паскале возможно отсутствие заголовка, разделы Const, Type, Var, Label могут следовать друг за другом в любом порядке и встречаться в разделе описаний сколь угодно раз.
Линейным называется алгоритм, в котором все этапы решения задачи выполняются строго последовательно. Т.е. линейный алгоритм выполняется в естественном порядке его написания и не содержит разветвлений и повторений.
Для реализации алгоритмов линейной структуры используются операторы:
- Оператор (процедура) вывода - Write( ); или Writln( );
- Оператор (процедура) ввода - Read( ); или Readln( );
-
Оператор присваивания - :=
Варианты заданий
№ варианта | Расчетная формула | X | Y | Z |
1/26 | | /7 | 3,017 | -2,69 |
2/27 | | 2.7 | 1.83 | -0.789 |
3/28 | | 0 | /3 | 700 |
4/29 | | 15.3 | 81 | 8.91 |
5/30 | | -1 | 0.59 | 5.17 |
6/31 | | 350 | 0.95 | -1.05 |
7/32 | | 2.5 | 5.8 | 330 |
8/33 | | 1.5 | 70 | 37 |
9/34 | | 0.5 | 150 | 1.95 |
10/35 | | 50 | 1.3 | -0.5 |
11/36 | | 410 | 10.18 | 3.72 |
12/37 | | 2 | 2.1 | 410 |
13/38 | | 80 | 5.2 | 2.8 |
14/39 | | 2.5 | 5.8 | 330 |
15/40 | | 180 | 40 | 3.5 |
16 | | /3 | 4.021 | -5.72 |
17 | | 4.6 | 2.67 | -1.123 |
18 | | 0.1 | /5 | 630 |
19 | | 21.5 | 750 | 7.56 |
20 | | -2 | 0.61 | 4.12 |
21 | | 400 | 2.35 | -3.48 |
22 | | 4.05 | 3.1 | 400 |
23 | | 2.6 | 110 | 41 |
24 | | 1.5 | 200 | 3.06 |
25 | | 150 | 2.1 | -0.78 |
Контрольные вопросы
-
Какие символы включает алфавит языка Паскаль? -
Опишите структуру программы на Паскале. -
Объясните назначение и правила использования операторов Readln и Read, а также различия между ними. -
Объясните назначение и правила использования операторов Writeln и Write, а также различия между ними. -
Дайте характеристику целым типам Турбо Паскаля. -
Дайте характеристику вещественным типам Турбо Паскаля. -
Перечислите встроенные математические функции Турбо Паскаля. -
Как определяется порядок выполнения арифметических операций?
Лабораторная работа№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. В каком порядке выполняются операции в логических выражениях?