Скриншот результатов выполнения программы
Лабораторная работа №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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!