Программа бұл компьютерді басқаруға қажетті командалардың логикалық реттелген тізбегі



бет5/7
Дата28.06.2016
өлшемі0.88 Mb.
#162854
түріПрограмма
1   2   3   4   5   6   7

Егер өрістердің келесі н енгізсек:

№ - n

Атауы - name

Саны - k

Бағасы - c

Шығарылған жылы - g
Сипаттау келесідей болады:
struct s {

int n;


char name[];

int k;


float c;

int g;


};
struct s x;
және x айнымалысы жоғарыда көрсетілген кесте жолындағы берілгендерді өңдеуге арналған.
Мысал

Құрылым(обьект) мен құрылымдық типті бірге сипаттау мысалыstruct student {

char name [15]; /* Аты */

char surname [20] ; /* Фамилиясы */

int year; /* Курсы */

} student_l, student_2, student_3;

Мұнда student атты құрылымдық тип және student_l, student_2, student_3 үш ныұты құрылым сипатталған. Осы үш құрылымның әрқайсысына студенттің атын (name), фамилиясын (surname),студенттің оқитын курсын(year) жарииялайтын құрылым кіреді.

Келтірілген сипаттамадан кейін сол программада кез келген құрылым санын сипаттауға болады, ол үшін келесі student құрылымдық типін қолдануға болады:

struct student laader, freshman ,
Құрылымды инициализациялау және меншіктеу. Құрылымды инициализациялау массивтерді инициялазациялауға ұқсас. Нақты құрылымды сипаттауда оның атынан және '=' белгісінен кейін фигуралы жақшаның ішінде бастапқы элементтердің тізімі жазылады. Мысалы:

struct goods coat={"қара пиджак ", 400000, 7.5, 220, "12.01.97"};


Си тілінің стандарты құрылымды меншіктеуге рұқсат береді. struct goods (tea, coat) құрылымдық типтегі жоғарыда көрсетілген құрылымға келесі меншіктеуге рұқсат етілген:

tea=coat;

Құрылымдар үшін теңсіздік операциялары, тіпті, теңдік те қолданылмайды. Егер құрылымды салыстыру керек болса, тек қана элементтері арқылы ғана.



Құрылым элементеріне рұқсат алу. Құрылым элементтеріне рұқсат алу нақты атау бойынша қамтамасыз луға болады.

құрылым_аты.элемент_аты

конструкциясы құрылымдық тип сипаттамасын ойнайды.

Біздің struct goods құрылымдық типін инициализациялау мысалымызда:

coat.name - char[] типті массиві "қара пиджак ";

coat.price - long типті мәні 400000 айнымалы;

coat.percent - float типті мәні 7.5айнымалы;

coat.vol - int типті мәні 220 айнымалы;

coat.date -"12.01.97" тұратын char [9] типті массиві.

Нүктенің алдында құрылымдық типтің аты емес, оның сипатталуына жды бөлінген нақты құрылымның аты тұрғанына назар аударыңыз.



Нақыланған ат – бұл екі операндамен және олардың арасындағы "нүктеден" тұратын өрнек. "Нүкте" оперциясы құрылым элементіне рұқсат алу операциясы деп талады.

Егер құрылымды сипаттауда ол инициализцияланған болса, онда оның элементтері сәйкес бастапқы мәндерін алады. Нақталанған аттың көмегімен бұл мәндер , мысалы, экранға шығады.

Құрылым элементінің нақтылы аты сәйкес типтегі обьектілердің брлық ережелерінен тұрады. Оларды өрнектерде қолдануға болады, олардың мәндерін пернетқтадан енгізуге болады.

Құрылымдар массиві. Құрылымдық типтің массивтері басқа типтегі массивтер сияяқты сипатталады. Анық айырмашылығы – құрылымдық тип атауындағы struct қызметші сөзінде. Жоғарыда енгізілген құрылымдық типтерді анықтау келесідей:

struct goods list [5];

Бұл сөйлем list-ті goods құрылымдық типтегі, 5 элементтен тұратын массив ретінде анықтайды. List аты құрылымның аты болып табылмайды, ол элементтері құрылым болатын массив аты. list[0] - goods типінің құрылымы, list[1] - list[ ] массивінің goods типті екінші құрылымы жіне т.б.

Құрылым массиві құрамына кіретін құрылым компонентеріне рұқсат алу үшін, бірінші аты индекстелген нақтыланған атау қолданылады . Мысалы:

list[0].price - list[ ] құрылым массивіне бірінші элемент ретінде (нөлдік индекспен) кіретін, goods типті құрылымның long типті екінші компоненті (price атты).



1 суретте list[ ] массивін шартты түрде жадыға орналастыу сызбасы берілген. Оның элементтері (басқа массив элементтері сияқты) негізгі жадта индексінің өсуі бойынша ретпен орналасады.




Рис. 1. Құрылым массиві (100 элементтен құралған)
Массивке сәйкес құрылым компонентеріне рұқст алудағы нақтылы атаудың индекстелуіне тағы бір назар аударыңызда. Индекс құрылым массивінің атауынан кейін жазылады. Сөйтіп, массивтен қажетті құрылым бөлінеді, ал нүкте мен онан кейінгі атау көмегімен құрылымның сәйкес компоненті идентифицирленеді. Мысалы,

list.percent[8] /* Қате ! */ -жазылымы қате атау; percent – массив емес, float типті айнымалы.

Құрылым массивін сипаттау:

struct goods list [5];


Баса типтегі массивтер сияқты, құрылымдық массив сипатталуында инициализациялана алады. Құрылымдық массив инициализаторы фигуралық жақша ішіндегі массивтің бастапқы элементтерінің тізімінен тұруы мүмкін. Өз кезегінде, құрылым үшін әр бастапқы мән – бұл оның комонентерінің мәндерінің тізімі(фигуралы жақша ішінде).
Мысал

Төменде кестеде көрсетілген берілгендерді сипаттау



Фамилия

Туған жылы

Телефоны


Үй адресі

Иванов

1980

33-22-11

ул. Чехова, 1

Петров

1981

44-55-66

пр. Шакарима, 126

Сидоров

1980

34-22-11

ул. Ленина, 50

struct stroka

{

char f[20];



int g;

char tel[8];

char adres[40];

};
struct stroka tab[3];


Осындай берілгендерді сипаттаудан кейін, tab массивінің элементтері жоғары кестеде берілген бүтін жол екенін түсіну керек, яғни:

tab[0] – бұл

Иванов

1980

33-22-11

ул. Чехова, 1

tab[1] – бұл

Петров

1981

44-55-66

пр. Шакарима, 126

tab[2] – бұл

Сидоров

1980

34-22-11

ул. Ленина, 50

Өзін-өзі тексеру сұрақтары

  1. Берілгендердің құрылымдық типі қайда қолданылуы мүмкін?

  2. Құрылымды қалай анықтауға болады?

  3. Құрылымның жазу типі мен құрылымдық айнымалы арасындағы айырмашылық?

  4. Құрылым элментіне қалай рұқсат алуға болады?

  5. Құрылым бір типтегі элементтерден тұруы мүмкін бе?


8.1. Негізгі әдебиеттер

1. Нейбауэр А. Моя первая программа на С/С++ /Перев. с англ. – СПб: Питер, 1995

2. Подбельский В.В., Фомин С.С. Программирование на языке СиЖ Учеб. пособие. – 2-е доп. изд. – М.: Финансы и статистика, 1999

3. Информатика. Базовый курс. 2-е издание / Под ред. С.В. Симоновича. – СПб.: Питер, 2005

8.2. Қосымша әдебиеттер

1.Дейтел Х., Дейтел П. Как программировать на Си. – М.: Бином, 2000

2. Мейер Б., Бодуэн К. Методы программирования. Т. 1 и 2. – М.: Мир, 1984


13 апта


Тақырып 13. Файлдар

Дәріс жоспары

  1. Файл ұғымы.

  2. Өңдеу үшін қолданылатын берілгендер файлының басымдылығы.

  3. Файлға нұсқаушы.

  4. Файлды ашу жабу.

  5. Енгізу және шығару функциялары.

  6. Файлдарды жаңа берілгендермен толықтыру.

  7. Файлдардың екілік және мәтіндік форматы.


Дәрістің қысқаша жоспары

Файлдар

Файл – белгілі бір атпен дискіде сақталатын ақпарат.

Кез келген файлдың үш ерекшелігі болады:



  1. Файлдың атауы болады .

  2. Файлдың комонеттері бір типті болды.

  3. Файлдардың ұзындығы деп аталатын файлдағы элементтер фиксирленбеген. Файлдың массивтен негізгі еекшелігі сонда.Бір де бір элементі жоқ файл бос деп аталады. Оның ұзындығы нөлге тең.

