Terminal komandalari | Part 4
Tags: github, linux, vscode, beginners
Published: 2022-04-28 07:12:48

## cd ~/papka-nomi
- istalgan manzildan homega qaytib(~), biz xohlagan papkaga borish

## ls
- mavjud papka ichidagi papkalarni ko'rsatadi

## mkdir $(date +'%d-%m-%Y')
- bugungi sana bilan papka yaratadi

## cd name
- kerakli papkani ichiga kirish (boshlang'ich harflari yozilib tab klavishi bosilsa papka nomini chiqarib beradi)

## cd ..
- orqaga qaytish

## code .
- kerakli papkani Visual Studio Codeda ochish

## cpp
- c++ fayllar saqlanadigan qisqartma

## iostream
- console - terninalga input/output buyruqlarni chiqaradigan kutubxona

## Control + ~
- VSC da terminalni chiqaradi

## using namespace std;
- std ni har safar yozavermaslik uchun ishlatiladi

## c++ template (shablon) code
- #include bilan boshlanib return 0; } bilan tugaydigan codelar jamlanmasi

## { } - main scope starts/ends
- buyruqlarning main funksiya ichida bajarilayotganligini anglatadi va barcha buyruqlar uni ichida bajariladi, undan tashqarida  yozilgan buyruqlar bajarilmasdan error beradi. int main () dan pastda yozilishi kerak

## // 
- izoh - kommentariy

## cout 
- ma'lumotlarni terminalga chiqaradigan buyruq. Masalan, cout << "Hello world" << endl;

## "Hello world"
-string, ko'p ma'lumotni stringga aylantirish uchun hammasini belgilab " bosilsa, ikki chetiga qo'yib beradi.

## endl = \n
- qator tugaganligini - yangi qatordan yozilishini anglatadi

## g++ file name
- compilatsiya qilish

## -o name
- natijani saqlash

## ./name
- dasturni ishga tushiradi

## Alt+Shift+Down
- dublicate Windowsda

## Alt + Down
- qatorni pastga olib tushadi

## int main_1() = //
- implicit entry/start for main executable simbol(s) not found - asosiy kirish so'zi nomi o'zgarganligi tufayli sistema o'qiy olmaydi

## int
- integer type - butun sonli o'zgaruvchi, xotiradan 4B=32 bit joy egallaydi va shuning uchun ham integer deyiladi. (Int-32 bit)

## garbage value
- o'zgaruvchi yaratilsa-yu, unga qiymat berilmasa, uning qiymati unexpected bo'ladi.(4 bayt)

## float
- kasr - real sonli o'zgaruvchi, lekin butun sonlarni ham qabul qiladi va 1.0 ko'rinishiga aylantiradi. Nuqtadan keyin 6 ta son aniqlikda ishlaydi: 0.123456

## implicit conversion
- yashirin o'zgartirish jarayoni, masalan int a=1,9 berganda warning berib ogohlantiradi, ya'ni yashirin o'zgartirish jarayonida compiler butun sonli o'zgaruvchi borligi tufayli 1,9 ni 1 deb qiymatini o'zgartirayotganligidan userni ogohlantiradi.

## explicit conversion
- int a = (int)1,9 ogohlantirish bermasdan user orqali 1,9 avtomatik 1 ga aylanadi, foydalanuvchi o'zi (int) kiritayotganligi sababli warning bermaydi.

## cin
- terminalga input ma'lumotni kiritadi.

## long integer data type
- 64 bit=8 bayt va butun sonli o'zgaruvchi

## short integer data type
- 2 bayt - butun sonli o'zgaruvchi

## double
- floating data typega mansub- kasr sonli o'zgaruvchi. (8 bayt). Nuqtadan keyin 12 ta raqam aniqlikda ishlaydi

## char
- belgilar uchun ishlatiladigan o'zgaruvchi (1 bayt=8 bit), son uchun ishlatilmaydi, chunki sonlarni ASCII jadvalida belgi ko'rinishi mavjud. Belgilar bittalik tirnoq ichida yoziladi. Masalan, char belgi = 'a'. Bundan tashqari charni intga, intni charga convertatsiya qilsa bo'ladi, float va stringlar bilan bunday qilib bo'lmaydi, ya'ni _char belgi = 97_; deb berilsa terminalda a paydo bo'ladi yoki  _char belgi = b_; deb berilsa _cout << belgi / 3 << endl;_ (98/3)amalini bajarsa 32 paydo bo'ladi, chunki belgini qiymati butun son, butun sonni butun songa bo'lganda butun son qismini oladi qolganini tashlab yuboradi. Hosil bo'lgan natijani ham charga aylantirish uchun _cout << (char)(belgi / 3) << endl;_ amali bajarilsa natijani belgi ko'rinishida chop etadi. 

## ASCII table
- belgilarning son qiymati berilgan jadval. Masalan, A ning son qiymati - 65; a - 97, 0 - 48, ! - 33. (0-9 -> 48-57; A-Z -> 65-90; a-z -> 97-122.)

## a -> A
```cpp
  char belgi;
  cin >> belgi;
  cout << (char)(belgi - 32) << endl;
```
## A -> a
```cpp
  char belgi;
  cin >> belgi;
  cout << (char)(belgi + 32) << endl;
```

## iomanip
- representationni boshqaradigan kutubxona 

## setw(number)
- setwidth -iomanipda cout ichiga yoziladigan komanda bo'lib, terminalda umumiy nechta xonada chop etish uchun buyruq beradi. Masalan: cout << setw(5) << 123; (by default right-aligned - o'ng tomonga rostlangan) bo'lsa, 2 ta katak tashlab 123ni chop etadi, shunda umumiy 5 ta yacheyka print bo'ladi. 
- Agar cout << left << setw(15) << 123; deb buyruq berilsa, 123 dan so'ng 12 ta bo'sh yacheyka-space print qiladi, ya'ni sonlarni chap tarafda chop etish buyrug'i. 
- Agar cout << setw(2) << 123; bo'lsa ham 123 chop etadi, chunki setw qo'shimcha joy chop etish uchun qo'llaniladi, mavjud sonni qisqartirolmaydi.
- Faqat sonlarda emas stringlarda ham bir xil ishlaydi, masalan, cout << setw(10) << "Hello";

## setfill('char')
- setw hosil qilgan bo'shliqlarni qanday belgi bilan to'ldirishni buyruq beradi. 
- cout << setw(5) << setfill('0') << 123; -> 00123ni print qiladi. 
- cout << setw(10) << setfill('-')<< "Hello"; -> -----Hello .