На бирже курсовых и дипломных проектов можно найти образцы готовых работ или получить помощь в написании уникальных курсовых работ, дипломов, лабораторных работ, контрольных работ, диссертаций, рефератов. Так же вы мажете самостоятельно повысить уникальность своей работы для прохождения проверки на плагиат всего за несколько минут.

ЛИЧНЫЙ КАБИНЕТ 

 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

Повышение уникальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение уникальности любого файла в формате MS Word. После такого повышения уникальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, etxt.ru или advego.ru. Программа «StudentHelp» работает по уникальной технологии и при повышении уникальности не вставляет в текст скрытых символов, и даже если препод скопирует текст в блокнот – не увидит ни каких отличий от текста в Word файле.

Результат поиска


Наименование:


курсовая работа Загальн вдомост про мову програмування С++

Информация:

Тип работы: курсовая работа. Добавлен: 07.10.2012. Сдан: 2012. Страниц: 12. Уникальность по antiplagiat.ru: < 30%

Описание (план):


Вступ
      С++ - це спроба рішення розробками мови С задач об’єктно – орієнтованого програмування. С++ вже став універсальною мовою для програмістів всього світу, мовою, на якому буде написане наступне покоління високоефективного програмного забезпечення.
      Мова С++ утворилася з мови С, яка була створена на основі двох попередніх мов ? ВСРL і В. Мова ВСРL була створена в 1967 році Мартіном Ричардом як мова для написання компіляторів і програмного забезпечення операційних систем. Кен Томпсон передбачив багато можливостей у своїй мові В ? дублікаті ВСРL і використав В для створення ранніх версій операційної системи UNIX у Ве11 Laboratories в 1970 році на комп’ютері DЕС РDР-7. І ВСР, і в минулому «нетиповими» мовами ? кожен елемент даних займав одне слово у пам’яті, тому обробка елемента даних, наприклад, як цілого або дійсного числа було задачею програміста.
      С++ ? розширення С ? була розроблена Б’ярном Страуструпом на початку 80-х років у Ве11 Laboratories. С++ забезпечує ряд властивостей, які упорядковують мову С. Мова програмування С++ є однією з найбільш популярних засобів об’єктно-орієнтованого програмування, що дозволяє розробляти програми, ефективні по обсязі коду й швидкості виконання. C++ включає велику кількість операцій і типів даних, засобу керування обчислювальними процесами, механізми модифікації типів даних і методи їхньої обробки й, як наслідок, є потужною мовою програмування. Вона дозволяє описувати процеси обробки інформації, починаючи з рівня окремих розрядів, видів й адрес пам’яті, переходячи на основі механізмів об’єктно-орієнтованого програмування до близьких конкретних предметних областей.
       У мові С++ передбачається забезпечення сумісності з усіма конструкціями мови більш ранніх версій, наприклад допускається використання інструкцій для підключення заголовних файлів і застосування старих функцій вводу-висновку.
      Пізніше було розроблено багато інших об’єктно-орієнтованих мов, включаючи найбільш помітну з них Smalltalk, розроблену у Центрі Досліджень Ра1про Аlto компанії Хегох. Smalltalk ? чиста об’єктно-орієнтована мова ? у ній всі компоненти являються об’єктом. С+ ? це гібридна мова, вона надає можливість програмувати як у стилі С, так і в об’єктно-орієнтованому стилі, а також в обох стилях відразу.
 


1. Загальний розділ
      1.1. Загальні відомості про мову програмування С++
      Головним  нововведенням C++ є механізм класів, що дає можливість визначати і використовувати нові типи даних. Програміст описує внутрішнє представлення об’єкту класу і набір функцій-методів для доступу до цього уявлення. Концепція класів пропонувала для цього механізм спадкування, що дозволяє створювати нові (похідні) класи з розширеним уявленням і модифікованими методами, не зачіпаючи при цьому скомпільований код початкових (базових) класів. Разом з тим спадкоємство забезпечує один з механізмів реалізації поліморфізму ? базової концепції об’єктно-орієнтованого програмування, згідно якої, для виконання однотипної обробки різних типів даних може використовуватися один і той же код, поліморфізм ? теж один з методів забезпечення повторного використання коду.
      На  початку 80-х років Б’ярн Страуструп в AT&T Bell Labs почав розробляти розширення мови під умовною назвою «С з класами», в якій вводилися ті або інші можливості з метою зробити зручнішою роботу конкретних груп людей. Перший транслятор нової мови, що отримала назву C++ з'явився в 1983 році. Він був препроцесором, що транслював програму в код на С. Однак, фактичним народженням мови вважається вихід в 1985 році книги Б’ярна Страуструпа. Саме з цієї миті C++ починає набувати всесвітньої популярності.
      При створенні бібліотек класів прагнули побудувати єдину ієрархію класів із загальним базовим класом Object. Ця ідея була запозичена з Smalltalk ? однієї з найбільш відомих об’єктно-орієнтованих мов. Проте вона виявилася абсолютно нежиттєздатною в C++ ? ретельно продумані ієрархії бібліотек  
 
 

класів виявлялися негнучкими, а робота класів ? неочевидною. Для того, щоб бібліотеками класів можна було користуватися, їх доводилося поставляти в початкових текстах. Бібліотеки почали складатися з окремих класів і невеликих незв’язаних один з одним ієрархій. Проте на цьому шляху почало знижуватися повторне використання кодів, оскільки в C++ неможливе поліморфне використання класів з незалежних ієрархій.
      Одним з головних недоліків мови C++ є доступність компілятору опису внутрішньої структури всіх використаних класів. Як наслідок, зміна внутрішньої структури представлення якого-небудь бібліотечного класу приводить до необхідності перекомпіляції всіх програм, де ця бібліотека використовується. Це значно обмежує розробників бібліотек в частині їх модернізації, адже, випускаючи нову версію, вони повинні зберігати двійкову сумісність з попередньою. Саме ця проблема примушує багато фахівців вважати, що C++ непридатна для ведення великих і надвеликих проектів. 

      1.2. Об’єктно-орієнтоване програмування
      Мова програмування С+ є одним з найбільш популярних засобів об’єктно-орієнтованого програмування, що дозволяє розробляти програми, ефективні по обсязі коду й швидкості виконання.
      Об’єктно-орієнтована мова – це мова програмування, на якій програма задається описом поведінки сукупності взаємозв’язаних об’єктів. Об’єкти обмінюються запитами; реагуючи на отриманий запит, об’єкт посилає запит іншим об’єктам, одержує відповіді, змінює значення своїх внутрішніх змінних і видає відповідь на отриманий запит.
      Об’єктно-орієнтоване  програмування (ООП) – це методика, яка концентрує основну увагу  програміста на зв’язках між об’єктами, а не на деталях їх реалізації.
      В основі об’єктно-орієнтованого програмування  лежить ідея об’єднання в одній  структурі даних й дій, які виконуються над цими даними.
     Одним з найважливіших  понять С++ є класи.
    Клас  – це спеціальний тип, який містить  поля, методи й властивості. Класи  поєднують в собі як данні, так  і дії над цими даними.
    Об’єктно-орієнтоване  програмування базується на трьох основних поняттях: інкапсуляції, спадкуванні та поліморфізмі.
    Інкапсуляція  – це принцип ООП, який дозволяє об’єднати в єдине ціле складові об’єкта і дії для маніпулювання  над ними. В результаті такої сукупності виходить новий тип даних –  об’єкт. Об’єктом називається фізична реалізація класу. Інкапсуляція є потужним засобом обміну готовими до роботи програмними заготовлюваннями.
      Спадкування – це принцип ООП в наслідок якого підлеглі об’єкти успадковують властивості головних об’єктів.. Кожен  клас може бути породженим від іншого класу. Кожний породжений клас автоматично успадковує поля, методи та властивості свого родителя, а також може доповняти їх новими.
      Поліморфізм – це принцип ООП, який дозволяє декільком об’єктам виконувати одну і ту саму дію використовуючи власні властивості та методи.
      Об’єктно-орієнтований підхід помітно спростовує написання  складних програм. ООП дозволяє багаторазово використовувати програмний код. Перевага ООП при розробці додатків в С++ заключається у тому, що можна використовувати  попередньо створені об’єкти, а також породжати з них нові.
      Як  вже згадувалось, складовими класу  є його поля, методи та властивості.
      Поля  – це інкапсульовані в класі дані. Поля можуть бути любого типу.
      Кожен об’єкт отримує загальний для  всіх об’єктів даного класу набір методів, властивостей та унікальний набір полів. Доступ до полів утворюється як через методи й властивості, так і на пряму. Для цього задається об’єкт класу.
      Методи  – це інкапсульовані в класі процедури  та функції. Доступ до методів можливий через об’єкти класу.
     Властивості – це спеціальний механізм класів, який використовується для регулювання  доступу до полів. Властивості служать  для опису об’єктів. Вони вказують на методи, які повинні використовуватися  при запису в поле та читанні з  поля, яке зв’язане з даними властивостями. 

      1.3. Об’єкти, класи і компоненти
        Класи ? об’єкти, що володіють однаковим набором властивостей, але приймають різні значення.
      Визначення  класу в мові C++ містить інкапсуляцію членів даних і методів, що оперують з членами даних і таких, що визначають поведінку об’єкту.
      C++ Builder вводить поняття компонента – спеціальних класів, властивості яких представляють атрибути об’єктів, а їх методи реалізують операції над відповідними екземплярами компонентних класів.
       Будь-який об’єкт мови C++ має однакові атрибути і функціональність з іншими об’єктами того ж класу.
      Об’єкт ? суть, що з’являється при реалізації класу, наприклад, після запуску результатів компіляції початкового коду в адресному просторі обчислювальної системи. Об’єкт являється екземпляром класу.
      Зазвичай, об’єкт знаходиться в деякому унікальному стані, який визначається поточними значеннями його атрибутів. Функціональність об’єктного класу визначається можливими операціями над екземпляром цього класу.
      Метод – це процедура або функція  включена в об’єкт таким чином, що екземпляр даного типу стає доступним  лише з середини функції.
      C++Builder дозволяє маніпулювати виглядом і функціональною поведінкою компонентів не тільки за допомогою методів, але і за допомогою властивостей і подій, властивих тільки класам компонентів.
       Основна сфера  застосування методів в програмах, що розробляються в середовищі C++Builder – це оброблювачі подій, які реалізують реакцію програми на виникнення певних подій. 

      1.4. Арифметичні операції. Оператор привласнення
      Функція, яку можна використовувати до об’єктів даного класу називають  операцією. Одна і та ж операція може використовуватися до об’єктів різних класів.
      Для здійснення маніпуляцій з даними С++ використовує широку систему операцій.
     Операції  являють собою деяку дію, яка  виконується над одним (унарна) чи кількома операндами (бінарна операція), результатом якої є повертаючі значення.
     Для ефективного використання повертаючого операціями значення використовується оператор привласнення (=) і його модифікації: додавання із привласнення (+=), віднімання із привласнення (-=), множення із привласнення (*=),  ділення з привласнення (/=), модуль з привласнення (%=) та інші.
     На  практиці широко застосовується пустий оператор:
     ;
     Така  форма оператора в програмному  коді не виконує ніяких дій, але дозволяє компілятору обходити потреби синтаксису за наявності оператора в деяких конструкціях. 

      1.5. Шаблони (узагальнене програмування)
      Узагальнене програмування ? це техніка написання функцій і класів, залишаючи деякі типи даних невизначеними. Специфікація типу здійснюється, коли ця функція або клас використовується в початковому коді. Все робиться під контролем компілятора, і нічого не залишається для визначення під час виконання. Найбільш типовий приклад шаблону класу ? це контейнерні класи. У C++ є шаблонні класи і функції, що відзначаються ключовим словом template. Стандартний C++ включає обширну бібліотеку шаблонів, звану STL (стандартна бібліотека шаблонів), яка підтримує специфічний і могутній стиль програмування: узагальнене програмування.    C++ ? єдина з мов, яка концентрується на підтримці узагальненого програмування, крім ООП.
      
      1.6. Оператори порівняння
      Для того щоб була можливість порівнювати  між собою значення будь-яких змінних, мова С++ передбачає так звані оператори  порівняння. Оператори порівняння –  бінарні оператори виду:
      Операнд 1 Оператор_порівняння Операнд2
      До  них відносяться наступні оператори:
      Таблиця 1. ? Оператори порівняння
Оператор Назва
< Менше
<= Менше чи дорівнює
> Більше
>= Більше чи дорівнює
== Дорівнює
!= Не дорівнює
 
     В результаті роботи операторів порівняння повертається логічне значення true (істина), якщо умова, що перевіряється записана вірно, чи false (неправда) в протилежному разі. 

      1.7. Оператори інкрименту, дикрименту
      В С++ є ефективний засіб збільшення і зменшення значення операнду на одиницю – унітарні оператори інкрименту (++) і дикрименту (--).
        Унітарні оператори  інкрименту/дикрименту перетворюються компілятором в машинний код:
       інкримент: INC N
       дикримент: DEC N
де N – може бути або регістром процесора, або вміст комірки пам'яті.
      У відношенні до оператора даний вид операторів може бути префіксним чи постфіксним.
      Префіксний  оператор застосовується до операнду перед використанням отриманого результату.
      Постфіксний оператор застосовується до операнду після використання  самого операнду.
      Визначення  префікса і постфікса має сенс тільки  у виразах з присвоюванням:
       х=у++; // постфікс
       index=-- current; // префікс
       count++; // унарна операція
    Тут змінна у спочатку присвоюється змінній  х, а потім збільшується на 1.
Змінна  current спочатку зменшується на 1, потім результат присвоюється змінній index. 

      1.8. Функції mallok, callok, free
      Виділення динамічної пам’яті для об’єкта  здійснюється за допомогою наступних  виразів:
      mallok;
      callok;
      new;
        Звільнення  виділених ресурсів пам’яті здійснюється виразами:
      free;
      delete;
       Функція mallok підключається до одного із файлів заголовку stdlib.h чи alloc.h і має синтаксис:
     void *mallok (size_t size);
      Функція callok, крім виділення пам’яті під масив ще проводить ініціалізацію елементів масиву нульовим значенням. Функція має наступний синтаксис:
       void *callok(size_t num, size_t size);
      Функція звільнення пам’яті free в якості єдиного аргументу встановлює покажчик на блок об’єктів, що необхідно видалити (*block) і має синтаксис:
       void free(void *block);
Оператори new и delete мають дві форми:
      керування динамічним розміщенням в пам’яті єдиного об’єктів;
      динамічне розміщення масиву об’єктів.
      Синтаксис при роботі з єдиним масивом наступний:
тип_об’єкта *ім’я – new тип_об’єкта [число];
delete [] ім’я;
     Число в операторі new [] характеризує кількість об’єктів тип_об’єкта для яких проводиться виділення області пам’яті. 

      1.9. Оператор for
      Оператор for забезпечує циклічне повторення деякого  оператора (зокрема, складеного) в задану кількість разів. Повторюваний оператор називається тілом циклу. Повторення циклу звичайно визначається деякою керуючою змінною (лічильником), що змінюється при кожному виконанні тіла циклу. Повторення завершується, коли керуюча змінна досягає заданого значення.
      Синтаксис структури for:
for (вираження 1; вираження2; вираження3) оператор;
де: вираження1 задає початкове значення змінним, керуючим циклом, вираження2 – є умовою продовження циклу, а вираження3 – змінює керуючу змінну.
      Структура for працює в такий спосіб: спочатку виконується вираження1 (воно може складатися й з ряду виражень, розділених комою, тобто може використатися операція спадкування). Це вираження задає початкові значення змінної (або змінних) циклу, потім перевіряється вираження 2 ? умова продовження циклу. Якщо умова істинна – (повертає true ? ненульове значення), то виконується тіло циклу ? оператор, записаний у структурі for. Після завершення тіла циклу виконується вираження3, що визначає звичайно зміна змінної циклу. Потім знову перевіряється умова, записане як вираження2, і при істинності цієї умови виконання циклу   триває. Як тільки в якому-небудь циклі вираження2 поверне false (нульове значення), цикл переривається й керування передається операторові, розташованому слідом за структурою for.
      Нижче наведені приклади використання циклу for. Наступні оператори обчислюють максимальне значення й суму елементів, розташованих у масиві цілих чисел розмірністю 10:
    int Max, Sum;
    Max = Sum = Data[0];
    for(int i = l; i< 10; i++)
    {
    if (Data[i] > Max) Max = Data[i]
    Sum+= Data [i]
    {
        Перше вираження в структурі for вводить цілу змінну «i», що є лічильником циклів, та ініціалізує її. Друге вираження перевіряє умова завершення циклу. У цьому випадку цикл повинен завершитися, коли змінна «i», використовувана в тілі циклу як індекс-масиву, прийме значення, більше 9. Третє вираження структури for збільшує після кожного виконання циклу значення «i» на 1 за допомогою операції інкременту. У цьому випадку змінна «i» оголошена в заголовку структури for. Значить її область дії тільки ця структура. Після завершення циклів змінна i віддаляється з пам’яті.
        При використанні компілятора ВСС32.ЕХЕ, що запускає з  командного рядка, подібне знищення локальної змінної, оголошеної в  циклі, можна відзначити опцією Vd.  

      1.10. Оператор while
      Оператор while використовується для організації циклічного виконання тіла циклу, поки виконується деяка умова.
      Синтаксис структури while:
      while (умова) оператор;
      Структура працює в такий спосіб: спочатку обчислюється умова, що повинно повертати результат булевого типу. Якщо вираження повертає true (ненульове значення), то виконується оператор тіла циклу, після чого знову обчислюється вираження, визначальна умова. Таке циклічне повторення виконання оператора й перевірки умови триває доти, поки умова поверне false (нуль). Після цього цикл завершується й керування передається операторові, що випливає за структурою while.
      Оскільки  перевірка вираження здійснюється перед виконанням оператора тіла циклу, то, якщо умова відразу не правдива, оператор не буде виконаний жодного разу.
      Часто оператор while використовується для організації пошуку серед безлічі об’єктів такого, котрий має якусь певну властивість. Причому не виключається, що безліч об’єктів може бути порожнім, тобто не утримуючим жодного об’єкта. До того ж повинен бути критерій, що дозволяє перевірити, чи є поточний об’єкт останнім. Тоді тіло циклу включає оператори переходу до нового об’єкта і якоїсь його обробки, а умова while включає перевірку, чи є об’єкт не останнім і чи не володіє він властивістю, що шукають. Якщо одне із цих умов порушується (об’єкт останній або має шукану властивість), виконання циклу переривається.
       
      1.11. Оператор do…while
      Структура do...while використовується для організації циклічного виконання чи оператора доти, поки не виявиться порушеним деяка умова.
      Синтаксис керуючої структури do...while:
      do оператор while (умова);
      Структура   працює   в   такий спосіб: виконується оператор тіла циклу. Потім обчислюється умова - вираження, що повинна повертати результат булева типу. Якщо вираження повертає true (не нульове значення), то повторюється виконання тіла циклу й після цього знову обчислюється вираження. Таке циклічне повторення циклу триває доти, поки перевіряє вираження, що не поверне false (нуль). Після цього цикл завершується й керування передається операторові, що випливає за структурою do...while.
      Оскільки   перевірка   вираження   здійснюється   після виконання тіла циклу, то цикл буде свідомо виконаний хоча б  один раз, навіть, якщо вираження відразу невірне. З іншого боку, програміст повинен бути впевнений, що вираження рано або пізно поверне false. Якщо цього не відбудеться, то програма «зациклиться», тобто   цикл   буде   виконуватися   безкінчено. Іноді такі нескінченні цикли використовуються. Але в цьому випадку всередині тіла циклу повинне бути передбачене його переривання в якийсь момент, наприклад, оператором break або іншими способами.
      Звичайно  оператор do доцільно використати для  організації пошуку серед безлічі об’єктів такого, котрий має якусь певну властивість. Причому заздалегідь повинно бути відомо, що безліч об’єктів не порожня, тобто хоча б один об’єкт у ньому є. До того ж повинен бути критерій, що дозволяє перевірити, чи не є поточний об’єкт останнім. Тоді тіло циклу включають оператори переходу до нового об’єкта і якоїсь його обробки, а умова while включає перевірку, чи є об’єкт не останнім і відсутні чи в нього шукані властивості. Якщо об’єкт останній або шукані властивості знайдені, виконання циклу переривається.
       Якщо ж об’єкт не останній і шукані властивості в нього не знайдені, здійснюється перехід до наступного об’єкта. Якщо безліч об’єктів, що перевіряють, може бути порожнім, варто використати інший оператор циклу while. Якщо число повторень циклів заздалегідь відомо, краще застосовувати оператор for. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

2. Спеціальний розділ
      2.1. Обчислення елементарних функцій  за допомогою степеневих рядів
      Рішення багатьох математичних задач вимагає обчислення значень елементарних функцій, для тих або інших значень аргументу. Для обчислення значення елементарних функцій за допомогою ЕОМ існують стандартні програми, що реалізують алгоритми для обчислення з потрібною точністю значень цих функцій.
      Степені ряди є важливим апаратом для табуляції елементарних функцій, оскільки їх застосування дозволяє звести задачу обчислень значень функції із заданою точністю до задачі обчислення багаточлена.
      Елементарні функції розкладаємо в ступеневий ряд за допомогою загальної формули Тейлора:
        f(x) = f(a) +     (2.1) 
      Звичайно  в ній вважають а = 0, завдяки чому виходить звичайний степеневий ряд по ступенях х.Обриваючи ряд в потрібному місці, одержимо багаточлен, що наближає дану функцію.
      Найбільш  споживаними є ступеневі ряди для функцій , які сходяться при будь-якому значенні х:
,                                                          
                                                          (2.2)                   
 

       При обчисленні елементарних функцій за допомогою  ступеневих рядів зручно користуватися рекурентними співвідношеннями, які дозволяють обчислювати черговий член ряду не безпосередньо, а через уже обчислені попередні члени. Рекурентним співвідношенням називають рівність, що зв'язує між собою два або декілька сусідніх членів послідовності або ряду. За допомогою такої рівності визначимо наступний член ряду через попередні.
      Для наведених вище рядів рекурентні  співвідношення можуть бути легко виведені безпосередньо. Простіше всього взяти відношення двох сусідніх членів. Розглянемо, наприклад, ступеневий ряд для функції , загальний член якого має вигляд . За допомогою відношення подальшого члена до попереднього одержимо:
                                                  .                            (2.3)              
      Таким чином, для двох сусідніх членів ряду одержимо рекурентне співвідношення, яке зручне для послідовного обчислення членів ряду:
                                                                                            (2.4)                      
      При обчисленні з рядами замінимо суму ряду його частковою сумою, тобто  обмежившись кінцевим числом членів. Виникає практичне питання: скільки членів ряду потрібно зберегти, щоб погрішність, що виходить, не перевищувала заданої?
      Якщо  члени ряду убувають достатньо швидко і при тому із самого початку, то вигідно використати знакозмінний ряд, погрішність якого легко оцінюється. Сума знакозмінного ряду менше його першого члена (по абсолютній величині). Тому при заміні суми такого ряду його частковою сумою припускається похибки, що не перевищує модулю першого з відкинутих членів. Якщо ж члени ряду убувають поволі або убувають хоча і дуже швидко, але не спочатку, а перші члени ряду достатньо великі, фактична погрішність буде помітно більшою через погрішності віднімання перших великих членів. Наприклад, члени рядів для обчислення cosx і sinx убувають достатньо швидко і ряди сходяться при будь-якому х. Проте при великих х (х ? 10), перші члени цих рядів досить швидко зростають, і обчислення cosx і sinx за допомогою цих рядів скрутне. Виникає така втрата точності при відніманні великих перших членів, яку не можна відшкодувати обчисленням великого числа доданків.
       Для рядів  з позитивними членами, оцінка погрішності складніша  ніяких загальних методів оцінки, придатних для всіх рядів, запропонувати не можна.
и т.д.................


Перейти к полному тексту работы


Скачать работу с онлайн повышением уникальности до 90% по antiplagiat.ru, etxt.ru или advego.ru


Смотреть полный текст работы бесплатно


Смотреть похожие работы


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.