c 1.pdf

7
Бүлэг 1 . 1 Бүлэг I Си хэлний элементүүд Аливаа хэл дээр бичигдсэн программ нь тухайн хэлний элементүүдийг ашиглан бичигддэг. Си хэл нь Үсэг Тогтмолууд Нэр (идентификатор) Түлхүүр үг Тайлбар гэсэн элементүүдээс тогтоно. Цагаан толгой Си хэл нь олон тооны үсэг, цифр, цэгэн тэмдэгтүүдээс тогтох бөгөөд эдгээр нь компиляторт тодорхойлогдсон байна. Том жижиг үсэг ялгаатай. Латин цагаан толгойн том, жижиг үсгүүд: (A, B, ..., Z, a, b, ..., z), Цифрүүд: (0-9) Идентификатор (нэр) Програмчлалын хэлэнд ашиглагдах функц, тэмдэг, хувьсагчийн нэр, функцийн операторын тэмдгийг зарлахад нэрийг хэрэглэнэ. Нэр нь үсгээр эхэлсэн хэд хэдэн дараалсан тэмдэгт байж болох бөгөөд 32 тэмдэгтээс ихгүй байна. Төрөл, Оператор, Илэрхийлэл Программд хувьсагч болон тогтмолууд нь өгөгдлийн үндсэн хэрэглүүр болдог. Хувьсагчийн төрөл, анхны утгыг нь олгож болно. Операторууд нь тэдгээрийн юу гүйцэтгэхийг зааж өгдөг. Илэрхийлэл нь хувьсагч болон тогтмолуудын хооронд үйлдэл хийж, тэдгээрийн шинж чанараас хамааран ямар үйлдэл хийхийг тодорхойлдог. Өгөгдлийн төрлүүд int Бүхэл тоон төрөл long Урт бүхэл тоо float Бодит тоон төрөл double Урт бодит тоон төрөл char Тэмдэгт болон тэмдэгт мөр төрөл struct Бүтэц төрөл /хэрэглэгчийн тодорхойлсон/ Програмын эх код-д тайлбар хийх аргачлал 1. Мөрөөр // энэ бол нэг мөр тайлбар 2. Олон мөрөөр /* Энэ завсар олон мөр тайлбар байж болно. */

Upload: myagmarsuren-mygaa

Post on 12-Jul-2016

29 views

Category:

Documents


14 download

TRANSCRIPT

Page 1: C 1.pdf

Бүлэг 1 .

1

Бүлэг I

Си хэлний элементүүд

Аливаа хэл дээр бичигдсэн программ нь тухайн хэлний элементүүдийг

ашиглан бичигддэг. Си хэл нь

Үсэг

Тогтмолууд

Нэр (идентификатор)

Түлхүүр үг

Тайлбар

гэсэн элементүүдээс тогтоно.

Цагаан толгой

Си хэл нь олон тооны үсэг, цифр, цэгэн тэмдэгтүүдээс тогтох бөгөөд эдгээр

нь компиляторт тодорхойлогдсон байна. Том жижиг үсэг ялгаатай. Латин

цагаан толгойн том, жижиг үсгүүд: (A, B, ..., Z, a, b, ..., z), Цифрүүд: (0-9)

Идентификатор (нэр)

Програмчлалын хэлэнд ашиглагдах функц, тэмдэг, хувьсагчийн нэр,

функцийн операторын тэмдгийг зарлахад нэрийг хэрэглэнэ. Нэр нь үсгээр

эхэлсэн хэд хэдэн дараалсан тэмдэгт байж болох бөгөөд 32 тэмдэгтээс ихгүй

байна.

Төрөл, Оператор, Илэрхийлэл

Программд хувьсагч болон тогтмолууд нь өгөгдлийн үндсэн хэрэглүүр

болдог. Хувьсагчийн төрөл, анхны утгыг нь олгож болно. Операторууд нь

тэдгээрийн юу гүйцэтгэхийг зааж өгдөг. Илэрхийлэл нь хувьсагч болон

тогтмолуудын хооронд үйлдэл хийж, тэдгээрийн шинж чанараас хамааран

ямар үйлдэл хийхийг тодорхойлдог.

Өгөгдлийн төрлүүд

int Бүхэл тоон төрөл

long Урт бүхэл тоо

