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

M_CI_3

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

Примітка!

Унарний плюс (+) та унарний мінус (-) знаходяться на рівні 2, і їх пріоритет вищий, ніж у арифметичних плюса та мінуса, які знаходяться ні рівні 4. Символ & на рівні 2 є операцією взяття адреси, а символ & на рівні 8 є порозрядною операцією І. Символ * на рівні 2 - це операція розіменування, а символ * на рівні 3 позначає операцію множення. При відсутності круглих дужок операції одного рівня обраховуються у відповідності з порядком обчислень.

3.7. Оператори

Програма – це послідовність операторів з додаванням у відповідних місцях необхідної кількості знаків пунктуації.

Оператор представляє собою закінчену інструкцію для комп’ ютера. В мові Сі відмітною ознакою оператора є символ "крапка з комою", яка стоїть в його кінці. Тому конструкція

legs = 4

єлише виразом (який може бути частиною іншого виразу). Але конструкція legs = 4;

єуже оператором.

Мова Сі розглядає будь-який вираз як оператор, якщо у нього в кінці стоїть "крапка з комою". Такі оператори називаються операторами виразів. Тому операторами є і конструкції

10; 3 + 4;

Інша справа, що такі оператори не мають сенсу.

В прикладі 3.9. використовуються всі чотири типи операторів мови Сі.

Приклад: 3.9

1: #include <stdio.h>

2:

3:int main(void) /* Програма знаходить суму перших двадцяти

4:

натуральних чисел */

5:{

6:

int

count, sum;

/* Оператор оголошення */

7:

count = 0;

/* Оператор присвоєння */

8:

sum

= 0;

/* Оператор присвоєння */

9:

while(count++ < 20)

/*

Оператор

циклу */

10:

 

sum += count;

/*

Оператор

виразу */

11:printf("\nsum = %5d\n", sum); /* Оператор функції */

12:return 0;

13:}

Оператор оголошення – визначає імена і типи змінних та відводить для них комірки пам’яті. Оператор оголошення не є оператором виразу. Якщо видалити із оператора оголошення "крапку з комою", ви одержите конструкцію, яка не є виразом і не має значення.

Оператор присвоєння є прикладом оператора виразу.

Оператор циклу відноситься до класу так званих операторів керування. Більш докладну інформацію про них дивіться розділ 4.

Оператор функції примушує функцію виконати те, для чого вона призначена. Потрібно сказати, що виклики функцій, які повертають значення (дивіться розділ 5), можуть входити у вирази. Приведена далі крупа операторів призначена для обчислення косинусу кута 35°:

39

Приклад: 3.10

1:double y, x = 35;

2:x = x*M_PI/180.0;

3:y = 2.5*cos(x);

Вираз в рядку 3 використовує виклик функції cos() для обчислення косинуса x. Інформацію про бібліотеки функцій дивіться в додатку Б.

3.8. Робоче завдання.

Скласти i вiдпрацювати програми за завданням у відповідності з номером бригади. Вхідні дані програма повинна читати з клавіатури після відповідних запитів. Відповіді виводити на екран.

Зберегти програми в своєму каталозi на жорсткому диску i записати їх на свою дискету. Оформити протокол у відповідності до вимог, приведених у додатку А.

1.Цiлiй змiннiй Summa присвоїти суму цифр тризначного цiлого числа k.

2.Цiлiй змiннiй Des присвоїти першу цифру з дробової частини додатного дiйсного числа

x(так, якщо x = 32.597, Des=5).

3.Йде Sec-на секунда доби. Визначити скiльки повних годин (Hour) i повних хвилин (Minute) пройшло до цього моменту. (наприклад, Hour=3, Minute=40, якщо Sec= 3255 = 3 * 3600 + 40 * 60 + 57).

4.Визначити Angle-кут (в градусах) мiж положенням годинної стрiлки на початку доби i

їїположенням в Hour годин, Minute хвилин, Sec секунд.

5.Визначити Hour - повну кiлькiсть годин i Minute - повну кiлькiсть хвилин, якi пройшли вiд початку доби до того моменту (в першiй половинi доби), коли годинна стрiлка повернулась на Angle градусiв.

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

7.Нехай Numb - цiле число в межах вiд 1 до 365. Присвоїти цiлiй змiннiй DayWeek значення 1,2,...,7 в залежностi вiд того, на який день тижня припадає день Numb. День тижня для 1 сiчня визначається константою FirstDay.

8.Визначити суму, рiзницю, добуток i частку двох дiйсних чисел x i y.

9.Є два дiйсних числа x i y. Визначити

z=(¦x¦ - ¦y¦)/(1 + ¦x*y¦).

10.Змiшали V1 лiтрiв води температури t1 i V2 лiтрiв води температури t2. Знайти об'єм i температуру утвореної сумiшi.

11.Вiдома довжина L, ширина B i висота H паралелепiпеда. Знайти його об'єм V, площу передньої стiнки S1, площу нижньої стiнки S2, площу бокової стiнки S3 та площу всiєї поверхнi паралелепiпеда Ssum.

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

13.Вiдомі довжина L, ширина B i висота H чотиригранної піраміди. Знайти її об'єм V, та площу поверхні Ssum.

Нижче наведено зразок програми.

Приклад 3.9

Завдання: Присвоїти цiлiй змiннiй Third третю вiд кiнця цифру в записi додатного цiлого числа Х (наприклад, якщо Х = 130985, то Third = 9).

Рiшення :

40

1: #include <stdio.h>

2:

3:void main(void)

4:{

5:int Integer_Number, Third_Finger;

6:printf("Введите целое положительное число, имеющее не мене трех знаков: ");

7:scanf("%d",&Integer_Number);

8:printf("Целое положительное число Integer_Number = ", Integer_Number);

9:Third_Finger = Integer_Number/100-(Integer_Number/1000)*10;

10:printf("Третья с конца цифра Third_Finger = %2d",Third_Finger);

11:}

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

1.Що таке вираз, операнд, операцiя? Пояснiть на прикладi.

2.Яки типи операцiй Ви знаєте? Наведiть приклади.

3.Наведiть приклади арифметичних виразiв i операцiй. Який тип даних Ви отримаєте при дiленнi двох змiнних цiлого типу ?

4Наведiть приклади виразiв i операцiй вiдношення. Який тип має результат виконання операцiй вiдношення?

7.Наведiть приклади логiчних виразiв i операцiй. Якого типу можуть бути операнди в логiчних виразах?

8.На прикладi вкажiть пріоритет виконання операцiй.

9.Операції інкременту та декременту.

10.Порозрядні операції. Навести приклади виконання порозрядних операцій.

11.Скорочені операції присвоєння. Назвіть різницю їх дії в порівняні із звичайними.

41

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