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

Билет

Сурак. Алгоритм жне программа дегеніміз не, оларды андай састы­та­ры мен айырмашылытары бар?

Алгоритмберілген есепті шыару жолын реттелген амалдар тізбегі тріне келтіру. Кез келген есепті арапайым амалдарды тізбектей орындау арылы шыаруа болады. Алгоритмді ЭЕМ-де орындау шін оны программа трінде жазып шыу керек.

Программа – алгоритмді машинаа тсінікті нсаулар тізімі ретінде жазу. Программа машинаа тсінікті командалардан трады. Осы командалар тізбегі орындалу барысында есепті нтижесі шыады. рбір ЭЕМ алдын ала жазылан программамен істейді. Процессор программаны рамындаы командаларды кезекпен орындап отырады. Командалар тізбегін программа деп арастыруа болады. Команда бір ана арапайым амалды орындау шін берілген бйры ретінде беріледі. Командалар: арифметикалы немесе логикалы амал; апаратты тасымалдау командасы; берілген сандарды салыстыру командасы; келесі командалара кшу тртібін орындау, т.с.с.Алгоритм жне программа ымдары сас екені крініп тр, алгоритм есепті шыару жолын арапайым рекеттер тізбегімен рнектесе, программа сол рнекті машинаа тсінікті тілмен жазып береді.

 

Сурак. Си тілінде сз тіркестерін дейтін андай функциялар бар? Оларды алай пайдаланады жне олар алай жазылады?

PASCAL тілінде сз тіркестерін деу кезінде олданылатын арнайы тип – string бар. Ал Си тілінде мндай арнайы тип жо. Сз тіркестері char типті бір лшемді жиым ретінде арастырылады, яни сз тіркесі – нлдік байтпен аяталатын char типті бір лшемді жиым. Нлдік байт – барлы биттері де нлге те байт, ол ´ \0 ´ символды константасымен аныталады (тіркес соы белгісі немесе нл-терминатор). Сондытан егер тіркесте k символ болса, онда жиымды сипаттауда k+1 элемент крсетілуі тиіс. Мысалы, char a[7] деген сипаттау тіркесті 6 символдан тра­ты­нын, ал соы байт нлдік екенін білдіреді. Си тіліндегі тіркестік (жол­ды) константа – ос тырнашаа алынан символдар жиыны.

Шартты операторды пайдаланып мнін есептейтін программа рыдар

#include <stdio.h>

#include <math.h>

#include <conio.h>

main()

<

float x,y;

clrscr();

printf(“наты сан тріндегі х мнін енгізііз;”);

scanf (“%f”,&x);

if(x<2)

y=(exp(sinx\2)+sin(exp(x/4)))/x*x+2

else (x>+2)

y=2*x*x+1/sqrt(3*3)

printf(x=%fболанда y=%10,6f\n”, x,y);

getch()

>

Билет

1-сурак. Алгоритмдерді андай асиеттері болады, алгоритмдерді рнектеу жолдары.

Алгоритм ымыны мнін ашатын негізгі асиеттерінен немесе оан ойылатын талаптардан ысаша малматтар келтірейік. ЭЕМ-де орын­далуа тиіс алгоритмдерге мынадай талаптар ойылады:1) ол аны рі дл рнектелуі тиіс – детерминділік асиеті;2) алгоритм шектелген уаыттан со нтиже беруі тиіс, яни алгоритм адамдарыны саны шексіз болмауы керек – нтижелілік асиеті;3) бір тектес есептерге жалпы бір ана алгоритм олданылуы тиіс – жал­пы­лы асиеті;4) алгоритмді кішкене бліктерге блу ммкіндігі болуы ажет – дискреттілік немесе модульдік (бліктік) асиеті. Алгоритм аны, рі дл рнектелуі ажет, алгоритм нтижелі болуы керек, алгоритмні жалпылы асиеті болады, яни бастапы мліметтер мніні бір жиыны бір ана нтиже бе­реді, алгоритмні зік-зік модульдерге бліну асиеті болуы тиіс.

 

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

Си тілінде стандартты функциялармен атар ттынушы зі рас­тыран функцияларымен де жмыс істеу ммкіндігі жасалан. Ол фун­к­цияны алдын ала main функция­сына дейін толы анытау керек немесе оны алдын ала ысаша сипаттап алып, main функциясынан кейін толы анытауа болады. Сондытан, ттынушы функциялары декларациясы екі трде: ысаша сипаттау трінде (main функция­сына дейін) жне анытау трінде (main функциясынан кейін немесе дейін) толы берілуі ммкін.

Функцияны алдын ала сипаттау барысында программалы файл­ды басын­да оны прототипі крсетіледі, йткені main функция­сында оны айнымалылары типтері белгілі болуы тиіс. Ол келесі трі жазылады:

<нтиже_типі> <функция _ аты>(<тип> <айнымалы1>, <тип> <айнымалы2>, …<тип> <айнымалыN>);

3.Тарматы алгоритмдерді программалау тсілдерін пайдаланып, тмен­дегі функцияны мндерін есептейтін программа жазыдар:

 

#include <stdio.h>

#include <math.h>

#include <conio.h>

main()

<

float x,y;

clrscr();

printf(“наты сан тріндегі х мнін енгізііз;”);

scanf (“%f”,&x);

if(x<1,66)

y=(pow(sinx(2*x),2)+5*x+x

else (x>+1.66)

y=(61sqrt(x)-17)/sqrt(4)+x*x+pow(cos(4*x),2);

printf(x=%fболанда y=%10,6f\n”, x,y);

getch()

>

 

Билет