float Бодит тоон төрөл

double Урт бодит тоон төрөл

char Тэмдэгт болон тэмдэгт мөр төрөл

struct Бүтэц төрөл /хэрэглэгчийн тодорхойлсон/

Програмын эх код-д тайлбар хийх аргачлал

1. Мөрөөр // энэ бол нэг мөр тайлбар

2. Олон мөрөөр /* Энэ завсар олон мөр тайлбар байж болно. */

Page 2: C 1.pdf

Дасгал бодлого

Хувьсагч ба тогтмолыг зарлах тухай

өгөгдлийн_төрөл хувьсагчийн_нэр;

int x, y, z; /*x, y, z нь int төрлийн хувьсагчууд*/

float a, b, c; /* a, b, c нь float төрлийн хувьсагчууд*/

double e, f; /* e, f нь double төрлийн хувьсагчууд*/

сhar ch,a; /* ch, a нь char төрлийн хувьсагчууд*/

const тогтмолын_төрөл тогтмолын_нэр = тогтмолын _утга;

const double E = 2.718282, e=2.832 ;

const long M = 99999999 ;

Үйлдлийн тэмдэг

Үйлдэл Тайлбар Үйлдэл Тайлбар

+ нэмэх /= Ноогдвор олгох

- Хасах ! Логик үгүйсгэл

* Үржих && Логик ба

/ Хуваах || Логик буюу

% Үлдэгдэлтэй хуваах ?: Нөхцөлт үйлдэл

++ Нэгээр нэмэгдүүлэх < Бага

+= Нийлбэр олгох <= Бага буюу тэнцүү

-- Нэгээр хорогдуулах >= Их буюу тэнцүү

-= Ялгавар олгох == Тэнцүү

*= Үржвэр олгох != Тэнцүү биш

Оролт гаралтын форматууд

Оролтын оператор - scanf( );

“%d” – int төрлийн бүхэл утга

“%ld” – long төрлийн урт бүхэл утга

“%c” – char төрлийн бүхэл утга

“%f” – float төрлийн бодит утга

“%lf” – double төрлийн бодит утга

Гаралтын оператор - printf( );

“%d” – int төрлийн бүхэл утга утга

“%ld” – long төрлийн урт бүхэл утга

“%c” – char төрлийн бүхэл утга

“%f” – float төрлийн бодит утга

“%lf” – double төрлийн бодит утга)

Page 3: C 1.pdf

Бүлэг 1 .

3

Шугаман алгоритмын дасгал бодлого № 1

1.1. Өгөгдсөн гурван оронтой тооны цифрүүдийн үржвэрийг ол.

Бодолт Тайлбар

#include <stdio.h>

#include <stdlib.h>

main()

{

int a,b,c,s,n;

printf("3-n orontoi

too oruulna uu=");

scanf("%d",&n);

a=n/100;

b=(n/10)%10;

c=n%10;

s=a*b*c;

printf("Tsifruudiin

urjwer=%d\n",s);

system("pause");

}

Тэмдэглэгээ:

a-зуутын орны цифр

b-аравтын орны цифр

c-нэгжийн орны цифр

n-өгөгдсөн гурван оронтой тоо

s- гурван оронтой n тооны цифрүүдийн

үржвэр

scanf("%d",&n); /*𝑎𝑏𝑐̅̅ ̅̅ ̅ ,n=100*a+10*b+c

хэлбэрийн тоо байна.*/ -гараас оруулсан гурван

оронтой тооны утгыг n хувьсагчид оноох

үйлдэл

a=n/100; /*n тоог 100-д хуваахад [𝑎, 𝑏𝑐̅̅ ̅̅ ̅̅ ]

хэлбэрийн тоо үүсэх бөгөөд a хувьсагчийг бүхэл

тоон төрлийн хувьсагч гэж зарласан учир

ноогдворын бүхэл хэсгийг авна. Үр дүнд а буюу

эхний цифр олдоно. */

b=(n/10)%10; /* n – тоог 10-т хуваахад

[𝑎𝑏, 𝑐̅̅ ̅̅ ̅̅ ] хэлбэрийн тоо үүсэх бөгөөд бүхэл хэсгийг

авахад ab хэлбэрийн тоо үүснэ.

(𝑎𝑏̅̅ ̅) хэлбэрийн тоог 10-т хуваахад

{𝑎, 𝑏̅̅ ̅̅̅} хэлбэрийн тоо үүсэх ба бутархай хэсгийг

авснаар b тоо буюу 10-тын орны цифр олдоно.

*/

printf("Tsifruudiin

urjwer=%d\n",s); -нэг мөрөнд багтаагүй хэсгийг

нэг мөрөнд оруулж бичихийг анхаарна уу?

printf("Tsifruudiin urjwer=%d\n",s);

1.2. Өгөгдсөн дөрвөн оронтой тооны цифрүүдийн үржвэрийг ол.

Бодолт Тайлбар

#include <stdio.h>

#include <stdlib.h>

main()

{

int n,s;

printf("4-n orontoi too oruulna uu=");

Тэмдэглэгээ:

n-өгөгдсөн 4

оронтой тоо

s-өгөгдсөн n

тооны цифрүүдийн

нийлбэр

Page 4: C 1.pdf

Дасгал бодлого

scanf("%d",&n);

s=(n/1000)+((n%100)/10)+((n/100)%10)+(n%10);

printf("Tsifruudiin niilber=%d\n",s);

system("pause");

}

s=(n/1000)+((n%100)/

10) +((n/100)%10)+

(n%10); цифрүүдийг

олох үйлдлийг

хураангуйлав.

1.3. Координатуудаараа өгөгдсөн гурван цэгийг холбосон гурвалжны

талбайг ол.

Бодолт Тайлбар

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

main() {

int p,AB,BC,AC,Ax,Ay,Bx,By,Cx,Cy,S;

printf("Ax="); scanf("%d",&Ax);

printf("Ay="); scanf("%d",&Ay);

printf("Bx="); scanf("%d",&Bx);

printf("By="); scanf("%d",&By);

printf("Cx="); scanf("%d",&Cx);

printf("Cy="); scanf("%d",&Cy);

AB=sqrt((Ax-Bx)*(Ax-Bx)+(Ay-By)*(Ay-By));

AC=sqrt((Ax-Cx)*(Ax-Cx)+(Ay-Cy)*(Ay-Cy));

BC=sqrt((Bx-Cx)*(Bx-Cx)+(By-Cy)*(By-Cy));

p=(AB+BC+AC)/2;

S=sqrt(p*(p-AB)*(p-AC)*(p-BC));

printf("Gurwaljnii talbai=%d\n",S);

system("pause"); }

Тэмдэглэгээ:

p-хагас периметр

AB,BC,AC-гурвалжны

талууд

Ax,Ay- A цэгийн

координат

S-гурвалжны талбай;

#include <math.h>-

математик функцийн сан

sqrt()-квадрат язгуур

гаргах үйлдэл

AB=sqrt((Ax-Bx)*(Ax-

Bx)+(Ay-By)*(Ay-By));

Гурвалжны талуудыг хоѐр

цэгийн хоорондох зай олох

аргаар олно.

S=sqrt(p*(p-AB)*(p-

AC)*(p-BC)); Гурвалжны

талбайг Героны томъѐо

ашиглан олов.

1.4. Трапецийн дээд, доод суурь болон өндөр өгөгдсөн бол талбайг ол.

Бодолт Тайлбар

#include <stdio.h>

#include <stdlib.h>

main() {

int a,b,h,s;

printf("a="); scanf("%d",&a);

printf("b="); scanf("%d",&b);

printf("h="); scanf("%d",&h);

s=((a+b)/2)*h;

Тэмдэглэгээ:

a-трапецийн дээд суурь

b-трапецийн доод суурь

h-трапецийн өндөр

s-трапецийн талбай

Page 5: C 1.pdf

Бүлэг 1 .

5

printf("s=%d\n",s);

system("pause"); }

1.5. Ромбын талууд өгөгдсөн бол талбайг ол.

Бодолт Тайлбар

#include <stdio.h>

#include <stdlib.h>

main() {

int d1,d2,s;

printf("d1="); scanf("%d",&a);

printf("d2="); scanf("%d",&b);

s=(a*b)/2;

printf("s=%d\n",s);

system("pause");}

Тэмдэглэгээ:

d1-ромбын 1-р диагональ

d2-ромбын 2-р диагональ

s-ромбын талбай

1.6. Тэгш өнцөгтийн талууд өгөгдсөн бол талбайг ол.

Бодолт Тайлбар

#include <stdio.h>

#include <stdlib.h>

main()

{

int a,b;

printf("a="); scanf("%d",&a);

printf("b="); scanf("%d",&b);

printf("s=%d \n p=%d\n",a*b,

(a+b)/2);

system("pause");

}

Тэмдэглэгээ:

a-тэгш өнцөгтийн урт

b-тэгш өнцөгтийн өргөн

printf("s=%d \n

p=%d\n",a*b,(a+b)/2); тэгш

өнцөгтийн талбай ба периметрийг

шууд тооцоолон хэвлэх үйлдэл

1.7. Өгөгдсөн натурал дөрвөн оронтой тооны зуутын орныг мянгатын

оронтой харьцуулсан харьцааг ол.

Бодолт Тайлбар

#include <stdio.h>

#include <stdlib.h>

main()

{

int n,a,b;

printf("4-orontoi too oruulna uu=");

scanf("%d",&n);

a=n/1000;

b=(n/100)%10;

Тэмдэглэгээ:

n-өгөгдсөн 4 оронтой тоо

a-өгөгдсөн n тооны

мянгатын орны цифр

b-өгөдсөн n тооны

зуутын орны цифр

Page 6: C 1.pdf

Дасгал бодлого

printf("Zuutiin orniig myangatiin orond

haritsuulbal=%d\n",b/a);

system("pause"); }

1.8. Өгөгдсөн натурал n тооны сүүлчийн цифрийг ол.

Бодолт Тайлбар

#include <stdio.h>

#include <stdlib.h>

main()

{

int n;

printf("n=");

scanf("%d",&n);

printf("Suuliin ornii tsifr=%d\n",n%10);

system("pause");

}

Тэмдэглэгээ:

n-өгөдсөн натурал тоо

printf("Suuliin ornii

tsifr=%d\n",n%10); n – тоо

хэдэн оронтой байсан ч

ялгаагүй

10-т хувааж бутархай хэсгийг

авахад нэгжийн орны цифр

олдоно.

1.9. Өгөгдсөн гурван тооны арифметик дунджийг ол.

Бодолт Тайлбар

#include <stdio.h>

#include <stdlib.h>

main()

{

int a,b,c;

printf("a="); scanf("%d",&a);

printf("b="); scanf("%d",&b);

printf("c="); scanf("%d",&c);

printf("Arifmetik dundaj=%d\n",(a+b+c)/3);

system("pause");

}

Тэмдэглэгээ:

a,b,c-өгөгдсөн тоонууд

𝑎1+𝑎2+𝑎3+...+𝑎𝑛

𝑛-

aрифметик дундаж

1.10. Өгөгдсөн хоёр тооны геометр дунджийг ол.

Бодолт Тайлбар

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

main()

{

int a,b,k;

printf("a="); scanf("%d",&a);

printf("b="); scanf("%d",&b);

Тэмдэглэгээ:

a,b-өгөгдсөн тоонууд

k-өгөгдсөн a,b тоонуудын

геометр дундаж

√𝑎1 ⋅ 𝑎2 ⋅ 𝑎3 ⋅. . .⋅ 𝑎𝑛𝑛 - геометр

дундаж

Page 7: C 1.pdf

Бүлэг 1 .

7

k=sqrt(a*b);

printf("Geometr dundaj=%d\n",k);

system("pause");

}

1.12. Координатууд нь өгөгдсөн 2 цэгийн дундаж цэгийн координатыг ол.

Бодолт Тайлбар

#include <stdio.h>

#include <stdlib.h>

main()

{

int Ax,Ay,Bx,By,Cx,Cy;

printf("Ax="); scanf("%d",&Ax);

printf("Ay="); scanf("%d",&Ay);

printf("Bx="); scanf("%d",&Bx);

printf("By="); scanf("%d",&By);

printf("Dundaj tsegiin koordinat:\n");

Cx=(Ax+Bx)/2; Cy=(Ay+By)/2;

printf("Cx=%d\n Cy=%d\n", Cx,Cy);

system("pause");

}

Тэмдэглэгээ:

Ax,Ay-A цэгийн координатууд

Bx,By-B цэгийн координатууд

Cx,Cy-C цэгийн координатууд