powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / помогите Please!!!!
6 сообщений из 6, страница 1 из 1
помогите Please!!!!
    #33456552
maik2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
/*Задача 2. Программа без главного окна.
Вычислить сумму указанного вида при условии, что в нее входят N слагаемых.
Параметры N и х ввести из текстового файла. Обеспечить проверку корректности
ввода данных из файла. Последнее слагаемое определите сами.
Z=sinx+(sin2x)/2+(sin3x)/3...

Полученный результат вывести в диалоговое окно MessageBox.*/
#include <sstream>
#include <fstream>
#include <windows.h>
#include <cmath>
using namespace std;

main()
{
SetConsoleOutputCP(1251);

ostringstream res;// создание выходного строкового потока
res<<"Результат:\n\nS=";// ввод в выходной строковый поток

int N; //главный параметр
float x;//x берем из файла
double S1=1;//последнее слагаемое

//ввод целого положительного числа из файла
ifstream F("slog.txt"); //открытие файла
if (!F.is_open())//проверяем открыт ли файл
{
MessageBox(NULL, "Невозможно открыть файл", "Ошибка открытия файла", MB_ICONERROR|MB_OK);
return 0;//завершение программы
}
char buffer[15]="";
F>>buffer;
N=atoi(buffer);
F>>buffer;
x=atoi(buffer);
F.close();
if (N==1)
{
res<<1;
MessageBox(NULL, res.str().c_str(), "Результат", MB_ICONINFORMATION|MB_OK);
return 0;
}
else
{
int i=1; //счетчик цикла вычисления слагаемых
double S=0;//сумма членов ряда
double y=0;//текущий член ряда
double k=2;//числитель

while (i<=N)
{
y=sin(k*x)/k;
S=S+y;//вычислить сумму
i++;//увеличение счетчика
k++;//увеличение числителя
}
S=S+S1;
res<<S;
MessageBox(NULL, res.str().c_str(), "Результат", MB_ICONINFORMATION|MB_OK);
return 0;
}
...
Рейтинг: 0 / 0
помогите Please!!!!
    #33456658
maik2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подскажите что не правельно
...
Рейтинг: 0 / 0
помогите Please!!!!
    #33480226
neskif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не правельно -это и не правильно. От слова править потому что.
...
Рейтинг: 0 / 0
помогите Please!!!!
    #33480230
neskif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы понять что не правильно, надо протеcтировать программу почти пошагово, а именно набросать побольше точек контроля с Message..... начиная с самого начала программы, т.е. после чтения из файла и не полениться проконтролировать внутри цикла как накапливается сумма.
...
Рейтинг: 0 / 0
помогите Please!!!!
    #33480964
Гадёныш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
обрати внюмание на потоки...
там частенько бывают глюки,
потом atoi чар в инт...
ты точно инт вводиш? или лонг инт?
если да то atol юзай....

и проверку делай через ShowMessage(""); а не через MessageBox

ага и ещё папка по умолчанию не всегда совподает в с предпологаемой...

по синтаксису похоже на билдер, юзай (GetCurrentDir() + "\\slog.txt").c_str()
...
Рейтинг: 0 / 0
помогите Please!!!!
    #33482720
Sp999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем отдельно обрабатывать случай N==1?
При этом к тому же результат будет вовсе не 1, а sin(x).
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / помогите Please!!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]