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

Void print(int gg, int mm, int dd)

{ printf(“\n жыл: %d”,gg);

printf(“\t ай: %d”,mm);

printf(“\t күн: %d”,gg);

}

Енді программада осы функцияны төмендегідей түрде шақырсақ,

printf(2006, 10, 15);

Оның нәтижесі:

жыл: 2006 ай: 10 күн:15

болады.

Келесі функция да ешқандай мән қайтармайды және оның ешқандай параметрлері де жоқ:

#include <stdio.h> //vremia.cpp

Void real_time(void)

{ printf(“\nТекущее время: %s”,_ _TIME_ _ “(час: мин: сек.)”);

main()

{

real_time();

}

нәтижесі: 14:16:25 (час:мин:сек.)

болады.

47. Айнымалылардың әрекет ету аймағы дегеніміз – прог-рамманың орындалу сәтіндегі пайдалануға болатын айныма-лылардың анықталу ережелері. Айнымалылардың үш түрлі – ауқымды (глобальды), жергілікті (локальды) және өзгермелі (формальды) типтері болады. Жергілікті айнымалылардың әрекет ету аймағы – осы жергілікті айнымалылар жария етілген блоктар. Бұл блоктан шыққаннан кейін жергілікті айнымалылардың атаулары мен олардың мәндерін пайдалануға болмайды. Өзгермелі, яғни формальды айнымалылар – тұтынушы функциясының сипатталуы мен анықталуы тақырыбында көрсетілген параметрлері. Формальды параметрлер функция тұлғасында жергілікті айнымалылар сияқты пайдаланылады. Олардың әрекет ету аймағы – функция тұлғасы болып табылатын блок. Ауқымды айнымалылар функциялардан тысқары түрде, яғни программаның басынан соңына дейін белгілі болып жарияланады. Мұндай айнымалылар программаның кез келген жерінде пайдаланыла береді, бірақ олар алғашқы қолданылуы алдында сипатталып, берілген мәні болса, ол меншіктелуі тиіс. Ауқымды айнымалылардың әрекет ету аймағы – олар жарияланған сәттен программа жұмысының аяғына дейінгі кезең. Си тілінде функцияны стандартты түрде шақыру кезінде оның аргументтерінің соңғы меншіктелген мәндері пайдала-нылады, яғни функция тұлғасына аргументтердің түпкі мәні емес, олардың өзгертілген көшірме мәндері беріледі. Ком-пьютер жадында функцияның формальды параметрлеріне арналған орын бөлінеді де, осы орындарға функцияны шақырған кезде аргументтердің қазіргі нақты мәндері орналасады.

Мұнан соң, функция стектегі аргументтер мәнін пайдалана отырып, оларды өзгерте де алады. Бірақ функция тұлғасынан шығысымен-ақ, оның ішінде өзгертілген айнымалылар мәндері бірден жоғалады, ал шақырылған функцияның жұмысы барысында параметр ретінде берілген аргументтердің нақты мәндері өзгертілмеуі тиіс.

Дегенмен қажет болып жатса, онда функцияны оған жіберілген аргументтер мәнін өзгерту үшін пайдалануға болады. Мұндайда функцияға аргумент ретінде айнымалылардың мәндері емес, олардың адрестері жіберіледі. Ал сол аргументтің мәнін пайдалану үшін «*» операциясын пайдалану керек.

Төменде x пен y сияқты екі аргументтің бір-бірімен орындарын ауыстыратын функция мысалы келтіріліген:

Void z1(int *X, int *y)

{ int t;

t=*x;

*x=*y;

*y=t;

}

Программадан осы функцияны шақырып пайдалану мысалы:

int a=2, b=3;

Void z1(int*, int*);

. . .

printf(“\n a=%d, b=%d”, a, b);

z1(&a, &b);

printf(“\n a=%d, b=%d”, a, b);

. . .

Нәтижесі:

a=2, b=3

a=3, b=2

48. С тілінде функция өзін өзі шақырып та пайдалана ала-ды, мұндай функция рекурсивті деп аталады.

Берілген n бүтін санының факториалын есептейтін (n!=123…n) рекурсивті функция мысалы:

fakt (int n)

{

int b;

if (n == 0) return 1;

b = fakt(n-1)*n;

return n;

}

Осы функцияны енгізілген n мәні үшін кез келген бүтін санның факториалын есептеуде қолданудың толық прог-раммасы төмендегі мысалда келтірілген.

Рекурсивті функциялар Бүтін сандардың факториалын анықтау программасы.

#include <conio.h>

#include <stdio.h>

#include <math.h>

float long fakt(int m)

{

if (m==0)

return 1;

else

return((float)m*fakt(m-1));

}

main ()

{

float p;

int n;

printf("Бүтін сан енгізіңіз n : ");

scanf("%d",&n);

for (int k=0; k<=n; k++)

{ p=fakt(k);

printf(" %i!= %-15.0f\n",k,p);

}

puts("Аяқтау үшін Enter\n");

getch();

}

49. Символдарды біртіндеп енгізу-шығару үшін printf(), scanf() функцияларының %c форматы қолданылады. Бұлардан бөлек екі функцияны қарастырайық:getchar() – параметрсіз функция. Пернеден сим-волдарды бір-бірлеп енгізеді. Сөз тіркесі Enter пернесі басылғанша енгізіле береді, оған дейін оны өзгертуге болады.putchar(с) – с символын экранға шығарады.

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

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

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

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

Символдық константа осы сөз тіркестері жазылған жады аймағына сілтейтін нұсқауыш болып табылады. Символдық тіркестер жиымын беру кезін-де компилятор компьютер жадының қажетті көлемін анықтау үшін жиымды сипаттаған-да, оны тіркестік константа арқылы ини-циалдауға болады. Мысалы: char c[]="максимал баллды есептеу";Әдеттегі жиым қолданылатын жағдай сияқ-ты бұл жиым аты - с осы жиымның алғашқы элементіне сілтейтін нұсқауыш болып та-былады. Мысалы: c = =&c[0]; *c = ='м'; *(c+1) = = c[1] = = 'а'; Символдар тіркесін пернелерден енгізу үшін екі стандартты функция – scanf()немесе gets() қолданылады, ал олардың прототиптері stdio.h тақырыптық файлында болады.scanf( ) функциясы тіркестік айнымалылар мәнін %s форматымен енгізеді, бірақ ол тіркесті тек бірінші босорын таңбасына дейін ғана енгізе алады.Ал gets() функциясы арасында босорыны бар тіркестерді енгізеді, енгізу ENTER пернесімен аяқ-талады. Екі функция да тіркес соңына нөлдік байт қо-сып жазады. Оның үстіне тіркес – символдық жиым, ал жиым аты – оның компьютер жадындағы алғашқы адресіне сілтеме болғандықтан, тіркестік айнымалы атының алдына «&» символы жазылмайды. printf() – экранға формат арқылы сөз тір-кесін шығарады; сprintf() – экранға printf() сияқты формат арқылы сөз тіркесін шығарады, тек олар-дың түстерін textcolor() және textback-ground() функциялары арқылы өзгертуге мүмкіндік береді; puts(str) – экранға сөз тіркесін шыға-рып, курсорды бірден келесі жолдың ба­ сына алып барады, мұндағы str – тіркес-тік константа немесе тіркестік айныма-лы. Бұлар stdio.h тақырып файлы бойынша жұмыс істейді.

51. 1) strlen(str) функциясы str сөз тір-кесіндегі символдар санын (соңғы нөлді есепке алмайды), яғни жолдың ұзындығын анықтайды, оның типі int, тақырыптық файлы <string.h>

