CS200 Лекц 3 дээр хийсэн жишээ кодууд

#include<stdio.h>
#include<stdlib.h>
int main()
{
int counter = 1;
int a=5;
while ( counter <= 10 ) {
printf( “%d\n”, counter );
++counter;
}

system(“pause”);
return 0;
}

Дэлгэрэнгүй орж үзнэ үү…

Continue reading

CS200 Лаб – 3

Нөхцөл шалгах үйлдэл

Лабораторын ажлыг гүйцэтгэх заавар

1. Онолын хэсгийг уншина.

2. Жишээ програм-ыг уншиж, ойлгоод DevC дээр бичиж, ажиллуулж үзнэ.

3. Жишээ програм-д өөрчлөлт оруулах замаар Даалгаварт зориулсан програмыг бичиж, ажиллуулна.

4. Програмын файлаа сайт руу илгээнэ (Хуудасны доод хэсэгт байгаа Upload товч).

5. Лабораторын багш дээрээ очиж програмынхаа талаар асуугдана (асуугдаагүй тохиолдолд оноо тавигдахгүй).

Лабораторын багшаас хичээлтэй  холбогдолтой зүйлийг чөлөөтэй асууж болно.

Онолын хэсэг

Си хэлэнд нөхцөл шалгах if болон if…else үйлдлүүдийг ашигладаг. if нөхцөл шалгах үйлдлийг ашиглах хэлбэрийг доор үзүүлэв:

if(нөхцөл){

нөхцөл үнэн тохиолдолд биелэгдэх үйлдэл(үүд);

}

if үйлдлийн хувьд нөхцөл худал байхад ямар ч үйлдэл хийлгүйгээр удирдлагыг програм дахь дараагийн мөрт шилжүүлнэ.

if…else үйлдлийг хэрэглэх хэлбэр:

if(нөхцөл){

нөхцөл үнэн тохиолдолд биелэгдэх үйлдэл(үүд);

}

else{

нөхцөл худал тохиолдолд биелэгдэх үйлдэл(үүд);

}

if…else нөхцөл шалгах үйлдэл нь if-ийг бодвол илүү тэгш хэмтэй үйлдэл юм. Нөхцөл шалгах үйлдлийн тухай болон нөхцлийг яаж бичих талаар Лекц №2-ын үзүүлэнгээс дэлгэрэнгүй уншаарай.

Жишээ програм

а, b хоёр бодит (бутархай) тоо өгөгдсөн бол тэдгээрийн ихийг нь олж хэвлэх програм.

#include <stdio.h>

#include <stdlib.h>

int main(){

float a, b, max;

scanf(“%f%f”, &a, &b);

max=a;

if(max<b)

max=b;

printf(“%f”, max);

system(“pause”);

return 0;

}

Тайлбар

float a, b, max;

a, b болон max гэсэн дан нарийвчлалтай бутархай тоон хувьсагчдыг зарлаж байна. Дан нарийвчлалтай бутархай тоо гэдэг нь таслалаас хойш зөвхөн 6 орны нарийвчлалтай тооцоо хийхэд тохиромжтой өгөгдлийн төрөл юм. Санах ойд 4 байт зайг эзлэнэ.

max нэмэлт хувьсагчид тухайн үед хамгийн их гэж тооцогдож байгаа утгыг хадгалах болно.

scanf(“%f%f”, &a, &b);

Гараас дан нарийвчлалтай бутархай тоон утга авахын тулд scanf функцийн хэлбэржүүлэлтийн тэмдэгт мөр дотор %f гэсэн хослолыг ашиглана.

max=a;

Хоёр тооны хамгийн ихийг нь олохын тулд эхний үед а тоог нь их байна гэж үзэж байна. Одоохондоо b хувьсагчийн утгыг шалгаж үзээгүй байгаа тул а тоог ганцаараа байгаа гэж тооцох ба ганц тооны хувьд өөр өрсөлдөгчгүйгээр хамгийн их утга  нь өөрөө байх болно.

Дараа нь a-г b-тэй харьцуулахад а нь их гэж гарвал бидний анхны утга олголт үнэн байх тул зүгээр л max хувьсагчийн утгыг хэвлэх юм.

if(a<b)

max=b;

Одоо b хувьсагчийн утгыг авч үзэж байна. Энэ үед а тоо нь b тооноосоо бага байвал энэ хоёр тооны хамгийн их нь b болох тул max хувьсагчийн утгыг шинэчилэх хэрэгтэй болно.

printf(“%f”, max);

Энэ мөр биелэгдэх үед хоёр хувьсагчийн аль ихийнх нь утга max хувьсагчид олгогдсон байх болно.

Даалгавар

a, b, c гэсэн гурван бодит тоо өгөгдсөн бол тэдгээрээс хамгийн ихийг нь олж хэвлэ.

Жич: Уг лабораторын ажлыг лабораторын хичээлийн цагт багтаан асуугдах ёстой.

CS200 Лаб 2-ын удирдамж

Хувьсагч зарлан ашиглах

Лабораторын ажлыг гүйцэтгэх заавар

1. Онолын хэсгийг уншина.

