прог. Программалау жне программа, программалау тілдері. Программалау тілдеріні трлері. Программаны тзету (отладка), тестілеу
Скачать 102.98 Kb.
|
Алгоритм – қатаң алғышарттар – орындаушы үшін мақсатқа жеткізетін, яғни есепті программа құру арқылы шығаруға мүмкінді беретін бұйрықтардың жиынтығы. Ол – арнайы іс-әрекеттердің белгілі бір кезекпен орналасқан тәртібі. Ол алгоритмді атқарушы ЭЕМ-ге жұмыс тәртібін түсіндіретін ережелер мен нұсқаулар тізбегінен тұрады. Сонымен, әрбiр нұсқау – команда. Алгоритмде командалар тәртібінің маңызы зор. Алгоритмнiң командалары кезекпен бiрiнен кейiн бiрi орындалады. Алгоритмнiң орындалу кезiнде оны орындаушыға келесi жолы қандай нұсқау бойынша орындалатыны белгiлi болуы қажет. Ал орындаушының жүзеге асыра алатын командалар жиыны командалар жүйесiн құрайды. Алгоритм құру кезінде орындаушының құрылғыларын емес, оның командалар жүйесін білу қажет, яғни алгоритмді орындаушы түсініп, жүзеге асыра алатын көптеген алғышарттармен таныс болу абзал. Орындаушыларды формальдыемес (адам) және формальды (робот, машина немесе программалау тілдері) деп бөлуге болады. Алда біз тек формальды орындаушымен жұмыс жасайтын боламыз. Алгоритмнің ең маңызды қасиеті мынада: орындаушыдан есепті шығару әдісін түсіну талап етілмейді, орындаушы инструкцияларды түсініп, оларды орындай алу керек. Есептерді шешу алгоритміне қойылатын талаптар жоғары. Ол дискреттілік, жалпыламалық, компактілік, анықталғандық және нәтижелілік деген қасиеттерге ие болу керек. Дискреттілік әрбір алгоритм үздікті, дискретті сипатқа ие, яғни бірінен кейін бірі орындалатын бөле аяқталған қадамдар тізбегін құрайды. Алгоритмнің әрекеттері бір-бірінен бөлек және олардың әрқайсысының орындалуы өзінің алдындағысынан кейін ғана мүмкін болуы–дискреттілік қасиет болады. Жалпыламалық бир типтес есептерің кең класын шығаруға жарайтындай болу қабілеті. Алгоритмнің компактілігі дегеніміз – оның қысқалығы, инструкцияларының минимальдығының қасиеті. Өте жақсы құрылған алгоритм болып қысқа және есептеу санының минимальды қасиетіне ие алгоритм саналады. Анықталғандық – алгоритм дәл анықталған болуы керек жөнінде және орындаушыға кез-келген алғышарттар қоюға жол бермейтіндей оны сипаттайтын алгоритмнің қасиеті. Нәтижелілік – алгоритмнің орындалуы белгілі бір нәтижеге жеткізетін түрі. Алгоритмнің бұл қасиеті қажет нәтижені қадамдардың ақырлы санынан кейін қамтамасыз етеді. Түсініктілік – бұл орындаушының командалар жүйесін есепке алғандағы алгоритм құрылуының міндеттілігі, яғни алгоритм орындаушыға түсінікті түрде бекітілу қажет. Алгоритмнің әр әрекетінің орындалу ережесін кез-келген орындаушы бірмәнді түсінуі керек. Бұл бірмәнділік қасиет деп аталады. Алгоритмдердi графика жолымен жазу, онан кейiн оны программаға айналдыру iстерi мемлекеттiк стандартпен бекiтiлiп ақпарат өңдеу жұмысында кеңiнен қолданылып келедi. Алгоритмдерді келесі түрлерге бөлуге болады:
Алгоритмдерді жазудың бірнеше әдістері бар, олар бір-бірінен көрнектілігімен, компактілігімен, формализация дәрежесімен және т.б. көрсеткіштерімен ерекшеленеді. Кең тараған әдістер: графикалық, сөздік, алгоритмдік тілдегі және ЭЕМ үшін программалар. .Алгоритмдер 3 типті болады (есептеу үрдістер типтері): сызықты, тармақталған, циклдық.
2,Программалау және программа, программалау тілдері. Программалау тілдерінің түрлері. Программаны түзету (отладка), тестілеу. Программалау тілдері Программаларды жасауда қазіргі заманғы компьютерлерде әр түрлі деңгейдегі программалау тілдері пайдаланылады. Жалпы жағдайда тіл деп информацияның жазылыуын және оның түрленуін белгілі ережелер бойынша формальдыетіп беруші құралдарды түсінеміз. Тілдің құрамында информацияның негізгі элементтерін құрудың құралдары және осы элементтерден әр түрлі мазмұнды құрылымдар құруға арналған ережелер жүйесі бар. Программалау тілі деп деректерді жазуға және оларды белгілі ережелер бойынша өңдеуге арналған адам мен компьютерді байланыстыратын формальды тілді айтамыз. Програмалаудың әр түрлі тілдерін пайдалану. Әр түрлі белгілер бойынша жіктеуге болатын бірнеше жүздеген программалау тілдері бар. Ең жалпысы тілдің машинаға жақындық дәрежесі бойынша жіктеу болып табылады. Осы белгісі бойынша программалау тілдері екі үлкен топқа бөлінеді:машинаға тәуелді тілдер;машинаға тәуелсіз тілдер;Машинаға тәуелді тілдер өз кезегінде былай бөлінеді:машина тілі;машинаға бағдарланған тілдер; Машинаға бағдарланған тілдер кейде автокодтар деп те аталады. Машинаға бағдарланған тілдердің екі деңгейі бар: символдық кодтау тілдері, басқаша айтқанда мнемокодтар;макротілдер. Макротілдер машина тілінің командаларына тікелей ұқсастығы жоқ макрокомандаларды пайдалануға рұхсат етеді. Макрокомандаларды пайдалану программаны қысқартады әрі тілді жасау құралдарының жиынын кеңейте отырып программалаушының еңбегінің өнімділігін арттырады. Машинаға тәуелсіз тілдер программаларды бөлшектеу дәрежесіне қарай екі топқа бөлінеді:процедулалы- бағдарланған тілдер;проблемалы – бағдарланған тілдер. Процедулалы – бағдарланған тілдер есепті шешу алгоритмін сипаттауға арналған, сондықтан да оларды кейде алгоритмдік тілдер деп те атайды. Алгоритмдік тіл деген ұғым программалау тілі деген ұғыммен сәйкес елмейді. Егер алгоритмдік тілде жазылған алгоритмдік жазу компьютерге ендіруге тікелей жарамды және дайын жұмысшы программаға түрленетін болса, онда мұндай алгоритмдік тіл программалау тілі де бола алады. Кейбір алгоритмдік тілдер тек оларға кейбір құралдарды қосқаннан кейін ғана программалау тілі болады. Проблемалы – бағдарланған тілдер есептерді сипаттау үшін қызмет атқарады. Бірақ алгоритмдік тілдер өздігінен барлық проблеманы, тіптен программаны да шеше алмайды. Мұндай тілде жазылған программа компьютерде тікелей орындалмайды, ол орындалу үшін алдын ала сол компьютердің машина тіліне аудару жеткілікті қиын мәселе болып табылады. Алгоритмдік тілден программаны машина тіліне аудару жұмысын компьютердің әмбебаптығын пайдаланып, оның өзіне жүктеуге болады. Бұл үшін әрбір алгоритмдік тілден машина тіліне формальды аударуға яғни аударудың ережесін алгоритм түрінде тұжырымдауға мүмкіндік беретіндей болуы керек. Егер, осы алгоритмді бір рет машиналық программа түріне келтіріп алсақ, онда одан кейін осы программаның көмегімен компьютердің өзі берілген алгоритмдік тілде жазылған кез келген программаны нақтылы компьютердің машина тіліне аударып бере алады. Мұндай арнайы аудармашы-программа жоғарыда айтқанымыздай транслятор деп аталады. Машина тілі Компьютердің ақпараттық бөлігі тікелей түсінетін жалғыз тіл: ол – машина тілі. Машина тілі деп копьютердің құрамындағы процессор командаларының кодын айтамыз. Архитектурасы әртүрлі процессорлардың машина тілдері де түрліше болады. Тек өзара үйлестірілген процессорларда ғана машина тілдері бірдей болады. Мұндай процессорлардың командалар жүйесі төменнен жоғары қарай үйлесімділікте болады деп айтылады. Сонымен әрбір компьютердің өзінің машина тілі болады және ол тек осы тілде жазылған программаларды ғана тікелей орындай алады. Машина тілінде программалау деп программаға енетін командалардың реальды кодтарын тікелей жазуды айтамыз. Командалардың кодтары әр түрлі санақ жүйелерінде берілуі мүмкін:
Бағдарламаны тестілеу – Тестирование программы – бағдарламада қарастырылған режімдерде де, қарастырылмаған режімдерде де жұмыс істейтін бағдарламаны жан-жақты тексеру.
С++ тілі Си тілінің толықтырылған жиыны деуге болады. Си және С++ тілдерінің мен мәләметтер типтерінің аттары болып табылады. С- де класс түсінігі жоқ. С/С++ тіліндегі тіліндегі кез-келген программа main функциясынан тұрады. Мұның орындалу барысында басқа функциялар шақырылады. Программа құрылымы: Кез-келген программа комментарийден басталады. Комментарийді Си тілінде блок түрінде беруге болады. Содан кейін препроцессор дерективасы орналасады. Препроцессор директивасы берілгенде кітапханалық файлда - тақырыптық файлда орналасқан кодты программаға қою .h файлдар деп аталады. Тақырыптық файлдарда әртүрлі тұрақты мен кейін main функциясы сипатталған бөлігі орналасады. Main функциясы... одан орындалуы басталып, Return инструкциясы шақырылғанда аяқталады. Main функциясының денесі фигуралық жақшада орналасады. Си тілінде жазылған программа текстінде кездесетін инструкциялар (нұсқаулар) препроцессор директивасы (ПД) деп аталады. Олар орындалады және программаның текстін өзгертуге мүмкіндік береді. Мысалы текстегі кейбір лексемдерді өзгерту, басқа файлдан мәтінді да бір бөлігін орындауға, трансляциялауға шектеу қою т.б. Барлық препроцессор директивасы таңбасымен басталады және үтір (;) #include директивасы. Бұл программаға көрсетілген файлдағы мәліметтерді қосады. Бұл директиваның екі формасы бар: #include "файл аты" # include #include директивасы іштестірілген болуы мүмкін, яғни қосылатын файлда тағы кездесуі мүмкін. бұл қосу үшін қолданады, яғни стандартты кітапханалық функциялар прототиптерінен тұратын файлдарды қосуға мүмкіндік береді. Сондықтан С тіліндегі программа осы директивадан #define - жиі қызметші сөздерді, операторларды және өрнектерді кейбір идентификаторлармен ауыстыруға мүмкіндік береді Синтаксис – тілдің мәтіні (конструкциясы) құрылатын ережелер жиынтығы. Бұл ережелер тілде болуы мүмкін тіл символдары тізбектерін (мәтіндер) береді. Мүмкін емес мәтіндер машиналық бағдарламаларға аударылмайды және транслятормен қабылданбайды. Семантика – тілдің әрбір конструкциясының мәнін анықтайтын ережелер жиынтығы. Семантика бағдарламаның детерминациясын, яғни белгілі бастапқы мәліметтерде пайда болған есептегіш процестің бірмәнділігінқатамасыз етеді. Айнымалылар. Айнымалылар типтері Айнымалылар деп программаның орындалу барысында әр түрлі мәндерді қабылдай алатын шамаларды айтады. Олар идентификатормен белгіленіп,әрбір уақытта белгілі бәр мәнге ие болады.Айнымалылардың белгіленуі:AlFA,X3,SUMMA,A1B8т.с.с.Айнымалылар қарапайым және индексті болуы мүмкін.Индекспен берілген айнымалалар массив деп аталады. Программа орындалу барысында мәндер өзгеретін шамалар айнымалылар деп аталады. Айнымалылар да, тұрақтылар сияқты программаның var деген қызметші сөзінен басталатын арнайы бөлімінде сипатталынуы тиіс Айнымалылар сипаттамасының жалпы түрі: Var <идентификатор> : <түрі>; мысалы: intX,Y,Z; Max, min: real; Идентификатор (Identifier) - операциялық жүйе немесе программалау тілі элементтеріне атау ретінде қойылатын лексикалық бірлік. Ол берілген бір мәліметке не олардың тобына қойылады, ал өзі латын әріптері мен цифрлардан тұратын, бірақ міндетті түрде әріптен басталатын символдар тізбегінен құралады. Кейбір тілдерде #, &, -, _ тәрізді өзге символдар және ұлттық әріптер пайдаланыла береді. Идентифатор төмендегі ережеге сай таңдалуы қажет: 1. Олар латын әріптерінің х немесе астын сызу басталуы қажет . 2. Оның ішінде латын әрпі және астын сызу белгілері қолданылуы мүмкін. Бөтен таңбаларды қолдануға болмайды. 3. Си тілінде кіші және үлкен латын әріптері өзгеше деп саналады. 4. Идентификатордың ұзындығы әр программаның жүйесінде әр түрлі . Си ++ те шектеуі жоқ. 5. Объектілердің идентификаторы тілдің, түйінді сөздерінің стандартты функциядан және библиотека аттарынан өзгеше болуы қажет.
С++ тілінде алдын ала программалары жасалып стандартты модульге жинақталып қойылған, қажет кезінде пайдалануға болатын объектілердің бірі стандартты функциялар болып табылады. Олар жиі кездесетін математикалық және басқа да функцияларды есептеу үшін қолданылады. Стандартты функцияны жазу үшін міндетті түрде функцияның аты және жақшаның ішінде аргументі көрсетілуі қажет. Стандартты функциялар: fabs(x), sіn(x), cos(x), asin(x), acos(x), tan(x), exp(x), log(x), sqrt(x), atan(x), т.с.с. Қосымшада функция тізімдері мен типтері, жазылу жолдары көрсетілген. Функцияны есептеу барысында аргумент пен функция типтерінің əр уақытта сəйкес келе бермейтінін есте сақтаған жөн. С тіліндегі стандартты функцияларды пайдалану үшін Комментарий – түсініктеме ретінде қолдануға болатын символдар тізбегі. Олар ұлттық алфавиттерді де пайдалана береді. Комментарий басы мен аяғы /* ... */ осындай таңбалармен шектелуі тиіс. Олар бір немесе бірнеше жолдардан да тұра алады. С++ тілінде жол соңында тұратын комментарийлер // симолдарынан кейін орналасады. С жəне С++ тілдерінде құрастырылған есептерді бір компилятор арқылы шығаруға болатындықтан, көбінесе түсінік-темелердің жоғарыдағы екі түрін де пайдалана беруге болады. /* программа ішіндегі комментарийлер осылай орналасады */ Программалау тілінің белгілі бір іс-əрекетті орындай алатын тиянақты мағынасы бар ең қарапайым сөйлемі оператор болып табылады. Тіл объектілерін, яғни программада пайдаланылатын мəліметтердің атаулары мен типтерін, олардың алғашқы мəндерін алдын ала тағайындау программаның сипатталуы болып саналады. Енгізу, шығару операторы. С++ тілінде С тіліндегі стандарт функциялар енгізу-шығаруға қолданылады. Сонымен қатар С++ тілінде >> енгізу және << шығару операторы - кез-келген типті мәліметтермен жұмыс жасауда қолданылады. Меншіктеу операторы символдар арқылы жазылады. Кез келген ; таңбасымен аяқталатын өрнек меншіктеу операторы болып табылады. Өрнектің бір түріне бос оператор жатады, ол жай ; операторы. С тілінде меншіктеу операторының бірнеше түрі бар. Жалпы меншіктеу операторының жазылу форматы мынадай болады: <айнымалы> = <айнымалы><операция><өрнек>; Мұны С тілінде қысқаша былай жазуға болады: <айнымалы><операция> = <өрнек>; Төменде бірнеше мысал келтірілген. a=a+b; → a+=b; a=a*b; → a*=b; a=a-b; → a-=b; a=a/b; → a/=b; С тілінде тізбектеле жазылған меншіктеу операцияларын да қолдануға болады. Мысалы: sum = a = b; Мұнда меншіктеу операторы оңнан солға қарай орындалады, яғни b-ның мəні a-ға меншіктеледі, ал а-ның мəні sum-ға меншіктеледі. Меншіктеу операторын былай да жазуға болады: Арттыру немесе кеміту (инкремент жəне декремент) операциялары ++ жəне – - түрінде жазылады. Бұлар кез келген операндтың мəндерін бірге арттыруға немесе кемітуге мүмкіндік береді. Инкремент, яғни арттыру операциясы (++) жəне декремент (--), кеміту операциясы айнымалы (тек айнымалы мəнін) мəнін бірге арттырады немесе кемітеді. Олар айнымалы мəнін згертеді, яғни жасырын түрдегі меншіктеу амалы болып табылады. Кейде олар жеке оператор түрінде жазылады: |