Қосымша әдебиеттер
1. Жүнісбеков, Ж.С. Программалау есептерін шығару практикумы Шымкент -2018ж
2. Балғанова, М.С. Программалау есептерін шығару практикумы Шымкент-2018
Лекция 11,12
Си тілінде бағдарламалау
Жоспар: Си бағдарламалау жүйесіне кіріспе. Процессордың директивасы. Бағдарламалау жүйесінің құрылымы, тілдің элементтері. Мәліметтер типтері: int, short, long, double. Баяндау. Өрнектер мен меншіктеу. Си тілінің операциялары. Си тілінің операторлары. Шартты оператор. Цикл операторлары. Таңдау операторы. Енгізу-шығару функциялары. Функциялар. Функцияның анықтамасы, баяндау. Функцияның мысалдары. GOTO, Break, Continue операторлары. Қолдану мысалдары. Жады класстары: автоматты, статикалық, сыртқы, регистрлік айнымалылары. Мысалдар. Сілтемелер және адрестік арифметика. Жадыны ұйымдастыру және адресті сілтеу.
Кез келген Си бағдарламасы бір немесе бірнеше “функциялардан”, яғни ол жиналатын негізгі модульдерден тұрады.Си тіліндегі бағдарламаның қарапайым мысалын келтіреміз.
#include < stdio.h> /* препроцессордың директивалары */
main( ) /*аргументі бар функцияның аты */
{ int m; /* сипаттау операторы */
m=1; /* меншіктеу операторы */
printf (“%d нач. знач. \n “ , m); } /* шығару функцияның шақыру операторы*/
Препроцессордың командалық қатарлары (директивалар)
Си препроцессорі бағдарламаның алғашқы мəтінін соңғысы компилятордың кірісіне түспес бұрын Си тіліне өңдейді. Препроцессор бүкіл макро шақыруларды кеңейтеді жəне бүкіл сыртқы файлдарды қояды.
Препроцессор командасын белгілеуге # символы қолданылады.
Мысалы:
#defіne - макроны анықтау;
#іnclude - сыртқы файлдан мəтін қою;
#іnclude - stdіo.h (стандартты кіріс/шығыс) файлдарынан мəтін қою үшін.
(қойылатын файлдар кітапханаға қосылған функциясымен интерфейстерді суреттеуден тұрады).
- математикалық функция.
Сонымен, бағдарлама бір немесе бірнеше функциялардан тұрады, тіпті олардың біреуі міндетті түрде maіn() болып аталуы керек. Функцияларды суреттеу тақырыбынан жəне денесінен тұрады. Тақырып өз кезегінде #іnclude жəне т.б. түрдегі препроцессор директивалардан жəне функция атынан тұрады. Функция атының өте жақсы белгісі ретінде дөңгелек жақшалар қызмет атқарады, тіпті аргумент, жалпы айтқанда, болмауы мүмкін. Функция денесі жүйелі жақшаға алынған жəне əрқайсысы “;” символымен аяқталатын операторлар жиынтығынан береді.
Си тіліндегі мəліметтер типтері. Си тілінде бірнеше негізгі мəліметтер типтерін қолдану негізделген. Си тілі стандартында əр түрлі мəліметтер типтеріне нұсқайтын жеті кілтті сөздер қолданылады. Осы кілтті сөздер тізімін келтірсек: іnt, long, short, unsіgned, char, float, double.
Бірінші төрт кілтті сөздер бүтін сандарды, яғни ондық түбір бөлігінсіз бүтін санды білдіруге пайдаланады. Олар бағдарламада бөлек немесе кейбір бірігулерден, мысалға unsіgned short сияқты пайда болуы мүмкін. Char сөзі əріптерге жəне кейбір өзге символдарға, жəне де #, $, % жəне & сияқтыларға көрсету үшін арналған. Соңғы екі кілттік сөздер ондық нүктелі сандарды ұсынуға қолданылады.
Іnt, short, long типтері. Бұл типтердің мəліметтері “таңбалы сан”, яғни мұндай типті айнымалылар алатын мəні тек қана оң, теріс сандар жəне нөл саны бола алады. Бір бит таңбасы жоқ санның таңбасын көрсету үшін пайдаланылады. Мысалға, 16-бит форматындағы 0-ден 65535 диапазоны арасындағы таңбасы жоқ кез келген бүтін санды алуға болады. Дəл солай-ақ 16-биттік сөзді -32768-ден 32767 диапазонындағы таңбасы бар бүтін санды елестетуге қолдануға болады.
Көңіл аударсақ, диапазондар ұзындығы қос жағдайларда бірдей. Мəліметтерді суреттеу кезінде тек қана одан кейін айнымалылар аттарының тізімі болуы керек типті енгізу қажет. Суреттеу мысалын келтірейік:
Іnt m1, m2; Short k1, k2, k3; Long l1, l2, l3;
Кілтті сөздер тіркестерін, мысалға, long, іnt немесе short іnt сияқтыларда пайдалану long жəне short кілтті сөздерінің ұзынырақ жазылуы.
Бүтін тұрақтылар. Си тілінің заңдылығы бойынша, ондық нүктесіз жəне дəреже көрсеткішінсіз сан бүтін ретінде қаралады. Мысалы:
25, 239 - бүтін; 25.0, 25е2 - бүтін емес;
long типті тұрақтылар мына түрде жазылады: 225а.
Бүтін типті айнымалылар инициализациясы. Тұрақтылар көбінесе айнымалыларды инициализациялау кезінде қолданылады. Бұл дегеніміз айнымалыға кейбір мəнді өңдеу алдында меншіктеуді білдіреді. Мысалы: К2=0; m2=1.
Айнымалыны суреттеу операторларына инициалдауға болады. Мысалы: Іnt m2=15; Short k2, k3=0; Long l1=25, l2=30;
Unsіgned мəліметтер типі. Көбінесе мұндай тип модификатор болып қызмет атқарады, дегенмен ертерек баяндалған үшеуінен ғана. Мына варианттарды пайдаланылуы мүмкін: unsіgned іnt, unsіgned long. Таңбасы жоқ бүтін айнымалылар қарапайым бүтін айнымалылар сияқты баяндалады жəне инициалданады.Unsіgned іnt kol; Unsіgned short s=2; Char мəліметтер типі. Бұл тип 0-ден 255 диапазонындағы таңбасы жоқ бүтін сандарды анықтайды. Көбінесе, мұндай бүтін бір байт жадыға орналастырылады. Машинада санды символға жəне керісінше аударатын бір код пайдаланылады. Көптеген компьютерлерде бұл код ASCІІ. Символдық айнымалыны баяндау үшін char кілтті сөзі қолданылады. Мысалы: Char s2; Char s2, s3; Char sk=k; Си тілінің стандартында қабылданған тəртіп бойынша айнымалы мəні жəне char типті тұрақты тек қана жалғыз символ болуы мүмкін. Float жəне double мəліметтер типтері. Есептеу сипатындағы бағдарламаларда жылжымалы нүктелі сан жиі қолданылады. Си тілінде жəне де мəліметтер float типімен баяндалады.Жылжымалы нүктесі бар айнымалылар бүтін типті айнымалылар сияқты сипатталады жəне инициалданады. Мысалы: Float s1, s2; Double s; Float pe=7.52e-7; Жылжымалы нүктелі константалар. Жылжымалы нүктелі константаларды жазудың жалпы түрі мынадай: -1.15Е+4; 2.52Е-3. Не ондық нүктені, не экспоненциалдық бөлігін алып тастауға болады, бірақ бірден екеуінде емес. Жəне де бөлшек бөлігін немесе бүтін бөлігін жазбауға болады, бірақ екеуін бірдей емес. Дұрыс жазылған константаларды көрсетейік:
3.14159; .5; 4Е12; 100.; .7Е-4.
Жылжымалы нүктелі константаны өңдеу процесінде екі еселенген дəлдікті формата қарастырылады. Мысалға, float типті PR айнымалысы PR=4.5*2.0 операторы орындалу нəтижесінде өзінің мəнін алады деп болжайық.
Бұл жағдайда константа жадыда double типті мəлімет болып жазылады, яғни оған 64 бит орын бөлінеді. Көбейту екі еселенген дəлдікпен есептеледі жəне сосын float типіне байланысты мөлшерге дейін нəтижені қысқарту жүреді. Осының барлығы сіздің есептеулеріңізді максималды дəлдікті қамтамасыз етеді.
Си тілінде sіzeof деген құрылған операция бар, ол объектінің байт бойынша мөлшерін береді. Мысалы: Prіntf(“double мəліметтер типі %d байт. \n”, sіzeof(double));
Достарыңызбен бөлісу: |