Файл: Практическая работа Реализация алгоритма линейной структуры.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.02.2024

Просмотров: 26

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Практическая работа

Реализация алгоритма линейной структуры



Цель работы: Научиться решать, тестировать и отлаживать на ЭВМ типовые задачи вычислительного характера. Получить навыки разработки алгоритмов линейной структуры.

Задание для подготовки к работе


  1. Изучить структуру программы на языке Паскаль: числовые типы данных, правила записи арифметических выражений; организацию стандартного ввода вывода.

  2. Разработать алгоритм для вычисления значений а и b по формуле для соответствующего варианта из таблицы. Определить область значений переменных.

  3. Подобрать тестовые данные.



Задание к работе


Написать программу, отладить её, протестировать. Распечатать текст программы и результаты её работы на тестовых данных.
Содержание отчёта

  1. Описание алгоритма.

  2. Наборы тестовых данных с обоснованием их выбора.

  3. Текст программы.

  4. Описание и анализ ошибок, выявленных при отладке программы.


Краткие теоретические сведения

Программа состоит из заголовка программы и тела программы (блока), за которым следует точка – признак конца программы. В свою очередь, блок содержит разделы описаний и раздел операторов.

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



Контрольные вопросы

  1. Какие символы включает алфавит языка Паскаль?

  2. Опишите структуру программы на Паскале.

  3. Объясните назначение и правила использования операторов Readln и Read, а также различия между ними.

  4. Объясните назначение и правила использования операторов Writeln и Write, а также различия между ними.

  5. Дайте характеристику целым типам Турбо Паскаля.

  6. Дайте характеристику вещественным типам Турбо Паскаля.

  7. Перечислите встроенные математические функции Турбо Паскаля.

  8. Как определяется порядок выполнения арифметических операций?






















Лабораторная работа№2

Использование логических операций и оператора выбора при реализации алгоритмов разветвляющейся структуры



Цель работы: получить навыки разработки алгоритмов разветвляющей структуры, отладки и тестирования программы.
Задание для подготовки к работе

  1. Изучить логический тип.

  2. Изучить операторы языка Турбо Паскаль для организации ветвлений.

  3. Разработать алгоритм для решения задачи соответствующего варианта.

  4. Подобрать тестовые данные.


Задание к работе

Написать программу, отладить её, протестировать. Распечатать текст программы и результаты её работы на тестовых данных.
Содержание отчёта

  1. Условие задачи.

  2. Описание алгоритма.

  3. Набор текстовых данных с обоснованием их выбора.

  4. Текст программы.

  5. Описание и анализ ошибок, выявленных при отладке программы.


Краткие теоретические сведения

Для программной реализации алгоритмов разветвляющейся структуры в языке программирования 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. В каком порядке выполняются операции в логических выражениях?