Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2018, 12:57   #11
Alexa19s
Пользователь
 
Регистрация: 23.01.2018
Сообщений: 16
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
В этом был смысл вопроса ? Дальше код не смотрел.
Да, именно в этом.
Хорошо, тогда пример можете еще один глянуть?
Вот мое решение:
Код:
#include "stdafx.h"
#include "math.h"
#include "iostream"
#include "conio.h"
#include "stdio.h"

using namespace std;

int main(int arg, char*argv[])

{
	double a, b, h, y, s, r, x;
	int n, k;
	puts("Input a,b,h,n");
	scanf_s("%lf%lf%lf%d", &a, &b, &h, &n);


	for (x = a; x <= b; x += h)
	{
		printf("\n x=%8.2f", x);
		y = x * atan(x) - log(sqrt(1 + pow(x, 2)));

		printf("\n Y(x)=%8.6f", y);
		s = 0;
		for (k = 1; k <= n; k++) {

	s += pow(-1, k + 1)*pow(x, 2 * k) / (2 * k*(2*k - 1));

		}

		printf("\n S(x)=%8.6f", s);
		r = fabs(y - s);
		printf("\n |Y(x)-S(x)|=%8.6f", r);
	}

	puts("\nPress any key...");

	_getch();
	return 0;
}
Пока я не добавила в код s=0, то мне выдавало ошибку, что переменная не инициализирована.
Дописала 0, дело пошло.
А можно было написать s=1?

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор
Изображения
Тип файла: png 98.png (5.3 Кб, 53 просмотров)

Последний раз редактировалось Serge_Bliznykov; 02.02.2018 в 13:37.
Alexa19s вне форума Ответить с цитированием
Старый 02.02.2018, 14:02   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Alexa19s Посмотреть сообщение
Вот мое решение:
Цитата:
Сообщение от Alexa19s Посмотреть сообщение
Код:
y = x * atan(x) - log(sqrt(1 + pow(x, 2)));
неверно. log() - это десятичный логарифм.
а Вам нужен ln() - натуральный логарифм.

ещё нет проверки на ОДЗ.

И почему Вы вводите переменную n ?
обычно такие ряды считаются до достижения заданной точности (они сходящиеся).
А пользователь откуда знает, сколько членов ряда нужно ?
Или в этом и состоит задумка - задав число n увидеть какую точность достигли ?


Цитата:
Сообщение от Alexa19s Посмотреть сообщение
А можно было написать s=1?
можно. только считалось бы неправильно. результат был ровно на 1 больше, чем надо

Последний раз редактировалось Serge_Bliznykov; 02.02.2018 в 14:05.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.02.2018, 14:06   #13
Alexa19s
Пользователь
 
Регистрация: 23.01.2018
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а почему вводите переменную n ?
обычно такие ряды считаются до достижения заданной точности (они сходящиеся).
А пользователь откуда знает, сколько членов ряда нужно ?
Или в этом и состоит задумка - задав число n увидеть какую точность достигли ?


можно. только считалось бы неправильно. результат был ровно на 1 больше, чем надо
В задании указано: значение параметра n выбрать в зависимости от задания (10, 20, 50, 100)
Я выбрала 10.Как на ваш взгляд нужно сделать правильно?
Так а почему именно 0 нужен в параметре s, я не догоняю.
Alexa19s вне форума Ответить с цитированием
Старый 02.02.2018, 14:12   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я дописал свой пост выше. обратите, пожалуйста внимание!


Цитата:
Сообщение от Alexa19s Посмотреть сообщение
Я выбрала 10.Как на ваш взгляд нужно сделать правильно?
раз так сказано в задании, значит, это правильно.


Цитата:
Сообщение от Alexa19s Посмотреть сообщение
Так а почему именно 0 нужен в параметре s, я не догоняю.
чтобы просуммировать ряд чисел (неважно какой - хоть это числовой ряд, хоть массив, хоть элементы матрицы) используют некую переменную для накопления суммы. В начале в неё записывают ноль. Пусто. Сумма начально равна нулю.
потом
S := S + очередное число.
в результате в S получается сумма.

по поводу зануления в интернетах часто приводят такой иллюстрирующий пример.
Решите задачку. Буратино дали сначала одно яблоко, потом ещё два яблока.
Сколько теперь у Буратино яблок?
Ответ - неизвестно, т.к. мы не знаем, сколько у него было яблок в начале.

Вот поэтому все переменные, прежде чем из них прочитать, нужно сначала иницилизировать - записать туда что-то.
Умные компиляторы следят за этим и не дают выстрелить себе в ногу.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.02.2018, 14:30   #15
Alexa19s
Пользователь
 
Регистрация: 23.01.2018
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
я дописал свой пост выше. обратите, пожалуйста внимание!
Спасибо, да я обратила внимание на свою ошибку.
Да, теперь мне понятно про 0, огромное спасибо)
Я верно понимаю, что проверка на область допустимых значений будет такая, что (1 + pow(x, 2)) должно быть больше 0?
Alexa19s вне форума Ответить с цитированием
Старый 02.02.2018, 15:06   #16
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Я верно понимаю, что проверка на область допустимых значений будет такая, что (1 + pow(x, 2)) должно быть больше 0?
а придумай-ка такой x, что бы это выражение стало <= 0, или хотя бы < 1 ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.02.2018, 15:16   #17
Alexa19s
Пользователь
 
Регистрация: 23.01.2018
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
а придумай-ка такой x, что бы это выражение стало <= 0, или хотя бы < 1 ))
да, меньше 1 там не будет.
Alexa19s вне форума Ответить с цитированием
Старый 02.02.2018, 15:24   #18
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Alexa19s Посмотреть сообщение
да, меньше 1 там не будет.
ага. извините, я увидел, что в формуле есть логарифм и корень квадратный, вот и сказал про ОДЗ.
в данном случае это не актуально, можно (и нужно) не заморачиваться с проверкой!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.02.2018, 15:33   #19
Alexa19s
Пользователь
 
Регистрация: 23.01.2018
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ага. извините, я увидел, что в формуле есть логарифм и корень квадратный, вот и сказал про ОДЗ.
в данном случае это не актуально, можно (и нужно) не заморачиваться с проверкой!
Спасибо
Alexa19s вне форума Ответить с цитированием
Старый 08.02.2018, 01:40   #20
Alexa19s
Пользователь
 
Регистрация: 23.01.2018
Сообщений: 16
По умолчанию

Не могу понять, в чем проблема.
Вот мой код на поиск максимального значения массива
Он работает верно
Код:

using namespace std;


int main(int argc, char*argv[]) {

	const int N = 5;
	int i,j;
	int A[N];
	int max = 0; int m = 0;
	int min = A[0];
	printf("Vvedite massiv A\n");
	for (i = 0; i < N; i++) {
		scanf_s("%d", &A[i]);
			}
		
	for (i = 0; i < N; i++) {
		if (A[i]>max) {
			max = A[i];
			}
	}
	printf("Max number %d\n", max);
	//printf("Position max %d\n", m);
	//printf("Min number %d\n", min);
//printf("Position min %d", j);
	_getch();
	return 0;
}
Вот код на минимум
Вывод 0
Код:
int main(int argc, char*argv[]) {

	const int N = 5;
	int i,j;
	int A[N];
	int max = 0; int m = 0;
	int min = 0;
	printf("Vvedite massiv A\n");
	for (i = 0; i < N; i++) {
		scanf_s("%d", &A[i]);
			}
		
	for (i = 0; i < N; i++) {
		if (A[i]<min) {
			min = A[i];
			}
	}
	//printf("Max number %d\n", max);
	//printf("Position max %d\n", m);
	printf("Min number %d\n", min);
//printf("Position min %d", j);
	_getch();
	return 0;
}
почему? где ошибка?
Заранее спасибо
Alexa19s вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Откуда берутся космически большие цифры в массиве? AlFina Помощь студентам 8 17.09.2015 06:08
Откуда берутся "тики" Stopwatch.Frequency lawliet93 C# (си шарп) 9 27.03.2014 19:46
даны два числа A и B.проверить являются ли числа A и B нечётными ( Делфи 7 нужна помощь в решении задач) nadyaH Помощь студентам 7 24.10.2013 17:51
Откуда берутся расширения у файлов Ципихович Эндрю Общие вопросы по программированию, компьютерный форум 38 29.07.2012 10:56
Откуда берутся милионные при простых операциях mrMad-Cat Microsoft Office Excel 2 07.02.2012 16:56