Келісілген Математика, физика және информатика институты кеңесінің төрағасы Бекпатшаев М. Ж. (қолы) 2020 ж. Бекітемін


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



бет10/30
Дата23.12.2021
өлшемі210,53 Kb.
#103244
1   ...   6   7   8   9   10   11   12   13   ...   30
Байланысты:
УМК сист прог

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

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

#include

#include

#include

void line()

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

return;}

main ()

{

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}

};

int i,j;

float p1, p2, z;

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

line();

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

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

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

printf("\n");}

line();
/* Матрицаны өңдеу */

p1 = 1;

p2 = 1;

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);

line();

getch();

}

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

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

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

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

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



#include

#include

#include

void line()

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

return;}

main ()

{

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},

};

int i,j;

int L1,L2,L;
clrscr();

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

line();

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

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

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

printf("\n");}

line();
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

}

L= abs(L1 - L2);

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

getch();

}

Бақылаусұрақтары


  1. Екі өлшемді жиымды – матрицаны сипаттау, бастапқы мәндерді тағай­ындау тәсілдері.

  2. Екі өлшемді жиымды инициалдауды қабаттасқан циклдер арқылы орындау.

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

  4. Матрицалардың көрсетілген элементтерін өңдеу тәсілдері.

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




9 -10 дәріс

Символдар мен сөз тіркестерін өңдеу және оларды пайдалану
С тілінде сөз тіркестері char типті бір өлшемді жиым ретінде қарастырылады, яғни сөз тіркесі – нөлдік байтпен аяқталатын char типті бір өлшемді жиым. Нөлдік байт – барлық биттері де нөлге тең байт, ол ´ \0 ´ символдық константасымен анықталады (тіркес соңы белгісі немесе нөл-терминатор). Сондықтан егер тіркесте k символ болса, онда жиымды сипаттауда k+1 элемент көрсетілуі тиіс.

Мысалы, char a[7] деген сипаттау тіркестің 6 символдан тұра­ты­нын, ал соңғы байт нөлдік екенін білдіреді. С тіліндегі тіркестік (жол­дық) константа – қос тырнақ­шаға алынған символдар жиыны. Мысалы, “Берілген тапсырма” тіркесі, оның соңына нөлдік байтты компилятор автоматты түрде өзі жазады.

Айнымалы мәні болатын сөз тіркесін сипаттау кезінде бірден көрсетуге болады, мысалы,

char S1[10]=”123456789”, S2[]=”Болат”;

Соңғы сөз ұзындығы тіркестің символдары санымен анықталады.

Символдар тіркесін пернелерден енгізу үшін екі стандартты функция – scanf()немесе gets()қолданылады, ал олардың прототиптері stdio.h тақырып­тық файлында болады.

Символдық таңбаларды енгізу/шығару

Символдарды біртіндеп енгізу/шығару үшін printf() және scanf() функция­ларының %c форматы қолданылады.



getch() – параметрсіз функция, басылған перненің кодын (int) бере­ді, экранға ешқандай символ шығармайды.

getchar() – параметрсіз функция. Пернеден символдарды бір-бір­леп енгізеді. Сөз тіркесі <Enter> пернесі басылғанша енгізіле береді, оған дейін оны өз­гер­туге де болады.

putch(c) – бір символды (c – cимволдық айнымалы немесе конс­танта), яғни бір таңбаны ғана экранға шығарады.

putchar(c) – бұл да тек бір таңбаны экранға шығарады.

Бұлар conio.h тақырып файлы бойынша жұмыс істейді.



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

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



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

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

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

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

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

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

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



c ==&c[0];

*c ==’0’;

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

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



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

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



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

Осы қарастырылған екі сипаттау да с1 тіркесінің нұсқауыш екенін білдіре­ді. Компьютер жадының қажетті көлемін айқын көрсетуге де болады. Мысалы, сыртқы сипаттауда келесі жолдың мынадай түрде жазылғаны көрсетілген.



char c[25]=”Білім - өмір шырағы”;

Элементтердің саны жолдың ұзындығынан бір символ артық болуы керек, яғни оның ең соңында ‘\0’ символы болуы тиіс.

Статикалық немесе сыртқы жиымдағы бұрынғы қарастырылған әдеттегі жиымдар оларды қолдану кезінде автоматты түрде 0-мен инициалданған болатын. Ал сөз тіркестерін пайдалану кезінде де статикалық немесе сыртқы жиымдар солар тәрізді 0 символымен инициалданады.

Сөз тіркестерін енгізу функцияларыscanf(), gets(str).

Scanf() функциясы тіркестік айнымалылар мәнін %s форматы­мен енгізеді, бірақ ол тіркесті тек бірінші босорын таңбасына дейін ғана енгізе алады.

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

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

Сөз тіркестерін шығару функциялары сprintf(),puts(),cputs()

printf() – экранға формат арқылы сөз тіркесін шығарады;

сprintf() – экранға printf() сияқты формат арқылы сөз тіркесін шыға­ра­ды, тек олардың түстерін text­color() және textback­ground() функциялары арқылы өзгертуге мүмкіндік береді;

puts(str)экранға сөз тіркесін шығарып, курсорды бірден келесі жолдың ба­сы­на алып барады, мұндағы str – тіркестік константа немесе тіркестік ай­ны­ма­лы. Бұлар stdio.h тақырып файлы бойынша жұмыс істейді.

Екі функция да символдық жиымды нөлдік байтқа дейін шығарады. printf() функциясы символ тіркесі шығарылған соң, курсорды келесі жолға көшірмейді, ол үшін арнайы формат (\n) жазылуы тиіс. Ал puts() функциясы символдар шығарылған соң, автоматты түрде курсорды келесі жол басына көшіреді.




Достарыңызбен бөлісу:
1   ...   6   7   8   9   10   11   12   13   ...   30




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

    Басты бет