- •О.Ф.Тарасов, о.В.Алтухов
- •1 Заняття № 1 Вивчення інтегрованого середовища с
- •1.1 Теоретичні відомості
- •1.2 Хід роботи
- •1.3 Вимоги до звітів
- •1.4 Питання для контролю і самостійної роботи
- •2 Заняття № 2 Функції введення/виведення даних printf( ), scanf( ). Лінійні обчислювальні процеси
- •2.1 Теоретичні відомості
- •2.2 Хід роботи
- •2.3 Індивідуальне завдання до заняття №2
- •2.4 Питання для контролю і самостійної роботи
- •3 Заняття № 3 Розробка програм зі скалярними типами даних
- •3.1 Теоретичні відомості
- •Приклад
- •3.2 Хід роботи
- •3.3 Індивідуальне завдання до заняття № 3
- •3.4 Питання для контролю і самостійної роботи
- •4 Заняття № 4 Розробка програм з циклічними обчислювальними процесами
- •4.1 Теоретичні відомості
- •Алгоритм роботи оператора циклу for ( )
- •4.2 Хід роботи
- •4.3 Індивідуальне завдання до заняття № 4
- •4.4 Питання для контролю і самостійної роботи
- •5 Заняття № 5
- •Розгалуження обчислювального процесу.
- •Оператори, які реалізують розгалуження: if... Else, switch,
- •Умовна операція ( ? : )
- •5.1 Теоретичні відомості
- •Умовна тернарна операція ( ? : )
- •Оператор варіанта switch
- •Приклад
- •5.2 Хід роботи
- •5.3 Індивідуальне завдання до заняття № 5
- •5.4 Питання для контролю і самостійної роботи
- •6 Заняття № 6 Операції с, їхні пріоритети і використання. Перетворення типів
- •Пріоритет операцій і порядок виконання (асоційованість)
- •(Новий_тип) Операнд
- •Приклад
- •6.2 Хід роботи
- •6.3 Індивідуальне завдання до заняття № 6
- •6.4 Питання для контролю і самостійної роботи
- •7 Заняття № 7
- •7.1 Теоретичні відомості
- •Оголошення функцій (створення прототипів)
- •([ Список_типів_параметрів ])
- •Синтаксис визначення функцій
- •[ Return Значення_типу_що_повертається ]
- •Використання локальних і глобальних перемінних у функціях. Виклик функції
- •Приклад
- •7.2 Хід роботи
- •7.3 Індивідуальне завдання до заняття № 7
- •7.4 Питання для контролю і самостійної роботи
- •8 Заняття № 8
- •8.1 Теоретичні відомості
- •Основні операції з покажчиками
- •Покажчики і цілі величини
- •Динамічне розміщення покажчиків у пам'яті
- •Приклад
- •Приклад
- •8.2 Хід роботи
- •8.3 Індивідуальне завдання до заняття № 8
- •8.4 Питання для контролю і самостійної роботи
- •9 Заняття № 9
- •9.1 Теоретичні відомості
- •Приклад
- •9.2 Хід роботи
- •9.3 Індивідуальне завдання до заняття №9
- •9.4 Питання для контролю і самостійної роботи
- •10 Заняття № 10
- •10.1 Теоретичні відомості
- •Приклад
- •10.2 Хід роботи
- •10.3 Індивідуальне завдання до заняття № 10
- •10.4 Питання для контролю і самостійної роботи
- •Заняття №11 Обробка символьних даних
- •Теоретичні відомості
- •Індивідуальне завдання до заняття №11
- •Питання для контролю і самостійної роботи
- •Приклад
- •Хід роботи
- •Питання для контролю і самостійної роботи
- •Теоретичні відомості
- •Приклад
- •Індивідуальне завдання до завдання №13
- •Питання для контролю і самостійної роботи
- •Заняття № 14 Розробка програм зі складеними типами даних
- •Структури
- •Хід роботи
- •Питання для контролю і самостійної роботи
- •Заняття № 15 Використання покажчиків для роботи зі складеними типами даних (2години)
- •Теоретичні відомості
- •Приклад
- •Хід роботи
- •Питання для контролю і самостійної роботи
- •Використання покажчиків для роботи з функціями
- •Покажчики як параметри функції
- •[Const ] Тип * Ім'я_покажчика
- •Приклад
- •Хід роботи
- •Індивідуальне завдання до заняття №16
- •Питання для контролю і самостійної роботи
- •Використання функцій високого і низького рівня для роботи з потоками (файлами)
- •Функції для роботи з файлами
- •Хід роботи
- •Індивідуальне завдання до заняття №17
- •Питання для контролю і самостійної роботи
- •Розробка програм із багатофайловою структурою. Заголовочні файли. Класи пам'яті перемінних і функцій
- •Керування многофайловими проектами
- •Використання адміністратора проектів
- •Приклад
- •Основний файл проекту
- •Заголовний файл
- •Хід роботи
- •Індивідуальне завдання до заняття №18
- •Питання для контролю і самостійної роботи
- •Графічні функції
- •Графічні примітиви
- •Хід роботи
- •Індивідуальне завдання до заняття №19
- •Питання для контролю і самостійної роботи
- •Заняття№20 Розробка програм з використанням класів
- •Теоретичні відомості
- •Оголошення і визначення класу
- •Тіло класу
- •Інкапсуляція. Керування доступом до членів класу
- •Використання даних-членів класу
- •Хід роботи
- •Індивідуальне завдання до заняття №20
- •Питання для контролю і самостійної роботи
- •Заняття№21 Використання конструкторів і деструкторів у класах
- •Теоретичні відомості
- •Ініціалізація об'єктів класу
- •Деструктори
- •Виклик деструкторів
- •Хід роботи
- •Питання для контролю і самостійної роботи
- •"Друзі" класів (friend)
- •Хід роботи
- •Індивідуальне завдання до заняття №22
- •Контрольні питання для підготовки і самостійної роботи
- •Віртуальні базові класи
- •Віртуальні деструктори
- •Хід роботи
Графічні примітиви
void far bar(int left, int top, int right, int botton);
void far bar3d(int left, int top, int right, int botton, int depth, int topflag);
void far fillpoly(int numpoints, int far *polypoints);
void far fillelipse(int x, int y, int xradius, int yradius);
void far pielipse(int x, int y, stangle, int endangle, int radius);
void far sector(int x, int y, int stangle, int endangle, int xradius, int yradius);
void far line(int x1, int y1, int x2, int y2);
void far linerel(int dx, int dy);
void far lineto(int x, int y);
void far rectangle(int left, int top, int right, int botton);
void far drawpoly(int numpoints, far *polypoints);
void far circle(int x, int y, int radiuces);
void far arc(int x, int y, int stangle, int endangle, int radius);
void far ellipse(int x, int y, int stangle, int endangle, int xradius, int yradius);
Приклад
/* ЗАНЯТТЯ N 19
Розробив Гармаш В.Н.
Оголосити масиви для виведення тексту в графічному режимі,
виконати їхню ініціалізацію. Виконати ініціалізацію графічного
режиму роботи. Виконати розрахунки і побудувати задану геометричну
фігуру. Вивести тексти на екран із застосуванням необхідних функцій. */
#include <graphics.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <DOS.H>
#define ANGLES 15
#define PIXEL_COUNT 1000
#define DELAY_TIME 100 /* in milliseconds */
char *str[ ] = {"А", "л", "ь", "ф", "а", " ", "Ц", "е", "н", "т", "а", "у", "р", "а", "."};
char st[ ] = "_";
void demo(int x, int y, int size, int color);
void demo1(void);
void main( )
{ // Ініціалізація графічного режиму роботи
int graphdriver = DETECT, graphmode, errorcode;
initgraph(&graphdriver, &graphmode, " ");
errorcode = graphresult( );
if (errorcode != grOk)
{ printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch( );
exit(1);
}
//Малювання рамки по контурі екрана
setcolor(9); //Установка кольору
setlinestyle(0, 0, 3); //Установка типу лінії
line(0, 0, getmaxx( ), 0); // Малювання лінії
line(0, 0, 0, getmaxy( ));
line(getmaxx( ), 0, getmaxx( ), getmaxy( ));
line(0, getmaxy( ), getmaxx( ), getmaxy( ));
setcolor(10); //Виведення тексту "ЗАВДАННЯ 19"
settextstyle(GOTHIC_FONT, HORIZ_DIR, 4);
outtextxy(260, 10, "ЗАВДАННЯ 19");
demo(320, 250, 125, 11); // Функція виведення малюнка
demo1( ); // Функція виведення тексту "Альфа Центавра"
getch( );
closegraph( ); // Закінчення графічного режиму роботи
clrscr( );
}
void demo(int x, int y, int size, int color)
{ setcolor(color);
setlinestyle(0, 0, 1);
int xx[ANGLES], yy[ANGLES], i, j;
for (i = 0; i <=ANGLES-1; i ++)
{ xx[ i ] = x + (int)(cos( i * 2 * M_PI / ANGLES) * size);
yy[ i ] = y - (int)(sin( i * 2 * M_PI / ANGLES) * size);
}
for (i = 0; i <= ANGLES - 1; i ++)
{ for (j = 0; j <= ANGLES - 1; j ++)
if (i != j)
{ line(xx[ i ], yy[ i ], xx[ j ], yy[ j ]);
}
}
}
void demo1(void)
{ int f1 = installuserfont("rtri.CHR"); //Установка шрифту
unsigned int sz;
void far *ptr;
sz = imagesize(10, 10, 50, 50);
ptr = malloc(sz);
getimage(10, 10, 50, 50, ptr);
int size = 2, tt, ff, i;
while( !kbhit( ))
{ tt = 0;
settextstyle(DEFAULT_FONT, HORIZ_DIR, size);
for(i = 0; i < 3; i ++)
{ setcolor(3); outtextxy(260, 60, st); delay(90);
setcolor(0); outtextxy(260, 60, st); delay(90);
}
setcolor(3); ff = 260;
for(i = 0; i < 15; i ++)
{ setcolor(3);
settextstyle(f1, HORIZ_DIR, 4);
outtextxy(260 + tt, 50, str[ i ] );
tt += textwidth(str[ i ] );
sound(30); delay(20); nosound( );
settextstyle(DEFAULT_FONT, HORIZ_DIR, 2);
outtextxy(260 + tt + 4, 60, st); delay(40);
setcolor(0);
outtextxy(260 + tt + 4, 60, st); delay(10);
}
settextstyle(DEFAULT_FONT, HORIZ_DIR, 2);
for(i = 1; i < 4; i ++)
{ setcolor(3); outtextxy(260 + tt + 4, 60, st); delay(90);
setcolor(0); outtextxy(260 + tt + 4, 60, st); delay(90);
}
setcolor(3);
ff = tt + 260; tt = 0;
for(i = 14; i >= 0; i - -)
{ settextstyle(f1, HORIZ_DIR, 4);
tt += textwidth(str[ i ] );
sound(30); delay(20); nosound( );
putimage(ff - tt, 50, ptr, COPY_PUT);
settextstyle(DEFAULT_FONT, HORIZ_DIR, 2);
setcolor(3); outtextxy(ff – tt - 4, 60, st); delay(40);
setcolor(0); outtextxy(ff – tt - 4, 60, st); delay(10);
}
}
}