Операції мови С(унарні, бінарні, тернарні) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Операції мови С(унарні, бінарні, тернарні)



Операції мови С(унарні, бінарні, тернарні)

Операція - це елементарна конструкція, яка повертає деякий результат. На відміну від операцій, оператори - синтаксичні конструкції, керуючі ходом виконання програми. Основні оператори: умовні переходи і цикли.
За кількістю аргументів операції бувають унарні, бінарні і є одна тернарних операція «Умова».
Якщо одна і та ж операція зустрічається у виразі кілька разів, то говорять про ліво-асоціативних і право-асоціативних операціях. У першому випадку дана операція виконується зліва направо, в другому - справа наліво.

 

 

Таблиця пріоритетів операцій



3) Бітова операція в програмуванні - деякі операції над ланцюжками бітів. У програмуванні, як правило, розглядаються лише деякі види цих операцій: логічні побітові операції та бітові зрушення. Бітові операції застосовуються в мовах програмування і цифрову техніку, вивчаються в дискретної математики.

Побітові логічні операції

Ряд джерел з мовам низького рівня називає побітові логічні операції просто логічними, але в термінології програмування на мовах високого рівня в назвах бітових операцій присутні прикметники бітовий, побітовий (наприклад: "побітове логічне І ", воно ж" побітове множення "), порозрядної.

У деяких мовах програмування назви операторів, відповідних логічним і побітовим логічним операціям, схожі. Крім того, мова програмування може допускатинеявне приведення числового типу до логічного і навпаки. У таких мовах програмування необхідно уважно стежити за використанням логічних і побітових операцій, перемішування яких може привести до помилок. Наприклад, в C + + результатом вираження "2 & & 1" (логічне І) є булево значення true, а результатом вираження "2 & 1" (побітове І) - ціле 0.

Побітове заперечення (NOT)

Побітове заперечення (або побітове НЕ, або доповнення) - це унарна операція, дія якої еквівалентно застосуванню логічного заперечення до кожного біту двійкового подання операнда. Іншими словами, на тій позиції, де в двійковому поданні операнда був 0, в результаті буде 1, і, навпаки, де була 1, там буде 0. Наприклад:

НЕ  
 
   

Побітове І (AND)

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

Приклад:

І  
 
 
   

Побітове АБО (OR)

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

Приклад:

АБО  
 
 
   

Побітове виключає АБО (XOR)

Побітове виключає АБО (або побітове додавання по модулю два) - це бінарна операція, дія якої еквівалентно застосуванню логічного виключає АБО до кожної пари бітів, які стоять на однакових позиціях у двійкових уявленнях операндів. Іншими словами, якщо відповідні біти операндів різні, то двійковий розряд результату дорівнює 1, якщо ж біти збігаються, то двійковий розряд результату дорівнює 0.

Приклад:

Викл. АБО  
 
 
   

Перше російське назва операції обумовлено тим, що результат цієї операції відрізняється від результату "АБО" тільки в одному випадку з 4 випадків входу - обох 1 (випадок одночасної істинності аргументів "виключається"). Ще в російській граматиці значення даної логічної зв'язки передається союзом "чи".

Друга назва - тим, що дійсно є складанням в кільці відрахувань по модулю 2, з чого випливають деякі цікаві властивості. Наприклад, на відміну від вищеописаних "І" і "АБО", дана операція є оборотної, або інволютивних: .

В комп'ютерній графіці "виключає АБО" застосовується при виведенні спрайтов на картинку - повторне її застосування прибирає спрайт з картинки. Завдяки інволютивними ця ж операція знайшла застосування в криптографії як найпростіша реалізація ідеального шифру (шифру Вернама). "Що виключає АБО" також може використовуватися для обміну двох змінних, використовуючи алгоритм обміну за допомогою виключає АБО.

Базові типи даних мови С

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

Базові типи даних мови С можна перерахувати у наступній послідовності:

