Язык программирования паскаль реферат 8 класс

Язык
программирования Паскаль

План

1. Основные сведения

2. Основные элементы Паскаля

3. Структура программы

4.
Организация и описание данных

Основные сведения

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

Основные достоинства языка:

1). гибкость и универсальность;

2). простота и ясность конструкций;

3). легкость реализации на большинстве современных ЭВМ;

4). возможность достаточно полного контроля
правильности программы как на этапе трансляции, так и во время выполнения
программы;

5). возможность удовлетворения требованиям
структурного программирования;

6). наличие набора структурных типов данных: массивов,
записей, записей с вариантами, множеств, файлов и т.д.

Некоторые недостатки языка:

1). отсутствие операции возведения в степень;

2). отсутствие средств работы с файлами прямого
доступа.

Основные элементы
Паскаля

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

Алфавит языка Паскаль – набор символов, разрешенных к
использованию и воспринимаемых компилятором, в соответствии с их смысловым
значением может быть разбит на следующие группы:

1) буквы латинского алфавита (прописные и
заглавные):
A,B, … ,Z 
и  a,b,…,z

2) арабские цифры (от 0 до 9);

3) знаки  арифметических операций:

+       –   сложение,   –     –   вычитание,

*        –   умножение   /   –   деление,

div  –   деление нацело с отбрасыванием остатка,

mod  –   нахождение остатка от деления нацело;

4). знаки операций отношения:

=       –   равно,    <>   –   не равно,

>       –   больше,  <       –   меньше,

>=   –   больше или равно, <=   –   меньше или
равно;

5). знаки логических операций:

NOT   –   отрицание,      OR   – логическое сложение,

AND   –   логическое умножение;

6). знаки операции присваивания  :=      ;

7). специальные символы:

– пробел (разделитель) _ – подчеркивания

(        –        открывающая      круглая скобка

)        –        закрывающая      круглая скобка

[        –        открывающая      квадратная скобка

]        –        закрывающая      квадратная скобка

          –        открывающая      фигурная скобка

          –        закрывающая      фигурная скобка

,         –        запятая

.         –        точка

;         –        точка с запятой

‘         –        апостроф

:         –        двоеточие

8). ключевые слова:

AND –        и,                          ARRAY     –        массив,

BEGIN       –        начало,                          CASE         –        вариант,

CONST      –        константа,            DIV   –        деление
нацело,

DO    –        выполнять,          DOWNTO –        уменьшать
до,

ELSE –        иначе,                            END –        конец,

FILE –        файл,                    FOR  –        для,

FORWARD         вперед,                          FUNCTION        –        функция,

GOTO        –        переход на,          IF      –        если,

IN     –        в,                          LABEL      –        метка,

MOD –        модуль,                         NOT –        не,

OF    –        из,                        OR    –        или,

PROCEDURE     процедура,           PROGRAM         –        программа,

RECORD  запись,                           REPEAT    –        повторить,

SET  –        множество,          STRING    –        строка,

THEN        –        то,                        TO    –        к,

TYPE         –        тип,                      UNIT –        модуль,

UNTIL       –        до,                        USES –        используемые,

VAR –        переменная,                  WHILE      –        пока,

WITH        –        с,                          XOR –        арифмет.
или.

9). стандартные идентификаторы (имена):

константы  FALSE,
TRUE
и MAXINT;

типы           BOOLEAN,
INTEGER, REAL
и CHAR;

файлы                  INPUT
и OUTPUT;

процедуры READ,  READLN,  WRITE,  WRITELN,  GET,  PUT,
REWRITE, NEW
и RESET;

10). стандартные математические функции

Функция

Обращение

Аргумент

Функция

!х!

x2

abs(x)

sqr(x)

R и I

R и I

R и I

R и I

Sin x

Cos x

ex

Ln x

x

Arctg x

sin(x)

cos(x)

exp(x)

ln(x)

sqrt(x)

arctan(x)

R и I

R

Употребление букв русского алфавита в алгоритмическом
языке Паскаль, ограничено по сравнению с английскими буквами, использованием
как элементов символьных констант и в комментариях.

Структура программы

Программа на языке Паскаль состоит из двух основных
частей

– описания данных, над которыми совершаются действия,
и описание действий, которые должны осуществляться над данными. Действия
задаются операторами, а данные – определениями и описаниями.

В структуре программы можно выделить заголовок и
собственно программу, которая может содержать максимально шесть разделов:

– описание меток;

– описание констант;

– определение типов;

– описание переменных;

– описание функций и процедур;

– раздел операторов.

Раздел
операторов заключается в операторные скобки, т.е. BEGIN…END. Любой раздел,
кроме последнего, может отсутствовать. Разделителями между разделами и
операторами служит точка с запятой. В конце программы должна стоять точка.
Заголовок программы записывается в первой строке программы и начинается с
ключевого слова program после которого указывается имя программы и связь
программы с исходными данными и результатами обработки (т.е. файлы, доступные
программе). В качестве имен файлов используются стандартные имена INPUT и
OUTPUT.

program drev( input,output);

Кроме этого в любое место программы могут быть
включены комментарии, при этом смысл программы не меняется. Комментарии
заключатся в фигурные скобки. Если в системе нет фигурных скобок, то вместо них
используются пары символов (* и *).

(*       ПРИМЕР1 КОММЕНТАРИЯ НА ПАСКАЛЕ    *)

{        ПРИМЕР2 КОММЕНТАРИЯ НА ПАСКАЛЕ    }

Организация и описание данных

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

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

Константы описываются следующим образом:

CONST имя1 = значение1; имя2 = значение2;

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

const  log = true;

rmax= 24; zk = c;

Раздел
“описание констант” в программе может отсутствовать, а раздел “описание
переменных” должен присутствовать тогда, когда в программе используется
хотя бы одна переменная. Выбор имен переменных желательно производить таким
образом, чтобы был понятен их смысл и назначение.

Операторы описания данных

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

Стандартные типы данных

Целый тип (INTEGER).

Для любой вычислительной машины значением переменной
этого типа должно быть целое число n, лежащее в диапазоне:

-MAXINT  <=   N   <=  MAXINT

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

Тип

Диапазон

Размер, байт

shortint

byte

integer

word

longint

-128…+127

0…255

 -32768…+327678

0…65535 -2147483648… +2147483647…

1

1

2

2

4

Над целыми числами кроме обычных арифметических и
стандартных операций могут выполняться:

– операции целочисленного деления и поиска остатка от
целочисленного деления:

15 div 4 = 3 13 mod 4 = 1

– операции поиска предыдущего и последующих значений
аргумента:

pred(9)  =   8         succ(-9) = -8

pred(-9) = -10       succ(9)  = 10

– функция позволяющая определить четность или
нечетность аргумента:

odd(7)  –  true

odd(6)  –  false.

Переменные целого типа описываются следующим образом:

var a, g, jh, gg: integer;

Вещественный тип (REAL)

Значением переменной этого типа является вещественное
число, заданное либо в естественной форме -6.7694

        или в экспоненциальной 5.6Е-2.

Вещественные переменные обладают двумя важными
характеристиками – диапазоном значений и точностью, которые определяются
структурными особенностями конкретной ЭВМ.

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

Тип

Диапазон

Значащие цифры

Размер, байт

real

single

double

extended

comp

-1.7e38…1.7e38

-3.4e38…3.4e38

-1.7e308…1.7e308

-1.1e4932…1.1e4932

-2*2^63…1…2*2^63

11…12 7…8

15…16

19…20

19…20

6

4

8

10

8

Тип comp содержит только целочисленные значения.

Для вещественных аргументов кроме перечисленных выше
функций могут использоваться стандартные функции преобразования значений
вещественного типа в значение целого типа :

– функция trunc вырабатывает целый результат путем
отбрасывания дробной части аргумента:

trunc(23.54) = 23

trunc(-3.54) = -3

– функция round вырабатывает целый результат путем
округления до ближайшего целого:

round(23.53) = 24

round(-3.53) = -4

        
функция int выделяет целую
часть числа:

int(23.54) = 23.0

int(-3.54) = -3.0

        
функция frac выделяет
мантиссу аргумента:

frac(23.54) = 0.54

frac(-1.67) = -0.67

Переменные вещественного типа описываются следующим
образом:

var ad, gs, fh, nn: real;

Булевский тип
(BOOLEAN)

Этот тип данных на языке Паскаль называется
логическим. Над логическими данными вычисляются следующие операции:

OR,   NOT  и        AND.

Логическими данными и операции над ними имеют важное
значение в информатике, так как позволяют ввести в расчеты элементы формальной
логики.

Так как значения true и false можно рассматривать как
упорядоченное множество, состоящее из двух элементов, то для этого типа данных
помимо succ и pred, определена функция ord, определяющая порядковый номер для
значений перечисляемого типа:

pred(false) = true  succ(true) = false

ord(false)  = 0       ord(true)  = 1

Переменные логического типа описываются следующим
образом: var w, y, z, vv: boolean;

Символьный тип (CHAR)

Символьными значениями переменной символьного типа
являются элементы конечного и упорядоченного набора символов. Набор символов
должен отвечать следующим минимальным требованиям:

– содержать буквы, упорядоченные в алфавитном порядке;

– содержать цифры, расположенные в порядке
возрастания;

– содержать символ пробел.

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

‘2’,’g’,’k’,’s’,’0′.

С данными символьного типа связаны функции:

– ord(символ) – дает порядковый номер символа в
упорядоченном массиве:

ord(‘?’) = 63

ord(‘5’) = 53

ord(‘I’) = 73

– сhr(номер) – дает символ, стоящий под указанным
номером в упорядоченном множестве символов:

chr(53) = ‘5’

chr(53) = ‘5’

ord(73) = ‘I’

К аргументам символьного типа применимы функции pred и
succ, которые выдают предыдущий и последующий символы, а также операции
отношения ( символ 1 считается больше символа 2, если его порядковый номер в
множестве символов больше сравниваемого):

pred(‘M’) = ‘L’

succ(‘M’) = ‘N’

Переменные символьного типа описываются следующим
образом:

var w, y, z, vv: сhar;

Строковый тип (STRING).

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

‘2gk’,  ‘s”0’, ‘Program”System”’.

Переменные строкового типа описываются следующим
образом:

var wf, yyy, zs, vev: string [10];

Описание массивов

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

имя: array  [
Nmin..Nmax ] of
тип;

При описании массивов большей размерности пределы
измерения должны отделяться друг от друга запятой:

имя: array [ Nmin..Nmax, Kmin..Kmax, Rmin..Rmax] of
тип;

Массивы описываются следующим образом:

var   fff:    array  [1..4, 1..4] of integer;

        sss:   array  [1..6] of real;

        ddd:  array  [1..11, 1..4, 1..55] of char;

        aaa:   array  [1..22, 1..11] of string;

Контрольные вопросы

1.  
Назовите основные элементы
языка?

2.  
Какие стандартные типы
бывают в Паскале?

3.  
Какие целые типы
существуют и их диапазон?

4.  
Какие значения принимают
булевские переменные?

5.  
Что за тип CHAR и
его значения?

  • Энциклопедия
  • Разное
  • Паскаль (язык программирования)

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

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

Программа на Паскаль требовала установленный порядок ввода комбинаций. Команды программы должны находится в таком порядке:

1. Название всей программы в целом.
2. Перечисление всех используемых модулей, либо серверов.
3. Основные переменные в формате var.
4. Основные команды и функции программы.

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

Доклад №2

Огромное количество языков программирования существует в наше время. Широкую известность получил Паскаль.

Паскаль – язык программирования на английском языке, созданный Никлаусом Виртом в 20 веке. Назван так этот язык программирования в честь Блеза Паскаля, который создал механическую машину, способную складывать пару чисел. Сам Никлаус Вирт является швейцарским ученым в области информатики, разработавшим не только Паскаль, но и некоторые другие языки программирования. Паскаль был представлен Виртом, как язык программирования, поддерживающий процедурный стиль программирования. Будучи достаточно простым и удобным в изучении, он используется на школьных уроках информатики. Однако далеко не всегда он был предназначен для этого, ведь в 20 веке его пытались использовать на практике. На нем создавались важные программы, а также Паскаль считался языком системного программирования. Программное обеспечение некоторых микрокомпьютеров было написано именно на нем. Этот язык программирования получил в свой адрес много критики за определенное количество недостатков. Керниган даже написал статью на тему «Почему Паскаль не является моим любимым языком программирования». В итоге разработчик все-таки исправил ошибки.

Как и программы на других языках, любая программа на языке Паскаль начинается с заголовка программы. Затем следует блок описания используемых данных. После него находится программный блок. В заголовке, конечно же, указывается название программы. Блок описания данных представляет собой описание констант и переменных с указанием их имен и типов. У программы может и не быть заголовка и блока описания данных. Однако программный блок – то, без чего не может существовать ни одна программа. Этот блок состоит из всех команд, которые нужны для решения какой-либо задачи.

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

У этого языка программирования есть множество достоинств:

1) Он бесплатный, поэтому является доступным для школьников;
2) Программы легко читаются и понимаются, благодаря чему подростки смогут разобраться в программировании и в том, как правильно писать код;
3) Применяется, чтобы решать огромное количество самых разных задач;
4) Поддерживает структурное программирование.

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

9 класс, кратко

Паскаль (язык программирования)

Паскаль (язык программирования)

Популярные темы сообщений

  • Творчество Лева Толстого

    Лев Николаевич Толстой – один из величайших писателей девятнадцатого века. Свой творческий путь Лев Николаевич начал с переезда в Москву, из известной в настоящее время Ясной Поляны.

  • Социализация личности

    Социализация, как термин, не имеет какого-либо конкретного и четкого определения в психологии. Все привыкли к общепринятому определению данного термина, как процесс некого формирования или становления личности,

  • ворчество Герберта Уэллса

    Уэллс Герберт – гениальный английский писатель и публицист, которому принадлежит выдающийся место среди не менее талантливых писателей.

  • Паукообразные

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

  • Паук Тарантул

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

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

Содержание

  1. Кто является разработчиком языка программирования Паскаль?
  2. Почему язык программирования паскаль считается универсальным?
  3. Синтаксис языка Pascal
  4. Алфавит Паскаля
  5. Структура программы на языке Pascal
  6. Язык программирования Паскаль в информатике
  7. Pascal ABC net

Кто является разработчиком языка программирования Паскаль?

Язык программирования паскаль был создан Никлаусом Виртом в 1970; вопреки расхожему мнению. Он не был исключительно учебным языком, а предназначался для практического применения.

Никлаус Вирт (нем. Niklaus Emil Wirth, род. 15 февраля 1934 года) — швейцарский учёный, специалист в области информатики, один из известнейших теоретиков в области разработки языков программирования. Профессор компьютерных наук Швейцарской высшей технической школы Цюриха (ETHZ), лауреат премии Тьюринга 1984 года. Создатель и ведущий проектировщик языков программирования Паскаль, Модула-2, Оберон.

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

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

Почему язык программирования паскаль считается универсальным?

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

Паскаль приобрел популярность в сфере преподавания и обучения по разным причинам:

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

Синтаксис языка Pascal

Синтаксис языка программирования — набор правил, описывающий комбинации символов алфавита, считающиеся правильно структурированной программой (документом) или её фрагментом. Синтаксису языка противопоставляется его семантика. Синтаксис языка описывает «чистый» язык, в то же время семантика приписывает значения (действия) различным синтаксическим конструкциям.

Алфавит Паскаля

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

Алфавит языка Pascal:

  • латинские прописные буквы (А, В, С, …, X, Y, Z);
  • латинские строчные буквы (а, Ь, с, …, х, у, z);
  • арабские цифры (0, 1, 2, …, 7, 8, 9);
  • специальные символы (знак подчёркивания; знаки препинания; круглые, квадратные и фигурные скобки; знаки арифметических операций и др.).

В качестве неделимых элементов (составных символов) рассматриваются следующие последовательности символов:

  • :=  — знак операции присваивания ;
  • >= и <=  — знаки ≥ и ≤;
  • { и }  — начало и конец комментария.

Служебные слова ( операторы )

and, end, nil, set, array, file, not, then, begin, for, of, to, case, function, or, type, const, goto, packed, until, div, if, procedure, var, do, in, program, while, downto, label, record, with, else, mod, repeat

Многие из этих слов зарезервированы в Паскале и используются как структуры программы.

Идентификатор — это имена переменных, процедур, функций, типов, констант и тд. Идентификатор составляется в Паскале по определенным правилам:

  • обязательно начинается с латинской буквы;
  • в идентификатор могут входить буквы, цифры и символ подчеркивания;
  • идентификатор состоит не более чем из 64 символов — значащими являются только первые 8 символов.

Структура программы на языке Pascal

Программа в Паскале состоит из 3-х частей :

  1. 1. Заголовок программы.
  2. 2. Раздел описания.
  3. 3. Раздел операторов.

Структура программы паскаль

Структура программы

Язык программирования Паскаль в информатике

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

По стандартам ФГОС на предмет информатики отводиться 1 час в неделю и 7-9 класс весь кур информатики всего навсего 103 часа. Кроме программирования есть и другие темы. В курсе информатики уже присутствует и робототехника, а часы наоборот уменьшаются.

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

Pascal ABC net

PascalABC.NET – это язык программирования Паскаль нового поколения, сочетающий простоту классического языка Паскаль, ряд современных расширений и огромные возможности платформы Microsoft .NET. PascalABC.NET разрабатывается под свободной лицензией LGPLv3 в первую очередь как язык программирования для сферы образования и научных исследований. Он вбирает в себя лучшее, что предлагают другие современные языки, такие как C#, Kotlin, Python, Haskell и другие.

PascalABC.NET включает бесплатную, простую и мощную среду разработки с подсказками по коду, автоматическим форматированием и образцами кода для начинающих.

PascalABC.NET – мощный язык с простым и логичным синтаксисом, хорошо понятным начинающим программистам. Это позволяет писать компактные, эффективные и понятные программы и делает данный язык идеальным выбором для обучения современному программированию в широком смысле: от учеников начальной школы до студентов профильных ИТ-направлений. Кроме того, он превосходно подходит как для создания консольных приложений малого и среднего размера, так и в качестве средства программирования «на каждый день».

Начать знакомство со средой программирования Pascal ABC

Министерство науки и образования Республики Казахстан

Костанайский колледж автомобильного транспорта

Отчет

По учебной практике по предмету

Основы алгоритмизации и программирования

Выполнила: учащаяся гр.2 Пр-8

Леонова Ю.

Костанай 2008

1. Введение

Цель: Закрепить и углубить теоретические знания языка программирования на практике, по следующим темам: линейный алгоритм, условный оператор (модуль CRT), циклы, графика, подпрограммы, множества, записи, строки, одномерные и двумерные массивы.

Задачи.1. Повторить теоретический материал.

2. Закрепить теоретический материал.

3. Решить предложенные задачи на языке Паскаль.

4. Правильно оформить предложенные задачи в отчет.

2. Обзор языка программирования.

2. История языка Pascal

Основные концепции языка были разработаны в 1967-1968г. профессором Николаусом Виртом (Niklaus Wirth). Стандарт языка был разработан им в 1974г. (PASCAL — User Manual and Report, ISO Pascal Standard Kathleen Jensen and Niklaus Wirth) совместно с Кетлин Йенсен (Kathleen Jensen). Паскаль достаточно быстро превратился из средства, предназначенного для обучения студентов программированию, в инструмент, который стали использовать для создания больших программных проектов.

В настоящее время действуют три стандарта языка. Первый из них — нерасширенный Паскаль (unextended Pascal) был разработан в 1983 году. Второй — Extended Pascal — содержит расширения, касающиеся модульного программирования (раздельная компиляция модулей, импорт-экспорт подпрограмм, интерфейсная часть и реализация), и дополнен рядом процедур и функций (прямой доступ к файлам, работа со строками и т д). Последний — объектный Паскаль (Object-Oriented Extensions to Pascal), в отличие от первых двух, формально не утвержден, но оформлен в виде отчета (ANSI Technical Report) в 1993г. Объектный Паскаль поддерживает классы, обладающие свойствами и методами, наследование классов, переопределение методов у потомков (полиморфизм) и ряд других атрибутов объектно-ориентированного программирования.

Алгоритмом называется точное и понятное предписание исполнителю совершить последовательность действий направленных на решение поставленной задачи.

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

Циклический алгоритм — это многократное повторяемый участок вычислений.

Перечислимый тип данных задается непосредственно перечислением всех значений, которые может принимать переменная данного типа. При описании отдельные значения указываются через запятую, а весь список заключается в круглые скобки. Например, Var Season: (winter, spring, summer, autum);

Temp: (23,24,25,26);

Строковый тип :

Строка — в общем случае это последовательность символов. Строка представляет собой особую форму одномерного массива символов, которая имеет существенное отличие. Массив символов имеет фиксированную длину (количество элементов), которая определяется при описании. Строка имеет две разновидности длины:

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

Для определения данных строкового типа в Turbo Pascal 7.0 введены стандартные типы String и PChar.

Условные операторы предназначены для изменения порядка выполнения инструкций программы, в соответствии с некоторым условием.

Оператор условия IF.

Он может принимать одну из следующих форм:

IF условие THEN оператор; ( неполная форма)

Условие задаётся переменной и её соотношением с некоторой константой или значением выражения. Если условие выполняется, то будет выполнен указанный оператор.

IF условие THEN оператор 1 ELSE оператор 2; ( полная форма)

Добавление к конструкции служебного слова ELSE позволяет выполнить определенные действия в случае, когда условие не выполняются.

Операторы цикла

Для выполнения некоторого количества повторяющихся действий целесообразно использовать операторы цикла.

Циклы со счетчиком

При использовании цикла со счетчиком следует задать переменную-счетчик. При этом надо помнить, что тип такой переменной должен быть скалярным: Integer, Char, Boolean, перечисляемый тип.

For <начальное значение счетчика> To <конечное значение> Do <тело цикла>;

Счетчик меняется от меньшего к большему с шагом 1

For <начальное значение счетчика> Downto <конечное значение> Do <тело цикла>;

Счетчик меняется от большего к меньшему с шагом 1

Циклы с предусловием

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

Оператор цикла с предусловием
while <условие> do <тело цикла>;

Выполнение оператора цикла с предусловием начинается с проверки условия, записанного после слова while. Если оно соблюдается, то выполняется <тело цикла>, а затем вновь проверяется условие и т.д. Как только на очередном шаге окажется, что условие не соблюдается, то выполнение <тела цикла> прекратится.

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

Циклы с постусловием.

Для программной реализации циклических процессов с неизвестным числом повторений существует ещё один оператор — оператор цикла с постусловием, который имеет следующий вид:

Оператор цикла с постусловием
Repeat
<оператор 1>;
<оператор 2>;
<оператор n>;
Until < условие>;

где Repeat (повторять), Until (до тех пор, пока).

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

Тип данных — это множество величин, объединенных определенной совокупностью доступных операций.

Одномерный массив — последовательность элементов. Число, которых фиксировано и которым присвоено одно имя.

Запись — это структура данных, состоящая из фиксированного числа компьютера, называется полями записи .

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

Строка — это последовательность символов ASCII (таблица кода). При использование в выражениях строка заключается в апострофы.

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

3. Специальная часть

3.1 Решение задачи

3.1.1 Постановка задачи

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

3.1.2 Таблица идентификаторов

Переменные тип Значения
1 n integer Количество членов геометрической прогрессии
2 b1, b2 real Первый и второй члены геометрической прогрессии
3 Sn real Сумма n членов геометрической прогрессии
4 q real Знаменатель прогрессии

3.1.3 Блок-схема

3.1.4 Программа

Program progressiy;

Var n: integer; b1, b2, Sn, q: real;

Begin

Writeln (‘введите n’);

Readln (n);

Writeln (‘введите 2 числа’);

Readln (b1, b2);

q: =b2/b1;

Sn: = (b1* (exp (n*ln (q)) — 1) / (q-1));

Writeln (Sn: 3: 0);

Readln;

End.

3.1.5 Результат работы программы

3.2 Решение задачи

3.2.1 Постановка задачи

Составить программу, проверяющую принадлежность точки с координатами (х, у) заштрихованной области.

3.2.2 Таблица идентификаторов

Переменные тип Значения
1 x, y Real Координаты точек

3.2.3 Блок-схема

3.2.4 Программа

program grafic;

var x,y: real;

begin

writeln (‘введите координаты точек’);

readln (x,y);

if (sqr (x) +sqr (y) >4) and (x>=-2) and (x<=2) and (y>=-2) and (y<=2)

and ( (x>0) and (y<0) or (x<0) and (y<0) or (x<0) and (y>0))

thenwriteln (‘принадлежит’) elsewriteln (‘не принадлежит’);

readln;

end.

3.2.5 Результат работы программы

3.3 Решение задачи

3.3.1 Постановка задачи

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

3.3.2 Таблица идентификаторов

Переменные тип Значения
1 n integer Возраст человека
2 i integer Месяц рождения человека
3 a integer Единицы
4 b integer Остаток от деления на 100
5 h integer Десятки
6. с integer Сотни
7 v integer Сумма квадратов цифр его возраста

3.3.3 Блок-схема

3.3.4 Программа

Programdata;

Uses crt;

Var i, n, a, b, c, v, h: integer;

Begin

Clrscr;

For n: =100 to 999 do

for i: =1 to 31 do

begin

a: =n mod 10;

b: =n mod 100;

h: =b div 10;

c: =n div 100;

v: =a*a+h*h+c*c;

if n=i+v then writeln (n,’ ‘, i);

end;

readln;

end.

3.3.5 Результат работы программы

3.4 Решение задачи

3.4.1 Постановка задачи

Нарисовать рисунок.

3.4.2 Таблица идентификаторов

Переменные тип Значения
1 Gd integer Графический драйвер
2 Gm integer Графический режим

3.4.3 Программа

Uses graph,crt;

Var gd,gm: integer;

Begin

gd: =0; gm: =0;

Initgraph (gd, gm,’ ‘);

setcolor (5);

Line (100, 200,250, 200);

Line (250, 200, 209,150);

Arc (157,183, 61, 195, 60);

Setfillstyle (0,3);

Floodfill (256, 200,5);

Ellipse (200, 135, 75, 233, 15, 20);

Ellipse (200, 135, 303, 75, 15, 20);

Ellipse (208, 139, 303, 91, 15, 24);

setfillstyle (1,8);

floodfill (220,145,5);

Arc (120, 200, 180, 0,10);

Setfillstyle (1,1);

Floodfill (125, 202,5);

Arc (120, 200, 180, 0, 15);

Arc (130, 200, 260, 0, 15);

Arc (200, 200, 180, 0,10);

setfillstyle (1,1);

Floodfill (125, 202,5);

Arc (120, 200, 180, 0, 15);

Arc (130, 200, 260, 0, 15);

Arc (200, 200, 180, 0,10);

Setfillstyle (1,1);

Floodfill (200, 202,5);

Arc (200, 200, 180, 0, 15);

Arc (210, 200, 260, 0, 15);

Line (150, 90, 150, 124);

Line (155, 90, 155, 123);

Line (150, 90, 155, 90);

Setfillstyle (1,1);

Floodfill (153, 100,5);

Arc (144, 83, 41, 310,10);

Arc (158, 83, 259, 126,10);

Setfillstyle (1,1);

Floodfill (144, 83,5);

Circle (144, 83,5);

Setfillstyle (1,2);

Floodfill (144, 83,5);

Circle (158, 83,5);

Setfillstyle (1,2);

Floodfill (158, 83,5);

Circle (255, 200,5);

Setfillstyle (1,4);

Floodfill (255, 200,5);

Setfillstyle (1,8);

Floodfill (200, 150,5);

Circle (215, 177,7);

Setfillstyle (1,9);

Floodfill (215, 177,5);

Setfillstyle (1, 14);

floodfill (121, 200,5);

readkey;

closegraph;

end.

3.5 Решение задачи

3.5.1 Постановка задачи

Даны первый член и разность арифметической прогрессии. Написать рекурсивную функцию для нахождения суммы n первых членов прогрессии.

3.5.2 Таблица идентификаторов

Переменные Тип Значение
1 Sn Real Сумма n первых членов арифметической прогрессии
2 n integer Количество членов арифметической прогрессии
3 A1,A2 Real Первый и второй члены арифметической прогрессии
4 d Real Разность прогрессии

3.5.3 Блок-схема

3.5.4 Программа

Program recursiy;

var A1,d,A2,Sn: real; n: integer;

function prog (n: integer): integer;

begin

if n=1 then prog: =A1 else prog: =A1+d* (n-1) +prog (n-1);

end;

begin

Writeln (‘введите n’);

readln (n);

writeln (‘введите первый и 2-ой член арифметической прогрессии’);

readln (A1, A2);

d: =A2-A1;

Sn: =prog (n);

writeln (Sn);

readln;

end.

3.5.5 Результат работы программы

3.6 Решение задачи

3.6.1 Постановка задачи

Дан двумерный массив. Удалить среднюю строку (строки).

3.6.2 Таблица идентификаторов

Переменные Тип Значение
1 a array заполнение двумерного массива
2 i,j integer Параметры цикла
3 n, m integer Размерность массива
4 k integer Количество элементов до среднего

3.6.3 Блок-схема

3.6.4 Программа

Var a: array [1. .100,1. .100] of integer;

i,j,m,n,k: integer;

begin

writeln (‘Введите разм. мас’);

readln (n,m);

randomize;

for i: =1 to n do

begin

for j: =1 to m do

begin

a [i,j]: =random (100);

write (a [i,j]: 3);

end;

writeln;

end;

writeln (‘После удаления’);

if n mod 2<>0 then begin k: =n div 2+1;

For i: =k to n-1 do

for j: =1 to m do

a [i,j]: =a [i+1,j] ;

for i: =1 to n-1 do

begin

for j: =1 to m do

write (a [i,j]: 3);

writeln;

end;

end

else

if n mod 2=0 then begin k: =n div 2;

For i: =k to n-2 do

for j: =1 to m do

a [i,j]: =a [i+2,j] ;

for i: =1 to n-2 do

begin

for j: =1 to m do

write (a [i,j]: 3);

writeln;

end; end;

readln;

end.

3.6.5 Результат работы программы

3.7 Решение задачи

3.7.1 Постановка задачи

Дан одномерный массив целых чисел произвольной длины. Заполните массив случайными числами до 100. Используя, оператор выбора, создайте меню, в котором при нажатии на клавишу производятся следующие действия:

1 — вычислить среднее геометрическое четных элементов массива;

2 — найти количество делителей максимального числа;

3 — вставить в массив два элемента с данными значениями: первый после минимального элемента, второй — перед минимальным элементом.

3.7.2 Таблица идентификаторов

Переменные Тип Значение
1 a array Заполнение одномерного массива
2 Max integer Максимальный элемент
3 Min integer Минимальный элемент
4 i integer Параметр цикла
5 N integer Размерность массива
6 k integer Количество делителей
7 m integer Выбор действия
8 s Real среднее геометрическое четных элементов массива
9 v, c integer два элемента вставляемые в массив
10 k1 integer Номер позиции перед (после) которой вставляем элемент
11 f integer Количество элементов, которые делятся на 2 без остатка
12 d integer Произведение всех элементов, которые делятся на 2 без остатка

3.7.3 Блок-схема

3.7.4 Программа

uses crt;

Var a: array [1. .100] of integer;

n, i,m,min,max,k,f,d,k1,c,v: integer;

S: real;

begin

clrscr;

randomize;

writeln (‘введите разм. массива’);

readln (n);

for i: =1 to n do

begin

a [i]: =random (101);

write (a [i]: 3);

end;

writeln;

writeln (‘введите номер операции программы’);

writeln (‘1-вычислить среднее гео-ое четных эл. мас’);

writeln (‘2-найти ко-во делителей max числа’);

writeln (‘3-вставить в массив: 1-ый после min эл,2-ой перед min эл’);

readln (m);

case m of

1: begin f: =0;

for i: =1 to n do

begin

if a [i] mod 2=0 then f: =f+1

end; writeln (f);

d: =1; s: =0;

for i: =1 to n do

begin

if a [i] mod 2=0 then d: =d*a [i] ;

end;

writeln (d);

if d=0 then s: =0 else s: =exp (1/f * ln (d));

writeln (‘ср. геом=’,S: 3: 3);

readln;

end;

2: begin

max: =a [1] ;

for i: =1 to n do

if a [i] >max then begin max: =a [i] ;

end;

for i: =1 to max do

if max mod i=0 then k: =k+1;

writeln (‘ко-во делителей max числа’,k);

readln;

end;

3: begin

writeln (‘введите 2 числа’);

readln (v,c);

min: =a [1] ;

k1: =1;

for i: =1 to n do

if a [i] <min then begin min: =a [i]; k1: =i; end;

writeln;

for i: =n downto k1 do

a [i+1]: =a [i] ;

a [k1]: =v;

for i: =n+1 downto k1+1 do

a [i+1]: =a [i] ;

a [k1+2]: =c;

for i: =1 to n+2 do

write (a [i]: 3);

readln;

end;

end;

end.

3.7.5 Результат работы программы

3.8 Решение задачи

3.8.1 Постановка задачи

Дан массив записей, содержащий сведения о расписании поездов: направление; фамилия, имя, отчество машиниста; время отправления поезда. Необходимо осуществить:

1. заполнение массива данными;

2. поиск поездов по фамилии, имени, отчеству машиниста;

3. редактирование времени отправления поезда;

4. удаление поездов по полю «Направление»;

5. сортировку по полю «Направление».

3.8.2 Таблица идентификаторов

Переменные Тип Значение
1 A array Заполнение массива
2 N integer Количество поездов
3 Nap string Поле направления
4 fio String Поле фамилии имя отчества
5 vy String Поле время отправления
6 i, j integer Параметры цикла
7 q integer Выбор действия
8 s1 string Новое время
9 x Rs Дополнительная переменная для сортировки
10 s String Время
11 w String Фамилия, Имя, Отчество машиниста
12 r String Направление поезда, которое удаляем
13 k Integer Номер удаляемой записи
14 f integer флажок

3.8.3 Блок-схема

3.8.4 Программа

type RS=Record

Nap: string [40] ;

fio: string [40] ;

vy: string [10] ;

end;

var a: array [1. .50] of RS;

n, i,j,q,k,f: integer; s,s1,w,r: string; x: RS;

begin

Writeln (‘введите kol poezdov’);

readln (n);

for i: =1 to n do

begin

writeln (‘введите Направление’,’ ‘, i,’ ‘,’поезда’);

readln (a [i]. Nap);

writeln (‘введите Ф. И.О. ‘,’ ‘, i,’ ‘,’машиниста’);

readln (a [i]. fio);

writeln (‘введите время’,’ ‘, i,’ ‘,’отправления’);

readln (a [i]. vy);

end;

writeln (‘введите номер операции программы’);

writeln (‘1-поиск поездов по фамилии, имени, отчеству машиниста’);

writeln (‘2-редактирование времени отправления поезда’);

writeln (‘3-удаление поездов по полю <Направление>’);

writeln (‘4-сортировку по полю <Направление>’);

readln (q);

case q of

1: begin

writeln (‘ведите Ф. И.О. машиниста ‘);

readln (w);

f: =0;

for i: =1 to n do

begin

if a [i]. fio=w then begin

writeln (‘Направление ‘,a [i]. Nap,’ ‘,’время ‘,a [i]. vy);

f: =1; end;

if f=0 then writeln (‘таких нет’);

end; end;

2: begin

writeln (‘введите время которое вы хотите поменять’);

readln (s);

writeln (‘введите время на которое вы хотите поменять’);

readln (s1);

for i: =1 to n do begin

if a [i]. vy=s then a [i]. vy: =s1;

end;

for i: =1 to n do

begin

writeln (i,’ ’,’машинист ‘,a [i]. fio,’ ‘,’Направление ‘,a [i]. Nap);

writeln (‘время ‘,a [i]. vy);

writeln;

end; end;

3: begin

writeln (‘введите Направление поезда, которое вы хотите удалить’);

readln (r);

for i: =1 to n do begin

if a [i]. Nap=r then

k: =i;

for i: =1 to n do

if i<>k then

writeln (i,’ ’,’машинист ‘,a [i]. fio,’ ‘,’Направление ‘,a [i]. Nap);

writeln (‘время ‘,a [i]. vy);

end;

end;

4: begin

for i: =1 to n-1 do

for j: =1 to n do

if a [i]. Nap>a [j]. Nap then

begin

x: =a [i] ;

a [i]: =a [j] ;

a [j]: =x;

end;

for i: =1 to n do

begin

writeln (i,’ ’,’машинист ‘,a [i]. fio,’ ‘,’Направление ‘,a [i]. Nap);

writeln (‘время ‘,a [i]. vy);

end;

end;

end;

readln;

end.

3.8.5 Результат работы программы

3.9 Решение задачи

3.9.1 Постановка задачи

Написать программу решения ребуса VOLVO+FIAT=MOTOR.

3.9.2 Таблица идентификаторов

Переменные Тип Значение
1 v, o, l, f, i, a, t, m, r 0. .9 Параметры цикла
2 dig 0. .9 Множество цифр
3 Sum longint Сумма VOLVO+FIAT
4 motor longint MOTOR

3.9.3. Блок-схема

3.9.4 Программа

Uses crt;

var

v, o, l, f, i, a, t, m, r: 0. .9;

dig: set of 0. .9;

sum, motor: longint;

begin

clrscr;

for v: =0 to 9 do begin

include (dig,v);

for o: =0 to 9 do

if not (o in dig) then begin

include (dig,o);

for l: =0 to 9 do

if not (l in dig) then begin

include (dig, l);

for f: =0 to 9 do

if not (f in dig) then begin

include (dig,f);

for i: =0 to 9 do

if not (i in dig) then begin

include (dig, i);

for a: =0 to 9 do

if not (a in dig) then begin

include (dig,a);

for t: =0 to 9 do

if not (t in dig) then begin

include (dig,t);

for m: = 0 to 9 do

if not (m in dig) then begin

include (dig,m);

for r: =0 to 9 do

if not (r in dig) then begin

include (dig,r);

Sum: =v*10000 + (o+f) *1000 + (l+i) *100 + (v+t) *10 + (o+t);

Motor: =m*10000+o*1000+t*100+o*10+r;

if sum = motor then

writeln (v,o,l,v,o,’+’,f, i,a,t,’=’, m,o,t,o,r);

exclude (dig,r)

end;

exclude (dig,m);

end;

exclude (dig,t);

end;

exclude (dig,a);

end;

exclude (dig, i);

end;

exclude (dig,f);

end;

exclude (dig,l);

end;

exclude (dig,o);

end;

exclude (dig,v);

end;

readln;

end.

3.9.5 Результат работы программы

3.10 Решение задачи

3.10.1 Постановка задачи

Дана строка символов s1, s2, …, sn. Известно, что среди s1, …, sn есть, по крайней мере одна запятая. Найти натуральное i такое, что si- последняя по порядку запятая.

3.10.2 Таблица идентификаторов

Переменные Тип Значение
1 v char запятая
2 s string Строка
3 i integer Параметр цикла
4 n integer Номер позиции

3.10.3 Блок-схема

3.10.4 Программа

uses crt;

var v: char;

s: string;

i,n: integer;

begin clrscr;

writeln (‘Vvedite stroky’);

readln (s);

begin v: =’,’;

for i: =1 to length (s) do

if s [i] =v then n: =i;

end;

writeln (n);

readln;

end.

3.10.5 Результат работы программы

Заключение

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

Список литературы

1. Немнюгин С.А. TurboPASCAL С-П Изд-во Питер 2000.

2. Фаронов В.В. TurboPascal 7.0.М. «Нолидж», 1999

3. Шаньгин В.Ф., Поддубная Л., серия ПО ЭВМ кн.7, М, ВШ, 1991

4. Васюкова Р.Д., Практикум по основам программирования, Язык ПАСКАЛЬ, М, ВШ, 1991

5. Новичков В.С., Алгоритмические языки в техникуме, ПАСКАЛЬ, М, 1990

Лекция №1

План:

  1. История развития языка Паскаль. Общие сведения о языке Паскаль.
  2. Структура программы на языке Паскаль.
  3. Понятие алгоритма.
  4. Выражения, оператор присваивания.
  5. Операторы ввода-вывода.

1. История развития языка Паскаль. Общие сведения о языке Паскаль

Язык программирования Паскаль был создан в 1970 году профессором Н. Виртом (Швейцария). Долгое время авторская версия языка служила и своеобразным стандартом для него. Не удивительно, что на разных ЭВМ стали появляться различные версии языка, несущие “отпечаток” взглядов реализаторов на язык программирования Паскаль. Только в 1979 году был подготовлен проект описания этого языка. Большую роль в стандартизации языка программирования Паскаль сыграл Британский институт стандартизации и рабочая группа, возглавляемая А. Эжжиманом. В результате их усилий появился Британский стандарт языка  программирования Паскаль BS 6192: 1982, который стал так же и международным стандартом.

В настоящее время одним из самых популярных систем программирования для операционной системы MS-DOS, ориентированных на язык Паскаль, является Турбо-Паскаль, разработанный известной фирмой Borland International и реализующий расширенную версию языка для персональных ЭВМ класса IBM PC. Турбо-Паскаль – это язык профессионального программирования, одна из особенностей которого состоит в наличии интегрированной среды, включающей ряд мощных программных средств подготовки, редактирования, компиляции и отладки программного обеспечения. К достоинствам Турбо-Паскаля можно отнести:

  1. простоту и естественность основных конструкций языка, что позволяет быстро его освоить и создавать алгоритмически сложные программы;
  2. возможность использования развитых средств представления структур данных, что обеспечивает удобство  работы как с числовой, так и с символьной информацией;
  3. соответствие языка структурному программированию, что делает программы наглядными и упрощает их разработку и отладку;
  4. наличие обширной библиотеки процедур и функций для работы как с текстовой, так и с графической информацией, что позволяет создавать достаточно сложные коммерческие программы с развитым удобным интерфейсом пользователя.

2. Структура программы на языке Паскаль

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

Program <имя программы>;  (заголовок программы, имя программы выбирается составителем программы самостоятельно)

Const <имя константы>=<значение константы> ;

        (раздел описания констант)

Var

<имя переменной1, имя переменной2, … >: <Тип1 переменных>;

<имя переменной1, имя переменной2, … >: <Тип2 переменных>;

 (раздел описания переменных, этот раздел необязателен в случае, если программа не использует никаких переменных)

Begin                                (начало программы)

<тело программы>        (последовательность команд (операторов), разделенных знаком “;”)

End.        (конец программы)

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

Любая программа на языке Паскаль начинается со слова Program и заканчивается точкой.

В разделе описания переменных перечисляются все переменные, используемые в программе, и их тип (целочисленные, дробные, символьные…). Имена переменных ни в коем случае не должны совпадать с  названиями операторов, типов переменных, именем программы.

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

Алгоритм должен быть как можно более правильным, наглядным, коротким.

Для решения каждого задания может существовать несколько алгоритмов. Например, требуется составить алгоритм для следующего задания.

Вводим с клавиатуры целое число х , если х=2, то делаем его равным 4, если х=4, то делаем его = 2, во всех остальных случаях оставляем х без изменения.

Алгогритм 1.

1)   Если х=2, то х=4.

  1. Если х=4, то х=2.

Пример:

Программа нахождения периметра прямоугольника.

Периметр прямоугольника находится по формуле S=2(a+b), где а и в – стороны прямоугольника.

Program perimetr;

Var

 P,a,b:Integer;(Периметр и стороны – переменные целочисленного типа)

Begin

    a:=25; (сторона а=25)

    b:=38; (сторона в=38)

    P:=2*(a+b); (вычисление периметра Р=2*(25+38)=126)

    Write(Р); (Вывод на экран значения Р)

End.

Первая строка – заголовок программы.  В третьей строке, в разделе описания переменных перечисляются все переменные, для них дана характеристика Integer, которая показывает, что эти переменные могут принимать только целочисленные значения. Затем между словами Begin и End располагаются операторы. Они указывают, какие действия необходимо выполнить. Первые два оператора присваивают переменным а и b их числовые значения. Третий оператор вычисляет значение 2*(а+b) и присваивает его переменной Р. Результат находится в памяти ЭВМ для вывода его на экран используется оператор Write.

3. Понятие алгоритма

При записи программы важно, чтобы операторы следовали в строго определенной последовательности. Так, в приведенном выше примере, мы не можем сначала вычислить периметр, а затем присвоить переменным a и b их значения, или вывести на экран значение периметра до его вычисления. Четко определенная последовательность действий называется Алгоритмом. Так, например, для нашей задачи алгоритм будет выглядеть следующим образом:

  1. Присваиваем значения переменным а и b.
  2. Вычисляем значение выражения 2*(а+b) и присваиваем его переменной Р.
  3. Выводим значение переменной Р на экран.
  4. Конец.

Другая задача.

На сковороде умещаются только две котлеты. Каждая сторона котлеты жарится 10 минут. Как за 30 минут сжарить 3 котлеты?

Запишем алгоритм решения данной задачи.

Пусть имеются три котлеты А, В, С со сторонами 1 и 2.

  1. Жарим сторону 1 котлеты А и сторону 1 котлеты В.
  2. Жарим сторону 2 котлеты А и сторону 1 котлеты С.
  3. Жарим сторону 2 котлеты В и сторону 2 котлеты С.
  4. Конец.
  1. В данном случае мы можем Конец.

Это самое простое решение на деле оказывается неправильным. Положим х=2. После первого шага алгоритма х станет равным 4, а значит после второго – 2.

Алгоритм 2.

  1. Если х=2, то х=4, переход на шаг 3.
  2. Если х=4, то х=2.
  3. Конец.

Этот алгоритм правильный, но его можно упростить еще, сделав на одну проверку меньше.

Алгоритм 3.

  1. Если 1<х<5, то х=6-х.
  2. Конец.

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

Можно записать ещё один алгоритм.

Алгоритм 4.

  1. Если x=2 или x=4, то x=4-остаток от деления 10 на х.
  2. Конец.

Такой алгоритм правльно решит задачу, но его не стоит применять, так как он абсолютно непонятен и не оптимален в вычислительном смысле.

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

Задание: Составить алгоритм вычисления корней квадратного двучлена.

4. Выражения. Оператор присваивания

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

Для обозначения исходных данных и результатов вычислений используются переменные, которыми могут быть не только любые буквы, но и последовательность символов из букв и цифр, которая начинается с буквы. Соответствующие исходные данные и результат вычисления называются значением переменной. Итак, переменная – это что-то, что имеет имя, тип и значение. Пока мы будем иметь дело с переменными, значениями которых являются числа. Числа в программе записываются в десятичной системе, вместо запятой пишется точка: 0, 56, -123, 3.14159263 и т.д. эти числа называют константами. Таким образом числовая переменная может принимать значение числовых констант.

Переменные и константы – простейшие частные случаи выражения. Более сложные выражения строятся из констант и переменных с помощью знаков операций. Для числовых выражений используют, например, операции сложения, вычитания, умножения и деления (+,-,*,/). Кроме того в выражениях могут быть использованы круглые скобки и некоторые функции.

При составлении выражений необходимо выполнять следующие правила:

  1. Записывать все выражения в строку. Двухэтажные выражения, а так же верхние и нижние индексы не допускаются.

Пример: ((а1*х1)-(а2*х2))/(х1-х2)

  1. Использовать скобки только одного вида – круглые. Применение квадратных и фигурных скобок запрещается, так как они имеют другой смысл. Так математическое выражение

a{b+c[d+e(f+g)]}

записывается в виде

                a*(b+c*(d+e*(f+g))).

  1. Нельзя записывать подряд два знака. Так, например, выражение а+в/-с следует записывать в виде а+в/(-с).
  2. Большие и сложные выражения лучше разбивать на несколько простых, а повторяющиеся действия лучше вычислять отдельно. Так, выражение (a+bx)-2(a+bx)+c(a+bx) лучше записать следующим образом:

Y=a+bx;

Z=y-2*y+c*y;

В языке Паскаль имеется много готовых встроенных функций. Такие встроенные функции называются стандартными. Программисту достаточно знать, как записывается функция и аргумент. Аргумент функции заключается в круглые скобки. Аргументом может быть любое выражение (как вы помните переменные и числа – это простейшие случаи выражений). Следует помнить, что в тригонометрических функциях аргумент может быть задан только в радианах. Если аргумент задан в градусах, то для его перевода в радианы необходимо воспользоваться формулой хπ/180.

Примеры некоторых стандартных функций.

Sin(x)-синус

Cos(x)-косинус

Sqrt(x)-корень квадратный

Sqr(x)-квадрат

Trunc(x)-отбрасывает дробную часть

Round(x)-округление до ближайшего целого числа.

Встроенные функции можно использовать в выражениях, например

Sqrt(x)+Sin(x-pi/2).

Таким образом, выражения строятся из переменных, констант, функций и операций над ними!

Для того, чтобы переменной присвоить значение выражения, используется оператор присваивания. Оператор присваивания имеет следующий вид:

<переменная>:=<выражение>;

Оператор присваивания присваивает переменной, стоящей в левой части, значение выражения, стоящего в правой части оператора присваивания.

Примеры:

a:=120;

b:=a+Sqrt(a);

i:=i+1;

5. Операторы ввода – вывода

Работа с компьютером всегда ведется в диалоговом режиме. Это означает, что пользователь вводит в компьютер данные и команды и видит на экране результат выполнения команды. Для того, чтобы ваша программа могла обеспечивать диалоговый режим и существуют команды ввода – вывода. Команды ввода позволяют пользователю вводить данные в компьютер. Существуют две команды ввода: Read и Readln.

1. Read(x1,x2,x3…);

При использовании этой команды пользователь вводит значения переменных x1,x2,x3… с клавиатуры и они отображаются на экране монитора.

2. Readln(x1,x2,x3…);

Данный оператор выполняет функцию аналогичную функции оператора Read с той лишь разницей, что при выполнении оператора Readln курсор на экране монитора после выполнения оператора переходит на новую строку.

Примеры:

Read(a);

Read(a,b,c);

Readln(x,y);

Операторы ввода Write и Writeln служат для вывода информации на экран монитора.

  1. Write(x1,x2,x3…);

В результате выполнения данного оператора значения переменных x1,x2,x3… будут выведены на экран монитора. Если нам необходимо вывести на экран какой-либо текст, то внутри оператора Write мы помещаем этот текст в апострофы:

X:=5;

Write(‘x=’,x);

В результате выполнения этих операторов мы получим на экране сообщение

x=5

  1. Writeln(x1,x2,x3…);

Аналогичен оператору Write за исключением того, что после выполнения оператораWriteln курсор переводится на одну строку вниз. Оператор Writeln может использоваться без каких-либо параметров – в этом случае после выполнения такого оператора, курсор просто перемещается на одну позицию вниз, так например выполнение последовательности команд

Writeln;

Writeln;

Writeln;

Writeln;

Writeln;

приведёт к тому, что курсор опустится на пять строк вниз.

Примеры:

Writeln(‘Hellow World!’);

Write(‘a=’,a,’ b=’,b,’ c=’,c);

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

X:=4;

Y:=3;

Writeln(‘Значение выражения=’,X+Sqr(Y));

мы получим на экране монитора следующее сообщение:

Значение выражения=13

Пример программы вычисления объемов цилиндра и конуса.

Объем цилиндра вычисляется по формуле V=pi*R2H, а объем конуса V=pi*R2*H/3, то есть объем конуса равен 1/3 от объема цилиндра. Так как значение pi=3.14159263 в программе неизменно, внесем его в раздел описания констант. Получим:

Program VOL;

Const pi=3.14159263;

Var

V1,V2:Real;             (Объем цилиндра и конуса. Real означает, что это вещественные числа)

R,h:Integer;                  (Радиус и высота – переменные целочисленные)

Begin

Write(‘Введите значения радиуса и высоты:’);

Readln(R,h);

V1:=pi*Sqr(R)*h;

V2:=V1/3;

Writeln(‘Объем цилиндра равен ’,V1);

Writeln(‘Объем конуса равен’, V2);

End.