- •“Київський політехнічний інститут” обчислювальна техніка та програмування - 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. Графічний режим екрану
Оператори організації переходів на мові "сі"
Мета практикуму – розробка програмного забезпечення на мові програмування "СІ" із використанням операторів умовного переходу.
ТЕОРЕТИЧНІ ВІДОМОСТІ
1.1. Для реалізації умовних переходів у мові "Сі" використовується оператор if. Структура оператора має вигляд
if (<умова>) <оператор1>; else <оператор2>;
Якщо <умова>, що знаходиться в дужках після оператора if, істинна, то виконується <оператор 1>, в іншому разі – <оператор 2>. Else та <оператор 2> можуть бути відсутніми. Якщо в тілі умови необхідно виконати більше одного оператора, то вони беруться у фігурні дужки {}.
Приклад 1. З клавіатури вводяться два цілих числа a і b. Необхідно порівняти їх значення і видати результат порівняння на екран.
#include <stdio.h>
main()
{int a,b;
puts("Input a and b");
/*введіть a і b*/
scanf("%d %d",&a,&b);
if (a>b) puts ("a>b");
else {if (a==b) puts ("a=b");
else puts("a<b");}
}
Приклад 2. Вирахувати значення функції y={ax2+bx+c, якщо x>2; ax2-bx+c, якщо x<2; a+b+c, якщо x=2;}.
#include <stdio.h>
main()
{int a,b,c,x,y;
printf("\nInput a b c x\n");
/*введіть a b c x*/
scanf("%d %d %d %d",&a,&b,&c,&x);
if (x>2) y=a*x*x+b*x+c;
else {if (x<2) y=a*x*x-b*x+c;
else y=a+b+c;}
printf("y=%d",y);
}
1.2. Для організації умовного переходу по одному із багатьох варіантів доцільно використовувати оператор switch. Він має наступний формат:
Switch (вираз)
{
case константи_1: інструкції_1;
case константи_2: інструкції_2;
………………………………………………………………………………
case константи_n: інструкції_n;
default: інструкції
}
У операторі switch перевіряється умова рівності виразу одному із наборів констант константи_1, константи_2,…, константи_n, і виконання відповідного набору інструкцій. У випадку, коли жодна із умов не виконується, відбувається перехід на вітку default.
Приклад 3. Реалізувати найпростіший калькулятор. З клавіатури вводиться значення a, операція (+ або -, або *, або %) у вигляді символу (тип char). За допомогою оператора switch виконати операцію і вивести значення виразу на екран.
#include <stdio.h>
main()
{int a,b,y;
char znak;
printf("\n\tInput a, + or - or * or %, b (without spaces between symbols\n\n");
/*введіть a, + або - або * або %, b (без пропусків між символами)*/
scanf("%d%c%d",&a,&znak,&b);
switch(znak)
{case '+': y=a+b; break;
case '-': y=a-b; break;
case '*': y=a*b; break;
case '%': y=a%b; break;
default: printf("Error"); break;}
if((znak=='+')||(znak=='')||(znak=='*')||
(znak=='%')) printf("a%cb=%d",znak,y);
}
ЗАВДАННЯ НА РОБОТУ
Розробити та перевірити роботу програми на мові "СІ", яка вирішує задачу відповідно до заданого нижче варіанта.
Визначити, чи має студент стипендію, якщо середній бал більший 4, а кількість предметів, що були здані у додаткову сесію, не більша 2. У разі, якщо студент є сиротою, він має право на стипендію тільки за умови середнього балу, більшого 3.5.
Розрахувати корені квадратного рівняння, AX2+BX+C=0, коефіцієнти якого вводяться з клавітури. Якщо дискримінант менший нуля, вивести відповідне повідомлення, та завершити виконання програми.
Створити програму, яка визначає, чи паралельні дві прямі A1X+B1Y+C1=0 та А2X+B2Y+C2=0.
Створити програму, яка визначає, чи перпендикулярні дві прямі, що задані у вигляді Y1=K1X+B1, Y2=K2X+B2.
Задано прямокутник АBCD із вершинами А (X1;Y1) та С (X2;Y2), що відповідають головній діагоналі пряокутника. Визначити, чи лежить точка K (Xk;Yk) в межах прямокутника.
Задано кільце з центром у точці А (Xa;Ya), та зовнішнім та внутрішнім радіусом R1 та R2 відповідно. Визначити, чи належить точка B (XB;YB) кільцю.
Задано прямокутник АBCD із вершинами А (X1;Y1) та С (X2;Y2), що відповідають головній діагоналі прямокутника. Визначити, чи належить точка K (X3;Y3), сторонам прямокутника.
Задано рядок символів, що вводиться із клавіатури. Визначити кількість голосних букв у рядку. Символом закінчення рядка слугує пробіл.
Задано круг з центром С (XC;YC) радіусом R. Визначити, чи належить точка А (XA;YA) сектору круга, який визначається кутами α1, α2.
Задано трикутник ABC, координати вершин якого A (XA;YA), B (XB;YB), C (XC;YC). Визначити, чи належить точка D (XD;YD) площині трикутника.
КОНТРОЛЬНІ ЗАПИТАННЯ
3.1. Який оператор застосовується для реалізації умовного переходу.
3.2. Який оператор застосовується для організації умовного переходу по одному із багатьох варіантів.
3.3. Для чого слугує ключове слово else.
3.4. Для чого слугує ключове слово default.
3.5. З якою метою при застосуванні оператора switch застосовуються оператори break.
Комп’ютерний практикум № 12