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

M_CI_4

.pdf
Скачиваний:
10
Добавлен:
12.05.2015
Размер:
821.43 Кб
Скачать

Y Y

 

 

X

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a)

 

б)

Y

Y

X

 

 

X

в)

 

г)

 

 

Y

Y

 

 

 

 

 

 

 

 

X

X

д)

е)

Y

Y

 

X

X

є)

 

ж)

 

 

Y

 

Y

 

 

 

 

Y=X

 

X

X

з)

Рис.4.8

і)

62

Y Y

X

X

й)

к)

Y

Y

X

X

л)

м)

Продовження рис. 4.8

 

Нижче наведений приклад алгоритму (рис. 4.8) та програми в якiй заштрихована область є прямокутником, центр якого спiвпадає з початком системи координат, висота дорiвнює 10 мм, а ширина 6 мм.

Приклад

4.17:

X = ?,

Y = ?

X, Y

Ні X<Sh/2 Y<Vis/2

 

Так

Точкане

Точка

належить

належить

Кінець

Рис. 4.7 Алгоритмвизначення попадання точки в прямокутник

63

1:

#include <stdio.h>

2:

 

3:

#define VISOTA 10.0

4:

#define SHIRINA 6.0

5:

 

6:

void main(void)

7:

{

8:

float X,Y;

9:

printf("Координата X,(мм) = ");

10:

scanf("%f", &X);

11:

printf("Координата Y,(мм) = ");

12:

scanf("%f", &Y);

13:

if (X <= (SHIRINA/2)) &&(X >= (-SHIRINA/2))

14:

&& (Y <= (VISOTA/2)) && (Y >= (-VISOTA/2))

printf("Введена точка належить

 

заштрихованiй областi.");

15:else

16:printf("Введена точка не належить

заштрихованiй областi.")

17:}

4.13.3.Завдання по операторах if-else, switch.

1.Скласти програму, яка буде реагувати на натискання на клавiатурi клавіш Y i N у будь-якому регістрi i, якщо була натиснута клавіша Y(y) - на екран виводити повiдомлення "Так", якщо була натиснута клавіша N(n) - виводити повiдомлення "Нi", якщо була натиснута будь-яка iнша клавіша - виводити повiдомлення "Вибiр не зроблено".

2.Скласти програму, яка реагувала б на натискання на клавiатурi клавіш з знаками математичних операцiй (+, -, *, /). На екран повиннi видаватися вiдповiдно повiдомлення: "Операцiя додавання", "Операцiя вiднiмання", "Операцiя множення", "Операцiя

дiлення". В разi натискання будь-якої iншої клавішi, виводити на екран повiдомлення

"Введений символ - не символ математичної операцiї".

3.Скласти програму, яка реагувала б на натискання на клавiатурi символу i виводила на екран наступнi повiдомлення: "Голосна латинська буква" - у випадку натискання будь-якої голосної латинської букви; "Приголосна латинська буква" - у випадку натискання приголосної латинської букви; "Введений символ - не латинська буква" - у випадку натискання iнших клавіш.

4.Скласти програму аналогiчну до завдання 3 замiнивши латинськi букви на росiйськi.

5.Визначити, яке дiйсне число R введене з клавiатури. Якщо R<0 - на екран видавати повiдомлення "Число менше нуля", якщо R>0 - "Число бiльше нуля", якщо R=0 - "Число дорiвнює нулю".

6.Скласти програму, яка реагувала би на натискання на клавiатурi символу i виводила на екран наступнi повiдомлення: "Натиснуто латинський символ" - якщо клавiатура знаходилась у станi введення латинських символiв; "Натиснуто символ кирилицi" - якщо клавiатура знаходилась у станi введення символiв кирилицi.

7.Скласти програму, яка б вiдповiдним чином реагувала на натискання символiв "!", "?", "$", "%" i виводила на екран повiдомлення: "Знак оклику", " Знак питання", "Знак долара", "Знак вiдсоткiв".

8.Скласти програму, яка дозволяла би ввести з клавiатури цiле число в межах вiд -3000 до 30000 i дозволяла визначити порядок числа. На екран виводити наступнi повiдомлення: "Десятки тисяч", "Тисячi", "Сотнi", "Десятки", "Одиницi", "Нуль".

64

0, при x 0, x, при 0 < x 1,

9.Скласти програму, яка дозволяла би по введеному номеру мiсяця визначати кiлькiсть днiв в ньому. Вважати, що рiк невисокосний.

10.Скласти програму, яка дозволяла би по введеному з клавiатури символу визначити в якому регiстрi (верхньому чи нижньому) цей символ був введений. На екран видавати такi

повiдомлення: "Символ - велика латинська буква", "Символ - мала латинська буква". В

іншому випадку видати повідомлення : "Невiдомий символ".

11.Написати програму, яка б читала з клавіатури два натуральних числа m та n і друкувала б всі числа Фібоначчі з проміжку [m, n]. Числа Фібоначчі задаються рекурентним

співвідношенням f0 = 0, f1 = 1, fi = fi-1 + fi-2, i > 1.

12. Написати програму, яка б визначала, чи можна побудувати трикутник за заданими довжинами сторін a, b, c; якщо це так то програма повинна визначити, яким він є: гострокутним, прямокутним, різностороннім, рівнобедреним, рівностороннім.

13. Задано х. Вирахувати y за формулою:

y =

x4, впротивномуразі.

14. Задано х. Вирахувати y за формулою:

 

 

 

0, при x 0,

 

 

x2 x, при 0 < x 1,

y =

 

 

2

sinπx

2

1, впротивномуразі.

x

 

 

Наведений нижче приклад дозволяє розпiзнати натискання на клавiатурi круглих, квадратних i фiгурних дужок.

Приклад 4.18:

1: #include <stdio.h>

2:

3:void main(void)

4:{

5:char ch;

6:printf("Введіть (,),[,],{ або }");

7:scanf("%c", &ch);

8:switch (ch)

9:{

10:

case '(':

printf("Відкрита кругла дужка ");

break;

11:

case ')':

printf("Закрита кругла дужка ");

break;

12:

case '[':

printf("Відкрита квадратна дужка ");

break;

13:

case ']':

printf("Закрита квадратна дужка ");

break;

14:

case '{':

printf("Відкрита фігурна дужка ");

break;

15:

case '}':

printf("Закрита фігурна дужка ");

break;

16:

default:

printf("Символ - не дужка ");

 

17:}

18:}

4.13.4.Завдання по операторах циклу.

1.Вивести на екран таблицю cos(x)-sin(y) при змiнi y вiд 0 до 90 градусiв з кроком 15 градусiв (виведення по горизонталi) i змiнi x вiд 0 до 180 градусiв з кроком 30 градусiв (виведення по вертикалi).

2.Вивести на екран таблицю a*(a+1)*...*(a+n-1) при змiнi a вiд 1 до 5 з кроком 1 (виведення по горизонталi) i при змiнi n вiд 5 до 18 з кроком 3 (виведення по вертикалi).

65

3. Вивести на екран таблицю 1+sin(x), 1-sin(x), 1+tg(x), 1-tg(x) (по горизонталi) при змiнi аргументу вiд 0 до 180 градусiв з кроком 15 градусiв (виведення по вертикалi). В програмi передбачити неможливiсть обчислення tg(90).

4.Вивести на екран таблицю sin(a)+sin(2*a)+...+sin(n*a) при змiнi a вiд 0 до 90 градусiв з кроком 15 градусiв (виведення по горизонталi) i змiнi n вiд 10 до 50 з кроком 10 (виведення по вертикалi).

5.Вивести на екран таблицю sin(x)+sin(y) при змiнi y вiд 0 до 90 градусiв з кроком 30 градусiв (виведення по горизонталi) i змiнi x вiд 0 до 90 градусiв з кроком 10 градусiв ( виведення по вертикалi).

6.Вивести на екран таблицю 1/sin(a)+1/sin(2*a)+...+ +1/sin(n*a) при змiнi a вiд 0 до 90

градусiв з кроком 30 градусiв (виведення по горизонталi) i при змiнi n вiд 10 до 50 з кроком 10 (виведення по вертикалi). В програмi передбачити неможливiсть обчислення функцiї

1/sin(0).

7.Вивести на екран таблицю ln(x), ex при змiнi аргументу вiд 0 до е з кроком e/20. В програмi передбачити неможливiсть обчислення ln(0).

8.Вивести на екран таблицю tg(x), сtg(x) (по горизонталi) при змiнi аргументу вiд 0 до 90 градусiв з кроком 5 градусiв (виведення по вертикалi). В програмi передбачити неможливiсть обчислення tg(90) i ctg(0).

9.Вивести на екран таблицю 1/a+1/(2*a)+...+1/(n*a) при змiнi a вiд 2 до 10 з кроком 2 (виведення по горизонталi) i при змiнi n вiд 5 до 50 з кроком 5 (виведення по вертикалi).

10.Вивести на екран таблицю 1/sin(x), 1/cos(x), 1/(sin(x)*cos(x)) (по горизонталi), при змiнi аргументу вiд 0 до 180 градусiв з кроком 10 градусiв (виведення по вертикалi). В програмi передбачити неможливiсть дiлення на нуль.

11.Написати програму обчислення факторіалу: n! = 1 * 2 * . . . * n; При n = 0, n! = 1.

12.Написати програму, яка б читала натуральні числа m і n та друкувала б всі натуральні числа, менші від n, сума цифр яких дорівнює m.

13.Написати програму, яка б за введеним натуральним числом обчислювала добуток:

 

+

 

1

+

1

 

 

1

 

 

 

 

1n

 

14.

 

Нехай

21n L 1 + n1n .

a

= b =1;

a

 

=

1

 

b

+

1

a

 

 

b = 2a

2

+b ; (k =1, 2, K) . Задано

k

2

 

2

k 1

;

k 1

1

1

 

 

 

k 1

 

 

 

k

k 1

натуральне число n. Обчислити a1b1 +a2b2 +L+anbn.

*Примітка: для обчислення значень sin(x), сos(x), ln(x), ex потрібно скористатись відповідними математичними функціями, для користування якими й вашій програмі, ви повинні скористатись директивою #include для включення файлу "math.h" до вашої програми (дивіться інформацію про функції в додатку Б).

Нижче наведений приклад програми, яка виводить на екран таблицю множення.

Приклад 4.19:

1:#include <stdio.h>

2:#include <conio.h>

4: #define MAX 10

5:

6:void main (void)

7:{

8:int i,j;

9:/*--Виведення таблицi множення за допомогою оператора for--*/

10:clrscr();

11:printf("\n");

12:printf("%4c",' ');

66

13:for(i =1; i <= MAX; i++)

14:{

15:printf("%2d", i);

16:if (i < MAX) printf("%c",' ');

17:}

18:printf("%4c",' ');

19:for(i =1; i <= MAX; i++)

20:{

21:

printf("\n%3d", i);

j++)

22:

for(j =1; j <= MAX;

23:

printf("%3d",

i*j);

24:}

25:}

4.14.Контрольнi запитання.

1.Оператори if та else. Умовні вирази. Приклади.

2.Оператор switch. Приклади.

3.Оператор while. Приклади.

4.Оператор do-while. Приклади.

5.Оператор for. Приклади.

6.Оператор break та continue. Приклади.

7.Оператор goto та функція exit(). Приклади.

8.Алгоритми. Словесно-формульна форма запису алгоритму. Приклади.

9.Алгоритми. Блок-схеми алгоритмів. Приклади.

67

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]