Оператор цикла с постусловием. Do<оператор>while<выражение>;

do<оператор>while<выражение>;

В языке C++ этот оператор отличается от классической реализации цикла с постусловием тем, что при истинности выражения происходит продолжение работы цикла, а не выход из цикла.

Оператор пошагового цикла.

for ([<начальное выражение>];

[<условное выражение>];

[<выражение приращения>])

<оператор>

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

Если опущено условное выражение, то оно считается истинным, и цикл становится бесконечным.

Оператор безусловного перехода

break;

Оператор безусловного перехода прерывает выполнение операторов while, do, forи switch. Он может содержаться только в теле этих операторов. Управление передается оператору программы, следующему за прерванным. Если оператор безусловного перехода записан внутри вложенных операторов while, do, for, switch, то он завершает только непосредственно охватывающий его оператор.

Оператор продолжения.

continue;

Оператор продолжения передает управление на следующую итерацию в операторах цикла while, do, for. Он может содержаться только в теле этих операторов. В операторах doи whileследующая итерация начинается с вычисления условного выражения. В операторе forследующая итерация начинается с вычисления выражения приращения, а затем происходит вычисление условного выражения.

Оператор возврата

return [<выражение>];

Оператора возврата заканчивает выполнение функции, в которой он содержится, и возвращает управление в вызывающую функцию. Управление передается в точку вызывающей функции, непосредственно следующую за оператором вызова. Значение выражения, если она задано, вычисляется, приводится к типу, объявленному для функции, содержащей оператор возврата, и возвращается в вызывающую функцию. Если выражение опущено, то возвращаемое функцией значение не определено.

С формальной точки зрения операторы break, continueи returnне являются операторами структурного программирования. Однако их использование в ограниченных количествах оправдано, когда они упрощают понимание программы и позволяют избегать больших вложенных структур. Например, мы проверяем входные данные на аномалии. Если не использовать эти операторы, то всю обработку придется вложить в условный блок, что ухудшает читабельность программы. Вместо этого можно написать небольшой условный блок, который организует выход из функции при неверных исходных данных.

Ввод/выводне является частью языка С++, а осуществляется функциями, входящими в состав стандартной библиотеки.

В С++ отсутствуют операторы ввода-вывода, так как все операции ввода-вывода реализуются с помощью функций, которые находятся в библиотеке С++, поддерживающей три уровня ввода-вывода: потоковый ввод-вывод;

Описание объектов для управления вводом-выводом содержится в файле iostream.h.При подключении этого файла с помощью директивы #include<iostream.h>в программе автоматически создаются виртуальные каналы связи cinдля ввода с клавиатуры и coutдля вывода на экран, а также операции помещения в поток « и чтения из потока »

С помощью объекта cin и операции можно присвоить значение любой переменной. Например, если переменная x описана как целочисленная, то команда cin»x;означает, что в переменную xбудет записано некое целое число, введенное с клавиатуры. Если необходимо ввести несколько переменных, то следует написать cin»x»y»z;.

Объект coutи операция позволяет вывести на экран значение любой переменной или текст. Текст необходимо заключать в двойные кавычки. Запись cout»x;означает вывод на экран значения переменной x.

Практическая часть

Циклические алгоритмы

Задание 1

Вычислить и вывести на экран в виде таблицы значения функции F на интервале от xнач. до xкон. с шагом dx.

Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru

где a,b,c – действительные числа

Решение:

1)Спецификация

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

xn – x начальная

xk – x конечная

dx – шаг цикла

a,b,c – действительные числа

x – значение аргумента

F- значение функции

Выходные данные: x,F

2)Блок-схема

 
  Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru

Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru

       
    Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru
 
да
 

Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru да

           
    Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru
 
  Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru
 
    Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru

3) Текст программы:

#include<iostream>

#include<iomanip>

using namespace std;

int main ()

{float x,xn,xk,dx,a,b,c;

double F;

cout<<"Vvedite xn,xk,dx,a,b,c"<<endl;

cin>>xn>>xk>>dx>>a>>b>>c;

cout<<"\n Tablitsa znacheniy x i y \n";

x=xn;

while(x<=xk)

{if(x==0 && b!=0) F=a*(x+c)*(x+c)-b; else

if(x==0 && b==0)

F=(x-a)/-c; else F=a+(x/c);

cout<<"x= "<<x<<"\t""F= "<<F<<endl;x+=dx;}

}

