Решавање проблема помоћу рачунара
УводРешавање проблема коришћењем рачунараТрансформација проблема на погодан обликОснови алгоритмизацијеСинтакса и семантика програмских језика
Програми засновани на прозорима
УводОсновне карактеристикеЕлементи графичког корисничког интерфејсаПрограми руковођени догађајима
Увод у развојно окружење
Увод► Елементи развојног окружења
Почеци рада у развојном окружењуКонзола
Форма и њена својства► Компоненте и њихова својства
Додавање компоненти формиКомпонента ButtonКомпонента LabelКомпонента TextBoxКомпонента RichTextBoxКомпонента PictureBoxКомпонента ImageListКомпонента TimerКомпонента ToolTip
ДогађајиПримери
Типови података
УводОператориЦелобројни типРеални типЛогички типЗнаковни типНизовни типСтринг типНабројиви типКласа и методе класе - основни појмови
Наредбе и изрази
УводСинтакса и семантика изразаАритметички изразиЛогички изразиНаредба доделеКонверзија типова податакаУношење и приказивање податакаАлгоритам размене вредности две променљивеПрограмирање израчунавања по једноставним математичким формуламаДодатни примери
Наредба гранања if
УводСинтакса наредбе ifОдређивање минимума и максимумаУређивање у монотоно неопадајући/нерастући поредакОдређивање сутрашњег и јучерашњег датумаДани у недељиSwitch
Компоненте избора и контејнерске компоненте
УводRadioButtonCheckBoxListBoxComboBoxОквир за групу GroupBoxPanel
Наредбе за организацију циклуса
Уводfor петљаwhile петљаdo while петљаПримена наредби break и continue у циклусимаПримери за вежбу
Опис класе
Класа и методе класеФункцијеФормални параметри и тело методеСтварни параметри и синтакса позива методеЛокалне променљиве методеПоља класеУгњеждене класеНаслеђивањеПримери
Тип низа
Једнодимензионални низовиОсновне операције са низовимаИзрачунавање просечне вредностиИзрачунавање максималне вредностиИзрачунавање минималне вредностиПретраживање низаСортирање низаПојам дводимензионог низаВизуелна компонента за табеларни приказ текста
Аутори

Логички изрази

Логички изрази служе за поређење различитих података и за друге логичке операције. То су изрази састављени од логичких операнада повезаних логичким операторима. Логички операнди су релацијски изрази или логички изрази.

Логички оператори који се користе у језику C# су:

оператор коњункције - && (and) који проверава да ли су оба израза тачна
оператор дисјункције - || (or) који проверава да ли је макар један израз тачан
оператор негације - ! (not) који има истиниту вредност само када је израз нетачан

     Приоритет логичких оператора:

Логички оператори имају већи приоритет од релационих оператора (<, >, <=, >=, ==, !=). Највиши приоритет од логичких оператора има оператор !, затим && и на крају ||.

    Дефинисање логичких израза
  1. Логичке константе True и False су логички изрази
  2. Логичке променљиве (типа Boolean) су логички изрази
  3. Релацијски изрази су логички изрази
  4. Позиви логичких функција су логички изрази
  5. Ако су L1 и L2 логички изрази, тада су логички изрази и (L1 && L2), (L1 || L2), (!L1), (!L2)

Унарни логички оператор ! негира логичку вредност на коју се примењује. Израз ! L1 има вредност true уколико L1 има вредност false и обрнуто.
Слика 5.2. Таблица логичког оператора !

Израз облика L1 && L2 има вредност true само ако обе логичке вредности имају вредност true, у супротном, вредност израза је false.
Слика 5.3. Таблица логичког оператора &&

Израз облика L1 || L2 има вредност false само ако обе логичке вредности имају вредност false, у супротном, вредност израза је true.
Слика 5.4. Таблица логичког оператора ||

У израчунавању вредности логичких израза користи се лењо израчунавање. Његова основна карактеристика јесте израчунавање само оног што је неопходно.


Лењо израчунавање

У изразима у којима се јавља логички оператор &&, уколико је вредност првог операнда једнака false, онда се не израчунава вредност другог операнда. Уколико је вредност првог операнда једнака true, онда се израчунава и вредност другог операнда.

У изразима у којима се јавља логички оператор ||, уколико је вредност првог операнда једнака true, онда се не израчунава вредност другог операнда. Уколико је вредност првог операнда једнака false, онда се израчунава и вредност другог операнда.


    На пример, приликом израчунавања вредности израза (2 < 1) && (x++ > 10), биће израчунато да је вредност подизраза (2 < 1) false, па је и вредност целог израза false (због својства логичког &&). Зато нема потребе израчунавати вредност подизраза x++, па ће вредност променљиве x остати непромењена након израчунавања вредности наведеног израза.
    С друге стране, након израчунавања вредности израза (1 < 2) && (x++ > 10), вредност променљиве x ће бити промењена (увећана за 1) јер подизраз (1 < 2) има вредност true, па је потребно израчунати и вредност другог операнда.
    На пример, након израчунавања вредности израза (1 < 2) || (x++ > 10), се не мења вредност променљиве x јер подизраз (1 < 2) има вредност true, па се вредност другог операнда не рачуна, a након (2 < 1) || (x++ > 10), се мења (увећава за 1) вредност променљиве x јер је вредност подизраза (2 < 1) једнака false, па се израчунава и вредност другог операнда.

Пример 1. За x = 5, y = 2, одредити вредност следећих израза:

  1. (x * y != 0) && (y > x)

  2. (x % y > 0) || (y > x)

  3. (x % 3 == 0) && ((x + y) > = 0)

  4. (y % 2 == 0) || ( x / 3 != 0)



Пример 2. За i = 1, j = 2, k = 4, одредити вредност следећих израза:

  1. (i < j) && (k != i)

  2. ((i + j) >= k) || (i == 2)

  3. !(j < k)

  4. ((k - j) > i ) && (k == 4)



Пример 3. Записати у облику логичких израза:

  1. x Є [ 0, 1 ]

  2. x Є [ -1, 1 ] U [ 2, 5 ]

  3. Бар један од целих бројева x, y, z је позитиван

  4. Сва три броја x, y, z су позитивна