Берілгендер файлын программ үшін қолдану өте ыңғайлы, себебі:



  1. Берілгендер файлы алдын ала дайындалған болады және бірнеше рет қолдныла алады.

  2. Берілгендер фйлы кез келген басқа программада қолдныла алады.

  3. Берілгендер файлын қолданылатын программалар орындалу барысында қолданушыны қажет етпейді.


Енгізу және шығару

Си тілінің стандатында енгізу шығару ортасы жоқ. Барлық енгізу шығару операциялары Си нақты программалу жүйесіндегі , Си тілінің библеотекасында орналасқан функциялардың көмегімен шығарылады. UNIX жүйесін құруда қолданылған и тілінің ерекшелігі алдын ла жоспарланған файл құрылымдарының жоқ болуы. Барлық файлдар байттардың құрылымсыз тізбектілігі ретінде қарастырылады. Бұндай жағдайда, фйлдарды ұйымдастыру үшін файл ұғымы мен түрлі құрылғылар ұғымы қолданылады. UNIX нақты құрылғысына арнайы файл деп аталатын құрылғы сәйкес келеді.

Си тілінің кітапханасы енгізу және шығарудың үш дәрежесі бар:


  • Ағымдық енгізу шығару,

  • Төменгі дәрежелі,

  • консолдар мен порттарға арналған енгізу шығару.

Ағымдық енгізу шығару дәрежесінде ақпарат алмасу байттік түрде. Бұндай енгізу –шығару байттік алмасу құрылғыларымен қатар(баспа құралы, дисплей), ішкі жад құралы қабықшалық алмасу құралы болып табылса да, дискідегі файлдарда да мүмкін, яғни, құрылғығы бір рет рұқсат алғанда фиксирленген берілгендер позициясын оқу немесе жазу орындалады. Көбінесе, ішкі жадымен алмасушы берілгендердің минималды позициясы 512 байттан немесе 1024 байттан тұратын блоктар болып табылады. Дискіден енгізген (файлдан оқыған) кезде берілгендер операциялық жүйенің буферіне орналасады, одан кейін байттік немесе анықталған порциялармен қолданушының программасына беріледі. Берілгендерді файлға шығару кезінде олар буферде жиналады, буфер толып кетсе, бір блок ретінде соңғыға рұқсат алған дискіге жазылады. Операциялық жүйенің буфері негізгі жадының аумаы ретінде жүзеге асады. Сондықтан, буферлер мен программалар арасындағы енгізу – шығару сілтемелері физикалық құрылғыларға қааанда жылдам жүреді.

Лекпен жұмыс істегенде келесі әрекеттерді жүзеге асыруға болады:



  • лектерді ашу және жабу (нұсқаушыларды нақты файлдары бар лектермен байланыстыру);

  • жолдарды, символды, форматталған берілгендерді, туынды ұзындықты берілгендер порциясын енгізіп шығаруға болады;

  • лекті енгізу – шығарудың қателерін және лектің соңына жету (файлдың соңына) шарттарын талдау;

  • лектің буфферленуін және буфердің өлшемін басқару;

  • нұсқаушыны (индекаторды) лектегі ағымдағы позицияға орналастыру және алу.

