Автор: Пользователь скрыл имя, 17 Марта 2012 в 17:27, реферат
Көлемі жағынан орташа болып келетін бағдарламаларды(бірнеше мың жолды код) құрастырғанда құрылымды бағдарламалау қолданылады. Бағдарламаның құрылымы шығарылып жатқан есептің құрылымын көрсету керек, сонда бағдарлама мәтінінен есепті шығару алгоритмі түсінікті болады. Ол үшін қарапайым операторлар жеткіліксіз, алгоритмнің нақты құрылымын дәлірек көрсететін құралдар қажет. Сондықтан бағдарламалауға жаңа ұғым – ішкі бағдарламалар енгізілді.
Кіріспе
Негізгі бөлім
1. Ішкі бағдарламалар.
1.1. Процедуралар.
1.2. Функциялар.
2. Төменгі деңгейлі бағдарламалау тілдері. Ассемблер
3. Жоғары деңгейлі бағдарламалау тілдері.
3.1. Фортран
3.2. Кобол
3.3. Алгол
3.4. Бейсик
3.7. Си
3.8. Ява
4. Жүйелік бағдарламалау. Паскаль тілінде бағдарламалау.
5. Объектіге бағытталған бағдарламалау.
5.1. Visual Basic
5.2. Си++
Кіріспе
Негізгі бөлім
1. Ішкі бағдарламалар.
1.1. Процедуралар.
1.2. Функциялар.
2. Төменгі деңгейлі бағдарламалау тілдері. Ассемблер
3. Жоғары деңгейлі бағдарламалау тілдері.
3.1. Фортран
3.2. Кобол
3.3. Алгол
3.4. Бейсик
3.7. Си
3.8. Ява
4. Жүйелік бағдарламалау. Паскаль тілінде бағдарламалау.
5. Объектіге бағытталған бағдарламалау.
5.1. Visual Basic
5.2. Си++
Қорытынды.
Көлемі жағынан орташа болып келетін бағдарламаларды(бірнеше мың жолды код) құрастырғанда құрылымды бағдарламалау қолданылады. Бағдарламаның құрылымы шығарылып жатқан есептің құрылымын көрсету керек, сонда бағдарлама мәтінінен есепті шығару алгоритмі түсінікті болады. Ол үшін қарапайым операторлар жеткіліксіз, алгоритмнің нақты құрылымын дәлірек көрсететін құралдар қажет. Сондықтан бағдарламалауға жаңа ұғым – ішкі бағдарламалар енгізілді.
Бағдарламалау тілдері – бұл адам мен компьютер қатынасы үшін арнайы жасалған формальді тілдер. Бағдарлама – бұл компьютерді басқаруға қажет логикалы реттелген командалар тізбегі. Барлық нақты бар бағдарламалу тілдері жоғар және төменгі деңгейдегі тілдерге бөлінеді. Әр бағдарламалу тілінің алфавиті, сөздік қоры, грамматикасы және синтаксисі, семантикасы болады.
Процедуралы тілдердің аса маңызды жіктелетін белгіоерінің бірі олардың деңгейі болып табылады. Бағдарламалау тілінің деңгейі оның құрылысының семантикалық (ойлық) сыйымдылығымен және бағдарламалаушы адамның бағытымен анықталады.
Жоғарғы деңгейдегі бағдарламалау тілдері процедуралық (ФОРТРАН, АЛГОЛ, КОБОЛ) және процедуралық емес болып бөлінеді. Функциялық (ЛИСП) және логикалық (ПРОЛОГ) бағдарламалау тілдері. Объектіге-бағытталған бағдарламалау тілдері. Дерктер қорының бағдарламалау тілдері. Интернетке арналған бағдарламалау тілдері. Модельдеу тілдері. Екілік тіл. Он алтылық тіл. Ассемблер, Макроассемблер тілі.
Таңдалған бағдарламалау тілінде бағдарламаны құру үшін жалпы жағдайда келесі компоненттерге ие болу керек: мәтіндік редактор, компилятор, байланыс редакторы, функция библиотекасы. Қазіргі интегралданған жүйелерде тағы бір компонент – отладчик болады, ол бағдарлама жұмысының орындалу барысында талдау жасауға мүмкіндік береді.
Бағдарламаны дайындауды тізбектелген кезеңдер қатарын бөлуге болады: есептің қойылымы, бағдарламаны жобалау, модельді құру, алгоритмді талдау, алгоритмді орындау, алгоритмнің және оның күрделілігін талдау, бағдарламаны тестілеу, құжаттау.
Бағдарламаны жобалауға арналған әр түрлі амалдар мен тәсілдер бар. Қазіргі кездегі амал абстракцияны қолданып декомпозициялауға негізделген. Архитектурасын жобалау әдістері екі топқа бөлінеді: өңдеуге бағытталған және деректерге бағытталған. Өңдеуге бағытталған әдістер келесі идеялардан тұрады: модульдік бағдарламалудан, функционалдық декомпозициядан, деректер ағымын қолдана отырып жобалаудан, жобаны құрылымдық талдау технологиясынан. Деректер құрылысын қолдануға бағытталған жобалау әдісін, Джексон әдістемесіне, Уорнер әдістемесіне, иерархиялық диаграмма әдістемесіне, жобалаудың объектіге-бағытталған әдістемесіне бөледі. Модельдерді құру барысында екі принціпті қолданады: дедуктивті (жалпыдан жекеге) және индуктивті (жекеден жалпыға). Есептегіш емес алгоритмге сұрыптау және іздеу жатады. Сызықтық іздеу процедурасы сілемнің барлық элементтерін қарапайым тізбектеп қарап шығудан және оларды эталонмен салыстырудан тұрады. Тең бөліп іздеу реттелген деректерге қолданылады. Келесі сұрыптаулар аса кеңінен қолданылады: қосу, таңдау және алмастыру көмегімен. Екілік қосу әдісі. Қосумен жақсартылған сұрыптау. Ағаш көмегімен сұрыптаудың жақсартылған әдісі. «Шейкерлі» сұрыптау. Қабыршақ әдісі. Файлдарды сұрыптау.
1. Ішкі бағдарламалар.
Қандай да бір алгоритм бойынша жұмыс жасайтын және өзіне негізгі бағдарламаның кез келген бөлігінен қатысуға болатын бағдарламаның жекелеме бөлігін ішкі бағдарлама деп атайды. Ішкі бағдарламалар негізгі бағдарламының ішіндегі кіретін және шығатын орындары бар тұйықталған бөлігі болып табылады. Негізгі бағдарлама мен ішкі бағдарламадағы айнымалылар бір-біріне бағынышты емес.
Ішкі бағдарламаның екі түрі болады – процедуралар және функциялар. Олардың айырмашылығы: процедура белгілі бір операторлар тобын орындаса, функция осыған қоса қандай да бір нәтижені есептеп, оны негізгі бағдарламаға қайта жібереді. Бұл нәтиженің өзіне тән типі болады. Си++ бағдарламалау тілінде «процедура» деген ұғым жоқ, онда тек қана функция қолданылады. Егер функция ешбір нәтиже есептемесе, онда ол «ешқандай» (void) типін қайтарады.
Кез келген бағдарламада бірнеше процедура немесе функция қолданылуы мүмкін. Процедура мен функция сипаттау бөлігінде айнымалылар бөлігінен кейін жарияланады.
Бағдарламаның орындалуы негізгі бағдарламаның операторларынан басталады. Қажет жағдайда ішкі бағдарлама шақырылып, оның операторлары орындалады. Содан соң басқару қайтадан негізгі бағдарламаға беріліп, бағдарламаның орындалуы жалғасады.
Ішкі бағдарлама негізгі бағдарлама сияқты құрылады, яғни бағдарлама атауынан, операторлар бөлігінен және аяқталуынан құрылады.
Параметрдің екі түрі болады: формальды және шын мәніндегі параметрлер.
Шын мәніндегі параметр деп процедураны шақырар кездегі негізгі бағдарламадағы параметрлерді айтамыз. Ал формальды параметрлер ішкі бағдарламаның атауынан кейін көрсетіледі.
Формальды параметрлер тізімінде айнымалылар аталып, олардың типтері көрсетіледі.
Формальды параметрлерді екіге бөлуге болады:
1) параметр-аргументтер, яғни процедура үшін кіретін мәліметтер;
2) параметр-нәтижелер, осы параметр-нәтижелер арқылы процедураның жұмысының нәтижесін негізгі бағдарламаға қайтарады.
Параметр-нәтижелер тізімдерінің алдында var сөзі жазылады. (Паскаль).
1.1. Процедуралар.
Процедура – белгілі ретпен іске асырылатын іс-әрекеттер жиыны, жалпы бағдарламаның бір бөлігі.
Процедуралардың жалпы түрі:
| Бейсик | Паскаль | Си++ |
Процедура атауы | SUB <атауы>(<форм. параметрлер тізімі>); | procedure <атауы> (<форм. параметрлер тізімі>); | void <атауы>(<форм. параметрлер тізімі>) |
Денесі | <операторлар бөлігі>
| begin <операторлар бөлігі >; end; | { <операторлар бөлігі> }; |
Аяқталуы | END SUB | жоқ | жоқ |
Паскаль тіліндегі мысал: бір санның факториалын табу.
procedure fact (k : integer; var a : integer);
var x : integer;
begin
a:=1;
for x:=1 to k do
begin
a:=x*a;
end;
end;
Мұндағы k – формальды параметр-аргумент, яғни негізгі бағдарламадан келген сан. а – формальды параметр-нәтиже, яғни негізгі бағдарламадан келген санның факториалы.
Паскаль тіліндегі процедураны негізгі бағдарламаның командалар бөлігінен шақырылу командасын қарастырайық:
<процедура аты> (<шын мәнінде берілген параметрлер тізімі>);
Мысалы: fact(i,s);
1.2. Функциялар.
Функция – басқа мәліметтер алу үшін анықталған мәліметтерге қолданылатын компьютердің іс-әрекеті. Функцияның ерекшелігі – оның орындалуы барысында бір ғана нәтиже шығады, ал кіру параметрлері бірнешеу болуы мүмкін. Нәтиже функция атауымен белгіленіп, негізгі бағдарламаға беріледі.
Функциялардың жалпы түрі:
| Бейсик | Паскаль | Си++ |
Функция атауы | FUNCTION <атауы> (<форм. параметрлер тізімі>); | function <атауы> (<форм. параметрлер тізімі>): <функция типі> | <функция типі> <атауы>(<форм. параметрлер тізімі>) |
Денесі | <операторлар бөлігі>
| begin <операторлар бөлігі >; end; | { <операторлар бөлігі>; }; |
Аяқталуы | END FUNCTION | жоқ | жоқ |
Санның квадратын анықтайтын функцияның мысалдары:
Бейсик:
FUNCTION SQR % (X AS INTEGER)
SQR% = X*X
END FUNCTION
Паскаль:
function SQR (x : integer) : integer;
begin
SQR:= x*x;
end;
Си++:
int SQR (int x)
{
return x*x;
};
Паскаль тіліндегі функцияны негізгі бағдарламаның командалар бөлігінен шақырылу командасын қарастырайық:
<функция аты> (<шын мәнінде берілген параметрлер тізімі>);
Мысалы: у:=SQR(x);
2. Төменгі деңгейлі бағдарламалау тілдері. Ассемблер тілі.
Қандай да нақты жазылған қолданушы программалары басқа тілге түрлендіретін программаларды транслятор деп атайды. Трансляторларды екі топқа бөлуге болады. Егер кіруші тіл сандық машиналық тілдің символикалық репрезентациясы болса, ондаоны ассемблер, ал кіруші тіл ассемблер тілі деп аталады. Егер кіруші тіл жоғары деңгейлі тіл болса, ал шығатын тіл не сандық машиналық тіл, не оның символикалық репрезентациясы, онда транслятор компилятор деп аталады.
Ассемблер тілі – ол әрбір жеткізуі бір машиналық командаға сәйкес болатын тіл. Ассемблер тілінің программасында машиналық командалар мен операторлардың арасында бірмәнді сәйкестік бар. Мұнда екілік және сегіздік аттар мен адрестердің орнына символдық белгілулер қолданылады.
Ассемблер тілінің басқа жоғары деңгейлі тілден айырмашылықтары:
ассемблер тілінің жеткізілуі мен машиналық командалардың арасындағы бірмәнді сәйкестік;
машиналардағы барлық объектілер мен командаларға қатынау;
бір тектес компьютерлердегі жұмыс.
Ассемблер тілін қолданудың екі негізгі ерекшеліктері бар: жоғары өнімділігі мен машинаға қатынау. Көбіне программада барлық кодтың азғантай пайызы программаның орындалу уақытының көбірек пайызына жауап береді. Мысалы, программаның 10% оның орындалу уақытының 90%-на жауапты. Бұл программаның 10% оны ассемблер тіліне жазып алуды жүзеге асырады. Бұл процессті реттеу(tuning) деп аталады. Ассемблердегі программа көлемі бойынша соншалықты кіші және орындалу жылдамдығы бойынша соншалықты тез болуы мүмкін.
Ассемблер тілі мен жоғары деңгейлер тіліндегі программалық салыстырулар (реттеушімен және реттеушісіз)
| Программаны жазуға кеткен адам жылының саны | Секундына программаның орындалуы |
Ассемблер тілі | 50 | 33 |
Жоғары деңгейдегі тіл | 10 | 100 |
Икемдеуге дейінгі аралас | ||
10 % сынаулы | 1 | 90 |
90 % қалғаны | 9 | 10 |
Барлығы | 10 | 100 |
Икемдеуден кейінгі аралас | ||
10 % сынаулы | 6 | 30 |
90 % қалғаны | 9 | 10 |