C бағдарламасы бойынша практикум құру



Жұмыс түрі:  Курстық жұмыс
Тегін:  Антиплагиат
Көлемі: 33 бет
Таңдаулыға:   
----------------------------------- ----------------------------------- ----------
Әбілқас Сағынов атындағы Қарағанды техникалық университеті
----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------
Кафедра АТҚ
----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------
Курстық жұмыс
----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------
C++ бағдарламасы бойынша практикум
----------------------------------- ----------------------------------- ----------
( пәннің атауы)
----------------------------------- ----------------------------------- ----------
Тақырып: С++ тілінде массивтерді сұрыптау және іздеуді ұйымдастыру
----------------------------------- ----------------------------------- ----------
қосымшасын әзірлеу
----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------
Қабылдады:
----------------------------------- ----------------------------------- ----------
Сайлауқызы Ж
----------------------------------- ----------------------------------- ----------
(баға) (оқытушының аты-жөні)
----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------
(қолы) (уақыты)
----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------
Комиссия мүшелері: Орындаған:
----------------------------------- ----------------------------------- ----------
Жаңбыров Е
----------------------------------- ----------------------------------- ----------
(қолы, аты-жөні) (студенттің аты-жөні)
----------------------------------- ----------------------------------- ----------
СИБ-21-2
----------------------------------- ----------------------------------- ----------
(қолы, аты-жөні) (группа)
----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------
(қолы, аты-жөні)
----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------

----------------------------------- ----------------------------------- ----------
Қарағанды 2022
Әбілқас Сағынов атындағы Қарағанды техникалық университеті

Факультет ИТ БЕКІТЕМІН
Кафедра АТҚ Кафедра меңг.
(қолы)
_____ ________ 2022 ж.

КУРСТЫҚ ЖҰМЫС ТАПСЫРМА

C++ бағдарламасы бойынша практикум пәні бойынша
СИБ-21-2 тобының студенті Жаңбыров Е
Тақырып: С++ тілінде массивтерді сұрыптау және іздеуді ұйымдастыру қосымшасын әзірлеу
Бастапқы мәліметтер: С++ бағдарламалау тілі, MS Visual Studio бағдарлама құру ортасы

Тапсырма берілді 2022ж
Жетекші Сайлауқызы Ж қолы
Студент Жаңбыров Е қолы

Мазмұны

Кіріспе
1 Пәндік аймақты сипаттау
1.1 Бағдарламалау тілдерінің жіктелуі
1.2 С++ бағдарламалау тілі
1.2.1 С++ тілінің негізгі операторлары
1.2.2 Массивтер
1.2.3 Көрсеткіштер
1.3 Жобалауға міндеттерді қою
1.4 Әзірленетін қосымшаға қойылатын талаптарды негіздеу
2 Сұрыптау және іздеу алгоритмдеріне шолу
2.1 Қарапайым алмасу әдісі арқылы сұрыптау
2.2 Таңдау әдісі арқылы сұрыптау
2.3 Көпіршік әдісі арқылы сұрыптау
2.4 Шейкер әдісі арқылы сұрыптау
2.5 Екілік ағаш әдісі арқылы сұрыптау
2.6 Бинарлы іздеу алгоритмі
2.7 Интерполяциялық іздеу алгоритмі
2.8 Решето Эратостен іздеу алгоритмі
3. Бағдарламалық қамтаманы жүзеге асыру
3.1 Қолданушыға нұсқаулық
3.2 Тестілеу нәтижелері
Қорытынды
Қолданылған әдебиеттер тізімі

КІРІСПЕ

