Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТП для экзаменов.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
288.26 Кб
Скачать

45.Символдық тіркестер

Символдық тіркестер

Символдық жолдарды немесе тіркестерді бірнеше тәсілмен өңдеуге болады, олардың негізгілері:

Тіркестік константаларды қолдану;

Char типті жиымды қолдану;

Char типіне сілтейтін нұсқауыштарды пайдалану;

Символдық тіркестерден тұратын жиымдарды қолдану.

Сөз тіркестері немесе тіркестік (жолдық) константа қостырнақшаға алынып жазылады. Тырнақшаға алынатын символ­дар тізбегінің ең соң­ы­на автоматты түрде ‘\0’ символы жазылады. Ком­пи­лятор жолдық символдарды компьютер жадына жазғанда, олардың көлемін анықтау үшін сол символдар санын есептейді. Символдық константа осы сөз тір­кесі жазылған жады аймағына сілтейтін нұсқауыш болып табылады. Символдық тіркестер жиымын (массивін) беру кезінде компилятор компьютер жады­ның қажетті көлемін анықтау үшін жиымды сипат­та­ғанда, оны тіркестік константа арқылы инициалдауға болады. Мысалы: 

char c[]= “Атырау, Алтай - жеріміз”;

Әдеттегі жиым қолданылатын жағдайлар сияқты бұл жиым аты с осы жиымның 1-элементіне сілтейтін нұсқауыш болып табылады.

            c ==&c[0];

            *c ==’0’;

            *(c+1) == c[1] == ‘n’;

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

char *c1 = “\n студенттер саны”;

осы сипаттауға эквивалентті болып  келесі сипаттау  есептеледі:

static char c1[]=”\n студенттер саны”

46.Getch() функциясы

gets(str) функциясы арасында босорыны бар тіркестерді енгізеді, енгізу ENTER пернесімен аяқталады. 

Екі функция да тіркес соңына нөлдік байт қосып жазады. Оның үс­тіне тіркес – символдық жиым болып, ал жиым аты – оның компьютер жадындағы алғашқы адресіне сілтеме болғандықтан, тіркестік айны­малы атының алдына «&» символы жазылмайды.

47. Матрицаның барлық элементтерін өңдейтін алгоритмдер

2-мысал. Нақты сандардан тұратын a4,6 матрицасы берілген. Мынадай өрнекті  есептеу керек, мұндағы P1 и P2 – сәйкесінше алынған матрицаның оң және теріс элементтерінің көбейтіндісі.

/* a[4][6] матрицасы берiлген. z=p1/|p2| есептеу керек, p1 и p2 – матрицаның

оң және терiс элементтерiнiң көбейтiндiсi */

#include <math.h>

#include <conio.h>

#include <stdio.h>

{printf("------------------------------\n");

return;}

{

static int a[4][6]={

{5,-11,4,-2,5,6},

{3,3,-12,-5,7,8},

{2,3,-3,14,-9,-3},

{-9,3,-6,14,9,-3}

};

printf("Берiлген матрица :\n");

for (i=0; i<4; i++)

{for (j=0; j<6; j ++)

printf(" %3i ", a[i][j]);

printf("\n");}

/* Матрицаны өңдеу */

for (i=0; i<4; i++)

for (j=0; j<6; j ++)

{if (a[i][j]>0) p1 = p1*a[i][j];

if (a[i][j]<0) p2 = p2*a[i][j];

}

z = p1/abs(p2);

printf(" z = %f\n",z);

}

3-мысал.Бүтін сандардан тұратын квадрат b5,5 матрицасы берілген. Оның басдиагоналының сол жағында және оң жағында орналасқан нөлге тең элементтері санын анықтап, солардың айырмасының моду­лін табу керек.

Мынадай белгілеулер енгізейік:

L1 – бас диагональдың сол жағында (төменінде) орналасқан элементтер саны;

L2 – бас диагональдың оң жағында (жоғарысында) орналасқан элементтер саны;

L= |L1-L2| – солардың айырмасы модулі.

#include <math.h>

#include <conio.h>

#include <stdio.h>

{printf("-------------------------\n");

return;}

{

static int b[5][5]={

{5,0,0,0,0},

{0,3,12,0,0},

{0,33,13,14,0},

{0,23,0,14,0},

{35,0,13,14,9},

};

printf("Берiлген матрица :\n");

for (i=0; i<5; i++)

{for (j=0; j<5; j ++)

printf(" %3i ", b[i][j]);

printf("\n");}

L1 = L2 = 0;

for (i=0; i<5; i++)

for (j=0; j<5; j ++)

if (b[i][j]==0)

{if (i>j) L1 = L1+1;

if (i<j) L2 = L2 +1;

}

printf(" L = %i ",L);

}