4) Отладка программы:

Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru

5)Результат:

Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru

Задание 2.

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

Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru

1)Спецификация

Входные данные: x,ln,eps,MaxIter

Выходные данные: y,x,n

ln- промежуточная переменная

x- исходные данные

y- выходные данные

n- выходные данные

eps- точность

MaxIter - максимальное количество итерация

Решение:
сh*= Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru

2)Блок-схема

       
  Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru
 
    Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru

3)Текстпрограммы:

#include<iostream>

#include <math.h>

#include <float.h>

using namespace std;

int main()

{

const int MaxIter=500;

double x,eps=DBL_EPSILON; int n;

cout<<"\n Vvedite znacenie x";cin>>x;

double ch=1,y=ch;

for(n=0; fabs(ch)>eps && n<MaxIter;n++)

{ch*=((x-1)*(x-1)*2*n+1)/((x+1)*(x+1)*(2*n+3));

y+=ch;}

if(n<MaxIter)

{cout<<"\n znacenie fynkcii: "<<y*2<<" dlya x="<<x<<endl;

cout<<"\n vicisleno posle "<<n<<" operacii"<<endl;}

else cout<<"\n Ryad rasxoditsya!";

}

4)Отладка программы:

Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru

5)Результат:

 
  Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru

Массивы

Задание 1.

В одномерном массиве, состоящем из n вещественных элементов вычислить:

1) Количество отрицательных элементов массива

2) Сумму модулей элементов массива расположенных после минимального по модулю элемента

3)Упорядочить массив по убыванию его элементов

1)Спецификация

Входные данные: arr[i],m

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

n- выходные данные

2)Блок-схема

                       
  Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru
 
    Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru
 
    Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru
 
    Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru
 
    Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru
 
    Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru

Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru

 
  Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru

Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru

m:=arr[i]

             
    Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru
 
  Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru
 
    Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru
 
    Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru

       
    Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru
 
  Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru

Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru

Текст программы:
#include <iostream>

#include <math.h>

using namespace std;

int main()

{

int n,arr[50],m=0,z,sum=0;

cout<<"Vvedite RAZMER MASSIVA: "; cin>>n;

for (int i=0; i<n; i++){

cout<<"["<<i+1<<"]: "; cin>>arr[i];

}

int min=fabs(arr[0]);

for (int i=0; i<n; i++)

if (arr[i]<0){m++;

if (fabs(arr[i])<fabs(min)){min=arr[i]; z=i;}

}

for (int i=z+1; i<n; i++){

sum+=fabs(arr[i]);

}

cout<<"OTRICATELNIH ELEMENTOV: "<<m<<endl;

cout<<"MINIMALNIY PO MODULYU: "<<min<<';'<<" EGO NOMER: "<<z<<endl;

cout<<"SUMMA MODULEY, RASPOLOJENNIH POSLE "<<min<<" RAVNA: "<<sum;

return 0;

}

Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru Отладка программы:

Результат программы:

Оператор цикла с постусловием. Do<оператор>while<выражение>; - student2.ru
Заключение

В ходе учебной практики по МДК 01.02 «Прикладное программирование» закрепил теоретические знания, приобрёл практические навыки и умения работы в среде программирования Dev-C++.

Выполнил индивидуальные задания по следующим темам:

•Циклические алгоритмы.

•Массивы.

•Функции пользователя.

-Во время прохождения учебной практики приобрёл практический опыт в разработке алгоритма поставленной задачи и реализации его средствами среды программирования Dev-C++, а также в проведении тестирования программного модуля по определенному сценарию.

Научился:

-осуществлять разработку кода программного модуля на языке программирования C++;

-создавать программу по разработанному алгоритму как отдельный модуль;

-выполнить отладку и тестирование программы на уровне модуля;

-оформлять документацию на программные средства;

-использовать инструментальные средства для автоматизации оформления документации.


Наши рекомендации