ХХ ғасырдың елуінші жылдарында электронды шамдардағы компьютерлердің пайда болуымен бағдарламалау тілдерінің қарқынды дамуы басталды. Дербес компьютерлердің пайда болуымен тілдер интеграцияланған даму ортасының құрамдас бөлігі болды. Түрлі кеңсе бағдарламаларында қолданылатын тілдер пайда болды. Қазіргі уақытта бағдарламалау тілдері адам қызметінің әртүрлі салаларында қолданылады.
Бұл тақырыптың өзектілігі компьютерлік технологиялардың дамуы қазіргі бағдарламалау тілдерінің пайда болу процесін анықтайтындығына байланысты.
Зерттеу нысаны бағдарламалау тілдері болды.
Курстық жұмыстың мақсаты қазіргі бағдарламалау тілдері бойынша теориялық материалдарды зерттеу болып табылады.
Практикалық бөлімде шешілетін мәселенің атауы:
- берілген мәндер бойынша абоненттің қалааралық телефон сөйлесулерінің құнын есептеу;
- "телефон сөйлесулеріне ақы төлеу туралы түбіртек"құжатын жасаңыз.
- түбіртектің мәліметтері бойынша белгілі бір күнге қоңыраулардың құнын көрсететін гистограмма жасаңыз.Бағдарламаны өзіңіз машина кодына жазу өте қиын, және бұл күрделілік бағдарлама көлемінің ұлғаюымен және қажетті мәселені шешудің күрделілігімен күрт артады. Шартты түрде, егер бағдарламаның мөлшері бірнеше ондаған Байттан аспаса және деректерді қолмен Енгізушығару операцияларына қажеттілік болмаса, машина коды қолайлы деп санауға болады.
Сондықтан, бүгінде барлық дерлік бағдарламалар бағдарламалау тілдерінің көмегімен жасалады. Теориялық тұрғыдан, бағдарламаны қарапайым адам (табиғи) тілінің көмегімен жазуға болады -- бұл Мета-тілде бағдарламалау деп аталады (ұқсас тәсіл әдетте алгоритм құру кезеңінде қолданылады), бірақ табиғи тілдің жоғары түсініксіздігіне байланысты мұндай бағдарламаны автоматты түрде машина кодына аудару мүмкін емес. [2, Б. 569]
Бағдарламалау тілдері - бұл ресми жасанды тілдер. Табиғи тілдер сияқты оларда алфавит, лексика, грамматика және синтаксис, семантика бар.
Алфавит - бұл қолдануға рұқсат етілген таңбалар жиынтығы, оның көмегімен белгілі бір тілдің сөздері мен шамаларын құруға болады.
Синтаксис-алфавит әріптерінен бағдарламалау тілінің рұқсат етілген дизайнын анықтайтын ережелер жүйесі.
Семантика-деректерді өңдеу процесін жүргізуге мүмкіндік беретін әр тілдік құрылымды біржақты түсіндіру ережелерінің жүйесі.
Синтаксистік және семантикалық ережелердің өзара әрекеттесуі тілдің негізгі ұғымдарын анықтайды, мысалы, операторлар, идентификаторлар, тұрақтылар, айнымалылар, функциялар, процедуралар және т. б. табиғидан айырмашылығы, бағдарламалау тілінде сөздердің (операторлардың) шектеулі қоры және оларды жазудың қатаң ережелері бар.

1 Пәндік аймақты сипаттау

Пәнге бағытталған тіл (ағылш. domain-specific language, DSL -- "пәндік салаға тән тіл") - белгілі бір қолдану саласына мамандандырылған компьютерлік тіл (өрістердің кең спектріне қолданылатын және нақты білім салаларының ерекшеліктерін ескермейтін жалпы мақсаттағы тілге қарама-қарсы). Мұндай тілдің құрылысы және немесе оның деректер құрылымы оның көмегімен шешілетін міндеттердің ерекшелігін көрсетеді[1]. Негізгі ұғымымен языково-бағдарланған бағдарламалау.
Қатаң айтқанда, бағдарламалау тілдерін жалпы мақсаттағы және тақырыпқа бағытталған тілдерге бөлу өте шартты, әсіресе кез-келген протокол немесе файл пішімі ресми түрде тіл екенін ескерсек. Белгілі бір міндеттер үшін пәндік-бағдарланған тілдер ретінде қолданылатын жалпы мақсаттағы тілдердің массасы бар, керісінше, Жалпы мақсаттағы тілдер ретінде қолданылатын пәндік-бағдарланған тілдер бар. Сонымен, жалпы мақсаттағы тілдердің бүкіл отбасын құрған ML тілі (Хаскеллді қосқанда) бастапқыда LCF теоремаларын автоматты түрде дәлелдеу жүйесі үшін DSL ретінде жасалды. Жіктеу конвенциясын көрсететін мысал-BNF тілі (және LexYacc компиляторы): бір жағынан, бұл Мета -- тілдің жарқын мысалы, екінші жағынан, ол бір нақты тапсырмаға арналған.Тілдік-бағдарлы бағдарламалаудың жетекші зерттеушілері (Мартин Уорд, Пол Хьюдак[en], Валид Таха және басқалары) пәндік-спецификалық тілдердің классикалық ретінде келесі мысалдарын келтіреді[4][7] [8]:
Мәтіндік құжаттарды дайындауға арналған TeX LaTeX;
Perl мәтінді басқаруға арналған;
ДҚБЖ үшін SQL;
Графикалық пайдаланушы интерфейсі үшін TclTk;
Құжаттарды белгілеу үшін HTML және SGML;
Аппараттық құралдарды сипаттау үшін Verilog және VHDL;
Mathematica және Maple символдық есептеулерге арналған;
Компьютерлік модельдеуге арналған AutoLisp (CAD);
Пролог предикаттарды есептеу тұрғысынан тұжырымдалған тапсырмалар үшін;
Функциялар тұрғысынан тұжырымдалған тапсырмалар үшін ML және Haskell (Хаскелл кейде денотациялық семантика үшін DSL ретінде анықталады).
Валид Тахидің пікірінше, ЯОП позициясынан Microsoft Excel әлемде кеңіненқолданылатын бағдарламалау тілі болып табылады [8].
Пәнге бағытталған тілдердің басқа мысалдары-дерекқорды басқару тілдері (мұнда SQL-ден басқа, мысалы, FoxPro тілін атауға болады), операциялық жүйелердің командалық тілдері (интерактивті командалық қабықтың тілдері, ең алдымен Unix Shell, JCL тілі сияқты пакеттік тапсырмалар тілдері және Тьюринг бойынша толық емес құрылымдау тілдері).

1.1 Бағдарламалау тілдерінің жіктелуі

