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

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

Войти
Регистрация
Восстановить пароль
 
Fazer77777
3 / 3 / 0
Регистрация: 29.06.2012
Сообщений: 45
#1

Решение уравнения. Чтение из файла значений и запись результатов в файл - C++

22.05.2014, 16:20. Просмотров 370. Ответов 4
Метки нет (Все метки)

Здравствуйте!) Нужна программка, считывающая из файла не целые значения S11 через пробел, и подставляющая заданные значения S11 в уравнение с одним неизвестным Y1pr, и выводящая также через пробел в выходной файл результаты решения.
Уравнение выглядит так:
http://www.cyberforum.ru/cgi-bin/latex.cgi?S11=(Y0-Y1pr)/(Y0+Y1pr)
Y0=1/50. Найти Y1pr.

Значений S11 более 10.000. Давно не практиковался, заголовок набросал, дальше не идёт)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <math.h>
#include <cstdlib>
#include <cstdio>
#include <fstream>
#include <string>
 
using namespace std;
 
int main()
{
    double Y0 = 1/50, S11;
    double Y1pr;
 
 
    std::ifstream input("input.txt");
    std::ofstream output("output.txt");
    if(input && output)
      {
Помогите с программкой)

Добавлено через 4 часа 12 минут
Неужели никто не подскажет?
Часть программы написал:

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
#include <iostream>
#include <math.h>
#include <cstdlib>
#include <cstdio>
#include <fstream>
#include <string>
#include <sstream>
 
using namespace std;
 
int main()
{
    double Y0 = 0.02;
    double Y1pr;
    double S11;
 
    ifstream input("input.txt");
    ofstream output("output.txt");
    
 
    if(input && output)
    {
        string s;
        for(std::size_t i = 0; getline(input, s); ++i)
        {
            istringstream convert(s);
            convert>>S11;
            Ypr= Y0 - S11*Y0 - S11*Y1pr;
            output << Y1pr << "\n";
        }
    }
    
  input.close();
  output.close();
  return 0;
}
Но проблема с самим уравнением. "Ошибка: Ypr: необъявленный идентификатор"
Разбиение:
C++
1
2
Y1pr+= S11*Y1pr;   
Ypr= Y0 - S11*Y0 - Y1pr;
тоже ничего не дало.
Подскажите как правильно записать уравнение?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2014, 16:20
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Решение уравнения. Чтение из файла значений и запись результатов в файл (C++):

Считывание данных из файла и запись результатов в файл - C++
Здравствуйте. Необходимо переделать этот код: #include &lt;iostream&gt; using namespace std; /////////////////////////////////...

Замена букв в тексте из файла и запись результатов в файл - C++
Здравствуйте, помогите, пожалуйста, дописать прогу - нужно, чтобы прога читала данные из файла, заменяла в нём букву t везде на букву x и...

Запись в файл, чтение из файла - C++
В общем, неделю назад мне помогли на этом форуме сделать программу. И все прекрасно работает на visual studio, но в универе у нас везде...

Чтение из файла, запись в файл - C++
Тут такая у меня проблема. 1) Не работает цикл в майне. Как его правильно организовать? 2) И, похоже, чтение из файла все-таки,...

Чтение из файла и запись в файл - C++
Доброго времени суток. Идея в чем: Пример входных данных из файла: 5 o 3 c 4 o 5 c 6 o 7

Чтение из файла/Запись в файл - C++
Приветствую всех! Понимаю что тема заезженная вдоль и поперек, но помощь мне нужна срочно! Мне нужно написать программу, которая...

4
zss
Модератор
Эксперт С++
6866 / 6428 / 2149
Регистрация: 18.12.2011
Сообщений: 16,894
Завершенные тесты: 1
22.05.2014, 16:30 #2
У Вас S11=Y0*Y0-Y1pr*Y1pr
отсюда
C++
1
Y1pr=sqrt(S11-Y0*Y0);
0
Fazer77777
3 / 3 / 0
Регистрация: 29.06.2012
Сообщений: 45
22.05.2014, 17:04  [ТС] #3
zss, не соображу как вы преобразовали. Не работает с отрицательными числами. Мой входной файл такого вида:
C++
1
2
3
4
5
-0.4900  
-0.4901  
-0.4903  
-0.4905  
-0.4909
0
zss
Модератор
Эксперт С++
6866 / 6428 / 2149
Регистрация: 18.12.2011
Сообщений: 16,894
Завершенные тесты: 1
22.05.2014, 18:08 #4
Цитата Сообщение от Fazer77777 Посмотреть сообщение
double Y0 = 1/50
Y0 получится равным НУЛЮ (догадайтесь из 3 раз почему).
А формула получается раскрытием скобок.
0
Fazer77777
3 / 3 / 0
Регистрация: 29.06.2012
Сообщений: 45
22.05.2014, 21:56  [ТС] #5
Спасибо, конечно, что помогаете, но давайте без угадываний) Каким образом Y=0? Объясните по-подробнее) Мои преобразования выглядят так:

http://www.cyberforum.ru/cgi-bin/latex.cgi?S11*(Y0+Y1) = Y0-Y1
http://www.cyberforum.ru/cgi-bin/latex.cgi?S11*Y0 + S11*Y1 = Y0 - Y1
http://www.cyberforum.ru/cgi-bin/latex.cgi?S11*Y0 - Y0 = -Y1 - S11*Y1
http://www.cyberforum.ru/cgi-bin/latex.cgi?Y1 + S11*Y1 = Y0 - S11*Y0.

http://www.cyberforum.ru/cgi-bin/latex.cgi?S11 = -0.4901
http://www.cyberforum.ru/cgi-bin/latex.cgi?Y0 - S11*Y0 = 0.02-(-0.4901)*0.02 = 0.0298
http://www.cyberforum.ru/cgi-bin/latex.cgi?Y1 + (-0.4901)*Y1 = 0.5099*Y1
http://www.cyberforum.ru/cgi-bin/latex.cgi?0.5099*Y1 = 0.0298
http://www.cyberforum.ru/cgi-bin/latex.cgi?Y1 = 0.0298/0.5099 = 0.0584

При вашем решении получается выходной файл вида:
Код
-1.#IND
-1.#IND
-1.#IND
-1.#IND
-1.#IND
При положительном S11 = 0.4901.

Моим ручным решением выходит:
Y1 = 0.0068

При вашем решении получается другое значение:
Y1 = 0.699786

Что-то вы похоже путаете. Разъясните на пальцах, если я неправ. И что делать с отрицательными S11?

Добавлено через 1 минуту
При решении вашего уравнения ручным способом ответ такой:
Y1= sqrt(S11-0.02*0.02)=0.7004*i
0
22.05.2014, 21:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2014, 21:56
Привет! Вот еще темы с ответами:

Запись в файл и чтение из файла - C++
Здравствуйте!!! Как правильно сделать в с++ запись в файл и чтение из файла?? Объясните пожалуйста с примерами??

Запись в файл, чтение из файла - C++
Каким образом можно реализовать чтение из файла только 1 строки,используя ifstream и fstream,если можно то темку про это из интернета,сам...

Запись в файл и чтение из файла - C++
Всем привет. Кто может подсказать решение? Есть полученный заполненный массив. int A. Числа в нём от 0 до 17. Как его записать в файл...

Чтение из файла и запись в файл - C++
Создайте текстовый файл целых чисел (значения вводятся с клавиатуры). Проанализировав в программе созданный файл, создайте еще 2 файла: ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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