Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
сука лаби.docx
Скачиваний:
17
Добавлен:
12.05.2015
Размер:
848.39 Кб
Скачать

Порядок виконання роботи

А.При пiдготовцi :

1. Розробити алгоритм та написати програму для знаходження найбільшого спільного дільника двох та трьох цілих додатних чисел ,які вводяться із клавіатури. Рекомендується використати алгоритм Евкліда для двох чисел.

2. Розробити алгоритм та написати програму для знаходження усіх простих чисел від 1 до 625. Корисно ознайомитися із решіткою Ератосфена.

3. Розробити алгоритм та написати програму для виведення на екран трикутник Паскаля.

4. Розробити алгоритм та написати програму для знаходження кореня квадратного цілого числа, використовуючи наступний алгоритм

a = √ N N <= 1+3+ …(2*a – 1) (а – кількість непарних чисел);

приклади: N=9 9 = 1 + 3 + 5 a = 3 ;

N=26 26< = 1 + 3 + 5 + 7 + 9 =25 a = 5

5. Розробити алгоритм та написати програму для розрахунку зворотних цілих непарних чисел від 3 до 13 із точністю 100 знаків.

Створені програми оформити у вигляді окремих файлів для окремого налагоджування та тестування.

Об’єднати створені програми у одну програму із використанням проекту.

В.У лабораторii:

1.Виконати налагоджування та тестування створених програм.

2. Об’єднати створені програми у одну програму, використати проект,

виконати проект та порівняти отримані у пп.1,2 результати.

Змiст звiту:

  1. Алгоритми та програми із поясненнями.

  2. Результати та їх трактування.

  3. Висновки.

Література

1.М.Дрейфус,К.Ганглоф Практика программирования на Фортране. Упражнения с комментариями.-Мир,М.-1978-с.34-38.

2. И.М.Виноградов Основы теории чисел.-Наука,М.-1965.

Лабораторна робота №20

РОБОТА ІЗ ФУНКЦІЯМИ ЕКРАНА

Мета роботи :ознайомлення із функціями екранного виведення –введення бібліотеки функцій conio та створення діалогових і інтерфейсних програм за завданням.

Порядок виконання роботи

А.При пiдготовцi :

1. Ознайомитися із додатком А ,де наведені основні функції бібліотеки функцій conio , або прочитати у підручнику мови С.

2. Ознайомитися з програмою TOS.C , у якій використана більшість функцій бібліотеки функцій conio (додаток В ).

3. Розробити програму ,у якій реалізувати наступне завдання:

- визначити на екрані розташування п’яти текстових вікон :

перше вікно призначається для виведення запитань , завдань або задач ,

у другому вікні будуть вводитися відповіді на поставлені запитання , результати виконання завдань або задач ,

результати перевірки відповідей у вигляди оцінок або рейтингу з’являться у третьому вікні .

У четвертому вікні після першої спроби виконання завдань першого вікна можна зберегти або відповіді другого вікна або оцінки із третього , бо цикл завдання—відповідь – оцінка треба повторити задану кількість разів .

П’яте вікно призначається для виведення запитання стосовно подальших дій ( продовжити або закінчити ) та введення відповіді на це запитання після кожного циклу завдання—відповідь – оцінка .

Таким чином , у програмі обов’язково повинні бути масив завдань ( >= 4) і масив правильних відповідей-результатів .Оцінки ставити за бажанням після перевірки збігу введених відповідей-результатів із правильними .

4.Підготувати шаблон звіту.

В.У лабораторii:

1.Виконати підготовлену програму .

2.Результати виконання записати у звіт із поясненнями та зробити належні висновки.

Змiст звiту:

1. Карта розподілу екрана для вікон. Програма.

2. Результати виконання та відповідні висновки.

3.Пропозиції по роботі.

ДОДАТОК А

Функції бібліотеки функцій conio

1. Створення активного текстового вікна

void window ( int x1 , int y1 , int x2 , int y2 );

x1 ,y1 – координати лівого верхнього кута вікна , x2 ,y2 – координати правого нижнього кута вікна у координатах екрана . Екран має систему прямокутних координат для символьних рядків : вісь х – верхня границя вікна , вісь у – права бокова границя вікна , початок координат (1,1) у лівому верхньому куту екрана . Після створення вікна встановлюються координати вікна ( КТВ) , курсор переходить у (1,1) вікна .

2. Переміщення текстового курсору у вікні

void gotoxy ( int x , int y );

x можна розглядати як положення символу у рядку (індекс) , а у трактувати як номер рядка . Координати курсору визначаються функціям ( КТВ)

int wherex ( void ) ; int wherey ( void );

3.Кольор фону ( вікна ) і кольор символу

void textbackground ( int Color ); void textcolor (int Color );

Color  BLACK , BLUE , GREEN , CYAN , RED , MAGENTA , BROWN , LIGHTGRAY , DARKGRAY , LIGHTBLUE , … , YELLOW , WHITE , BLINK

( 0 …15 , 128) . Яскравість задається функціями

void highvideo ( void 0 ); void lowvideo ( void 0 ); void normvideo ( void 0 );

Встановлення атрибутів тексту void textattr ( int NewAttr);

8 –розрядне NewAttr : розряди 0...2 - кольор символу , розряд 3 – яскравість , розряди 4..6 - кольор фону , розряд 7 задає мерехтіння.

4. Очищення та забарвлення тестового вікна кольором фону

void clrscr (void );

5. Запис тексту з екрану у пам’ять за координатами екрана

int gettext ( int x1 , int y1 , int x2 , int y2 , void *TextArea ) ;

Координати задають текстовий прямокутник , запис за адресою у вказівникові . Функція повертає : 1 – успіх , 0 – помилка .

6. Виведення тексту у вибраний прямокутник

int puttext ( int x1 , int y1 , int x2 , int y2 , void *TextSource ) ;

7. Переміщення тексту із прямокутника з координатами протилежних вершин (x1,y1) , (x2,y2) у прямокутник із координатами лівого верхнього кута ( х , у ) у абсолютних координатах екрана

int movetext ( int x1 , int y1 , int x2 , int y2 , int x , int y ) ;

8. Встановлення текстового режиму (вікно на весь екран)

void textmode ( int Mode );

C80 - кольоровий 80 х 25 , C4350 - кольоровий 80 х 43/50 .

9. Обробка тексту :

видалення рядка за курсором у текстовому вікні , наступні піднімаються на один рядок уверх ( КТВ) , курсор залишається на початку рядка

void delline (void ) ;

видалення символів у кінці рядка за курсором у текстовому вікні , заміщення їх пробілами , курсор залишається на місці ( КТВ)

void clreol (void ) ;

вставка порожнього рядка у позицію курсору і зсув униз наступних рядків ( КТВ) void insline (void ) ;

10.Виведення тексту у вікно у позицію курсору

int cprintf ( const char *format , …..);

int cputs (const char *str );

Наприклад , cprintf ( “ Window opens “) ; puts ( “ Window closes “ );

10. Читання із текстового вікна з позиції курсора

char *cgets ( char *str);

int cscanf ( const char *format , …..);

ДОДАТОК B

/* program - Text Output Study , file TOS.c */

#include <conio.h>

main()

{

void * T;

struct text_info TI;

textmode (C80); textbackground( BLACK );

clrscr();

window ( 5 , 5, 24, 9 );

textcolor (YELLOW); textbackground ( BLUE );

clrscr();

highvideo(); cprintf ( "Window opens"); getch();

gotoxy(1, 2); lowvideo(); cprintf ("Look at it"); getch();

gotoxy(1, 3); textcolor ( RED ); highvideo();

cprintf ("La vie est belle"); getch();

gotoxy(1, 4); textcolor ( YELLOW );

cprintf ("Window closes"); getch();

gotoxy(8, 2); clreol(); getch();

highvideo(); cprintf(" me"); getch();

insline(); getch();

gotoxy(1, 2); textattr (0xAC); lowvideo();

cprintf ("I am a good student"); getch();

delline(); getch();

gotoxy(1, 1); movetext (5, 5, 24, 9, 5, 12); getch();

gettext (5, 5, 24, 9, T);

puttext(35, 5, 54, 9, T ); getch();

window (5, 20, 35, 20);

gettextinfo ( &TI );

cprintf("\n%u %u %u %u %u %u %u %u %u %u %u",TI.winleft,\

TI.wintop, TI.winright, TI.winbottom, TI.attribute,\

TI.normattr, TI.currmode, TI.screenheight,\

TI.screenwidth, TI.curx, TI.cury);

getch();

textattr(7);

}

Приклад виконання завдання

Перевірка правильності виконання додавання цілих чисел

#include <conio.h>

//

#define wd1 window(5, 3, 25, 9); textbackground ( BLUE )

#define wd2 window(30, 3, 50, 9); textbackground ( GREEN )

#define wd3 window(55, 3, 75, 9); textbackground ( CYAN )

#define wd4 window(5, 21, 30, 21);textbackground( 15 )

main()

{

int i , j , a, kk = 1 , d;

int x[4] = {2,5,7,10},\

y[4] = {4,-3,1,-7},\

z[4] = {6, 2,8, 3} ;

// char T[200];

void *T; char b;

textmode (C80);

textbackground(BLACK); clrscr();

begin: wd1; clrscr();

textcolor(RED); highvideo(); cprintf (" TASK");

wd2; clrscr();

cprintf (" PUT YOUR RESULT");

wd3; clrscr();

cprintf (" RATING");

wd4;clrscr();cprintf (" CONTINUE ? Y(1)/N(2) ");

i = 3; j = 0;

next: wd1;

gotoxy(1, i); textcolor(11);

cprintf (" %d + %d = ? ",x[j] , y[j] );

wd2; gotoxy(4, i); cscanf ("%d", &a);

wd3; gotoxy(1, i);

if(a == z[j])

{

textcolor(10); cprintf(" GOOD ");

}

else

{

textcolor(BLACK); cprintf (" BADLY ");

}

i ++; j ++;

if(j < 4) goto next;

if (kk == 3) goto end;

gettext(30,3,50,9,T);

puttext( 30,13,50,19,T);

wd4; gotoxy(23, 1); cscanf("%d",&d);

if(d == 2) goto end;

else

{

kk++; goto begin;

}

end: getch();

textattr(7);return 0;

}

Лабораторна робота №21

РОБОТА ІЗ ЗОВНІШНИМИ ПРИСТРОЯМИ

Мета роботи: ознайомлення зі стандартними функціями бібліотеки dos.h , які працюють із MSDOC і процесорами INTEL , вивчення роботи з паралельним портом комп’ютера та програмування роботи зовнішніх пристроїв.