Инфоурок Информатика Другие методич. материалыРеферат и презентация на тему 'Операторы Phyton и Pascal'

Реферат и презентация на тему 'Операторы Phyton и Pascal'

Скачать материал

Выберите документ из архива для просмотра:

Выбранный для просмотра документ Операторы питон и паскаль.docx

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

Оператор присваивания в языке Free Pascal состоит из двух символов: двоеточия и знака равенства. Символы := всегда пишут слитно. Пробелы допускаются перед символом двоеточия и после символа равенства.

В общем случае оператор присваивания имеет вид:

имя_переменной := значение;

где значение — это выражениепеременная, константа или функция. Выполняется оператор так. Сначала вычисляется значение выражения, указанного в правой части оператора, а затем его результат записывается в область памяти (переменную), имя которой указано слева. Например, запись a:=b означает, что переменной а присваивается значение выражения b.

Типы переменной a и выражения b должны совпадать или быть совместимыми для присваивания, то есть тип, к которому принадлежит b, должен находиться в границах типа переменной а.

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

3.3 Составной оператор

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

begin

оператор_1;

...

оператор_n

end;

Транслятор воспринимает составной оператор как один оператор.

 

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

В языке Free Pascal одна из основных конструкций алгоритма, разветвляющийся процесс, реализована двумя условными операторами: if и case. Рассмотрим каждый из них.

 

3.4.1 Условный оператор if..then..else

При решении большинства задач порядок вычислений зависит от определённых условий, например от исходных данных или от промежуточных результатов, полученных на предыдущих шагах программы. Для организации вычислений в зависимости от какого-либо условия в языке Free Pascal используется условный оператор if..then..else, который в общем виде записывается так:

Алгоритм условного оператора if..then..else


Рис. 3.8. Алгоритм условного оператора if..then..else

 

if условие then оператор_1 else оператор_2; где if..then..else — зарезервированные слова, условие — выражение логического типа2оператор_1 и оператор_2 — любые операторы языка Free Pascal.

Работа условного оператора организована следующим образом. Сначала вычисляется выражение, записанное в условии. Если оно имеет значение истина (True), то выполняется оператор_1. В противном случае, когда выражение имеет значение ложь (False), оператор_1 игнорируется и управление передаётся оператору_2.

Алгоритм, который реализован в условном операторе if..then..else, представлен на рис. 3.8.

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

write ( ’ x= ’ ); readln ( x );

write ( ’ y= ’ ); readln ( y );

if x=y then

writeln ( ’значение x равно значению y ’ )

else writeln ( ’значение x не равно значению y ’ );

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

if условие then

   begin

               оператор_1;

               оператор_2;

               ...

               оператор_n;

   end

else

   begin

               оператор_1;

               оператор_2;

               ...

               оператор_n;

   end;

Альтернативная ветвь else в условном операторе может отсутствовать, если в ней нет необходимости:

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

или

if условие then

   begin

               оператор_1;

               оператор_2;

               ...

               оператор_n;

   end;

В таком "усечённом" виде условный оператор работает так: оператор (группа операторов) либо выполняется, либо пропускается в зависимости от значения выражения, представляющего условие. Алгоритм этого условного процесса представлен на рис. 3.9.

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

write ( ’ x= ’ ); readln ( x );

write ( ’ y= ’ ); readln ( y );

c : = 0;

{Значение переменной c изменяется только при условии,}

{что x не равно y.}

if ( x<>y ) then c :=x+y;

{Вывод на экран значения переменной c}

{выполняется в любом случае.}

writeln ( ’Значение переменной с= ’, c );

Условные операторы могут быть вложены друг в друга. При вложениях условных операторов всегда действует правило: альтернатива else считается принадлежащей ближайшему if, имеющему ветвь else. Например, в записи он принадлежит оператору if с условием_1.

Алгоритм условного оператора if без альтернативной ветви else


Рис. 3.9. Алгоритм условного оператора if без альтернативной ветви else

 

if условие_1 then

   if условие_2 then

               оператор_А

   else оператор_Б;

оператор_Б относится к условию_2, а в конструкции

if условие_1 then

   begin

               if условие_2 then

                           оператор_А;

               end

   else оператор_Б;

 

Для сравнения переменных в условных выражениях применяют операции отношения : =, <>, <, >, <=, >=. Условные выражения составляют с использованием логических операций and, or и not. В языке Free Pascal приоритет операций отношения меньше, чем у логических операций, поэтому составные части сложного логического выражения заключают в скобки.

Допустим, нужно проверить, принадлежит ли переменная x интервалу [a, b]. Условный оператор будет иметь вид:

if ( x>=a ) and ( x<=b ) then...

Запись

if x>=a and x<=b then...

неверна, так как фактически будет вычисляться значение выражения

x>=(a and x)<=b.

 

3.4.2 Оператор варианта case

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

case выражение of

   значение_1 : оператор_1;

   значение_2 : оператор_2;

   ...

   значение_N : оператор_N

else

   альтернативный_оператор

end;

Здесь выражение — переменная перечислимого типа (включая char и boolean), значение_1, значение_2,..., значение_N — это конкретное значение управляющей переменной или выражение, при котором необходимо выполнить соответствующий оператор, игнорируя остальные варианты. Значения в каждом наборе должны быть уникальны, то есть они могут появляться только в одном варианте. Пересечение наборов значений для разных вариантов является ошибкой.

Оператор работает следующим образом. Вычисляется значение выражения. Затем выполняется оператор, помеченный значением, совпадающим со значением выражения. То есть, если выражение принимает значение_1, то выполняется оператор_1. Если выражение принимает значение_2, то выполняется оператор_2 и так далее. Если выражение не принимает ни одно из значений, то выполняется альтернативный_оператор, расположенный после ключевого слова else.

Альтернативная ветвь else может отсутствовать, тогда оператор имеет вид:

case выражение of

   значение_1 : оператор_1;

   значение_2 : оператор_2;

   ...

   значение_N : оператор_N;

end;

Кроме того, в операторе case допустимо использование составного оператора. Например:

case выражение of

   значение_1 : begin оператор_A; оператор_B; end;

   значение_2 : begin оператор_C; оператор_D; оператор_E; end;

   ...

   значение_N : оператор_N;

end;

 

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

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

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

В языке Free Pascal для удобства программиста предусмотрены три оператора, реализующих циклический процесс: while, repeat..until и for.

 

3.5.1 Оператор цикла с предусловием while..do

На рис. 3.24 изображена блок-схема алгоритма цикла с предусловием.

Оператор, реализующий этот алгоритм, в языке Free Pascal имеет вид:

while выражение do оператор;

Алгоритм циклической структуры с предусловием

Рис. 3.24. Алгоритм циклической структуры с предусловием

 

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

Работает оператор while следующим образом. Вычисляется значение выражения.

Если оно истинно (True), выполняется оператор. Выполнение цикла заканчивается, если условие ложно, после этого управление передается оператору, следующему за телом цикла. Выражение вычисляется перед каждой итерацией цикла. Если при первой проверке выражение ложно (False), цикл не выполнится ни разу.

Если в цикле надо выполнить более одного оператора, необходимо использовать составной оператор:

while условие do

   begin

               оператор_1;

               оператор_2;

               ...

               оператор_n;

   end;

Рассмотрим пример. Пусть необходимо вывести на экран значения функции y = e^{sin(x)}cos(x) на отрезке [0;\pi] с шагом 0.1.

Применим цикл с предусловием :

var x, y : real;

begin

   {Присваивание параметру цикла стартового значения.}

   x : = 0;

   {Цикл с предусловием.}

   while x<=pi do {Пока параметр цикла не превышает}

               {конечное значение, выполнять тело цикла.}

   begin

               {Вычислить значение y.}

               y:=exp ( sin ( x ) ) * cos ( x );

               {Вывод на экран пары х и y.}

               writeln ( ’ x= ’, x, ’    y= ’, y );

               {Изменение параметра цикла - переход к следующему значению x.}

               x:=x + 0.1;

   end; {Конец цикла.}

end.

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

x= 0; y=1

x= 0.1; y =1.0995

...

x= 3.1; y= -1.0415

 

3.5.2 Оператор цикла с постусловием repeat..until

Если в цикле с предусловием проверка условия осуществляется до тела цикла, то в цикле с постусловием условие проверяется после тела цикла. Сначала выполняются операторы, являющиеся телом цикла, после чего проверятся условие, если последнее ложно, то цикл повторяется. Выполнение цикла прекратится, если условие станет истинным.

Алгоритм циклической структуры с постусловием


Рис. 3.25. Алгоритм циклической структуры с постусловием

 

 

В языке Free Pascal цикл с постусловием реализован конструкцией

repeat

   оператор;

   until выражение;

или, если тело цикла состоит более чем из одного оператора

repeat

   оператор_1;

   оператор_2;

   ...

   оператор_N;

until выражение;

Выражение должно быть логическим.

Работает цикл следующим образом. В начале выполняется оператор, представляющий собой тело цикла. Затем вычисляется значение выражения. Если оно ложно (False), оператор тела цикла выполняется ещё раз. В противном случае цикл завершается, и управление передается оператору, следующему за циклом.

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

Если применить цикл с постусловием для создания подпрограммы, которая выводит значения функции y = e^{sin(x)}cos(x) на отрезке [0; \pi] с шагом 0.1, получим:

var x, y : real;

   begin

   {Присваивание параметру цикла стартового значения.}

   x : = 0;

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

   repeat {Начало цикла}

               y:=exp ( sin ( x ) ) * cos ( x );

               writeln ( ’ x= ’, x, ’   y= ’, y );

               x:=x + 0.1; {Изменение значения параметра цикла.}

   until x > pi; {Закончить работу цикла,}

               {когда параметр превысит конечное значение.}

   end.

 

3.5.3 Оператор цикла for..do

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

for параметр_цикла:=начальное_значение to конечное_значение do

   оператор;

for параметр_цикла:=конечное_значение downto начальное_значение do

   оператор;

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

Шаг изменения цикла for всегда постоянен и равен интервалу между двумя ближайшими значениями типа параметра цикла (при целочисленном значении параметра цикла шаг равен 1).

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

 

Алгоритм работы цикла for..do

Рис. 3.26. Алгоритм работы цикла for..do

 

Представление цикла for...do с помощью блок-схемы
Рис. 3.27. Представление цикла for...do с помощью блок-схемы

 

for параметр_цикла:=начальное_значение to конечное_значение do

   begin

               оператор_1;

               оператор_2;

               ...

               оператор_N;

   end;

 

3.5.4 Операторы передачи управления

Операторы передачи управления принудительно изменяют порядок выполнения команд. В языке Free Pascal таких операторов пять: goto, break, continue, exit и halt.

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

метка : оператор;

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

Операторы break и continue используют только внутри циклов. Оператор break осуществляет немедленный выход из циклов repeat, while, for, и управление передается оператору, находящемуся непосредственно за циклом. Оператор continue начинает новую итерацию цикла, даже если предыдущая не была завершена.

Оператор exit осуществляет выход из подпрограммы.

Оператор halt прекращает выполнение программы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Питон

 

Последовательность операторов

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

 

 a = 1
 b = 2
 a = a + b
 b = a - b
 a = a - b
 print a, b

При работе с Python в интерактивном режиме как бы вводится одна большая программа, состоящая из последовательных действий. В примере выше использованы операторы присваивания и оператор print.

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

Разумеется, одними только последовательными действиями в программировании не обойтись, поэтому при написании алгоритмов используется еще и ветвление:

 

 if a > b:
   c = a
 else:
   c = b


Этот кусок кода на Python интуитивно понятен каждому, кто помнит, что if по-английски значит "если", а else - "иначе". Оператор ветвления имеет в данном случае две части, операторы каждой из которых записываются с отступом вправо относительно оператора ветвления. Более общий случай - оператор выбора - можно записать с помощью следующего синтаксиса (пример вычисления знака числа):

 

 if a < 0:
   s = -1
 elif a == 0:
   s = 0
 else:
   s = 1


Стоит заметить, что elif - это сокращенный else if. Без сокращения пришлось бы применять вложенный оператор ветвления:

 

 if a < 0:
   s = -1
 else:
   if a == 0:
     s = 0
   else:
     s = 1


В отличие от оператора print, оператор if-else - составной оператор.

 

Циклы

Третьей необходимой алгоритмической конструкцией является цикл. С помощью цикла можно описать повторяющиеся действия. В Python имеются два вида циклов: цикл ПОКА (выполняется некоторое условие) и цикл ДЛЯ (всех значений последовательности). Следующий пример иллюстрирует цикл ПОКА на Python:

 

 s = "abcdefghijklmnop"
 while s != "":
   print s
   s = s[1:-1]


Оператор while говорит интерпретатору Python: "пока верно условие цикла, выполнять тело цикла". В языке Python тело цикла выделяется отступом. Каждое исполнение тела цикла будет называться итерацией. В приведенном примере убирается первый и последний символ строки до тех пор, пока не останется пустая строка.

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

Следующий пример читает строки из файла и выводит те, у которых длина больше 5:

 

 f = open("file.txt", "r")
 while 1:
   l = f.readline()
   if not l:
     break
   if len(l) > 5:
     print l,
 f.close()


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

В языке Python логическое значение несет каждый объект: нули, пустые строки и последовательности, специальный объект None и логический литералFalse имеют значение "ложь", а прочие объекты значение "истина". Для обозначения истины обычно используется 1 или True.

Примечание:

Литералы True и False для обозначения логических значений появились в Python 2.3.

Цикл ДЛЯ выполняет тело цикла для каждого элемента последовательности. В следующем примере выводится таблица умножения:

 

 for i in range(1, 10):
   for j in range(1, 10):
     print "%2i" % (i*j),
   print


