Оқытудың техникалық құралдары: интерактивті тақта
Лекция оқудың тәртібі, оқыту әдістері мен түрлері: баяндау, сұрақ – жауап, түсіндіру, кіріспе лекция
Деңгейлік тапсырмалар:
~~For параметрлі цикл схемасын көрсетіңіз.
~~For циклінде әртүрлі өрнектерді пайдалану түрлерін көрсетіңіз.
~~Switch таңдау операторын сипаттаңыз.
ОБСӨЖ тапсырмалары:
Си тілінің тарихы. Тілдің элементері
СӨЖ тапсырмалары:
Нұсқауыштарды қолдана отырып массивтермен жұмыс істеу
Бақылау сұрақтары:
Екі өлшемді массивті қалай сипаттауға болады?
Екі өлшемді массивтермен жұмыс істеу кезінде нұсқауыштарды қалай қолдануға болады?
Екі өлшемді массивтердің көбейтіндісін қалай есептеуге болады?
Әдебиеттер:
Культин Н.Б. Самоучитель Основы программирования в Delph+диске
Хармон Руководство разработчика баз данных в Delphi/Kylix.
Роберт Делросси VB2D - конвертор с Visual Basic на Delphi
Камардинов А. Delphi 5, Алматы, “Ата-мура”, 2002.
15-Дәріс. Тақырыбы: Символдық тіркестер
Лекция мақсаты мен міндеттері:
Символдық жолдарды өңдеу тәсілдері
Символдық жолдарды сипаттау
Жолдық тіркестерге қолданылатын функциялар
Лекция мазмұны: Символдық жолдарды немесе тіркестерді бірнеше тәсілмен өңдеуге болады, олардың негізгілері:
Тіркестік константтарды қолдану;
Char типті массивті қолдану;
Char типке сілтейтін нұсқауыштарды пайдалану;
Символдық жолдардан тұратын массивтерді қолдану.
Жолдық константа қостырнақшаға алынады. Тырнақшаға алынатын символдар тізбегінің ең соңына автоматты түрде ‘\0’ символы жазылады. Компилятор жолдық символдарды компьютер жадына жазғанда, олардың көлемін анықтау үшін сол символдар санын есептейді. Символдық константа осы жолдар жазылған жады аймағына сілтейтін нұсқауыш болып табылады. Символдық жолдар массивін беру кезінде компилятор компьютер жадының қажетті көлемін анықтау үшін массивті сипаттағанда, оны жолдық константа арқылы инициалдауға болады. Мысалы:
char c[]= “определение максимального балла”;
Әдеттегі массив қолданылатын жағдай сияқты бұл массив аты с осы массивтің 1-элементіне сілтейтін нұсқауыш болып табылады.
c ==&c[0];
*c ==’0’;
*(c+1) == c[1] == ‘n’;
Жолдарды анықтау үшін нұсқауыштарды мынадай түрде сипаттауға болады:
char *c1-“n ввод баллов”;
осы сипаттауға эквивалентті болып келесі сипаттау есептеледі:
static char c1[]=”\n ввод баллов”;
Осы қарастырылған екі сипаттау да с1 қатарының нұсқауыш екенін білдіреді. Компьютер жадының қажетті көлемін айқын көрсетуге де болады. Мысалы, сыртқы сипаттауда келесі жолдың мынадай түрде жазылғаны көрсетілген.
char c[35]=”определение максимального балла”;
Элементтердің саны жолдың ұзындығынан бір символ артық болуы керек, яғни оның ең соңында ‘\0’ символы болуы тиіс.
Статикалық немесе сыртқы массивтегі бұрынғы қарастырылған әдеттегі массивтер оларды қолдану кезінде автоматты түрде 0-мен инициалданған. Ал жолдарды пайдалану кезінде статистикалық немесе сыртқы массивтер солар тәрізді 0 символымен инициалданады.
Символдық жолдардан тұратын массивтерді қарастыралық. Бұл массивтердің әрбір жолы символдық массив болып табылады. Мысалы, статикалық массивтің сипатталуы келесідей түрде жазылуы мүмкін:
static char *m[4]={”регистр”,”ячейка”,”указатель”, ”элемент”};
бұл массив символдық жолдарға сілтейтін 4 нұсқауыш болып табылады. Сонымен, символдық жолдар массивтер болып табылатын болса, онда осы массивтерге сілтейтін 4 нұсқауыш қарастырылады. 1-жолға сілтейтін 1-нұсқауыш болып m[0] есептеледі, m[1] 2-жолға сілтейтін 2-нұсқауыш болып табылады. Сонымен, әрбір нұсқауыш соған сәйкес жолдың немесе қатардың ең бірінші символына сілтейді.
*m[0]==’р’; *m[1]==’я’; *m[2==’у’; *m[3]==’э’;
Жолдардан құрылған массивтерді сипаттағанда, символдық қатарлар көлемін көрсетуге де болады және бұл сипаттауда қатарлардың ұзындығын келесідей түрде анықтауға болады:
static char m[4][10];
Жолдық тіркестерге қолданылатын функциялар:
1. strlen()
бұл функция жолдың ұзындығын анықтайды.
Берілгені: Даны натуральное число – n, действительные числа :
x1, x2, x3, …, xn .
Вычислить :
x1*xn + x2*xn-1+ … + xn*x1 .
Шығарылуы:
#include
#include
#include
#include
main ()
{
clrscr();
int i,n,a[],*ptr,s;
printf("введите n: ");
scanf(“%d”,&n);
printf("введите n чисел:\n");
for (i=0; iscanf(“%d”,&a[i]);
s=0;
ptr=&a[0];
for (i=0; is+=(*(ptr+i)*(*ptr+(n-1-i)));
// scanf(“%d”,&s);
printf("s = %d”,s);
return(0);
}
1) Мысал.
main ()
{
static char l[]=”сведения о результатах аттестации”;
puts(l); // қатарды шығару
flen(l,8);
puts(l);
}
flen(stroka,size);
char *stroka;
int size;
{
if(strlen(stroka)>size)
stroka+size=0;
}
2) strcat() функциясы қатарларды біріктіру үшін қолданылады. Мысалы:
main ()
{
static char name[80];
static char stud[]<= “является студентом КазНУ”;
puts(“ввод имени”);
gets(name);
strcat(name,stud);
puts(name);
puts(stud);
}
3) strcmp() функциясы қатарларды салыстыру үшін қолданылады.Мысалы:
#define NAME “Ритчи”
main ()
{
char f[20];
puts(“Назовите автора языка Си”);
gets(f);
}
puts(“ответ принят”);
4) strcpy() функциясы қатардың көшірмесін алу үшін қолданылады.
#define stroka “функция копирования”
main ()
{
static *ptf=stroka;
static char res[25];
puts(ptr);
strcpy(res,ptr);
puts(res);
}
5) strstr () функциясы 1-ші көрсетілген жолды 2-ші жолдың ішінен іздейді.
6) strset() функциясы берілген қатардағы барлық символдарды көрсетілген символдарға ауыстырады.
7) strfod() функциясы берілген қатарды double типті санға ауыстырады.
8) strchr() функциясы берілген қатардағы көрсетілген символдардың позициясын анықтайды.
9) strev() функциясы берілген қатардың барлық символдарын керісінше бейнелейді.
10) strpbrk() функциясы 2 қатарда беріледі де, 2-ші қатардың кез келген символын 1-ші қатардан іздейді.
Достарыңызбен бөлісу: |