Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 40

Протабулировать функцию

27.03.2017, 18:47. Показов 3626. Ответов 30
Метки нет (Все метки)

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

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
F=\frac{a+x}{3}\sum_{n=0}^{6}(x+a)^{n/2}\,;\ \ \ x=1.1(0.5)2.6\;;\ \ \ a=0.2(0.2)0.8<br />
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.03.2017, 18:47
Ответы с готовыми решениями:

Протабулировать функцию
Используя метод нисходящего проектирования, разработать схему алгоритма и составить программу вычисления функции в стиле тр:

Протабулировать функцию
Трижды протабулировать функцию, используя три различных цикла f(x)=\begin{cases}\frac{k}{x^3+9x^2+26x+24} &amp; \text{, if }...

Протабулировать функцию
Помогите дописать программу. Я никак не могу понять как мат выражение записать в паскаль,там как то qrt,qrt. Скрин выражения Выражение...

30
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
27.03.2017, 19:06
Pascal
1
2
3
4
5
6
7
8
9
10
11
function fun(x,a:real):real;
begin
  var s:=0.0;
  for var n:=0 to 6 do s+=Power(x+a,n/2);
  Result:=(a+x/3)*s;
end;
begin
  writeln('x = 1.1; a = 0.2; F = ',fun(1.1,0.2):0:4);
  writeln('x = 0.5; a = 0.2; F = ',fun(0.5,0.2):0:4);
  write('x = 2.6; a = 0.8; F = ',fun(2.6,0.8):0:4);
end.
1
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 40
27.03.2017, 19:19  [ТС]
Hitoku, а не через function можно?

А то мы такими операторами не пользуемся, другими можно, пожалуйста?
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
27.03.2017, 19:20
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
procedure fun(x,a:real);
begin
  var s:=0.0;
  for var n:=0 to 6 do s+=Power(x+a,n/2);
  var f:=(a+x/3)*s;
  writeln(f:0:4);
end;
begin
  write('x = 1.1; a = 0.2; F = '); fun(1.1,0.2);
  write('x = 0.5; a = 0.2; F = '); fun(0.5,0.2);
  write('x = 2.6; a = 0.8; F = '); fun(2.6,0.8);
end.
0
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 40
27.03.2017, 19:21  [ТС]
Hitoku, что такое fun, procedure S+=power, мы не пользуемся, более простыми if else for и тд, помогите пожалуйста
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
27.03.2017, 19:23
bttmlss, если я не ошибаюсь, "нисходящее проектирование" подразумевает использование процедур или функций
0
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 40
27.03.2017, 19:38  [ТС]
Hitoku, s+=POwer мы не пользуемся им
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
27.03.2017, 19:43
Лучший ответ Сообщение было отмечено bttmlss как решение

Решение

ну тогда
Pascal
4
s:=s+Power(x+a,n/2);
Power - это возведение в степень
Если хотите, можете расписать так (если от этого станет легче)
Pascal
4
s:=s+exp(ln(x+a)*(n/2));
1
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 40
27.03.2017, 21:26  [ТС]
Hitoku, спасибо большое вам, очень благодарен) Побольше таких отзывчивых)

Добавлено через 1 час 39 минут
Hitoku, а через shag можешь преобразовать, а не через fun?
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
28.03.2017, 01:24
bttmlss, а подробней?
0
Модератор
10432 / 5720 / 3404
Регистрация: 17.08.2012
Сообщений: 17,403
28.03.2017, 09:35
Hitoku, запись типа 1.1(0.5)2.6 означает "от 1.1 до 2.6 с шагом 0.5".

bttmlss, замените окончание программы Hitoku из поста #4:
Pascal
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var x, hx, a, ha: real;
begin
  x := 1.1;
  hx := 0.5;
  ha := 0.2;
  while x < 2.6 + hx / 2 do
    begin
      a := 0.2;
      while a < 0.8 + ha / 2 do
        begin
          writeln('x = ', x:0:1, 'a = ', a:0:1, 'F = ', fun(x, y);
          a := a + ha
        end;
      x := x + hx
    end
end.
Здесь hx и ha - и есть Ваш shag, по переменным x и a соответственно.
0
28.03.2017, 09:38

Не по теме:

Cyborg Drone, ой, вот это я тупанул :D спасибо :) ещё главное не пойму, что за shag

0
Модератор
10432 / 5720 / 3404
Регистрация: 17.08.2012
Сообщений: 17,403
28.03.2017, 09:39
Hitoku, я с PABC.NET сегодня не очень, наверняка можно эти два цикла как-то покороче написать...
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
28.03.2017, 09:54
Cyborg Drone, можно так (ну и процедура выше)
Pascal
8
9
10
11
12
13
begin
foreach var x in Range(1.1,2.6,3) do
  foreach var a in Range(0.2,0.8,3) do begin
    write('x = ',x,'; a = ',a,'; y = '); fun(x,a);
  end;
end.
0
28.03.2017, 10:04

Не по теме:

Hitoku, в тегах кода можно указывать начальную строку, например, [PASCAL=8][/PASCAL]. Если указать [PASCAL=-1][/PASCAL], то нумерация строк будет отключена.

0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33395 / 21505 / 8236
Регистрация: 22.10.2011
Сообщений: 36,902
Записей в блоге: 12
28.03.2017, 12:49
Лучший ответ Сообщение было отмечено Cyborg Drone как решение

Решение

Если что, в 4-ом посте процедура написана неправильно, делить на 3 нужно всю сумму (a + x), а не только x...

Ну, и вообще, эта программа пишется в одну строку, для тех, кому это интересно:
Pascal
1
2
3
4
5
begin
  ArrGen(4, 1.1, v -> v + 0.5).ForEach(procedure (px) -> ArrGen(4, 0.2, v -> v + 0.2).
    Tabulate(pa -> Range(0, 6).Select(n -> Power(px + pa, n / 2)).Sum * (px + pa) / 3).
    Select(t -> Format('x = {0} a = {1} F = {2:F5}', px, t[0], t[1])).Println(NewLine));
end.
0
28.03.2017, 14:18

Не по теме:

Нет, ну точно придётся учить PABC.NET и C# заодно...

0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
29.03.2017, 06:55
Лучший ответ Сообщение было отмечено bttmlss как решение

Решение

Моё решение в стиле TP:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
function fun(x, a : Real) : Real;
var
  f, p : Real;
  n : Integer;
begin
  x := a + x;
  f := 1; p := 1; // n=0
  for n := 1 to 6 do
    if odd(n) then
      f := f + p * sqrt(x)
    else
      begin
        p := p * x;
        f := f + p;
      end;
  fun := f * x / 3;
end;
 
var
  x, a : Real;
begin
  Write(' ');
  a := 0.2;
  repeat
    Write(a:10:1);
    a := a + 0.2;
  until a > 0.8;
  WriteLn;
  
  x := 1.1;
  repeat
    Write(x:3:1);
    a := 0.2;
    repeat
      Write(fun(x,a):10:5);
      a := a + 0.2;
    until a > 0.8;
    WriteLn;
    x := x + 0.5;
  until x > 2.6;
end.
1
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 40
02.04.2017, 12:20  [ТС]
Hitoku, аналогично как тут надо сделать:

Образец выполнения задания
Используя метод нисходящего проектирования, разработать схему алгоритма и составить программу вычисления функции при заданных значениях аргументов. (язык pascal)

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
w=x^2\cos (ax+t);\\a=0.5(0.2)1.9;\ \ \ x=0.2(0.5)2.2;\ \ \ t=\begin{cases}2ax & \text{, if } a\geq x \\ \frac{a}{2x} & \text{, if } a\,<\,x \end{cases}<br />

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// PascalABC.Net 3.0, версия 1066
function t(a,x:real):real;
begin
  if a>=x then t:=2*a*x
  else t:=a/(2*x)
end;
 
function w(a,x:real):real;
begin
  w:=sqr(x)+cos(a*x+t(a,x))
end;
 
var
  a,x:real;
begin
  a:=0.5;
  while a<=1.9 do begin
    Writeln('a=',a);
    x:=0.2;
    while x<=2.2 do begin
      Writeln('x=',x:3:1,', w=',w(a,x):9:6);
      x:=x+0.5
      end;
    a:=a+0.2
  end
end.
Результат выполнения программы:

a=0.5
x=0.2, w= 0.995336
x=0.7, w= 1.250221
x=1.2, w= 2.130705
x=1.7, w= 3.432775
x=2.2, w= 5.189615
a=0.7
x=0.2, w= 0.953089
x=0.7, w= 0.590626
x=1.2, w= 1.865152
x=1.7, w= 3.064023
x=2.2, w= 4.712057
a=0.9
x=0.2, w= 0.897709
x=0.7, w= 0.176189
x=1.2, w= 1.555538
x=1.7, w= 2.667957
x=2.2, w= 4.264064
a=1.1
x=0.2, w= 0.829992
x=0.7, w=-0.183700
x=1.2, w= 1.233950
x=1.7, w= 2.306743
x=2.2, w= 3.949154
a=1.3
x=0.2, w= 0.750914
x=0.7, w=-0.426485
x=1.2, w= 1.407617
x=1.7, w= 2.037078
x=2.2, w= 3.840096
a=1.5
x=0.2, w= 0.661610
x=0.7, w=-0.509965
x=1.2, w= 2.074693
x=1.7, w= 1.901291
x=2.2, w= 3.962090
a=1.7
x=0.2, w= 0.563366
x=0.7, w=-0.419629
x=1.2, w= 2.426715
x=1.7, w= 1.920695
x=2.2, w= 4.286946
a=1.9
x=0.2, w= 0.457595
x=0.7, w=-0.171179
x=1.2, w= 2.288943
x=1.7, w= 1.924966
x=2.2, w= 4.739599
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
02.04.2017, 12:31
Pascal
1
2
3
4
5
6
7
8
function t(a,x:real):real:=(a>=x ? 2*a*x : a/2/x);
function w(a,x:real):real:=sqr(x)*cos(a*x+t(a,x));
begin
  foreach var x in Range(0.5,1.9,3) do
  foreach var a in Range(0.2,2.2,4) do begin
    writeln('x = ',x:0:1,'; a = ',a:0:1,'; w = ',w(a,x):0:3);
  end;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.04.2017, 12:31
Помогаю со студенческими работами здесь

Протабулировать функцию
Помогите пожалуйста :( Напишите программу, которая выводит таблицу значений функции у = -2,4х2+5х-3 в диапазоне от -5 до 5 с шагом...

Протабулировать функцию
Здравствуйте, уважаемые форумчане! Помогите, пожалуйста, решить данную задачу: Протабулировать функцию y=f(x) на отрезке с шагом...

Протабулировать функцию
Протабулировать функцию+корректность ввода

Протабулировать функцию
Протабулировать функцию y= sin x – cos x на интервале с шагом p/10.

Протабулировать функцию
Протабулировать функцию y=ln x - x2 для 3&lt;=x&lt;=4 с шагом 0.1, записать данные в файл и просмотреть данные из файла.


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru