- •4. С тіліндегі күрделі арифметикалық операциялар, қатынас операциялары, инкремент және декремент операцияларын пайдалану. Құрама операторлар.
- •8. С программалау тіліндегі мәліметтердің тіркестік (жолдық) типтері және солармен жұмыс істейтін функциялар.
- •9. Файлдармен жұмыс істеуді ұйымдастыру. С программалау тіліндегі файлдармен жұмыс істеу функциялары.
- •2. Іздеу алгоритмдерінің типтері және бейнеленуі. Мысал келтіріңіз.
- •3. Сұрыптау алгоритмдерінің түрлері және бейнеленуі. Мысал келтіріңіз.
- •4. С тіліндегі күрделі арифметикалық операциялар, қатынас операциялары, инкремент және декремент операцияларын пайдалану. Құрама операторлар.
- •5. С тіліндегі жиым (массив), вектор, матрицаларды пайдалану. Тілдің жиымдарды өңдеу тәсілдері.
- •6. С тілінде нұсқауыштарды пайдалану, оларды жариялау жолдары. Нұсқауыштармен атқарылатын операциялар.
- •7. С программалау тіліндегі тұтынушы функцияларын (ішкі программаларды) сипаттау және анықтау жолдары.
- •8. С программалау тіліндегі мәліметтердің тіркестік (жолдық) типтері және солармен жұмыс істейтін функциялар.
- •9. Файлдармен жұмыс істеуді ұйымдастыру. С программалау тіліндегі файлдармен жұмыс істеу функциялары.
- •10. С программалау тіліндегі мәліметтердің динамикалық құрылымдары. Мәліметтердің абстрактылық типтері.
9. Файлдармен жұмыс істеуді ұйымдастыру. С программалау тіліндегі файлдармен жұмыс істеу функциялары.
Сыртқы мәліметтер ағынымен (поток данных) жұмыс істеу үшін оны ашу керек. Сонда сыртқы мәліметтер программадағы алдын ала анықталған FILE типімен байланыстырылады. Бұл типтің анықталуы stdio.h тақырыптық файлы арқылы атқары-лады. FILE типі арқылы мәліметтер ішіндегі позицияларға нұсқауыш, буферге нұсқауыш көрсетіле алады.
Сыртқы мәліметтер ағынына нұсқауыш, мысалы, fp программада былай сипатталады:
#include <stdio.h>
FILE *fp;
Сонымен файлды ашатын fopen() функциясының жалпы жазылуы:
fp = fopen(name,mode); , fp = fopen(“ex1.txt”, “w”);
Мұндағы: fp – файлға сілтейтін нұсқауыш; name – сыртқы мәліметтер жазылған немесе жазылатын файл аты, иденти-фикатор; mode – файлдың қандай режимде ашылатынын төмендегідей түрде көрсетеді:
"r" – бұрыннан бар файлды оқу үшін ашу;
"w" – бос файлды мәлімет жазу үшін ашу;
"a" – файл соңына мәлімет қосып жазу үшін оны ашу;
"r+"– файлды одан мәлімет оқу және жазу үшін ашу;
"w+"– бос файлдан мәлімет оқу және оған мәлімет жазу үшін файл ашу (бұрын файл болса, ол өшіріледі);
"a+"– файлдан мәлімет оқу және оның соңына мәлімет қосып жазу үшін ашу).
2)fclose(fp) функциясы ашық файлды жабады.
3)feof(fp) функциясы файл соңын анықтайды.
4)fgets(fp) функциясы файлдан бір символ оқиды.
5)fputc(fp) функциясы файлға бір символ жазады.
6)ferror(fp) функциясы файлға жазу/оқу кезінде қате шыққанын тексереді.
Бұлардағы fp – файлға сілтейтін нұсқауыш;
7-8) Файлға мәлімет жазу/оқу үшін fprintf және fscanf функциялары пайдаланылады.
fprintf - файлға мәлімет жазу үшін, ал fscanf – файлдан мәлімет оқу үшін қолданылады. Олардың жалпы жазылу түрі:
fprintf(fp,“спецификация шаблоны”, p); (мыс: fprintf(fp,“%d”, p) )
p - өрнек;
fscanf(fp, “спецификация шаблоны”, адрес); (мыс: fscanf(fp,“%d”, &p) )
Mысалы:
#include<stdio.h>
#include<conio.h>
main()
{int k, i, n=5;
char fname[]=”a:\\num.txt\0”;
clrscr();
FILE *fp;
fp=fopen(fname,”w”);
clrscr();
printf("Енгізілген файлдар %s файлына жазылады\n", fname);
puts(“Әр сан енгізген соң Enter басыңыз/n”);
for(i=0; i<n; i++)
{ scanf(“%i”, &k);
Fprintf(fp, “%d”, k); }
fclose(fp);
printf("Енгізілген файлдар %s файлына жазылды\n", fname);
getch(); }
Нәтижесі:
Енгізілген файлдар a:\num.txt файлына жазылады
Әр сан енгізген соң Enter басыңыз
1
2
3
4
5
Енгізілген файлдар a:\num.txt файлына жазылды
10. С программалау тіліндегі мәліметтердің динамикалық құрылымдары. Мәліметтердің абстрактылық типтері.
Мұнда мәліметтердің бірнеше негізгі типтері қолданылады. Олар:
· char – символдық, яғни таңбалық тип,
· short – қысқа бүтін сан,
· int – бүтін сан типі,
· long – екі еселенген бүтін сан,
· float – нақты (жылжымалы нүктелі) сан типі,
· double – екі еселенген нақты сан типі.
· unsigned – таңбасыз бүтін сан,
Алғашқы төрт тип бүтін сандарды сипаттау үшін қолданылады. Төмендегі кестеде әр түрлі типтердің IBM PC-ге арналған ұзындықтары көрсетілген.
Мәлімет типі
|
Ұзындығы (байт)
|
Сандар диапазоны
|
Char |
8 бит-1байт |
-128…..+127 |
Unsigned shar |
8бит-1байт |
0…255 |
Short int |
16бит-2байт |
-32768…32767 |
Unsigned short |
16бит-2байт |
0…65535 |
Int |
16бит-4байт |
-32768…32767 |
Unsigned [int] |
32бит-4байт |
0..4294967295 |
Long |
32бит-4байт |
-2147483648…2147483647 |
Unsigned long |
32бит-4байт |
0…4294967295 |
Float |
32бит-4байт |
3.4*10-38 ... 3.4*1038
|
Double |
64бит-8байт |
1.7*10-308 ... 1.7*10308
|
Long double |
80бит-10байт |
3.4*10-4932 ... 3.4*104932
|
Көрсетілген типтердің ең үлкен ұзындықтары әр түрлі компиляторларда бірдей болуы қажет емес. Олар компьютерлердің аппараттық мүмкіндіктеріне қарай таға-йындалады. Бірақ оларға мынадай талаптар қойылады:
int > =short >= 16 бит;
Int типін стандарт бекітпеген, ол компьютерге немесе компиляторға байланысты өзгеріп отырады. 16-разряд-ты процессорде ол 2 байт (32768), ал 32-разрядтысында – 4 байт (2 147 483 647 ). ТурбоСи-де int = short (32768)
long > = int; long типінің ұзындығы >= 32 бит;
(ТурбоСи-дегі long 2 147 483 647 )
Signed және unsigned модификаторлары да сандар шамасына әсер етеді, олар:
unsigned short int – 2 байт, оның диапазоны 0 ..65536;
unsigned long int – 4 байт, диапазоны 0..+4 294 967 295.
Unsigned типі int, long, short түйінді сөздерімен сипатталатын типтердің модификаторы ретінде қолданылады.
Char типін 0–255 аралығындағы таңбасыз бүтін сан-дарды сипаттауға қолдануға болады, ДК жадында бұларға бір байт орын бөлінген. Мысалы:
char c1;
Статикалық объектілер программаның орындалуына дейін туындайтындықтан жəне олардың мəндерінің өлшемі алдын-ала белгілі болғандықтан да, осы мəндерді сақтау үшін қажетті машина жадысындағы орын программаның бастапқы мəтінін машиналық тілге трансляциялау кезінде бөлінеді. Алгоритмдік тілде жазылған программада программалық объектілерге сілтеме олардың аттары арқылы жүзеге асырылады,яғни объектіге аты бойынша қатынас құрылады. Қазіргі кездегі компьютерлерде бұл орын объекті адресі арқылы, яғни жады ұяшығының көмегімен беріледі. Осы əрекеттердің барлығы (статикалық айнымалыларға тəн) трансляция кезінде орындалмақ. Дегенмен, программалауда тек статикалық объектілерді қолданудың өзіндік қиындықтары (тиімді машиналық программа алу көзқарасы тұрғысынан қарағанда) да жоқ емес.
/* Кейде біз программаны құру кезінде алдын-ала белгілі бір программалық объектінің мəн өлшемін, мəн өлшемі тұрмақ сол объектінің өзінің программа жұмысы кезінде болатынын немесе болмайтынын біле алмаймыз*/.
Программаның орындалу процесінде туындайтын немесе программаның орындалу барысында мəндерінің өлшемі анықталатын объектілер динамикалық объектілер деп аталады. Мысалы, берілген мəтіннен (кілең сөзден тұратын) бірінші сөзді табу керек болсын. Мəні ізделінетін сөз болып табылатын айнымалы, программаның орындалу барысында мүлдем пайда болмауы мүмкін. Егер ол пайда болса, онда осы айнымалының мəні болып табылатын сөз ұзындығы алдын-ала белгісіз болуы мүмкін. Мұндай айнымалылар – динамикалық программалық объектілер болып табылады.
Мәліметтердің айнымалы типтері стандартты типтерден өзгеше болып келеді. Мәліметтердің әртүрлі типтері үшін әртүрлі амал қолдануға болады. Мәліметтердің типін құру бір жағынан операция орындауды жеңілдетсе,екінші жағынан қате жіберуге мүмкіндік береді. Сонымен,мәліметтердің стандартты типтерінен өзге жаңа айнымалы типтерді құруға болады. Мәліметтердің бұл типтеріне саналатын және шектелетін типтер жатады. Қабылдай алатын мәндерінің реттелген тізімі арқылы берілетін тип-саналатын тип болып есептеледі. Бұл типті сипаттау оның мүмкін мәндерінің идентификатор түрінде тізімін берумен анықталады.
Жазылу түрі:
TYPE <тип атауы>=(<1-мән,2мән,..., n- мән >);
VAR <идентификатор,.....> : <тип атауы>;
Мысалы:
TYPE Gaz=(Ge, C, O, N );
Metall=(Na,K,Li,Cu,Zn);
Mezgil=(қыс,көктем,жаз,күз);
VAR Al, A2: Mezgil;
G1,G2,G3:Gaz;
Met l, Met2:Metall;
Түс=(ақ,көк,қызыл,сары,жасыл,қоңыр,сұр,қара).
Егер айнымалы сипаттау бөлімінде көрсетілген мәндердің белгілі бір аралығын ғана қабылдайтын болса,онда оны шектеулі типтегі айнымалы деп атайды.Мұндай типтегі айнымалының алғашқы және соңғы мәндері нүктелермен бөлініп тұрақты түрінде көрсетіледі де,ол екеуі де бір стандартты типте (real типін қолдануға болмайды) болып,міндетті түрде алғашқы мән соңғы мән соңғы мәннен кіші болуы керек.