Лекция: 30 саѓат Лаборатория: 15 саѓат С¤Ж: 45 саѓат обс¤Ж: 45 саѓат Барлыќ саѓат саны: 135 саѓат


Лекция 26. Тақырыбы: Қатар және символ массивтерімен жұмыс істейтін функциялар



бет18/24
Дата14.06.2016
өлшемі1.16 Mb.
#135127
түріЛекция
1   ...   14   15   16   17   18   19   20   21   ...   24

Лекция 26.

Тақырыбы: Қатар және символ массивтерімен жұмыс істейтін функциялар


(2 сағат)
1. gets(), puts(), fgets(), fputs(), sprintf() функциялары

2. strcpy(), strcat(), strncmp(), strlen() функциялары


Пайдаланылатын әдебиеттер:

а) негізгі

1. К.Паппас, У.Мюррей “Программирование на С и С++”, Киев, 2000

2. А.Кетков, Ю.Кетков “Практика программирования Бейсик,

Си, Паскаль”, М.: 2001



б) қосымша

3. Шилдт Г. “Теория и практика С++”, Санкт-Петербург, 1996

4. Березин Б.И., Березин С.Б. “Начальный курс С и С++”, М.:1999
1. gets(), puts(), fgets(), fputs(), sprintf() функциялары

Көптеген қатармен жұмыс істейтін функциялар аргумент ретінде символдық массивтер атауын қабылдайды: gets(), puts(), fgets(), fputs(), sprintf(), strcpy(), strcat(), strncmp(), strlen().

Келесі программада gets(), puts(), fgets(), fputs(), sprintf() фуекцияларының көмегімен қатар енгізу/шығару процессін басқару көрсеілген:

# include

# define SIZE 20

main()


{

char s[SIZE];

fputs(“Бірінші қатарды ендіріңіз:”,stdout);

gets(s);


fputs(“Cіз ендірдіңіз :”,stdout);

puts(s);


fputs(“Екінші қатарды ендіріңіз:”,stdout);

gets(s,SIZE,stdin);

fputs(“Cіз ендірдіңіз :”,stdout);

fputs(s, stdout);

sprintf(s,”Бұл %s тексеру еді”, “тек”);

fputs(“sprintf() функциясы құрды:”, stdout);

fputs (s, stdout);

return(0);

}
Программа нәтижесінде экранға мыналар шығарылады:

Бірінші қатарды ендіріңіз : бірінші қатар

Сіз ендірдіңіз : бірінші қатар

Екінші қатарды ендіріңіз : екінші қатар

Сіз ендірдіңіз : екінші қатар

sprintf() функциясы құрды : Бұл тек тексеру еді


Егер ендірілген қатар символдары sмассивіне ажыратылған ұяшықтардын кем болса онда программа дұрыс істеді. Егер массив көлемінен асып кететін символдар қатары енгізілсе онда экранда симводлдар дұрыс шығарылмайды.

gets() фунциясы стандарт құрылғыдан (көбінесе клавиатурадан) ендірілген символдардды қабылдап, оларды аргумент ретінде көрсетілген массивке жайғыстырады. Enter клавиші басылса жаңа қатар дегенді білдіретін символ (\n) генерация жасалынады (өндіріледі). gets() функциясы оны нольдік символға түрлендіріп қояды(\0), бұл қатар соңы белгісін білдіреді. Gets() функциясын қолдануда ендірілген симводардың массив өлшемінен артып кеткендігін тікелей анықтаудың мүмкіндігі жоқ.

puts() функциясы gets() функциясының көмегімен алынған мәліметті экранға шығраады. Ол керісінше (\0) символын (\n) ситмволына ауыстырып қояды.

fgets() функциясы gets() – ке ұқсас. Айырмашылығы массив өлше міне қатысты ендірілген символдар санана контроль жасай алады. Символдар стандартты ендіру құрылғысынан (stdin), немесе файлдан, жалпы көрсетілген ағымнан (поток) оқиды. (С++ программасы іске қосылған соң бірден 5 стандарты ағым ашылады: stdin – енгізу, stdout- шығару, stderr- қателер, stdprn- баспаға шығару, stdoux- сыртқы құрылғы)

Ендірілген символдар массив өлшемінен 1-ге кем болу керек: соңғысын автоматтты түрде нольдік символды тіркейді.

Егер жаңа қатар символы ендірілсе (Enter басылса), онда ол массивте \0 символының алдынан жазылады.

fputs() функциясы да puts() функциясы сияқты, fgets() функциясымен бірге жұмыс істейді. Ол символдарды көрсетілген ағымға бағытттайды: файл не стандартты шығару құрылғысына (stdout).

sprintf() функциясының атауы “string printf()” сөзінің қысқартылған түрі, яғни “қатарлық printf() функциясы” printf() функциясынан айырмашылығы sprintf() нәтижені экранға емес, көрсетілген символдар массивіне орналастырады. Бұл егер функция жұмысы нәтижесін экран не принтер бірнеше мәрте шығаруға тура келетін жағдайларда пайдалы болады.


2. strcpy(), strcat(), strncmp(), strlen() функциялары