Здесь циклы for являются вложенными. Функция range() порождает список целых чисел из полуоткрытого диапазона [1, 10). Перед каждой итерацией счетчик цикла получает очередное значение из этого списка. Полуоткрытые диапазоны общеприняты в Python. Считается, что их использование более удобно и вызывает меньше программистских ошибок. Например, range(len(s)) порождает список индексов для списка s (в Python-последовательности первый элемент имеет индекс 0). Для красивого вывода таблицы умножения применена операция форматирования% (для целых чисел тот же символ используется для обозначения операции взятия остатка от деления). Строка форматирования (задается слева) строится почти как строка форматирования для printf из C.

 

Функции

Программист может определять собственные функции двумя способами: с помощью оператора def или прямо в выражении, посредством lambda. Второй способ (да и вообще работа с функциями) будет рассмотрен подробнее в лекции по функциональному программированию на Python, а здесь следует привести пример определения и вызова функции:

 

 def cena(rub, kop=0):
   return "%i руб. %i коп." % (rub, kop)
 
 print cena(8, 50)
 print cena(7)
 print cena(rub=23, kop=70)


В этом примере определена функция двух аргументов (из которых второй имеет значение по умолчанию - 0). Вариантов вызова этой функции с конкретными параметрами также несколько. Стоит только заметить, что при вызове функции сначала должны идти позиционные параметры, а затем, именованные. Аргументы со значениями по умолчанию должны следовать после обычных аргументов. Оператор return возвращает значение функции. Из функции можно возвратить только один объект , но он может быть кортежем из нескольких объектов.

После оператора def имя cena оказывается связанным с функциональным объектом.

 

Исключения

В современных программах передача управления происходит не всегда так гладко, как в описанных выше конструкциях. Для обработки особых ситуаций (таких как деление на ноль или попытка чтения из несуществующего файла) применяется механизм исключений. Лучше всего пояснить синтаксис оператора try-except следующим примером:

 

 try:
   res = int(open('a.txt').read()) / int(open('c.txt').read())
   print res
 except IOError:
   print "Ошибка ввода-вывода"
 except ZeroDivisionError:
   print "Деление на 0"
 except KeyboardInterrupt:
   print "Прерывание с клавиатуры"
 except:
   print "Ошибка"


В этом примере берутся числа из двух файлов и делятся одно на другое. В результате этих нехитрых действий может возникнуть несколько исключительных ситуаций, некоторые из них отмечены в частях except (здесь использованы стандартные встроенные исключения Python). Последняя часть except в этом примере улавливает все другие исключения, которые не были пойманы выше. Например, если хотя бы в одном из файлов находится нечисловое значение, функция int() возбудит исключение ValueError. Его-то и сможет отловить последняя часть except. Разумеется, выполнение части try в случае возникновения ошибки уже не продолжается после выполнения одной из частей except.

В отличие от других языков программирования, в Python исключения нередко служат для упрощения алгоритмов. Записывая оператор try-except, программист может думать так: "попробую, а если сорвется - выполнится код в except". Особенно часто это используется для выражений, в которых значение получается по ключу из отображения:

 

 try:
   value = dict[key]
 except:
   value = default_value


Вместо

 

 if dict.has_key(key):
   value = dict[key]
 else:
   value = default_value
Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Реферат и презентация на тему 'Операторы Phyton и Pascal'"

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Специалист по экономической безопасности

Получите профессию

Бухгалтер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Получите профессию

Бухгалтер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 669 364 материала в базе

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 01.03.2018 3583
    • ZIP 79.4 кбайт
    • 63 скачивания
    • Оцените материал:
  • Настоящий материал опубликован пользователем Буланов Владислав Николаевич. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

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

    Удалить материал
  • Автор материала

    Буланов Владислав Николаевич
    Буланов Владислав Николаевич
    • На сайте: 8 лет и 4 месяца
    • Подписчики: 0
    • Всего просмотров: 12053
    • Всего материалов: 3

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Секретарь-администратор

Секретарь-администратор (делопроизводитель)

500/1000 ч.

Подать заявку О курсе

Курс повышения квалификации

Использование нейросетей в учебной и научной работе: ChatGPT, DALL-E 2, Midjourney

36/72 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Сейчас обучается 616 человек из 77 регионов
  • Этот курс уже прошли 976 человек

Курс повышения квалификации

Организация преподавания информационных систем и технологий в профессиональном образовании

36 ч. — 180 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Сейчас обучается 20 человек из 13 регионов
  • Этот курс уже прошли 76 человек

Курс повышения квалификации

Методика преподавания информатики в начальных классах

72 ч. — 180 ч.

от 2200 руб. от 1100 руб.
Подать заявку О курсе
  • Этот курс уже прошли 67 человек

Мини-курс

Управление проектами и стоимостная оценка в современном бизнесе

4 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Figma: продвинутый дизайн

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 63 человека из 24 регионов

Мини-курс

Созависимые отношения и способы их преодоления

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 43 человека из 21 региона
  • Этот курс уже прошли 34 человека