Реферат: Решение дифференциальных уравнений 1 порядка методом Эйлера

Содержание

Введение                                                                                                      3

1.<span Times New Roman"">    

                                                                                 5

2.<span Times New Roman"">    

  задачи                                 6                  2.1.Метод Рунге-Кутта четвертогопорядка для решения

                уравнения первого    порядка                                                         6

          2.2.Задача Коши                                                                                              6

         2.3.Метод Булирша- Штера сиспользованием

                рациональной экстраполяции для системыуравнений                           7

         2.4 Метод Адамса                                                                                   8

         2.5. Метод Эйлера                                                                                  9

      3. Описание алгоритмов решения задания                                                        13

           3.1. Описание переменных                                                                   13

           3.2. Блок- схема главного модуля                                                                 14

          3.3.Описание алгоритма главной программы                                              14

          3.4.  Блок-схема функции “func”                                                           15    

          3.5.Описание блок- схемы функции “func”                                          15

      4. Описание программного обеспечения                                                  16

          4.1.Описание операционной системы                                                  16

          4.2.Описание языка программирования                                                       18

          4.3. Описание программы                                                                     19    

       5. Контрольный пример                                                                                    21

       6.Анализполученных результатов                                                          22            

       Список литературы                                                                                   24

       Приложение                                                                                              25

                                                                 

Введение

Уравнение <img src="/cache/referats/18393/image002.gif" v:shapes="_x0000_i1025"><img src="/cache/referats/18393/image004.gif" v:shapes="_x0000_i1026">  называется обыкновеннымдифференциальным n-го порядка, если F определена и непрерывна в некоторойобласти <img src="/cache/referats/18393/image006.gif" v:shapes="_x0000_i1027"><img src="/cache/referats/18393/image008.gif" v:shapes="_x0000_i1028">u(x), которая этому уравнению удовлетворяет при всех xв определённом конечном илибесконечном интервале. Дифференциальное уравнение, разрешенное относительностаршей производной имеет вид

<img src="/cache/referats/18393/image010.gif" v:shapes="_x0000_i1029">                

Решением этого уравнения на интервале I=[a,b] называется функция u(x)

     Решить дифференциальное уравнение у/=f(x,y) численным методом — это значит длязаданной последовательности аргументов х0, х1…, хnи числа у0, не определяя функцию у=F(x), найти такие значения у1,у2,…, уn, что уi=F(xi)(i=1,2,…, n)и F(x0)=y0.                                               

     Таким образом, численные методы позволяютвместо нахождения функции y=F(x)(3) получить таблицузначений этой функции для заданной последовательности аргументов. Величина h=xk-xk-1 называется шагом интегрирования.

      Метод Эйлера относиться к численнымметодам, дающим решение в виде таблицы приближенных значений искомой функцииу(х). Он  является сравнительно грубым иприменяется в основном для ориентировочных расчетов. Однако идеи, положенные воснову метода Эйлера, являются исходными для ряда других методов.

       Метод Эйлера для обыкновенныхдифференциальных уравнений используется для решений многих задач естествознанияв качестве математической модели. Например задачи электродинамики системывзаимодействующих тел (в модели материальных точек), задачи химическойкинетики, электрических цепей. Ряд важных уравнений в частных производных вслучаях, допускающих разделение переменных, приводит к задачам для обыкновенныхдифференциальных уравнений – это, как правило, краевые задачи (задачи особственных колебаниях упругих балок и пластин, определение спектра собственныхзначений энергии частицы в сферически-симметричных полях  и многое другое).   

1.Постановка задачи

1.1. Решитьприближенно дифференциальное уравнение вида <img src="/cache/referats/18393/image012.gif" v:shapes="_x0000_i1030">

1.2. Составитьблок-схему алгоритма для решения данного задания.

1.3. Разработатьпрограмму на языке MicrosoftVisualC++

1.4. Протестироватьпрограмму на примере y’=2x+y (n=5,  [0,1], y0=1)

1.5. Выполнитьанализ результатов.

1.6. Оформитьпояснительную записку с приложением.  

2.Обзор методов решения задачи.

2.1.Метод Рунге-Кутта четвертого порядка длярешения уравнения первого порядка.

Идея Рунге-Кутасостоит в том, чтобы использовать метод неопределённых коэффициентов.  Наиболее употребительным методом Рунге-Кутта решенияуравнения первого порядка y' = F(x,y) (2.1.1)является метод четвертого порядка, в котором вычисленияпроизводятся по формуле:

