Ви бажаєте відреагувати на цей пост? Створіть акаунт всього за кілька кліків або увійдіть на форум.

Паскаль

+3
gg.
Ацкій Сотона
Anderoy
7 користувачів

Перейти донизу

Паскаль Empty Паскаль

Повідомлення  Anderoy Чт Черв 17, 2010 5:53 pm

Pascal — алгоритмічна мова програмування універсального призначення. Існують діалекти мови з підтримкою об'єктно-орієнтованого програмування. В 1990 році було затверджено стандарт ISO 7185:1990, «Pascal»[1], та ISO 10206:1990 «Extended Pascal»[2].

Історія виникнення і особливості мови

Роком створення Pascal вважається 1970-й, і творцем цієї мови програмування є Ніклаус Вірт. Початкова мета розробки мови диктувалася потребою інструмента «для навчання програмуванню як систематичній дисципліні». Pascal належить до Algol-подібних мов програмування, оскільки використовує семантику Algol-ла. Однак Pascal мав суттєве удосконалення — жорстку типізацію. Це означало, що присвоювання можна було виконувати лише для змінних, що належать до одного типу (одночасно вказувались правила, за якими типи вважались однаковими). Це удосконалення суттєво покращило стиль програмування, оскільки значну частину помилок вдавалось виявити ще на етапі компіляції — що збільшує надійність програм.

Однак мова розроблялась як дослідницький проект і первісний Pascal був мало придатний для написання великих проектів, оскільки програму не можна було скласти з кількох програмних частин — просто не було передбачено такої можливості. Але ця мова програмування швидко завоювала популярність у навчальних закладах при вивченні програмування. А коли з'явились діалекти мови де можливим було окреме компілювання програмних частин — Pascal став засобом написання великих програмних систем.

Існує ряд об'єктивних причин, які обумовили видатний успіх мови Pascal. Серед них у першу чергу потрібно вказати наступні:

* Мова в природній і елегантній формі відбила найважливіші сучасні концепції технології розробки програм.
* Завдяки своїй компактності, концептуальній цілісності й ортогональності понять, а також вдалому оригінальному опису, запропонованому автором мови, Pascal виявився дуже легким для вивчення й освоєння.
* Незважаючи на відносну простоту мови, вона виявилась придатною для дуже широкого спектру застосунків, у тому числі для розробки дуже великих і складних програм, наприклад, операційних систем.
* Pascal дуже технологічний для реалізації практично усіх, у тому числі і нетрадиційних, машинних архітектур. Стверджується, що розробка Pascal-транслятора «майже» не перевищує за трудомісткістю гарної дипломної роботи випускника ВНЗу.
* Мова Pascal стандартизована в багатьох країнах, а у 1983 році було прийнято міжнародний стандарт (ISO 7185:1983).

Turbo Pascal
Загальні відомості

Turbo, а пізніше Borland Pascal — це одна з найвдаліших і найпоширеніших реалізацій мови, створена компанією Borland. Turbo Pascal — могутнє розширення американського стандарту (ANSI Pascal), яке враховує архітектурні особливості ОС MS DOS та MS Windows і постачається зі значними за обсягом і різноманітності пакетами стандартних процедур. Такі принципові нововведення, як апарат модулів і об’єктно-орієнтовані засоби полегшують конструювання великих програмних систем на основі технології модульного програмування.

Компілятор вхідної мови системи Turbo Pascal працює за однопрохідною схемою, реалізує функції редагування зв'язків, формуючи на виході готовий до виконання об'єктний код. Компілятор може здійснювати широкий набір локальних оптимізацій (згортання констант, виключення невикористовуваного коду і зайвих даних, оптимізація операцій і т.д.), що сприяє високій ефективності кінцевих програм.

Система Turbo Pascal є інтегрованим середовищем (IDE), яке налічує ряд компонентів, що в сукупності підтримують усі види робіт зі створення програм. Система містить універсальний текстовий редактор, компілятор вхідної мови, редактор зв'язків і вбудований символьний зневаджувач. Багатовіконний інтерфейс із розвинутою системою меню і досконалою довідковою системою забезпечує високу продуктивність праці програміста.

Borland Pascal 7.0 дозволяв компілювати програми для DOS, Windows і захищеного режиму MS DOS, також містив ряд додаткових утиліт.
Синтаксис

Алфавіт мови
Програми на мові Pascal формуються із букв A-Z, a-z, цифр 0-9, спеціальних символів +, - , *, /, =, <, >, [, ], «.», «,», (, ), «:», «;», {, }, $, #

Службові слова
Службове слово являє собою неподільне утворення, зміст якого фіксований в мові. Службові слова не можна використовувати у якості імен. Коментарі в коді програми оформлюються фігурними дужками «{коментар}»
Приклади: end, array, begin, program
Структура програми
Програма в мові Pascal має наступний вигляд:

* program <назва>; {назва програми}
* uses <назва модуля 1>, <назва модуля 2>, … ; {розділ опису модулів}
* label <ім'я1>,<ім'я2>, … ; {розділ опису міток, мітка — ціле число від 1 до 9999}
* const <ім'я1>=<значення1>; <ім'я2>=<значення2> … ; {розділ опису констант}
* type <ім'я>=<діапазон або перелік значень> ; {розділ опису типів користувачів}
* var <ім'я1>, <ім'я2>, … : <тип>; {розділ оголошення змінних}
* procedure або function {розділ опису процедур та фанкцій}
* begin {оголошення початку опису опереторів}
* {оператори}
* end. {оголошення про закінчення програми}

Обов'язковими розділами є var, begin та end. Program — не обов'язкове ключове слово, але його корисно використовувати для того, щоб легше розрізняти програму серед інших.
Після кожного рядка необхідно ставити «;»
Присвоєння значення відбувається наступним чином:
<змінна> := <значення>;
Після останнього end необхідно поставити «.»
Математичні операції
У Pascal дещо специфічно передаються основні математичні опереції. Також існують і унікальні команди для проведення деяких обрахунків.
Операнди:

* «+» додавання
* «-» віднімання
* «*» множення
* «/» ділення
* div ціла частина ділення (7 div 2 =3)
* mod остача від ділення (7 mod 2 =1)
* = дорівнює
* <> не дорівнює (≠)
* > більше
* < менше
* >= більше або рівне (≥)
* <= менше або рівне (≤)

Стандартні підпрограми і сталі

* Abs(X) — обчислення абсолютного значення (модулю) Х.
* ArcTan(X) — обчислення кута, тангенс якого дорівнює Х (тобто математичний arctg(X)) , значення кута подано в радіанах і може знаходитися в діапазоні від -π/2 до π/2. Для перетворення значення кута з радіанної міри в градусну необхідно значення кута помножити на число 180/π. Результат має дійсний тип.
* Cos(X) — обчислення косинуса Х, параметр задає значення кута в радіанах.
* Exp(x) — обчислення значення експоненти аргументу (ex). Результат завжди має дійсний тип.
* Frac(X) — знаходження дробової частини Х. Результат має дійсний тип.
* Int(X) — знаходження цілої частини Х (дробова частина відкидається). Результат має дійсний тип.
* Ln(x) — обчислюється натуральний логарифм аргументу. Результат має дійсний тип. За допомогою функцій Exp та Ln можна обчислити довільну степінь числа наступним чином: ab=Exp(b*Ln(a)), відповідно корінь можна подати так само a1/b (тобто корінь степіня b з a)=Exp(1/b*Ln(a)).
* Pi — повертає значення числа p (3.1415926).
* Sin(X) — обчислення синуса Х. Параметр задає значення кута в радіанах. Для перетворення значення кута з радіанної міри в градусну необхідно значення кута помножити на число 180/p. Результат має дійсний тип.
* Sqr(X) — піднесення до квадрату значення Х. Тип результату збігається з типом параметра.
* Sqrt(X) — обчислення квадратного кореня з Х. Тип результату дійсний.
* Random — генерує значення випадкового числа з діапазону від 0 до 0.99. Тип результату дійсний.
* Random(P) — генерує значення випадкового числа з діапазону від 0 до P. Тип результату цілий. Щоб випадкові числа були «більш випадковими», необхідно періодично змінювати базу генерації. Для цього використовується процедура Randomize, що дозволяє при кожному новому запуску програми отримувати різні випадкові числа.

Для величин перелічувальних типів (всі цілі, літерний та булівський) існують також декілька зручних стандартних функцій та процедур, наведених нижче:

* Dec(x,[dx]) — процедура зменшує значення змінної Х на величину DX, а якщо параметр DX не заданий — на 1.
* Inc(x,[dx]) — процедура збільшує значення змінної Х на величину DX, а якщо параметр DX не заданий — на 1.
* Pred(X) — функція, що визначає попереднє значення для даного типа. Наприклад, Pred(5)=4, Pred(True)=False, Pred('B')='A'.
* Succ(X) — функція, що визначає наступне значення для даного типа. Наприклад, Succ(5)=6, Succ(True)=False, Succ('A')='B'.
* Odd(X) — число перевіряється на парність. Аргументом цієї функції може бути тільки число типу longint, а результат дорівнює true, якщо аргумент парний, і false — в протилежному випадку.[3]

Спадщина Pascal

Разом із популярністю мови стало відомим і ім'я Ніклауса Вірта. Працюючи у Швейцарському федеральному технічному інституті разом із своїми учнями і послідовниками удосконалював теорію мови програмування загального використання. Так у 1980 році зявилась Modula (хоча коли говорять Modula, мають на увазі Modula-2). Modula-2 стала завершенням розвитку лінії структурного програмування. У 1990 році — з’явився Oberon що вже використовував принципи ООП (хоча об'єктно-орієнтоване програмування було можливим вже у версії 5.5 однієї з найпопулярніших реалізацій мови — Turbo Pascal).

Тепер можна говорити про існування родини Pascal-подібних мов, до яких належать Pascal, Modula-2, Oberon, Oberon-2, ActiveOberon, Component Pascal.

Не так давно з'явилась нова мова з цієї великої родини — Zonnon для .NET. Вона, як і її попередники, була створена у Швейцарському федеральному технологічному інституті у Цюріху. Основний наголос у ній зроблено на простоту, ясний синтаксис та модульність. Zonnon увібрав у себе риси Active Oberon та C#. Мова Zonnon додає паскалю нові особливості, включаючи процеси в об'єктах, перевантаження операторів та обробку виключних ситуацій.
[ред.] Зразки програм

Класичний приклад:

program HelloWorld;
begin
writeln('Hello, World!');
end.

Обчислення факторіалу:

program factorial;
var i,n,r:integer;
begin
readln(n);
r:=1;
if n<>0
then begin
for i:=n downto 1 do begin
r:=r*i;
end;
end;
writeln('factorial(',n,')=',r);
end.

Оскільки Pascal дозволяє використовувати рекурсію, цю програму можна переписати інакше:

program factorial;
var n:integer;
function f(n:integer):integer;
begin
if n=0 then f:=1 else f:=n*f(n-1);
end;
begin
readln(n);
writeln('factorial(',n,')=',f(n));
end.

Джерела інформації


1. ↑ ISO/IEC 7185:1990
2. ↑ ISO 10206:1990
3. ↑ Cпеціалізований сайт про Pascal

Інтернет ресурси

* http://www.pascal.pp.ua
* http://nataliya.kiev.ua/?id=1
* http://pascal.sources.ru

Популярні реалізації Pascal

* FreePascal [1]
* GNU Pascal [2]
* Borland/Turbo Pascal [3]
* TMT Pascal [4]
Anderoy
Anderoy
В памперсІ
В памперсІ

К-ть повідомлень : 19
Дата регистрации : 17.06.2010
Возраст : 28
Звідки : Іваничі

http://iv-orthodox.pp.ua

Повернутися до початку Перейти донизу

Паскаль Empty Re: Паскаль

Повідомлення  Ацкій Сотона Чт Черв 17, 2010 6:15 pm

Пі**** який ти розумний)) вау!!
Ацкій Сотона
Ацкій Сотона
Крутий користувач
Крутий користувач

К-ть повідомлень : 254
Дата регистрации : 17.06.2010
Возраст : 113

http://ада.нет

Повернутися до початку Перейти донизу

Паскаль Empty Re: Паскаль

Повідомлення  Anderoy Чт Черв 17, 2010 6:17 pm

Ацкій Сотона пише:Пі**** який ти розумний)) вау!!
Це не я а нет.
Anderoy
Anderoy
В памперсІ
В памперсІ

К-ть повідомлень : 19
Дата регистрации : 17.06.2010
Возраст : 28
Звідки : Іваничі

http://iv-orthodox.pp.ua

Повернутися до початку Перейти донизу

Паскаль Empty Re: Паскаль

Повідомлення  Ацкій Сотона Чт Черв 17, 2010 6:36 pm

ладно, не буду сваритись з адміном а то ще накажиш мене., отшльопаєш)))
Ацкій Сотона
Ацкій Сотона
Крутий користувач
Крутий користувач

К-ть повідомлень : 254
Дата регистрации : 17.06.2010
Возраст : 113

http://ада.нет

Повернутися до початку Перейти донизу

Паскаль Empty Re: Паскаль

Повідомлення  gg. Чт Черв 17, 2010 7:38 pm

Хаха... Very Happy
gg.
gg.
Модератор
Модератор

К-ть повідомлень : 217
Дата регистрации : 17.06.2010
Возраст : 113
Звідки : УКРАЇНА!!!

Повернутися до початку Перейти донизу

Паскаль Empty Re: Паскаль

Повідомлення  Ацкій Сотона Пт Черв 18, 2010 4:08 pm

НаЗаР пише:Хаха... Very Happy

єсть шарючі,?????????????????????????????????? єсть питання по програмуванні!


маю багато питань!!!!!!!!


Останній раз редагувалося: Ацкій Сотона (Сб Черв 19, 2010 2:25 am), всього регувалося 1 раз(-и)
Ацкій Сотона
Ацкій Сотона
Крутий користувач
Крутий користувач

К-ть повідомлень : 254
Дата регистрации : 17.06.2010
Возраст : 113

http://ада.нет

Повернутися до початку Перейти донизу

Паскаль Empty Re: Паскаль

Повідомлення  оМГ ІнДифЕренТ Пт Черв 18, 2010 7:59 pm

ше скажіть)... шо хтось то все чітав)
я це і так знаю)
добрий дядько Йожік розказував пів року)
оМГ ІнДифЕренТ
оМГ ІнДифЕренТ
Постійний користувач
Постійний користувач

К-ть повідомлень : 139
Дата регистрации : 17.06.2010
Возраст : 30
Звідки : Іваничі

Повернутися до початку Перейти донизу

Паскаль Empty Re: Паскаль

Повідомлення  Кокакола Сб Черв 19, 2010 2:33 am

много букоф.....
я попрощє....

СРАНЬ ГОСПОДНЯ ВАШ ПАСКАЛЬ!!!!!!!!!!!!!!!!!!!!!!!!
Кокакола
Кокакола
Місс форуму
Місс форуму

К-ть повідомлень : 500
Дата регистрации : 18.06.2010
Возраст : 30
Звідки : Іваничі СІТІ

Повернутися до початку Перейти донизу

Паскаль Empty Re: Паскаль

Повідомлення  оМГ ІнДифЕренТ Сб Черв 19, 2010 1:59 pm

Ацкій Сотона пише:
НаЗаР пише:Хаха... Very Happy

єсть шарючі,?????????????????????????????????? єсть питання по програмуванні!


маю багато питань!!!!!!!!

омГ) дивлячись які питання)....
мо шо підкажЖУ) го в асьКО
оМГ ІнДифЕренТ
оМГ ІнДифЕренТ
Постійний користувач
Постійний користувач

К-ть повідомлень : 139
Дата регистрации : 17.06.2010
Возраст : 30
Звідки : Іваничі

Повернутися до початку Перейти донизу

Паскаль Empty Re: Паскаль

Повідомлення  ) Вт Черв 22, 2010 6:08 am

андерой ска програміст ти йобаний су*а в рот" гандон, ти хоть елементарну програму якусь можеш написати???


Ацкій Сотона - в тебе питання?? які???
)
)
В памперсІ
В памперсІ

К-ть повідомлень : 29
Дата регистрации : 22.06.2010
Возраст : 113
Звідки : Ukraine

Повернутися до початку Перейти донизу

Паскаль Empty Re: Паскаль

Повідомлення  Ацкій Сотона Вт Черв 22, 2010 6:09 am

) пише:андерой ска програміст ти йобаний сучара в рот" гандон, ти хоть елементарну програму якусь можеш написати???


Ацкій Сотона - в тебе питання?? які???

всже немає...пропали ...будуть зверунсь
Ацкій Сотона
Ацкій Сотона
Крутий користувач
Крутий користувач

К-ть повідомлень : 254
Дата регистрации : 17.06.2010
Возраст : 113

http://ада.нет

Повернутися до початку Перейти донизу

Паскаль Empty Re: Паскаль

Повідомлення  14/88 Чт Серп 05, 2010 4:57 pm

Кокакола пише:
СРАНЬ ГОСПОДНЯ ВАШ ПАСКАЛЬ!!!!!!!!!!!!!!!!!!!!!!!!
підтримую)
14/88
14/88
Admin
Admin

К-ть повідомлень : 1391
Дата регистрации : 17.06.2010
Возраст : 29
Звідки : Ivanychi

https://ivanychi.catsboard.com

Повернутися до початку Перейти донизу

Паскаль Empty Re: Паскаль

Повідомлення  gg. Пн Лист 15, 2010 1:40 am

-=Reketer=- пише:
Кокакола пише:
СРАНЬ ГОСПОДНЯ ВАШ ПАСКАЛЬ!!!!!!!!!!!!!!!!!!!!!!!!
підтримую)
згідний..
але вчу.. його
gg.
gg.
Модератор
Модератор

К-ть повідомлень : 217
Дата регистрации : 17.06.2010
Возраст : 113
Звідки : УКРАЇНА!!!

Повернутися до початку Перейти донизу

Паскаль Empty Re: Паскаль

Повідомлення  14/88 Пн Лист 15, 2010 1:43 am

і як успіхи?
14/88
14/88
Admin
Admin

К-ть повідомлень : 1391
Дата регистрации : 17.06.2010
Возраст : 29
Звідки : Ivanychi

https://ivanychi.catsboard.com

Повернутися до початку Перейти донизу

Паскаль Empty Re: Паскаль

Повідомлення  gg. Пн Лист 15, 2010 1:47 am

-=Reketer=- пише:і як успіхи?
зараз тіко шось елементарне можу)))
Та тіко почав))
gg.
gg.
Модератор
Модератор

К-ть повідомлень : 217
Дата регистрации : 17.06.2010
Возраст : 113
Звідки : УКРАЇНА!!!

Повернутися до початку Перейти донизу

Паскаль Empty Re: Паскаль

Повідомлення  14/88 Пн Лист 15, 2010 2:01 am

aaa
ясн...
14/88
14/88
Admin
Admin

К-ть повідомлень : 1391
Дата регистрации : 17.06.2010
Возраст : 29
Звідки : Ivanychi

https://ivanychi.catsboard.com

Повернутися до початку Перейти донизу

Паскаль Empty Re: Паскаль

Повідомлення  gg. Пн Лист 15, 2010 2:05 am

-=Reketer=- пише:aaa
ясн...
полєзна штука... Exclamation Exclamation Exclamation Exclamation Exclamation Exclamation
gg.
gg.
Модератор
Модератор

К-ть повідомлень : 217
Дата регистрации : 17.06.2010
Возраст : 113
Звідки : УКРАЇНА!!!

Повернутися до початку Перейти донизу

Паскаль Empty Re: Паскаль

Повідомлення  Спонсорований контент


Спонсорований контент


Повернутися до початку Перейти донизу

Повернутися до початку


 
Права доступу до цього форуму
Ви не можете відповідати на теми у цьому форумі