Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
welzor
Сообщений: n/a
#1

Итерационные циклы - C++

08.11.2012, 02:22. Просмотров 1625. Ответов 3
Метки нет (Все метки)

Доброй ночи
Помогите найти ошибки, скорее всего в функциях.
общее задание:
Кликните здесь для просмотра всего текста
ЛАБОРАТОРНАЯ РАБОТА № 3
РЕАЛИЗАЦИЯ ИТЕРАЦИОННЫХ ЦИКЛОВ СРЕДСТВАМИ ЯЗЫКА С++
Цель работы: Составление алгоритмов и написание многомодульных программ с итерационными циклами

Общие указания к заданиям лабораторной работы.

По номеру Вашего варианта выбрать задачу, решаемую в этой лабораторной работе, и выполнить для нее следующие задания.
Алгоритм решения индивидуальной задачи разделить на две функции:
- функцию, которая организует вычисления по формуле, определенной в задаче соответствующего задания.
Алгоритмы этих функций разработайте в трех вариантах:
• с использованием цикла do....while;
• с использованием цикла while;
• с использованием цикла for.
Для каждого варианта составить свою функцию и дать им разные имена. Функции оформить как функции со списком параметров, передаваемых по значению. Результаты вернуть через возвращаемое значение и через параметр по ссылке. Каждую функцию записать в свой файл одного проекта одного решения (solution). Откомпилировать каждый файл отдельно, устранив все ошибки на этом этапе проектирования.
- разработать функцию main(), алгоритм которой обеспечит ввод исходных данных с клавиатуры, вызов функции вычисления и вывод результатов на экран. Алгоритм этой функции должен содержать сообщение–меню, предлагающее пользователю вашей программы сделать выбор для решения Вашей программы одним из трех циклов языка С++. В меню предусмотрите выход из программы по требованию пользователя. В алгоритме main() разработайте организацию выбора нужного решения с помощью переключателя switch. Текст функции main() записать в свой файл и включить в проекта Вашего решения. Откомпилировать функцию в рамках проекта и устранить возможные ошибки компиляции.
- выполнить проект решения, добившись одинаковых результатов для трех вариантов реализации Вашей индивидуальной задачи на таких отладочных данных, которые позволяют судить о правильности ее решения.


Мое задание:
Кликните здесь для просмотра всего текста
[IMG]http://s018.***********/i506/1211/7c/a0c595077ce5.jpg[/IMG]


мэйн
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <conio.h>
 
using namespace std;
double summ_for(double, float&, float&);
double summ_while(double, float&, float&);
double summ_dowhile(double , float&, float&);
 
void main()
{
float E, n, summ, k;
do
{
cout«"Vvedite E "«endl;
cin»E;
}
while (1 >= E > 0);
do
{
cout«"Vvedite n "«endl;
cin»n;
}while (n >= 2);
int q;
cout«"Sposob resheniya?"«endl;
cout«"1 - For"«endl;
cout«"2 - Do while"«endl;
cout«"3 - While"«endl;
cin»q;
switch(q)
{
case 1:
k=summ_for(E,n,summ);
break;
case 2:
k=summ_dowhile(E,n,summ);
break;
case 3:
k=summ_while(E,n,summ);
break;
default:
return;
cout«"Otvet: "«k«endl;
}
}


функция
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <math.h>
 
double summ_for(double eps, float &n, float &firstin)
{
 
double slag, slagnext, summ = 0, fact = 120;
slag = 1. / - 1 / 6.;
slagnext = ( 1. + 1 / 120.);
int i = 3;
for (; abs(slag - slagnext) < eps, i++;)
{
summ = summ * slag;
slag = slagnext;
fact = fact * (2 * i + 1);
if (i % 2)
slagnext = 1. + 1/fact;
else
slagnext = 1. - 1/fact;
}
i = n;
firstin = slag;
return summ;
}


Ввожу переменные, выбираю цикл, и дальше ничего...
Кликните здесь для просмотра всего текста
[IMG]http://s019.***********/i632/1211/33/db092c1965b9.jpg[/IMG]


Буду очень благодарен, заранее спасибо за любую помощь.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2012, 02:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Итерационные циклы (C++):

итерационные циклы - C++
void main() {setlocale(LC_ALL,&quot;Russian&quot;);const float eps=0.001f;float x; float y=x-1,y0,xn;int n=2; cout&lt;&lt;&quot;Введите x:&quot;; cin&gt;&gt;x; ...

Итерационные циклы - C++
Помогите решить задачку на итерацию в С++ Просто на завтра нужно сдать)) плс

Обработка введенного символа. Итерационные циклы - C++
Ребят...кто сможет помогите с задачами....По условию нужно: 1) Считать два символа и выдавать на экран сообщение, код какого из них...

итерационные процессы и циклы в Visual Studio - C++
Написать функцию вычисления суммы ряда для заданного аргумента с точностью 4 знака после запятой. Результат выдать в виде таблицы,...

Обработка числовой информации. Итерационные алгоритмы. Циклы - C++
цели лабы 1) Организация циклов различной структуры. 2) Организация вложенных циклов. 3) Выделение отдельных цифр данного числа. Их...

Итерационные циклы,Определение и вызов функций,Использование библиотечных функций stdio.h - C++
Помогите решить задания: 1.Дано натуральное число n. Найти разность между первой цифрой этого числа и суммой всех остальных. ...

3
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.11.2012, 02:46 #2
C++
1
while (1 >= E && E > 0);
И вот это зачем?
C++
1
i = n;
0
welzor
Сообщений: n/a
08.11.2012, 02:48 #3
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
while (1 >= E && E > 0);
Тоже самое
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.11.2012, 10:08 #4
Цитата Сообщение от welzor Посмотреть сообщение
Тоже самое
Я не написл, что это решение проблемы. Просто ошибка. Код сами писали?

Добавлено через 6 минут
Условия нужно так задать:
C++
1
2
3
while (E > 1  || E < 0);
...
while (n < 2);
Тоже не решение проблемы, но по заданию.

Добавлено через 6 часов 38 минут
По моему, так:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <cmath>
using namespace std;
 
double f(double e, int &n)
{
 int f;
 double an, an_;
 
 for (n = 1; ; n++)
 {
     if (n == 1) 
     {
        f = 6;
        an_ = 1 + (pow((-1.0), n) / f);
     }
     else
     {
         f = f * n * 2 * ((n * 2) + 1);
         an = 1 + (pow((-1.0), n) / f);
         if ((an - an_) < e) break;
         else an_ = an;
     }
 }
 return an;
}
 
 
int main() 
{ 
 double e = 0;
 double a = 0;
 int n;
 
 do
    cin >> e;
 while ( e < 0 || e > 1);
 
 a = f(e, n);
 
 cout << "a = " << a << endl << "n = " << n << endl; 
 
system("pause");
return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2012, 10:08
Привет! Вот еще темы с ответами:

Итерационные алгоритмы - C++
Задание: вычислить значение бесконечного выражения (прогрессии) с вводом с клавиатуры значения аргумента (х) и количества членов (N)....

итерационные алгоритмы - C++
Ребята, помогите пожалуйста! нужно решить уравнение методом итерации, а я в этом не шарю вообще (программирование раньше не изучал)!...

Итерационные процессы - C++
Нужно написать программу на С++ по данной формуле. Перелопатил уже кучу всего. Но ничего полезного найти не могу. Помогите. Заранее спасибо!

Итерационные алгоритмы - C++
Помогите пожалуйста с заданием нужно решить на основе реккурентных отношений


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
08.11.2012, 10:08
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru