Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Операторы цикла в языке Паскаль

Содержание

Операторы ветвления К операторам, позволяющим из нескольких возможных вариантов выполнения программы (ветвей) выбрать только один, относятся if и case.Условный оператор ifОператор if выбирает между двумя вариантами развития событий:if then [else ]
Условный и сложный операторы . Операторы цикла. Массивы. Операторы ветвления    К операторам, позволяющим из нескольких возможных вариантов Условный оператор if работает следующим образом:Сначала вычисляется значение - это может быть Вложенный оператор Ifif i>0 then if s>2 then s:=1else else s:=-1; if i>0 then Begin if s>2  then s:=1;endelse s:=-1; Оператор выбора caseОператор case позволяет сделать выбор между несколькими вариантами:case of Varoperation:Char;x,y,z:real;stop:Boolean;……….Case operatoin of‘+’: z:=x+y;‘-’: z:=x-y;‘*’: z:=x*y;‘/’: z:=x/y;ElseStop:=true;End; дополнительные правила, относящиеся к структуре оператора Case :Переключатель должен относиться только к Пример оператора выбора:case symbol of  'a'..'z', 'A'..'Z'  : writeln('Это латинская Массивы  Массивы представляют собой ограниченную упорядоченную совокупность однотипных величин. Каждая отдельная Описание массиваДля того чтобы задать массив, необходимо в разделе описания переменных (var) Нумерация компонент массива   Не обязана начинаться с 1 или с допустимы следующие описания массивов:type charrr = 'a','c'..'z'; (- отсутствует символ Тип компонент массива может быть любым:var a4: array[10..20] of real; - массив Для краткости и удобства многомерные массивы можно описывать и более простым способом:var Общее ограничение на размер массива - не более 65 520 байт - Для ввода или вывода массива в список ввода или Первый способ - с использованием типизированных констант, например:    type При инициализации двумерных массивов значения компонент каждого из входящих в него одномерных Обращение к компонентам массиваМассивы относятся к структурам прямого доступа. Это означает, что Примеры использования компонент массива:a2['z']:= a2['z']+1;a3[-10]:= 2.5;a3[i+j]:= a9[i,j]; Примеры задания массивов типизированными константами:type mass = array[1..3,1..2] of byte;const a: array[-1..1] Операторы цикловДля того чтобы обработать несколько однотипных элементов, совершить несколько одинаковых действий for-to и for-downtoВ случае когда количество однотипных действий заранее известно (например, необходимо Цикл for-to работает следующим образом:вычисляется значение верхней границы last; переменной i присваивается какое количество раз отработает цикл for-to в каждом из трех случаев:first < Декрементный цикл с параметром аналогичный вариант цикла for, который позволяет производить обработку Цикл for-downto работает следующим образом:переменной i присваивается значение first; производится проверка того, while и repeat-untilЕсли заранее неизвестно, сколько раз необходимо выполнить тело цикла, то Замечание: на каждой итерации циклы for и while выполняют только по одному Последовательности действий при выполнении этих циклов таковы:Для while:1. Проверяется истино ли .2. break и continue Существует возможность прервать выполнение цикла (или одной его итерации), Оператор безусловного перехода gotoпри всей его нежелательности все-таки существует ситуация, когда предпочтительно Вывод массива, удобный для пользователяЗадача. Распечатать двумерный массив размерности MxN удобным для Как с помощью цикла можно ввести значения элементов с клавиатуры:For I:=1 to Как присвоить значения элементам массива или как заполнить массив с помощью датчика Как подсчитать сумму значений его элементов:S:=0For I:=1 to n dobeginS:=s+a[i];Writeln(‘сумма элементов массива = ‘,s);Readln;end;
Слайды презентации

Слайд 2 Операторы ветвления
К операторам, позволяющим

Операторы ветвления  К операторам, позволяющим из нескольких возможных вариантов выполнения

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

один, относятся if и case.
Условный оператор if
Оператор if выбирает между двумя вариантами развития событий:
if <условие> then
<операторы>
[else
<операторы>]

Слайд 3 Условный оператор if работает следующим образом:
Сначала вычисляется значение

Условный оператор if работает следующим образом:Сначала вычисляется значение - это может

- это может быть любое выражение, возвращающее значение

типа boolean.
Затем, если в результате получена "истина" (true), то выполняется оператор, стоящий после ключевого слова then, а если "ложь" (false) - без дополнительных проверок выполняется оператор, стоящий после ключевого слова else. Если же else-ветвь отсутствует, то не выполняется ничего.


Слайд 4 Вложенный оператор If


if i>0 then
if s>2 then

Вложенный оператор Ifif i>0 then if s>2 then s:=1else else s:=-1;


s:=1
else
else
s:=-1;


Слайд 5
if i>0 then
Begin
if s>2 then

if i>0 then Begin if s>2 then s:=1;endelse s:=-1;


s:=1;
end
else
s:=-1;


Слайд 6 Оператор выбора case
Оператор case позволяет сделать выбор между

Оператор выбора caseОператор case позволяет сделать выбор между несколькими вариантами:case of

несколькими вариантами:
case of :

<один_оператор>; [<список_констант> : <один_оператор>;] [<список_констант> : <один_оператор>;] [else <один_оператор>;]end;

Слайд 7 Var
operation:Char;
x,y,z:real;
stop:Boolean;
……….
Case operatoin of
‘+’: z:=x+y;
‘-’: z:=x-y;
‘*’: z:=x*y;
‘/’: z:=x/y;
Else
Stop:=true;
End;

Varoperation:Char;x,y,z:real;stop:Boolean;……….Case operatoin of‘+’: z:=x+y;‘-’: z:=x-y;‘*’: z:=x*y;‘/’: z:=x/y;ElseStop:=true;End;

Слайд 8 дополнительные правила, относящиеся к структуре оператора Case :
Переключатель

дополнительные правила, относящиеся к структуре оператора Case :Переключатель должен относиться только

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

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

Слайд 9 Пример оператора выбора:
case symbol of
'a'..'z', 'A'..'Z'

Пример оператора выбора:case symbol of 'a'..'z', 'A'..'Z' : writeln('Это латинская буква');

: writeln('Это латинская буква'); 'а'..'я', 'А'..'Я' : writeln('Это

русская буква');
'0'..'9' : writeln('Это цифра');
' ',#10,#13,#26 : writeln('Это пробельный символ'); else
writeln('Это служебный символ');
end;


Слайд 10 Массивы
Массивы представляют собой ограниченную упорядоченную

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

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


Тип компонент может быть любым, принятым в языке ПАСКАЛЬ, кроме файлового типа.
Тип компонент называется базовым типом.
Вся совокупность компонент определяется одним именем. Для обозначения отдельных компонент используется конструкция, называемая переменной с индексом или с индексами: A[5] S[k+1] B[3,5].


Слайд 11 Описание массива
Для того чтобы задать массив, необходимо в

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

разделе описания переменных (var) указать его размеры и тип

его компонент.
Общий вид описания (одномерного) массива:
array[<левая_граница>..<правая_граница>] of <тип_компонент>;
Например, одномерный (линейный) массив, состоящий не более чем из 10 целых чисел, можно описать следующим образом:
var a1: array [1..10] of integer;

Слайд 12 Нумерация компонент массива
Не обязана начинаться

Нумерация компонент массива  Не обязана начинаться с 1 или с

с 1 или с 0 - можно описывать массив,

пронумерованный любыми целыми числами. Необходимо лишь, чтобы номер последней компоненты был больше, чем номер первой:
var a1: array [-5..4] of integer;

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

Слайд 13 допустимы следующие описания массивов:
type
charrr = 'a','c'..'z'; (-

допустимы следующие описания массивов:type charrr = 'a','c'..'z'; (- отсутствует символ

отсутствует символ "b")
a2: array [charrr] of integer; - 25

целых компонент
a3: array [shortint] of real; - 256 вещественных компонент
Общий размер массива не должен превосходить 65 520 байт.
Нельзя задать массив
a4:array[integer]of byte;
поскольку тип integer покрывает 65 535 различных элементов.
Тем более нельзя использовать тип longint.


Слайд 14 Тип компонент массива может быть любым:
var
a4: array[10..20]

Тип компонент массива может быть любым:var a4: array[10..20] of real; -

of real; - массив из компонент простого типа
a5: array[0..100]

of record1; - массив из записей
a6: array[-10..10] of ^string; - массив из указателей на строки
a7: array[-1..1] of file; - массив из имен файловых переменных
a8: array[1..100] of array[1..100] of char; - двумерный массив (массив векторов)


Слайд 15 Для краткости и удобства многомерные массивы можно описывать

Для краткости и удобства многомерные массивы можно описывать и более простым

и более простым способом:

var
a9: array[1..10,1..20] of real; -

двумерный массив 10 х 20
a10: array[boolean, -1..1,char, -10..10] of word; - четырехмерный массив 2 х 3 х 256 х 21


Слайд 16 Общее ограничение на размер массива - не более

Общее ограничение на размер массива - не более 65 520 байт

65 520 байт - сохраняется и для многомерных массивов.


Количество компонент многомерного массива вычисляется как произведение всех его "измерений".
Таким образом, в массиве а9
a9: array[1..10,1..20] of real; - двумерный массив 10 х 20
содержится 200 компонент, а в массиве а10 - 32 256 компонент.
a10: array[boolean, -1..1,char, -10..10] of word; - четырехмерный массив 2 х 3 х 256 х 21



Слайд 17 Для ввода или вывода массива

Для ввода или вывода массива в список ввода или

в список ввода или вывода помещается переменная с индексом,

а операторы ввода или вывода выполняются в цикле. Первый индекс определяет номер строки, второй - номер столбца. Двумерные массивы хранятся в памяти ЭВМ по строкам. Инициализация массивов (присвоение начальных значений всем компонентам массивов) осуществляется двумя cпособами.

Слайд 18 Первый способ - с использованием типизированных констант, например:

Первый способ - с использованием типизированных констант, например:  type


type
Dim10= Array[1..10] of Real;

const
M10: Dim10 = ( 0, 2.1, 4, 5.65, 6.1, 6.7, 7.2, 8, 8.7, 9.3 );



Слайд 19 При инициализации двумерных массивов значения компонент каждого из

При инициализации двумерных массивов значения компонент каждого из входящих в него

входящих в него одномерных массивов записывается в скобках: type


Dim3x2= Array[1..3,1..2] of Integer; const
M3x2: Dim3x2= ( (1, 2), (3, 4), (5, 6) );
Второй способ инициализации - использование разновидности процедуры FillChar: FillChar( var V; NBytes: Word; B: Byte );
Эта процедура заполняет участок памяти однобайтовым значением. Например, для обнуления массива
A[1..10] of Real можно записать:
FillChar(A, 40, 0); или FillChar(A, SizeOf(A), 0);



Слайд 20 Обращение к компонентам массива
Массивы относятся к структурам прямого

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

доступа. Это означает, что возможно напрямую (не перебирая предварительно

все предшествующие компоненты) обратиться к любой интересующей нас компоненте массива.
Доступ к компонентам линейного массива осуществляется так:
<имя_массива>[<индекс_компоненты>] а многомерного - так:
<имя_массива>[<индекс>,_,<индекс>]

Слайд 21 Примеры использования компонент массива:


a2['z']:= a2['z']+1;
a3[-10]:= 2.5;
a3[i+j]:= a9[i,j];

Примеры использования компонент массива:a2['z']:= a2['z']+1;a3[-10]:= 2.5;a3[i+j]:= a9[i,j];

Слайд 22 Примеры задания массивов типизированными константами:
type
mass = array[1..3,1..2]

Примеры задания массивов типизированными константами:type mass = array[1..3,1..2] of byte;const a:

of byte;
const
a: array[-1..1] of byte = (0,0,0); {линейный}
b:

mass = ((1,2),(3,4),(5,6)); {двумерный}
s: array[0..9] of char = '0123456789';


Слайд 23 Операторы циклов
Для того чтобы обработать несколько однотипных элементов,

Операторы цикловДля того чтобы обработать несколько однотипных элементов, совершить несколько одинаковых

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

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


Слайд 24 for-to и for-downto
В случае когда количество однотипных действий

for-to и for-downtoВ случае когда количество однотипных действий заранее известно (например,

заранее известно (например, необходимо обработать все компоненты массива), стоит

отдать предпочтение циклу с параметром (for).
Инкрементный цикл с параметром
for i:= first to last do <оператор>;



Слайд 25 Цикл for-to работает следующим образом:
вычисляется значение верхней границы

Цикл for-to работает следующим образом:вычисляется значение верхней границы last; переменной i

last;
переменной i присваивается значение нижней границы first;
производится

проверка того, что i<=last;
если это так, то выполняется <оператор>;
значение переменной i увеличивается на единицу;
пункты 3-5, составляющие одну итерацию цикла, выполняются до тех пор, пока i не станет строго больше, чем last; как только это произошло, выполнение цикла прекращается, а управление передается следующему за ним оператору.


Слайд 26 какое количество раз отработает цикл for-to в каждом

какое количество раз отработает цикл for-to в каждом из трех случаев:first

из трех случаев:

first < last: цикл будет работать last-first+1

раз;
first = last: цикл отработает ровно один раз;
first > last: цикл вообще не будет работать.


Слайд 27 Декрементный цикл с параметром
аналогичный вариант цикла for,

Декрементный цикл с параметром аналогичный вариант цикла for, который позволяет производить

который позволяет производить обработку не от меньшего к большему,

а в противоположном направлении:

for i:= first downto last do <оператор>;



Слайд 28 Цикл for-downto работает следующим образом:
переменной i присваивается значение

Цикл for-downto работает следующим образом:переменной i присваивается значение first; производится проверка

first;
производится проверка того, что i>=last;
если это так,

то выполняется <оператор>;
значение переменной i уменьшается на единицу;
пункты 1-3 выполняются до тех пор, пока i не станет меньше, чем last; как только это произошло, выполнение цикла прекращается, а управление передается следующему за ним оператору.
Если при этом
first < last, то цикл вообще не будет работать;
first = last, то цикл отработает один раз;
first > last, то цикл будет работать first-last+1 раз.


Слайд 29 while и repeat-until
Если заранее неизвестно, сколько раз необходимо

while и repeat-untilЕсли заранее неизвестно, сколько раз необходимо выполнить тело цикла,

выполнить тело цикла, то удобнее всего пользоваться циклом с

предусловием (while) или циклом с постусловием (repeat-until).
Общий вид этих операторов:
while <условие_1> do <оператор>;
repeat <операторы> until <условие_2>;
Условие окончания цикла может быть выражено переменной, константой или выражением, имеющим логический тип.


Слайд 30 Замечание: на каждой итерации циклы for и while

Замечание: на каждой итерации циклы for и while выполняют только по

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

в операторные скобки begin-end и потому воспринимаемую как единый составной оператор). В отличие от них, цикл repeat-until позволяет выполнить сразу несколько операторов: ключевые слова repeat и until сами служат операторными скобками.
Так же, как циклы for-to и for-downto, циклы while и repeat-until можно назвать в некотором смысле противоположными друг другу.


Слайд 31 Последовательности действий при выполнении этих циклов таковы:
Для while:
1.

Последовательности действий при выполнении этих циклов таковы:Для while:1. Проверяется истино ли

Проверяется истино ли .
2. Если это так, то выполняется

<оператор>.
3. Пункты 1 и 2 выполняются до тех пор, пока <условие_1> не станет ложным.
Для repeat-until:
1. Выполняются <операторы>.
2. Проверяется, ложно ли <условие_2>
3. Пункты 1 и 2 выполняются до тех пор, пока <условие_2> не станет истинным.
Таким образом, если <условие_1> изначально ложно, то цикл while не выполнится ни разу. Если же <условие_2> изначально истинно, то цикл repeat-until выполнится один раз.



Слайд 32 break и continue
Существует возможность прервать выполнение цикла

break и continue Существует возможность прервать выполнение цикла (или одной его

(или одной его итерации), не дождавшись конца его (или

ее) работы.
break прерывает работу всего цикла и передает управление на следующий за ним оператор.
continue прерывает работу текущей итерации цикла и передает управление следующей итерации (цикл repeat-until) или на предшествующую ей проверку (циклы for-to, for-downto, while).
Замечание: При прерывании работы циклов for-to и for-downto с помощью функции break переменная цикла (счетчик) сохраняет свое текущее значение, не "портится".



Слайд 33 Оператор безусловного перехода goto
при всей его нежелательности все-таки

Оператор безусловного перехода gotoпри всей его нежелательности все-таки существует ситуация, когда

существует ситуация, когда предпочтительно использовать именно его. Эта ситуация

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


Слайд 34 Вывод массива, удобный для пользователя
Задача. Распечатать двумерный массив

Вывод массива, удобный для пользователяЗадача. Распечатать двумерный массив размерности MxN удобным

размерности MxN удобным для пользователя способом. (Известно, что массив

содержит только целые числа из промежутка [0..100].)
Алгоритм. нужно вывести массив построчно, отражая его структуру.
Реализация
for i:= 1 to n do
begin
for j:= 1 to m do
write(a[i,j]:4);
writeln;
end;

Слайд 35 Как с помощью цикла можно ввести значения элементов

Как с помощью цикла можно ввести значения элементов с клавиатуры:For I:=1

с клавиатуры:

For I:=1 to n do
Begin

writeln(‘Введите значение элемента ’,’I’ );
readln(a[i]);
End;


Слайд 36 Как присвоить значения элементам массива или как заполнить

Как присвоить значения элементам массива или как заполнить массив с помощью

массив с помощью датчика случайных чисел:
For I:=1 to n

do
Begin
a[i]:=random(21)-10;
End;

Массив будет заполнен целыми числами от –10 до 10


  • Имя файла: operatory-tsikla-v-yazyke-paskal.pptx
  • Количество просмотров: 122
  • Количество скачиваний: 0
Следующая - Саванны