Сурак. Тұтынушы функциясын сипаттау дегеніміз не?
Билет
Сурак. Алгоритм және программа дегеніміз не, олардың қандай ұқсастықтары мен айырмашылықтары бар?
Алгоритм – берілген есептің шығару жолын реттелген амалдар тізбегі түріне келтіру. Кез келген есепті қарапайым амалдарды тізбектей орындау арқылы шығаруға болады. Алгоритмді ЭЕМ-де орындау үшін оны программа түрінде жазып шығу керек.
Программа – алгоритмді машинаға түсінікті нұсқаулар тізімі ретінде жазу. Программа машинаға түсінікті командалардан тұрады. Осы командалар тізбегі орындалу барысында есептің нәтижесі шығады. Әрбір ЭЕМ алдын ала жазылған программамен істейді. Процессор программаның құрамындағы командаларды кезекпен орындап отырады. Командалар тізбегін программа деп қарастыруға болады. Команда бір ғана қарапайым амалды орындау үшін берілген бұйрық ретінде беріледі. Командалар: арифметикалық немесе логикалық амал; ақпаратты тасымалдау командасы; берілген сандарды салыстыру командасы; келесі командаларға көшу тәртібін орындау, т.с.с.Алгоритм және программа ұғымдары ұқсас екені көрініп тұр, алгоритм есептің шығару жолын қарапайым әрекеттер тізбегімен өрнектесе, программа сол өрнекті машинаға түсінікті тілмен жазып береді.
Сурак. Си тілінде сөз тіркестерін өңдейтін қандай функциялар бар? Оларды қалай пайдаланады және олар қалай жазылады?
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()
>
Билет