- •“Київський політехнічний інститут” обчислювальна техніка та програмування - 1
- •Обчислювальна техніка та програмування - 1
- •Символи кодової таблиці ascii
- •Умовні переходи на мові "паскаль"
- •1: Begin
- •Цикли на мові "паскаль"
- •Підпрограми на мові "паскаль"
- •Function Alfha(a,b:real; c:byte):real;
- •Function Beta:integer;
- •Procedure Sorter (a,b:real; c:byte; Var X,y:real);
- •Procedure Beep;
- •Uses crt;
- •Window (x1,y1,x2,y2);
- •Window (10,5,45,15);
- •Window (1,1,80,25);
- •TextColor (yellow);
- •TextColor (14);
- •Текстові та типізовані файли мови "паскаль"
- •Assign (f1, ’Data.Pas’);
- •Reset (f2);
- •Rewrite (f2);
- •Seek (f2, 7);
- •FileSize (f2),
- •FilePos (f2).
- •Побудова графіків функцій на мові "паскаль"
- •MoveTo (200, 100);
- •SetLineStyle (0,0,1);
- •OutText (’Текст для виводу’);
- •OutTextXy (200,100,’Текст для виводу’);
- •SetTextStyle (0,0,0);
- •SetTextJustify (1,1);
- •PutPixel (150,50,green);
- •ClearDevice;
- •Бібліотечний модуль на мові "паскаль"
- •Interface
- •Implementation
- •Динамічні змінні мови "паскаль"
- •SetFillStyle (1, white);
- •Об’єктно-орієнтоване програмування на мові "паскаль"
- •New (Person, Init);
- •Destructor Done; Virtual;
- •Dispose (Person, Done);
- •Форматований ввід та вивід даних на мові “cі”
- •Printf(“керуючий рядок”,аргумент1,аргумент2, ...);
- •Scanf(“керуючий рядок”,аргумент1,аргумент2,...);
- •Scanf(“%d %f %c %s”,&I,&j,&k,l);
- •Scanf(“%d %*d %d”, &I,&j);
- •Scanf(“%d,%d”,&n,&m);
- •Оператори організації переходів на мові "сі"
- •1.2. Для організації умовного переходу по одному із багатьох варіантів доцільно використовувати оператор switch. Він має наступний формат:
- •Організація циклів на мові "сі"
- •Одновимірні та двовимірні масиви на мові "сі"
- •Char b[30];
- •Char a[10][20];
- •Записи, вкладені записи, масиви записів на мові "сі"
- •Int month;
- •Int year;};
- •Int class, age;};
- •Робота із бінарними та текстовими файлами
- •File *lst;
- •Int fflush (вказівник_на_файл);
- •Int fgetc(вказівник_на_файл);
- •Int fputc(вказівник_на_файл);
- •Int fread (вказівник_на_масив, розмір_об’єкта, кількість_об’єктів , вказівник_на_файл);
- •Int fwrite(вказівник_на_масив, розмір_об’єкта, кількіст_об’єктів , вказівник_на_файл);
- •Int fseek(вказівник_файла, зміщення, поч. Значення);
- •3. Контрольні запитання
- •Робота з функціями на мові “сі”
- •Тип_функції назва_функції(тип1 параметр1, ..., тип_n параметр_n);
- •Int main(int argc, char *argv)
- •3.1. Який синтаксис функцій у мові “сі”.
- •Комп’ютерний практикум № 17 графічний режим екрану на мові “ci”
- •Initgraph(int *driver, int *mode, char *path);
- •Void *pimage;
- •Void *malloc(об'єм_пам’яті_в_байтах);
- •Imagesize(x1,y1,x2,y2);
- •Putimage(x1, y1, вказівник, вид_вставки);
- •Вирішення диференційних рівнянь методом ейлера
- •Основи роботи в середовищі “turbo pascal 7.0” та “turbo c 3.0”
- •Комп’ютерний практикум № 17. Графічний режим екрану
Void *pimage;
Для виділення пам'яті слугує функція malloc(), яка має наступний формат:
Void *malloc(об'єм_пам’яті_в_байтах);
Функція повертає вказівник на необхідний об’єм пам’яті, або 0 в разі помилки.
Для визначення розміру зображення слугує функція imagesize(), яка має наступний формат:
Imagesize(x1,y1,x2,y2);
Для виведення зображення на екран слугує функція putimage(). Вона має наступний формат:
Putimage(x1, y1, вказівник, вид_вставки);
Тут x1, y1– координати верхнього лівого кута зображення.Вид_вставкивизначає, яким чином зображення, на яке вказує вказівник, буде виведене на екран по відношенню до вже наявного на екрані зображення. Може приймати значення:COPY_PUT– копія,XOR_PUT– виключаюче АБО,OR_PUT- АБО,AND_PUT- І,NOT_PUT– НІ.
Приклад 2. Побудувати круг, який рухається по синусоїдальній траєкторії зліва направо.
#include <stdio.h>
#include <graphics.h>
#include <dos.h>
#include <math.h>
void main(void)
{
const int r=10;
const float h=0.005, A=2, w=10, tmax=2;
int errorcode,xstart, ystart,gd=DETECT,gm=0;
double x,y;
float mx,my;
int xend, yend,xst_limit,yst_limit,xend_limit,yend_limit,size;
void *pimage;
initgraph(&gd,&gm,"C:\\TC\\BGI");
errorcode=graphresult();
if (errorcode!=grOk)
{
printf("Graphics error: %s\n;",grapherrormsg(errorcode));
printf("Press any key to exit");
getch();
exit(1);
}
xst_limit=0.1*getmaxx();
yst_limit=0.1*getmaxy();
xend_limit=0.9*getmaxx()-2*r;
yend_limit=0.9*getmaxy()-2*r;
mx=(xend_limit-xst_limit)/(w*tmax);
my=(yend_limit-yst_limit)/(2*A);
setfillstyle(SOLID_FILL,RED);
fillellipse(xst_limit+r,(yst_limit+yend_limit)/2,r,r);
size=imagesize(xst_limit,-r+(yst_limit+yend_limit)/2,xst_limit+2*r,r+(yst_limit+yend_limit)/2);
pimage=malloc(size);
getimage(xst_limit,-r+(yst_limit+yend_limit)/2,xst_limit+2*r,r+(yst_limit+yend_limit)/2,pimage);
cleardevice();
setbkcolor(LIGHTGRAY);
x=0;
do
{
y=A*sin(x);
xstart=xst_limit+mx*x;
ystart=-r+(yst_limit+yend_limit)/2-my*y;
putimage(xstart,ystart,pimage,XOR_PUT);
delay(1);
x+=h;
putimage(xstart,ystart,pimage,XOR_PUT);
}
while(xend_limit-xstart-2*r>0);
settextstyle(TRIPLEX_FONT,HORIZ_DIR,1);
outtextxy(0.4*getmaxx(),0.7*getmaxy(),"Press any key");
getch();
closegraph();
}
ЗАВДАННЯ НА РОБОТУ
Розробити та запустити у роботу програму на мові програмування “СІ”, яка вирішує задачу відповідно до заданого нижче варіанта.
2.1. Побудувати фігуру, яка складається із трьох концентричних кілець різного кольору. Фігура рухається по колу за часовою стрілкою
2.2. Побудувати квадрат, який рухається вздовж сторін екрана проти часової стрілки.
2.3. Побудувати червоний п’ятикутник, який рухається зворотно-поступально вздовж лівої частини екрана.
2.4. Побудувати жовтий круг із вписаним в нього синім прямокутником, який рухається зворотно-поступально вздовж головної діагоналі екрана.
2.5. Побудувати синій трикутник, який рухається зворотно-поступально вздовж побічної діагоналі екрана.
2.6. Побудувати графіки функцій та на всій області екрану при зміні X від 0 до 2. Побудувати координатну сітку, графіки виділити різними кольорами. Значення А та W задаються з клавіатури.
2.7. Побудувати графіки функцій та на всій області екрану при зміні X від 0 до 1. Побудувати координатну сітку, графіки виділити різними кольорами. Значення А та B задаються з клавіатури.
2.8. Побудувати графіки функцій та у 2 чверті екрану при зміні X від 0 до 5. Побудувати координатну сітку, графіки виділити різними кольорами. Значення А, B та W задаються з клавіатури.
2.9. Побудувати графіки функцій та на всій області екрану при зміні X від 0 до 3. Побудувати координатну сітку, графіки виділити різними кольорами. Значення А та W задаються з клавіатури.
2.10. Побудувати графік функції, яка визначається залежністю при зміні X від 0 до 20. Побудувати координатну сітку, графік виділити кольором. Значення А,B,C та W задаються з клавіатури.
КОНТРОЛЬНІ ЗАПИТАННЯ
3.1. Яким чином ініціалізується графіний режим.
3.2. Яка функція слугує для побудови многокутників.
3.3. Яким чином будуються рухомі графічні зображення.
3.4. Як змінити зовнішній вигляд лінії в графічному режимі.
3.5. Яка функція слугує для виведення тексту в графічному режимі.
Комп'ютерний практикум № 18