Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 2
Регистрация: 29.10.2016
Сообщений: 41
1

Разработать схему алгоритма и составить программу вычисления функции при заданных значениях аргументов

13.03.2017, 15:45. Показов 3012. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Разработать схему алгоритма и составить программу вычисления функции при заданных значениях аргументов. Результаты вывести на экран дисплея. Проверьте пожалуйста, правильно ли написал
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const a=1.45;
var y, x : real;
    k, n: integer;
begin
x:=1;
while x<=1.8 do
 begin
  if a<=x then
   begin
    for k:=1 to 10 do
    y:=exp(k*ln(a))*exp(k*ln(x));
   end;
  x:=x+0.1;
  if (a>x) then
  begin
  for n:=1 to 8 do
  y:=exp(n*ln(a))-exp(n*ln(x));
  end;
  x:=x+1;
  write('Значение у по условиям равно: '+y)
 end;
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2017, 15:45
Ответы с готовыми решениями:

Разработать схему алгоритма и составить программу вычисления функции при заданных значениях аргументов
Разработать схему алгоритма и составить программу вычисления функции при заданных значениях...

Составить программу для вычисления значения функции U(x,y) при заданных значениях аргументов x и y
Помогите составить программу, что-то совсем не понятно как ее делать. Составить программу для...

Составить программу вычисления функции при заданных значениях аргументов
Составить программу вычисления функции при заданных значениях аргументов....

Составить программу вычисления функции при заданных значениях аргументов
Составить программу вычисления функции при заданных значениях аргументов. z=\begin{cases}&amp;...

17
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
13.03.2017, 15:56 2
Ну вроде что-то выдаёт. Не помешало бы полное условие с формулой
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7771 / 4600 / 2824
Регистрация: 22.11.2013
Сообщений: 13,080
Записей в блоге: 1
13.03.2017, 17:47 3
Цитата Сообщение от Bampery Посмотреть сообщение
правильно ли написал
нет, неправильно.

Стр. 10-11: вычисляется y для k=10, зачем вычисляются все остальные для k от 1..9 -- тайна сия велика есть.
Стр. 17-18: вычисляется y для n=8, зачем вычисляются все остальные для n от 1..7 -- тайна сия велика есть.
Стр. 9 и 12, 15 и 18: лишние пары begin end.
Стр. 19: с учетом стр.6 точно не ошибка?
Стр. 20: недопустимое выражение строка + число.
1
0 / 0 / 2
Регистрация: 29.10.2016
Сообщений: 41
13.03.2017, 17:52  [ТС] 4
вот

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
y=\begin{cases}\sum_{k=1}^{10}a^kx^k & \text{, if } a\leq x \\\\ \prod_{n=1}^{8}\left(a^k-x^k \right) & \text{, if } a>x \end{cases}\ \ \ \ \ x=1(0.1)1.8;\ \ \ \ \ a=1.45<br />
0
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
13.03.2017, 18:03 5
Цитата Сообщение от Bampery Посмотреть сообщение
Pascal
17
y:=exp(n*ln(a))-exp(n*ln(x));
В условии степень k. Это опечатка?

Добавлено через 1 минуту
а нет, всё в порядке... Степень видимо действительно k (последний достигнутый). Тогда ошибка у вас
1
0 / 0 / 2
Регистрация: 29.10.2016
Сообщений: 41
13.03.2017, 18:05  [ТС] 6
не может быть там опечатки

Добавлено через 1 минуту
это я протупил в коде, спасибо что заметили
0
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
13.03.2017, 18:08 7
И всё таки не ясно... Изначально a>x, значит делаем произведение. Но чему равно k в таком случае?
0
0 / 0 / 2
Регистрация: 29.10.2016
Сообщений: 41
13.03.2017, 18:37  [ТС] 8
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const a=1.45;
var y, x : real;
    k, n: integer;
begin
x:=1;
while x<=1.8 do
begin
if a<=x then
for k:=1 to 10 do
y:=exp(k*ln(a))*exp(k*ln(x));
k:=k+1;
if (a>x) then 
for n:=1 to 8 do
y:=exp(k*ln(a))-exp(k*ln(x));
n:=n+1;
x:=x+0.1;
writeln(y)
end;
end.
А вот такой код сгодится?
0
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
13.03.2017, 18:43 9
Pascal
11
k:=k+1;
Pascal
15
n:=n+1;
не нужны, т.к. эти параметры меняются в циклах for

Добавлено через 2 минуты
Pascal
10
y:=exp(k*ln(a))*exp(k*ln(x));
можно заменить на
Pascal
10
y:=power(a,k)*power(x,k);
в зависимости от того, на каком Паскале пишете

Добавлено через 1 минуту
Ну и главный вопрос: чему равен k изначально? Ведь сначала у нас идёт произведение с n = 1..8, но степенью k. А только потом суммы, где k меняется в цикле. По логике k равняется как минимум 1, но это нигде не указано
1
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7771 / 4600 / 2824
Регистрация: 22.11.2013
Сообщений: 13,080
Записей в блоге: 1
13.03.2017, 18:50 10
Лучший ответ Сообщение было отмечено Bampery как решение

Решение

Цитата Сообщение от Bampery Посмотреть сообщение
сгодится?
естественно, нет.

Во-первых, считайте, что во второй части формулы опечатка, д.б. k=1..8.

Основной цикл -- x от 1 до 1.8 с шагом 0.1:
Pascal
1
2
3
4
5
  x:=1;
  while x<=1.85 do begin
    { ... }
    x:=x+0.1;
  end;
Условие в функции -- это
Pascal
1
2
3
4
    if a<=x then
      { сумма }
    else
      { произведение };
Сумма -- это
Pascal
1
  y:=0; for k:=1 to 10 do y:=y+...;
Произведение -- это
Pascal
1
  y:=1; for k:=1 to 10 do y:=y*...;
В выражениях у вас целые степени, растущие на 1 на каждом шаге, нет нужды в использовании функции Exp(), достаточно на каждом шаге домножить временные переменные на x и a соответственно:
Pascal
1
2
3
4
  ta:=1; tx:=1;
  for ...
    ta:=ta*a; tx:=tx*x; { очередная степень }
    ...
А теперь вам осталось из этих кубиков собрать свою готовую программу.
Удачи!
1
Hitoku
13.03.2017, 18:54
  #11

Не по теме:

Чему равно k в произведении??? :wall:

0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7771 / 4600 / 2824
Регистрация: 22.11.2013
Сообщений: 13,080
Записей в блоге: 1
13.03.2017, 19:09 12
Hitoku,
да опечатка там, опечатка...
Не спешите выдавать готовое решение, полагаю, с полученными подсказками ТС вполне сможет справиться с задачей.

https://www.cyberforum.ru/cgi-bin/latex.cgi?y=\begin{cases} & \sum_{k=1}^{10} a^k x^k, \text{ } a \leq x ; \\  & \prod_{k=1}^{8} (a^k - x^k), \text{ } a > x ;\end{cases}
0
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
13.03.2017, 19:11 13
Цитата Сообщение от bormant Посмотреть сообщение
да опечатка там, опечатка...
а, ну тогда тут всё довольно просто
0
0 / 0 / 2
Регистрация: 29.10.2016
Сообщений: 41
13.03.2017, 20:44  [ТС] 14
как ещё можно записать выражение возведения в степень не используя exp?

Добавлено через 14 минут
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const a=1.45;
var y,ta,tx,x : real;
k : integer;
 
begin
x:=1;
  while x<=1.85 do begin
     if a<=x then
    y:=0;
    ta:=1;
    tx:=1;
    for k:=1 to 10 do y:=y+;
     
     y:=1;
     for k:=1 to 10 do y:=y*;
      ta:=ta*a; tx:=tx*x;
 
    x:=x+0.1;
    writeln(y)
  end;
  end.
как ещё можно в паскале записать выражение возведения в степень не используя exp?
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7771 / 4600 / 2824
Регистрация: 22.11.2013
Сообщений: 13,080
Записей в блоге: 1
13.03.2017, 21:08 15
Не, кубики кубиками, но соблюдения синтаксиса-то паскалевского никто ж не отменял...
Повнимательнее.
0
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
13.03.2017, 21:10 16
Pascal
1
power(число, степень);
Добавлено через 1 минуту
Цитата Сообщение от Bampery Посмотреть сообщение
Pascal
12
y:=y+;
ой, а что это?
1
0 / 0 / 2
Регистрация: 29.10.2016
Сообщений: 41
14.03.2017, 16:23  [ТС] 17
там выражение теперь с power()
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7771 / 4600 / 2824
Регистрация: 22.11.2013
Сообщений: 13,080
Записей в блоге: 1
14.03.2017, 17:39 18
Ок, будем считать, что
Шах расписался в полном неумении (q) ВСВ

Кликните здесь для просмотра всего текста
Подумайте ещё...
Стоит ли стремиться на все готовое?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const a=1.45;
var x, y, ta, tx: Real; k: Integer;
begin
  x:=1;
  while x<=1.85 do begin
    ta:=1; tx:=1; 
    if a<=x then begin
      y:=0;
      for k:=1 to 10 do begin
        ta:=ta*a; tx:=tx*x; y:=y+ta*tx;
      end;
    end else begin
      y:=1;
      for k:=1 to 8 do begin
        ta:=ta*a; tx:=tx*x; y:=y*(ta-tx);
      end;
    end;
    WriteLn(x:8:1,y:16:4);
    x:=x+0.1;
  end;
end.
0
14.03.2017, 17:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2017, 17:39
Помогаю со студенческими работами здесь

Составить блок-схему и программу вычисления функции У при заданных значениях a, b, x
Составить блок-схему и программу вычисления функции У при заданных значениях a, b, x. ...

Составить блок-схему и программу вычисления значений функции при заданных значениях аргумента
помогите

Составить блок-схему и программу для вычисления значения функции U при заданных значениях x и y
Добрый день! Нужна помощь в решение задачи. Требуется : Составить блок-схему и программу для...

Составить программы для вычисления значений функции при заданных значениях аргументов
Помогите пожалуйста. Составить блок-схемы алгоритмов и программы на языках Бейсик и Паскаль для...

Разработать схему алгоритма и составить программу вычисления функции при заданных значениях аргументов
Разработать схему алгоритма и составить программу вычисления функции при заданных значениях...

Разработать схему алгоритма и составить программу вычисления функции при заданных значениях аргументов. Резуль


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru