- •Практикум по программированию на языке с
- •Порядок выполнения лабораторных работ
- •Основы программирования в среде языка си. Оператор присваивания
- •Приоритет операций в выражении
- •Задание 1 (программа 1_1)
- •Программирование разветвленных алгоритмов. Операторы передачи управления
- •Программирование циклических алгоритмов с заданным числом повторений
- •Программирование циклических алгоритмов с предусловием
- •Программирование циклических алгоритмов с постусловием
- •Модифицировать программу 3_2 для вычисления функций f1(X) и f2 (X) с применением оператора цикла с постусловием. Выполнить ее и сравнить результаты с полученными ранее.
- •Программирование алгоритмов обработки одномерных массивов
- •Задание 1
- •Обработка двумерных массивов
- •Программирование с применением функций
- •[Класс] тип имя ([список параметров])[throw (исключения)] {тело функции}
- •Return [выражение];
- •Программирование с возвратом из функций нескольких значений
- •Лабораторная работа 10 Обработка символьных и строковых данных
- •Структуры
- •Модульное программирование
- •Динамические структуры данных. Списки
- •Задание 1 (программа 14_1)
- •Графика
- •Задание к расчетно-графической работе
- •Библиографический список
- •Типы данных
- •Обозначения графические в схемах алгоритмов (гост 19.701-90)
- •Сообщения об ошибках Сообщения об ошибках периода компиляции
- •Ошибки стадии выполнения
- •Математические ошибки
- •Функции ввода-вывода для стандартных потоков
- •Функции для работы со строками
- •Библиотека заголовочных файлов
- •Контейнерные классы
Графика
Цель работы: знакомство с графическими процедурами и функциями.
Пример: Пусть необходимо построить график циклоиды. Зададим ее математическое описание:
x = a t - b sin t, y = a - b cos t,
при b<a циклоида получается укороченной, при b>a - удлиненной, b = a дает обычную циклоиду.
При разработке программы необходимо перед выводом графической информации на экран дисплея инициализировать графический режим с указанием пути к графическому драйверу, а в конце программы его следует закрыть.
Поскольку в графическом режиме работы дисплея верхняя левая точка экрана имеет координаты (0,0), сместим ось 0Х на середину экрана, а ось 0У - на 10 пикселей вправо. Для наглядности увеличим график путем использования масштабных коэффициентов по каждой оси координат. Кроме того, нужно помнить, что координаты точки в графическом режиме могут быть только целого типа.
С учетом вышесказанного программа построения циклоиды имеет вид
#include <graphics.h>
#include <conio.h>
#include <math.h>
void main()
{
int a = DETECT, b, k;
float x, y, t;
initgraph(&a,&b,"C:\\TC\\BGI\0");
setgraphmode(2);
setbkcolor(0);
setcolor(4);
moveto(0, 240);
linerel(625, 0);
getch();
setcolor(2);
line(10, 0, 10, 478);
setcolor(5);
getch();
moveto(10, 240);
t=0.0; // текущее значение параметра t из задания
for ( k =0; k<200; ++k )
{
x = 0.4 * t - 0.5*sin(t);
y = 0.4 - 0.5*cos(t);
lineto(100*x + 10, 100*y + 240);
t = t + M_PI/32;
}
getch();
settextstyle(0, 0, 3);
outtextxy(50, 440, "График циклоиды");
getch();
closegraph();
}
Поскольку вычисляемые в программе координаты являются вещественными, то для их преобразования к целым значениям использована функция TRUNC().
При разработке графических программ необходимо следить, чтобы значения координат не выходили за пределы экрана. Для этого рекомендуется рассчитывать коэффициенты увеличения или уменьшения, а также параметры смещения изображения.
Задание 1 (программа 15_1)
Начертить графики функций F1(x) и F2(x) для результатов, полученных в программе 3_2.pas. На экран должен выводиться график с надписью выводимой функции.
Задание 2 (программа 15_2)
Напишите и отладьте программу для одной следующих задач.
1. Подготовить и отладить программу вычерчивания квадрата, вписанного в окружность. Запрограммировать изменение цветов окружности.
2. Организовать вывод на экран разноцветных цифр поочередно горизонтально и вертикально.
3. Отладить программу вычерчивания нескольких окружностей заданного радиуса в произвольном месте экрана разными цветами. Предусмотреть их мерцание.
4. Разработать программу изображения точки, движущейся по косинусоиде (y = cos(x)).
5. Отладить программу рисования квадрата с диагоналями, пресекающимися в центре экрана. Создать иллюзию его уменьшения.
6. Начертить на экране картинку «круги на воде».
7. Изобразить движущийся на зрителя экран (прямоугольник).
8. Подготовить и отладить программу изображения правильного треугольника, вращающегося вокруг своей (любой) медианы.
9. Разработать программу вывода на экран компьютера пяти квадратов по углам и в середине экрана. Запрограммировать поочередный вывод их разными цветами.
10. Разными цветами в различных точках экрана выводить надпись «TurboPascal» с изменением размера шрифта.
11. Изобразить трубу, образованную разноцветными окружностями.
12. Организовать вывод на экран названия континентов разными цветами в различных точках экрана готическим и обычным шрифтами.
13. Изобразить спутник (точку), вращающийся вокруг планеты.
14. Изобразить НЛО, приземляющийся в различных точках экрана.
15. Организовать вывод на экран разноцветных русских букв разных размеров поочередно высвечивая или заполняя экран в хаотическом порядке.
16. Отладить программу вычерчивания графиков функций y = sin(x) и y = sin(2x) разными цветами с разными осями координат.
17. Организовать вывод на экран формул химических элементов разными цветами в различных точках экрана.
18. Начертить на экране ряд геометрических фигур: квадрат, круг, треугольник, прямоугольник, используя разные цвета.
19. Изобразить схематично на экране движущегося человечка.
20. Изобразить движение объекта по прямоугольной спирали.