Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KR_oaip_no_password.pdf
Скачиваний:
16
Добавлен:
11.05.2015
Размер:
1.23 Mб
Скачать

// Прототипы функций int Sum(int, int);

int Sum(int, int, int);

int main()

{

cout << Sum(5, 3) << endl; cout << Sum(5, 3, 11) << endl;

return 0;

}

int Sum(int a, int b) // Функция суммирования двух чисел

{

return a+b;

}

int Sum(int a, int b, int c) // Функция суммирования трех чисел

{

return a+b+c;

}

3.8. Отладка программы

Для поиска логических ошибок используется встроенный отладчик.

Для пошагового выполнения программы необходимо нажимать клавишу F10. При каждом нажатии выполняется текущая строка. Если необходимо пошагово проверить код вызываемой функции, то следует нажать F11. Для досрочного выхода из функции нажать Shift+F11. Если необходимо начать отладку с определенного места программы, то надо установить курсор в соответствующую строку программы и нажать Ctrl+F10.

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

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

Желтая стрелка на поле слева от окна кода программы указывает на строку, которая будет выполнена на следующем шаге отладки.

Для контроля за значениями переменных удобно использовать следующий способ: подвести указатель мыши к интересующей переменной и задержать его на несколько секунд. На экране рядом с именем переменной появится окно, содержащее текущее значение этой переменной. Кроме этого, значения переменных будут отображаться в окнах, расположенных снизу. В левом нижнем окне отображаются значения последних использованных программой переменных. В пра-

25

вом нижнем окне (Watch) можно задать имена переменных, значения которых необходимо контролировать.

 

 

 

3.9. Пример выполнения задания

 

Написать программу вывода на экран таблицы значений функции

20

2x

k

 

для x, изменяющегося от a = 0,1 до b = 1 с шагом h = 0,1. Вычисле-

k

 

k =0 cos

(x)

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

Блок-схема алгоритма

Код программы

#include <iostream.h> #include <iomanip.h> #include <math.h>

26

// Прототипы функций

// Передача параметров по значению

double Summa (double, int);

void Summa (double*, int*,double*);// Передача параметров по указателю void Summa (double&, int&,double&); // Передача параметров по ссылке

int main()

 

{

 

double s, x, a, b, h;

 

int k;

 

cout<<"Vvedite a, b, h, k:\n";

// Ввод значений:: 0.1 1 0.1 20

cin>>a>>b>>h>>k;

// Вывод строки заголовка таблицы

cout<<"\n

Value"<<setw(20)<<"Pointer"<<setw(24)<<"Reference\n";

x=a;

// Начало цикла по x

do

{// Вывод таблицы

// Передача параметров по значению cout<<setw(5)<<x<<setw(10)<<Summa(x, k);

Summa (&x, &k,&s);

// Передача параметров по указателю

cout<<setw(10)<<x<<setw(10)<<s;

 

 

 

Summa (x, k, s);

// Передача параметров по ссылке

cout<<setw(10)<<x<<setw(10)<<s<<endl;

 

 

 

x+=h;

// Изменение значения x на величину шага h

} while (x<=b+h/2);

// Проверка условия продолжения цикла по x

cout<<endl;

// Переход на новую строку

return 0;

 

 

 

 

}

 

 

 

 

double Summa (double x, int k) // Передача параметров по значению

{

 

 

 

 

double s;

 

 

 

 

int i;

// Начальное значение при k=0

s=2;

 

20

2x

k

for (i=1; i<=k; i++)

// Вычисление суммы

 

 

k

(x)

 

k =1 cos

s+=2*pow(x,i)/pow(cos(x),i);

 

 

 

return s;

// Передача результата s в главную функцию

}

// Передача параметров по указателю

 

void Summa (double *x, int *k, double *s)

{

int i;

// Начальное значение при k=0

*s=2;

27

 

20

2x

k

for (i=1; i<=*k; i++)

// Вычисление суммы

 

k

(x)

 

k =1 cos

*s+=2*pow(*x, i)/pow(cos(*x),i);

}

// Передача параметров по ссылке void Summa (double &x, int &k, double &s)

{

int i;

// Начальное значение при k=0

s=2;

 

20

2x

k

for (i=1; i<=k; i++)

// Вычисление суммы

 

n

(x)

 

k =1 cos

s+=2*pow(x,i)/pow(cos(x),i);

}

Рисунок 4 – Результат выполнения программы

3.10. Индивидуальные задания

Составить согласно индивидуальному варианту блок-схему алгоритма и программу вывода на экран таблицы значений функции y(x) для x, изменяющегося от a=0,1 до b=1,2 с шагом h=0,1. Вычисление y(x) оформить в виде функции. Предусмотреть передачу параметров в функцию разными способами.

28

1.

3.

5.

7.

9.

11.

13.

15.

20

x

n1

 

 

 

 

 

 

 

 

 

 

y =

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

2n +1

 

 

 

 

 

 

 

 

n=1

 

 

 

 

 

 

 

 

 

 

20

x

n1

 

 

 

 

 

 

 

 

 

 

y =

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n=1 sin(nx)

 

 

 

 

 

 

 

 

 

cos

 

 

π

 

 

 

20

n

4

 

 

 

y =

 

 

 

 

 

 

 

 

 

xn .

 

 

n +1

 

 

 

 

n=1

 

 

 

 

 

 

 

 

 

20

 

x

2n

 

 

 

 

 

 

 

 

 

 

y =

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n=0 cos(nx)

 

 

 

 

 

 

 

 

20

2n +1

 

 

 

 

 

 

 

 

y =

xn1 .

 

 

 

 

 

 

 

 

n=1 sin(nx)

 

 

 

 

 

 

 

 

20

 

n x

n1

 

 

 

 

 

 

y =

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n=1 sin(2n + x)

 

20

 

x

2n2

 

 

 

 

 

 

 

 

y =

 

 

 

 

 

 

 

 

 

.

 

4cos(nx

2

)

 

n=1

 

 

 

 

 

 

cos

 

π

 

20

n

4

 

 

y =

 

 

 

 

 

xn .

 

 

 

2

 

 

 

 

n=1

 

 

 

n

 

 

 

 

 

 

 

 

 

 

2.

4.

6.

8.

10.

12.

14.

20

(2x)

n

.

 

 

 

 

 

y =

 

 

 

 

 

 

n=0

 

n +1

 

 

 

 

 

 

 

20

n2 +1 x

n

y =

 

 

n

 

 

 

 

 

 

 

 

.

 

 

 

 

 

2

n=1

 

 

 

 

 

 

 

20

x

2n2

 

 

 

 

 

 

 

y =

 

 

 

 

 

 

.

 

 

 

 

 

2n +1

 

 

 

 

 

n=1

 

 

 

 

 

 

20

2n

2

+1 x2n2 .

y =

 

 

n=1

 

 

2n

 

 

 

 

 

 

 

20

 

 

 

 

n

(x) .

 

y = cos

 

 

 

n=0

 

2n +1

 

 

 

 

 

20

(1+ x)

n1

 

y =

 

 

 

.

 

n

 

n=1

 

sin

 

(x)

 

 

 

20

 

 

n

2

 

 

 

 

 

 

 

y =

 

 

 

 

 

 

 

 

xn1 .

(2n +1)

 

 

n=1

 

 

 

 

 

29

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]