Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


≈сть отличи€ между Pascal'ем и Delphi? ≈сли есть, то какие




ѕаскаль - процедурный €зык, delphi - объектно-ориентированный...

Ќу хот€ бы самое основное, что Pascal создает DOS-приложени€, а Delphi позвол€ет и WIN32 создавать
Delphi позвол€ет создавать уже бизнес-приложени€, Pascal дл€ обучени€

јндрей, а как же object pascal?

Delphi начина€ вроде с седьмой версии независимый €зык программировани€ с ѕаскаль —интаксисом. ј до этого ƒельфи была основана на Object Pascal объектно ориентированном яѕ от Ѕорланд.

Pascal-процедурный €зык (аналог - €зык —).
Object Pascal - объектно-ориентированный €зык (аналог - €зык —++)
Delphi -это не €зык, а среда объектно-ориентированного программировани€, основанна€ на Object Pascal (аналоги: MS Visual —++ и Embarcadero C++ (ранее известна€ как CodeGear C++, ранее известна€ как Borland C++))

 

Pascal и Delphi

Pascal “рудно рассказать что-то новое о том, что хорошо известно всем. ƒействительно, вр€д ли найдетс€ в нашей стране программист или просто выпускник средней школы, который не знал бы (или не слышал) об этом €зыке программировани€. ќсновные концепции €зыка были разработаны в 1967-1968 г. профессором Ќиколаусом ¬иртом (Niklaus Wirth) (Ѕиографию ¬ирта можно прочитать на http://cc.kzoo.edu/~k98ja01/wirth.html) и опубликованы в 1971 году (The Programming Language Pascal Acta Informatica, 1 (Jun 1971), 35-63). —тандарт €зыка был разработан им в 1974 г. (PASCAL Ч User Manual and Report, ISO Pascal Standard Kathleen Jensen and Niklaus Wirth) совместно с  етлин …енсен (Kathleen Jensen). ѕаскаль достаточно быстро превратилс€ из средства, предназначенного дл€ обучени€ студентов программированию, в инструмент, который стали использовать дл€ создани€ больших программных проектов. «аметим, что ни один из последующих €зыков, разработанных автором (а ¬ирт €вл€етс€ создателем ћодулы и ќберона), не получил такого распространени€. “рудно сказать, с чем это св€зано. ¬озможно, с тем, что €зык удачно сочетает простоту с выразительностью и силой. ¬озможно, что просто он оказалс€ в нужный момент на нужном месте, поскольку на момент создани€ €зыка, получившего свое им€ в честь великого французского математика, в распор€жении программистов было весьма и весьма немного €зыков высокого уровн€. » что самое главное, все они были разработаны дл€ решени€ конкретных прикладных задач и во многом €вл€лись продуктом Ђтворческого актаї, а не результатом серьезного научного труда. ‘ортран, названный одним из пионеров программировани€ ƒейкстрой (Edsger Dijkstra) инфантильным дезорганизатором, предназначалс€ только дл€ математических расчетов и не выдерживал никакой критики с точки зрени€ ограничени€ доступа к данным и отсутстви€ поддержки структурного программировани€. ќб интерпретаторе Ѕейсик (тогда еще без приставки Visual) нельз€ было говорить без слез.  обол был ориентирован на решение экономических задач, a PL/I Ч чрезмерно сложен и принадлежал скорее к области проблем, чем к области решений. » вот тут по€вл€етс€ €зык, на пор€док отличающийс€ от них своим качеством. ќсновное, что привлекало к нему, Ч логичность, поддержка концепций структурного и процедурного программировани€, работа с динамической пам€тью, возможность создани€ своих типов данных. ¬се это стало теперь настолько привычным, что трудно представить, как можно программировать без использовани€ этих жизненно необходимых возможностей. —трога€ типизаци€ позволила сразу же на пор€док снизить количество ошибок, по€вл€ющихс€ вследствие невнимательности или банальных опечаток.  стати, дл€ желающих использовать в своих программах пр€мой доступ к данным без вс€ких ограничений €зык предоставил возможность создани€ записей с вариантами, которые можно трактовать в соответствии со своими потребност€ми. Ќо при этом программист должен всегда €вно указывать, с каким типом данных в конкретной переменной он желает работать. ≈динственным недостатком €зыка, существовавшим в то врем€, было отсутствие поддержки модульности. ѕрограммист должен был компилировать весь проект целиком, со всеми вход€щими в него процедурами и функци€ми (правда, возможность поддержки вызовов подпрограмм из заранее скомпилированных и скомпонованных библиотек присутствовала с самого начала). Ќо, впрочем, это не удивительно Ч напомню, что €зык-то был предназначен дл€ обучени€. ≈ще одной причиной, котора€ позволила €зыку перейти в категорию бестселлеров, стала поддержка разработчиков коммерческого ѕќ. » тут мы не можем пройти мимо фирмы Borland (ныне Inprise). –азработанный ею Turbo Pascal во всех его модификаци€х €вл€етс€ в –оссии одним из самых попул€рных продуктов. »нтегрированна€ оболочка, котора€ включает в себ€ редактор, компил€тор, компоновщик и отладчик, вместе с интерактивной справочной системой сделали разработку программ на ѕаскале делом простым и пон€тным практически любому человеку. Ќо так было не всегда. Ќапример, в начале восьмидес€тых автору довелось поработать с одним из первых компил€торов ѕаскал€ на платформах DEC. ¬ нем сначала нужно было в редакторе создавать программу, затем однопроходный компил€тор выдавал код на ассемблере, далее приходилось транслировать его в объектный код, компоновать с системными библиотеками и только после этого запускать программу. ѕоиск ошибок (без встроенного отладчика, который сейчас просто показывает вам строку, где произошла ошибка) был делом, требующим терпени€, и, самое главное, процессом весьма длительным.  роме создани€ интегрированной оболочки, Borland ввел в Pascal поддержку модульного программировани€, а начина€ с версии 5, и поддержку объектно-ориентированного программировани€. ¬ насто€щее врем€ действуют три стандарта €зыка. ѕервый из них Ч нерасширенный ѕаскаль (unextended Pascal) был разработан в 1983 году (—мотрите стандарты ANSI/IEEE 770’3 97-1993 и ISO 7185:1983. —тандарты ISO доступны по адресу http://www.iso.ch/welcome.html) и практически полностью совпадает с описанием €зыка в нотации …енсен-¬ирта. ¬торой Ч Extended Pascal Ч содержит расширени€, касающиес€ модульного программировани€ (раздельна€ компил€ци€ модулей, импорт-экспорт подпрограмм, интерфейсна€ часть и реализаци€), и дополнен р€дом процедур и функций (пр€мой доступ к файлам, работа со строками и т д.) (—мотрите стандарты ANSI/IEEE 770’3.160-1989 и ISO/IEC 10206:1991). ѕоследний Ч объектный ѕаскаль (Object-Oriented Extensions to Pascal), в отличие от первых двух, формально не утвержден, но оформлен в виде отчета (ANSI Technical Report) в 1993 г. (—мотрите ANSI/X3-TR-13-1994) ќбъектный ѕаскаль поддерживает классы, обладающие свойствами и методами, наследование классов, переопределение методов у потомков (полиморфизм) и р€д других атрибутов объектно-ориентированного программировани€. Delphi ¬ –оссии Borland Delphi по€вл€етс€ в конце 1993 г. и сразу же завоевывает широкую попул€рность. Ќовые версии выход€т практически каждый год. ¬ них реализуютс€ все новые мастера, компоненты и технологии программировани€. ƒействительно, процесс разработки в Delphi предельно упрощен. ¬ первую очередь это относитс€ к созданию интерфейса, на который уходит 80% времени разработки программы. ¬ы просто помещаете нужные компоненты на поверхность Windows-окна (в Delphi оно называетс€ формой) и настраиваете их свойства с помощью специального инструмента (Object Inspector). — его помощью можно св€зать событи€ этих компонентов (нажатие на кнопку, выбор мышью элемента в списке и т.д.) с кодом его обработки Ч и вот простое приложение готово. ѕричем разработчик получает в свое распор€жение мощные средства отладки (вплоть до пошагового выполнени€ команд процессора), удобную контекстную справочную систему (в том числе и по Microsoft API), средства коллективной работы над проектом, всего просто не перечислить. ¬ы можете создавать компоненты ActiveX без использовани€ Microsoft IDL, расшир€ть возможности web-сервера (скрипты на стороне сервера), практически ничего не зна€ об HTML, XML или ASP. ћожно создавать распределенные приложени€ на базе —ќћ и CORBA, »нтернет- и intranet-приложени€, использу€ дл€ доступа к данным Borland DataBase Engine, ODBC-драйверы или Microsoft ADO. ѕо€вивша€с€, начина€ с Delphi 3, поддержка многозвенной технологии (multi-tiered) доступа к данным позвол€ет создавать масштабируемые приложени€ (относительно слабо завис€щие от сервера Ѕƒ) за счет перенесени€ методов обработки информации (бизнес-правил) на среднее звено.  ак уже говорилось ранее, в Delphi используетс€ €зык Object Pascal, который посто€нно расшир€етс€ и дополн€етс€ Borland. язык в полной мере поддерживает все требовани€, предъ€вл€емые к объектно-ориентированному €зыку программировани€.  ак и положено строго типизированному €зыку, классы поддерживают только простое наследование, но зато интерфейсы могут иметь сразу несколько предков.   числу особенностей €зыка следует отнести поддержку обработки исключительных ситуаций (exceptions), а также перегрузку методов и подпрограмм (overload) в стиле C++.   числу удачных, на взгл€д автора, относитс€ также поддержка длинных строк в формате WideChar и AnsiChar. ѕоследний тип (AnsiStrmg) позвол€ет использовать все прелести динамического размещени€ информации в пам€ти без вс€ких забот о ее выделении и сборке мусора Delphi делает это автоматически. ƒл€ поклонников свободного стил€ программировани€ имеютс€ открытые массивы, варианты и вариантные массивы, позвол€ющие размещать в пам€ти все, что душе угодно и смешивать типы данных. ¬ы можете создавать свои собственные компоненты, импортировать ќ—’-компоненты, создавать Ђшаблоныї проектов и Ђмастеровї, создающих Ђзаготовкиї проектов. ћало того, Delphi предоставл€ет разработчику интерфейс дл€ св€зи ваших приложений (или внешних программ) с интегрированной оболочкой Delphi (IDE). “аким образом, вы можете использовать Delphi дл€ создани€ как самых простых приложений, на разработку которых требуетс€ 2-3 часа, так и серьезных корпоративных проектов, предназначенных дл€ работы дес€тков и сотен пользователей. ѕричем дл€ этого можно использовать самые последние ве€ни€ в мире компьютерных технологий с минимальными затратами времени и сил. Ќу, и одна из самых последних новостей от Inprise обещает, что в ближайшем будущем вы сможете переносить приложени€, разработанные в Delphi, на платформу Linux. Ѕолее подробную информацию о Delphi можно получить на сайтах www.inprise.com и www.inprise.ru. —уществует большое количество сайтов, посв€щенных Delphi, например Ђ оролевство Delphiї Ч delphi.vitpc.com, Torry's Delphi Pages Ч www.torry.ru. ѕоследний содержит большое число ссылок на ресурсы, св€занные с Delphi. Ќу а если вы уже давно знакомы с этим продуктом, то на сайте www.brainbench.com можно бесплатно протестироватьс€ в качестве программиста Delphi 3 и получить по почте сертификат. јлександр јлександровский, [email protected] —тать€ из журнала BYTE/–осси€, ћарт 2000 ƒл€ того, чтобы нагл€дно продемонстрировать использование описанных €зыков на практике нами была выбрана задача, в которой требовалось ввести со стандартного ввода или из файла р€д целых чисел, а затем вывести только нечетные из них, причем в обратном пор€дке следовани€. Ёто одна из простейших задач, котора€ существенным образом требует дл€ своего решени€ работы с массивами, циклами, ветвлением и вводом/выводом, а также позвол€ет продемонстрировать вызовы подпрограмм. ѕри этом она обозрима и легко воспринимаетс€. Ћистинг. Object –аsсаl Program BYTE_Example; // Oject Pascal, Delphi 5 {$APPTYPE CONSOLE} // ѕрагма, делающа€ приложение консольным uses SysUtils, Classes; // »спользуемые внешне модули type “ћуArray = class (TObject) //  ласс - динамический массив private FArray: array of integer; // ѕоле дл€ хранени€ данных FPos: integer; // —четчик введенных элементов public function GetLastNumber:integer; // номер последнего элемента function GetElement(Poz:integer):integer; // Ёлемент по номеру procedure AddElement(Value:integer); // ƒобавление в конец массива constructor create; //  онструктор destructor Destroy; override; // ƒеструктор end; const delta=100; // ѕриращение динамического массива procedure TMyArray.AddElenient(Value: integer); begin if FPos>High(FArray) then // Ќужно увеличить массив? SetLength(FArray,Length(FArray)+delta); // ”величим на Delta FArray[FPos]:=Value; // ƒобавл€ем элемент Inc(FPos); end; constructor “ћуArray.create; //  онструктор динамического массива begin inherited, // ¬ызываем конструктор предка SetLength(FArray,delta); // —оздали массив из delta-элементов FPos:=0; // —четчик элементов массива end; destructor “ћујrrау.Destroy; // ƒеструктор динамического массива begin // ”ничтожаем объект FArray:=nil; // ”дал€ем массив inherited; // ¬ызываем деструктор предка end; function “ћујrrау.GetElement(Poz: integer): integer; begin result:= FArray[Poz] end; // „итаем элемент по номеру function “ћујrrау.GetLastNumber: integer; begin result:=FPos-1; end; // ѕолучаем количество элементов массива procedure ReadElementsFromFile; // „итаем из файла и выводим нечетные на экран var F: file of Integer; // ‘айл с целыми числами ћујrrау: “ћујrrау; // ќбъект дл€ хранени€ чисел i: integer; // ѕеременна€ цикла begin ћуArray:= “ћуArray. create; // —оздали объект-массив AssignFile(F, 'TestFile.dat'); // ќткрываем файл reset(F); while not eof (F) do begin read(F,I); // „итаем элемент ћуArray.AddElement(I); // ƒобавл€ем элемент в массив end; closeFile(F); // «акрываем файл for i:= ћуArray.GetLastNumber downto 0 do // ¬ыводим в обратном пор€дке if ћуArray.GetElement(i) mod 2 <> 0 then // ¬ыводим только нечетные writeln(intTostr(MyArray.GetElement(i))); // элементы в колонку ћуArray.Free; // ”ничтожаем массив end; begin // √лавный модуль ReadElementsFromFile end.




ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-11-05; ћы поможем в написании ваших работ!; просмотров: 842 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

Ќасто€ща€ ответственность бывает только личной. © ‘азиль »скандер
==> читать все изречени€...

1487 - | 1326 -


© 2015-2024 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.039 с.