Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод в файл, Рекуррентные соотношения 
:(
    Опции темы
Garcian
Дата 11.12.2008, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 5.11.2008

Репутация: нет
Всего: нет



Код

#include <iostream.h>
#include <iomanip.h>
#include <math.h>
#include <fstream.h>
float MyFile (float &, float &, float &, ofstream &);
float Input (float &, float &);
float Summa (float &, float &, float &, float &);

int main(int argc, char *argv[]){
    cout << "Bonjour! " << endl;
    float x, eps, S, a, pogr, q, i;
    ofstream R;
    R.open ("C:\\Lab4.txt", ios::out);
    R << " i | a | S \n";
    Input (x, eps);
    S = 0; a = x; i = 0;
    while (fabs(a) > eps) {
          Summa (x, a, S, i);
          MyFile (i, a, S, R);
          }
    q = log((x + sqrt(1 + x * x)) / sqrt (1 + x * x));
    pogr = q - S;
    R << " Dlya " << q << " pogreshnost ravna: " << pogr << endl;
    R.close();
}
    
  float MyFile(float &i, float &a, float &S, ofstream &R) {
       R << '|' <<setw(5) << i << '|' << setw(15) << setprecision(7)
                          << a << '|' << setw(15) << setprecision(7) 
                          << S << "\n"; 
}

  float Input (float &x, float &eps) {
       do {cout << " Vvedite eps: " << endl; cin >> eps;}
       while ((eps >= 1)&&(eps < 0));
       
       do {cout << " Vvedite argument: " << endl; cin >> x;}
       while (fabs(x) > 1);
}
  
  float Summa (float &x, float &a, float &S, float &i) {
       a = (a*((-4)*x*x*(i+1)*(i+1)))/ ((2 * i + 2.0) * (2 * i + 3.0));
       S = S + a;
       i++;
}


Начнем собственно с того, что у меня файл вообще создаваться не хочет (путь указан правильно). Ладно, запустил у друга - все работает. Но при повторном запуске (через день) выходной файл стал давать не то что нужно (мистика!). 
В общем... в столбце i (в файле) должны быть значения от 0 до N (почему то выводятся только нули); и еще не понятно, что творится с погрешностью.

Елы палы, пока писал, друг ввел с домашнего компа... все работает! ... тогда остается только вопрос: как сделать возможным создание текстового (выходного) файла на своем компе? Пользуюсь DevC++.
--------------------
Неродивый студент
PM MAIL   Вверх
Dmi3ev
Дата 11.12.2008, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



Цитата

float MyFile(float &i, float &a, float &S, ofstream &R)

принимай так:
float MyFile(float i, float a, float S, ofstream R) и так во всех функциях.

Добавлено @ 21:55
Цитата

  float Summa (float &x, float &a, float &S, float &i) {
       a = (a*((-4)*x*x*(i+1)*(i+1)))/ ((2 * i + 2.0) * (2 * i + 3.0));
       S = S + a;
       i++;

ты вызываешь ее так
Цитата

Summa (x, a, S, i);

думаешь в main S изменится? нет))) изменится S в функции, а главной нет, конечно))) не могло это работать)))

Добавлено @ 21:56
тоже самое и с остальными переменными а тоже тут не поменяется

Добавлено @ 21:56
вернее тут поменяется а в main нет))) это же локальные переменные

Добавлено @ 21:58
надо делать что-то типа
Код


  float Summa (float &x, float &a, float &S, float &i) {
       a = (a*((-4)*x*x*(i+1)*(i+1)))/ ((2 * i + 2.0) * (2 * i + 3.0));
       S = S + a;
       i++;
      return S;}

а в main писать
Код

S=Summa (x,  a,  i);


Добавлено через 12 минут и 14 секунд
Цитата

  float Input (float &x, float &eps) {
       do {cout << " Vvedite eps: " << endl; cin >> eps;}
       while ((eps >= 1)&&(eps < 0));
       
       do {cout << " Vvedite argument: " << endl; cin >> x;}
       while (fabs(x) > 1)

это тоже ничего не возвращает, вообщем, вводи не вводи, в main х будет равен 0

Добавлено через 13 минут и 29 секунд
или как вариант объявление
Код

    float x, eps, S, a, pogr, q, i;
    ofstream R;

делать прям над main, тогда ничего передавать не надо будет даже

Это сообщение отредактировал(а) Dmi3ev - 11.12.2008, 21:59


--------------------

PM MAIL   Вверх
Garcian
Дата 12.12.2008, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 5.11.2008

Репутация: нет
Всего: нет



 smile все заработало) стоило указать путь с://devcpp//
остался один вопрос, как сделать чтобы i начиналось с нуля, а не с 1?
--------------------
Неродивый студент
PM MAIL   Вверх
Dmi3ev
Дата 12.12.2008, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



уха-ха, тупанул. Предложил принимать значения по-другому и от этого отталкивался потом, раздавая советы... Все ок, мой косяк... 


--------------------

PM MAIL   Вверх
Garcian
Дата 14.12.2008, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 5.11.2008

Репутация: нет
Всего: нет



ниче, бывает... Так есть идеи касательно нолика?
--------------------
Неродивый студент
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.2841 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.