Axborotlashtirish va telekommunikatsiya texnologiyalari davlat komiteti toshkent axborot texnologiyalari universiteti


Download 0.6 Mb.
Pdf ko'rish
bet5/5
Sana03.06.2020
Hajmi0.6 Mb.
#113527
1   2   3   4   5
Bog'liq
c tilida katta sonlar bilan ishlash


     Funksiyalarning qo‘llanilishi.  Funksiyalar yo void tipidagi, yo   boshqa biror 

bir tipdagi qiymat qaytaradi. Ikkita butun sonni qo‘shib, ularning yig‘indisini 

qaytaradigan funksiya   butun qiymat qaytaruvchi   deyiladi. Faqatgina   qandaydir 

amallarni bajarib, hech qanday qiymat qaytarmaydigan funksiyaning qaytaruvchi 

tipi void  deb e’lon qilinadi. Funksiya sarlavha va tanadan iboratdir. Funksiya 

sarlavhasida   uning qaytaradigan tipi, nomi va parametrlari aniqlanadi. 

Parametrlar  funksiyaga qiymat  uzatish uchun ishlatiladi. 

Masalan: Funksiyani  chaqirilishiga misol. 



1:       # include  < iostream > 

2:       //namoyish funksiyasi ekranga 

3:       // axboro tma’lumot chiqaradi. 

4:       void namoyish funksiyasi () 

5:       { 

6:       cout<< “\nnamoyish funksiyasi chaqirildi\ n; 

7:       } 

8:       //main() funksiyasi oldin axborot chiqaradi va 

9:       // namoyish funksiyasini chaqiradi 

10:   // Keyin yana namoyish funksiyasini chaqiradi 

11:   int main() 

12:   { 

13:    cout << “\ n Bu main() funksiyasi \ n”; 

14:   namoyish funksiyasi (); 

15:   cout << “main() funksiyasiga qaytildi\n”; 

16:   return 0; 

17:   } 

NATIJA: 

Bu main() funksiyasi namoyish funksiyasi chaqirildi va so‘ng main() funksiyasiga 

qaytildi. 

    Parametr-bu funksiyaga uzatiladigan qiymat tipini   e’lon qilishdir. Funksiya 

chaqirilganda unga uzatiladigan qiymat argument deb aytiladi. Ko‘pchilik 

dasturchilar bu ikkala tushunchani sinonim sifatida   qarashadi. Ba’zilar esa bu 

terminlarni aralashtirishni noprofessionallik deb hisoblaydi. Mavzularda ikkala 

termini bir xil ma’noda   kelgan.  Funksiya tanasi ochiluvchi figurali qavs bilan 

boshlanadi va u bir necha qatordan iborat bo‘lishi mumkin. (Funksiya tanasida 

hech qanday satr bo‘lmasligi ham mumkin). Satrlardan keyin esa yopiluvchi 

figurali qavs keladi. Funksiyaning vazifasi uning satrlarida berilgan dasturiy kodlar 

bilan aniqlanadi. Funksiya dasturga return operatori orqali qiymat qaytaradi. Bu 

operator funksiyadan chiqish ma’nosini  ham anglatadi. 

Agarda funksiyaga chiqish operatorini (return) qo‘ymasak funksiya satrlarini 

tugashi bilan u avtomatik void tipidagi qiymatni qaytaradi. Funksiya qaytaradigan 

tip uning sarlavhasida ko‘rsatilgan tip bilan bir xil bo‘lishi lozim. Bundan tashqari 

bizga uchburchakning ma’lum parametrlariga ko‘ra noma’lum parametrlarini 



topish kerak bo‘lsin. Masalan: Ixtiyoriy uchburchakning 3  ta (a,b,c) tomonlari 

berilgan bo‘lsin, qolgan 7 ta noma’lum parametrlarini aniqlash dasturini tuzing. 

Dasturi: 

#include  

#include  

using namespace std

void main() 

