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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2018, 15:08   #1
Alexa19s
Пользователь
 
Регистрация: 23.01.2018
Сообщений: 16
По умолчанию Откуда берутся числа в решении?

Условие задачи прикреплено в скрине.
Разбираю решение, выложенное в нете.
Код программы:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <math.h>
#pragma hdrstop
#include "l2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float x, y, z, a, c, u;

z = StrToFloat(Edit1->Text);
a = StrToFloat(Edit2->Text);
c = StrToFloat(Edit3->Text);

if(z<0) x = log(z*z-z);
else x = 2*z+1;

// Проверка номера нажатой кнопки и выбор соответствующей функции
switch(RadioGroup1->ItemIndex){
case 0: u=2*x;
Memo1->Lines->Add("2x = "+FloatToStrF(u,ffFixed,8,6));
break;
case 1: u=x*x;
Memo1->Lines->Add("x^2= "+FloatToStrF(u,ffFixed,8,6));
break;
case 2: u=x/3;
Memo1->Lines->Add("x/3= "+FloatToStrF(u,ffFixed,8,6));
break;
}

//находим значение функции
y=sin(u)*sin(u)+a*pow(pow(x,3),5)+c *log(pow(x,2/5));

//выводим результат
Memo1->Lines->Add("y = "+FloatToStrF(y,ffFixed,8,6));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Edit1->Text="0,1";
Edit2->Text="1";
Edit3->Text="1";

Memo1->Clear();
Memo1->Lines->Add("Лабораторная работа 2");
RadioGroup1->ItemIndex = 0;
}


Вопрос:
Откуда берутся эти значения?
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Edit1->Text="0,1";
Edit2->Text="1";
Edit3->Text="1";
Изображения
Тип файла: png 98.png (27.6 Кб, 120 просмотров)
Alexa19s вне форума Ответить с цитированием
Старый 23.01.2018, 15:25   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Умолчания. Сделай свои если не нравятся )) Единички походу значения коэффициентов a и c. А 0,1 значение для z
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.01.2018, 15:34   #3
Alexa19s
Пользователь
 
Регистрация: 23.01.2018
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Умолчания. Сделай свои если не нравятся )) Единички походу значения коэффициентов a и c. А 0,1 значение для z
Большое спасибо, а то я голову сломала, откуда они, как рассчитываются.
В схожем примере цифры были 0,356; 0,1;0
Те их можно брать любые?
Alexa19s вне форума Ответить с цитированием
Старый 23.01.2018, 15:46   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Не, z нельзя любой, логарифм же только от положительных. Да и x^(2/5) для отрицательных x проблемно, смотря как вычислять будешь. Если (pow(x,2/5) то х не может быть отрицательным, а если сначала в квадрат, а потом корень извлечь то можно ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 23.01.2018 в 15:48.
Аватар вне форума Ответить с цитированием
Старый 23.01.2018, 15:51   #5
Alexa19s
Пользователь
 
Регистрация: 23.01.2018
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Не, z нельзя любой, логарифм же только от положительных. Да и x^(2/5) для отрицательных x проблемно, смотря как вычислять будешь. Если (pow(x,2/5) то х не может быть отрицательным, а если сначала в квадрат, а потом корень извлечь то можно ))
Поняла, спасибо
Надо мне еще за математику взяться
Большое спасибо) я пока не буду тему закрывать, тк только начала выполнять эти задачи.
Alexa19s вне форума Ответить с цитированием
Старый 29.01.2018, 12:13   #6
Alexa19s
Пользователь
 
Регистрация: 23.01.2018
Сообщений: 16
По умолчанию

Возник еще вопрос. Программа выше написана на языке С++?
Дело в том, что в пособии, что выдали в уч заведении, написано пособие по языку си.
В методичках же везде начиная с первого задания стоит так С/С++
Alexa19s вне форума Ответить с цитированием
Старый 29.01.2018, 15:21   #7
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Цитата:
Сообщение от Alexa19s Посмотреть сообщение
Программа выше написана на языке С++?
На с++, да и еще похоже в Borland C++ (IDE)
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 29.01.2018, 16:03   #8
Alexa19s
Пользователь
 
Регистрация: 23.01.2018
Сообщений: 16
По умолчанию

Цитата:
Сообщение от VIK_aka_TOR Посмотреть сообщение
На с++, да и еще похоже в Borland C++ (IDE)
С++ Builder -среда разработки
смутило, что пишется С/С++
И так во всей методичке
Спасибо
Alexa19s вне форума Ответить с цитированием
Старый 02.02.2018, 12:06   #9
Alexa19s
Пользователь
 
Регистрация: 23.01.2018
Сообщений: 16
По умолчанию

Появился новый вопрос.
Вот задание
Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры.
Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания (10, 20, 50, 100).
Вариант

#include <vcl.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
float a, b, x, h, y, s, r;
int n, k, fact;
puts("Input a,b,h,n");
scanf("%f%f%f%d", &a, &b, &h, &n);

for(x = a; x<=b; x+=h){
printf("\n x= %8.2f",x);
y=exp(2*x);
printf("\n Y(x)= %8.6f",y);

fact=1; s=0;


for(k=0; k<=n; k++){
if(k==0) fact = 1;
else fact*=k;

s+= pow(2*x,k)/fact;
}
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;
}

Вопрос по поводу выделенного полужирным, почему там так написано?
Спасибо
Изображения
Тип файла: png 99.png (4.7 Кб, 119 просмотров)
Alexa19s вне форума Ответить с цитированием
Старый 02.02.2018, 12:43   #10
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Почему fact=1; s=0; ? Ну так это задание начальные значений: для сумматора 0, для произведений 1. ("Очистка" единицей, "очистка" нулем). Если этого не сделать, результаты операций будут наслаиваться на начальную неопределенность. fact не может быть 0, потому что все результаты умножений на 0 всегда будут 0.
В этом был смысл вопроса ? Дальше код не смотрел.
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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