char- символ. Тип може використовуватись для зберігання літери, цифри або іншого символу з множини символів ASCII. Значенням об’єкта типу char є код символу. Тип char інтерпретується як однобайтове ціле з областю значень від -128 до 127.

Int – ціле. Цілі числа в діапазоні від -32768 до 32767.Як різновиди цілих чисел, у деяких видах компіляторів існують short – коротке ціле(слово) та long(4 байти) – довге ціле.

Float – число з плаваючою комою одинарної точності. Тип призначений для зберігання дійсних чисел. Може представляти числа як у фіксованому форматі (наприклад число пі – 3.14159), так і в експоненціальній формі – 3.4Е+8.

Double - число з плаваючою комою подвійної точності. Має значно більший діапазон значень ніж float: ±(1.710. 308... 1.710308).

Оператор switch.

Оператор перемикач – switch – використовується, коли необхідно зробити вибір з великої кількості варіантів.

Формат

Switch <viraz>

{

Case <const_1>:<operator_1>;

Case <const_2>:<operator_2>;

Case <const_n>:<operator_n>;

Default: <operator>;

}

Здійснюється обчислення виразу представляється цілим числом. Потім здійснюється перевірка чи співпадає значення виразу за ключовими словами case. Управління передається на оператор константи, яка дорівнює значенню виразу. Після цього виконуються усі оператори тіла switch. Якщо жодна з констант не дорівнює значенню виразу, виконується оператор після default.

Int=2

Switch (i)

{

Case 1: i+=2; break;

Case 2: i+=3; break;

Case 0: i/=2; break;

Case 4: i-=5; break;

Default;

}

 

11. for (<ініціалізація>; <перевірка умови>; <модифікатор>) <оператор>

For (i=2; i<=10; i++) S=S+1;

Схема виконання оператора for:
1. Обчислюється вираз 1.
2. Обчислюється вираз 2.
3. Якщо значення виразу 2 відмінно від нуля (істина), виконується тіло циклу, обчислюється вираз 3 і здійснюється перехід до пункту 2, якщо вираз 2 дорівнює нулю (брехня), то управління передається на оператор, наступний за оператором for.
Суттєво те, що перевірка умови завжди виконується на початку циклу. Це означає, що тіло циклу може жодного разу не виконатися, якщо умова виконання відразу буде хибним.

Іншим варіантом використання оператора for є нескінченний цикл. Для організації такого циклу можна використовувати пусте умовний вираз, а для виходу з циклу зазвичай використовують додаткову умову і оператор break.
Приклад:
for (;;)
{
...
... break;
...
}
Так як згідно синтаксису мови С оператор може бути порожнім, тіло оператора for також може бути порожнім. Така форма оператора може бути використана для організації пошуку.

 

 

12. While (<умова>) <оператор> з перед умовою. Обчислює значення виразу. Може бути виконана один раз, декілька разів або не бути виконаною.

Схема виконання оператора while наступна:
1. Обчислюється вираз.
2. Якщо вираз помилково, то виконання оператора while закінчується і виконується наступний по порядку оператор. Якщо вираз істинний, то виконується тіло оператора while.

Так само як і при виконанні оператора for, в операторі while спочатку відбувається перевірка умови. Тому оператор while зручно використовувати в ситуаціях, коли тіло оператора не завжди потрібно виконувати.
Всередині операторів for і while можна використовувати локальні змінні, які повинні бути оголошені з визначенням відповідних типів.

 

13. Do <команда_1>; while (<вираз>); з після умовою. Команда буде виконуватися хоча б один раз завжди.

Схема виконання оператора do while:
1. Виконується тіло циклу (яке може бути складеним оператором).
2. Обчислюється вираз.
3. Якщо вираз помилково, то виконання оператора do while закінчується і виконується наступний по порядку оператор. Якщо вираз істинний, то виконання оператора триває з пункту 1.
Щоб перервати виконання циклу до того, як умова стане хибним, можна використовувати оператор break.
Оператори while і do while можуть бути вкладеними.
Приклад:
int i, j, k;
...
i = 0; j = 0; k = 0;
do {i + +;
j -;
while (a [k] <i) k + +;
}
while (i <30 & & j <-30);

 

Приклад

int digits [10] – масив з десяти елементів типу int

Доступ до елементів масиву реалізується за допомогою індекса (порядкового номеру елемента починаючи з «0»)

По суті ім*я масиву – це вказівник на його перший елемент.

Багатовимірні масиви: Мова С++ допускає використовування багатовимірних масивів, тобто масивів елементами яких є масиви.

Приклад: int a[10][2] – двохвимірний масив 10х2

Фактично всі елементи багатовимірного масиву зберігаються в пам*яті послідовно, тому ініціалізація їх аналогічна: int a[2][3] = {1,2,3,4,5,6};

Для доступу до елементів масиву використовуються індекси по кожній із розмірності або операції розйменування вказівника.

15. Дані типу структура. Оголошення, доступ до елементів. Структура - це об'єднання одного або більше об'єктів (змінних, масивів, покажчиків, інших структур). Як і масив, вона являє собою сукупність даних, але відрізняється від нього тим, що до її елементів необхідно звертатися на ім'я, а її різні елементи не обов'язково має належати до одного типу.Структури зручно використовувати там, де різноманітні дані, що відносяться до одного і того ж об'єкту, необхідно об'єднувати.

Оголошення структури здійснюється за допомогою ключового слова struct, за яким слід її тип, список елементів, укладених у фігурні дужки. Її можна представити в наступному загальному вигляді:

struct тип {тип елемента 1 ім'я елемента 1;

тип елемента n ім'я елемента n;};

Іменем елемента може бути будь-який ідентифікатор. В одному рядку можна записувати через кому кілька ідентифікаторів одного типу.

Наприклад:

struct date {int day;

int month;

int year;};

Слідом за фігурною дужкою, що закінчує список елементів, можуть записуватися змінні даного типу, наприклад:

struct date {...} a, b, c;

При цьому виділяється відповідна пам'ять.

Доступ до елементів структур здійснюється за допомогою двох операцій: за допомогою операції «.» крапка і операція вказівника структури «->» стрілка. Звернення операції елементу «.» до елементу здійснюється через ім’я структури: aCard. suit; операція вказівника структури «->» звертається до елементу через вказівник структури cardPtr. suit.

 

16. Ф-ції користувача мови С. Оголошення, виклик, завершення.

Функція – це сукупність оголошень та операторів призначена для виконання деякої окремої задачі. Розрізняють поняття «визначення функції» та «оголошення функції».

Визначення функції – специфікує клас пам’яті, тип значення яке повертає функція, ім’я функції, параметри та атрибути параметрів функції, тіло функції.

[<КП>] [<тип>] <ім’я функції> ([<пареметри>])

{

<тіло функції>

}

КП – клас пам’яті:

Класи пам’яті

1. extern

2. static

Якщо не вказано клас, виконуеться extern

Void – не повертає ніяких значень.

Функція може повертати лише одне значення

Виклик функції:

<ім’я функції> (<пареметри>)

Оголошення функції реалізуеться у вигляді прототипу функції. Прототип і формат оголошення співпадають з деяким виключенням:

Void func (void);

int fun (int a, int b) - прототип

Ifdef

# ifdef <ім*я>

< послідовність операторів >

# endif

4) undef — отменяет предыдущее определение

#undef WIDTH

5) pragma — действие, зависящее от конкретной реализации компілятора

6) ifndef — осуществляет условную компиляцию при неопределённости символической константы

#ifndef HEADER_INCLUDED

#include "myheader.h"

#define HEADER_INCLUDED

#endif

Препроц. Змінні та макроси.

Препроцесор – це текстовий процесор (програма), який використовується для обробки початкового файлу з програмою перед початком компіляції.

Призначення:

- для підключення до програм інших файлів

- для заміни «ехе» в тексті програми

