Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Южно-Российский государственный технический университет
(Новочеркасский политехнический институт)
Шахтинский институт (филиал) ЮРГТУ (НПИ)
МЕТОДИЧЕСКИЕ УКАЗАНИЯ И ЗАДАНИЯ
к лабораторным работам по дисциплине
«АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ»
Новочеркасск 2007
УДК 681.3(076.5)
Рецензент – доцент В.В. Луценко
Составитель Бондаренко А.И.
Методические указания и з
адания к лабораторным работам по дисциплине «Алгоритмизация и программирование»
/ Сост. А.И. Бондаренко; Шахтинский ин-т (филиал) ЮРГТУ (НПИ). – Новочеркасск: ЮРГТУ, 2007. - 12 с. – 50 экз.
Методические указания содержат задания к лабораторным работам по программированию.
Предназначены для студентов первого курса специальностей 230201«
Информационные системы и технологии»
и 0808001 «Прикладная информатика».
УДК 681.3(076.5)
© Шахтинский институт ЮРГТУ, 2007
© Бондаренко А.И., 2007
Содержание
Введение..................................................................................... 4
1. Лабораторная работа №1.
Программирование линейных алгоритмов.............................. 4
2. Лабораторная работа 2.
Разветвляющиеся алгоритмы.................................................... 5
3. Лабораторная работа 3.
Операторы цикла........................................................................ 6
4. Лабораторная работа 4.
Массивы...................................................................................... 6
5. Лабораторная работа 5.
Характерные приемы программирования.................................7
6. Лабораторная работа 6.
Обработка символьной информации........................................ 8
7. Лабораторная работа 7.
Функции и процедуры................................................................ 8
8. Лабораторная работа 8.
Модуль CRT................................................................................ 9
9. Лабораторная работа 9.
Файлы......................................................................................... 10
10. Лабораторная работа 10.
Элементы машинной графики............................................... 10
Библиографический список.......................................................... 11
ВВЕДЕНИЕ
Задания для выполнения лабораторных работ по курсу “Алгоритмизация и программирование” предназначены для студентов, профессионально начинающих изучать программирование на языке Pascal. Для выполнения лабораторной работы необходимо:
1. Внимательно прочитать и уяснить условие задачи, которую предстоит решить. При необходимости дать ее математическое описание и разработать алгоритм.
2. Ознакомиться с необходимым теоретическим материалом (конспект лекций и рекомендуемую литературу).
3. Изучить образцы готовых программ по теме лабораторной работы из папки DEMO*.PAS.
4. Подготовить текст программы, запустить программу на выполнение и получить результаты (выполнив, при необходимости, отладку программы).
Отчет по лабораторной работе оформляется в виде пояснительной записки и должен содержать следующие элементы:
¨ титульный лист;
¨ текст пояснительной записки (постановка задачи, ее математическое описание, блок-схема алгоритма, описание функций и подпрограмм);
¨ список использованной литературы;
¨ машинный листинг программы на языке PASCAL.
Лабораторная работа №1
ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ АЛГОРИТМОВ
1. Составить программу для определения суммы цифр заданного трехзначного числа.
2. Составить программу, в которой для заданного q
вычисляется один из корней уравнения Ln(ctgx-1)=q
.
3. Вычислить периметр, площадь и углы прямоугольного треугольника по заданным длинам катетов.
4. По заданным длинам сторон треугольника вычислить периметр,
площадь, углы (в градусах) и высоты.
4
5. Написать программу, которая вводит два вещественных числа, вычисляет и печатает коэффициенты приведенного квадратного уравнения, корнями которого являются эти числа. Сделать проверку.
6. Решить относительно х уравнение (x-a2
)(x+b2
)=c2
.
7. Треугольник задан координатами вершин. Найти его площадь и расстояние от центра его тяжести до вершин.
8. Кривая (Аx) 2
+(By) 2
=C2
пересекается прямой y=Dx
в точках M и N. Точку K(C/A ,0) соединили с точками M и N. Найти периметр
D MNK и угол (в градусах) при вершине K.
9. По заданным длинам сторон прямоугольника вычислить угол (в градусах) между его диагоналями.
10. Определить углы (в градусах) заданного вектора с осями координат.
Лабораторная работа №2
РАЗВЕТВЛЯЮЩИЕСЯ АЛГОРИТМЫ
1. Составить программу решения уравнения ax2
+b=0
(неравенства ax2
+b > 0
). При отсутствии решения или бесчисленном множестве решений должен быть напечатан соответствующий текст.
2. Проверить, принадлежит ли точка A(x,y) отрезку KM, заданному координатами точек K(x1
,y1
) и M(x2
,y2
).
3. Проверить, существует ли треугольник, заданный координатами
вершин. Является ли он прямоугольным ( равносторонним) ?
4. Cреди первых двадцати членов последовательности
xn
=
sin
(
p
n
/17) +
cos
(
p
n
/12)
найти номер первого отрицательного члена.
5. Cоставить программу решения уравнения (x-a)(x-b)=c
.
6. Найти число точек пересечения прямой y=kx+p
с окружностью
радиуса R и центром в точке (a,b).
7. Дано натуральное число N<100, определяющее возраст человека
(в годах). Дать для этого числа наименования "год", "года" или "лет". Например, 1 год, 23 года, 45 лет и т.д.
8. Принадлежит ли заданная точка О(xo
,yo
) области, границы которой определяются уравнениями:
a) x-2y=2, y=-x2
+x+2, y=-x-1
б) y-2x=2, y+x=2, x+y=1, x-2y=2.
5
Лабораторная работа №3
ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ
1. Найти все делители заданного числа N.
2. Последовательность задана формулой общего члена Xn=1/(n2
+5n)
. При каком наименьшем n
будет выполняться неравенство Xn<0,02 ?
3. Вывести на экран отрицательные значения функции y=4x(5-3х2
)
при изменении x
от 1 до 2 с шагом 0,1.
4. Найти десять решений уравнения 5sinx=2
, выразив углы в градусах.
5. Вывести координаты (x,y)
точек траектории движения тела, если
x=At2
-Bt, y=Ct
при 0
£
t
£
10
(значения А, В и С задать самостоятельно).
6. Последовательность задана формулой общего члена Xn=5n2
-4n-1
.
Определить (из первых двадцати) члены последовательности:
а) являющиеся нечетными числами;
б) имеющие четные порядковые номера и делящиеся на 3;
в) которые при делении на 7 дают в остатке 1, 2 или 5.
7. Пусть x1
=y1
=1, xi
= 3xi-1
, yi
= xi-1
+ yi-1
. Найти x11
+ y11
.
8. Вывести на печать значения функции z=esinx
(1+сos
p
/y)
, удовлетворяющие условию z>2
при изменении -1
£
x
£
2
c шагом 0,2 и 1
£
y
£
3
с шагом 0,25.
Лабораторная работа № 4
МАССИВЫ
1. Определите, является ли заданный массив упорядоченным по убыванию.
2. Разместите вычисленные значения функции y=1+sin(
p
/8-x)
для х
Î
[0,2]
с шагом h=0,2
в одномерный массив Z
.
3. Заданы два одномерных массива различных размеров. Объедините
их в один массив, включив второй массив между k
- м и (k+1)
-м
элементами первого.
4. “Cожмите” числовой массив, выбросив из него отрицательные числа.
6
5. В массиве М(10) содержатся числа 0,1,2 и ничего кроме них. Упорядочите массив по возрастанию.
6. Дан массив целых чисел. Найдите сколько в нем пар одинаковых соседних элементов.
7. Даны целые числа a1
, a2
, a3
, a4
.
Получите целочисленную квадрат-
ную матрицу [bi j
], у которой bi j
=ai
-3aj
(i,j=1,2,3,4
).
8. В квадратной матрице замените нулями все ее элементы, расположенные на главной диагонали и выше нее.
9. Получите матрицу А(5,4)
, первая строка которой задается форму-
лой а1j
=2j+3
, вторая задается формулой а2j
=5j - 3
, а каждая следую- щая строка есть сумма двух предыдущих.
10. Найти произведение двух заданных целочисленных матриц.
11. Сформировать целочисленный массив M(4,8)
, каждая строка которого содержит числа, которые при делении на 5 дают в остатке номер строки.
Лабораторная работа №5
ХАРАКТЕРНЫЕ ПРИЕМЫ ПРОГРАММИРОВАНИЯ
1. Составить программу нахождения наибольшего и наименьшего значений функции y=6e-x
+sin2x+x
при 0
£
x
£
2,5
с шагом 0,15.
2. Составить программу, подсчитывающую число отрицательных, положительных и нулевых элементов массива T(12)
.
3. Найти сумму произведений элементов первой строки на второй
столбец матрицы А(6,6)
, где аij
=(2i-j)(i+2j).
4. Заданы два одномерных массива различных размеров. Объединить их в один массив, записав второй массив после максимального элемента первого массива.
5. Дана матрица S(4,5)
, где sij
=1-sin(i-2/j). Найти разность между наи- большим её элементом и суммой элементов второй строки.
6. В матрице P(6,5)
, где pij
=1+ 2(i-3j)2
. Найти среднее арифметическое каждого из столбцов.
7. Дана матрица M(5,6)
, где mij
=(i+j)(2i+3j)
. Найти сумму чётных
элементов.
8. Найти в каждой строке матрицы максимальный элемент и поместить его на место первого элемента строки.
7
9. Найти сумму диагональных элементов квадратной матрицы.
10. В матрице P(6,5)
, где p
ij
=1+2(i-3j)(i+j)
. Найти среднее арифметическое 2
-го столбца.
11. На плоскости заданы N точек. Найти номера точек с максимальным расстоянием между ними.
12. На интервале [2;N] найти натуральное число с максимальной суммой делителей.
Лабораторная работа №6
СИМВОЛЫ И СТРОКИ
1. В заданном тексте определить количество вхождений буквы "а".
2. Определить тип файла по его расширению.
3. Проверить баланс открывающих и закрывающих скобок в заданном математическом выражении.
4. Определить, является ли заданная последовательность символов
правильной записью целого числа (возможно со знаком).
5. Удалить из заданного текста цифры, если их сумма больше 5.
6. В текст входят буквы и цифры. Определить количество четных цифр.
7. Дана символьная квадратная матрица. Заменить буквой "z"
все ее
элементы, расположенные выше главной диагонали.
8. По заданной дате вывести на экран время года.
9. Перевести двоичное число в десятичную систему счисления.
10. Напечатать заданную строку в обратном порядке.
Лабораторная работа №7
ФУНКЦИИ И ПРОЦЕДУРЫ
1. Даны длины отрезков A,B,C,D. Для каждой тройки этих отрезков,
из которых можно построить треугольник, напечатать его площадь.
2. Вычислить площадь полной поверхности тетраэдра, заданного ко-
ординатами вершин.
3. Составить процедуру для вычисления z = m
n
. Используя ее, вывести на экран вывести на экран кубы чисел от 4 до 12.
4. Составить функцию для вычисления z =
arcsin
(
x
)
.
8
5. В треугольной пирамиде, заданной координатами вершин, найти
наименьший плоский угол при вершине.
6. Из заданного множества точек А,В,С и D выбрать такие три, которые образуют треугольник с тупым углом.
7. Дана функция вида y=Ax3
+Вx2
+Cx
. Определить, в каких точках касательная, проведённая к графику этой функции, образует с осью
Оx углы 30°, 45° и 60°.
8. Дана функция y=a1
x3
+a2
x2
+a3
x
. С какой из заданных прямых
y=
±p
x
и y=
±
x/
p
график данной функции будет иметь более одной общей точки. Значения коэффициентов a1
,a2
,a3
задать самостоятельно.
9. Составить программу решения системы 3-х линейных уравнений с тремя неизвестными по правилу Крамера.
Лабораторная работа №8
МОДУЛЬ CRT
1. Разработать контролирующую программу по любому разделу математики (физики, информатики и т.д.).
2. Разработать тест для проверки знаний по любому изучаемому предмету.
3. Разработать информационно-справочную систему библиотечного каталога.
4. Разработать словарь, который дает перевод слова с русского на английский.
5. Разработать программу "Телефонный справочник".
6. Разработать электронную ведомость успеваемости студентов вашей группы.
7. Разработать электронный задачник по информатике.
8. Разработать программу, которая выполняет действия с векторами и обеспечивает взаимодействие пользователя с системой с помощью меню:
· о программе
(назначение, возможности программы, ФИО разработчика);
· действия с векторами
;
· выход из программы
.
9
Лабораторная работа №9
ФАЙЛЫ
Найти матрицу Х(4,4) и определить:
· минимальные элементы каждой строки, расположив их справа в дополнительном столбце;
· максимальные элементы каждого столбца, записав эти значения внизу в дополнительной строке;
· сравнить наибольший из минимальных элементов строк с наименьшим из максимальных элементов столбцов.
Целочисленные квадратные матрицы А(4,4) и В(4,4) задать самостоятельно. Результаты работы программы вывести на экран и сохранить в файле.
1) X=(A+B)(2B-A) 2) X=3A-(A+2B)B
2) X=A+2(АВ+B) 4) X=2(A-BA+B)
5) X=(A-B)(2A+B) 6) X=(A-B)A+2B
7) X=(A+3B)+AB 8) X=(A-B)A+3B
9) X=A(B+2AB) 10) X=3(AB+B)-2B
11) X=(2A-B)(3A+2B) 12) X=A(A-B)+B
13) X=(A+B)A-2A 14) X=A+B(A+B)
15) X=2(A+BA-B) 16) X=2AB+3B
17) X=AB+A-2B 18) X=(A-B)(A+2B)
19) X=2(A+BA) 20) X=5AB-3BА
21) X=4(А-AB) 22) X=(A-2B)(2A+B)
Лабораторная работа №10
ЭЛЕМЕНТЫ МАШИННОЙ ГРАФИКИ
1. Изобразить на экране шахматную доску.
2. Написать программу, строящую изображение вращающегося квадрата.
3. Изобразить на экране отрезок, вращающийся в плоскости экрана
вокруг своей середины (своего конца).
10
4. Изобразить одновременное вращение двух (трех) отрезков вокруг их точки пересечения.
5. Изобразить правильный треугольник, вращающийся вокруг своего центра.
6. Получить на экране "круги на воде", используя концентрические
окружности.
7. Окружность А движется по направлению к окружности В и сливается с ней.
8. Изобразить новогоднюю елку с огнями.
9. Изобразить на экране движение планет вокруг Солнца.
10. Построить ломаную по заданным вершинам. Вершины задаются с клавиатуры.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Кнут Д.Э. Искусство программирования. –М.: Вильямс, 2000.
2. Керниган Б. Практика программирования. -СПб.: Невский Диалект, 2001. 3. Марченко А.И. Программирование в среде Turbo Pascal 7.0. - К.: ВЕК+, 1999.
4. Федоренко Ю. Алгоритмы и программы на Turbo Pascal. -СПб.: Питер, 2001.
5. Зуев Е.А. Система программирования Turbo Pascal. -М.: Радио и связь, 1992.
6. Культин Н.Б. Программирование в Turbo Pascal 7.0 и Delphi.
СПб.: BHV - Cанкт-Петербург, 1997.
7. Климова Л.Н. Практическое программирование. Решение типовых
задач. -М.: Кудиц-образ, 2000.
11
Учебно-практическое издание
Методические указания и задания к лабораторным работам
по дисциплине «Алгоритмизация и программирование»
Составитель Бондаренко Александр Иванович
Редактор И.И. Кузнецова
Темплан 2007г.
Подписано в печать 8.11.2007 г.
Формат 60х841
/16
. Бумага офсетная. Ризография.
Усл.-печ.л. 0,7.
Уч.-изд. л. 0,75.
Тираж 50
.
Южно-Российский государственный технический университет
Адрес ун-та: 346428, г. Новочеркасск, ул. Просвещения, 132
Шахтинский институт (филиал) ЮРГТУ (НПИ)
Адрес ин-та: 346500, г. Шахты, пл. Ленина, 1