2. Жишээ програм-ыг уншиж, ойлгоод DevC дээр бичиж, ажиллуулж үзнэ.

3. Жишээ програм-д өөрчлөлт оруулах замаар Даалгаварт зориулсан програмыг бичиж, ажиллуулна.

4. Програмын файлаа сайт руу илгээнэ.

5. Лабораторын багш дээрээ очиж програмынхаа талаар асуугдана.

Онолын хэсэг

Хувьсагч зарлан ашиглах нь бараг бүх програмын хувьд зайлшгүй хийгддэг. Си хэлэнд хувьсагчийг дараах хэлбэрээр зарлана:

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

Бидний үзэх хамгийн эхний хувьсагчийн төрөл нь бүхэл тоон төрөл ба түүнийг int түлхүүр үгээр тэмдэглэнэ (өнцөгтэй хаалтыг бичихгүй, энэ нь зарлалтанд заавал оролцох хэсгийг үзүүлэхэд хэрэглэгдэнэ).

Хувьсагч зарлалтын жишээ:

int a;

Бүхэл тоон төрлийн нэг хувьсагч нь санах ойд дөрвөн байт зай эзлэх ба бусад төрлүүд мөн өөр өөрийн хэмжээтэй байна. Иймд ямар төрлийн, хэдэн хувьсагч зарлах нь тухайн програмын хэрэглэх санах ойн хэмжээтэй холбоотой байна.

Хувьсагчдын гол үүрэг нь ямар нэг утгыг богино болон урт хугацаагаар хадгалах, утгаа шинэчлэх явдал юм.

Жишээ програм

a, b бүхэл тоо өгөгдсөн бол тэдгээрийн нийлбэрийг хэвлэх програм.

#include <stdio.h>

#include <stdlib.h>

int main(){

int a, b;

scanf(“%d%d”, &a, &b);

printf(“%d”, a+b);

system(“pause”);

return 0;

}

Тайлбар:

#include <stdlib.h>

stdlib.h санг зарлаж байна. Учир нь энэ прорамд system гэсэн функцийг нь хэрэглэж байгаа.

int a, b;

a, b гэсэн хоёр бүхэл тоон хувьсагч зарлаж байна. Хувьсагч зарлана гэдэг нь тухайн хувьсагчид зориулан санах ойд зай нөөцөлж байна гэсэн үг юм. int буюу бүхэл тоон хувьсагч нь санах ойд дараалсан 4 байтын мужийг эзэлнэ. Энд зөвхөн санах ой хуваарилах ажиллагаа л явагдах ба хувьсагчийн утга тодорхой болоогүй байна (уг 4 байт санах ойд өмнө нь байсан утгыг авна).

scanf(“%d%d”, &a, &b);

Гараас  хоёр бүхэл тоо унших үйлдэл. scanf функц нь stdio.h санд байх ба гараас хэрэглэгчийн оруулсан утгыг хэлбэржүүлэлттэйгээр уншина. “%d” гэсэн тэмдэгт мөр нь аравтын тооллын систем дэх нэг бүхэл тоо гараас орж ирнэ гэсэн хэлбэржүүлэлтийн тэмдэгт мөр юм (d – decimal – аравт). Хэлбэржүүлэлтийн тэмдэгт мөрийн араас түүнд орсон %d-гийн тоогоор хувьсагчдын нэрсийг жагсаан бичсэн байна. Хувьсагчийн нэрийн өмнө байгаа & тэмдэгтийг хаяг авах үйлдэл гэнэ. Ингэснээр гараас орж ирсэн тоог тухайн хувьсагчийн санах ойн хаяг руу бичихэд хэрэглэгдэх хаягнууд бэлэн болно.

printf(“%d”, a+b);

Хэлбэржүүлэлттэйгээр хэвлэх функц. %d нь мөн нэг бүхэл тоо хэвлэгдэхийг заах ба бүхэл тоо нь a+b гэсэн илэрхийллийн утга байна. scanf функцээс ялгарах нэг зүйл нь хаяг авах үйлдэл (&) хэрэглэдэггүй.

system(“pause”);

system функц нь системийн командыг биелүүлнэ. Бидний програм Windows үйлдлийн систем дээр ажиллаж байгаа ба энэ функцийг хэрэглээгүй үед хоёр тооны нийлбэрийг хэвлэнгүүтээ дуусах болно. Энэ нь програмын үр дүнг харах хангалттай хугацааг хэрэглэгчид өгч чадахгүй. Иймд “түр зогсоох” (pause) командыг өгснөөр програмын цонх хаагдахгүй, ямар нэг товч дартал хүлээнэ.

Даалгавар

Кубын ирмэгийн урт болох а бүхэл тоо өгөгдсөн бол уг кубын хажуу гадаргуугийн талбайг ол. Хажуу гадаргуу гэдэг нь дээд, доод талсуудаас бусад талс юм.

Жич: Уг лабораторын ажлыг лабораторын хичээлийн цаг багтаан асуугдах ёстой.

Ашигласан материал

1. Програмчлалын үндэс хичээлийн Лекц №2

2. Програмчлалын үндсэн аргууд. 2010 он.