|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.10.2012, 18:49 | #1 |
Регистрация: 25.10.2012
Сообщений: 4
|
Вопрос про процедурный тип
В общем ситуация такая: препод по инфе спрашивает зачем в этой программе я использую процедурный тип( конкретно для вычисления значений y)
Код:
________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 25.10.2012 в 21:48. |
25.10.2012, 18:50 | #2 |
Регистрация: 25.10.2012
Сообщений: 4
|
Вот собственно модуль с функциями
Код:
________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 25.10.2012 в 21:42. |
25.10.2012, 19:49 | #3 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,883
|
Был бы я преподом, я бы сразу на месте спросил, оценил ответ и поставил оценку (да собственно, я так и делал, когда был преподом, правда не по программированию).
То, что Вы спрашиваете, плюс смотря на код, говорит о том, что код не Ваш и оценку Вы не заслуживаете не при каком ответе. Однако, я Вам отвечу, если уж фрилансер, который это делал, не разъяснил. Процедурный тип в данном случае объявляет некую спецификацию подпрограммы. Код:
Код:
Во время работы основного алгоритма, для гибкости оного и независимости от конкретной функции для построения её графика вызывается нужная запомненная в массиве указателей просто по индексу (взятому из комбобокса) - то , что у Вас красным, расчёт выполняет именно та функция, указатель на которую мы используем. Гибкость в том, что программу легко снабдить кучей функций, просто прописав их и увеличив массив, остальной код программы трогать не надо. Гибкость, конечно, не оптимальна, лучше бы создать саму функцию построения графика и в неё передавать параметром указатель на функцию расчёта, а привязка к кнопке и комбобоксу (да и канвасу конкретного экземпляра формы)- убивает гибкость по большей части. |
25.10.2012, 20:09 | #4 | |
Форумчанин
Регистрация: 11.04.2012
Сообщений: 212
|
Цитата:
|
|
26.10.2012, 11:40 | #5 | |
Регистрация: 25.10.2012
Сообщений: 4
|
Цитата:
По поводу ответа, то я ему пытался объяснить примерно тоже что вы написали, но он после таких ответов вообще в этот день у меня лабу не принимает, говорит что я не понимаю что такое процедурный тип и все, больше никаких комментариев не дает. Может есть какое-то определение для этого типа, просто все что в паутине нашел были отвергнуты. |
|
26.10.2012, 13:02 | #6 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,883
|
Хм.. я верю, когда мне говорят, поэтому свои "наезды" снимаю (просто исключения редки в таких случаях, и я даже рад что наткнулся на исключение).
Тогда я скажу так (надеюсь, не согрешу против истины, ибо в данный вопрос вникал давно и мб сам чуть-чуть что-то путаю). Процедурный тип, чем бы он ни был в абстрактном понимании (и определения я не дам, ибо я сам его не знаю дословно - гугл в помощь), в реальном смысле обозначает указание компилятору трактовать переменные данного процедурного типа как указатели. По факту (в асм-коде) эти указатели ничем от других указателей не отличаются, и только компилятор у себя знает, что это за указатели и соответственно генерирует нужный код. А именно, использует данный указатель в ассемблерных инструкциях как указатель именно на код (при чём контролирует правильность ещё), а не просто некое значение. Т.е. осмысленность указателю как ссылке на функцию придаёт именно компилятор, поэтому я и сказал о спецификации. Это по самому процедурному типу. А про "зачем я использую в программе процедурный тип" я писал выше - обеспечение гибкости работы функции графико-построителя. А конкретно - для расчёта значения функции от аргумента (при помощи вызова кода функции по её указателю и передачей аргумента и результата магией компилятора через стек), который изменяется в цикле пошагово. Таким образом, Вы получаете массив пар аргумент-значение функции, впоследствии используя его для рисования точек графика. Я не удивлюсь если препод отвергнет и этот ответ, который по сути является незыблемой истиной (если я не попутал конечно), ибо опирается на "железо", а не на какие-то там абстрактные определения, которое возможно он с Вас и выпытывает, тогда в этом случае Ваша обязанность была законспектировать его и выучить назубок. Удачи в нелёгком труде ! Тяжело в учении легко в бою. Я бы, кстати, в таком случае добился бы хоть каким образом "правильного" ответа от препода и если бы усмотрел в нём некорректность с т.з. компьютерной платформы, то все силы бы отдал на доказательство преподу его заблуждения, ну, и надо сказать, что бывали у меня такие дискуссии за время обучения. ПС. Зашёл на самый уважаемый мной интернет-мануал по дельфи и подыскал Вам http://delphikingdom.com/asp/viewite...catalogid=1179 пункт 2.8.11 Последний раз редактировалось phomm; 26.10.2012 в 13:06. |
26.10.2012, 13:50 | #7 |
Регистрация: 25.10.2012
Сообщений: 4
|
phomm, спасибо большое за столь развернутый ответ, попробую с этой точки зрения объяснить ему, может получится.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Процедурный тип | Sweet-_-Orange | Помощь студентам | 3 | 01.02.2012 21:16 |
Процедурный тип. Интегралы. | kuy | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 26.11.2011 00:11 |
Процедурный тип в Delphi | <Maria> | Помощь студентам | 1 | 14.11.2010 18:03 |
Процедурный тип в C++Builder | sneksnek2006 | C++ Builder | 4 | 14.10.2010 10:46 |
Процедурный тип в паскале | tanyhaftv | Помощь студентам | 0 | 24.03.2010 09:07 |