- для забезпечення можливості компіляції різних груп операторів в залежності від деякої умови

Директива – це команди компілятора, які виконуються на початку програми(позначаються символом #)

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

Операції мови С(унарні, бінарні, тернарні)

Операція - це елементарна конструкція, яка повертає деякий результат. На відміну від операцій, оператори - синтаксичні конструкції, керуючі ходом виконання програми. Основні оператори: умовні переходи і цикли.
За кількістю аргументів операції бувають унарні, бінарні і є одна тернарних операція «Умова».
Якщо одна і та ж операція зустрічається у виразі кілька разів, то говорять про ліво-асоціативних і право-асоціативних операціях. У першому випадку дана операція виконується зліва направо, в другому - справа наліво.

 

 

Таблиця пріоритетів операцій



3) Бітова операція в програмуванні - деякі операції над ланцюжками бітів. У програмуванні, як правило, розглядаються лише деякі види цих операцій: логічні побітові операції та бітові зрушення. Бітові операції застосовуються в мовах програмування і цифрову техніку, вивчаються в дискретної математики.

Побітові логічні операції

Ряд джерел з мовам низького рівня називає побітові логічні операції просто логічними, але в термінології програмування на мовах високого рівня в назвах бітових операцій присутні прикметники бітовий, побітовий (наприклад: "побітове логічне І ", воно ж" побітове множення "), порозрядної.

У деяких мовах програмування назви операторів, відповідних логічним і побітовим логічним операціям, схожі. Крім того, мова програмування може допускатинеявне приведення числового типу до логічного і навпаки. У таких мовах програмування необхідно уважно стежити за використанням логічних і побітових операцій, перемішування яких може привести до помилок. Наприклад, в C + + результатом вираження "2 & & 1" (логічне І) є булево значення true, а результатом вираження "2 & 1" (побітове І) - ціле 0.

Побітове заперечення (NOT)

Побітове заперечення (або побітове НЕ, або доповнення) - це унарна операція, дія якої еквівалентно застосуванню логічного заперечення до кожного біту двійкового подання операнда. Іншими словами, на тій позиції, де в двійковому поданні операнда був 0, в результаті буде 1, і, навпаки, де була 1, там буде 0. Наприклад:

НЕ  
 
   

Побітове І (AND)

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

Приклад:

І  
 
 
   

Побітове АБО (OR)

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

Приклад:

АБО  
 
 
   

Побітове виключає АБО (XOR)

Побітове виключає АБО (або побітове додавання по модулю два) - це бінарна операція, дія якої еквівалентно застосуванню логічного виключає АБО до кожної пари бітів, які стоять на однакових позиціях у двійкових уявленнях операндів. Іншими словами, якщо відповідні біти операндів різні, то двійковий розряд результату дорівнює 1, якщо ж біти збігаються, то двійковий розряд результату дорівнює 0.

Приклад:

Викл. АБО  
 
 
   

Перше російське назва операції обумовлено тим, що результат цієї операції відрізняється від результату "АБО" тільки в одному випадку з 4 випадків входу - обох 1 (випадок одночасної істинності аргументів "виключається"). Ще в російській граматиці значення даної логічної зв'язки передається союзом "чи".

Друга назва - тим, що дійсно є складанням в кільці відрахувань по модулю 2, з чого випливають деякі цікаві властивості. Наприклад, на відміну від вищеописаних "І" і "АБО", дана операція є оборотної, або інволютивних: .

В комп'ютерній графіці "виключає АБО" застосовується при виведенні спрайтов на картинку - повторне її застосування прибирає спрайт з картинки. Завдяки інволютивними ця ж операція знайшла застосування в криптографії як найпростіша реалізація ідеального шифру (шифру Вернама). "Що виключає АБО" також може використовуватися для обміну двох змінних, використовуючи алгоритм обміну за допомогою виключає АБО.



Поделиться:


Последнее изменение этой страницы: 2016-04-21; просмотров: 1213; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 52.14.126.74 (0.075 с.)