Курс «Информатика» Лекция 6 Составитель: Иванчева Н.А.

Презентация:



Advertisements
Похожие презентации
Глава 6. УПРАВЛЯЮЩИЕ СТРУКТУРЫ Оператор присваивания Простой и составной операторы Условный оператор Оператор множественного выбора Оператор цикла с предусловием.
Advertisements

ЦИКЛИЧЕСКИЙ АЛГОРИТМ Цели: -Познакомиться с понятием циклического алгоритма. -Освоить языковые средства для реализации циклических алгоритмов.
Презентация на тему: «Программирование циклических структур». Составила: учитель информатики Чура Н.А. Составила: учитель информатики Чура Н.А.
Алгоритмическая структура цикл Алгоритм циклической структуры - это алгоритм, в котором происходит многократное повторение одного и того же участка программы.
Курс «Информатика» Лекция 3 Составитель: Иванчева Н.А.
Курс «Информатика» Лекция 2 Составитель: Иванчева Н.А.
Тема: Массивы.. Массив представляет собой набор элементов одного типа, каждый из которых имеет свой номер, называемый индексом. Массив Одномерный Многомерный.
Язык программирования Паскаль 6 часть. ЦИКЛЫ Повторение некоторой последовательности действий называется циклом.
Операторы языка Паскаль. Операторы повтора (цикла)
Циклический алгоритм –это алгоритм команды которого выполняются несколько раз подряд. В языке Паскаль имеется три различных оператора цикла: 1. Оператор.
Организация повторений в Паскале. i,1,n Действие 1 Действие 2 i,1,n Действие 1 Действие 2 FOR i:=1 TO N DO BEGIN действие 1; действие 2; END; FOR i:=1.
Базовые алгоритмические конструкции. Выделяют три базовые структуры алгоритмической конструкции: - Линейные алгоритмы (последовательное выполнение); Линейные.
Министерство образования Республики Беларусь Белорусский государственный университет Управляющие структуры языков программирования.
1 Тема 4. Циклы на языке Паскаль.
Одномерные массивы. Массив - это упорядоченная последовательность данных одного типа, объединенных под одним именем. Проще всего представить себе массив.
Массивы Вариант 1 Program upr1; Var s,a:real; I: integer; Begin S:=0; For I:=1 to 10 do Begin Writeln (введите очередное число'); Readln(a); S: =s+a; End;
АЛГОРИТМЫ ТОИ-ИМ 3 базовые управляющие алгоритмические структуры Решение Цикл Последовательность Непосредственное выполнение одно- го действия за другим.
Циклические конструкции 1. Цикл с предусловием предусловием 2. Цикл с постусловием постусловием 3. Цикл с параметром параметром 4. Вложенные циклы Вложенные.
Повторение действий в turbo pascal. Циклы.
Транксрипт:

Курс «Информатика» Лекция 6 Составитель: Иванчева Н.А.

Лекция 6 Тема лекции: Управляющие конструкции языка Паскаль. Массивы

Содержание лекции Условный оператор if.. then.. else Условный оператор if.. then.. else Оператор выбора case.. of.. end Оператор выбора case.. of.. end Массивы Массивы Цикл со счетчиком for.. to и for.. downto Цикл со счетчиком for.. to и for.. downto Цикл с предусловием while.. do Цикл с предусловием while.. do Цикл с постусловием repeat.. until Цикл с постусловием repeat.. until Операторы break, continue, goto Операторы break, continue, goto Примеры программ Примеры программ Контрольные вопросы Контрольные вопросы

Список использованных источников 1. Материалы Единой Коллекции ЦОР ( : ( : Ресурсы по информатике Ивановского «Учебно- методического центра информатизации и оценки качества образования» Ресурсы по информатике Ивановского «Учебно- методического центра информатизации и оценки качества образования» Ресурсы по информатике Ивановского «Учебно- методического центра информатизации и оценки качества образования» Ресурсы по информатике Ивановского «Учебно- методического центра информатизации и оценки качества образования» Ресурсы по информатике Хабаровской краевой заочной физико-математической школы Ресурсы по информатике Хабаровской краевой заочной физико-математической школы Ресурсы по информатике Хабаровской краевой заочной физико-математической школы Ресурсы по информатике Хабаровской краевой заочной физико-математической школы 2. Прочие источники: 1. В.В.Фаронов «TurboPascal 7.0» начальный курс учебное пособие. «Нолидж», 1998 г. 1. В.В.Фаронов «TurboPascal 7.0» начальный курс учебное пособие. «Нолидж», 1998 г. 2. Т.А.Андреева «Программирование на Паскале» 2. Т.А.Андреева «Программирование на Паскале» ( ) ( )

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

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

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

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

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

Оператор выбора case Оператор case позволяет сделать выбор между несколькими вариантами: case of : ; [ : ;] [ : ;] [else ;] 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;

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

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

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

Допустимый размер массива Допустимый размер массива Общий размер массива не должен превосходить байт. Так, нельзя задать массив a4:array[integer]of byte; a4:array[integer]of byte; поскольку тип integer покрывает различных элементов.

Тип компонент массива может быть любым: var a4: array[10..20] of real; { массив из компонент простого типа} a5: array[0..100] of record1; { массив из записей}

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

Примеры описания многомерных массивов: var a9: array[1..10,1..20] of real; { двумерный массив из 10 х 20 элементов} a10: array[boolean, -1..1,char, ] of word; { четырехмерный массив из 2 х 3 х 256 х 21 элементов} Ограничение на размер массива - не более байт – справедливо и для многомерных массивов.

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

Обращение к компонентам массива Массивы относятся к структурам прямого доступа. То есть, к любой компоненте массива можно обратиться непосредственно: К компоненте одномерного массива: К компоненте одномерного массива:<имя_массива>[<индекс_компоненты>] к компоненте многомерного массива: <имя_массива>[<индекс>,_,<индекс>]

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

Циклы. Операторы циклов Цикл – повторяющая последовательность действий. Паскаль поддерживает три вида циклов: Цикл со счетчиком: for.. to и for.. downto Цикл со счетчиком: for.. to и for.. downto Цикл с предусловием: while.. do Цикл с предусловием: while.. do Цикл с постусловием: repeat.. until Цикл с постусловием: repeat.. until

Цикл со счетчиком(с параметром) for.. to и for.. downto for.. to и for.. downto Используется, когда число проходов цикла можно определить заранее (например, обработать все компоненты массива) Виды цикла со счетчиком: Инкрементный (возрастающий) цикл со счетчиком for.. to Инкрементный (возрастающий) цикл со счетчиком for.. to Декрементный (убывающий) цикл со счетчиком for.. downto Декрементный (убывающий) цикл со счетчиком for.. downto

Пример инкрементного цикла со счетчиком: for i:= first to last do ; Значение переменной-счетчика first возрастает после каждой итерации (шага) цикла Пример декрементного цикла со счетчиком: for i:= last downto first do ; Значение переменной-счетчика last убывает после каждой итерации (шага) цикла

Порядок работы инкрементного цикла со счетчиком: вычисляется значение верхней границы last; вычисляется значение верхней границы last; переменной i присваивается значение нижней границы first; переменной i присваивается значение нижней границы first; производится проверка i<=last; производится проверка i<=last; если ДА, то выполняется ; значение переменной i увеличивается на единицу; управление передается на начало цикла если ДА, то выполняется ; значение переменной i увеличивается на единицу; управление передается на начало цикла если НЕТ, выполнение цикла прекращается и управление передается следующему за ним оператору. если НЕТ, выполнение цикла прекращается и управление передается следующему за ним оператору.

Цикл с предусловием: while.. Do Вид оператора : while do ; Последовательность действий при выполнении цикла: Проверяется истинно ли Проверяется истинно ли Если ДА, то выполняется, управление передается на начало цикла Если ДА, то выполняется, управление передается на начало цикла Если НЕТ, цикл заканчивается Если НЕТ, цикл заканчивается

Особенность цикла while.. Do в том, что операторы в теле цикла могут не выполниться ни разу, если условие сразу примет значение НЕТ (Ложь).

Цикл с постусловием: repeat.. until Вид оператора : repeat until ; Последовательность действий при выполнении цикла: Выполняется Выполняется Проверяется истинно ли Проверяется истинно ли Если НЕТ, то управление передается на начало цикла Если НЕТ, то управление передается на начало цикла Если ДА, цикл заканчивается Если ДА, цикл заканчивается

Особенность цикла repeat.. until Особенность цикла repeat.. until в том, что операторы в теле цикла в том, что операторы в теле цикла обязательно выполняются по крайней мере один раз, и потом в зависимости от результата проверки условия выхода из цикла. обязательно выполняются по крайней мере один раз, и потом в зависимости от результата проверки условия выхода из цикла.

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

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

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

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

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

Задача. Подсчитать сумму значений элементов массива: …S:=0 For I:=1 to n do beginS:=s+a[i]; Writeln(сумма элементов массива =,s); Readln;end;

Контрольные вопросы Какие операторы относятся к операторам ветвления? Какие операторы относятся к операторам ветвления? Как работает оператор if? Как работает оператор if? Как запрограммировать выбор между несколькими вариантами? Как запрограммировать выбор между несколькими вариантами? Что такое массив? Что такое массив? Как обьявить массив в программе? Как обьявить массив в программе? Как нумеруются элементы массива? Как нумеруются элементы массива?

Каков допустимый размер массива? Каков допустимый размер массива? Как определить число элементов многомерного массива? Как определить число элементов многомерного массива? Как в Паскале запрограммировать цикл? Как в Паскале запрограммировать цикл? Чем отличается цикл с предусловием от цикла с постусловием? Чем отличается цикл с предусловием от цикла с постусловием? Как работают операторы break, continue и goto? Как работают операторы break, continue и goto?