русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Void main(void)


Дата додавання: 2013-12-23; переглядів: 1638.


Return(-1);

Return(i);

Int i,j,k;

Index(s1,s2)

Substr(str1,str2,L,k,m);

Clrscr();

Void main(void)

Int i,j;

Substr(s1,s2,L,k,m)

Getch();

Int i,j,s;

Summa(N,a);

Clrscr();

Int i,j,N;

puts("\n Жиым өлшемін N(<50) енгізіңіз \n");

scanf(“%d”,&N);

printf("\n Мәліметтерді енгізіңіз \n");

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

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

{

printf("\n a[%d][%d]=", i+1, j+1);

scanf("%d", &a[i][j]);

}

}

void summa(int n,int a1[ ][50])//функцияны анықтау

{

/* Жиымның оң элементтерінің қосындысын есептеу*/

for (s=0,i=0; i<n; i++)

{

printf("\n");

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

if (a1[i][j]>0)

s+=a1[i][j];

}

printf("\a Қосынды = %d, Press any key... ",s);

}

5- мысал. Берілген s1 символдар тізбегінен k-сыншы символдан бастап ұзындығы L болатындай бағыныңқы s2 тізбегін бөліп алатын substr функциясын қарастырайық:

char s1[],s2[]; int L,k,m;

{

if(L+k>=m)k=m-L-1;

for (i=1,j=0;i<L+k; i++,j++)

s2[j]=s1[i];

}

#include <stdio.h>

#include <conio.h>

{

char str1[80],str2[80]; int L,k,m=0;

puts("\n сөз тізбегін енгізіңіз \n:");

while((str1[m++]=getchar())!=’\n’)

;

printf("\n");

/* m өз мәнін сақтап қалады */

printf("\n L және k мәндерін енгізіңіз:\n");

scanf(“%d %d”,&L,&k);

printf("%s\n",str2);

}

6-мысал. Берілген s1 символдар тізбегінің құрамында бағыныңқы s2 тізбегінің бар жоқтығын анықтайтын index функциясын қарасты­райық. Егер s2 тізбегі s1 символдар тізбегінің құрамында бар болса, онда index функциясы s2 тізбегінің s1-дегі орнын (индексін) анықтайды:

char s1[],s2[];

{

for (i=0,s[1]!=’\0’;i++)

{

for (j=i,k=0;s2[k]!=’\0’&& s1[j]==s2[k];j++,k++)

;

if(s2[k]==’\0’)

}

}

char str1[]= “информатика”;

char str2[]= “форма”;

#include <stdio.h>

#include <conio.h>

{clrscr();

printf("%d\n", index(str1,str2));

}

7-мысал. Функцияның параметрі ретінде оған нұсқауышты пайдалану мысалын қарастырайық. Функция cos(x)-тің туындысын есептейді.

double proiz(double x,double dx,double(*f)(double x));double fun(double z);int main(){ double x; /*туынды есептелетін нүкте*/ double dx; /*ығысу*/ double z; /*туындының мәні*/ scanf("%f,%f",&x,&dx); z=proiz(x,dx,fun); /* функцияны шақыру */ printf("%f",z); return 0;}double proiz(double x,double dx,double(*f)(double z)){ double xk,xk1,pr; xk=fun(x); xk1=fun(x+dx); pr=(xk1/xk-1e0)*xk/dx; return pr; } double fun( double z) { return (cos(z)); }

Жоғарыда қарастырылған funфункциясы­н кез келген функцияның туындысын табу үшін қолдануға болады. Ол үшін анықталған funфункциясы­ның тұлғасын өзгерту керек немесе proiz функциясын шақырған кезде туындысы қарастырылып отырған функцияның атымен шақырса болғаны. Мысалы, sin(x) функциясының туындысын табу үшін жоғарыда қарастырылған proiz функциясын

z=proiz(x,dx,sin);

түрінде шақыру жеткілікті болып саналады.

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

1. Тұтынушы функциясын сипаттау дегеніміз не?

2. Егер функцияның параметрлері жоқ болса, ол қалай сипатталады?

3. Тұтынушы функциясы мен стандартты функциялардың айырмашылығы неде ?

4. Функция аргументтерін беру жолдарын атаңыз?

5. “Жергілікті” және “ауқымды” айнымалылардың айырмашылығы.

6. “Жергілікті” айнымалылардың әрекет ету аймағы ұғымы.

7. “Ауқымды” айнымалылардың әрекет ету аймағын түсіндіріңіз.

8. Return операторының қолданылуы және атқаратын қызметі.

дӘРІС№13

Жазбамен жұмыс.

Си тіліндегі құрылымдар өзара логикалық байланысқан әртүрлі типті мәліметтерді байланыстырады. Мәліметтердің құрылымдық тип­те­рі келесі сипаттаумен анықталады:

struct құрылым_ аты

{

элементтерді сипаттау;

};

Құрылымға компьютер жадынан орын бөлу үшін құрылымдық айнымалыны анықтап алу керек:

struct құрылым_аты айнымалы_аты;

Құрылымдарды анықтау барысында олардың элементтеріне бас­тап­қы мәндерді меншіктеуге болады. Құрылым элементтерінің мәнде­рін енгізу үшін ағымдық енгізу операторы cin>> немесе форматпен енгізу операторы – scanf қолданылады.

Құрылымдармен келесі амалдарды орындауға болады:

1) Құрылымның адресін алу амалы. Құрылымның адресін алу үшін құрылымдық айнымалыға нұсқауыш (&) амалы қолданылады.

2) Құрылымның элементін пайдалану үшін нүкте (.) амалы (тіке­лей ену) немесе (->) (нұсқауыш бойынша ену) амалы қолданылады.

Құрылымдық айнымалы float, int, char типті айнымалылар сияқты пайдаланылуы мүмкін. Мысалы:

struct gr/* құрылым аты */

{char fio[10];/* құрылым элементі */

int est[25]:/* құрылым элементі */

int nomer;/* құрылым элементі */

}

gruppa1;/*құрылымдық айнымалы аты */

struct gr gruppa2;/* құрылымдық айнымалыны хабарлау*/

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

struct date { int day,month,year;};

d[5]={{1,3,1980},

{5,1,1990},

{1,1,2002}};

Құрылымдарды пайдалану мысалы:

#include <stdio.h>

#include <string.h>

#include <conio.h>

struct Spisok {

char Fio[20];

char Grup[10];

int Ot[3];


<== попередня лекція | наступна лекція ==>
Void main(void) | Float sum(t)


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн