Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания по С++.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
793.09 Кб
Скачать

Лабораторная работа №4 Программирование алгоритмов циклической структуры

Цель работы – овладение практическими навыками разработки, программирования вычислительного процесса циклической структуры, получения дальнейших навыков по отладке и тестированию программы.

Задания для самостоятельной подготовки:

З а д а н и е А

  1. Изучить возможности языка программирования для реализации:

- вычислительного процесса циклической структуры;

- приёма программирования – табулирования функции от одного аргумента(вычисление значений функции при изменении значения аргумента в заданном диапазоне с шагом )

2. Разработать алгоритм табулирования функций в соответствии с заданием.

3. Составить программу решения задачи.

4. Выполнить программу.

З а д а н и е B

1. Изучить:

- организацию итерационных циклов;

- возможности языка программирования для организации таких циклов;

- приемы программирования – вычисление суммы элементов бесконечного ряда, накопления суммы.

2. Разработать алгоритм решения в соответствии с заданием.

3. Составить программу решения задачи.

4. Вычислить предел суммы элементов ряда.

Задание к работе:

З а д а н и е А

Вычислить значение функции , заданной в табл. 2 (в соответствии с вариантом задания) при изменении аргумента в заданном диапазоне и с заданным шагом . Организовать вывод значения аргумента и вычисленного значения функции в виде таблицы .

ТАБЛИЦА ФУНКЦИИ Y(X)

X Y

…………… ………………

…………… . ……………..

З а д а н и е Б

Вычислить на ЭВМ значение суммы элементов бесконечного ряда ,(табл. 3) с заданной точностью . На печать вывести значение суммы и число членов ряда, вошедших в сумму.

Таблица 3

вариант

задания

сумма элементов ряда

значение

точность

вычисления

1

0,2

10-5

2

0,1

0,5*10-3

Продолжение таблицы 3

3

0,15

10-3

4

0,12

10-4

5

0,7

10-4

6

-

10-4

7

1,5

0,5*10-3

8

0,5 * 10-4

9

1,7

10-3

10

0,5 * 10-4

11

0,75

0,5 * 10-3

12

0,62

10-4

13

0,75

10-4

14

1,5

0,3 * 10-4

15

2,3

10-4

Пример выполнения работы

З а д а н и е А. Вычислить на ЭВМ значение функции:

при изменении аргумента t в диапазоне с шагом 0,1. Вывод значений t и s выполнить в виде таблицы.

Программа решения задачи имеет вид:

#include <stdio.h> //подключение файла

#include <math.h> //подключение файла

void main ( ) //заголовок функции main

{

float a,b,t,s,tn=0.1,tk=2.1,h=0.1; // объявление переменных с инициализацией

printf (“Введите значения переменных a,b,t\n”); // вывод на экран сообщения

scanf (“%f%f”, &a,&b); // ввод значений переменных

printf (“Таблица функции S(T)\n” s t\n); //вывод шапки таблицы

t=tn; //присвоение начального значения t

while(t<=tk) // пока t меньше либо равно конечного значения

{if (a*t<1) //если a*t<1

s=a*t+b; //то s рассчитывается по первой формуле

else //иначе

if (a*t= =1) // если a*t= =1

s=cos(a*t); // то s рассчитывается по второй формуле

else // иначе

s=exp(-a*t)*cos(a*t); // s рассчитывается по третьей формуле

printf (“%10.3f%10.3f \n”,t,s); //вывод значений переменных

t+=h; //увеличение t на величину шага

}

return; //завершение функции main

}

З а д а н и е Б. Вычислить значение суммы элементов бесконечного ряда

с точностью до элемента ряда, меньшего е=10-4 для x=0,1.

Определить число элементов ряда, вошедших в сумму.

Для вычисления общего элемента ряда

используем рекуррентное соотношение, выразив n-й элемент через (n-1)-й:

;

Значение первого элемента ряда вычислим до цикла с помощью оператора присваивания а=x, а всех последующих элементов ряда по рекуррентному соотношению

в цикле.

Программа решения задачи имеет вид:

#include <stdio.h> //подключение файла

#include <math.h> //подключение файла

void main ( ) //заголовок функции main

{ int n;

float x,e,a,s; // объявление переменных

printf (“Введите значения переменных x,e\n”); // вывод на экран сообщения

scanf (“%f%f”, &x,&e); // ввод значений переменных

a=x; s=0; n=1; //присвоение начальных значений

do

{ s+=a; // накопление суммы

n++; // увеличение n на 1

a*=-a*x*x/(2*n-2)*(2*n-1); //расчет следующего элемента

} while(fabs(a)>=e) //пока текущий элемент a больше либо равен заданной точности e

printf (“сумма элементов ряда=%10.3f\nчисло элементов=%10d \n”,s,n);

//вывод значений переменных

return; } //завершение функции main