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

Методические указания к выполнению лабораторных работ по курсу "Алгоритмические языки и программирование" для студентов специальности 220400 - Программное обеспечение вычислительной техники и автоматизированных систем

 

Белгород 2003

ВВЕДЕНИЕ

 

На каждую из описанных ниже лабораторных работ отводится два часа аудиторных занятий. Предварительно студент должен выполнить задания для подготовки к работе. Письменная часть этих заданий выполняется в тетради для лабораторных работ и предъявляется преподавателю на занятии для получения допуска к работе. Она включает в себя в общем случае:

1) название

2) цель работы

3) задания для подготовки к работе

4) формулировку задачи конкретного варианта

5) описание решения задачи, используемых формул

6) описание алгоритма решения задачи в укрупненных блоках

7) описание структур данных

8) описание подпрограмм

9) текст программы

10) наборы тестовых данных с обоснованием их выбора.

Пункты 1, 2, 3, 4, 6, 9, 10 являются обязательными.

Получив допуск, студент набирает программу, отлаживает ее, тестирует, исправляет в тетради допущенные ошибки. Демонстрирует преподавателю работу программы на тестовых данных. Кроме того, в тетради должен быть выполнен анализ допущенных ошибок (определены типы ошибок и их причины). При защите лабораторных работ студент отвечает на вопросы по теме работы, приведенные в разделе контрольных вопросов, или подобные им.

Примеры оформления письменной части лабораторных работ приведены в приложении.

ЛАБОРАТОРНАЯ РАБОТА № 1

Программирование алгоритмов линейной структуры

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

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

 

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

2. Разработать алгоритм и составить программу для вычисления значений переменных a и b по формулам, приведенным в таблице для соответствующего варианта (см. таблицу). Определить область допустимых значений переменных для алгебраических выражений и выражений на языке Паскаль, причем требуется так записать выражение на языке Паскаль, чтобы области допустимых значений были максимально близки. Значения одинаковых подвыражений должны вычисляться один раз. Исходные данные и результаты требуется вывести в разных строках, каждое - в середине строки экрана.

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

Таблица

 

Расчетная формула
Продолжение табл.
Окончание табл.

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

 

1. Дайте характеристику числовых типов данных в Турбо Паскале.

2. Что представляет собой арифметическое выражение в Паскале?

3. Перечислите стандартные арифметические функции Паскаля.

4. По каким правилам определяется последовательность действий при вычислении значений арифметических выражений в Паскале?

5. Перечислите типы данных, значения которых можно ввести с помощью процедуры read или readln.

6. Перечислите типы данных, значения которых можно вывести с помощью процедуры write или writeln.

7. Чем отличается выполнение процедуры read от readln и write от writeln?

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

9. Как вывести вещественное значение в форме с фиксированной точкой, сохранив заданное число знаков после точки?

10. Как вывести вещественное значение в форме с плавающей точкой, сохранив заданное число знаков мантиссы?

 

ЛАБОРАТОРНАЯ РАБОТА № 2

Программирование алгоритмов разветвляющейся структуры

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

 

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

 

1. Изучить логический тип, правила вычисления значений логических выражений в языке Турбо Паскаль.

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

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

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

 

Варианты заданий

 

1. Даны координаты вершин треугольника: (ax, ay), (bx, by), (cx, cy). Определить, является ли данный треугольник равносторонним, равнобедренным или разносторонним.

2. Найти минимальную цифру в записи данного четырехзначного числа.

3. Даны три вещественных числа. Если из них можно составить возрастающую арифметическую прогрессию, то вывести эту прогрессию.

4. Даны координаты вершин четырехугольника. Определить, является ли этот четырехугольник равнобокой трапецией.

5. Дано уравнение ax3+bx2+cx+d=0 с целыми коэффициентами ( ). Определить количество целых корней этого уравнения.

6. Упорядочить три данные точки на плоскости А(ах, ау), B(bх, bу),
А(cх, cу) по неубыванию расстояния от точки до начала координат.

7. Определить, найдутся ли среди введенных трех натуральных чисел полные квадраты. Например, 25 – это полный квадрат (52).

8. Число называется палиндромом, если его запись читается одинаково справа налево и наоборот. Например 575. Определить, является ли данное четырехзначное число палиндромом.

9. Даны действительные числа a, b, c, d. Если они упорядочены по невозрастанию, то каждое число заменить наибольшим из них; если они упорядочены по неубыванию, то числа оставить без изменения; в противном случае все числа заменить их квадратами.

10. Даны координаты вершин четырехугольника. Определить, является ли данный четырехугольник ромбом.

11. Даны координаты вершин треугольника: (ax, ay), (bx, by), (cx, cy). Определить, лежит ли данный треугольник внутри окружности радиуса R с центром в точке (x0, y0).

12. Определить, принадлежит ли точка P(x,y) заштрихованной области (рис. 1).

 
 

 

 


Рис. 1

 

13. Даны координаты вершин четырехугольника. Определить, является ли данный четырехугольник параллелограммом.

14. Определить, входит ли данная цифра в запись данного трехзначного числа.

15. Определить угол, который образует данный вектор с осью Oх.

16. Даны действительные числа x, y, z. Выяснить, существует ли треугольник с длинами сторон x, y, z. Если да, то является ли он остроугольным.

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

18. Даны три вещественных числа. Если из них можно составить возрастающую геометрическую прогрессию, то вывести эту прогрессию.

19. Определить, является ли четырехугольник, заданный координатами своих вершин, квадратом.

20. Даны действительные числа x, y. Если x и y отрицательны, то каждое значение заменить его модулем; если отрицательно только одно из них, то все значения увеличить на 0,5; если оба значения неотрицательны и ни одно из них не принадлежит отрезку [0,5; 2,0], то оба значения уменьшить в 10 раз; в остальных случаях x и y оставить без изменения.

21. Упорядочить 3 числа по убыванию, если среди них нет отрицательных чисел, или по возрастанию – в противном случае.

22. Даны три точки на плоскости А(ах, ау), B(bх, bу), А(cх, cу). Определить, лежат ли они на одной прямой.

23. Дано трехзначное число. Определить, равны ли все цифры данного числа, или среди них есть только две равные, или все цифры различны.

24. Определить, является ли четырехугольник, заданный координатами своих вершин, прямоугольником.

25. Решить систему

26. n-значное натуральное число называется числом Армстронга, если оно равно сумме n-х степеней своих цифр. Определить, является ли данное двузначное или трехзначное число числом Армстронга.

27. Если сумма трех попарно различных чисел меньше единицы, то наименьшее из них заменить полусуммой двух других, а наибольшее – полуразностью двух других.

28. Определить, принадлежит ли точка P(x,y) заштрихованной области (рис. 2).

 

Рис. 2

 

29. Известны даты рождения Миши и Гриши (день, месяц, год). Определить, кто из них старше и на сколько.

30. Даны координаты начала и конца двух отрезков в декартовой системе координат. Определить, пересекаются эти отрезки или нет.

 

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

 

1. Дайте характеристику логического типа.

2. Что представляет собой логическое выражение?

3. Какое выражение называется отношением?

4. В каком порядке выполняются операции в логических выражениях?

5. По каким схемам могут вычисляться значения логических выражений в языке Турбо Паскаль?

6. Как организовать бинарное ветвление?

7. Как организовать множественное ветвление?

8. Какие наборы тестовых данных необходимы для тестирования программ с разветвлениями?

 

ЛАБОРАТОРНАЯ РАБОТА № 3

Программирование алгоритмов циклической структуры

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