Компьютерлік технологияның ілгерілеуі алгоритмдерді - бағдарламалау тілдерін жазуға арналған жаңа және әр түрлі белгі жүйелерінің пайда болу процесін анықтады. Бағдарламалау тілі-компьютерлік бағдарламаларды жазуға арналған Тіл (белгі жүйесі); бағдарламаның сыртқы түрін және орындаушы (әдетте компьютер) оның басқаруымен орындайтын әрекеттерді анықтайтын лексикалық, синтаксистік және семантикалық ережелердің жиынтығын анықтайды. Әлемде алғашқы бағдарламаланатын машиналар пайда болғаннан бері 7 мыңнан астам бағдарламалау тілі (стандартты емес, визуалды және эзотерикалық тілдерді қоса) ойлап табылды. Жыл сайын олардың саны артып келеді. Кейбіреулерін тек осы тілдерді жасаушылар қолдана алады, ал басқалары миллиондаған адамдарға белгілі болады. Кәсіби бағдарламашылар ондаған немесе одан да көп бағдарламалау тілдерінде жаза алады.
Бағдарламалау тілі компьютерге белгілі бір есептеу процесін жүргізуге, әртүрлі нысандарды басқаруды ұйымдастыруға және т. б. мүмкіндік беретін ережелер жиынтығы болып табылатын компьютерлік бағдарламаларды жазуға арналған. адамдар.
Көптеген бағдарламалау тілдері Деректер құрылымын анықтау және басқару, сонымен қатар есептеу процесін басқару үшін арнайы дизайнды қолданады.
1960-1970 жылдары қазіргі уақытта қолданылатын бағдарламалау тілдерінің негізгі парадигмалары жасалды, дегенмен көптеген аспектілерде бұл процесс алғашқы үшінші буын тілдеріне енген идеялар мен тұжырымдамаларды жетілдіру болды:
* APL тілі функционалды бағдарламалауға әсер етті және массивтерді өңдеуді қолдайтын алғашқы тіл болды;
* PL 1 тілі (NPL) 1960 жылдары Fortran және Kobol-дің ең жақсы ерекшеліктерінің үйлесімі ретінде жасалған;
* бір уақытта пайда болған Simula тілі алдымен объектіге бағытталған бағдарламалауды қолдауды қамтыды;
* 1970 жылдардың ортасында мамандар тобы Smalltalk тілін енгізді, ол қазірдің өзінде толықтай объектіге бағытталған;
* 1969-1973 жылдар аралығында С тілі жасалды, ол әлі де танымал және C++ және Java сияқты көптеген кейінгі тілдердің негізіне айналды;
* 1972 жылы prologue құрылды-ең танымал (бірінші емес, жалғыз емес) логикалық бағдарламалау тілі; бағдарламалау тілдерінің әртүрлі классификациясы бар. Ең көп таралған классификацияға сәйкес, барлық бағдарламалау тілдері тапсырманы сипаттау керек терминдерге сәйкес төмен және жоғары деңгейге бөлінеді. Егер тіл табиғи бағдарламалау тіліне жақын болса, оны жоғары деңгейлі тіл деп атайды; егер ол машиналық командаларға жақын болса, ол төмен деңгейлі тіл деп аталады.

1.2 С++ бағдарламалау тілі

