1

Тема: помилка в коді

Отаке завдання-
1. Реалізувати вказану у Вашому варіанті функцію.
2. В функції main() використати цю функцію при обчисленні вказаного у
Вашому варіанті виразу.
3. Функція має бути визначеною після функції main().

Вираз- ((e^-ax)/(a*(4*a*x+b)) *  ((e^-k*h)/(k*(4*k*h+c))


Функція- f= (e^-d*y)/(d*(4*d*y+m))

Код-

[code=C]#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    float f(float d, float y, float m, float e);
    float a, b, c, d, S;
    printf("Write 4 elements: ");
    scanf("%f%f%f%f", &a, &b, &c, &d);
    S = f(a, b, c, d);
    printf("Result = %10f", S);
    return 0;
}

float f(float d, float y, float m, float e){
    return (pow(e, (-d * y))) / (d * (4 * d * y + m));
}[/code]

В будь якому випадку видає 0

2

Re: помилка в коді

Інтуїція мені підказує, що e - то не параметр, а основа натуральних логарифмів.
Крім того, завдання у вас не обчислити функцію, а за допомогою викликів функції обчислити вираз.
Ну і перевірка показує, що там зовсім не обов'язково буде 0:
https://ideone.com/8v1U2v
Параметри треба підбирати.

3

Re: помилка в коді

Інтуїція мені підказує, що e - то не параметр, а основа натуральних логарифмів.

А тому замість pow(e, x) слід використовувати exp(x).
Ще мене трохи непокоїть запис e^-d*y в умові задачі — що можна розтлумачити або як e-d*y, або як e-d*y (останній варіант здається мені більш правильним: операція степеню має вищий пріоритет, ніж множення, але, можливо, у формулі на папері останній множник також потрапляв до степеню, а при передруковуванні формули забули поставити дужки).

4

Re: помилка в коді

Ну так, там варто було б дужки написати.
Втім, з тих же міркувань треба було б писати y*e^-d.

5

Re: помилка в коді

koala написав:

Ну так, там варто було б дужки написати.
Втім, з тих же міркувань треба було б писати y*e^-d.

ні,там Е в степені (-d*y)

6

Re: помилка в коді

чому в українських вишах на предметах з програмування, навчають не програмуванню а математеці. Це якийсь совок... Чи я чогось не розумію ?

7

Re: помилка в коді

cheappi386 написав:

чому в українських вишах на предметах з програмування, навчають не програмуванню а математеці. Це якийсь совок... Чи я чогось не розумію ?

Тут, гадаю, накладаються два фактори.
По-перше, так, традиційно від совка програмування розглядається як піднапрямок математики, а викладачів математики, відповідно, розглядають як здатних викладати програмування; ну а вони тягнуть свій предмет у чужий.
По-друге, програмування потребує чіткої постановки задач; а найчіткіше сформульований який предмет? Так, математика. Спробуйте взяти задачу з біології і запрограмувати щось на цю тему - матимете, швидше за все, ту саму математику.
Біда ж не в тому, що на програмуванні розбирають математику - біда, коли ця математика перебиває інформатику.

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

8

Re: помилка в коді

koala написав:
cheappi386 написав:

чому в українських вишах на предметах з програмування, навчають не програмуванню а математеці. Це якийсь совок... Чи я чогось не розумію ?

Тут, гадаю, накладаються два фактори.
По-перше, так, традиційно від совка програмування розглядається як піднапрямок математики, а викладачів математики, відповідно, розглядають як здатних викладати програмування; ну а вони тягнуть свій предмет у чужий.
По-друге, програмування потребує чіткої постановки задач; а найчіткіше сформульований який предмет? Так, математика. Спробуйте взяти задачу з біології і запрограмувати щось на цю тему - матимете, швидше за все, ту саму математику.
Біда ж не в тому, що на програмуванні розбирають математику - біда, коли ця математика перебиває інформатику.

Не можу з вами в цьому не погодитися.Математична модель це доволі круто, але програмування це не лише ОДНА математична модель. Нажаль українські вузи в цьому питанні занадто легасі/заскорузлі.

9

Re: помилка в коді

Математика дає непоганий ґрунт у ґеймдеві, наприклад (хоча там більше акцент на геометрії). Взагалі, було б непогано звернути більшу увагу на роботу з текстом, комп'ютерну лінгвістику (де, в принципі, також широко використовуються математичні моделі), синтаксичний аналіз (який також розглядають як щось математичне, але така математика лежить від експонент та матриць значно далі, ніж алгебра від геометрії), зрештою, регекси треба вчити як основи грамоти, а не так, як усі звикли. Особисто я йшов учитися на програміста з наміром писати компілятори — ну але придумайте щось з системного програмування для повних нубів, щоб вони при цьому нічого не зламали (особливо раніше, коли віртуальні машини ще не стали мейнстрімом). Зараз ніби актуальні нейромережі (що, знову ж, теж можна розглядати як «математичну модель» з «іншої математики»)...

Якщо зробити інформатику зовсім без математики, то на виході, очевидно, отримаємо формошльопа/сисадміна/просто хорошого командного гравця — загалом, те, на що робота айтішника схожа насправді ;)

10

Re: помилка в коді

Ну, все ж таки деякі розділи математики фаховому програмісту точно потрібні:
- математична логіка/логіка висловлювань/булева алгебра;
- декартові координати;
- теорія алгоритмів.
Додатково - якщо у людини не складається з математикою, є добрі шанси, що і з програмуванням не складеться.

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

11

Re: помилка в коді

koala написав:

Ну, все ж таки деякі розділи математики фаховому програмісту точно потрібні:
- …/логіка висловлювань/…

От оце потрібно не лише «фаховим програмістам», а будь-кому. Особливо тим, хто телевізор дивиться і різних кандидатів у депутати слухає.
Якщо «гуманітарний стиль мислення» виключає з переліку необхідних знань такі основи математики, то тоді точно «гуманітарний — це відсутність математичного, як холод — це відсутність тепла»

(«булева алгебра» у вузькому сенсі прибрав, а в широкому логіку висловлювань це одна з булевих алгебр)

12

Re: помилка в коді

Загальна логіка, як не дивно математикам, не є розділом математики. Юристи її вивчають без математики.

13 Востаннє редагувалося Fox (12.06.2018 18:59:49)

Re: помилка в коді

koala написав:

Додатково - якщо у людини не складається з математикою, є добрі шанси, що і з програмуванням не складеться.

Хм...
Мені чомусь математика разів в 200 важче за програмування.
І це несправедливо давати задачі з математики на інформатику.
Приключилася з знайомим історія: прийшов він на урок, а вони мали писати КР по Паскулю.
Ну дали йому задачку і його очі на лоба залізли, бо він не дуже той паскуль розумів, а тут ще задача (здається знайти точки екстремуму функції. Там по функціях щось було).

В мене якось було знайти площу круга.
Добре хоч формулу сказали.