yk+1  = yk +(k1 +2k2 +2k3 +k4 )/6,                                           (2.1.2)

где

k1  = Fk h = F(xk, yk )h

k2  = F(xk +h/2, yk +k1 /2)h

k3  = F(xk +h/2, yk +k2 /2)h

k4  = F(xk +h, yk +k3 )h,

k = 0, ..., n-1

h = (xf -x0 )/n                                                                               (2.1.3)

2.2. Задача Коши.

Рассмотримзадачу Коши для уравнений первого порядка на отрезке [a,b]:

<img src="/cache/referats/18393/image014.gif" v:shapes="_x0000_i1031">  <img src="/cache/referats/18393/image016.gif" v:shapes="_x0000_i1032">  (2.1.4)

Разобьёмпромежуток [a,b] на Nчастей <img src="/cache/referats/18393/image018.gif" v:shapes="_x0000_i1033">u(x) –точноерешение задачи Коши, и через <img src="/cache/referats/18393/image020.gif" v:shapes="_x0000_i1034"> значения приближенногорешения в точках <img src="/cache/referats/18393/image022.gif" v:shapes="_x0000_i1035">

1.<span Times New Roman"">    

<img src="/cache/referats/18393/image024.gif" v:shapes="_x0000_i1036">                                           (2.2.1)

2.<span Times New Roman"">    

<img src="/cache/referats/18393/image026.gif" v:shapes="_x0000_i1037">                                          (2.2.2)

Здесь F некоторая функция,связывающая приближения. В явных схемах приближенное значение <img src="/cache/referats/18393/image020.gif" v:shapes="_x0000_i1038"> в точке <img src="/cache/referats/18393/image022.gif" v:shapes="_x0000_i1039"> определяетсячерез некоторое число kуже определённых приближенных значений. В неявных схемах <img src="/cache/referats/18393/image020.gif" v:shapes="_x0000_i1040"> определяется не  рекурентным способом, как в явных схемах, адля его определения возникает уравнение, поскольку равенство (2.2.2) представляет из себяименно уравнение на <img src="/cache/referats/18393/image020.gif" v:shapes="_x0000_i1041">

2.3.Метод Булирша-Штера с использованиемрациональной экстраполяции для системы уравнений

Метод Булирша-Штера(Bulirsch-Stoer Method) — это метод решения системы обыкновенныхдифференциальных уравнений первого порядка с гладкими правыми частями. Гладкостьправых частей является необходимой для работы метода. Если правые части вашейсистемы не являются гладкими или содержат разрывы, то лучше использовать методРунге-Кутта. В случае же гладкой системы метод Булирша-Штера позволяет добитьсясущественно большей точности, чем метод Рунге-Кутта.

Принцип работы метода

Основной идеей методаявляется вычисление состояния системы в точке x+h, как результата двух шаговдлины h/2, четырех шагов длины h/4, восьми шагов длины h/8 и так далее споследующей экстраполяцией результатов. Метод строит рациональнуюинтерполирующую функцию, которая в точке h/2 проходит через состояние системыпосле двух таких шагов, в точке h/4 проходит через состояние системы послечетырех таких шагов, и т.д., а затем вычисляет значение этой функции в точке h= 0, проводя экстраполяцию.

Гладкость правыхчастей приводит к тому, что вычисленное при помощи экстраполяции состояниесистемы оказывается очень близко к действительному, а использованиерациональной экстраполяции вместо полиномиальной позволяет ещё больше повыситьточность.

Таким образом проводитсяодин шаг метода, после чего принимается решение — следует ли изменять шаг, аесли да — то в какую сторону. При этом используется оценка погрешности, которуюмы получаем в качестве дополнительного результата при рациональнойэкстраполяции. Следует отметить, что алгоритм решает автономную систему, т.е.если уравнения системы содержат время, то необходимо ввести время в качествепеременной, производная от которой тождественно равна единице.

<span Times New Roman"">           

Метод Адамса

        Явная схема Адамса.

Рассмотренные выше методыявляются явными одношаговыми (для нахождения последующего приближенияиспользуется лишь одно предыдущее). Приведённый ниже метод являетсямногошаговым.

         Пусть задана задача Коши:

                                                        <img src="/cache/referats/18393/image029.gif" v:shapes="_x0000_i1042">                (2.4.1)

Для точного решения (котороенам не известно) выполнено:

<img src="/cache/referats/18393/image031.gif" v:shapes="_x0000_i1043">         (2.4.2)

Предположим, нам известныприближенные значения <img src="/cache/referats/18393/image033.gif" v:shapes="_x0000_i1044"> функции u(x) в kточках <img src="/cache/referats/18393/image035.gif" v:shapes="_x0000_i1045"> (стартовые k  точек, в частности, можнонайти методом Эйлера  или методомРунге-Кутта того или иного порядка), тогда функцию f(x,u(x)) в (2.4.2) для приближенного вычисления интеграла можнозаменить на интерполяционный полином <img src="/cache/referats/18393/image037.gif" v:shapes="_x0000_i1046"> порядка k-1, построенный по kточкам <img src="/cache/referats/18393/image039.gif" v:shapes="_x0000_i1047">  интеграл от которогосчитается явно и представляет собой линейную комбинацию значений  <img src="/cache/referats/18393/image041.gif" v:shapes="_x0000_i1048">cнекоторыми множителями <img src="/cache/referats/18393/image043.gif" v:shapes="_x0000_i1049">  образом, мыполучаем следующую рекуррентную процедуру вычисления приближенных значений <img src="/cache/referats/18393/image033.gif" v:shapes="_x0000_i1050"> функции u(x)(являющимся точным решениемзадачи Коши) в точках <img src="/cache/referats/18393/image045.gif" v:shapes="_x0000_i1051"> :

<img src="/cache/referats/18393/image047.gif" v:shapes="_x0000_i1052">         (2.4.3)

Описанная схема является k-шаговой явной формулой Адамса.

     Неявнаясхема Адамса.

Пусть <img src="/cache/referats/18393/image049.gif" v:shapes="_x0000_i1053">k, построенный по k+1значению <img src="/cache/referats/18393/image051.gif" v:shapes="_x0000_i1054"><img src="/cache/referats/18393/image053.gif" v:shapes="_x0000_i1055"><img src="/cache/referats/18393/image055.gif" v:shapes="_x0000_i1056"> на полином болеевысокой степени <img src="/cache/referats/18393/image057.gif" v:shapes="_x0000_i1057"><img src="/cache/referats/18393/image059.gif" v:shapes="_x0000_i1058"> с некоторыми новымикоэффициентами <img src="/cache/referats/18393/image061.gif" v:shapes="_x0000_i1059">

<img src="/cache/referats/18393/image063.gif" v:shapes="_x0000_i1060">  (2.4.4)

Формула (2.4.4) представляетсобой неявную схему Адамса и является уравнением на <img src="/cache/referats/18393/image065.gif" v:shapes="_x0000_i1061"><img src="/cache/referats/18393/image067.gif" v:shapes="_x0000_i1062">  <img src="/cache/referats/18393/image067.gif" v:shapes="_x0000_i1063">

2.5.Метод Эйлера.

     Решить дифференциальное уравнение у/=f(x,y)численным методом — это значит для заданной последовательности аргументов х0,х1…, хn и числа у0, не определяя функциюу=F(x), найти такие значения у1, у2,…, уn, чтоуi=F(xi)(i=1,2,…, n) и F(x0)=y0.                        (2.5.1)

Таким образом,численные методы позволяют вместо нахождения функции

У=F(x) получитьтаблицу значений этой функции для заданной последовательности аргументов.Величина h=xk-xk-1называется шагом интегрирования.

      Метод Эйлера относиться к численнымметодам, дающим решение в виде таблицы приближенных значений искомой функцииу(х). Он  является сравнительно грубым иприменяется в основном для ориентировочных расчетов. Однако идеи, положенные воснову метода Эйлера, являются исходными для ряда других методов.

      Рассмотрим дифференциальное уравнениепервого порядка  (2.5.1)

с начальным условием

                                     x=x0, y(x0)=y0              (2.5.2)

Требуется найтирешение уравнения (2.5.1) на отрезке [а,b].

Разобьем отрезок[a, b] на n равных частей и получим последовательность х0, х1,х2,…, хn,где xi=x0+ih (i=0,1,…, n), а h=(b-a)/n-шаг интегрирования.

       В методе Эйлера приближенные значенияу(хi)<span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-ansi-language:EN-US;mso-char-type: symbol;mso-symbol-font-family:Symbol">»

yi вычисляютсяпоследовательно по формулам уi+hf(xi, yi) (i=0,1,2…).

При этом искомаяинтегральная кривая у=у(х), проходящая через точку М0(х0,у0), заменяется ломаной М0М1М2… свершинами Мi(xi, yi) (i=0,1,2,…); каждое звено МiMi+1 этой ломаной,называемой ломаной Эйлера, имеет направление, совпадающее с направлениемтой интегральной кривой уравнения (2.5.1), которая проходит через точку Мi. Если правая частьуравнения (2.5.1) в некотором прямоугольнике R{|x-x0|<span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-ansi-language:EN-US;mso-char-type: symbol;mso-symbol-font-family:Symbol">£

a, |y-y0|<span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-ansi-language:EN-US;mso-char-type: symbol;mso-symbol-font-family:Symbol">£b}удовлетворяет    условиям:                                                                                                   
                           |f(x, y1)- f(x, y2)| <span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-ansi-language:EN-US;mso-char-type:symbol;mso-symbol-font-family: Symbol">£N|y1-y2|  (N=const),                          (2.5.3)

                           |df/dx|=|df/dx+f(df/dy)| <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-ansi-language:EN-US;mso-char-type: symbol;mso-symbol-font-family:Symbol">£

M (M=const),

то имеет местоследующая оценка погрешности:

                          |y(xn)-yn|<span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-ansi-language:EN-US;mso-char-type: symbol;mso-symbol-font-family:Symbol">£

hM/2N[(1+hN)n-1],                                       (2.5.4)

где у(хn)-значение точногорешения уравнения (2.5.1) при х=хn, а уn — приближенное значение, полученное на n-ом шаге. 

Формула (13)имеет в основном теоретическое применение. На практике иногда оказывается болееудобным двойной просчет: сначаларасчет ведется с шагом h,затем шаг дробят и повторный расчет ведется с шагом  h/2. Погрешность более точного значенияуn*оценивается формулой

                                          |yn-y(xn)|<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-ansi-language:EN-US;mso-char-type:symbol;mso-symbol-font-family: Symbol">»

|yn*-yn|.                                            (2.5.5)

   Метод Эйлера легко распространяется на системыдифференциальных уравнений и на дифференциальные уравнения высших порядков.Последние должны быть предварительно приведены к системе дифференциальныхуравнений первого порядка.

     Модифицированный метод Эйлера

Рассмотримдифференциальное уравнение (2.5.1)  y/=f(x,y) с начальным условием y(x0)=y0. Разобьем наш участокинтегрирования на nравных частей. На малом участинтегральнуюкривую заменим    прямой                      линией.

<img src="/cache/referats/18393/image069.jpg" v:shapes="_x0000_i1064">

                                          Рис.1 Метод Эйлера в графическом видa

 Получаем точку Мк(хк, ук). Через Мк проводим касательную:  у=ук=f(xk,yk)(x-xk). Делим отрезок (хк, хк1)пополам:

                                           xNk/=xk+h/2=xk+1/2                                                (2.5.6)

                                               yNk/=yk+f(xk,yk)h/2=yk+yk+1/2

Получаем точку Nk/. Вэтой точке строим следующую касательную:

                                           y(xk+1/2)=f(xk+1/2, yk+1/2)=αk                           (2.5.7)

Из точки Мкпроводим прямую с угловым коэффициентом αк и определяем точку пересечения этой прямой спрямой Хк1. Получаем точку Мк/. В качестве ук+1принимаем ординату точки Мк/. Тогда:

                                           ук+1=ук+αкh

                                           xk+1=xk+h

                          (2.5.8)                 αk=f(xk+h/2, yk+f(xk,Yk)h/2)

                                           yk=yk-1+f(xk-1,yk-1)h

(2.5.8)-рекурентные формулы методаЭйлера.

      Сначала вычисляют вспомогательныезначения искомой функции ук+1/2 в точках хк+1/2, затемнаходят значение правой части уравнения (11) в средней точке y/k+1/2=f(xk+1/2, yk+1/2) и определяют ук+1.

      Для оценки погрешности в точке хкпроводят вычисления ук с шагом h, затем с шагом 2hи берут 1/3 разницы этих значений:

                                          | ук*-у(хк)|=1/3(yk*-yk),                          (2.5.9)

где у(х)-точноерешение дифференциального уравнения.

 Таким образом, методом Эйлера можно решатьуравнения любых порядков. Например, чтобы решить уравнение второго порядка y//=f(y/,y,x) cначальными условиями y/(x0)=y/0, y(x0)=y0, выполняется замена:

                                            y/=z                                                    (2.5.10)

                                            z/=f(x,y,z)

Тем самымпреобразуются начальные условия: y(x0)=y0, z(x0)=z0, z0=y/0.    (2.5.12)

3.Описание алгоритмов решения задачи

3.1.Описаниепеременных.

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

Тип

Описание

Входные данные

Xi

double

Начальное значение (x) интервала вычисления

Xkon

double

Конечное значение (x) интервала вычисления

n

integer

Количество шагов

Yi

double

Начальное значение y

kx

double

Коэффициент при переменой x

ky

double

Коэффициент при переменной y

Выходные данные

h

double

Фиксированное приращение аргумента (x)

res

double

Расчётное значение уравнение y’=F(x,y) в точке (x)

Промежуточные

i

integer

Счётчик цикла

Yprom

double

Промежуточное значение y в точке Xprom

Xprom

double

Промежуточное значение x при h/2

a

double

Решение уравнения в точках f(Xprom,Yprom)

f1

double

Функция f(x,y)

3.2. Блок- схема главного модуля

 SHAPE * MERGEFORMAT

Начало

Xi,Xkon,n,Yi,kx,ky

         i

1              n

          1    

func(Xi, Yi, kx, ky, h)

Конец

Res, Xi

h:=(Xi-Xkon)/n

<img src="/cache/referats/18393/image070.gif" v:shapes="_x0000_s1189 _x0000_s1188 _x0000_s1192 _x0000_s1193 _x0000_s1195 _x0000_s1196 _x0000_s1199 _x0000_s1200 _x0000_s1201 _x0000_s1203 _x0000_s1205 _x0000_s1207 _x0000_s1208 _x0000_s1210 _x0000_s1211 _x0000_s1212 _x0000_s1231 _x0000_s1232">

3.3 Описание алгоритма главной программы.

Номер блока

Описание

1

Ввод начального и конечного значений интервала вычисления уравнения, количество шагов, начальное значение у, а также коэффициенты при kxи ky.

2

Вычисление фиксированного приращения аргумента х

3

Цикл с шагом 1 и конечным значением не превышающим количество шагов, который высчитывает значение   yна определённом интервале

4

Функция для расчёта уравнения вида y’=f(x,y);

5

Вывод результатов на интервале X

3.4 Блок-схемафункции “func”.

 SHAPE * MERGEFORMAT

Начало

f1:=(kx*Xi)+(ky*Yi)

Yprom:=Yi+f1*(h/2)

Xprom:=Xi+h/2;

A:=kx*Xprom-Yprom

Yi:=Yi+a*h;

Xi:=Xi+h

Xi,Yi

Конец

<img src="/cache/referats/18393/image071.gif" v:shapes="_x0000_s1214 _x0000_s1213 _x0000_s1215 _x0000_s1217 _x0000_s1218 _x0000_s1219 _x0000_s1221 _x0000_s1222 _x0000_s1224 _x0000_s1226 _x0000_s1227">3.5 Описание блок- схемы функции “func”.

Номер

блока

Описание

1

Вычисление: функции f1 с подстановкой начальных значений; промежуточных значений Yprom и Xprom,  значения aдля вычисления f(Xprom,Yprom) и расчёт результатов функции и переход на следующий шаг.

2

Приращение аргумента xна h

3

Вывод результатов уравнения и интервала

                                                        <span Georgia",«serif»;mso-bidi-font-weight:bold">

<span Georgia",«serif»;mso-bidi-font-weight:bold">*Реализацияалгоритма на языке программирования

<span Georgia",«serif»;mso-ansi-language:EN-US;mso-bidi-font-weight:bold">C<span Georgia",«serif»;mso-bidi-font-weight:bold">++ представленав приложении .

4.Описаниепрограммного обеспечения.

4.1 Описание операционной системы

Основное требование коперационной системе (ОС), предъявляемое поставленной задачей, это наличие ANSIили POSIXсовместимого компилятора языка C++.

Для реализации задачи была выбранапоследняя клиентская версия операционной системы Microsoft, основанная на ядре NT– MicrosoftWindowsXPProfessional.

Указанная операционная системаобладает рядом преимуществ:

·<span Times New Roman"">       

наличиедостаточного количество ANSIили POSIXсовместимыхкомпиляторов языка C++,разработанных для данной ОС, а именно –

<span Courier New";mso-fareast-font-family:«Courier New»; mso-bidi-font-weight:bold">o<span Times New Roman"">  

MicrosoftC++ (version 2-6)

<span Courier New";mso-fareast-font-family:«Courier New»; mso-bidi-font-weight:bold">o<span Times New Roman"">  

gcc

<span Courier New";mso-fareast-font-family:«Courier New»; mso-bidi-font-weight:bold">o<span Times New Roman"">  

Borland  C++

<span Courier New";mso-fareast-font-family:«Courier New»; mso-bidi-font-weight:bold">o<span Times New Roman"">  

Intel C++

<span Courier New";mso-fareast-font-family:«Courier New»; mso-bidi-font-weight:bold">o<span Times New Roman"">  

прочие;

·<span Times New Roman"">       

достаточнаяуправляемость,  надежность ибезопасность;

·<span Times New Roman"">       

широкоераспространение основанных на ядре NTоперационных систем Microsoft, совместимых по программному обеспечению с WindowsXPProfessional(NT/2000/XP/2003 – client& server);

·<span Times New Roman"">       

высокаяскорость работы приложений, разработанных для данной ОС с использованиемкомпиляторов C++.

Исходный код программы может бытьоткомпилирован и под другой операционной системой, если для таковой имеется ANSIили POSIXсовместимый компилятор языка C++.

Программа была протестирована наоперационной системе MicrosoftWindowsXPProfessionalSP1.

Технические данные:

·<span Times New Roman"">       

HDD: 60 Gb

·<span Times New Roman"">       

Процессорx86Family 15 Model 2 Stepping 7 GenuineIntel ~1817 МГц

·<span Times New Roman"">       

Версия BIOS      AwardSoftware International, Inc. F4, 06.03.2003

·<span Times New Roman"">       

Аппаратно-зависимыйуровень (HAL)   Версия = «5.1.2600.1106 (xpsp1.020828-1920)»

·<span Times New Roman"">       

Полныйобъем физической памяти         256,00 МБ

·<span Times New Roman"">       

Доступно физической памяти        29,97 МБ

·<span Times New Roman"">       

Всего виртуальной памяти   873,69 МБ

·<span Times New Roman"">       

Доступно виртуальной памяти      350,04 МБ

·<span Times New Roman"">       

Файл подкачки   618,21МБ

4.2Описание языка программирования

Языкпрограммирования С++

С++ — это универсальный языкпрограммирования, задуманный так, чтобы сделать программирование более приятнымдля серьезного программиста. За исключением второстепенных деталей С++ являетсянадмножеством языка программирования C. Помимо возможностей, которые дает C,С++ предоставляет гибкие и эффективные средства определения новых типов. Используяопределения новых типов, точно отвечающих концепциям приложения, программистможет разделять разрабатываемую программу на лег ко поддающиеся контролючасти.  Такой метод построения программчасто называют абстракцией данных. Информация о типах содержится в некоторыхобъектах типов, определенных пользователем. Такие объекты просты и надежны виспользовании в тех ситуациях, когда их тип нельзя установить на стадиикомпиляции. Программирование с применением таких объектов часто называютобъектно-ориентированным. При правильном использовании этот метод дает болеекороткие, проще понимаемые и легче контролируемые программы.

В С++ нет типов данных высокогоуровня и нет первичных операций высокого уровня. В нем нет, например,матричного типа с операцией обращения или типа строка с операцией конкатенации.Если пользователю понадобятся подобные типы, их можно определить в самом языке.По сути дела, основное, чем занимается программирование на С++ — этоопределение универсальных и специально-прикладных типов. Хорошо разработанныйтип, определяемый пользователем, отличается от встроенного типа только способомопределения, но не способом использования.

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

Типы и средства сокрытия данных вС++ опираются на проводимый во время компиляции анализ программ с целью  предотвращения случайного искажения данных.Они не обеспечивают секретности или защиты от умышленного нарушения правил.Однако эти средства можно использовать без ограничений, что не приводит кдополнительным расходам времени на выполнение или пространства памяти.

Компилятор </spa