Шартты түрде барлық мазмұнын қысқаша сипаттайтын топтарға бөлінеді. Зерттеуді оқығаннан кейін бірнеше бағдарлама жазу арқылы материалды біріктіруге болады. Теориялық біліміңізді тексеру үшін C++ тестін тапсыруға болады. Кестеде теориялық зерттеу кейін сынақтарды тапсыруға және бағдарламаларды жазуға болатын тәжірибе бөлімі бар.
C++ бағдарламалау тілінің негіздері
C++ тіліне кіріспе
IDE орнату, C++ тіліне кіріспе, айнымалыларды жариялау және пайдалану және т.б.
C++ тілінде программа құрылымы
Бағдарламалардың құрылымы - бұл программалар мен синтаксистің негізгі блоктарын нақты анықтау үшін жұмыс аймағын (кодтық аймақ) белгілеу.
Бірінші C++ бағдарламасы
Ең қарапайым C++ бағдарламасы консольде мәтіндік хабарламаны көрсететін бағдарлама.
C++ басқару таңбалары
Шығысты пішімдеу немесе кейбір C++ басқару таңбаларын басып шығару үшін шығыс ағынына итерілген таңбалар
C++ арифметикалық амалдар
Барлық бағдарламаларда бар операциялар күрделірекСәлем Әлем. Айнымалылары бар кез келген манипуляциялар арифметикалық амалдардың арқасында дәл орындалады.
C++ деректер түрлері
Бағдарламаларды түзету процесі бағдарламалауда үлкен рөл атқарады. Бағдарламаны жөндеу кезінде қате орын алса, оны қалай түзетуге болатынын білуіңіз керек.
ASCII кестесі
Windows жүйесінде ақпарат алмасуға арналған американдық стандартты код. Егер сіз осы ОЖ-да бағдарламалап жатсаңыз, осы мақаланы міндетті түрде оқып шығыңыз.
C++ тілінде тағайындау операциялары
C++ программалау тілінде өрнектерді қысқарту үшін тағайындау операциялары деп аталатын арнайы операциялар бар.
С++ тілінде арттыру және азайту амалдары
Көбейту++бір есе арту болып табылады. Азайту--бір кему болы п табылады.
егер операторды таңдаңыз
Таңдау мәлімдемелері бағдарламаға шарттың ақиқат немесе жалғандығына негізделген шешім қабылдауға мүмкіндік береді.
басқа болса, мәлімдемені таңдаңыз
Операторбасқа болсабағдарламашыға шарт ақиқат болғанда әрекетті және шарт жалған болғанда балама әрекетті көрсетуге мүмкіндік береді.
С++ тілінде логикалық операциялар
Логикалық амалдар бірнеше қарапайым (екі немесе одан да көп) шарттардан күрделі (құрама) шарт құрайды. Бұл операциялар бағдарлама кодының құрылымын бірнеше есе жеңілдетеді.
Биттік логикалық операциялар C++
Бұл операциялар жад ұяшықтарының биттерімен жұмыс істейді және екілік арифметикада қолданылады.
C++ тіліндегі оператордың басымдығы
Өрнекте амалдардың орындалу реті.
C++ тілінде шартты операция (таңдау операциясы).
C++ тіліндегі таңдау операторының орнына қолданылатын жалғыз үш орынды (үштік) операторбасқа болса.
Көп таңдауды ауыстыру мәлімдемесі
Егер сіздің бағдарламаңызға екіден көп тармақталу опцияларын қарастыру қажет болса, switch операторын пайдаланыңыз.
Ашық және жасырын C++ деректер түрін түрлендіру
Жасырын деректер түрін түрлендіруді C++ компиляторы, ал анық деректер түрін түрлендіруді бағдарламашының өзі орындайды.
C++ тілінде пішімделген енгізушығару
C++ тілінде енгізушығаруды басқару мүмкіндігі пішімдеуші мүше функцияларымен, жалаушалармен және манипуляторлармен қамтамасыз етіледі.
C++ тілінде кездейсоқ сандар генераторы rand().
Псевдокездейсоқ сандарды құруға арналған бағдарлама.
C++ тіліндегі for циклі
Бірдей бағдарлама коды арқылы қайталанатын өту.
C++ тілінде while циклі
Цикл жалғасу шарты болғанша бірдей әрекетті қайталайтын циклкезіндеақиқат болып қалады.
C++ тілінде while циклін жасаңыз
ATуақытында жасаңызалдымен циклдің денесі орындалады, содан кейін циклды жалғастыру шарты тексеріледі.
үзіліс мәлімдемесі
Операторларүзілісбағдарламада басқаруды өзгерту үшін қолданылады.
мәлімдемені жалғастыру
Операторжалғастыруцикл денесінің кодының қалған бөлігін өткізіп жібереді және циклдің келесі итерациясына өтеді
C++ тіліндегі ерекшеліктер (ерекшелік)
С++ тіліндегі ерекшеліктер бағдарламаның жұмыс істеуі нәтижесінде пайда болатын стандартты емес жағдайларды өңдеудің жақсы құралы болып табылады.
Көрсеткіштер, массивтер және жолдар
C++ тіліндегі массивтер
Массивтер бір типті деректердің үлкен көлемін өңдеу үшін қолданылады.
C++ тілінде бағдарламаның жұмыс уақытын қалай табуға болады
Бұл мақалада біз жұмыс істеуге уақыт тапқан бағдарламалардың мысалдары көрсетілген.
c++ тіліндегі const квалификациясы
Тұрақтылар немесе const айнымалылар, яғни бір рет жарияланған мәндерін өзгертуге болмайтын айнымалылар.
C++ тіліндегі көрсеткіштер
Жад аймағынан деректер блогына және оның ең басына сілтейтін арнайы айнымалылар.
Көрсеткішке көрсеткіш + динамикалық жадты бөлу (1-бөлім)
Көрсеткіштерге арналған көрсеткіштер жадта деректерді сақтаудың тиімді жолы болып табылады.
Көрсеткішке көрсеткіш + динамикалық жадты бөлу (2-бөлім)
Көрсеткіштер арқылы C++ тілінде динамикалық массивтің элементтерін кірістіру және жою.
C++ тіліндегі сілтемелер
Қолданылған кезде сілтемесі автоматты түрде жойылатын көрсеткіштің жасырын түрі болып табылатын арнайы деректер түрі.
C++ тіліндегі динамикалық массив
Бір өлшемді және екі өлшемді динамикалық массивтер, жадты бөлу және босату.
Бағдарламалаудағы литералдар
Литералдар программа мәтінінде сандық мәндерді, жолдарды, белгілерді немесе логикалық тұрақтыларды белгілеу үшін қолданылады.
C++ тіліндегі таңбалар мен жолдар
C++ тілінде жолдармен жұмыс істеуге кіріспе, жолдармен және символдармен жұмыс істеудің негізгі функциялары.
Консольдегі кириллица
Консоль қолданбасында орыс әріптерін (кириллица) дұрыс көрсету.
Құрылымдар мен файлдар
C++ тіліндегі құрылымдар
Программалауда қандай құрылымдар қолданылады, олар қалай жарияланады және инициализацияланады, құрылымдарды пайдаланатын бағдарламалардың мысалдары.
C++ тіліндегі нөмірлер (enum)
Санақтардың не үшін қажет екенін білесіз, оларды өз бағдарламаларыңызда қалай пайдалану керектігін үйренесіз. Көресіз, enum пайдалану арқылы сіздің кодыңыз әлдеқайда түсінікті болады.
C++ тілінде файлдармен жұмыс істеу
Компьютерлік бағдарламалардың көпшілігі файлдармен жұмыс істейді, сондықтан файлдарды құру, жою, жазу, оқу, ашу қажеттілігі туындайды.
Функциялар, жергілікті және ғаламдық айнымалылар, рекурсия
C++ тіліндегі функциялар
Үлкен бағдарламаларды жазу үшін функцияларды пайдалану жақсы екенін тәжірибе көрсетті.
C++ тіліндегі функция прототиптері
Функцияның прототипі мен декларациясын компилятор функцияның дұрыс шақырылуын қамтамасыз ету үшін пайдаланады.
C++ тілінде функцияның шамадан тыс жүктелуі
Функцияның шамадан тыс жүктелуі - аты бірдей, бірақ параметрлері әртүрлі бірнеше функцияларды (екі немесе одан да көп) анықтау.
Әдепкі функция аргументтері
Әдепкі функциядағы параметр мәндері әдепкі функция аргументтері деп аталады.
C++ тілінде кірістірілген функциялар
Басты идея - кеңістік құнына бағдарламаны жылдамдату.
C++ тілінде математикалық функциялар
Тақырып файлындаcmathкейбір жиі қолданылатын математикалық тапсырмаларды орындайтын функциялар анықталған.
C++ тіліндегі жергілікті және ғаламдық айнымалылар
Әрбір айнымалының өз ауқымы бар, яғни айнымалымен жұмыс істеуге болатын аумақ.
C++ тілінде рекурсия
Өзін тікелей (өз денесінде) немесе жанама түрде (басқа функция арқылы) шақыратын функция.
негізгі функция параметрлері (argc, argv)
Егер бағдарлама пәрмен жолы арқылы іске қосылса, оған ақпаратты жіберуге болады, бұл үшін параметрлер барargcжәнеargv[].
Функцияға жолды беру
Функцияға жолдарды қалай беруге болады? Функция параметрлері ретінде жолдарды беру жолдары. Бағдарлама мысалдары, бастапқы код.
Объектіге бағытталған бағдарламалауға кіріспе
C++ тіліндегі сабақтар
C++ тіліндегі сыныптар мен объектілер объектіге бағытталған бағдарламалаудың негізгі ұғымдары болып табылады - OOP.
C++ тілінде сыныптардың конструкторы және деструкторы
Арнайы класс әдістері - конструктор және деструктор.
#ifndef және #endif директивалары
Бұл препроцессор орамы тақырып файлдарын қосу әрекеттерін болдырмайды.
Статикалық: көп мақсатты кілт сөз
Негізгі сөзстатикалық, ол өзгермейтін дегенді білдірсе де, бірнеше қолданылуы бар.
C++ тілінде оператордың шамадан тыс жүктелуі
+ операторын шамадан тыс жүктеңіз және сіз a + b сияқты қарапайым белгілермен жолдар массивтерін және тіпті тұтас нысандарды қоса аласыз.
C++ тілінде оператордың шамадан тыс жүктелуі (2-бөлім)
= (тағайындау), == (теңдік) және [ ] (индекстеу) операторларының шамадан тыс жүктелуі.
C++ тілінде класс интерфейстерін дамыту
Класс интерфейстері дегеніміз не және олар не үшін қажет?
C++ Friend функциялары
Дос функциялары сыныптардың тұтастығын бұзғанымен, сыныптардың жеке қасиеттеріне рұқсат беру қажет және достық функциялардан бас тарту мүмкін емес кездер болады.
C++ бұл көрсеткіш
Бұл мақалада сіз бұл көрсеткіштің не екенін, оны қалай пайдалану керектігін және ол не үшін қажет екенін білесіз.
C++ Friend Classes
Достық сабақтары не үшін қажет? Достық сабақтарын қолданудың мысалы.
C++ тілінде конструкторды көшіру
Нысанның биттік көшірмесі емес, сынып нысандарының нақты көшірмелерін жасау үшін бізге көшіру конструкторы қажет.
Класс мұрагерлігі
OOP негізгі ұғымдарының бірі - мұрагерлікпен таныстыру.
C++ тіліндегі үлгілер (үлгі)
C++ тіліндегі функция үлгілері
Функция үлгілерін жасау үшін үлгілерді жариялау және пайдалану.
C++ тіліндегі сынып үлгілері
Класс үлгілерін жариялау және пайдалану, Стек класс үлгісін жасау мысалы.
Стандартты үлгілер кітапханасы (STL)
жол: STL үлгісінің жол класы

1.2.1 С++ тілінің негізгі операторлары

Оператор - компиляторға белгілі бір математикалық немесе логикалық манипуляцияларды орындауға нұсқау беретін символ. C++ кірістірілген операторларға бай және операторлардың келесі түрлерін қамтамасыз етеді:
1) Арифметикалық операторлар
2) Реляциялық операторлар
3) Логикалық операторлар
4) Биттік операторлар
5) Тағайындау операторлары
6) Басқа операторлар
Арифметикалық операторлар
С++ тілі қолдайтын келесі арифметикалық операторлар бар:

Оператор
Сипаттама
Мысал
+
Екі операнд қосады
A + B 30 береді
-
Біріншіден екінші операндты шегереді
A - B -10 береді
*
Екі операндты да көбейтеді
A * B 200 береді

Алымды азайтқышқа бөледі
BA 2 береді
%
Модуль операторы және бүтін санды бөлуден кейінгі қалдық
B%A 0 береді
++
Көбейту операторы бүтін мәнді бір көбейтеді
A++ 11 береді
-
Бүтін мәнді бір азайтады
A-- 9 береді
Реляциялық операторлар
C++ тілінде қолдау көрсетілетін келесі реляциялық операторлар бар:

Оператор
Сипаттама
Мысал
==
Екі операндтың мәндерінің тең немесе тең еместігін тексереді, иә болса, шарт ақиқатқа айналады.
(A == B) дұрыс емес.
=
Екі операндтың мәндерінің тең немесе тең еместігін тексереді, егер мәндер тең болмаса, шарт ақиқатқа айналады.
(A!=B) дұрыс.

Сол операндтың мәні оң операндтың мәнінен үлкен екенін тексереді, егер солай болса, шарт ақиқатқа айналады.
(AB) қате.

Сол операндтың мәні оң операндтың мәнінен аз екенін тексереді, егер солай болса, шарт ақиқатқа айналады.
(A B) дұрыс.
=
Сол операндтың мәні оң операндтың мәнінен үлкен екенін тексереді, егер солай болса, шарт ақиқатқа айналады.
(A=B) дұрыс емес.
=
Сол операндтың мәні оң операндтың мәнінен аз немесе тең болса, тексереді, егер солай болса, онда шарт ақиқат болады.
(A = B) дұрыс.
Логикалық операторлар
Келесі логикалық операторларға C++ тілі қолдау көрсетеді:

Оператор
Сипаттама
Мысал
&&
Логикалық AND операторы арқылы шақырылады. Егер екі операнд да нөл емес болса, шарт ақиқат болады.
(A && B) жалған.

Логикалық НЕМЕСЕ операторымен шақырылады. Егер екі операндтың біреуі нөлге жатпайтын болса, онда шарт ақиқат болады.
(A B) дұрыс.
!
Логикалық NOT операторымен шақырылады. Операндтың логикалық күйін өзгерту үшін қолданылады. Егер шарт ақиқат болса, онда логикалық NOT операторы оны жалған етеді.
! (A && B) дұрыс.
Биттік операторлар
C++ тілі қолдайтын разрядтық операторлар келесі кестеде берілген:

Оператор
Сипаттама
Мысал
&
Екілік ЖӘНЕ операторы екі операндта да бар болса, нәтижеге аздап көшіреді.
(A & B) 0000 1100 болатын 12 береді

Екілік НЕМЕСЕ операторы операндтардың кез келгенінде бар болса, битті көшіреді.
(A B) 61 береді, бұл 0011 1101
^
Екілік XOR операторы бір операндқа орнатылған болса, бірақ екеуі де емес, битті көшіреді.
(A^B) 49 береді, бұл 0011 0001
~
Екілік бірліктер Толықтауыш операторы униарлы және биттерді аудару әсерін береді.
(~A) таңбалы екілік санға байланысты 2 толықтауыш түрінде 1100 0011 болатын -61 береді.

Екі рет солға жылжыту операторы.Сол жақ операндтардың мәні оң жақ операндпен көрсетілген биттердің санына қарай солға жылжиды.
A 2 240 береді, бұл 1111 0000

Екілік оңға жылжу операторы. Сол жақ операндтардың мәні оң жақ операндпен көрсетілген биттердің санына қарай жылжытылады.
A 2 0000 1111 болатын 15 береді
Тағайындау операторлары
C++ тілінде қолдау көрсетілетін келесі тағайындау операторлары бар:

Оператор
Сипаттама
Мысал
=
Қарапайым тағайындау операторы оң операндтардан сол операндқа мәндерді тағайындайды.
C = A + B C тіліндегі A + B мәніне мән береді
+=
Қосу ЖӘНЕ тағайындау операторы.Ол оң операндты сол жақ операндқа қосады және нәтижені сол операндқа тағайындайды.
C+=A C=C+A тең
=
Шегеру ЖӘНЕ тағайындау операторы, сол операндтан оң операндты алып тастайды және нәтижені сол операндқа тағайындайды.
C - = A C = C - A тең
=
Көбейту және тағайындау операторы.Оң жақ операндты сол операндқа көбейтеді және нәтижені сол операндқа тағайындайды.
C*=A C=C*A тең
=
Бөлу және тағайындау мәлімдемесі. Ол сол операндты оң операндқа бөледі және нәтижені сол операндқа тағайындайды.
C=A C=CA тең
=
Модуль және тағайындау операторы, ол екі операнд арқылы модульді алады және нәтижені сол жақ операндқа тағайындайды.
C%=A C=C%A тең
=
Солға ауысу операторы және.
C=2 C=C2 сияқты
=
Оңға жылжу және тағайындау операторы.
C = 2 C = C 2 сияқты
=
Биттік ЖӘНЕ тағайындау операторы.
C&=2 C=C&2 сияқты

1.2.2 Массивтер

Егер T кейбір түрі, N тұрақты немесе өрнек компиляция кезінде есептелсе, онда Нұсқаулық
T a[N];
"t типіндегі N элементтерінен тұратын массив" (T типінің элементтері туралы мәліметтер) типті А айнымалысын жариялайды. N типінде std:: size_t типіне жасырын сілтеме болуы керек және оның массив өлшемі деп аталатын мәні нөлден үлкен болуы керек. Массив жадтың үздіксіз сегментінде орналасқан, массивтің әр элементінің астына sizeof(T) байт бөлінеді, сәйкесінше бүкіл массивті орналастыру үшін қажет жад мөлшері N*sizeof(T) байтқа тең. Бұл мән платформамен және компилятормен шектеледі. Массив түрі t[N] деп белгіленеді, яғни оған элементтер түрі мен массив мөлшері кіреді. Осылайша, элементтердің бірдей түрі бар, бірақ мөлшері әртүрлі массивтер әр түрлі болады.
Мұндай массивтерді массивтердің басқа нұсқаларынан айырмашылығын атап өту үшін кірістірілген массивтер (regular arrays) деп те атайды, "массив" термині бағдарламалауда, соның ішінде C++ тілінде де қолданылады.
Мұнда дұрыс массив жарнамаларының мысалдары келтірілген:
const int N = 8;
constexpr int Square(int n) { return n * n; }
int a1[1];
int a2[N];
int a3['Q'];
int a4[Square(2)];
Бірақ массивтердің дұрыс емес жарнамаларының мысалдары:
int n;
int b1 [0]; нөлдік мөлшері
int b2 [n]; компиляция кезінде өлшемді анықтау мүмкін емес
int b3 ["Q"]; өлшемі size_t-ге әкелмейді
Массив элементтеріне индексатор арқылы қол жеткізуге болады, индекс мәні 0-ден N-1-ге дейін. Міне мысал:
int a[4];
a[0] = 42;
int t = a[3];
Массивтің шекарасынан шығу бақыланбайды, қате белгісіз мінез-құлыққа әкелуі мүмкін.
Бір нұсқаулықта бірнеше массивтерді жариялауға болады, бірақ мөлшері әрқайсысына көрсетілуі керек.
int a[4], b[8];

Көрсеткіштер

Компилятор айнымалы анықтау операторын өңдеген кезде, мысалы, int i=10;, ол жад түріне (int) сәйкес бөлінеді және оны көрсетілген мәнге (10) инициализациялайды. Бағдарламадағы айнымалыға оның аты (i) бойынша барлық өтініштер компилятормен айнымалы мәні сақталатын жад аймағының мекен-жайына ауыстырылады. Бағдарламалаушы жад аймағының мекен-жайларын сақтау үшін жергілікті айнымалыларды анықтай алады. Мұндай айнымалылар көрсеткіштер деп аталады.
Сонымен, көрсеткіштер жад аймағының мекен-жайларын сақтауға арналған. C++ тілінде көрсеткіштердің үш түрі бар:
нысанға көрсеткіштер,
функция көрсеткіштері
void көрсеткіштері,
garantx.ru
Функция көрсеткіші
Функция сілтегішінде функцияның орындалатын коды орналасқан код сегментіндегі мекен-жай, яғни функция шақырылған кезде басқару жіберілетін мекен-жай бар. Функция көрсеткіштері функцияны жанама шақыру үшін (оның аты арқылы емес, оның мекен-жайын сақтайтын айнымалыға жүгіну арқылы), сондай-ақ функция атауын параметр ретінде басқа функцияға беру үшін қолданылады. Функция сілтегіші "берілген типтің мәнін қайтаратын және берілген типтегі дәлелдері бар функция сілтегіші"типіне ие:
түрі (*аты) (тізім_типов_аргументов);
Мысалы, хабарландыру:
nt (*fun) (double, double);
fun деп аталатын көрсеткішті int типінің мәнін қайтаратын және қос типтегі екі аргументі бар функцияға орнатады.
Нысанға көрсеткіш
Нысанның сілтемесінде белгілі бір типтегі (негізгі немесе құрама) деректер сақталатын жад аймағының мекен-жайы болады. Нысанға көрсеткіштің қарапайым декларациясы (бұдан әрі жай көрсеткіш деп аталады):
түрі * аты;
түрі Сілтеме мен бит өрісінен басқа кез-келген жерде болуы мүмкін, бұл кезде түрі тек жариялануы мүмкін, бірақ әлі анықталмаған (сондықтан құрылымда, мысалы, сол типтегі құрылымға сілтегіш болуы мүмкін).
Жұлдызша тікелей атқа жатады, сондықтан бірнеше белгілерді жариялау үшін оны әрқайсысының есімінің алдына қою керек. Мысалы, операторда
int *a, b, *c;
А және с атаулары бар бүтін екі көрсеткіш, сондай-ақ B айнымалысы сипатталған.
Көрсеткіш өлшемі жад моделіне байланысты. Меңзерді меңзерге және т. б. анықтауға болады.

1.3 Жобалауға міндеттерді қою

Жүйелік бағдарламалау пәні бойынша "тапсырмалар менеджері" жүйелік утилитасының аналогын жасау және жасау.
"Тапсырмалар менеджері" келесі бөлімдерді қамтуы керек:
* Процестер
* Жадты бақылау
· Қызмет
"Тапсырмалар менеджері" жүйелік утилитасының аналогы келесі функцияларды орындауы керек:
* Барлық процестер мен қосымша ақпаратты көрсету
* Процестердің, ағындардың санын көрсету
* Жадты бақылау
* Барлық жұмыс және жұмыс емес қызметтерді көрсету
* Процестерді аяқтау және іске қосу мүмкіндігі
Жүйелік утилитаның келесі ерекшеліктері болуы керек:
- студенттердің жас ерекшеліктерін ескеретін ақпараттық және дизайнерлік тәсіл;
- пайдаланудағы қол жетімділік;
- интерактивтілік;
- оқушылардың практикалық қызметіне бағдарлану;
Жобалау
Даму ортасын таңдау негіздемесі
Бұл бағдарламалық өнімді жасау үшін келесі құралдарды пайдалануға болады:
Жоғарыда аталған құралдардың сипаттамаларына сүйене отырып, біз Visual Studio Professional дамыту ортасын таңдаймыз, өйткені
C # -объектіге бағытталған және контекстке бағытталған тұжырымдамаларды біріктіретін бағдарламалау тілі. 1998-2001 жылдары Microsoft корпорациясындағы Андерс Хейлсбергтің басшылығымен инженерлер тобы Microsoft .NET платформасына арналған қосымшаларды әзірлеудің негізгі тілі ретінде жасады. C # компиляторы.NET-тің стандартты қондырғысына кіреді, сондықтан ондағы бағдарламаларды Visual Studio сияқты құралдарсыз да жасауға және құрастыруға болады.
C++ - құрастырылатын статикалық терілген жалпы мақсаттағы бағдарламалау тілі. Қолдай отырып, әр түрлі бағдарламалау парадигмалары, грамматикалық қасиеті ретінде высокоуровневых, сондай-ақ низкоуровневых тілдері. Оның алдындағы - c тілімен салыстырғанда, объектіге бағытталған және жалпыланған бағдарламалауды қолдауға көп көңіл бөлінеді. "C++" Атауы c тілінен шыққан, онда ++ унарлы операторы айнымалы көбейтуді білдіреді.
Жоғарыда аталған бағдарламалау тілдеріне сүйене отырып, біз бағдарламалық өнімді жасау үшін таңдаймыз -#.

1.4 Әзірленетін қосымшаға қойылатын талаптарды негіздеу

Жоғарыда аталған хаттамалардың ішінде барлық талаптарға толық жауап беретін хаттамалар жоқ. Бұдан шығатыны, мәлімделген талаптарға сәйкес келетін клиент-серверлік қосымшаны құруға мүмкіндік беретін жеке хаттаманы жасау ұсынылады.
Клиент-серверлік қосымшаны әзірлеу үшін құрал ретінде Socket API бағдарламалық интерфейсін (Windows - Winsock үшін), Qt Framework 4 графикалық интерфейсін құруға арналған компоненттер жиынтығын қолдана отырып, С++ тілін таңдаған жөн.X және Crypto++криптографиялық алгоритмдерінің кітапханалары. Бұл құрал әзірленген қосымшаның функционалдығы мен тиімділігіне қойылатын барлық талаптарды сақтаған жағдайда келесі артықшылықтарды қамтамасыз етеді:
- RSA криптографиялық алгоритмін қолдана отырып, аутентификация жүйеде қажетті қауіпсіздік деңгейін қамтамасыз етеді;
- жіберілетін хабарламалардың құпиялылығының жоғары деңгейі сервердің өзі ұйымның ішінде орналасады, ал клиенттер оның қызметкерлерінің қарамағында болады. Бұдан басқа, барлық хабарламалар ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Тармақталған алгоритмдерді программалау
Информатика пәні бойынша сыртқы бөлімге арналған тапсырмалар жинағы
ИНФОРМАТИКАНЫ ОРТА МЕКТЕПТЕ ОҚЫТУДЫҢ ТЕОРИЯЛЫҚ-ӘДІСТЕМЕЛІК НЕГІЗДЕРІ
Физикалық практикумның мақсаты
Pascal программалау тілінде математикалық маятник тербелісін моделдеу
Есептеу математикасына кіріспе пәні бойынша оқу-әдістемелік кешен
Термодинамика тарауын оқыту әдістемесі
Информатика пәнінен ДӘРІСТЕР ЖИЫНТЫҒЫ (оқу-әдістемелік құрал)
БАҒДАРЛАМАЛАРДЫ ӘЗІРЛЕУ ТЕХНОЛОГИЯСЫ
Павлодар Мемлекеттік Университеті негізінде Elvis II оқу-зертханалық қондырғысын еңгізу
Пәндер