Перейти к содержанию
СофтФорум - всё о компьютерах и не только

два простых вопроса по Паскалю


Рекомендуемые сообщения

Может кому-то вопросы покажутся глупыми, но я просто нигде в литературе не могу найти ответы.

1. Как возвести число в степень? в Бэйсике это реализовывалось с помощью значка ^. В Паскале не имею понятия как, и что самое интересное, преподаватель тоже не знает...

2. С помощью какой фунции можно узнать код ASCII соответстующего символа. Обратная операция добивается с помощью ф-ии Chr().

Я искал ф-ию во всевозможных модулях. Увы.

Ссылка на комментарий
Поделиться на другие сайты

1) Насколько я помню, в паскале нет ничего встроенного для возведения в степень. Придется писать собственную функцию.

2) Ord()

Ссылка на комментарий
Поделиться на другие сайты

Sendo:

Обычно как эквивалент A^X используют выражение exp(X*ln(A)). Получается вещественное число, при необходимости получить целое его можно округлить. Ну и, конечно, A должно быть положительным.

Ссылка на комментарий
Поделиться на другие сайты

Тролль: а по-моему несколько через одно место :)))

217582[/snapback]

Такой способ - это официальная рекомендация большинства справочников по Паскалю. Но это, конечно же, всего лишь рекомендация. При желании можно использовать собственные функции возведения в степень. Я уверен, что скорость их работы будет значительно превосходить скорость работы стандартной функции - ведь они будут написаны на ассемблере и тщательно оптимизированы. ;)

:bye1: :D :D

Изменено пользователем Shurr
Ссылка на комментарий
Поделиться на другие сайты

Shurr: конечно, ведь чтобы возвести что-то например в куб тебе просто необходимо использовать логарфмирование и возведение е в вещественную степень :) А то! Ведь там все оптимизировано :)

Ссылка на комментарий
Поделиться на другие сайты

Asenka:

Хм, ты и умножение на 3 всегда заменяешь двумя сложениями?

Компьютер далеко ушел от счетов. И часто он из пушки бьет по воробьям - просто потому, что он и есть пушка. Когда-то танки делали со множеством разных орудий и пулеметов, даже многобашенными. Потом решили, что лучше иметь одну хорошую пушку и не разбираться на ходу, хватило бы дробовика или нет.

И теперь, когда надо умножить два на два, никто не возмущается, что процессор использует для этого 32-битную арифметику и даже умножение, хотя его можно было бы заменить сложением. Разбираться, что степень равна 3 и возведение в нее можно заменить двумя умножениями, для компьютера куда сложнее, чем просто возвести в неведомо какую степень, "не думая" вычислив логарифм и экспоненту. Что ты так ополчился на них? Для процессора логарифмирование и вычисление экспоненты - такие же элементарные функции, как умножение и деление, и выполняются они каждая одной машинной командой (команды встроенного в процессор математического сопроцессора). Поэтому даже на ассемблере ничего оптимизировать не надо - нечего оптимизировать. Оптимизация вычисления логарифма и экспоненты уже проведена даже не на уровне ассемблера, а на уровне аппаратной части и зашитых в процессор микропрограмм.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...