2)strcat(stroka1,stroka2) функциясы тір-кестерді біріктіру үшін қолданылады. Ол stroka1 және stroka2 тіркестерін бірік-тіріп, нәтижені stroka1 айнымалысына меншіктейді.

3) strcmp(stroka1,stroka2) функциясы екі сөз тіркесін салыстыру үшін қолданылады. Егер олар бірдей болса, функцияның мәні 0-ге тең болады, әйтпесе ол екі тіркестің айырмасын береді. Егер stroka1<stroka2 болса, нәтиже <0 болады, ал stroka1> stro-ka2 болса, нәтиже >0 болады. Көбінесе екі тіркестің бірдей еместігін анықтау үшін қолданылады.

4)strcpy(str1, str2) функциясы сөздердің көшірмесін алу үшін қажет, мұндағы str2 айнымалысындағы сөз тіркесі str1 айнымалысына көшіріледі

5) strstr(str1,str2) функциясы 2-ші көрсетілген жолды 1-ші жолдың ішінен іздейді.

6) strset(str,ch) функциясы берілген тіркестегі барлық символдарды көрсетілген тіркеске (ch) ауыстырады.

7) strtod(str1,str2) функциясы берілген тіркесті double типті санға ауыстырады.

8) strchr(str,c) функциясы берілген тіркестегі коды көрсетілген символдың позициясын анықтайды.

9) strrev(str) функциясы берілген тіркестің барлық символдарын керісінше бейнелейді.

10) strpbrk(str1,str2) функциясы 2-ші тіркестің кез келген символын 1-ші сөзден іздейді.

52. Turbo Си программалау жүйесі Си тілінде программа құрастырып, оны орындауға мүмкіндіктер береді.

Жалпы тұтынушы мынадай әрекеттерді орындай білуі керек:

  • программаның мәтінін жазып, дискіде программа файлы ретінде сақтау;

  • программаны компиляциядан өткізіп, егер синтак-систік қателері бар болса оларды түзету;

  • программаны орындап, нәтижесін алу.

Сонымен, кез келген программа оны теру, компиляциялау, құрастыру, атқарылушы модульді жасау және орындап нәтиже алу сатыларынан өтуі тиіс. Терезе нөмірі оның оң жақ жоғары жағында орналасады. Керекті терезеге (1 – 9 ) көшу үшін:

- Alt+0 пернелерін басқанда шығатын терезелер тізімінен керектісін таңдау арқылы;

- Alt+3 деп терезе нөмірін 3-ті енгізіп көшу;

- F6 пернесі арқылы терезелердің бірінін біріне көшуге болады.

F5 пернесі арқылы терезені үлкейтуге немесе аздап кішірейтуге болады.

Меню жолында 11 команда бар, олар әр түрлі қызметтер атқарады, әр менюді таңдағанда, оның ішкі командалары ашылады. Солардың кез келгенін таңдап орындай аламыз. Программа іске қосылып, терезе ашылғаннан кейін, курсор жұмыс алабында тұрады.Меню қатарына F10 пернесі арқылы шығып, ESC арқылы жұмыс алабына ораламыз.Меню қатарының командаларын және төменгі сатылы командаларының қажеттісін ← ↑ → ↓ бағыттауыштар арқылы таңдай аламыз. Команданы орындау үшін Enter пернесін басамыз. Осы әрекеттерді тышқан қолтетігімен де қалыпта-ғыдай етіп орындауға болады. Командалар тізімі

  • Ёқосымша әрекеттер орындау. File (файл) – файлдармен жұмыс істеу.

  • Edit (түзету) – ашық терезедегі мәтінді түзету режимдерін орындау.

  • Search (іздеу) – іздеп табу әрекеттерін орындау.

  • Run (атқару) – программаны орындау.

  • Compile (компиляция) – программаны компиляциядан өткізу.

  • Debug ( отладка) – программаны жөндеу.

  • Options (варианттар) – орта параметрлерін тағайындау.

  • Windows (терезе) – тереземен жұмыс істеу.

  • Help (көмек) – анықтамалық жүйеден көмек алу.

53. Options менюінің командалары Турбо Си ортасының келісім бойынша тағайындалатын параметрлерін көру және оларды өзгерту мүмкіндігін береді. Олардың көптеген мәндерін өзгертпей, қалдыруға болады. Мұнда түйінді сөздер түсін (16 түс) өзгерту мүмкіндігі бар (Options/En-viroment/Colors/Syntax).Directories командасы тақырыптық файлдар каталогын (Include Directories) және кітапханалық функциялардың (Library Directories) каталогын және терілген файлдар мен олардың нәтижелік файлдары (Output Directory) қайда орналасатыны көрсетіледі. Қосымша әрекеттер жұмыс істеп тұрған файлдар-ды анықтау, ішкі Ассемблерді іске қосу сияқты әрекет-терді орындайды.

File менюінің ішкі командалары:

Open F3 Бұрын жазылған файлды ашу {A:\LB1}

New Жаңа файл ашу

Save F2 Файлды дискіге жазып сақтау

Save as … Файлды басқаша түрде жазып сақтау

Save all Барлығын да жазып сақтау

Change dir Директорийды өзгерту

Print Ашық терезедегі файлды қағазға басу

Dos shell DOS-қа уақытша шығу (Turbo Си-ден)

Exit Alt-X Turbo Си-ден шығып кету