Как объявлять переменные в паскале
Перейти к содержимому

Как объявлять переменные в паскале

#3 Типы данных в языке Pascal. Объявление переменных. Целые числа integer. Оператор присваивания. Инициализация в Паскаль

vedro-compota's picture

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

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

Деление данных на виды «по представлению в коде программы» на языке Pascal

Рассмотрим три вида представления данных в коде программы на языке Паскаль («виды представления данных«):

  1. В виде литералов — т.е. быть явно записаны в программе, например, как числа или строки в кавычках.
  2. По именам переменных. Переменная — это псевдоним (имя) для хранящихся в ней данных (например, числа или строки).

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

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

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

Подробнее о переменных мы поговорим далее в этом уроке.

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

Подробнее о выражениях мы поговорим далее.

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

  • или к переменным
  • или к литералам
  • или к результатам выражений

Сильная типизация

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

Типы данных в Pascal

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

  1. integer — целые числа.
  2. real — вещественные числа.
  3. boolean — логический тип данных (значения типа да/нет, истина/лож).
  4. char — символьный тип.
  5. string — строковый тип.

В этом уроке мы будем говорить об понятия общих для всех типов данных на примере конкретного типа данных — integer (целые числа).

Чем отличаются «виды представления данных» от типов данных

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

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

Объявление переменных

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

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

  1. Имя переменной.
  2. Тип переменной.

Объявление переменных происходит после ключевого слова var, до до тела программы.

В общем виде объявление переменной можно записать так (как схему):

Пример объявления переменных по одной:

То есть сначала идёт имя переменной, потом двоеточие, а потом один из типов данных (integer, string или иной — смотря какой требуется).

Объявление переменных списком

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

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

В этом уроке мы поговорим о типе integer и рассмотрим примеры работы с этим типом данных.

Объявление целочисленных переменных

Integer — тип данных соответствующий целым числам.

Объявим переменную такого типа:

Можно объявить несколько переменных немного по-разному:

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

Оператор присваивания

Оператор — это знак операции, например знак суммы это «$+$».

Оператор присваивания обозначается знаком (из двух символов):
$:=$
Этот оператор позволяет записывать значение в переменную («запоминать это значение в переменной»), схема его работы такова:

Или, опять же схематично:

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

Присваивание переменным литералов и вывод значений переменных на экран

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

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

Целый тип также поддерживает ноль и отрицательные значения:

Присваивание значений одних переменных другим переменным

Можно присваивать одним переменным значение других, например:

Вывод значений переменных на экран

Чтобы узнать чему стало равно значение переменной $a$ можно вывести её значение в консоль, передав как аргумент в стандартную процедуру writeln() или write(). Тогда наш код будет выглядеть так:

Что мы получим в консоли? Запустите код, объявив обе переменные и оформив тело программы (его содержимое это и есть последние 3 строчки).

Переменные тоже можно передавать во writeln() в любом количестве, разделяя запятой, например две шутки:

в том числе и вперемежку с литералами, например символьными:

Присваивание переменным результатов выражений

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

  1. $+$ суммы (сложения)
  2. $-$ разности (вычитание)
  3. $*$ произведения (умножение)

— так как эти операции возвращают тип integer. Операцию же деления $/$ использовать нельзя, так она возвращает другой тип — real (вещественные числа). В Паскале любая попытка присвоить переменной данные другого типа приводит к ошибке («падению» программы).

Что определяет тип арифметических выражений

Также в выражения, значения которых можно присваивать переменным типа integer должны входить только:

  • целочисленные литералы
  • или целочисленные переменные.

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

  1. типом операций (допустимые перечислены выше)
  2. типом операндов. Операнды — это аргументы операций, подобно аргументам процедуры на их
    основе производятся какие-то действия. Но операнды операций, в отличие от аргументов процедур, записываются не в скобках, а справа и слева от знака операций, так как мы это делаем в математических выражениях:

Таким образом, допустимы выражения:

А также выражения с участием других переменных:

Работа с результатом выражений

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

  1. Присваивать их значения переменным, например: a := 22 + 3* 999;
  2. Делать одни выражения частью других (в этом случае части называют подвыражениями), например сделаем предыдущее выражение подвыражением:

Подвыражение — это любая часть основного выражения, в которой есть хотя бы один оператор (как и выражение всегда обладает каким-то возвращаемым значение известного типа). Например:

Это подвыражение выражения:

Во write() и writeln() также можно передавать любое количество аргументов-выражений, а также аргументов другого вида:

Инициализация переменной


Инициализация переменной
— это первое присваивание какого-то значения переменной. Это может быть:

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

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

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

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

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

— то есть (во время выполнения программы) после её выполнения, например:

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

Разбор практических примеров

Пример №1

У вас есть целочисленная переменная $a$ и два строковых литерала:

и второй:

Присвойте переменной $a$ значение и выведете на экран фразу с этим значением — используя указанные выше литералы (можно не только их, но их обязательно), например для:

Должно выводиться:

Начнём писать код, в теле программы:

— таким образом мы выполнили первое требование задачи, присвоив значение переменной. Далее от нас хотят, чтобы программа выводила фразу, где число яблок зависит от значения переменной $a$ (а точнее равно ему), при этом про число груш ничего не сказано.
Второй момент — необходимо использовать литералы в точности так как они приведены в условии, что ж попробуем вывести фразу, используя значение переменной и указанные литералы:

— раз про груши ничего не сказано, то их число выводим просто в составе строкового литерала (оно не будет меняться пока мы не изменим сам литерал), а вот число яблок передаём в процедуру как значение переменной $a$.
Заметьте, что литерал:
‘ и 8 груш’
мы начали с пробела, чтобы при выводе он не «склеился» со словом «яблок«.

Запустите последний код. Чего-то там не хватает? А именно — в консоли мы получим:

— почему склеилось имя и значения? Чтобы понять это нужно внимательно посмотреть на код вызова процедуры:

— как мы можем видеть, здесь в конце первого аргумента-литерала нет пробела, а значит значение переменной $a$ (которое есть само по себе просто число, а значит содержать пробелов не может) просто выведется вплотную к первому аргументу. Чтобы исправить эту ситуацию, можно было бы изменить первый литерал, добавив в его конец символ-пробел:

НО: таким образом мы бы не следовали строго условию задачи использовать указанные строковые литералы (‘У Коли’ и ‘ яблок’), так как фактически

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

— что и будет подходящим вызовом процедуры writeln() для решения задачи.

Пример №2

Пусть у вас есть задача:

Васе $m$ лет, а Паше $k$ лет. Напишите программу, в которая считает разницу между возрастом Васи и Паши (то есть выясняет насколько Вася старше Паши).
Конкретные значения возрастов этих двух человек задайте в коде в виде двух переменных, которым присвойте целые численные значения (используя целочисленные литералы). Результат запишите в третью переменную и выведите значение на экран.

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

Далее разницу их возрастов просят записать в третью переменную, что ж сделаем и это:

В самом конце нас просили вывести значение разницы на экран, сделаем и это используя вызов стандартной процедуры writeln(), в качестве пояснения пользователю передав строковый литерал как аргумент перед вторым аргументом-переменной:

То есть в данный момент мы имеем код:

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

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

Видео-пояснения

К этому уроку есть следующие видео:

Задачи для самостоятельного решения

Теоретические вопросы:

Объясните что здесь происходит.

И ещё один вопрос:
Будет ли работать код:

Объясните что здесь происходит.

Два задания к этому коду:

  • Ответьте на вопросы в комментариях письменно.
  • Запустите этот код, предварительно объявив используемые переменные, и выведите в консоль с write() или writeln() значения переменных, в строках, где в комментариях к коду задан вопрос.
  • Запишите строку, в которой с помощью одного writeln() выводятся результаты трёх разных (любых) арифметических выражений.
  • Сделайте то же самое, но выводя уже три переменные, каждой из которых предварительно присвойте значение одного из арифметических выражений.

Задачи:

(напишите код и продемонстрируйте его работу):

двумя способами (чтобы в консоли получилось оба варианта):

  • в столбик
  • в строчку, разделив пробелами

Подсказка: если не получается решить самостоятельно и/или есть желание посмотреть на другие варианты решения — смотрите этот разбор.

Присвойте переменной $a$ значение и выведете на экран фразу с этим значением — используя указанные выше литералы (можно не только их, но их обязательно), например для:

Подсказка: если не получается решить самостоятельно и/или есть желание посмотреть на другие варианты решения — смотрите этот разбор.

Переменные в Паскаль

Переменные в Паскаль

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

Для простоты понятия переменной , мы будем представлять её в качестве некой коробки , которая в свою очередь имеет свое имя ( адрес , по которому мы будем ссылаться на неё ) и значение внутри «коробки» ( переменной ). И в дальнейшем свой тип.

Переменная

В данном случае мы имеем некую переменную с именем «a» , значение которой принимает число 17. В паскале такое выражение записывается так a:= 17;. Обратите внимание на знак := ( двоеточие и равно , означает присвоить ) пробелы между ними и перед ставить не нужно.

Следует заметить , что имена переменных могут состоять из отдельных слов , например age:= 21; или my_age:= 21;. В названии переменных можно использовать латинские буквы , арабские цифры , а также символ подчеркивания _ . Использовать цифры в начале переменной нельзя ! ( 21age:= 21; ).
Переменные name и NaMe совершенно одинаковые , то есть паскаль не обращает внимания на регистр переменных.

Две переменные

Как видно из картинки выше , переменные могут нести в себе не только целые значения ( integer ), но и вещественные и строковые и некоторые другие.

a:= 3.5; — Вещественная переменная real
b:= «Hello»; — Строковая переменная string

Целочисленный тип переменной

Вещественный тип переменной

Вещественные переменные несут в себе нецелые числа . Например 3.5 , 2.7 . 1/2 тоже является вещественным значением и равна 0.5

Пример объявления такой переменной :

Строковой тип переменной

Строковые переменные несут в себе символы или последовательность символов. Значение такой переменной строго записывается в кавычках. Например b:= «hello»;

Пример объявления такой переменной :

Существуют ещё два типа переменных . Логический ( boolean ) и символьный ( char ).
Переменные логического типа имеют только два значения true и false , а переменные символьного типа несут в себе только один символ. ( Явная схожесть с строковых типом , однако в строковой переменной можно использовать сразу несколько символов , в отличии от символьного , в котором можно использовать только один символ )

Пример объявления символьной переменной :

Переменные имеют свою диапазон значений , к примеру переменная типа integer (целочисленная) не может превышать значение 32767 или быть меньше чем -32768.

Посмотреть таблицы с названием типов и их диапазонами можно здесь.

Все переменные объявляются в блоке var ( между словами var и begin ).

Как работают переменные

Как объявляются переменные ?
Вначале пишем имя своей переменной , например «a» далее следует задать тип нашей переменной . Это зависит от того , какой мы хотим её видеть. Например для хранения вашего имени в переменной , нам понадобится тип string. А для возраста тип integer.
Записывается это так — a:integer; Один и тот же тип можно задать нескольким переменным сразу . Например a,b,c:real;
Следует помнить о том , что каждая переменная до того , как мы присвоим ей какое-либо значение , имеет значение равное 0

Операции с переменными

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

Три переменные

Как видно на картинке , целочисленная переменная «a» имеет значение 10 , а целочисленная переменная «b» имеет значение 7 . Значение переменной «c» равно разнице «a и b» , проще говоря равно 3.

Остальные арифметические операции выполняются аналогично . Умножение заменяется знаком * , а деление / .

При таком взаимодействии переменных, большое внимание следует уделять типам переменных . Так к примеру существуют две переменные «a и b» , «a» равно 1 , «b» равно 2 . Переменная c равна частному «a на b» ( a/b ). В таком случае переменная «c» принимает вещественный тип.

Команды ввода и вывода на экран :

Для того , чтобы вывести переменную на экран нам понадобится команда writeln();.
Для того , чтобы ввести значение некоторой переменной через клавиатуру , нам понадобится команда readln();

Вывод на экран значения переменной «name» осуществляется так — writeln(name);.
Запись значения переменной с клавиатуры осуществляется так — readln(name);.

Остальные операции и функции с переменными вы можете посмотреть здесь.

Отличие writeln() от write()

Многие задаются таким вопросом : В чем отличие команды writeln() от команды write(). Отличий совсем немного , но они есть.

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

В случае , когда мы используем команду write() , последующий текст не переводится.

Наглядный пример работы данных команд :

program mypascal;
begin

write(‘Привет ‘);
writeln(‘ друг !’);
write(‘Как твои дела ?’);

На экран будут выведены две строчки. В первой строке будет написано » Привет друг ! «. Во второй строке будет написано «Как твои дела ?».

Отличия команды readln() и read() аналогичны.
Write — писать ; ln ( line ) — линия.

Ввод данных с клавиатуры в паскаль

Переменные в Паскаль Ввод данных с клавиатуры в паскаль

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

типы данных в паскаль

Чтобы использовать переменные в Паскаль их необходимо объявить в начале программы по формату
var название_переменной: тип_переменной;
Чтобы присвоить переменной в Паскаль значение необходимо использовать оператор присваивания двоеточие и равно :=
Чтобы вывести значение переменной в Паскаль используется оператор
write (переменная);
Пример программы на Паскаль в которой переменным присваивается значения и они выводятся на экран
var a: string;
var b: integer;
begin
a := 'Строковая переменная ';
b := 12;
write(a, b);
end.
Для ввода данных в Паскаль используется команда
read(переменная);
При выполнении этой команды программа в pascal запросит данные, их нужно ввести в графу «Ввод данных». После этого введённые данные будут записаны в переменную.
Как и в случае в write() , можно использовать команду readln() , тогда после того, как данные были введены, будет осуществлён переход на следующую строку.
Пример программы на Паскаль в которой вводятся две переменные с клавиатуры и выводится на экран их сумма
var a, b: integer;
begin
write('Введите первое число. ');
readln(a);
write('Введите второе число. ');
readln(b);
write(a + b);
end.
Пример программы на Паскаль, запрашивающей имя и фамилию, затем приветствующую по имени и фамилии.
var name, surname: string;
begin
writeln('Введите Ваше имя.');
readln(name);
writeln('Введите Вашу фамилию. ');
readln(surname);
write('Здравствуйте, ', name, ' ', surname, '.');
end.

Перейти к содержанию Следующая тема Условия в Паскаль

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *