Что делает оператор присваивания в паскале

Что делает оператор присваивания в паскале

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

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

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

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

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

Например, для оператора

сначала выполняется целочисленное деление значения переменной А на значение переменной В, а затем результат присваивается переменной Rezult.

Примеры применения оператора присваивания:

Ostatok := A mod B;

Оператор безусловного перехода (go to)

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

Напомним, что метка объявляется в разделе описания меток и может содержать как цифровые, так и буквенные символы.

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

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

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

• расстояние между меткой и оператором перехода на нее не должно превышать одной страницы текста (или высоты экрана дисплея).

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

Порядок выполнения работы

Изучить теоретические сведения по теме: “ Написание программы на Паскале с использованием операторов присваивания и безусловного перехода ”.

Получить индивидуальное задание у преподавателя и разработать программу в соответствии с поставленной задачей.

Показать работающую программу преподавателю.

Ответить на контрольные вопросы.

Основные элементы программирования.

Основные характеристики программы. Понятия языка, оверлеев, глобальных и локальных блоков.

Операторы языка программирования Паскаль. Оператор присваивания. Формат, примеры.

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

Лабораторная работа № 7

Написание программы на Паскале с использованием условных операторов и оператора выбора Case

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

Краткие теоретические сведения

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

В Турбо Паскале имеются два условных оператора: if и case.

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

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

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

В переводе с английского языка данные форматы можно определить как:

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

В первом случае, если значение выражения есть True (истина), выполняется , указанный после слова then (в переводе –“то”). Если результат вычисления выражения в условии есть False (ложь), то выполняется .

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

Пример фрагмента программы с оператором условия if:

if Ch=’N’ then Parol:= True

else Parol:= False;

if Parol = True then

if X = 100 then Write(‘Пароль и код правильные’)

Writeln(‘Ошибка в коде’);

В данном примере с клавиатуры считывается значение переменной символьного типа Ch. Затем проверяется условие Сh=’N. Если оно выполняется, то переменной Parol булевского типа присваивается значение True, если условие не выполняется, False. Затем с клавиатуры считывается значение кода X. Далее оператор if проверяет условие Parol = True. Если оно имеет значение True, то выполняется проверка введенного пароля оператором if X=100. Если условие Х=100 имеет значение True, то выводится сообщение "Пароль и код правильные", и управление в программе передается на оператор, следующий за словом end, если оно имеет значение False, выполняется составной оператор, стоящий после, слова else, который выводит на экран видеомонитора сообщение "Ошибка в коде", и вызывает стандартную процедуру Halt(1) для остановки программы.

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

if условие1 then if условие2 then else

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

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

Читайте также:  Всплывающее окно при клике

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

Для контроля вводимых значений делителя используем оператор условного перехода if . then . else.

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

Write(‘Введите значение делимого А: ‘);

Write(‘Введите значение делителя В: ‘);

then Writeln(‘Ha нуль делить нельзя’)

Writeln(‘Частное чисел ‘,А,’ и ‘ ,В, ‘ = ‘, Rezult);

Primary tabs

Forums:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Пишет в системе недостаточно памяти что делать

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

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

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

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

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

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

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

Чтобы узнать чему стало равно значение переменной $a$ можно вывести её значение в консоль, передав как аргумент в стандартную процедуру writelen() или 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$ значение и выведете на экран фразу с этим значением — используя указанные выше литералы (можно не только их, но их обязательно), например для:

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

      Оператор write или writeln в Pascal

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

    • Выводимый текст заключается в одиночные кавычки.
    • Для вывода значений переменных кавычки использовать нельзя, указывается просто идентификатор (имени переменной).
    • Если необходимо после вывода перейти на другую строку, то используется оператор writeln () .

      Результат:

      Рассмотрим примеры задач с использованием вывода Writeln в Pascal:

      Write(‘Сумма 5 + 6 = ‘,5+6);

      Результат: Сумма 5 + 6 = 11

      Ссылка на основную публикацию
      Чем обработать сколы на машине от ржавчины
      Получайте на почту один раз в сутки одну самую читаемую статью. Присоединяйтесь к нам в Facebook и ВКонтакте. 1. Если...
      Хорошие характеристики для ноутбука
      На сегодняшний день портативной электроникой никого не удивишь - персональным носимым компьютером имеют право именоваться не только планшеты, плееры и...
      Хорошие щетки стеклоочистителя отзывы
      Проверяем щетки стеклоочистителей. На испытаниях — 8 брендов. Сегодня можно определить к себе на службу дворника любой националь… простите, конструкции:...
      Чем опасно низкое напряжение в сети
      Эффект «проседания» входного напряжения ниже установленной нормы довольно распространенная проблема. Она более характерна для электроснабжения в сельской местности, но нередко...
      Adblock detector