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

Презентация: Операторы цикла в языке Паскаль
Включить эффекты
1 из 37
Ваша оценка презентации
Оцените презентацию по шкале от 1 до 5 баллов
  • 1
  • 2
  • 3
  • 4
  • 5
1.0
1 оценка

Комментарии

Нет комментариев для данной презентации

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


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

Аннотация к презентации

Смотреть презентацию онлайн с анимацией на тему "Операторы цикла в языке Паскаль" по информатике. Презентация состоит из 37 слайдов. Для студентов. Материал добавлен в 2016 году. Средняя оценка: 1.0 балла из 5.. Возможность скчачать презентацию powerpoint бесплатно и без регистрации. Размер файла 0.12 Мб.

Содержание

  • Презентация: Операторы цикла в языке Паскаль
    Слайд 1

    Условный и сложный операторы . Операторы цикла. Массивы.

    28.12.2016 1

  • Слайд 2

    28.12.2016 2 Операторы ветвления К операторам, позволяющим из нескольких возможных вариантов выполнения программы (ветвей) выбрать только один, относятся if и case. Условный оператор if Оператор if выбирает между двумя вариантами развития событий: if then [else ]

  • Слайд 3

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

  • Слайд 4

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

  • Слайд 5

    28.12.2016 5 if i>0 then Begin if s>2 then s:=1; end else s:=-1;

  • Слайд 6

    28.12.2016 6 Оператор выбора case Оператор case позволяет сделать выбор между несколькими вариантами: case of : ; [ : ;] [ : ;] [else ;]end;

  • Слайд 7

    28.12.2016 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;

  • Слайд 8

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

  • Слайд 9

    28.12.2016 9 Пример оператора выбора: case symbol of 'a'..'z', 'A'..'Z' : writeln('Это латинская буква'); 'а'..'я', 'А'..'Я' : writeln('Это русская буква'); '0'..'9' : writeln('Это цифра'); ' ',#10,#13,#26: writeln('Это пробельный символ'); else writeln('Это служебный символ'); end;

  • Слайд 10

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

  • Слайд 11

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

  • Слайд 12

    28.12.2016 12 Нумерация компонент массива Не обязана начинаться с 1 или с 0 - можно описывать массив, пронумерованный любыми целыми числами. Необходимо лишь, чтобы номер последней компоненты был больше, чем номер первой: var a1: array [-5..4] of integer; Нумеровать компоненты массива можно не только целыми числами. Любой порядковый тип данных (перечислимый, интервальный, символьный, логический, а также произвольный тип, созданный на их основе) имеет право выступать в роли нумератора.

  • Слайд 13

    28.12.2016 13 допустимы следующие описания массивов: 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

    28.12.2016 14 Тип компонент массива может быть любым: var a4: array[10..20] 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

    28.12.2016 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

    28.12.2016 16 Общее ограничение на размер массива - не более 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

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

  • Слайд 18

    28.12.2016 18 Первый способ - с использованием типизированных констант, например: 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

    28.12.2016 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

    28.12.2016 20 Обращение к компонентам массива Массивы относятся к структурам прямого доступа. Это означает, что возможно напрямую (не перебирая предварительно все предшествующие компоненты) обратиться к любой интересующей нас компоненте массива. Доступ к компонентам линейного массива осуществляется так: []а многомерного - так: [,_,]

  • Слайд 21

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

  • Слайд 22

    28.12.2016 22 Примеры задания массивов типизированными константами: type mass = array[1..3,1..2] 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

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

  • Слайд 24

    28.12.2016 24 for-to и for-downto В случае когда количество однотипных действий заранее известно (например, необходимо обработать все компоненты массива), стоит отдать предпочтение циклу с параметром (for). Инкрементный цикл с параметром for i:= first to last do ;

  • Слайд 25

    28.12.2016 25 Цикл for-to работает следующим образом: вычисляется значение верхней границы last; переменной i присваивается значение нижней границы first; производится проверка того, что i; значение переменной i увеличивается на единицу; пункты 3-5, составляющие одну итерацию цикла, выполняются до тех пор, пока i не станет строго больше, чем last; как только это произошло, выполнение цикла прекращается, а управление передается следующему за ним оператору.

  • Слайд 26

    28.12.2016 26 какое количество раз отработает цикл for-to в каждом из трех случаев: first last: цикл вообще не будет работать.

  • Слайд 27

    28.12.2016 27 Декрементный цикл с параметром аналогичный вариант цикла for, который позволяет производить обработку не от меньшего к большему, а в противоположном направлении: for i:= first downto last do ;

  • Слайд 28

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

  • Слайд 29

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

  • Слайд 30

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

  • Слайд 31

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

  • Слайд 32

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

  • Слайд 33

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

  • Слайд 34

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

  • Слайд 35

    28.12.2016 35 Как с помощью цикла можно ввести значения элементов с клавиатуры: For I:=1 to n do Begin writeln(‘Введите значение элемента ’,’I’); readln(a[i]); End;

  • Слайд 36

    28.12.2016 36 Как присвоить значения элементам массива или как заполнить массив с помощью датчика случайных чисел: For I:=1 to n do Begin a[i]:=random(21)-10; End; Массив будет заполнен целыми числами от –10 до 10

  • Слайд 37

    28.12.2016 37 Как подсчитать сумму значений его элементов: S:=0 For I:=1 to n do begin S:=s+a[i]; Writeln(‘сумма элементов массива = ‘,s); Readln; end;

Посмотреть все слайды

Сообщить об ошибке