Dasturlash tillarining tuzilmasi


Download 62.28 Kb.
bet3/7
Sana04.04.2023
Hajmi62.28 Kb.
#1327249
1   2   3   4   5   6   7
Bog'liq
2-mavzu

Toki va uchun buyruqlariga misollar

Soʻzlar orqali

Blok-sxema orqali

Sikl boshi toki i <= 5
S := S+A[i] i := i+1 sikl oxiri



Sikl boshi i uchun 1 da
5 gacha
X[i] := i*i*i Y[i] := X[i]/2 sikl oxiri



Binar amallar additiv yaʻni + qoʻshish va – ayirish amallariga, hamda multiplikativ, yaʻni * koʻpaytirish, / boʻlish va % modul olish amallariga ajratiladi.
Butun sonni butun songa boʻlganda natija butun songacha yaxlitlanadi.
Misol uchun, 20/3 = 6; (-20)/3 = -6; 20/(-3) = -6.
Unar amallarga ishorani oʻzgartiruvchi unar minus “–” va unar plyus “+” amallari kiradi. Bundan tashqari inkrement “++” va dekrement “--” amallari ham unar amallarga kiradi. Ternar operatori quyidagi shaklga ega: amal1?amal2: amal3
exp1ifodasi har doim baholanadi. amal2 va amal3 bajarilishi amal1 natijasiga bogʻliq. Agar exp1 natijasi nolga teng boʻlmasa, exp2 baholanadi, aks holda exp3 baholanadi.
Kamchiliklari:
amal1 har qanday kamchiligi amal2 yoki amal3 dan oldin darhol baholanadi va yangilanadi. Boshqacha qilib aytganda, holatni uchlamchi nuqtai nazardan baholaganingizdan keyin ketma-ketlikda nuqta bor.
Agar exp2 yoki exp3 kamchiligi boʻlsa, ulardan faqat bittasi baholanadi.
Qaytish tipi:
Ternar operatori qaytish tipiga ega. Qaytish tipi odatiy \ ortiqcha yuklangan konversiya qoidalariga muvofiq exp2 ga va exp3 ning exp2 ga konvertatsiyasiga bogʻliq. Agar ular oʻzgartirilmasa, kompilyator xato tashlaydi. Quyidagi misollarga qarang.
Quyidagi dastur xatosiz kompilyatsiya qiladi. Uchlamchi iboraning qaytish tipi float(exp2 dagiday) boʻlishi kutilmoqda va exp3 (yaʻni, haqiqiy nol - tipi int) noaniq ravishda float shaklga oʻtkaziladi.
#include

using namespace std; int main() { int test = 0; float fvalue = 3.111f;
cout << (test ? fvalue : 0) << endl; return 0; }

Quyidagi dastur kompilyatsiya qilmaydi, chunki kompilyator uchlamchi iboraning qaytariladigan tipini topa olmaydi, yoki exp2 (belgilar qatori) va exp3 (int) oʻrtasida yashirin konversiya mavjud emas.

#include using namespace std; int main() { int test = 0;
cout << test ? "A String" : 0 << endl; return 0; }
Quyidagidasturkompilyatsiyaqilishimumkinmi?Yoki ish vaqtida ishlamay qoladimi?.

#include using namespace std; int main() { int test = 0;
cout << (test ? "A String" : 0) << endl; return 0; }


Download 62.28 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling