Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Цикл do while




Оператор циклу do while має наступний синтаксис:

do{
дія
}while(i)

Цей цикл відрізняється від попередніх тим, що виконується хоча б один раз.

Приклад: Напишемо програму, яка використовує всі три види операторів циклу.

#include<iostream>
#include<conio.h>

using std::cout;
using std::endl;
using std::cin;

const int n = 5;

void main()
{
int mas[n];

cout<<"Vvedite masiv: \n";
for (int i = 0; i<n; i++)
{
cin>>mas[i];
}

i = 0;

cout<<"mi vveli takoy masiv: \n";
while(i<5){
cout<<mas[i]<<"\t";
i++;
}

i=0;
do{
mas[i] = mas[i]+5;
i++;
}while(i<5);

cout<<"\nMasiv posle dobavleniya + 5:\n";
for (i = 0; i<n; i++)
{
cout<<mas[i]<<"\t";
}

_getch();
}

Функція - це модуль в с++. Опції в мові С++ дозволяють створювати модульні програми, тобто програми складаються з модулів. Для написання програм, краще використовувати готові стандартні функції бібліотеки С++. Якщо ж ви хочете в програмі використовувати свою функцію, то необхідно оголосити прототип функції, після цього, в кінці програми написати реалізацію функції.

Функція може приймати значення або не приймати взагалі. Якщо функція не приймає параметри, то пишеться ім'я функції і порожні дужки, якщо функція приймає параметри, то в дужках через кому пишуться параметри.

Приклад: Написати функцію get(), set(). Set - функція встановлення значення в массив. Get - функція отримання значень, або друк.

#include<iostream>
#include<conio.h>

using std::cout;
using std::endl;
using std::cin;

const int n = 5;
void set(int []); //прототип функції встановлення значення
void get(int []); //прототип функції печатки значення

void main()
{
int mas[n];
set(mas); //виклик функції встановлення значення в програмі
get(mas); //виклик функції друку в програмі
_getch();
}

void set(int s[n]) //реалізація функції встановлення
{
cout<<"SET massiva:\n";
cout<<"Vvedite "<<n<<"elementov massiva: ";
for (int i = 0; i<n; i++)
cin>>s[i];
}

void get(int s[n]) //реалізація функції друку
{
cout<<"GET massiv:\n";
for (int i = 0; i<n; i++)
cout<<s[i]<<"\t";
cout<<endl;
}

[http://life-prog.ru/ukr]

Переваги мови C++

· Швидкодія. Швидкість роботи програм на С++ практично не поступається програмам на С, хоча програмісти отримали в свої руки нові можливості і нові засоби.

· Масштабованість. На мові C++ розробляють програми для найрізноманітніших платформ і систем.

· Можливість роботи на низькому рівні з пам'яттю, адресами, портами. (Що, при необережному використанні, може легко перетворитися на недолік.)



· Можливість створення узагальнених алгоритмів для різних типів даних, їхня спеціалізація, і обчислення на етапі компіляції, з використанням шаблонів.

· Підтримуються різні стилі та технології програмування, включаючи традиційне директивне програмування, ООП, узагальнене програмування, метапрограмування (шаблони, макроси).

Недоліки мови C++

· Наявність безлічі можливостей, приводить до того, що в С++ програми може легко закрастися важковловима помилка. Замість контролю з боку компілятора розробники вимушені дотримуватися вельми нетривіальних правил кодування. По суті, ці правила обмежують С++ рамками якоїсь безпечнішої підмови. Більшість проблем типобезпеки С++ успадкована від С, але важливу роль в цьому питанні грає і відмова автора мови від ідеї використовувати автоматичне управління пам'яттю (наприклад, збірку сміття). Так візитною карткою С++ стали вразливості типу «переповнювання буфера».

· Погана підтримка модульності. Підключення інтерфейсу зовнішнього модуля через препроцесорну вставку заголовного файлу (#include) серйозно уповільнює компіляцію, при підключенні великої кількості модулів. Для усунення цього недоліку, багато компіляторів реалізують механізм прекомпіляції заголовних файлів.

· Недостача інформації про типи даних під час компіляції.

· Мова C++ є складною для вивчення і для компіляції.

· Деякі перетворення типів неінтуїтивні. Зокрема, операція над беззнаковим і знаковим числами видає беззнаковий результат.



· Препроцесор С++ (успадкований від C) дуже примітивний. Це приводить з одного боку до того, що з його допомогою не можна (або важко) здійснювати деякі завдання метапрограмування, а з іншою, в наслідку своєї примітивності, він часто приводить до помилок і вимагає багато дій з обходу потенційних проблем. Деякі мови програмування (наприклад, Scheme і Nemerle) мають набагато могутніші і безпечніші системи метапрограмування (також звані макросами, але макроси С/С++ вони мало нагадують).

· З кінця 1990-х в співтоваристві С++ набуло поширення так зване метапрограмування на базі шаблонів. По суті, воно використовує особливості шаблонів C++ в цілях реалізації на їхній базі інтерпретатора примітивної функціональної мови програмування, що виконується під час компіляції. Сама по собі ця можливість вельми приваблива, але, внаслідкок вище згаданого, такий код вельми важко сприймати і зневаджувати. Мови Lisp/Scheme, Nemerle і деякі інші мають могутніші і водночас простіші для сприйняття підсистеми метапрограмування. Крім того, в мові D реалізована порівнянна за потужністю, але значно простіша в застосуванні підсистема шаблонного метапрограмування.

Майбутній розвиток:

С++ продовжує розвиватися, щоб відповідати сучасним вимогам. Одна з груп, що займаються мовою С++ в її сучасному вигляді і що направляють комітету зі стандартизації С++ поради з її поліпшення, — це Boost. Наприклад, один з напрямів діяльності цієї групи — вдосконалення можливостей мови шляхом додавання в неї особливостей метапрограмування.

Стандарт С++ не описує способи іменування об'єктів, деякі деталі обробки винятків і інші можливості, пов'язані з деталями реалізації, що робить несумісним об'єктний код, створений різними компіляторами. Проте для цього третіми особами створено безліч стандартів для конкретної архітектури і операційних систем.

Проте (за станом на час написання цієї статті) серед компіляторів С++ все ще продовжується битва за повну реалізацію стандарту С++, особливо в області шаблонів — частини мови, зовсім недавно повністю розробленій комітетом стандартизації.

Одним із каменів спотикання у цьому питанні є ключове слово export, що використовується також і для розділення оголошення і визначення шаблонів.

Першим компілятором, що підтримав export в шаблонах, став Comeau C++ на початку 2003 року (п'ять років після виходу стандарту). У 2004 році бета-версія компілятора Borland C++ Builder X також почала його підтримку.

Обидва цих компілятора засновані на зовнішньому інтерфейсі EDG. Інші компілятори, такі як Microsoft Visual C++ або GCC, взагалі цього не підтримують. Ерб Саттер (Herb Sutter), секретар комітету із стандартизації С++, рекомендував прибрати export з майбутніх версій стандарту унаслідок серйозних складнощів в повноцінній реалізації, проте згодом остаточним рішенням було вирішено його залишити. [http://uk.wikipedia.org/wiki/C++]


mylektsii.ru - Мои Лекции - 2015-2018 год. (0.009 сек.)Пожаловаться на материал