Тема: Створення циклічних програм

Допоможіть будь ласка....
Знайти суму всіх значень функції y = pow(x,i) / i , якщо i є [1; 10], hi = 1, x є [0; 1], hx = 0.1

2

Re: Створення циклічних програм

25.6460500075
Не дякуйте.

Подякували: FakiNyan, nagibator130920002

3

Re: Створення циклічних програм

koala написав:

25.6460500075
Не дякуйте.

Чому в мене інша виходить?

Прихований текст

https://picua.org/images/2019/05/10/146548cce99d697fbbc8b48fdeb5228b.png

Подякували: koala, ReAl, nagibator130920003

4

Re: Створення циклічних програм

В мене:
10.63006464732539

Прихований текст
for (var i = 1; i <= 10; i++) {
  for (var x = 0; x <= 1; x+= 0.1) {
    y += Math.pow(x, i) / i; 
  }
}
Подякували: Chemist-i, koala, leofun01, ReAl, volum, nagibator130920006

5

Re: Створення циклічних програм

Дійсно.

Прихований текст

>>> print(sum(((x/10)**i)/i for x in range(11) for i in range(1,11) ))
10.630064647325396

Десь на телефоні щось не те набрав. А ви давно на телефоні програмували?

Подякували: ReAl, nagibator130920002

6 Востаннє редагувалося ReAl (10.05.2019 14:48:30)

Re: Створення циклічних програм

Точно

Прихований текст

>> sum(((0:0.1:1)'.^(1:10)./(1:10))(:))
ans =  10.630

Подякували: nagibator130920001

7

Re: Створення циклічних програм

Підтверджую

Прихований текст
Array(10).fill(0).map((e, i) => i+1).reduce((acc, curr) => acc + Array(11).fill(0).map((e, i) => i/10).map(e => Math.pow(e, curr) / curr).reduce((acc, curr) => acc+curr), 0)
Подякували: nagibator130920001

8

Re: Створення циклічних програм

Прихований текст

Чекаємо на P.Y. з APL  :D

Подякували: nagibator130920001

9

Re: Створення циклічних програм

Можна ще попросити весь код цієї програми на C++!!!

10

Re: Створення циклічних програм

nagibator13092000, А ви на програміста вчитесь?

11

Re: Створення циклічних програм

Так...

12

Re: Створення циклічних програм

На роботі за вас ніхто програми писати не буде.

13

Re: Створення циклічних програм

Розумію, просто хворів і пропустив багато, і не дуже приємно буде якщо відрахують!!!

14

Re: Створення циклічних програм

У вас сьогодні вихідний, розбирайтесь і наздогяняйте. Якщо конкретно щось не зрозуміло - задавайте питання. Далі буде лише складніше, і якщо весь час мутитись, то програміста з вас не вийде. А диплом зараз всім до одного місця.

Подякували: koala1

15 Востаннє редагувалося P.Y. (12.05.2019 19:31:31)

Re: Створення циклічних програм

ReAl написав:
Прихований текст

Чекаємо на P.Y. з APL  :D

Прихований текст
      +/,(0.1×⍳11)∘.*(1+⍳10)
25.64605000750001

Результат ідентичний першому варіанту від Коали. Що я роблю не так?

Прихований текст
      ⎕IO
0
      0.1×⍳11
0 0.1 0.2 0.30000000000000004 0.4 0.5 0.6000000000000001 0.7000000000000001 0.8 0.9 1
      1+⍳10
1 2 3 4 5 6 7 8 9 10

А, неуважно прочитав завдання. Має бути так:

Прихований текст
      +/,(0.1×⍳11)∘.{(⍺*⍵)÷⍵}(1+⍳10)
10.630064647325394
Подякували: /KIT\, Chemist-i, leofun01, ReAl4

16

Re: Створення циклічних програм

P.Y. написав:
ReAl написав:
Прихований текст

Чекаємо на P.Y. з APL  :D

Прихований текст
      +/,(0.1×⍳11)∘.*(1+⍳10)
25.64605000750001

Результат ідентичний першому варіанту від Коали. Що я роблю не так?

Прихований текст
      ⎕IO
0
      0.1×⍳11
0 0.1 0.2 0.30000000000000004 0.4 0.5 0.6000000000000001 0.7000000000000001 0.8 0.9 1
      1+⍳10
1 2 3 4 5 6 7 8 9 10
Прихований текст

Бо не ділите на i

Подякували: P.Y.1

17

Re: Створення циклічних програм

hi, hx тут яким боком ?

Подякували: leofun011

18

Re: Створення циклічних програм

Fox написав:

hi, hx тут яким боком ?

Кроки

19 Востаннє редагувалося Fox (12.05.2019 21:24:08)

Re: Створення циклічних програм

Знову той незрозумілий матан, як той, хто читає питання має здогадатися, що то кроки.
В мене взагалі вийшло 7.7011

(а ні, то я горобчик. Вийшло 10.6301)

--------------------------------------------------------------
Автору: Вам потрібно зробити цикл з змінною типу double, в тому циклі рахуєте від 0 до 1 з кроком 0.1.
А всередині цього циклу робите ще один, в якому вже рахуєте від 1 до 10 з кроком 1.
Змінна першого циклу то ваш х, а змінна другого - і.
Сподіваюсь зрозумієте.

Подякували: nagibator130920001

20 Востаннє редагувалося P.Y. (13.05.2019 02:05:24)

Re: Створення циклічних програм

Fox написав:

Автору: Вам потрібно зробити цикл з змінною типу double, в тому циклі рахуєте від 0 до 1 з кроком 0.1.

Такий підхід можливий (і в прикладах вище його використовували), але в нього є недолік: у залежності від реалізації, double (як і float) може по-різному здійснювати округлення — слід пам'ятати, що фактичне значення, яким оперує програма, може відрізнятися від того, що ми пишемо в тексті програми. Якщо замість десяткового дробу 0.1 у внутрішньому представленні використовується двійковий (а, як правило, так і є), то його фактичне значення буде трохи меншим чи трохи більшим від 0.1.
Тому, якщо в нас є така умова циклу:

double x;
for (x = 0; x <= 1; x+= 0.1)

то, в залежності від того, в яку сторону відбулося округлення, після десятої ітерації значення x буде або трохи меншим за 1, або трохи більшим. Якщо трохи менше, то все добре — далі робиться одинадцята ітерація зі значенням, близьким до 1. Якщо трохи більше, і оператор порівняння не допускає незначних похибок, то одинадцятої ітерації не буде, тому кінцева сума буде помітно меншою, ніж у першому випадку.

Тому краще робити цикл з цілим числом, на основі якого обчислюватиметься значення x.

double x;
int xx;
for(xx=0; xx<=10; xx++)
    {
    x=0.1*xx;
Подякували: leofun01, ReAl2