Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 1
Регистрация: 22.11.2011
Сообщений: 40

Вычислить значение выражения

29.11.2018, 13:45. Показов 753. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пожалуйста, помогите

Используя структуру варианта, составьте алгоритм вычисления значений функции:

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
y=\begin{cases}a+bx+cx^2 & \text{ if } 1\leq x\,<\,2\\\\ \left[ a\sin (xb)\right] ^c& \text{ if } 2\leq x\,<\,3\\\\ \sqrt{\left| a+bx^3\right|}+c & \text{ if } 3\leq x\,<\,4\\\\ a\ln \left|b+c/(2x) \right| & \text{ if } 4\leq x\,<\,5\\\\ e^{a\sin x}+c^3 & \text{ if } 5\leq x\,<\,6\end{cases}<br />
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.11.2018, 13:45
Ответы с готовыми решениями:

Вычислить значение выражения, значение n вводится с клавиатуры
составить программу для решения задачи. При решении задачи через цикл-&quot;хорошо&quot;, через цикл и массив-&quot;отлично&quot;. Отметка...

Вычислить значение выражения
программа в паскале

Вычислить значение выражения
Вот задания

7
 Аватар для Human_foot
156 / 114 / 36
Регистрация: 27.06.2018
Сообщений: 257
29.11.2018, 15:24
Pascal
1
2
3
4
5
6
7
8
  readln(x);
  case round(int(x)) of
    1: y := a + b*x + c*sqr(x);
    2: y :=
    ...
    5: y :=
  end;
  write('y=', y);
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
29.11.2018, 15:34
наверное лучше
Pascal
1
case trunc(x) of
0
 Аватар для Human_foot
156 / 114 / 36
Регистрация: 27.06.2018
Сообщений: 257
29.11.2018, 18:08
Цитата Сообщение от Puporev Посмотреть сообщение
наверное лучше
Наверное, короче, а не лучше
0
Модератор
10422 / 5710 / 3401
Регистрация: 17.08.2012
Сообщений: 17,366
01.12.2018, 00:57
Human_foot, именно короче.
round(int(x)) транслируется в ассемблерный код, примерно в 2.5 раза больший, чем ассемблерный код для trunc(x).
0
 Аватар для Human_foot
156 / 114 / 36
Регистрация: 27.06.2018
Сообщений: 257
01.12.2018, 10:28
Cyborg Drone, у меня не наблюдаются такие отличия

ABC нет, проверил на fpc. В Delphi отладчике почти аналогичная картина (оптимизация отключена)
0
Модератор
10422 / 5710 / 3401
Регистрация: 17.08.2012
Сообщений: 17,366
01.12.2018, 16:56
Тоже на FPC проверял. Как же нет отличия? Есть. Замечание: если не делать промежуточного "переприсваивания", а написать две команды подряд, то даже с отключенной оптимизацией некоторая оптимизация всё-таки происходит. Может, Вы написали как-то вот так:
Pascal
1
2
  n := round(int(x));
  m := trunc(x);
и откомпилировали? Если так, то Ваш эксперимент некорректен.

Вот, посмотрите, что у меня, 10 инструкций для trunc(x) против 24 инструкций для round(int(x)).
Pascal
1
2
3
4
5
6
7
8
var n, m: integer;
    x: real = 5;
begin
  n := round(int(x));
  m := n;
  n := trunc(x);
  writeln(m, n, x)
end.
Code
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
42
43
44
45
46
47
.....
C:\Users\User\AppData\Local\Temp\project1.lpr:5  n := round(int(x));
0040142D dd0570c04000             fldl   0x40c070
00401433 8d6424f4                 lea    -0xc(%esp),%esp
00401437 db3c24                   fstpt  (%esp)
0040143A e851120000               call   0x402690 <fpc_int_real>
0040143F df7df8                   fistpll -0x8(%ebp)
00401442 9b                       fwait
00401443 8b45f8                   mov    -0x8(%ebp),%eax
00401446 a300e04000               mov    %eax,0x40e000
 
C:\Users\User\AppData\Local\Temp\project1.lpr:6  m := n;
0040144B a310e04000               mov    %eax,0x40e010
 
C:\Users\User\AppData\Local\Temp\project1.lpr:7  n := trunc(x);
00401450 d97df8                   fnstcw -0x8(%ebp)
00401453 d97dfc                   fnstcw -0x4(%ebp)
00401456 66814df8000f             orw    $0xf00,-0x8(%ebp)
0040145C dd0570c04000             fldl   0x40c070
00401462 d96df8                   fldcw  -0x8(%ebp)
00401465 df7df0                   fistpll -0x10(%ebp)
00401468 d96dfc                   fldcw  -0x4(%ebp)
0040146B 9b                       fwait
0040146C 8b45f0                   mov    -0x10(%ebp),%eax
0040146F a300e04000               mov    %eax,0x40e000
 
C:\Users\User\AppData\Local\Temp\project1.lpr:8  writeln(m, n, x)
00401474 e847770000               call   0x408bc0 <fpc_get_output>
.....
fpc_int_real 
00402690 55                       push   %ebp
00402691 89e5                     mov    %esp,%ebp
00402693 8d6424f0                 lea    -0x10(%esp),%esp
00402697 83ec04                   sub    $0x4,%esp
0040269A d93c24                   fnstcw (%esp)
0040269D 9b                       fwait
0040269E 668b0c24                 mov    (%esp),%cx
004026A2 66810c24000f             orw    $0xf00,(%esp)
004026A8 d92c24                   fldcw  (%esp)
004026AB 9bdb6d08                 fldt   0x8(%ebp)
004026AF d9fc                     frndint 
004026B1 9b                       fwait
004026B2 66890c24                 mov    %cx,(%esp)
004026B6 d92c24                   fldcw  (%esp)
004026B9 c9                       leave  
004026BA c20c00                   ret    $0xc
.....
1
 Аватар для Human_foot
156 / 114 / 36
Регистрация: 27.06.2018
Сообщений: 257
01.12.2018, 19:09
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
Может, Вы написали
Не, отдельными программами делал. Аттачил уже готовые exe, видимо, оптимизация полностью не отключается.
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
10 инструкций для trunc(x) против 24 инструкций для round(int(x))
Действительно, вы правы, вернул стандартный дебагер, в нём это подтверждается.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.12.2018, 19:09
Помогаю со студенческими работами здесь

Вычислить значение выражения
Даны целые числа x,y. Получить значение m, когда m=\frac{min(x,y,5)+max(x,y,10)}{max(x+y,0)}

Вычислить значение выражения
Составить программу на языке Pascal, максимально используя для вычисления выражений подпрограммы(функции и процедуры). ...

Вычислить значение выражения
Помогите, пожалуйста, записать выражение на Паскале! Никак не получается. \sum_{n=1}^{\propto }\frac{n!}{{2}^{n}!}

Вычислить значение выражения
массивы

Вычислить значение выражения
\sum_{i=1}^{n}\frac{x+cos(ix)}{{2}^{i}} Заранее хотел поблагодарить вас, напряженка у меня с информатикой


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru