Си тілі. Программаны жобалау



Курстық жұмыстың жалпы мазмұны:
Кіріспе
Есептің қойылымы және тапсырманы талдау ... ... ... ... ... ...4.бет.
1. Теориялық бөлім ... ... ... ... ... ... ... ... ... ... ... ... ...5.11.бет.
2. Программаны жобалау ... ... ... ... ... ... ... ... ... ... ..12.13.бет.
3. Программаны жүзеге асыру ... ... ... ... ... ... ... ... ... 14.15.бет.
Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 18.бет.
Әдебиеттер тізімі ... ... ... ... ... ... ... ... ... ... ... ... ... ... .19.бет
Қосымша А: Программаның модульдік схемасы ... ... ... ... ..16.бет.
Қосымша Б: Программа листингі ... ... ... ... ... ... ... ... ... .17.бет.
Кіріспе
Cи тілінде кез келген программа бір немесе бірнеше функциялар мен қажетті бір немесе бірнеше модульдерден тұрады. Си тілінде қарапайым программаны мысал ретінде қарастырайық.
#include
Main()
{
Int F;
F=9;
Printf(“%d”,F);
}
Компиляторды жүктеу барысында алдыменен препроцессор іске қосылады. Препроцессор #-фунт символынан басталатын препроцессор нұсқауларын іздестіре бастайды. Бұл нұсқаулардың негізгі қызметі бастапқы код мәтінін өзгерту. Нәтижесінде пайдаланушыға көрінбейтін уақытша файл пайда болады. Компилятор жүктелу нәтижесінде осы файлды оқып орындалатын файлға түрлендіреді (компиляция жасайды). Бұл әдіс #include дериктивасында да қолданылып, препроцессорге көрсетілген файлды бастапқы код мәтініне қосуға мәжбүр етеді. Сол себепті, компилятор бастапқы код мәтінін өндеуге кіріскенде барлық қосымша файдар кірістіріліп тұрады.
# include-“<” және “>” таңбалары арқылы аты көрсетілген файды тіркеу керектігін білдіретін препроцессор нұсқауы (командасы);
#include - stdio.h (кіріс шығыс ағысы) файлын тексеру.
Main() негізгі функция және басқа функциялардан айырмашылығы оның операциялық жүйемен шақырылуында. Басқа функцияларды программа кодын орындау барысында, негізгі функцияда шақыру қажет.
Курстық жұмыстың мақсаты,осы си тілінде массивті қолдана отырып, функциялар мен әр түрлі директиваларды қолданып, массивті кездейсоқ сандармен толтыра отырып.Негізгі және қосымша функциялар арасындағы байланысты көрсету.
Қолданылған әдебиеттер тізімі
1. Бөрібаев. Программа тіліне кіріспе. Оқу құралы.
2. Н.С.Заурбеков,Б.Ж.Жұмажанов.Алгоритмдеу және программалау тілдері. Оқу құралы.-Алматы,2008.-325 бет.
3. Г.П.Котлинская,О.И. Галиновский.Программирование на Си.Справочное пособие.- Минск «Вышэйшая школа»,1991.-156 стр.
4. Н.Культин. С/С++ в задачах и примерах.-СПб.:БХВ-Петербург,2008.-288 с.: ил..

Курстық жұмыстың жалпы мазмұны:

Кіріспе

Есептің қойылымы және тапсырманы талдау-----------------------4-бет.

1. Теориялық бөлім------------------------------ ---------------------5-
11-бет.

2. Программаны жобалау---------------------------- --------------12-13-
бет.

3. Программаны жүзеге асыру------------------------------ ------14-15-
бет.

Қорытынды-------------------------- ----------------------------------- --
-18-бет.

Әдебиеттер тізімі----------------------------- --------------------------
--19-бет

Қосымша А: Программаның модульдік схемасы------------------16-бет.

Қосымша Б: Программа листингі--------------------------- ----------17-
бет.

Кіріспе

Cи тілінде кез келген программа бір немесе бірнеше функциялар мен
қажетті бір немесе бірнеше модульдерден тұрады. Си тілінде қарапайым
программаны мысал ретінде қарастырайық.

#includestdio.h

Main()

{

Int F;

F=9;

Printf(“%d”,F);

}

Компиляторды жүктеу барысында алдыменен препроцессор іске қосылады.
Препроцессор #-фунт символынан басталатын препроцессор нұсқауларын
іздестіре бастайды. Бұл нұсқаулардың негізгі қызметі бастапқы код мәтінін
өзгерту. Нәтижесінде пайдаланушыға көрінбейтін уақытша файл пайда болады.
Компилятор жүктелу нәтижесінде осы файлды оқып орындалатын файлға
түрлендіреді (компиляция жасайды). Бұл әдіс #include дериктивасында да
қолданылып, препроцессорге көрсетілген файлды бастапқы код мәтініне қосуға
мәжбүр етеді. Сол себепті, компилятор бастапқы код мәтінін өндеуге
кіріскенде барлық қосымша файдар кірістіріліп тұрады.

# include-“” және “” таңбалары арқылы аты көрсетілген файды тіркеу
керектігін білдіретін препроцессор нұсқауы (командасы);

#include stdio.h - stdio.h (кіріс шығыс ағысы) файлын тексеру.

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

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

Есептің қойылымы және тапсырманы талдау

1.Есептің берілгені:

Қандайда бір n натурал саны берілген. Барлық Пифогордың 3 қабырғаларын
табу. Әр қайсысы анықталған n натурал санынан кіші болуы тиіс. Яғни барлық
натурал 3-ті: а,в,с: (а=b=c=n);

2.Есептің алгаритмі

• Массивті кездейсоқ сандармен толтыру.

• Функцияны шақыру.

• Үштік (а,в,с) қабырғаларына қатысты Пифогор формуласын қолдану.

• n нен кіші элементтерін жауапқа шығару.

Теориялық бөлім

Енгізу және шығару функциялары.

Си тілінде өзіңдік енгізу және шығару функциялары бар. Олардың жалпы
сипатталу түрі мынандай:

Scanf(“форматтау” және адрестер жолы);

Форматтау-айнымалының берілген мәнінің типін анықтайды.

Адрестер жолы-айнымалының мәнінің жадыдағу орналасу адресін
анықтайды.Адрес жолы & символы арқылы сипатталады.Мысалы:

Scanf(“%d”,&a);

Printf(“форматтар жолы”,объект);

Мұндағы фоматтар жолы жауапқа шығаратын объектінің типін
анықтайды.Формат түрін % символы арқылы анықтаймыз. Объект айнымалы,
константа, өрнек бола алады.

Printf(“%d”,a);

Mассив

Массив деп-бір типтегі элементтердің логикалық байланысқан жиынтығын
айтады.мысалы мынандай тізбек

0 1 1 2 3 5 8 13 21

Фибоначчи тізбегінің 9 элементін құрайды(алғашқы 2 санды таңдап алып
келесі санды алдыңғы екеуін қосу жолымен алынады), ал мынау өзіне және
бірге бөлінетін жай сандар тізбегінің алғашқы 7 элементі:

1 3 5 7 11 13 17

Осындай бір текті тізбектерді массивті Си тілінде сипаттап, оған
бастапқы мән беріп инициалдау үшін былай жазамыз.

int fib[8]={0,1,1,2,3,5,8,13,21}; немесе

int fib[] ={0,1,1,2,3,5,8,13,21}; деп көрсетеміз.

Мұндағы fib-массив аты, оның элементтерінің типі int, ал ені, яғни
ұзындығы-9, массив элементтерінің индекстері 0-ден бастап нөмірленеді, сол
себепті 9 элемент 8 индекспен көрсетіледі. Мәндері толық көрсетілсе,
индексті жазбасада болады.Ал былай болса:

Int fib[8]={0,1,2,3}; қалған элементтері 0 болып саналады.

n=10; k=2; fib[n-k]={0,1,2,3}; десе де болады.

Жоғарыдағы элементтің 7-ші элементін бір бүтін айнымалыға меншіктеу
үшін былай жазамыз.

Int a=fib[6]; a=8

Массивті сипаттау кезінде оның ені нақты санмен көрсетіледі, мысалы:
а[20],a[n] деп жазу үшін алдын ала

#define n 20; жолы көрсетіледі немесе

Const n=20; болып жазылады.

Массив элементтерін анықтау үшін немесе енгізу үшін көп жағдайда For
параметрлі қайталану операторын қолданамыз. Мысалы:

For (i=0;in; i++)

{ scanf (“%d” ,&a[i]);

Printf (“%d”,a[i]);

}

Егер массив екі өлшемді болса онда, міндетті түрде 2 цикл жазылады.
Мысалы:

For (i=0; in; i++)

For (j=0; jm; j++)

Scanf (“%d”,&a[i][j]);

Қайталану операторы

Қайталану опрераторы програмистке белгілі бір шартқа сәйкес
программаның белгілі бір бөлігін бірнеше рет қайталап орындауға мүмкіндік
береді.

For (операторының жалпы түрі):

For()(өрнек 1; өрнке 2; өрнке 3) оператор;

Мұндағы өрнек 1-әдетте айнымалының бастапқы мәнің береді; өрнек 2-
циклдың жалғасу шарты. өрнке 3-әдетте циклдың орындалу кезіндегі цикл
айнымалысының қандай да бір өзгерісін береді (++--).

Өрнек 1 қайталану барысында бір рет қана орындалады. Егер өрнек 2 мәні
ақиқат болса (немесе нөлге тең емес болса), цикл денесі бір рет орындалады
да, өрнек 3 есептелінеді,сосын өрнек 2 мәні тағы да тексеріледі. For
операторы-бұл алғашқы шартты цикл: цикл денесі орындалу керек емес екнін
бастапқыда анықтайды. Оператор қарапайым және құрылымды болуы мүмкін.

Мысалы:

Main()

{

Int x;

For(x=1; x=10; x++)

Printf(“%d%d”,x,x++);

}

For операторындағы өрнек 3-ге азайту операторларын қолдануға болады.

For(n=10; n=0; n--)

Printf(“%d\n”,n);

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

Y=2;

For(n=4; y=100; y=y*n)

Өрнек 3 тің орнына кез келген дұрыс құралған өрнекті қоюға болады. Мысалы:

For(n=5; n100; n=n+10)

Printf(“%d\n”,n);

For(d=10.0; d500; d=d*1.5)

Printf(“%f\n”,d);

If,If-Else шартты операторлары.

Си тілінде таңдау құрылымының 3 түрі бар.If таңдау құрылымы шарттқа
сәйкес қайсыбір әрекеттің орындалуын (шарт ақиқат болса), орындалмауын
(шарт жалған болса) анықтайды.IfElse таңдау құрылымы жоғарыда айтылған
құрылымға сәйкес келеді.

If құрылымын жалғыз таңдауы бар құрылым деп аталынады.Себебі онда 1
әрекет ғана таңдалады. IfElse құрылымын 2 таңдауы бар құрылым деп атайды.
Себебі онда 2 альтернативті әрекеттің арасында таңдау орындалады.

If таңдау құрылымының жалпы түрі:

If(өрнек) оператор1;

IfElse құрылымының жалпы түрі:

If(өрнек) оператор1;

Else оператор2;

IfElse құрылымы өрнек мәні ақиқат болған жағдайда ғана (нөлден өзгеше
болған кезде) оператор1; орындалады, Керісінше жағдайда оператор2;
орындалады.

Логикалық операторлар

Екі немесе оданда көп шарттарды біріктіру үшін логикалық операциялар
қолднылады. Си тілінде олардың саны 3-еу.

&&(және), (немесе),!(“жоқ”немесе”емес”).

• А11&&A12 өрнегінің мәні ақиқат болады егер екі өрнектің мәндері
ақиқат болса.

• A11A12өрнектің мәні ақиқат болады, егер екі өрнектің ең болмағанда
біреуі ақиқат болса немесе екеуі де ақиқат болса.

• !A11 өрнегінің мәні ақиқат болады, егерде A11 өрнегінің мәні жалған
болса және керісінше.

Функциялар

Cи тілінде стандатты функциялармен қатар тұтынушы өзі құрастырған
функциялармен де жұмыс істеу мүмкіндгі жасалған. Ол функцияны алдын ала
main() функциясына дейін толық анықтау керек немесе оны алдын ала қысқаша
сипаттап алып, (main() функциясынан кейін толық анықтауға болады.
Сондықтан, тұтынушы функциялары декларациясы екі түрде қысқаша
функциясынан кейін немесе дейін) толық берілуі мүмкін.
Функцияны алдын ала сипаттау барысында программалық файлдың басында
оның прототипі көрсетіледі, өйткені негізгі функцияда оның айнымалылары
типтері белгілі болуы тиіс. Ол келесі түрде жазылады.

нәтиже-типі функция аты (типайнымалы1;,типайнымалы2; ,...
типайнымалы N);

{

Функция коды

}

Прототиптегі жай жақшаларға алынған айнымалылар идентификаторларын
көрсетпесе де болады, өйткеі тілдің компилятордары оларды өңдемейді.

Параметрлер тізімімен берілген fan функциясын сипаттаудын мысалын
қарастыайық, мысалы:

Float fun(int,float,int,int);

Функция прототипі компиляторға программа мәтінінде негізгі
программадан (main()) кейін оның толық анықтамасы келтірілетінін
білдіреді.нәтиже типі функция аты(параметрлер тізімі)

Нәтиже типі return операторларының көмегімен функцияның шақырылу
нүктесіне қайтарылатын мәннің типін көрсетеді. Егер функция типі
көрсетілмесе, қайтарылатын мән int типті деп саналады. Параметрлер тізімі
үтірмен ажыратылған типтер мен параметрлер аттарының тізбегінен тұрады.
Егер функцияның параметрлері болмаса да, жай жақшалар бәрі бір міндетті
түрде көрсетілуі тиіс.

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

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
СИ бағдарламалау тілі және жобалануы
«Санды тап» ойыны
СИ бағдарламалау тілі және жобалануы туралы
“Бағдарламалау тілдері” пәнінен Си тілін үйрену электрондық оқулық құру
СИ тіліндегі функциялар
Сандарды спираль бойынша орналастыру
Графика және анимация
Обьектілі - бағытталған программалау негіздері
Программалау тілдерін оқыту әдістемесі
Си тілінің пайда болу тарихы мен мүмкіндіктері
Пәндер