rudyD 0 / 0 / 0 Регистрация: 16.11.2016 Сообщений: 26 |
||||
1 |
||||
Неверное число параметров процедуры07.12.2016, 18:12. Показов 4822. Ответов 4 Метки нет (Все метки)
Неверное число параметров процедуры.
0 |
Puporev Почетный модератор 64286 / 47585 / 32739 Регистрация: 18.05.2008 Сообщений: 115,182 |
||||
07.12.2016, 18:18 |
2 |
|||
Сообщение было отмечено rudyD как решение Решение
1 |
Cyborg Drone Модератор 9583 / 4904 / 3243 Регистрация: 17.08.2012 Сообщений: 15,325 |
||||
07.12.2016, 19:18 |
3 |
|||
После 11 строки нужно, наверное
0 |
Почетный модератор 64286 / 47585 / 32739 Регистрация: 18.05.2008 Сообщений: 115,182 |
|
07.12.2016, 19:24 |
4 |
нужно, наверное Не нужно, вывод есть в процедуре.
0 |
Модератор 9583 / 4904 / 3243 Регистрация: 17.08.2012 Сообщений: 15,325 |
|
07.12.2016, 19:31 |
5 |
Ох, да, что-то слона не заметил…
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
07.12.2016, 19:31 |
5 |
zub писал(а):А почему в procedure x(a:integer;b:real); не обявить все параметры и неиспользовать их? если это не ваша процедура, запускать ее через прокладку с объявлеными всеми параметрами
Потому-что процедуру объявляет конечный пользователь моего проекта, а я ее только вызываю. Говорить юзеру “Объяви процедуру со 100500 параметрами, потомучто” – не есть правильно. И я не знаю, сколько конкретно параметров объявит юзер. Поэтому максимум что я фиксирую, это устанавливаю верхнюю границу кол-ва параметров и требую для них всех тип variant. Либо только один параметр в виде константного массива (с этим вопросов нет, все работает штатно). После чего юзер передет мне указатель на эту процедуру.
Когда приходит время вызывать юзеровскую процедуру, то вызываю ее с максимальным кол-м аргументов, вне зависимости, сколько аргументов в ней было заявлено. И, блин, это работает! Я не верил в это, когда проверял, ждал проблем со стеком, сегфолта или утечек памяти, но работает все без проблем, debian 8,9, altlinux 7,8, fpc 2.6.4. 3.0.0, 3.0.2.
Вопрос только в одном: не эксплуатирую-ли я некий редкий баг, который с успехом и фанфарами исправят в новой версии fpc, поломав мне весь код?
serbod писал(а):Подумайте получше, что важнее – удобно при разработке или надежно при эксплуатации. Потратить минуты при разработке сейчас или потратить часы при отладке потом. Не исключаю, что у вас сугубо одноразовый демонстрационный проект, вроде тестового задания, где важнее сделать быстро, чем качественно.
О надежности и думаю, поэтому и поднял тут тему. И в релиз проекта эту фичу не запущу, пока не найду подтверждения, что это безопасно. Либо не найду и тогда откачу до предыдущей, крайне многословной версии. Хоть и не хочется.
Прочтите прежде чем задавать вопрос!
1. Заголовок темы должен быть информативным. В противном случае тема удаляется …
2. Все тексты программ должны помещаться в теги [code=pas] … [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. “FAQ“, если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение – только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы – на PM!
6. Одна тема – один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Помогите новичку решить простенькую задачку) |
17.09.2011 13:07 Сообщение |
|
Группа: Пользователи Репутация: 0 |
Задача: Напишите программу, которая выдает сообщение в текстовое окно.Координаты окна и координаты для сообщения вводиться с клавиатуры.Цвет экрана и цвет символов задайте с помощью датчика случайных чисел. program okno; Пишу в программе Pascal ABC..В конце программы я уверен написано совсем не то,что нужно,там я совсем запутался…Подскажите пожалуйста! Сообщение отредактировано: SpeedFire – 17.09.2011 13:22 |
|
|
IUnknown |
17.09.2011 13:31 Сообщение |
Гуру
Группа: Пользователи Репутация: 627 |
Цитата Пишу в программе Pascal ABC.Она ругается на процедуру window.(Ошибка: неверное количество фактических параметров) Какая разница где? Процедура Window всегда принимает 4 параметра, а не 2 (разница – только в смысле параметров, скажем, в Турбо Паскале подразумеваются координаты X и Y левого верхнего и правого нижнего окна, а в PascalABC – координаты (X, Y) верхнего левого угла и ширина/высота). Ну, а вообще – не самая хорошая идея писать программы для PascalABC, использующие модуль CRT… Тот компилятор, который был написан не для .NET, уже давно не поддерживается, последние версии компилятора написаны именно под .NET, и программу, написанную с использованием CRT просто не удастся отладить, потому что запустить ее в режиме отладки PascalABC не даст. Так что тут надо подумать, продолжать пользоваться PABC и мучаться со старым модулем (даже если программа успешно откомпилируется – я совсем не уверен, что она будет адекватно себя вести), или брать какой-то другой компилятор. P.S. Не надо в самом начале делать TextColor(A); , это приведет к тому, что и цвет фона и цвет выводимых символов будут черными (и A и B автоматически инициализируются нулем, а это именно черный цвет), и ты элементарно ничего не увидишь. Либо установи какие-то конкретные цвета, либо не меняй ничего вообще. Сообщение отредактировано: IUnknown – 17.09.2011 13:32 |
|
|
SpeedFire |
17.09.2011 13:57 Сообщение |
Группа: Пользователи Репутация: 0 |
C window разобрался!Просто учебник отсканированый,я думал там точка,а там запятая!)Теперь понятно, спасибо |
|
|
SpeedFire |
17.09.2011 14:23 Сообщение |
Группа: Пользователи Репутация: 0 |
program sdfl; Вот написал все получилось, кроме конечного сообщения “задача решена!”,оно почему то не появляется. Добавлено через 9 мин. Сообщение отредактировано: SpeedFire – 17.09.2011 14:26 |
|
|
IUnknown |
17.09.2011 14:34 Сообщение |
Гуру
Группа: Пользователи Репутация: 627 |
Делаешь так: program sdfl; , компилируешь, жмешь Shift+F9 (чтоб запустить), вводишь координаты, и внимательно читаешь ответ программы. А теперь еще раз прочитай, что я тебе написал выше, особенно во втором абзаце. |
|
|
SpeedFire |
17.09.2011 14:57 Сообщение |
Группа: Пользователи Репутация: 0 |
|
|
|
IUnknown |
17.09.2011 15:34 Сообщение |
Гуру
Группа: Пользователи Репутация: 627 |
Так все-таки, PascalABC или FreePascal? С FPC проблем как раз нет, тут все будет работать как положено: uses Crt; P.S. Откуда у тебя там SVN взялся? Ты откуда FPC качал? Сообщение отредактировано: IUnknown – 17.09.2011 15:34 |
|
|
SpeedFire |
17.09.2011 15:52 Сообщение |
Группа: Пользователи Репутация: 0 |
После того как ты сказал что Цитата не самая хорошая идея писать программы для PascalABC, использующие модуль CRT… скачал Free Pascal отсюда |
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
Связь с администрацией: bu_gen в домене octagram.name
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 48 49 50 51 52 53 54 55 56 57 |
program proga; uses crt; const m=8; n=10; f=15; type raz=1..f; mas=array[raz] of real; var x,y,z,w,x1,y1,z1,w1:mas; m1,n1,f1,i:integer; procedure nmas(a:mas;n:integer;var y:mas; var j:integer); var i:integer; begin j:=0; for i:=1 to n do if a[i]>0 then begin j:=j+1; y[j]:=a[i]; end; if j=0 then writeln('Положительных элементов нет') else writeln('Массив положительных элементов'); for i:=1 to j do write(y[i]:0:2,' '); writeln; end; begin writeln('Massiv X'); for i:=1 to m do begin x[i]:=4*sqr(i)-9*(5-i); write(x[i]:0:2,' '); end; writeln; nmas(x,m,x1,m1); writeln('Massiv Y'); for i:=1 to m do begin y[i]:=6*sin(2*i)+5*exp(i-5); write(y[i]:0:2,' '); end; writeln; nmas(y,m,y1,m1); writeln('Massiv Z'); for i:=1 to n do begin z[i]:=6*(i-4)+5*sqr(sin(1.5*i)); write(z[i]:0:2,' '); end; writeln; nmas(z,n,z1,n1); writeln('Massiv W'); for i:=1 to f do begin w[i]:=6*ln(0.1*i)+10*cos(i-2.5)*cos(i-2.5)*cos(i-2.5); write(w[i]:0:2,' '); end; writeln; nmas(w,f,w1,f1); end. |
Прочтите прежде чем задавать вопрос!
1. Заголовок темы должен быть информативным. В противном случае тема удаляется …
2. Все тексты программ должны помещаться в теги [code=pas] … [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. «FAQ«, если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение — только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы — на PM!
6. Одна тема — один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Помогите новичку решить простенькую задачку) |
17.09.2011 13:07 Сообщение |
|
Группа: Пользователи Репутация: 0
|
Задача: Напишите программу, которая выдает сообщение в текстовое окно.Координаты окна и координаты для сообщения вводиться с клавиатуры.Цвет экрана и цвет символов задайте с помощью датчика случайных чисел. program okno; Пишу в программе Pascal ABC..В конце программы я уверен написано совсем не то,что нужно,там я совсем запутался…Подскажите пожалуйста! Сообщение отредактировано: SpeedFire — 17.09.2011 13:22 |
|
|
IUnknown |
17.09.2011 13:31 Сообщение |
Гуру
Группа: Пользователи Репутация: 627
|
Цитата Пишу в программе Pascal ABC.Она ругается на процедуру window.(Ошибка: неверное количество фактических параметров) Какая разница где? Процедура Window всегда принимает 4 параметра, а не 2 (разница — только в смысле параметров, скажем, в Турбо Паскале подразумеваются координаты X и Y левого верхнего и правого нижнего окна, а в PascalABC — координаты (X, Y) верхнего левого угла и ширина/высота). Ну, а вообще — не самая хорошая идея писать программы для PascalABC, использующие модуль CRT… Тот компилятор, который был написан не для .NET, уже давно не поддерживается, последние версии компилятора написаны именно под .NET, и программу, написанную с использованием CRT просто не удастся отладить, потому что запустить ее в режиме отладки PascalABC не даст. Так что тут надо подумать, продолжать пользоваться PABC и мучаться со старым модулем (даже если программа успешно откомпилируется — я совсем не уверен, что она будет адекватно себя вести), или брать какой-то другой компилятор. P.S. Не надо в самом начале делать TextColor(A); , это приведет к тому, что и цвет фона и цвет выводимых символов будут черными (и A и B автоматически инициализируются нулем, а это именно черный цвет), и ты элементарно ничего не увидишь. Либо установи какие-то конкретные цвета, либо не меняй ничего вообще. Сообщение отредактировано: IUnknown — 17.09.2011 13:32 |
|
|
SpeedFire |
17.09.2011 13:57 Сообщение |
Группа: Пользователи Репутация: 0
|
C window разобрался!Просто учебник отсканированый,я думал там точка,а там запятая!)Теперь понятно, спасибо |
|
|
SpeedFire |
17.09.2011 14:23 Сообщение |
Группа: Пользователи Репутация: 0
|
program sdfl; Вот написал все получилось, кроме конечного сообщения «задача решена!»,оно почему то не появляется. Добавлено через 9 мин. Сообщение отредактировано: SpeedFire — 17.09.2011 14:26 |
|
|
IUnknown |
17.09.2011 14:34 Сообщение |
Гуру
Группа: Пользователи Репутация: 627
|
Делаешь так: program sdfl; , компилируешь, жмешь Shift+F9 (чтоб запустить), вводишь координаты, и внимательно читаешь ответ программы. А теперь еще раз прочитай, что я тебе написал выше, особенно во втором абзаце. |
|
|
SpeedFire |
17.09.2011 14:57 Сообщение |
Группа: Пользователи Репутация: 0
|
|
|
|
IUnknown |
17.09.2011 15:34 Сообщение |
Гуру
Группа: Пользователи Репутация: 627
|
Так все-таки, PascalABC или FreePascal? С FPC проблем как раз нет, тут все будет работать как положено: uses Crt; P.S. Откуда у тебя там SVN взялся? Ты откуда FPC качал? Сообщение отредактировано: IUnknown — 17.09.2011 15:34 |
|
|
SpeedFire |
17.09.2011 15:52 Сообщение |
Группа: Пользователи Репутация: 0
|
После того как ты сказал что Цитата не самая хорошая идея писать программы для PascalABC, использующие модуль CRT… скачал Free Pascal отсюда |
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
Связь с администрацией: bu_gen в домене octagram.name
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.
Already on GitHub?
Sign in
to your account
Closed
SunSerega opened this issue
Jan 12, 2020
· 6 comments
Comments
type
t1 = class end;
function f1(self: t1; x: integer): integer; extensionmethod;
begin
Writeln(self);
Result := x.Println;
end;
type
t2 = class(t1)
procedure test;
begin
writeln(f1(4));
writeln(self.f1(4)); // так работает
end;
end;
begin
end.
ibond84
changed the title
extensionmethod криво работает в инициализаторе поля
Вызов метода расширения внутри наследника класса не работает, если вызывать не через self
Jan 12, 2020
ibond84
changed the title
Вызов метода расширения внутри наследника класса не работает, если вызывать не через self
Неверное количество параметров функции при вызове метода расширения внутри наследника класса не через self
Jan 12, 2020
Copy link
Contributor
Author
@ibond84 а разве можно вызывать через self
? self
при инициализации полей вообще не видит.
Инициализаторы полей здесь непричем. Здесь не работает вызов метод расширения без self.
У нас методы расширения вызываются только через переменную. Считайте это особенностью языка.
Copy link
Contributor
Author
Ну ошибка всё равно неправильная. Надо давать что то типа «неизвестное имя», раз f1
не должно быть видно.
Copy link
Contributor
Author
И вообще, это @ibond84 так код изменил. Мой изначальный код не выглядит как будто это должно работать:
type
t1 = class end;
function f1(self: t1; x: integer): integer; extensionmethod;
begin
Writeln(self);
Result := x.Println;
end;
type
t2 = class(t1)
// n1 := f1(5); //Ошибка: Неверное количество параметров функции
n2 := f1(nil, 5); // работает, хотя не должно
end;
begin
new t2; // выводит nil и 5
end.
Он как раз показывает что неправильная ошибка при f1(5)
+ то что f1(nil, 5)
не должно работать.
miks1965
added a commit
that referenced
this issue
Jun 26, 2020
zub писал(а):А почему в procedure x(a:integer;b:real); не обявить все параметры и неиспользовать их? если это не ваша процедура, запускать ее через прокладку с объявлеными всеми параметрами
Потому-что процедуру объявляет конечный пользователь моего проекта, а я ее только вызываю. Говорить юзеру «Объяви процедуру со 100500 параметрами, потомучто» — не есть правильно. И я не знаю, сколько конкретно параметров объявит юзер. Поэтому максимум что я фиксирую, это устанавливаю верхнюю границу кол-ва параметров и требую для них всех тип variant. Либо только один параметр в виде константного массива (с этим вопросов нет, все работает штатно). После чего юзер передет мне указатель на эту процедуру.
Когда приходит время вызывать юзеровскую процедуру, то вызываю ее с максимальным кол-м аргументов, вне зависимости, сколько аргументов в ней было заявлено. И, блин, это работает! Я не верил в это, когда проверял, ждал проблем со стеком, сегфолта или утечек памяти, но работает все без проблем, debian 8,9, altlinux 7,8, fpc 2.6.4. 3.0.0, 3.0.2.
Вопрос только в одном: не эксплуатирую-ли я некий редкий баг, который с успехом и фанфарами исправят в новой версии fpc, поломав мне весь код?
serbod писал(а):Подумайте получше, что важнее — удобно при разработке или надежно при эксплуатации. Потратить минуты при разработке сейчас или потратить часы при отладке потом. Не исключаю, что у вас сугубо одноразовый демонстрационный проект, вроде тестового задания, где важнее сделать быстро, чем качественно.
О надежности и думаю, поэтому и поднял тут тему. И в релиз проекта эту фичу не запущу, пока не найду подтверждения, что это безопасно. Либо не найду и тогда откачу до предыдущей, крайне многословной версии. Хоть и не хочется.
Неверное количество параметров процедуры
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Неверное количество параметров процедуры
Помогите! На строке с командой «close(f)» мне выдаёт ошибку: «Неверное количество параметров.
Неверное число параметров процедуры
uses graphABC; var x0,y0,d,n,gd,gm,i,x,y:integer; begin d:=10; gd:=0; write(‘Kolichestvo.
Неверное число параметров процедуры
Проблема:program zavd_9_1; uses crt; const N=7; type TMatrix=array of integer; var.
Ну а чему вы удивляетесь? Посмотрите на объявление этой процедуры и ещё раз на текст ошибки. Параметров в объявлении 2, а в вызове 0, то есть неправильное кол-во.
Добавлено через 1 минуту
Я так понимаю, вам надо было чтоб у процедуры внутри были свои локальные переменные. Тогда сделайте так:
Sun Serega, Спасибо, работает
Добавлено через 15 минут
Sun Serega, Теперь он не может файл найти, хотя весь путь описан правильно
Ошибка времени выполнения. Файл ‘C:UsersUserDesktopDashsUjdyj’ не найден
Зайдите в:
Панель управления>>(мелкие значки) Параметры проводника>>Вид
Прокрутите вниз, там увидите настройку:
Скрывать расширения для зарегестрированных типов файлов
Вот отрубите её нафиг.
По моей идее он должен вместо 1 рисовать блок, а вместо 0 ничего не рисовать, ну либо синий блок. В итоге вместо 0 он рисует, а 1 он не видит. Что делать?
Вложения
Ujdyj.txt (1.2 Кб, 4 просмотров) |
WinForms может помочь избавится от некоторой кривоты (как то, что нельзя заранее заставить окно запустится в первоэкранном режиме, в GraphABC его можно менять только после запуска).
Источник
Неверное количество параметров в подпрограмме
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Неверное количество параметров процедуры
Помогите! На строке с командой «close(f)» мне выдаёт ошибку: «Неверное количество параметров.
Ошибка. Неверное количество параметров функции
Вышла такая ошибка в строке 13 (Неверное кол-во параметров функции); Учусь работать с функциями.
Использовать устаревшие конструкции Паскалей вперемешку с PABC.Net выглядит так себе кстати.
а ещё свой код заключайте в теги конкретного языка, что бы было видно номера строк
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Неверное количество фактических параметров
Program laba6; var tip:array of string; har:array of string; ind:array of string; dvi:array of.
Неверное количество фактических параметров
неверное количество фактических параметров pascal abc program p4; const n=5; type mas=array.
Ошибка: неверное количество фактических параметров
Помогите пожалуйста! Не получается. Я не понимаю ничего в паскаль а делать нужно. Дважды.
Ошибка: неверное количество фактических параметров
uses crt; var ch1,ch2: char; k: integer; const glasnye = ; begin clrscr;.
Ошибка: неверное количество фактических параметров
Я не пойму что здесь не так! в 42 строчке эта самая ошибка! program proga; const m=8; n=10;.
Источник
(179) : Неверное количество параметров функции
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Для различных значений n проверить справедливость формулы: 1³+3³+5³+. +(2n-1)³=n²(2n²-1)
для различных значений n проверить справедливость формулы: 13+33+53+. +(2n-1)3=n2(2n2-1)
Неверное количество фактических параметров
function dv(x:integer):string; var a,b:string; begin a:=’0′;b:=’1′; while x<>0 do.
Неверное количество фактических параметров
неверное количество фактических параметров pascal abc program p4; const n=5; type mas=array.
Решение
Приведите полный код программы. Если файл уже создан, то приложите его в тему.
почему мне не удается закрыть фаил? простите если надоел вам, но мне очень трудно дается программирование. Я смотрю статьи, а в них не написаны эти ошибки. И вы хорошо объясняете, спасибо
Добавлено через 7 минут
я исправил это передвинув close чуть выше одного end
Добавлено через 10 минут
Я все написал, но в конце у меня пишет ошибку Program2.pas(175) : Встречено ‘.’, а ожидалось ‘;’
Хотя я все закрыл. Из-за чего происходит эта ошибка и как ее исправть?
Добавлено через 7 минут
Я исправил ошибку выше и теперь у меня пишет ошибку Program2.pas(139) : Неверное количество параметров функции
Что написать в этой строчке?
Источник
Ошибка. Неверное количество параметров функции
Вышла такая ошибка в строке 13 (Неверное кол-во параметров функции); Учусь работать с функциями, сам пока не нашел ответа на интересующий вопрос.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
График функции и ошибка «Неверное число параметров функции»
Program aaa; Uses GraphABC; Var x,y:integer; Begin For x:=0 to 360 do Begin Y:=Round(.
Неверное количество параметров процедуры
Помогите! На строке с командой «close(f)» мне выдаёт ошибку: «Неверное количество параметров.
Решение
Как видно, функция в данном случае улучшает чтение программы, а не усложняет его.
Более того, данную программу можно ещё упростить:
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Неверное число параметров функции
В чем может быть дело? исправьте пожалуйста function z(x,a,b,x1,x2:real):real; var t,w:real;.
Ошибка в коде «неверное число параметров процедуры»
Выдает ошибку в 29 строке: «неверное число параметров процедуры». Помогите пожалуйста с этой.
Подсчитать количество элементов массива, больших 3 (ошибка: «Неверное число параметров функции»)
Написать программу, которая создает массив из N целых чисел и с помощью функции подсчитывает.
(179) : Неверное количество параметров функции
<-555555—-функция обработки файла по условию——>function.
Ошибка: неверное количество фактических параметров.
Очень прошу помочь исправить ошибку в моей программе. Program Hord; var xn,xk,eps:real;.
Источник
When creating a procedural data type, Free Pascal throws a strange error. But I’m passing one parameter, why is the number of parameters incorrect?
Type
Func = Function (x:Real):Real;
Function middlfunc(a, b:Real; n:Integer; f:Func): Real;
Var
x,s,d: Real; k:Integer;
Begin
d:=(b-a)/n;
s:=0;
For k:=0 To n Do
Begin
x:=a+k*d;
s:=s+f(x);
End;
middlfunc:=s/(n+1);
End;
Function f1(x:Real):Real; {There is the error}
Begin
f1:=x*x;
End;
Var
mf1:Real;
a, b: real;
n: integer;
Begin
a := 0;
b := 3.1415;
n := 100;
mf1 := middlfunc(a,b,n,f1); {ERROR :((((((((}
WriteLn(mf1)
End.
desertnaut
56.9k22 gold badges137 silver badges165 bronze badges
asked May 14, 2021 at 19:39
5
USE PASCAL PROCEDURE INSTEAD OF FUNCTION for suitability
answered Sep 9, 2022 at 11:00
2
If you want to use a Function as a parameter to another function, then you have to do it like this:
Type
TFunctionParameter = function(x: Real): Real;
Function middlfunc(a, b:Real; n:Integer; f:TFunctionParameter): Real;
Var
x,s,d: Real; k:Integer;
Begin
d:=(b-a)/n;
s:=0;
For k:=0 To n Do
Begin
x:=a+k*d;
s:=s+f(x);
End;
middlfunc:=s/(n+1);
End;
function RaiseToSecondPower(x: Real): Real;
begin
result := x*x;
end;
Var
mf1:Real;
a, b: real;
n: integer;
Begin
a := 0;
b := 3.1415;
n := 100;
mf1 := middlfunc(a,b,n,RaiseToSecondPower);
WriteLn(mf1)
End.
answered Sep 14, 2022 at 7:02