DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Структура програми на мові Сі

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Комп’ютерні науки
Кафедра:
Кафедра інформаційних систем та мереж

Інформація про роботу

Рік:
2012
Тип роботи:
Лабораторна робота
Предмет:
Системне програмне забезпечення
Група:
КН
Коротко про документ

Про що ця робота

Лабораторна робота присвячена вивченню способів запису програм на мові Сі та її основних конструкцій. Студент ознайомлюється зі структурою програми на прикладі реалізації гри.

У роботі розглядаються

  • Мова програмування Сі
  • Структура програми
  • Директиви препроцесора
  • Функції в Сі
  • Оператори та змінні
  • Компіляція програм

Зміст і розділи

  1. Мета роботи
  2. Завдання лабораторної роботи
  3. Текст програми
  4. Результати виконання програми
  5. Висновки
Для кого:Студенти технічних спеціальностей вищих навчальних закладів
Викладачі:Чирун Л.В.

Ключові поняття

мова Сіфункція mainкомпіляціявказівникиструктура програмиоператориконстантизміннірозробка ПЗ

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра інформаційних систем та мереж Лабораторна робота №2 на тему: Структура програми на мові Сі Назва роботи: Структура програми на мові Сі. Мета роботи: Вивчити способи запису програм на мові Сі, ознайомитись з основними конструкціями мови Сі. Завдання лабораторної роботи: Набрати (або скопіювати) наведений у роботі текст програми „SNAKE”. Для відображення шрифтів кирилиці необхідно запустити відповідний драйвер, наприклад, keyukr.com або keyrus.com. Для запуску драйвера-кирилізатора необхідно виконати тимчасовий вихід з інтегрованого середовища Borland C++ 3.1 в MSDOS за допомогою меню File/Dos shell.Далі у командному рядку необхідно набрати назву драйвера і натиснути клавішу Enter. Для повернення в інтегроване середовище Borland C++ необхідно у командному рядку набрати Exit; Визначити основні структурні елементи програми: коментарі; директиви препроцесора; функції програми: головна (main) та допоміжні; прототипи функцій; оголошення типів, змінних та констант; оператори; звернення до функцій. Оформлення програми повинно відповідати вимогам структурного програмування за рахунок використання функцій, вертикального вирівнювання структурних одиниць програми, коментарів. Відкомпілювати програму та виправити помилки. Виконати програму. Виконати зміну вхідних параметрів програми (час роботи та швидкість руху об’єкта). Виконати повторну компіляцію та виконання програми. Проаналізувати вплив вхідних даних на якість роботи програми. Оформити звіт по роботі. У звіті описати структуру досліджуваної програми та проаналізувати результати її виконання. Текст програми: #include <stdio.h> #include <conio.h> #include <math.h> #include <dos.h> #include <stdlib.h> #include <time.h> #define GameTime 30 #define Speed 900 struct w {char x,y; struct w *next; struct w *before; }; void cursor_off(void); void cursor_on(void); void main() { int x1=10,y1=9,x2=70,y2=19,x,y,mark=0; char symbol,c,attrib,h=259,refresh; struct w *head=NULL,*tail, *p, *q,*r; time_t t1,t2; time(&t1); cursor_off(); srand(time(NULL)); textbackground(BLACK); textcolor(LIGHTGRAY); clrscr(); textcolor(GREEN); gotoxy(20,1); cputs(" *** * * ** * * *****"); gotoxy(20,2); cputs(" * * ** * * * * * * "); gotoxy(20,3); cputs(" * * * * * * ** **** "); gotoxy(20,4); cputs(" * * ** **** * * * "); gotoxy(20,5); cputs(" * * * * * * * * * "); gotoxy(20,6); cputs(" *** * * * * * * *****"); textcolor(LIGHTGRAY); gotoxy(20,21); cputs("Press arrows key for moving the snake."); gotoxy(7,22); cputs("If the head gets on a symbol '+' the length of the snake is increased."); gotoxy(7,23); cputs("If the head gets on a symbol '-' the length of the snake decreases."); gotoxy(15,24); cputs("Try to construct the greatest length of the snake."); textbackground(BLUE); textcolor(WHITE); x=x1-1; y=y1-1; gotoxy(x,y);putch(201); y=y1-1; for(x=x1;x<=x2;x++){gotoxy(x,y);putch(205);} x=x2+1; y=y1-1; gotoxy(x,y);putch(187); x=x2+1; for(y=y1;y<=y2;y++){gotoxy(x,y);putch(186);} x=x2+1; y=y2+1; gotoxy(x,y);putch(188); y=y2+1; for(x=x2;x>=x1;x--){gotoxy(x,y);putch(205);} x=x1-1; y=y2+1; gotoxy(x,y);putch(200); x=x1-1; for(y=y1;y<=y2;y++){gotoxy(x,y);putch(186);} window(x1,y1,x2,y2); clrscr(); for(x=1;x<=x2-x1+1;x++) for(y=1;y<=y2-y1+1;y++) if(!(y==y2-y1+1&&x==x2-x1+1)) if((float)rand()/RAND_MAX>0.9) putch('+'); else if((float)rand()/RAND_MAX>0.9) putch('-'); else putch(' '); textcolor(BLACK); x=wherex(); y=wherey(); attrib=peekb(0xB800,(y1+y-2)*80*2+(x1+x-2)*2+1); tail=(struct w*) malloc(sizeof(struct w)); tail->x=x; tail->y=y; tail->next=head; head=tail; pokeb(0xB800,(y1+head->y-2)*80*2+(x1+head->x-2)*2+1,0x30); pokeb(0xB800,(y1+y-2)*80*2+(x1+x-2)*2, h); do{ if(kbhit()) { c=getch(); if(c==0)c=getch(); refresh=1; } switch(c) { case 72: y--;if(y<1) {y=1; refresh=0;} h=30; break; case 80: y++;if(y>y2-y1+1) {y=y2-y1+1; refresh=0;} h=31; break; case 75: x--;if(x<1) {x=1; refresh=0;} h=17; break; case 77: x++;if(x>x2-x1+1) {x=x2-x1+1; refresh=0;} h=16; break; default: refresh=0; } pokeb(0xB800,(y1+head->y-2)*80*2+(x1+head->x-2)*2, h); if(refresh==1) { q=(struct w*) malloc(sizeof(struct w)); q->x=x; q->y=y; q->next=head; q->before=NULL; head->before=q; head=q; symbol=peekb(0xB800,(y1+y-2)*80*2+(x1+x-2)*2); if(symbol=='+')mark++; pokeb(0xB800,(y1+head->y-2)*80*2+(x1+head->x-2)*2,h); pokeb(0xB800,(y1+head->y-2)*80*2+(x1+head->x-2)*2+1,0x30); if(head->next!=NULL) {pokeb(0xB800,(y1+head->next->y-2)*80*2+(x1+head->next->x-2)*2,' '); pokeb(0xB800,(y1+head->next->y-2)*80*2+(x1+head->next->x-2)*2+1,0x30); } if(symbol==' ') {r=tail; tail=tail->before; tail->next=NULL; pokeb(0xB800,(y1+r->y-2)*80*2+(x1+r->x-2)*2+1, attrib); free(r); } if(symbol=='-') {mark--; r=tail; if(tail->before!=head) { tail=tail->before->before; pokeb(0xB800,(y1+r->before->y-2)*80*2+(x1+ r-> before->x-2)*2+1, attrib); free(r->before); } else if(tail!=head) tail=tail->before; tail->next=NULL; pokeb(0xB800,(y1+r->y-2)*80*2+(x1+r->x-2)*2+1,attrib); free(r); } gotoxy(x,y); delay(Speed?abs(1000-Speed):10000); } time(&t2); }while(c!=27&&(t2-t1<GameTime)); textbackground(BLUE); textcolor(WHITE); clrscr(); gotoxy(25,5);cputs("GAME OVER"); gotoxy(16,6);cprintf("%s %d %s","Your prize makes",mark,"points"); getch(); cursor_on(); } void cursor_off() { _AH=0x1; _CH=0x20; geninterrupt(0x10); } void cursor_on() { _AH=0x1; _CH=0x6; _CL=0x7; geninterrupt(0x10); }   Результати виконання програми:  Висновки: Я Вивчив способи запису програм на мові Сі, ознайомився з основними конструкціями мови Сі.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!