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

| Возникновение и назначение языка Паскаль

Уроки 29 - 31
Возникновение и назначение языка Паскаль
Структура программы на языке Паскаль

(§ 11. Знакомство с языком Паскаль)
Работа с готовыми программами на языке Паскаль: отладка, выполнение, тестирование
Программирование на Паскале линейных алгоритмов

Знакомство с языком Паскаль





Возникновение и назначение Паскаля

После того как построен алгоритм решения задачи, составляется программа на определенном языке программирования.

Среди современных языков программирования одним из самых популярных является язык Паскаль. Этот язык разработан в 1971 году и назван в честь Влеза Паскаля - французского ученого, изобретателя механической вычислительной машины. Автор языка Паскаль - швейцарский профессор Никлаус Вирт.

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

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

Программа на Паскале близка по своему виду к описанию алгоритма на АЯ. Сравните алгоритм решения уже знакомой вам задачи деления простых дробей с соответствующей программой на Паскале:


Структура программы на Паскале

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

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

Program <имя программы>;

Раздел описания переменных начинается со слова Var (variables - переменные), за которым идет список имен переменных через запятую. Тип указывается после двоеточия. В стандарте языка Паскаль существуют два типа числовых величин: вещественный и целый . Слово integer обозначает целый тип (является идентификатором целого типа). Вещественный тип обозначается словом real . Например, раздел описания переменных может быть таким:

var a, b: integer; с, d: real;

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

Раздел операторов - основная часть программы. Начало и конец раздела операторов программы отмечаются служебными словами begin (начало) и end (конец). В самом конце программы ставится точка:

<операторы>

end .

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

Ввод исходных данных с клавиатуры происходит по оператору read (read - читать) или readln (read line - читать строку):

read(<список переменных>)

или readln(<список переменных>)

При выполнении команды ввода компьютер ожидает действий пользователя. Пользователь набирает на клавиатуре значения переменных в том порядке, в каком переменные указаны в списке, отделяя их друг от друга пробелами. Одновременно с набором данных на клавиатуре они появляются на экране. В конце нажимается клавиша <ВВОД> (). Разница в выполнении операторов readln и read состоит в том, что после выполнения ввода по оператору readln экранный курсор перемещается в начало новой строки, а по оператору read этого не происходит.

Вывод результатов происходит по оператору write (write - писать) или writeln (write line - писать в строку):

write(<список вывода>)

или writeln(<список вывода>)

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

Разница в выполнении операторов writeln и write состоит в том, что после выполнения вывода по оператору writeln экранный курсор перемещается в начало новой строки, а по оператору write этого не происходит.

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

<числовая переменная>:=<арифметическое выражение> 

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

Знаки основных арифметических операций записываются так:

Сложение, - вычитание, * умножение, / деление.

Правила записи арифметических выражений

Запись арифметических выражений на Паскале похожа на обычную математическую запись. В отличие от математики, где часто пропускается знак умножения (например, пишут 2А), в Паскале этот знак пишется обязательно: 2*А. Например, математическое выражение

А 2 + В 2 - 12С

на Паскале записывается так:

А*А + В*В - 12*С

Это же выражение можно записать иначе:

SQR(А) + SQR(В) - 12*C

Здесь использована функция возведения в квадрат - SQR . Аргументы функций всегда пишутся в круглых скобках.

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

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


Пунктуация Паскаля

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

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

Запятая (,) является разделителем элементов во всевозможных списках: списке переменных в разделе описания, списках вводимых и выводимых величин.

Текст программы заканчивается точкой .

Строгий синтаксис в языке программирования необходим потому, что компьютер является формальным исполнителем программы . Если, допустим, разделителем в списке переменных должна быть запятая, то любой другой знак будет восприниматься как ошибка. Если точка с запятой является разделителем операторов, то в качестве оператора компьютер воспринимает всю часть текста программы от одной точки с запятой до другой. Если программист забыл поставить «;» между какими-то двумя операторами, то компьютер будет принимать их за один с неизбежной ошибкой.

В программу на Паскале можно вставлять комментарии. Комментарий - это пояснение к программе, которое записывается в фигурных скобках. В комментариях можно использовать русские буквы. На исполнение программы комментарий никак не влияет.

Заметим, что в Паскале нет различия между строчными и прописными буквами . Например, для Паскаля тождественны следующие варианты записи: begin, Begin, BEGIN, BeGiN . Использование строчных или прописных букв - дело вкуса программиста.

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

Последовательность операторов представляет собой основную часть программы на языке Паскаль . Разделителем операторов в программе является символ «точка с запятой».

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

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

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

  • k:= k + 10; {* значение переменной k увеличивается на 10 *}

Рассмотрим работу оператора присваивания в данном примере пошагово:

  1. Из ячейки памяти с именем k выбирается текущее значение.
  2. К текущему значению прибавляется 10.
  3. Результат записывается в ту же самую ячейку памяти (предыдущее значение восстановить после новой записи невозможно!)

ВНИМАНИЕ: выражение должно быть совместимо по типу данных с переменной.

В PascalABC.NET определены также операторы присваивания со значками +=, -=, *=, /= . Действие этих операторов заключается в изменении значения переменной в правой части оператора с учетом обозначенной арифметической операции (перед знаком равенства) и значения в правой части. Например:

  • k += 100; {* увеличивает значение k на 100 *}
  • n -= 8; {* уменьшает значение n на 8 *}
  • m *= 10; {* увеличивает значение m в 10 раз *}
  • b /= 2; {* уменьшает значение b в 2 раза *}

Тип урока:

  • обучающий. Учащиеся знакомятся с новым оператором языка Паскаль;
  • повторение темы «Внутренняя память компьютера»;
  • закрепляющий приобретенные знания.

Тема урока: «Программирование на языке Паскаль. Оператор присваивания».

Цели:

  • Ввести понятие «Оператор присваивания».
  • Различать операции, допустимые для целых и вещественных чисел.
  • Правильно составлять и вычислять выражения с использованием оператора присваивания.
  • Писать программы для простейших задач.

Длительность урока: 1 час 30 минут.

ХОД УРОКА

Первый урок

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

Учитель и обучающиеся работают в форме «вопрос-ответ» (10 минут).

2. Учитель объясняет новую тему, используя мультимедийный урок-презентацию «Программирование на языке Паскаль. Оператор присваивания». Дается определение понятия «оператор присваивания», приводится общая и структурная форма оператора. Прежде, чем рассмотреть работу оператора присваивания, вспоминаем и повторяем тему «Оперативная память, свойства Оперативной памяти».

Сопровождается показом презентации. Приложение 1 (15 минут).

3. Обучающиеся работают самостоятельно, читая и конспектируя новую тему (урок-презентация предварительно записан на компьютеры обучающихся, вопросы для конспектирования определены учителем). Здесь же ученики могут познакомиться с текстами программ, в которых используется оператор присваивания Приложение 2 (20 минут).

Второй урок

4. Обучающиеся работают у доски, выполняя упражнения (12-15 минут).
1. Учитель проводит контроль знаний в форме теста. Программа-тест предварительно записывается на компьютеры обучающихся. Оценка выставляется программой. Приложение 5 (10 минут).
5. Ученики выполняют небольшую самостоятельную работу по карточкам, либо пишут и отлаживают программу на АЯП Паскаль, в которой используется оператор(ы) присваивания (учитель называет номера карточек с заданиями). За работу учащиеся получают оценку. Приложение 3 . Приложение 4 (15 минут).
Домашнее задание. Ученикам предлагается написать текст простой программы на АЯП Паскаль, в которой используется оператор(ы) присваивания (для тех учеников, которые не успели выполнить задание в классе).

Выводы:

  • Через блок 1 повторение темы предыдущего урока.
  • Через блоки 2, 3 и 4 дается и закрепляется новая тема «Оператор присваивания».
  • Через блоки 5 и 6 выполняется контроль знаний.

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

Урок № 1 (2 часа). Переменные и константы. Оператор присваивания

  1. Проверка домашнего задания.
  2. Новая тема.
  3. Домашнее задание.

Проверка домашнего задания.

2. Новая тема: «Переменныые и константы. Опреатор присваивания»

Переменная – это имя области памяти (размер области зависит от типа данных), в которой хранится значение, присвоенное переменной. Переменную можно сравнить с ящиком, в котором находится значение (лучшее сравнение с многоквартирным домом, т. к. из ящика можно извлечь что-то и это будет последним, т. е. ящик остаётся пустым, а переменная, даже если ею воспользовались, остаётся в области памяти.).
Константа – фиксированные одиночные числовые или текстовые значения, которые не могут изменяться в ходе выполнеия программы.
Оператор присваивания. Один из наиболее часто используемых операторов оператор присваивания. Общий вид оператора присваивания:

имя переменной:= выражение ;

Выражение может быть и конкретным значением (т.е. число целое или вещественное, например, 22 или 2.5, символьная величина: "ABC", логическая величина: TRUE или FALSE), и некоторым выражением (величины + операции над ними), результат которого будет присвоен переменной в левой части.

ПРИМЕРЫ:

PAG:= 10; (конкретное значение в виде числа);
X:= X + 1; (выражение);
C:= B; (имя переменной);
G:= ‘ПРИВЕТ‘; (конкретное значение символьное);
X:= (-A + SIN(Y) – 4 * B * X) / (2 * C); (математическое выражение);
Y:= TRUE; (конкретая логическая величина).

Отличие операции присваивания в математике и программировании.

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

А: = 5;
В: = 9

а) Результат операции А:= В;

б) Результат операции В:= А;

Далее ещё одно существенное различие между знаком равенства и оператором присваивания: А = А + 1;
В математике такое выражение просто бессмысленно, поскольку тождество ложно. Не существует таких числовых значений А, для которых оно было бы справедливо. В программировании это означает, что к значению, хранимому в ячейке А, прибавляется 1, и вновь получаемое значение заменяет старое в ячейке А. Например, если до выполнения этого оператора А имело значение 5, то после выполнения будет равно 6.

Следующее отличие: математическое выражение А + 9 – В = Х вполне обосновано и может означать, что при подстановке некоторых чисел вместо А и В в левую часть выражения вы получите Ч. В то же время в программировании это выражение лишено смысла, поскольку левая часть выражения должна содержать имя области памяти, которой присваивается значение, вычисляемое в правой части. Если же вы попытаетесь вставить такое выражение в свою программу, то получите сообщение об ошибке, поскольку имя переменной А + 9 – В не поймёт .

записать в общепринятой форме:

(– b + sqrt(sqr(b) – 4 * a * c))/(2 * a);
a/b * (c + d) – (a – b)/b/c + 1E – 8;

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

  • В.Б. Попов «TURBO PASCAL для школьниковI», «Финансы и статистика», Москва, 1996 г.
  • А.А. Черно в «Конспекты уроков информатики в 9 – 11 классах», «Учитель», Волгоград, 2004.
  • Д.М. Златопольский «Я иду на урок информатики. Задачи по программированию, 7 – 11 классы», «Первое сентября», Москва, 2001.

Оператор – предписание о выполнении конкретных действий. В языке программирования Паскаль содержится 11 операторов.

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

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

Формат записи: X:=A;
где: X – имя переменной;
A - выражение;
:= - знак присваивания.

Работа оператора: В процессе выполнения оператора вычисляется значение, в правой части выражения и присваивается имени переменной.

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

Пример 9.1. Записать программу вычисления функций:

y= cosa+lnb; n=k+1; r=ord(#65).

Var
a, b, y: real;
k, n: integer;
r: char;
t, v, u: Boolean;
* * *
y:= cos(a)+ln(b);
n:=k+1;
r:=ord(#65);
t:=(v and u)or(v and not u);
* * *
End.

Оператор перехода в Паскале

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

Формат записи: GoTo m;

где: GoTo – перейти к;
m - метка.

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

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

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

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

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

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

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

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

Rezult:=A div В;

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

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

А := 8;

S:= A * В ;

Ostatok:= A mod B;

Ratio:= A / B;

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

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

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

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

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

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

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

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

label Metka; {в раздале описания меток описали метку с именем Metka }

begin {основная программа}

{операторы основной программы}

{операторы основной программы помеченные меткой}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Условные операторы

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

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

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

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

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

    if <условие> then <оператор1>

else <оператор2>;

    if <условие> then <оператор>;

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

    ЕСЛИ<условие> ТО<оператор1> ИНАЧЕ<оператор2>

    ЕСЛИ<условие> ТО<оператор>

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

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

Во втором случае, если результат выражения 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 <оператор1> else <оператор2>

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

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

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

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

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

program Primer1;

А, В: integer;

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

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

if B=0 {Контроль ввода числа B }

then Writeln("Ha нуль делить нельзя") {Условие выполнено}

{Условие не выполнено}

Rezult:= А / В;

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

Вверх