Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Южно-Российский государственный технический университет
(Новочеркасский политехнический институт)
Шахтинский институт (филиал) ЮРГТУ (НПИ)
МЕТОДИЧЕСКИЕ УКАЗАНИЯ И ЗАДАНИЯ
к лабораторным работам по дисциплине
«АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ»
Новочеркасск 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(pn/17) +cos(pn/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+сosp/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. Найти сумму диагональных элементов квадратной матрицы.