Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Пособие

.pdf
Скачиваний:
67
Добавлен:
22.03.2015
Размер:
1.35 Mб
Скачать

3. Перевірити істинність вислову: «Цифри даного тризначного числа утворюють зростаючу послідовність».

12.1. Дано площу кругу. Знайти довжину кола, що обмежує даний круг.

2. Обчислити значення у, де y = x25x+1 . Значення змінної х уведіть із клавіатури.

3.Перевірити істинність вислову: «Цифри даного тризначного числа утворюють зростаючу або спадаючу послідовність».

13.1. Знайти периметр та площу рівнобічної трапеції з основами a та b (a > b) и кутом alpha при більшій основі (кут дано в радіанах).

2.Обчислити значення у, де y = 1 x2 3+xex . Значення змінної х

уведіть із клавіатури.

3. Перевірити істинність вислову: «Цифри даного тризначного числа утворюють арифметичну прогресію».

14.1. Знайти периметр та площу прямокутної трапеції з основами a та b (a > b) та гострим кутом alpha (кут дано в радіанах).

2. Обчислити значення у, де y =

1 + xex

. Значення змін-

2 +

x2 +sin 2 (x)

ної х уведіть із клавіатури.

3. Перевірити істинність вислову: «Цифри даного тризначного числа утворюють геометричну прогресію».

15.1. Знайти відстань між двома точками, що задано координатами

(x1, y1) та (x2, y2).

2. Обчислити значення у, де y = 1+ | x | . Значення змінної х уве-

діть із клавіатури.

3. Дано координати (цілі від 1 до 8) двох різних полів шахової дошки. Якщо тура за один хід може перейти з одного поля на інше, вивести логічне значення True, інакше вивести значення False.

16.1. Дано координати трьох вершин трикутника (x1, y1), (x2, y2), (x3, y3). Знайти його периметр та площу.

2. Обчислити значення у, де

y =

1 +3x

. Значення змінної х

2 + 3 1 + x

уведіть із клавіатури.

3. Дано координати (цілі від 1 до 8) двох різних полів шахової дошки. Якщо король за один хід може перейти з одного поля на інше, вивести логічне значення True, інакше вивести значення False.

31

17.1. Знайти корені квадратного рівняння A x2 + B x +C = 0 , заданого своїми коефіцієнтами А, В, С (коефіцієнт А не дорівнює 0), якщо відомо, що дискримінант рівняння не від’ємний.

2. Обчислити значення у, де y =1+13++xx2 . Значення змінної х уве-

діть із клавіатури.

3. Дано координати (цілі від 1 до 8) двох різних полів шахової дошки. Якщо слон за один хід може перейти з одного поля на інше, вивести логічне значення True, інакше вивести значення False.

18. 1. Знайти розв’язок системи рівнянь виду A1 x + B1 y =C1 , що

A2 x + B2 y =C2

задана своїми коефіцієнтами A1 , B1 ,C1 , A2 , B2 ,C2 , якщо відомо що дана система має єдиний розв’язок.

2. Обчислити значення у, де y = 1+(1x)2 . Значення змінної х

уведіть із клавіатури.

3. Дано координати (цілі від 1 до 8) двох різних полів шахової дошки. Якщо ферзь за один хід може перейти з одного поля на інше, вивести логічне значення True, інакше вивести значення False.

19.1. Дано ціле чотиризначне число. Знайти суму його цифр.

2. Обчислити значення у, де

y =

1 + x

. Значення змінної х

1 + cos2 (x)

уведіть із клавіатури.

3. Дано координати (цілі від 1 до 8) двох різних полів шахової дошки. Якщо кінь за один хід може перейти з одного поля на інше, вивести логічне значення True, інакше вивести значення False.

20.1. Дано ціле чотиризначне число. Знайти добуток його цифр.

2.Обчислити значення у, де y = sin(x) + cos(x) . Значення змінної х

+tg(x)

уведіть із клавіатури.

3. Дано координати (цілі від 1 до 8) двох різних полів шахової дошки. Якщо королева за один хід може перейти з одного поля на інше, вивести логічне значення True, інакше вивести значення

False.

21.1. Написати програму, що буде обчислювати середнє арифметичне трьох чисел, що вводяться з клавіатури.

2. Обчислити значення у, де

y = sin(x +

π ) + tg(2x)

. Значення

 

 

2

 

32

 

 

 

змінної х уведіть із клавіатури.

3. Перевірити істинність вислову: «Цифри даного тризначного числа утворюють арифметичну прогресію».

22.1. Написати програму, що буде обчислювати середнє геометричне трьох чисел, що вводяться з клавіатури.

2. Обчислити значення у, де y =

x2 1

+ x

5

. Значення змінної х

x +5

 

уведіть із клавіатури.

3.Перевірити істинність вислову: «Сума цифр даного тризначного числа є непарним числом».

23.1. Обчисліть висоту трикутника, якщо відомі його площа та різниця між основою та висотою.

2.Обчислити значення у, де y = e2 x2 +3 . Значення змінної х уве-

діть із клавіатури.

3.Перевірити істинність вислову: «Сума цифр даного двозначного числа є парним числом».

24.1. Дано три сторони трикутника a, b, c. Визначити його площу та перевірити, чи є він прямокутним.

2.Обчислити значення у, де y = ln(x +1) +ln(3e) . Значення змінної х

уведіть із клавіатури.

3.Перевірити істинність вислову: «Сума цифр даного двозначного числа є непарним числом».

25.1. Напишіть програму, що знаходить корені звичайного квадратного рівняння за теоремою Вієта.

2.Обчислити значення у, де y = xtg2 (x)1 . Значення змінної х уведіть

із клавіатури.

3. Перевірити істинність вислову: «Добуток цифр даного тризначного числа є парним числом».

33

6ВИРАЗИ ТА ОПЕРАТОРИ

6.1Загальні поняття про вирази та оператори Оператори – це основні елементи, з яких «будуються» програми

на будь-якій мові програмування. Оператор може бути унарним, тобто з одним операндом, бінарним, що має два операнди, і тернарним, у якого є три операнди. Більшість операторів складаються з виразів. Розглянемо вирази.

Вираз представляє собою об’єднання операцій і операндів. Найпростіший вираз складається з одного операнду [6].

Приклади виразів :

5 -7

10+21 a*(b+d*1)-1 x=++a%3

a>3

Неважко помітити, що операнди можуть бути константами, змінними або їх об’єднаннями. Деякі вирази складаються з менших виразів.

Дуже важливою особливістю мови С є те, що кожний вираз має значення. Наведемо приклади кількох виразів і їх значень:

-5+7

2

1<2

1

6+(a=1+2)

9

a=1+2

3

Основу будь-якої програми складають оператори. Операторомвиразом називається вираз, вслід за яким стоїть крапка з комою. Взагалі усі оператори можна згрупувати у наступні класи:

оператори присвоювання;

виклик функцій;

розгалуження;

цикли.

Проте, оператори найчастіше відносяться до більш ніж одного з чотирьох класів. Наприклад, оператор if (a=fn(b+c)>d) складається з представників наступних класів: присвоювання, виклик фун-

34

кції та розгалуження. В тому і є гнучкість мови С, що є можливість змішування в одному операторі операторів різних класів. Проте навряд чи слід цим зловживати - програма може вийти правильною, проте надто заплутаною та нечитабельною.

6.2«Порожній» оператор

Синтаксис:

;

Порожній оператор – це оператор що складається лише з крапки з комою. Він може використовуватися в будь-якому місці програми, де за синтаксисом потрібний оператор.

for (i=0;i<10;printf("%d\n",i););

6.3«Складений» оператор

«Складений» оператор представляє собою два або більше операторів. Його також називають "блоком".

Синтаксис :

{

[<оператори>]

}

Дія складеного оператора полягає в обов’язковому послідовному виконанні операторів, що містяться між { та }, за виключенням тих випадків, коли який-небудь оператор явно не передасть управління в інше місце програми.

if (i>0)

{

printf("i == %d\n",i); i--;

}

6.4Оператор (кома)

Оператор «кома» (,) називається оператор слідування, що «зв'я- зує» два довільних вирази. Список виразів, розділених між собою комами, обчислюються зліва направо. Наприклад, фрагмент тексту a=4; b=a+5; можна записати так : a=4, b=b+5;

35

Операція слідування використовується в основному в операторах циклу for().

Для порівняння наведемо приклад з використанням оператора слідування (приклад 1) та без неї (приклад 2):

Приклад 1.

int a[10],sum,i; /* ... */ sum=a[0];

for (i=1;i<10;i++) sum+=a[i];

Приклад 2.

int a[10],sum,i; /* ... */

for (i=1,sum=a[0];i<10;sum+=a[i],i++) ;

6.5Оператор sizeof()

Даний оператор обчислює розмір пам'яті, необхідний для розміщення в ній виразів або змінних вказаних типів.

Операція має дві форми :

1). ім'я_типу А; sizeof А;

2). sizeof (ім'я_типу);

Операцію sizeof() можна застосовувати до констант, типів або змінних, у результаті чого буде отримано кількість байт, що відводяться під операнд. Наприклад, sizеof(int) поверне число байт необхідне для розміщення змінної типу int.

36

7 ОПЕРАТОРИ УПРАВЛІННЯМ ПРОГРАМИ

За характером дій оператори, що управляють програмою, поділяють на три групи:

умовні оператори;

оператори циклу;

оператори переходу.

7.1Умовні оператори

7.1.1Оператор розгалуження if

Оператор розгалуження if використовується для розгалуження процесу обчислення на два напрямки. Основний оператор цього блоку в С – if ... else обов’язково вимагає, щоб умова, що перевіряється, розміщувалася б у круглих дужках.

Синтаксис оператора :

if (<умова>) <оператор1>;

[else <оператор2;>]

Рис. 7.1. Синтаксис оператора if

Умова хибна, якщо вона дорівнює нулю, в інших випадках вона істинна. Це означає, що навіть від’ємні значення розглядаються як істинні. До того ж, умова, що перевіряється, повинна бути скалярною, тобто зводитися до простого значення, що можливо перевірити на рівність нулю. Взагалі не рекомендується використання змінних типу float або double в логічних виразах перевірки умов з причини недостатньої точності подібних виразів.

Приклад. Програма виводить результат ділення двох дійсних чи-

сел

#include<stdio.h>

#include<conio.h> int main()

{

float a,b,c;

37

printf("Введiть число a :\n"); scanf("%f",&a); printf("Введiть число b :\n"); scanf("%f",&b);

if (b==0) printf("Дiлення да нуль !\n"); else

{

c=a/b;

printf("a: b == %g",c);

}

_getch(); return 0;

}

Приклад. Застосування умовного розгалужування.

#include <stdio.h> #include<conio.h> int main()

{

int number; int ok;

printf("Введіть число з інтервалу 1..100: "); scanf("%d",&number); ok=(1<=number) && (number<=100); if (!ok)

printf("Не коректно !!\n"); _getch();

return 0;

}

Змінній ok присвоюється значення результату виразу: ненульове значення, якщо істина, і в протилежному випадку – нуль. Умовний оператор if(!ok) перевіряє, якщо ok дорівнюватиме нулю, то !ok поверне істину й відтоді буде отримано повідомлення про некоректність, виходячи з контексту наведеного прикладу.

7.1.2Оператор switch

Оператор-перемикач switch призначений для вибору одного з декількох альтернативних шляхів виконання програми.

38

Синтаксис :

switch(<вираз цілого типу>)

{

case <значення_1>: <послідовність_операторів_1>;

break;

case <значення_2>: <послідовність_операторів_2>;

break;

....................................

case <значення_n>: <послідовність_операторів_n>;

break;

[default: <послідовність_операторів_n+1>;]

}

Рис. 7.2. Синтаксис оператора switch

Виконання оператора switch починається з обчислення значення виразу (виразу, що слідує за ключовим словом switch у круглих дужках). Після цього управління передається одному з <операторів>. Оператор, що отримав управління – це той оператор, значення константи варіанту якого збігається зі значенням виразу перемикача.

39

Гілка default (може опускатися, про що свідчить наявність квадратних дужок) означає, що якщо жодна з вищенаведених умов не задовольнятиметься (тобто вираз цілого типу не дорівнює жодному із значень, що позначені у саse-фрагментах), керування передається за замовчуванням в це місце програми. Треба також зазначити, що у більшості випадків у кожному з case-фрагментів застосовується оператор break, що негайно передасть керування у точку програми, що слідує відразу за оператором switch.

switch(i)

{

case -1: n++;

break; case 0:

z++;

break; case 1:

p++;

break;

}

7.2Індивідуальна робота до п/п. 7.1.

 

Завдання

 

 

 

 

 

 

 

1.

1.

Дано три цілих числа. Підвести в квадрат від’ємні числа і в

 

третю ступінь – додатні (0 не змінювати).

 

 

 

 

 

 

2.

Дано номер місяця (1 – січень, 2 – лютий, ...). Вивести назву

 

відповідної пори року («зима», «весна» і т.д.).

 

 

3.

Обчислити та вивести на екран

 

 

 

 

 

 

 

значення функції в залежності від

 

 

2

+ b, при x < 0 та b 0,

 

ax

 

 

вхідного значення х, a, b, c, – дій-

x

a

 

 

F =

 

 

 

 

 

, при x > 0 та b = 0,

 

 

 

 

 

 

 

сні числа.

x c

 

 

 

 

x

,

в інших випадках.

 

 

 

 

 

 

 

 

 

 

 

 

c

 

 

 

 

 

2.1. Дано три додатні дійсні числа. Для кожного числа знайти корінь квадратний, якщо дробова частина менша за 5, в іншому випадку знайти квадрат даного числа.

2. Дано номер місяця (1 – січень, 2 – лютий, ...). Вивести кількість днів у цьому місяці для не високосного року.

40