strcpy(), strcat(), strncmp(), strlen() функциялары string.h файлында сипатталған. Олардың жұмыс істеуі үшін симводар қатары міндетті түрде қатар соңы белгісімен - \0 символымен аяқталуы керек.

strcpy() – бірінші көрсетілген массив айнымалыға екінші көрсетілген қатарды не массивтің мәнін көшіреді. Мысалы:

char a[10]=”Мен 4-курста”;

strcpy(a, “оқимын”);
Нәтиже: Мен 4-курста оқимын

strcat() функциясы 2 жеке қатарды не массивтерді біріктіреді (конкетенация жасайды).

Мысалы: char s[]=”Салем!”, sa[]=”Мадина”, sb[40];

strcpy(sb, s);

strcpy(sb, sa);

strcpy(sb, “хал-жағдайың жақсы ма?”);


strlen() – қатардағы символдар санын соңғы нольдік санды қоспай, есептеп қайтарады, оның мәні бүтін болады.

strncmp() функциясы бірінші қатарды, екіншісінен іздейді, ал үшінші аргументте бірінші қатардың ұзындығы көрсетіледі. Егер қатарлдар бірдей болса, функция нолдік мән қайтарады, егер бірдей болмаса яғни егер бірінші қатар екіншісінен кіші болса теріс мән қайтарады, керісінше үлкен болса, оң мән қайтарады.



Мысал: сhar s[]=”Вита”, sa[]=”Вика”;

int len, res=0;

len=strlen(s);

res=strncmp(s, sa, len);


Ќазаќстан Республикасы

Білім жєне ѓылым министрлігі
“Сырдария” университеті


“Физика-математика” факультеті

“Информатика” кафедрасы


“СИ программалау тілі” пєні бойынша

050602, 050111 - «Информатика» мамандықтарыныњ

студенттері ‰шін



Лабораториялық сабақтары


Жетісай-2007 ж



10. Лабораториялық сабақтар.




Таќырыптары

Сағат саны

Әдебиеттер №

1.

Си++ программалау тілінде алѓашќы программалар ќ±ру және олардың орындалуы.

1. Қарапайым программа құру

2. С\С++тілі компиляторы ќалай істейді?.


1

№1,2,3


2.

Б‰тін жєне наќты сандар.

Б‰тін сандар.

Наќты сандар.

Символдар.



1

№2,3,4


3.

Енгізу-шыѓару функциялары

1. С тіліндегі енгізу-шығару функциялары



2. С++ тіліндегі енгізу-шыѓару функциялары

1

№1,3


4

Салыстыру операторлары, логикалық амалдар, биттік амалдар

Салыстыру операторлары

Логикалыќ амалдар

Биттік амалдар



1

№1,2,3,4


5

Тармаќталу инструкциясы.

1. if инструкциясы.

2. if/else инструкциясы.


1

№2,3,4


6

Switch/case тањдау командасы. ? шарт операторы

1.Switch/case /case конструкциясы.

2. ? шартты операторы


1

№1,2


7

Циклдер. for циклі.

1.Циклдар

2.For циклі


1

№1

№2


8

Циклдер. While, do/while циклдер.

1.While циклі

2. do/while циклі


1

№1,2,3,4


9

¤ту инструкциялары. Continue, goto жєне break операторлары

Go to инструкциясы

Break инструкциясы

Continue инструкциясы



1

№2,4


10

exit() және atexit() функциялары

1. exit() функциясы

2. atexit() функциясы


1

№1,4


11

Функциялар.

1. Функциялар

2. Жай функциялар


1

№1,3,4


12

Функция прототипі

Функция прототипі

Функциялардыњ берілу синтаксисі


1

№2,4


13

Функция аргументі.

1. Фактілі жєне формальді аргумент.

2. Аргумент берілу єдістері.

3. Фйнымалылар ќолданылуыныњ ережесі.

4. Void типті аргументтер.


1

№1,2,3,4


14

Командалыќ ќатар аргументтер

1.Командалыќ ќатар аргументтері: argc, argv 2.Тексттік аргумент тер

3.Сандыќ аргументтер.


1

№1,4


15

Массивтер

Массив. Масссив синт аксисі

Көп өлшемді массивтерге мысалдар


1

№1,3,2



Пайдаланылатын әдебиеттер:
а) негізгі

1. К.Паппас, У.Мюррей “Программирование на С и С++”, Киев, 2000

2. А.Кетков, Ю.Кетков “Практика программирования Бейсик,

Си, Паскаль”, М.: 2001


б) қосымша
3. Шилдт Г. “Теория и практика С++”, Санкт-Петербург, 1996

4. Березин Б.И., Березин С.Б. “Начальный курс С и С++”, М.:1999




Ќазаќстан Республикасы

Білім жєне ѓылым министрлігі


“Сырдария” университеті


“Физика-математика” факультеті
“Информатика” кафедрасы

“СИ программалау тілі” пєні бойынша

050602, 050111 - «Информатика» мамандықтарыныњ

студенттері ‰шін






Достарыңызбен бөлісу:
1   ...   14   15   16   17   18   19   20   21   ...   24




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

    Басты бет