Си тілінің библеотекасының енгізу – шығару функцияларын қолдану үшін, енгізу – шығару функцияларының прототипінен, сонымен қатар тұрақтыларды, типтерді және құрылымдарды, лекпен алмасуға қажетті функцияларды сипаттаудан тұратын stdio.h (#include ) тақырыптық файлын іске қосу керек.

Лекті ашу және жабу

Лекпен жұмыс жасауды бастамас бұрын, оны инициялизациялау керек, яғни ашу керек. Сонда лек орындалатын программада FILE типті алдын ала анықталған құрылыммен байланысады. FILE құрылымдық типінің сипатталуы stdio.h тақырыптық файлында орналасқан. FILE құрылымында лекпен жұмыс жасуға арналған компонентер орналасқан, дербес жағдайда, буферге нұсқаушы, лектегі ағымдағы позициядағы нұсқаушы(индикатор) және басқа ақпарат.

Лекті ашқанда программада FILE құрылымдық типті обьектіне нұсқаушысы болып табылатын, лекке нұсқаушы қайтып оралады.Бұл нұсқаушы лекті қалған басқа операцияларда идентификациялайды.

Лекке нұсқаушы , меысалы, fp, программада келесі түрде жариялануы керек:


#include

FILE *fp;


Лекке нұсқаушы лекті ашу функциясының орындалуы нәтижесінде:
fp = fopen (файл _аты,ашылу- режим);
файл _аты және ашылу- режим параметрлері лекпен байланысты және режимдер жолымен байланысты файл атынан тұратын символдар массивіне нұсқаушы болып табылды. Бірақ, бұл параметрлер фацлды ашу функциясын шақыранда жол түрінде және берілуі мүмкін:

fp = fopen("t.txt", "r") ;

мұндағы t. txt – лекпен байланысты қандай да бір файл аты;

r файлмен жұмыс режимдерінің бір белгіленуі (лекке рұқсат алу типі).


Лекпен байланысты, стандартты файлды келесі алты режимнің біреуімен ашуға болады:

"w" – жаңа мәтіндік файлы жазу үшін ашылады. Егер файл бар болған болса, онда алдынғы мазмұны тазаланып, жаңадан қайта құрылады;

"r" – бар мәтіндік файл оқу үшін ғана ашылады;

"а" – мәтіндік файл оған жаңа ақпарат қосу үшін (файл соңына) ашылады (немесе егер файл жоқ болса, құрылады) . V режиміне қарағанда "а" режимі бар файлдарды олардың алдындағы версияларын жоймай ашады және оған ары қарай жазуға болады;

"w+" – жаңа мәтіндік файл жазу үшін және ары қарай бірнеше рет қолдану үшін ашылады.Егер файл бар болса, онда оның мазмұны тазарады. Файлдардың келесі ашылуы жазу мен одан оқу файлдың кез келген жерінде рұқсат етілген, сонымен қатар файлдың соңына да жазу қосуға болады, яғни, файл көлемі үлкейе алады (көбейе);

"r+" – бар мәтіндік файл оқу үшін де жіне файлдың кез келген жеріне жазу үшін де ашылады. Бірақ, бұл режимде файлдың соңына жазу мүмкін емес, яғни, файл өлшемін кеңейту мүмкін емес.;

"а+" – мәтіндік файл өзгертуге болатындай ашылады немесе құрылады (егер ол жоқ болса) яғни, кенз келген жерден оқу мен жазу мүмкін болатындай; Сонымен қатар "w+" режиміне қарағанда бар файлды оның мазмұнын жоймай ашу мүмкін; "г+" режиміне қарағанда "а+" режимінде файл соңына жазу енгізуге болады, яғни, оның көлемін өзгертуге болады.

Лекті мәтіндік немесе екілік(бинарлық) режимде ашуға болады.

Мәтіндік режимде лектен оқылған символдар комбинациясы CR (13 мәні ) және LF (10 мәні) , яғни, " каретканы қайтару" және "жолды тасымалдау" басқарушы кодтары жаңа жолдың бір символына '\n' (LF) , CR және LF кезектілігін ауыстыру арқылы түрленеді.

Егер лекпен байланысты файл мәтіндік емес, өзіндік екілік ақпараттан тұрса, онда көрсетілген түрлендірулер керек емес және зиянды болуы да мүмкін. Бұндай түрлендірусіз алмасу b әрпімен белгіленетін, екілік немесе бинарлық режимде орындалады. Мысалы, "r+b" немесе "wb". Кейбір компиляторларда мәтіндік файл t әрпімен белгіленеді, яғни, "a+t" немесе "rt" түрінде жазылады.

Егер лек өзгерту үшін шылған болса, яғни, режим параметрінде "+", символы бар болса, онда лекке шығарумен қатар одан оқу да мүмкін. Бірақ, режимді ауыстыру (оқудан жазуға өту немесе керісінше) лек нұсқаушысын керекті позицияға орналасырғаннан кейін ғана орындалуы керек.

Лекті ашуда келесідей қателер пайда болуы мүмкін: лекпен байланысқан нұсқалған файл табылған жоқ (оқу режимі үшін); диск бос емес немесе дискіге жазуға рұқсат жоқ және т.б. fopen() функциясының орындалуы кезінде динамикалық жадының бөлінуі орындалатынын ескерте кету керек. Ол жоқ болған жағдайда "Not enough memory" (жадыда орын жоқ) қате белгісі шығады. Аталған жағдайларда, лекке нұсқаушы NULL мәніне ие болады.

Лекпен байланысқан файлдарды ашуда қолданылатын операторлар кезектілігіне мысал келтірейік:

if ((fp=fopen("t.txt", "w"))==NULL)

{

perror("файлды ашуда кеткен өателік t.txt \n");

exit(0);

}

Мұндағы NULL - stdio.h файлында анықталған нөлдік нұсқаушы.


Лекті ашқандағы қате туралы хабарламаны экан дисплейіне шығару үшін реггог() библеотеекалық функциясы қолданылады, оның stdio.h –тағы пототипінің түрі келесідей:

void perror (const char * s);

perror() функциясы s нұсқаушысымен адрестелген символдар жолын шығарады, одан кейін: қос нүкте, пробел және қате туралы хабарлама орналасады. Қатенің мазмұны мен форматы программалау жүйесінің жүзеге асуымн анықталады. Қате туралы хабарламаның мәтіні қате нөміріне байланысты реггог() фуекциясымен таңдалады. Қате нөмірі Си тілінің библеотекасының жанындағы, сонымен қатар енгізу – шығару функциялары жанындағы int errno(int errno тақырыптық файлында анықталған ) айнымалысына енгізіледі. Файл ашылғаннан кейін, оған ақпарат жазу арқылы намесе оқу арқылы (режимге байланысты) онымен жұмыс істеуге болады.

Фйлдармен жұмыс істеп болған соң дискіде ашылған файлдарды міндетті түрде жабу керек. Ол үшін мына библеотекалық функция қолданылады



int fclose (лекке_нұсқаушы);

Ашылған файлды оны fclose( ) функциясы көмегімен жапқаннан кейін ғана қайта ашуға болады (мысалы онымен жұмыс істеу режимін өзгертіу үшін).


Дискідегі файлдармен жұмыс

Дискідегі фйлдармен жұмыс істеу үшін Си тілінің библеотекасына келесі функциялар қосылған:



fgetc(), getc() – енгізу (файлдан бір символды оқу;

fputc(), putc() – файлға бір символды жазу;

fprintf() – файлға форматталған шығару;

fscanf() – файлдан фоматталған шығару (оқу);

fgets() – файл жолын енгізу (оқу);

fputs() – жолды файлға жазу.
Файлдарды алмастырудың екілік (бинарный) режимі

Екілік алмасу getc() және putc()функцияларының көмегімен жүзеге асады. Олардың форматтары:


c=getc(fp);

putc(c,fp);


мұндағы fp – ағымға нұсқаушы; c – келесі символды файлдан қабылдап оның мәнін файлға жазуға арналған int типті айнымалы.

Функциялардың прототипі:

int getc(FILE *stream);

int putc(int c, FILE *stream);


Файлдармен жолдық алмасу
Мәтіндік файлдармен жұмыс істегенде fgets() және fputs() функцияларын қолдану тиімді
fgets(s, n, f);

s –жол, f – лекке нұсқаушы.



fgets() функциясы нұсқаушы анықтаған f файлынан (n-1) символдан кем емес симводы жазады және оны s жолына жазады. (n-1) символды оқығаннан кейін немесе жаңа жллға көшіретін '\n' символын кездестіргеннен кейін функция жұмысын тоқтатады . Қосымша әр жолдың соңында жолдың аяқталу белгісі '\0' жазылады.Нәтижелі аяқталу жағдайында функция s жолын қайтарады. Қате болған немесе файл соңына жеткенде, бір де бір символ оқылмаса функция NULL мәнін қайтарады.Бұндай жағдайда жолдың мәні өзгерусіз болып қалады.
fputs(s, f);

s – строка, f – указатель на поток.



fputs() функциясы '\0' символымен шектелген жолды лекке нұсқаушы анықтаған f файлына жазады және оң бүтінді қайтарады.

Қате жағдайында fputs() функциясы EOF қайтарады. '\0' символы тасымалданбайды және '\n' символы '\0' символының орнына жазылмайды.



Файлдармен форматты алмасудың режимі

Кейбір жағдайлрда ақпаратты файлға жазуда монитор экранында бейнелеуге жарамды етіп жазу ыңғайлы.Бұндай жағдайда, fpritf(), fscanf() файлға форматты енгізу (шығару) функциясының прототипін қолданады:

int fprintf(лекке_нұсқаушы, форматты_жол,айнымалылар _тізімі);

int fscanf(лекке_нұсқаушы, форматты_жол,айнымалылар_адресінің_тізімі);


Лектегі позциялау

Си тілінің библеотекасында ағымдағы позициядағы нұсқаушыны лектегі қажет байтқа нұсқайтын fseek() функциясы іске қосылған. Ол келесі прототиптен тұрады:

int fseek(лекке_нұсқаушы,бірігу, есеп берудің_басу);

Өзін-өзі тексеру сұрақтары


  1. Файл деген не?

  2. Өңдеу үшін берілгендер файлдарын қолданудың қандай маңызы бар?

  3. Программада файлға нұсқаушы не үшін қолданылады?

  4. Файлдарды ашу мен жабу қалай орындалады?

  5. Файлдармен жұмыс істеу үшін енгізу мен шығарудың қандай функциялары бар?

  6. Файлдарды жаңа фйлдармен қала толтыруға болады?

  7. Файлдардың мәтіндік және екілік форматы.


8.1. Негізгі әдебиеттер

1. Нейбауэр А. Моя первая программа на С/С++ /Перев. с англ. – СПб: Питер, 1995

2. Подбельский В.В., Фомин С.С. Программирование на языке СиЖ Учеб. пособие. – 2-е доп. изд. – М.: Финансы и статистика, 1999

3. Информатика. Базовый курс. 2-е издание / Под ред. С.В. Симоновича. – СПб.: Питер, 2005

8.2. Қосымша әдебиеттер

1.Дейтел Х., Дейтел П. Как программировать на Си. – М.: Бином, 2000

2. Мейер Б., Бодуэн К. Методы программирования. Т. 1 и 2. – М.: Мир, 1984
14 тақырып. Модулдер
Дәріс жоспары


  1. Файлдан мәтіннің қосылуы. #include директивасы.

  2. Стандартты модулдер.

  3. Программалау кезінде кітапхана функциясын қолдану.

  4. Дәрістің қысқаша конспектісі

Файлдардағы мәтіндерді қосу

Файлдан мәтінді қосылу үшін #include директивасы қолданылады. Оны жазудың үш түрі бар. Олар:

#include <имя_файла>

#include "имя_файла'

#include имя_макроса
Егер файлдың аты үшбұрышты жақшада болса, онда препроцессор файлды стандартты жүйелік каталогтан іздейді. Егер файлдың аты жақшаға алынған болса, онда препроцессор бірінші қолданушының ағымдағы каталогын қарастырады содан кейін барып стандартты жүйелік каталогқа хабарласады.

Выполняя у #include директивтивасын орындау кезінде препроцессор программаға енгізу-шығару кітапханасымен байланыс құралын қосады. stdio.h файлын іздеу стандартты жүйелік каталогтарда орындалады.

Келісілген келісім бойынша Һ библеотекалық функциялардың прототипі болатын функцияларға , содай-ақ библеотека компиляторларымен жұмыста қолданылатын типтер мен тұрақтыларды сипаттауларда жазылады.

Бұл файлдарды тақырыптық деп атайды. Программаның тақырыбына кез келген файлдар кіруі мүмкін (стандартты немесе арнайы дайындалған).

Компильятор кітапханасымен жұмыс істеуге арналған тақырыптық файлдардың сипатталуының жиынтығы стандартты тілмен бекітілген:


assert.h

программа диагностикасы

ctype.h

Символдарды түрлендіру және тексеру

errno.h

Қателерді тексеру

float.h

Нақты берілгендермен жұмыс

limits.h

Бүтін санды берілгендердің соңғы мәні

locate.h

Ұлттық ортаны қолдау

math.h

Математикалық есептеулер

setjump.h

Локальді емес ауысулардың мүмкіндіктері

signal.h

Дербес оқиғаларды өңдеу

stdarg.h

Параметрлар саны айнымалысын қолдау

stddef.h

Қосымша анықтамалар

stdio.h

Кіріс-шығыс ортасы

stlib.h

Жалпы пайдаоану функциялары (жадымен жұмыс)

string.h

Символдар жолымен жұмыс

time.h

Күн мен уақытты анықтау



Достарыңызбен бөлісу:
1   2   3   4   5   6   7




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет