0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 84
1

Free Pascal игнорирует $F

10.02.2017, 22:33. Показов 2482. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Решаю задачу, в которой некоторые процедуры и функции должны получать параметры-функции. Однако при компиляции сообщается что директива $F была проигнорирована и компилятор ругается на неправильное число параметров функции-параметра. Что с этим сделать можно?
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
42
program task1;
 
uses crt;
 
type TF = function(x: real): real;
 
{$F+}
 
function F1(x: real): real;
begin
    F1 := 3 * (0.5 * (x + 1) + 1)
end;
 
function F2(x: real): real;
begin
    F2 := 2.5 * x - 9.5
end;
 
function F3(x: real): real;
begin
    if x > 0 then
        F3 := 5 / x
end;
 
{$F-}
 
function integral(f: TF; a, b, eps2: real): real;
begin
    // тут что-то будет
    integral := 0
end;
 
procedure root(f, g: TF; a, b, eps1, x: real);
begin
    //тут что-то будет
end;
 
VAR resh: real;
 
BEGIN
    resh := integral(F1, 3.0, 5.0, 0.001)
END.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.02.2017, 22:33
Ответы с готовыми решениями:

Turbo Pascal, Pascal ABC, Free Pascal, PascalABC.NET - в чем разница?
Всем привет, решил изучать Паскаль, но на форуме увидел 4 его версии - Turbo Pascal, Pascal ABC,...

Нужен Turbo pascal или Free pascal на русском
Нужен Turbo pascal или Free pascal на русском языке, есть такой или нет? По книге обучаюсь по Turbo...

Free Pascal
Ребята помогите пожалуйста,очень надо!!!

Графические возможности Free Pascal
Графический возможности Фри паскаль y=x/x*2-1

3
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7795 / 4618 / 2830
Регистрация: 22.11.2013
Сообщений: 13,114
Записей в блоге: 1
10.02.2017, 23:28 2
Лучший ответ Сообщение было отмечено ZimOne как решение

Решение

В зависимости от режима компиляции может требоваться @ перед именем функции при передаче ее параметром.
1
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 84
10.02.2017, 23:33  [ТС] 3
Да, действительно с @ работает. А в каком случае вообще надо использовать директиву $F? вместо @
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7795 / 4618 / 2830
Регистрация: 22.11.2013
Сообщений: 13,114
Записей в блоге: 1
11.02.2017, 02:02 4
Лучший ответ Сообщение было отмечено ZimOne как решение

Решение

ZimOne,
понимаете какая штука...
Жил был МС-Дос и 16-битный реальный режим процессора (real mode), в котором дальный (far) указатель состоял из пары сегмент:смещение.
А потом для работы в защищенных режимах (protected mode) стали использовать плоскую модель памяти (flat memory model), в которой не оказалось места варианту сегмент:смещение. А компилятор, видя код, написанный для 16-битного реального режима, просто говорит, что он это проигнорирует, и советует посмотреть на календарь...

Тем не менее, требование о наличии @ перед именем функции для получения ее адреса зависит только от варианта выбранного синтаксиса (tp, delphi, fpc, objfpc, ...), а игнорирование директивы или ключевого слова far -- от того, подо что производится сборка.

Добавлено через 5 минут
См. http://www.freepascal.org/docs... fse82.html
2
11.02.2017, 02:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.02.2017, 02:02
Помогаю со студенческими работами здесь

Используя стек, создать другой текстовый файл, в котором числа будут записаны в обратном порядке - Free Pascal
Создать текстовый файл, содержащий текстовую и числовую информацию. Используя стек, создать другой...

Обсуждение (pabc.net и free pascal)
Если хотите писать на Паскале настоящем (!) пишите на Free Pascal. По поводу меток - забудьте и...

Из множества выбрать три различные точки по условию -из Turbo Pascal во Free Pascal
Даны 2 множества точек на плоскости. Выбрать три различные точки первого множества так, чтобы круг...

Чем отличается Тurbo Pascal от Free Pascal
чем отличается Турбо паскаль от фрее паскаля ?У меня материал по фрее паскаль ,но я должен выучить ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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