Разное

Паскаль язык программирования для начинающих – Язык программирования Pascal для новичков: основные понятия / Информпедия

Iteach

Материал из ИнтеВики — обучающей площадкой для проведения тренингов программы Intel

Текущие события

Проектная деятельность в информационной образовательной среде 21 века/Нижний Новгород НГПУ январь 2014 года


Учебный Курс "Проектная деятельность в информационно-образовательной среде ХХI века", Ижевск, ноябрь 2013 г.


Основной курс программы Intel Обучение для будущего Новокузнецк октябрь-декабрь 2013


Основной курс программы Intel Обучение для будущего Ростовская область октябрь 2013


Проектная деятельность в информационной образовательной среде 21 века/НИРО/Курс для тьюторов/23 сентября - 20 октября 2013 года


Дистанционный курс ТЕО (Омская обл, осень 2013) преподаватель - Маркер Надежда Юрьевна


Семинар Созвездия Веб 2.0/Екатеринбург сентябрь 2013 преподаватель - Ирина Нургалеева


Обучение тьюторов, группа TEO РК, май-июнь 2013 преподаватель - Ольга Урсова


Очно-дистанционный курс программы Intel Обучение для будущего НИРО Нижний Новгород март-май 2013


Очно-дистанционный курс программы Intel Обучение для будущего НИРО Нижний Новгород февраль-апрель 2013


Курс "Информационно-коммуникационные технологии как средство реализации ФГОС" Екатеринбург - Арамиль март 2013


Тренинг по основному курсу программы "Обучение для будущего", ВГПУ, 1 курс магистратуры, исторический факультет - 6 февраля - 20 мая 2013г. — преподаватель — Ирина Суслова


Курс "Информационные технологии в практике работы учителя" 04.01.13 - 02.02.2013 — преподаватель — Анна Кологерманская


Курс для руководителей ИКТ: стратегия развития образовательного учреждения (Омский МР, декабрь 2012) — преподаватель —Любовь Мальцева


Курсы Проектная деятельность в информационной образовательной среде 21 века, Балаковская площадка, декабрь 2012 — преподаватель — Светлана Морозова


Тренинг Информационно-коммуникационные технологии в управлении воспитательным процессом,Тюкалинск,декабрь 2012 — преподаватель — Наталья Ильяш


Тренинг по основному курсу программы "Обучение для будущего",октябрь 2012, ЯНАО г.Ноябрьск — преподаватель — Елена Ремизова


В рамках он-лайн конференции "Новая школа: мой маршрут" проводится сетевое мероприятие Проектный инкубатор-2012





Архив событий


  • Окружающий мир – мир сложных систем (информатика, 11 класс, автор Круподерова К.Р.)
  • Информационная цивилизация (информатика, 11 класс, автор Кошелев В. Г.)
  • Математика для будущих банкиров (алгебра, 9 класс, автор Склемина Г. А.)
  • Волшебная сила музыки (музыка, биология и др., 5-8 классы, автор Красноперова Т. В.)
  • Полуостров сокровищ (окружающий мир, краеведение, 4 класс, автор Тимохина Е.Г.)
  • Удивительное рядом (окружающий мир, краеведение, русский язык, 2-4 классы, автор Тимохина Е.Г.)

Нам уже...

wiki.iteach.ru

Язык программирования Pascal

Среди множества языков программирования, предназначенных для обучения именно навыкам программирования, есть один, выделяющийся особо. Язык Паскаль, названный в честь французского ученого XVII столетия Блеза Паскаля, был разработан в конце 1960-х гг. ученым из Швейцарии Никлаусом Виртом, и далеко не с образовательной целью, как этот язык воспринимают теперь.

Наоборот, в те времена ученые пробовали разные языки программирования для практического применения. И позже этот ученый позднее создал ещё два языка программирования – Оберон и Модула, которые, правда, не получили распространения среди специалистов. Если быть точным, то 1968 году была создана первая версия языка Паскаль (на основе АЛГОЛа), а 1970 году – первый компилятор.

Особенностью Паскаля является его структурная направленность – любую программу здесь можно описать в виде объединения отдельных структурных элементов, или блоков, в единое целое. Это так называемое структурное программирование, сменившее линейное программирование – простейшую организацию написания программ, когда команды процессору записываются одна за другой, без какой либо структуры.

Идея структурного программирования оказалась как актуальной на то время, так и очень плодотворной, поскольку далеко не для всех задач удается написать программу посредством указания последовательности простых команд, без разъединения последних на отдельные блоки. Действительно, только при наличии определенной структуры программы можно судить об эффективном алгоритме решения задачи.

Особенно это стало ясно после того, когда около 1970-го года профессор Хоар опубликовал две статьи: «Аксиоматическая основа программирования для вычислительных машин» и «О структурной организации данных», в которых делается попытка осмыслить правильность составления алгоритмов программ с математической точки зрения. Как раз язык программирования Паскаль и является первым из языков, в котором имеются все необходимые инструменты для проверки эффективности написанных программ.

Ещё одной отличительной особенностью Паскаля является его строгая типизация данных, среди которых возник новый ранее не использовавшийся тип – перечислимый. Фактор строгой типизации сделал репутацию Паскалю как дисциплинирующего языка, приучающий программиста к логическому мышлению.

В Паскале допускается несвязанность программного кода (в отличие от тогдашних языков COBOL и FORTRAN), то есть допускается сколь угодно большое наличие пустых строк, что удобно при форматировании при написании комментариев. Программу на Паскале можно написать хоть в одну строчку – она все ровно будет работать, если написана в соответствии с правилами.

Но с распространением этого языка программирования оказалось, что в нем не хватает многих привычных для нас элементов – возведения в степень, понятия локальной переменной, динамических массивов, возможность использования машинного языка и др. Наиболее известным выражением этого недостатка того времени является статья Кернигана «Почему Паскаль не является моим любимым языком программирования».

Одной из причин такого недовольства Паскалем того времени была невозможность написать программу, составленную с нескольких частей, поскольку для этого просто не было предусмотрено механизмов. Но Никлаус Вирт с коллегами в последующих выпусках Паскаля устранили все эти недочеты, следуя всем принципам программирования.


progmatem.ru

Основы программирования: характеристика языка Pascal

Любое программное обеспечение создается при помощи различных языков программирования. Одним из таковых является Pascal, о котором слышало достаточно большое количество юзеров, однако, мало кто из них имеет хоть малейшее представление о нем.


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

Немного истории

Отцом языка Pascal является Никлаус Вирт, который был членом комитета по разработке языков программирования. Свое детище он представил мировому сообществу в 1969 году, а в качестве названия для продукта он выбрал фамилию известного ученого Блеза Паскаля, разработавшего первую в мире механическую машину, способную выполнять операции сложения двух чисел.

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

Эволюция Pascal

Этот язык программирования шагал в ногу со временем и развитием высоких технологий, поэтому постоянно совершенствовался. Таким образом, его эволюция выглядит следующим образом:

UCSD Pascal: эта версия Паскаля является усовершенствованной по сравнению с первой и была разработана в 1978 году. Основной инновацией, которая была реализована в ней, является порт компилятора, благодаря которому появилась возможность переносить код и вносить изменения в исходную систему.

Object Pascal: представляет собой объектное расширение для базовой версии Pascal и была создана Никлаусом Виртом совместно с компанией Apple.

Turbo Pascal: была разработана в 1983 году совместно с программистами из компании Borland и стала первой в истории интегрированной средой. Тем не менее считать эту версию революционной не совсем правильно, поскольку в ее основу был положен Odject Pascal, поэтому особых различий между ними не было. Стоит отметить, что на базе Turbo Pascal компания Microsoft разработала собственный язык программирования, однако, он получился неудачным и не смог укрепиться на рынке.

Современный Object Pascal: в наши дни этот язык программирования является очень популярным и востребованным, и выпускается в отдельной редакции, в которой собраны все самые лучшие инструменты и наработки. Большая популярность этой версии Паскаля обусловлена великолепной совместимостью со всеми существующими операционными системами на сегодняшний день.

Особенности

Язык программирования Pascal выгодно выделяется на фоне множества аналогичных продуктов благодаря тому, что в нем реализована строгая типизация и возможность структурирования данных и переменных. Благодаря этому работать с программным кодом очень легко, а различные синтаксические ошибки и неправильное написание кодов и команд полностью уходит на нет. Помимо этого, Pascal обладает простым и понятным интерфейсом, поэтому работать с ним комфортно и удобно даже тем пользователям, которые только начинают делать первые шаги в программировании.

Однако стоит отметить, что на пути к совершенству создателям Pascal пришлось столкнуться с большим количеством различных проблем и недостатков, которые устранялись по мере эволюционирования языка. Например, в первых версиях Паскаля отсутствовала возможность работы с оперативной памятью, а также слишком маленькая библиотека ввода/вывода, из-за которой было невозможно запускать функции, написанные на других языках.

Недостатки

На сегодняшний день не существует ни одного универсального языка программирования, в котором отсутствовали бы недостатки, и Pascal тому не исключение. В защиту этого языка можно отметить то, что разработчики ведут непрерывную борьбу по их устранению, однако, работа продвигается крайне медленно по многим причинам. Однако стоит отметить, что многие начинающие программисты делали существенный прорыв на этапе своего становления именно благодаря недостаткам Pascal.

Тем не менее несмотря на довольно приличный список недостатков Pascal, этому языку удалось обойти многих своих оппонентов. Например, с выходом новой версии в 1980 году, Pascal с колоссальным разрывом опередил Fortran, в котором, к слову, было значительно больше недостатков. Таким образом, всего за несколько лет Паскаль смог надежно укрепиться на рынке и завоевать звание одного из лучших языков программирования, а его изучение стало обязательным во многих школах по всему миру. Помимо этого, большинство программ, которые только можно найти в сети, созданы именно на базе Pascal, что уже говорит о многом.

Структура

Программный код любой программы, которая пишется на языке Pascal, начинается со специального тега Program, вслед за которым следует название утилиты, а в конце ставится знак препинания «точка с запятой». Стоит отметить, что это условия не является обязательным, поэтому его соблюдение не считается строгим. Вслед за этим тегом могут прописываться основные рабочие параметры программы, которые реализованы в виде списка конфигурационных файлов. Далее, идет основная часть программного кода — тело, которое разделено на отдельные блоки, содержащие информацию переменных, типов, процедур, функций и констант. После тела идет точка входа, которая также называется блоком операторов, помещенная между тегами begin и end, определяющими его границы. Для разделения операторов используется «;», а для закрытия блока просто ставиться точка.

Задействование модулей

Чтобы задействовать какие-либо модули в программе необходимо предварительно объявить о нем. Для этого предназначены инструкции подключения, которые имеют вид строки обычного программного кода, начинающейся со слова USES, вслед за котором идет перечисление всех внешних модулей, которые будут задействованы при написании программы. Стоит отметить, что возможность задействования модулей реализована далеко не во всех версиях Pascal. Например, самые первые редакции были лишены этой возможности.

Пунктуация

Чтобы создавать программы на языке Pascal необходимо строго придерживаться правил пунктуации, в противном случае программный код не будет исполняться должным образом, а сама утилита попросту не будет работать. Итак, в Паскале используются следующие знаки пунктуации:

— «;» — предназначена для разделения операторов между собой и ставиться в конце строки. Не является обязательной к использованию перед закрывающим тегом end.

— «,» — отвечает за разделение различных объектов в пределах одного списка.

— «.» — ставиться в конце программного кода после закрывающего тега.

При несоблюдении правил расстановки знаков пунктуации или при их пропуске, юзер получает уведомление о программном сбое. Что касается использования строчных или заглавных букв, то принципиального значения вариант их написания не имеет.

bezwindowsa.ru

Pascal - Энциклопедия языков программирования

Pascal (назван в честь Блеза Паскаля) — это чисто процедурный язык программирования, часто использующийся для обучения структурному программированию.

Pascal был разработан Никлаусом Виртом в 1970; вопреки расхожему мнению, он не был исключительно учебным языком, а предназначался для практического применения. Прототипом послужил Algol. Первоначально язык компилировался в байт-код, подобно языку Java.

В 1983 году был принят первый стандарт языка, ISO 7185:1983, который также называют Standard Pascal. Этот стандарт не добавлял в язык новые элементы, а только формально описывал существующие особенности языка. В 1990 году был принят стандарт ISO/IEC 10206, определяющий так называемый Extended Pascal. Основным изменением стало добавление модульности.

Особенностями языка являются строгая типизация и наличие средств структурного (процедурного) программирования. Pascal был одним из первых таких языков. По мнению Н. Вирта, язык должен был способствовать дисциплинированию программирования, поэтому, наряду со строгой типизацией, в Pascal сведены к минимуму возможные синтаксические неоднозначности, а сам синтаксис интуитивно понятен даже при первом знакомстве с языком. Это упрощает написание компиляторов языка.

Кроме того, язык предоставлял ряд встроенных структур данных: записи, массивы, файлы, множества и указатели.

Тем не менее, первоначально язык обладал множеством недостатков: невозможность передачи функциям массивов переменной длины, отсутствие нормальных средств работы с динамической памятью, ограниченная библиотека ввода-вывода, отсутствие средств для подключения функций написанных на других языках, отсутствие средств раздельной компиляции и т. п.

Диалект Object Pascal, разработанный в 1985 году, поддерживает объектно-ориентированное программирование. Существует ряд современных компиляторов, и в настоящее время язык достаточно популярен.

Примеры:

Факториал:

Пример для версий Free Pascal 1.0.6, Free Pascal 2.0.4, Free Pascal 2.2.0, Free Pascal 2.2.4, PascalABC.NET 1.8, Turbo Pascal 4.0, Turbo Pascal 5.0, Turbo Pascal 5.5, Turbo Pascal 6.0, Turbo Pascal 7.0, gpc 20070904

Используется рекурсивное определение факториала.

Этот пример работает во всех перечисленных компиляторах, но с несколько разным результатом. В Turbo Pascal, Free Pascal и PascalABC.NET возникает арифметическое переполнение при вычислении факториалов 13-16, но Free Pascal сообщает об ошибке:

13! = Runtime error 215 at $004013C7
$004013C7
$00401449
$004063E0

в то время как Turbo Pascal и PascalABC.NET не обнаруживают ошибку и просто выводят неправильные значения:

13! = 1932053504
14! = 1278945280
15! = 2004310016
16! = 2004189184

Следует отметить, что в версиях Turbo Pascal 3.0 и младше этот пример не работает вообще из-за отсутствия типа данных longint.

В GNU Pascal пример работает без переполнения.

program factorial;

function fact(n: integer): longint;
begin
    if (n = 0) then
        fact := 1
    else
        fact := n * fact(n - 1);
end;

var
    n: integer;

begin
    for n := 0 to 16 do
        writeln(n, '! = ', fact(n));
end.

Числа Фибоначчи:

Пример для версий Free Pascal 2.2.0, Free Pascal 2.2.4, PascalABC.NET 1.8, Turbo Pascal 1.0, Turbo Pascal 2.0, Turbo Pascal 3.0, Turbo Pascal 4.0, Turbo Pascal 5.0, Turbo Pascal 5.5, Turbo Pascal 6.0, Turbo Pascal 7.0, gpc 20070904

Этот пример использует рекурсивное определение чисел Фибоначчи.

program fibonacci;

function fib(n:integer): integer;
begin
    if (n <= 2) then
        fib := 1
    else
        fib := fib(n-1) + fib(n-2);
end;

var
    i:integer;

begin
    for i := 1 to 16 do
        write(fib(i), ', ');
    writeln('...');
end.

Hello, World!:

Пример для версий Free Pascal 2.2.0, Free Pascal 2.2.4, PascalABC.NET 1.8, Turbo Pascal 1.0, Turbo Pascal 2.0, Turbo Pascal 3.0, Turbo Pascal 4.0, Turbo Pascal 5.0, Turbo Pascal 5.5, Turbo Pascal 6.0, Turbo Pascal 7.0, gpc 20070904
program helloworld;

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

Факториал:

Пример для версий Free Pascal 2.0.4, Free Pascal 2.2.0, PascalABC.NET 1.8, Turbo Pascal 1.0, Turbo Pascal 2.0, Turbo Pascal 3.0, Turbo Pascal 4.0, Turbo Pascal 5.0, Turbo Pascal 5.5, Turbo Pascal 6.0, Turbo Pascal 7.0, gpc 20070904

Этот пример работает точно так же, как основной рекурсивный пример для Pascal, но использует тип real для хранения значений факториала. Команда writeln(f:-1:0) выводит дробное число f с 0 цифр после десятичной запятой и выравнивает его по левому краю.

program factorial;

function fact(n: integer): real;
begin
    if (n = 0) then
        fact := 1
    else
        fact := n * fact(n - 1);
end;

var
    n: integer;

begin
    for n := 0 to 16 do
        writeln(n, '! = ', fact(n):-1:0);
end.

Квадратное уравнение:

Пример для версий Free Pascal 2.2.0, PascalABC.NET 1.8, Turbo Pascal 1.0, Turbo Pascal 2.0, Turbo Pascal 3.0, Turbo Pascal 4.0, Turbo Pascal 5.0, Turbo Pascal 6.0, gpc 20070904

В Pascal есть встроенный комплексный тип данных complex, но команда writeln не работает с ним напрямую (только через функции Re и Im), поэтому существенного удобства от его использования нет. Вычисления проводятся в типе real. Библиотечная функция halt, введенная в Extended Pascal, позволяет выйти из текущего блока (в более поздних версиях заменена на exit).

program Quadratic;

var
   A,B,C,D: integer;

begin
   write('A = ');
   readln(A);
   if (A=0) then
   begin
      writeln('Not a quadratic equation.');
      halt;
   end;
   write('B = ');
   readln(B);
   write('C = ');
   readln(C);
   D := B*B-4*A*C;
   if (D=0) then
   begin
      writeln('x = ',-B/2.0/A);
      halt;
   end;
   if (D>0) then
   begin
      writeln('x1 = ',(-B+Sqrt(D))/2.0/A);
      writeln('x2 = ',(-B-Sqrt(D))/2.0/A);
   end
   else
   begin
      writeln('x1 = (',-B/2.0/A,',',Sqrt(-D)/2.0/A,')');
      writeln('x2 = (',-B/2.0/A,',',-Sqrt(-D)/2.0/A,')');
   end;
end.

CamelCase:

Пример для версий Free Pascal 2.2.0, Free Pascal 2.2.4, Turbo Pascal 4.0, Turbo Pascal 5.0, Turbo Pascal 5.5, Turbo Pascal 6.0, gpc 20070904

Программа обрабатывает строку посимвольно. Для определения того, является ли символ буквой, и если является, то в каком он регистре, используются ASCII-коды символов. Функция ord возвращает ASCII-код данного символа, а chr — символ по его коду. Размерность строк не задана и по умолчанию принимается равной 255.

Отметим, что в Turbo Pascal программа работает только начиная с версии 4.0; в более ранних версиях не было типа данных char.

program Camelcase;

var
    text, cc: string;
    c: char;
    i: integer;
    lastSpace: boolean;

begin
    readln(text);
    lastSpace := true;
    cc := '';
    for i := 1 to Length(text) do
    begin
        c := text[i];
        if ((c >= #65) and (c <= #90)) or ((c >= #97) and (c <= #122)) then
        begin
            if (lastSpace) then
            begin
                if ((c >= #97) and (c <= #122)) then
                    c := chr(ord(c) - 32);
            end
            else
                if ((c >= #65) and (c <= #90)) then
                    c := chr(ord(c) + 32);
            cc := cc + c;
            lastSpace := false;
        end
        else
            lastSpace := true;
    end;
    writeln(cc);
end. 

CamelCase:

Пример для версий Free Pascal 2.2.0, Free Pascal 2.2.4, Turbo Pascal 4.0, Turbo Pascal 5.0, Turbo Pascal 5.5, Turbo Pascal 6.0, gpc 20070904

Пример использует такую же логику, как и предыдущий, но для проверки того, является ли символ буквой, используются множества символов lower и upper. Это делает код более читабельным.

Отметим, что в Turbo Pascal программа работает, начиная с версии Turbo Pascal 4.0, в которой впервые появляется тип данных char.

program Camelcase;

var
    text, cc: string[100];
    c: char;
    i: integer;
    lastSpace: boolean;
    upper, lower: set of char;

begin
    upper := ['A'..'Z'];
    lower := ['a'..'z'];
    readln(text);
    lastSpace := true;
    cc := '';
    for i := 1 to Length(text) do
    begin
        c := text[i];
        if (c in lower) or (c in upper) then
        begin
            if (lastSpace) then { convert to uppercase }
            begin
                if (c in lower) then
                    c := chr(ord(c) - 32);
            end
            else { convert to lowercase }
                if (c in upper) then
                    c := chr(ord(c) + 32);
            cc := cc + c;
            lastSpace := false;
        end
        else
            lastSpace := true;
    end;
    writeln(cc);
end. 

Факториал:

Пример для версий Borland Delphi 2.0

Этот пример практически полностью повторяет пример для Turbo Pascal, единственное изменение — добавление строк

{$APPTYPE CONSOLE}
uses SysUtils;

Для компиляции примера в среде Delphi 2 нужно выполнить следующие действия:

  • File -> New Application
  • Project -> Remove from Project -> удалить Unit1 (Form1)
  • View -> Project Source -> заменить весь текст файла проекта на текст примера
  • File -> Save Project As -> “factorial.dpr”
  • Project -> Compile

Скомпилированный файл factorial.exe нужно запустить из командного интерпретатора Windows.

При запуске непосредственно из среды Delphi нужно добавить строчку readln; перед последней строкой (end.): таким образом программа будет ожидать нажатия “ENTER” до закрытия консольного окна.

Как и в Turbo Pascal, из-за переполнения данный пример выводит неверные значения для факториала 13 и больше:

13! = 1932053504
14! = 1278945280
15! = 2004310016
16! = 2004189184

program factorial;
{$APPTYPE CONSOLE}
uses SysUtils;

function fact(n: integer): longint;
begin
    if (n = 0) then
        fact := 1
    else
        fact := n * fact(n - 1);
end;

var
    n: integer;

begin
    for n := 0 to 16 do
        writeln(n, '! = ', fact(n));
end.

progopedia.ru

Отправить ответ

avatar
  Подписаться  
Уведомление о