Скриншот результатов выполнения программы



 

 


Лабораторная работа №3

Операторы цикла: заданное число повторений

 

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

 

Задание на программирование: используя технологию процедурного программирования разработать программу решения индивидуальной задачи тремя видами циклических управляющих структур: Цикл - Пока (с предусловием), Цикл - До (с постусловием), Цикл - Для (с параметром).

 

Порядок выполнения работы:

 

1) Получить у преподавателя индивидуальное задание. Выполнить постановку задачи: сформулировать условие, определить входные и выходные данные.

2) Разработать математическую модель.

3) Построить схему алгоритма, последовательно используя для решения задачи все три циклические управляющие структуры (операторы while, do…while, for). Каждое решение должно быть реализовано в виде отдельной функции.

При этом запрещается использовать оператор if для проверки условия входа в циклы и в качестве одного из операторов тела цикла;

4) Составить программу на языке C/C++.

5) Входные данныевводить с клавиатуры по запросу.

6) Вывод результатов должен осуществляться в функции main(). Выходные данные выводить на экран в развернутой форме с пояснениями.

7) Использовать стандартные потоковые объекты ввода/вывода cin и cout.

8) Проверить и продемонстрировать преподавателю работу программы на полном наборе тестов, в том числе с ошибочными входными данными.

9) Оформить отчет о лабораторной работе в составе: постановка задачи, математическая модель, схема алгоритма решения, текст программы, контрольные примеры.

 


Варианты индивидуальных заданий

1.

Для введенных с клавиатуры значений X и m вычислить S:

2.

Для введенных с клавиатуры значений X и m вычислить P:

3.

Для введенных с клавиатуры значений A, B, n, m и X вычислить S:

4.

Для введенных с клавиатуры значений A, B, n и X вычислить S:

5.

Для введенных с клавиатуры значений A, B, n, m и X вычислить S:

6.

Для введенного с клавиатуры значения m вычислить S:

 при x = 1.5 + 0.1*i

7.

Для введенного с клавиатуры значения m вычислить S:

 при x = -1 + 0.2*i

8.

Для введенного с клавиатуры значения X вычислить S:

 

9.

Для введённого с клавиатуры значения N найти (2*N)!! по формуле:

(2*N)!! = 2*4*6*…*(2*N-2)*(2*N).

10.

Для введённого с клавиатуры значения N найти (2*N+1)!! по формуле

(2*N+1)!! = 1*3*5*…*(2*N-1)*(2*N+1).

11.

Найти сумму всех целых чисел из отрезка [A,B], которые кратны 5.

12.

Найти сумму всех целых чисел из отрезка [A,B], которые кратны 7.

13.

Найти сумму всех целых чисел из отрезка [A,B], которые при делении на 5 дают остаток 3.

14.

Найти сумму всех целых чисел из отрезка [A,B], которые при делении на 7 дают остаток 4.

15.

Для заданного значения m вычислить .

Значения m, Y0, Y1, Y2 вводятся с клавиатуры, а Yi вычисляется по формуле

 i = 3, 4, 5,…, m.

16.

Для заданного значения m вычислить Ym.

Значения m, Y0, Y1, Y2 вводятся с клавиатуры, а Yi вычисляется по формуле

Yi = tg2(Yi-1) + Yi-3; i = 3, 4, 5,…, m.

17.

Для заданного значения m вычислить .

Значения m, Y0, Y1, Y2 вводятся с клавиатуры, а Yi вычисляется по формуле

 i = 3, 4, 5,…, m.

18.

Для заданного значения m вычислить Ym.

Значения m, Y0, Y1 вводятся с клавиатуры, а Yi вычисляется по формуле

 i = 2, 3, 4,…, m.

19.

Для заданного значения m вычислить Ym.

Значения m, Y0 , Y1, Y2 вводятся с клавиатуры, а Yi вычисляется по формуле

Yi= sin2 (Yi-1) + cos2 (Yi-3); i=3, 4, 5,…, m

20.

Для заданного значения m вычислить .

Значения m, Y0, Y1, Y2 вводятся с клавиатуры, а Yi вычисляется по формуле

Yi = sin(Yi-1) - cos(Yi-3); i = 3, 4, 5,…, m.

21.

Для заданного значения m вычислить .

Значения m, Y0 ,Y1 вводятся с клавиатуры, а Yi вычисляется по формуле:

 i=2, 3, 4,…, m.

 

 

22.

Члены последовательностей {Xi} и {Yi} вычисляются по двум рекуррентным формулам. Для введённого с клавиатуры значения m вычислить Xm ,Ym, если

Xi+1 =  X0 = 3.5

Yi+1 = ; Y0 = 2.2

23.

Для заданного значения m вычислить Ym.

Значения m, Y0, Y1,Y2 вводятся с клавиатуры, а Yi вычисляется по формуле

Yi = ctg(Yi-1) + sin(Yi-3); i = 3, 4, 5,…, m.

24.

Для заданного значения m вычислить Ym.

Значения m, Y0, Y1,Y2 вводятся с клавиатуры, а Yi вычисляется по формуле

Yi = lg(|Yi-1|) + 4arctg(Yi-3); i = 3, 4, 5,…, m.

25.

Для заданного значения m вычислить Ym.

Значения m, Y0, Y1,Y2 вводятся с клавиатуры, а Yi вычисляется по формуле

Yi = cos(Yi-1) + 3sin(Yi-3); i = 3, 4, 5,…, m.

26.

Для заданного значения m вычислить Ym.

Значения m, Y0, Y1,Y2 вводятся с клавиатуры, а Yi вычисляется по формуле

Yi = lg2(|Yi-1|) + Yi-3 – cos(Yi-2); i = 3, 4, 5,…, m.

27.

Для заданного значения m вычислить Ym.

Значения m, Y0, Y1,Y2 вводятся с клавиатуры, а Yi вычисляется по формуле

Yi = sin2(Yi-1) + ctg(Yn-2) - 5Yi-3; i = 3, 4, 5,…, m.

 


Пример программы

 

//Пользуясь рекуррентной формулой yi=yi-1 + yi-3^2, где i=3,4,...n,

//для заданного значения n вычислить yn, если известны y0, y1, y2.

#include<iostream.h>

#include<stdlib.h>

#include <locale.h>

int recur1(int n, int y0, int y1, int y2) ;

int recur2(int n, int y0, int y1, int y2) ;

int recur3(int n, int y0, int y1, int y2) ;

 

int main()

{int var, n ;

 int re1, re2, re3 ;   //результаты решения задачи

 float y0, y1, y2 ;         //исходные данные

 setlocale(LC_ALL,"Russian") ;

 for(;;)

 {

//Выбор вида действия

cout << " Вид действия:\n" ;

cout << " 1 - вычисление по рекуррентной формуле\n" ;

cout << " 2 - завершение задачи\n" ;

cout << " Введите вид действия -> " ;

cin >> var ;

switch(var)

{case 1:

//Ввод исходных данных

cout << " Введите n -> " ;

cin >> n;

cout << " Введите y0, y1, y2 -> " ;

cin >> y0 >> y1 >> y2 ;

re1 = recur1(n, y0, y1, y2) ;

re2 = recur2(n, y0, y1, y2) ;

re3 = recur3(n, y0, y1, y2) ;

//Вывод результата

cout << "Для цикла WHILE результат  = " << re1 << endl ;

cout << "Для цикла DO..WHILE результат = " << re2 << endl ;

cout << "Для цикла FOR результат  = " << re3 << endl ;

break ;

default: return 0 ;

}//switch

 }//for

}

 

//вычисление значения рекуррентного выражения циклом while

int recur1(int n, int y0, int y1, int y2)

{int i = 3, y ;

 while(i <= n)

{y = y2 + y0 * y0 ;

y0 = y1 ;

y1 = y2 ;

y2 = y ;

i++ ;

}

 return y ;

}

 

//вычисление значения рекуррентного выражения циклом do..while

int recur2(int n, int y0, int y1, int y2)

{int i = 3, y ;

 do

{y = y2 + y0 * y0 ;

y0 = y1 ;

y1 = y2 ;

y2 = y ;

i++ ;

}

 while(i <= n) ;

 return y ;

}

 

//вычисление значения рекуррентного выражения циклом for

int recur3(int n, int y0, int y1, int y2)

{int i, y ;

 for(i = 3 ; i <= n ; i++)

{y = y2 + y0 * y0 ;

y0 = y1 ;

y1 = y2 ;

y2 = y ;

}

 return y ;

}

 


Лабораторная работа №4


Дата добавления: 2018-04-05; просмотров: 733; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!