{     double pi=3.14159265; 

double a=3,b=4,c,A,B,C=pi/4,r,R,p,S; 

c=sqrt(a*a+b*b-2*a*b*cos(C)); 

A=asin((a/c)*sin(C)); 

B=asin((b/c)*sin(C)); 

p=(a+b+c)/2; S=a*b*sin(C)/2; 

r=S/p; R=a*b*c/(4*S); 

cout<<“Yarim perimetr:p= ”   <


cout<<“Alfa burchak :  A= ” <

cout<<“Beta burchak :  B= ” <

cout<<“c tomon uzunligi: c= ” <

cout<<“Ichki aylana radiusi:r= ” <

cout<<“Tashqi aylana radiusi: R=” <

cout<<“Yuzi: S= ” <

getchar(); 



  

Ishorali va ishorasiz tiplar.  Dasturda qo‘llaniladigan butun sonli tiplar ishorali 

va ishorasiz bo‘lishi mumkin. Ba’zan o‘zgaruvchi uchun faqatgina musbat sonni 

qo‘llash foydali bo‘ladi. Unsingned kalitli so‘zsiz keltirilgan butun sonli tiplar 

(short va long)   ishorali hisoblanadi. Ishorali butun sonlar manfiy va musbat 

bo‘lishi mumkin. Ishorasiz sonlar   esa doimo musbat bo‘ladi.

 

O‘zgaruvchilarning 

tayanch toifalari.  C/C++ tilida boshqa berilganlar toifalari ham qaralgan. Ular 

butun sonli, haqiqiy va belgili bo‘lishi mumkin. Haqiqiy o‘zgaruvchilar kasr 

ko‘rinishda ifodalanuvchi qiymatlarni ham o‘zida saqlaydi. Belgili o‘zgaruvchilar 

bir bayt   joy egallaydi va 266 ta belgi hamda ASCII   belgilarni saqlash uchun 

ishlatiladi.

 

ASCII belgilari deganda kompyuterlarda qo‘llaniladigan standart belgilar to‘plami 

tushuniladi. ASCII –  bu   American Standard   Code for Information Interchange ( 

Amerikaning axborot almashinishi uchun standart kodi) degan ma’noni anglatadi. 

Kalit so‘zlar. C/C++ tilida ayrim so‘zlar oldindan zahiralanadi. Bular kalitli so‘zlar 

deb aytiladi. Bunday so‘zlarni o‘zgaruvchilarni nomlashda ishlatish mumkin emas. 

Ularga   if, while, for  va main  kabi so‘zlar kiradi. Kompilyatorning texnik 

hujjatlarida barcha zahiralangan so‘zlarning ro‘yxati turadi. 



  O‘zgaruvchiga qiymat berish.  O‘zgaruvchilarga  qiymat berish uchun 

o‘zlashtirish operatori qo‘llaniladi.  Masalan,   Width o‘zgaruvchisiga 5 qiymatni 

berish uchun quyidagilarni yozish lozim: 

unsigned short Width; 

Width = 5; 


Bu  ikkala satrni Width o‘zgaruvchisini aniqlash jarayonida birgalikda yozish 

mumkin. 


unsigned short Wigth = 5; 

Bir necha  o‘zgaruvchilarni aniqlash vaqtida ham ularga qiymat berish mumkin: 



long widt h=5,  length=7; 

Bu misolda   long tipidagi   width o‘zgaruvchisi 5 qiymatni, shu tipdagi length 

o‘zgaruvchisi   esa 7 qiymatni qabul qildi. Quyidagi   dasturda o‘zgaruvchilarni 

aniqlashga oid misolni qaraymiz. 

O‘zgaruvchilarning  qo‘llanishi. 

1:       # include < iostream > 

2:       int main() 

3:       { 

4:       int Bo‘yi=5, Eni=10,Yuzasi; 

5:       cout << “Bo‘yi:” <

6:       cout << “Eni:” << Eni << endl; 

7:       Yuzasi= Bo‘yi*Eni; 

8:       cout << “Yuzasi:” << Yuza << endl; 

9:       return 0; 



NATIJA: 

Bo‘yi: 5 

Eni: 10 

Yuzasi: 50 

typedef kalitli so‘zi unsigned short int  kabi kalit so‘zlarni ko‘p martalab dasturda 

yozilishi zerikarli va   diqqatvozlik keltirishi sababli C/C++ tilida bunday tiplarni 

typedef kalitli so‘zi yordamida psevdonimini (taxallusini) tuzish   imkoniyati 

berilgan. typedef  so‘zi toifani aniqlash ma’nosini bildiradi. Psevdonim tuzishda 

toifaning nomi yangi tuziladigan toifa nomidan farqli bo‘lishi lozim. Bunda 

birinchi typedef kalitli so‘zi, keyin mavjud toifa nomi, undan so‘ng esa yangi nom 

yoziladi. Masalan: 



typedef unsigned short int  ushort 

Bu satrdan so‘ng u  short nomli yangi toifa hosil bo‘ladi va u qayerda unsigned 

short int tipidagi o‘zgaruvchini aniqlash lozim bo‘lsa, shu joyda ishlatiladi. Ushbu 

dasturda  typedef operatori orqali toifalarning aniqlanishi keltirilgan. 



#include 

 

typedef  insigned short int ushort 



int main() 

{ ushort Bo‘yi = 5; 

ushort Eni = 10; 

ushort Yuzasi = Bo‘yi* Eni; 

cout << “Yuzasi:” << Yuzasi << endl; 



NATIJA: 

Yuzasi: 50 

  Belgili o‘zgaruvchilar odatda bir bayt joyni egallaydi va bu 256 xil belgini 

saqlash uchun yetarlidir. Char tipi qiymatlarini 0..255 sonlar to‘plamiga yoki 

ASCII belgilar to‘plamiga interpretatsiya qilish mumkin. 

Maxsus belgilar.  C/C++ kompilyatori matnlarni formatlovchi bir nechta maxsus 

belgilardan tashkil topgan. Ulardan eng ko‘p tarqalgani (3-  jadvalda keltirilgan). 

Bu belgilarni dasturda ishlatishda «teskari slesh»dan foydalanamiz. Teskari 

sleshdan keyin boshqaruvchi belgi yoziladi. Masalan, tabulyatsiya   belgisini 

dasturga qo‘yish uchun quyidagi yozuvni yozish kerak: 

Char tab =‘\t’; 

Bu misoldagi char tipidagi o‘zgaruvchi \t qiymatini qabul qiladi. Maxsus belgilar 

axborotlarni ekranga, faylga va boshqa chiqarish qurilmalariga chiqarishda 

formatlash uchun  qo‘llaniladi. 

  

3-jadval. 



Belgilar 

Qiymati 


\n\t\b 

\” 


\’ 

\? 


\\ 

Yangi satrga o‘tish.Tabulyatsiya.Bitta pozitsiyaga o‘tish 

Ikkitalik qavscha 

Bittalik qavscha 

So‘roq belgisi 

Teskari slesh 

  

   O‘zgarmaslar. O‘zgaruvchilar kabi o‘zgarmaslar ham ma’lumotlarni saqlash 

uchun mo‘ljallangan xotira yacheykalarini o‘zida ifodalaydi.  O‘zgaruvchilardan 

farqli ravishda ular dasturni bajarilishi jarayonida qiymati o‘zgarmaydi. O‘zgarmas 

e’lon qilinishi bilan unga qiymat berish lozim,  keyinchalik bu qiymatni o‘zgartirib 

bo‘lmaydi. C/C++ tilida ikki turdagi, literal va belgili o‘zgarmaslar aniqlangan. 

    Literal o‘zgarmaslar. Literal o‘zgarmaslar to‘g‘ridan-to‘g‘ri dasturga kiritiladi. 

Masalan: 



int myAge =39; 

Bu ifodada MyAge inttoifadagi o‘zgaruvchi,  39 soni esa literal o‘zgarmasdir. 



    Belgili o‘zgarmaslar.  Belgili o‘zgarmas – bu nomga ega bo‘lgan o‘zgarmasdir. 

C/C++ tilida belgili o‘zgarmasni aniqlashning ikki usuli mavjud:  

# define  direktivasi yordamida o‘zgarmasni aniqlash. 

const kalitli so‘zi orqali o‘zgarmasni aniqlash. 



 

 

 

 

 

 

 

 

Xulosa. 

    Kurs ishi 3 ta qismdan iborat bo’lib. Ular: Kirish, asosiy qism va xulosa. Daslap 

kirish qismida  C++ tilining kelip chiqishi va uning asosini solubchilar haqida aytip 

o’tganman. C++ tilining eng ason bo’lgan taraplari haqida ham jozdim va misollar 

bilan ko’rsatim. 2-  qismi, asosiy qism bo’lip, bu qismda C++ tilining asosiy 

tiplarini, amallari, funktsiyalar, o’zgaruvshilar  va o’zgarmaslar  haqida umumiy 

tushuncha kiritim.   

     Xulosa o’rnida shuni atap o’tadigan bo’lsam. Man bu kurs ishimning mavzusida 

o’zimga kerak bo’lgan va asosiysi zarur bo’lgan tushunchalarga ega bo’ldim. C++ 

tilining ahamiyatini, uning qo’llanilish usullari, unda foydalaniladigan 

tushunchalar haqida umumiy tushunchaga ega bo’ldim. C++ tilida qo’llaniladigan 

butun va katta sonlarding qay joylarda qo’llanilishi, ulardan foydalanilish usullari 

va yozilishga ham ahamiyat qaratish kerakligi haqida bildim.  

      


     Man bu kurs ishimning davomi sifatida C++ tilida katta sonlar ustida ishlashga 

oid bir necha misollar keltirip o’tgan. Bu misollarni Code Blocksda ishlap shiqtim.     



 

 

 

 

 

 

 

 

 

 

 

Amaliy mashg’ulotlar. 

    1-misol.Ushbu dasturda cout ob’ektini qo‘llanilishi keltirilgan. 

 

Natija: 


 

 

 



 

   2-misol.Tayanch toifalar uchun kompyuter xotirasidan ajratiladigan baytlarni 

aniqlash. 

 

 

 



   Natija: 

 


 

 

  



3-misol.Yuqoridagi solishtirish operatorlarini ishlatadigan bir dasturni ko'raylik. 

  

 



 

  

  Natija: 



 

 

 



4-misol.

   

Ikki butun musbat son M va N larning eng katta umumiy bo’luvchisi 

(EKUB) ni aniqlang. 

 

 

 

 


Borland C++ Builder da dasturu: 

 

 



//--------------------------------------------------------------------------- 

// Valieva Aziza 2-a Kasbiy talim. 

#include  

#pragma hdrstop 

 

#include "Unit1.h" 



//--------------------------------------------------------------------------- 

#pragma package(smart_init) 

#pragma resource "*.dfm" 

TForm1 *Form1; 

//--------------------------------------------------------------------------- 

__fastcall TForm1::TForm1(TComponent* Owner) 

        : TForm(Owner) 



//--------------------------------------------------------------------------- 

void __fastcall TForm1::Button1Click(TObject *Sender) 



int m,n,x,y; 

m=StrToInt(Edit1->Text); 

n=StrToInt(Edit2->Text); 

x=m; y=n; 

A: 


if(x=y)goto B; 

if(x>y) x=x-y; 

if(x

goto A; 


B: Edit3->Text=IntToStr(x); 

//--------------------------------------------------------------------------- 



 

 

 



 

 

 

Foydalanilgan adabiyotlar. 

1. 


К .Паппас, У. Мюррей “Программирование на С и С++”, Киев ,2000. 

2. 


Атымтаева  Л.Б.  “Объектге  бағытталған  программалау  негиздери”.  А: 

«Қазақ университети», 2005 

3. 

Климова Л.М. “С++ Практическое программирование”. Москва,  2001г 



Франка П. “С++ учебный курс”. Санкт-Петербург: ЗАО «Издательство 

Питер», 1999 

4. 

Бьярн  Страуструп.  “Язык  программирования  С++”.  Киев:  Диасофт, 



1993-

1,2 часть.  

5. 

Павловская  Т.А.  “С/С++  программирование  на  языке  высокого 



уровня”. Санкт-Петербург, 2002г. 

6.   


П. Лукас. “С++ под рукой”. – Киев: НПИФ «ДиаСофт», 1993. 

 

 



        Internet saytlari. 

www.google.ru

 

www.ziyonet.uz

 

http://dasturim.uz

 

http://uzmaster.ru/topic571

 

 

 

 

Download 0.6 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5




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