Проект закрыт, ничего заказать и купить нельзя! Существует лишь для ностальгии создателя!

Первая программа на паскале

Pascal 2016-02-07 в 23:10 4352

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

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

Для этого нужно узнать синтаксис языка программирования Pascal. Это мы будем делать на примере несложной программы.

Программа


program prim;

const
 k = 2;

var
 x1, x2, d: real;
 a, b, c: integer;

begin
 writeln('Vvedite a,b,c');
 readln(a, b, c);
 writeln();
 writeln(a, 'x^2 + ', b, 'x + ', c);
 d := sqr(b) - 4 * a * c;
 x1 := (-b + sqrt(d)) / (a * k);
 x2 := (-b - sqrt(d)) / (a * k);
 writeln('d = ', d);
 writeln('x1 = ', x1);
 writeln('x2 = ', x2);
end.

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

Начальные сведения

Если вы еще не поняли, то эта программа находит решение квадратного уравнения. На ее примере мы будем рассматривать особенности языка паскаль.

В этой программе 3 блока, у каждого блока есть свое назначение:

  • const - блок, отвечающий за константные значения в программе;
  • var - блок отвечающий за описание переменных основной программы;
  • begin и end. - между этими операторами помещается основной код программы.

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

Мы знаем, что сначала программа компилируется, а потом запускается. Так как анализ программы проходит сверху вниз, то блоки var и const должны быть обязательно перед begin, иначе в основной программе не будут определенны переменные.

Вы могли догадаться за что отвечают writeln() и readln(x).

  • readln(x) - позволяет заносить информацию в переменную.
  • writeln() - позволяет выводить информацию на консоль.

Константные значения нельзя вводить, но можно выводить.

Обо всех остальных нюансах рассказано ниже.

Основные символы

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

  • буквы латинского алфавита (прописные и строчные): A-Z, a-z, символ подчеркивания "_";
  • цифры: 0-9;
  • специальные символы:
    • " + - * / " (арифметические операции);
    • " = <> < <= > >= " (операции отношения);
    • " := " (оператор присваивания);
    • " . , : ; ( ) [ ] { } ^ # $ @ & " (ограничители).

Зарезервированные слова

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

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

and
array
begin
case
const
div
do
downto
else
end
file
far
for
forward
function
goto
implementation
in
interface
label
mod
nil
not
of
or
pointer
procedure
program
record
repeat
set
shl
shr
string
then
text
to
type
unit
until
uses
var
while
with
xor

В нашей программе использовались следующие служебные слова: begin, const, end, program, var.

Некоторые из зарезервированных слов достойны целой статьи, а некоторые можно просто пояснить:

  • begin - обозначает начало основной программы
  • end. - обозначает конец программы
  • program - задает название программы, не является обязательным оператором в отличие от предыдущих.
  • var - блок описания переменных
  • const - блок описания констант

Данные и их типы

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

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

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

Пример

Для представления чисел целого типа отводиться от 1 до 4 байт памяти и определены операции +, -, * и специальная операция целочисленного деления div (так как обычное деление может дать дробный результат).

Виды типов данных:

  • Простые:
    • Целые
    • Вещественный
    • Логический
    • Символьный
    • Перечислимый
  • Ссылочные
  • Структурированные
  • Тип объекта
  • Процедурные

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

Некоторые из простых типов можно отнести к порядковым. Данные порядковых типов могут принимать ограниченное множество упорядоченных значений. К порядковым относят все простые типы, кроме вещественного (так как количество вещественных чисел неисчислимо).

Идентификаторы

Идентификаторы - это имена, задаваемые программным объектам

Могут состоять только из цифр, латинских букв и знака "_" (подчеркивание). Однако цифра не может начинать имя.

Идентификаторы могут иметь любую длину, но если у двух имен первые 63 символа совпадают, то такие имена считаются идентичными (верно для Turbo Pascal, во Free Pascal - это ограничение снято).

Идентификатор не должен совпадать с каким-либо из зарезервированных слов.

Регистр букв не учитывается.

Примеры:

A, B, alfa, BETTA, d1, c100, _summa, __proizVEDENIE

summa, Summa, SuMmA, SUMMA - один и тот же идентификатор

Идентификаторы описываются в блоке var для дальнейшего использования в основной программе.

Константы

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

Примеры

  • -100, 0, 256, +123456 (целые константы);
  • $101, $ABCD, $EF, $10FF (шестнадцатиричные константы);
  • 3.1415, -2.71828 (вещественные в форме с фиксированной точкой);
  • 9.10956E-28, 1E7 (вещественные в форме с плавающей точкой);
  • true, false (логические);
  • 'A', '?', '#' (символьные);
  • 'Текст в апострофах', '1E7', 'program' (строковые);

Пример в программе


const
 k = 2;

Переменные

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

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

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

  • в пределах области определения имя должно быть уникальным, то есть каждому имени должен соответствовать только
  • один обозначаемый объект;
  • в качестве имен нельзя использовать ключевые слова;
  • длинные имена рекомендуется сокращать, например, за счет удаления гласных букв;
  • следует избегать схожих по вид имен (A1,AL,AI, BOB0).

Каждая переменная в Паскале обязательно должна относиться к какому-либо типу.

Тип сопоставляется переменной с помощью описания переменных в специальном разделе программы var (от англ. variable)

Пример


Var
 symbol: char; // переменная символьного типа
 alfa, betta: real; // 2 переменные вещественного типа
 a, b, c, d: integer; // 4 переменные целого типа}
 logic_flag: boolean; // переменная логического типа
 str: string; // переменная - строка

Выражения

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

Константы, переменные и функции, называемые операндами, должны всегда быть обязательно либо описаны в программе (var), либо иметь стандартные имена.

Операнды объединяются символами арифметических операций.

Порядок выполнения операций в выражении подчиняется следующим правилам:

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

Примеры

Примеры из программы

d := sqr(b) - 4 * a * c;

В этом примере мы считаем дискриминант (D=b2 - 4ac) и присваиваем (:=) получившееся значение переменной d.

x1 := (-b + sqrt(d)) / (a * k);
x2 := (-b - sqrt(d)) / (a * k);

В этих примерах мы считаем корни уравнения и присваиваем получившееся значение переменным x1 и x2.

Некоторые стандартные функции

abs(x) - Абсолютное значение (модуль) числа
arctan(x) - Арктангенс (в радианах)
cos(x) - Косинус (в радианах)
exp(x) - Экспонента (ex)
frac(x) - Взятие дробной части числа
int(x) - Взятие целой части числа
ln(x) - Натуральный логорифм (по основанию e)
odd(x) - Проверка нечетности числа
pi - значение числа пи
round(x) - Округление к ближайшему целому
trunc(x) - Округление вниз - к ближайшему меньешему целому
sin(x) - Синус (в радианах)
sqr(x) - Возведение в квадрат
sqrt(x) - Извлечение квадратного корня

Возведение в степень

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

x=elnx -> xa=(elnx)a -> xa=ealnx

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

exp(a*ln(x))

Эта формула иногда не подходит, например при возведении отрицательного значения или возведения в отрицательную степень, если вы используете Pascal ABC, то можете возводить в степень с помощью стандартной функции power(x,a)

Что же в итоге

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

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

Не можете справиться с заданием?
Специалисты нашего проекта помогут вам справиться с любыми заданиями по программированию!
Чтобы оставлять комментарии, необходимо войти или зарегистрироваться