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

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


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

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

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

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

Презентация на тему Циклы и массивы (Delphi)

Содержание

Троицкий Д.И. Информатика САПР 1 семестрАлгоритмы решения многих задач являются циклическими, т. е. для достижения результата определенная последовательность действии должна быть выполнена несколько раз. Функции цикла в программе Например, чтобы найти фамилию человека в списке, надо
Троицкий Д.И. Информатика САПР 1 семестрЦиклы и массивыЛекция 15Кафедра «Автоматизированные станочные системы»Dept. of Automated Manufacturing Systems Троицкий Д.И. Информатика САПР 1 семестрАлгоритмы решения многих задач являются циклическими, т. Троицкий Д.И. Информатика САПР 1 семестрВиды циклов:цикл с предусловием; цикл с постусловием; цикл с параметром. Троицкий Д.И. Информатика САПР 1 семестр	Цикл с предусловиемУсловие продолжения цикла проверяется до Троицкий Д.И. Информатика САПР 1 семестрПример использования…x:=10;while not(x=0) do x:=x-1;	Цикл с предусловиемОбозначение Троицкий Д.И. Информатика САПР 1 семестрЦикл с постусловиемЦикл с постусловием используется, если Троицкий Д.И. Информатика САПР 1 семестр Пример использованияVar x:string;begin repeat InputQuery('',’Введите x:',x) Троицкий Д.И. Информатика САПР 1 семестрЦикл с параметромЦикл с параметром используется, если Троицкий Д.И. Информатика САПР 1 семестр Примеры использования…Var x:byte; z:char;…For x:=10 downto Троицкий Д.И. Информатика САПР 1 семестрШаг цикла с параметромПараметр цикла при каждой Троицкий Д.И. Информатика САПР 1 семестрЦикл по четным и нечетным значениямПример: просуммировать Троицкий Д.И. Информатика САПР 1 семестрДля немедленного выхода из любого цикла можно Троицкий Д.И. Информатика САПР 1 семестрКоманды BREAK и CONTINUE Команда Continue по Троицкий Д.И. Информатика САПР 1 семестрВечные циклыЕсли в теле цикла не изменяется Троицкий Д.И. Информатика САПР 1 семестрРеакция на действия пользователя в циклеПо умолчанию Троицкий Д.И. Информатика САПР 1 семестрЧто такое INC и DEC?Процедура DEC(X) уменьшает Троицкий Д.И. Информатика САПР 1 семестрВложенные циклы (nested loops)Если цикл включает в Троицкий Д.И. Информатика САПР 1 семестрВложенные циклыБлок – схема, соответствующая  вложенному Троицкий Д.И. Информатика САПР 1 семестрМассив — это структура данных, представляющая собой Троицкий Д.И. Информатика САПР 1 семестрПри объявлении массива удобно использовать константы.Массивы могут Троицкий Д.И. Информатика САПР 1 семестрTYPE Ta : array[1..5] of integer; // Троицкий Д.И. Информатика САПР 1 семестрconstSIZE=5; TYPE TA=array[l..SIZE] of integer;vara:TA; // массив Троицкий Д.И. Информатика САПР 1 семестрМногомерные массивы В общем виде инструкция объявления
Слайды презентации

Слайд 2 Троицкий Д.И. Информатика САПР 1 семестр
Алгоритмы решения многих

Троицкий Д.И. Информатика САПР 1 семестрАлгоритмы решения многих задач являются циклическими,

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

последовательность действии должна быть выполнена несколько раз.

Функции цикла в программе

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

Цикл – единственная конструкция, позволяющая возвращаться «назад» по тексту программы.


Слайд 3 Троицкий Д.И. Информатика САПР 1 семестр
Виды циклов:
цикл с

Троицкий Д.И. Информатика САПР 1 семестрВиды циклов:цикл с предусловием; цикл с постусловием; цикл с параметром.

предусловием;

цикл с постусловием;

цикл с параметром.


Слайд 4 Троицкий Д.И. Информатика САПР 1 семестр
Цикл с предусловием
Условие

Троицкий Д.И. Информатика САПР 1 семестр	Цикл с предусловиемУсловие продолжения цикла проверяется

продолжения цикла проверяется до его начала. Цикл выполняется, пока

условие истинно. Как только условие становится ложным, цикл заканчивается.

Если условие ложно с самого начала, цикл не выполняется ни разу

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

while условие do
тело цикла;


Слайд 5 Троицкий Д.И. Информатика САПР 1 семестр
Пример использования

x:=10;
while not(x=0)

Троицкий Д.И. Информатика САПР 1 семестрПример использования…x:=10;while not(x=0) do x:=x-1;	Цикл с

do
x:=x-1;
Цикл с предусловием

Обозначение на блок схемах
Если перед циклом

x=0, тело цикло не будет выполнено ни разу

Запись с отступами

Телом цикла while может быть составной оператор begin..end


Слайд 6 Троицкий Д.И. Информатика САПР 1 семестр
Цикл с постусловием
Цикл

Троицкий Д.И. Информатика САПР 1 семестрЦикл с постусловиемЦикл с постусловием используется,

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

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

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

repeat {инструкции} until условие,

Условие – выражение логического типа, определяющее условие завершения цикла.

В цикле с постусловием задается условие прекращения цикла. Пока оно ложно – цикл продолжается.


Слайд 7 Троицкий Д.И. Информатика САПР 1 семестр

Пример использования
Var

Троицкий Д.И. Информатика САПР 1 семестр Пример использованияVar x:string;begin repeat InputQuery('',’Введите

x:string;
begin
repeat
InputQuery('',’Введите x:',x)
until x'‘

Цикл с постусловием
Обозначение на

блок схемах


В цикле REPEAT..UNTIL в теле можно писать много операторов без BEGIN..END


Слайд 8 Троицкий Д.И. Информатика САПР 1 семестр
Цикл с параметром
Цикл

Троицкий Д.И. Информатика САПР 1 семестрЦикл с параметромЦикл с параметром используется,

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

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

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

for переменная:=нач_значение to кон_значение do оператор;
for переменная:=нач_значение downto кон_значение do оператор;

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

+1

-1


Слайд 9 Троицкий Д.И. Информатика САПР 1 семестр

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

Var

Троицкий Д.И. Информатика САПР 1 семестр Примеры использования…Var x:byte; z:char;…For x:=10

x:byte; z:char;

For x:=10 downto 1 do
s:=s+x;

For z:=‘A’

to ‘Z’ do
c:=c+z;


Цикл с параметром

Обозначение на блок схемах


В случае For x:=10 to 1 do цикл не выполнится ни разу

В случае For x:=1 downto 10 do цикл не выполнится ни разу


Слайд 10 Троицкий Д.И. Информатика САПР 1 семестр
Шаг цикла с

Троицкий Д.И. Информатика САПР 1 семестрШаг цикла с параметромПараметр цикла при

параметром
Параметр цикла при каждой итерации всегда изменяется на +1

или -1.

Если надо менять переменную с другим шагом, следует делать пересчет

Пример: Вычислить сумму чисел от 1 до 10 с шагом 0.1 (1+1.1+1.2+…+9.9+10)

VAR s:longint; c:word;
BEGIN s:=0; FOR c:=1 to 100 DO s:=s+c/10;

Нельзя менять значение параметра в теле цикла

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


Слайд 11 Троицкий Д.И. Информатика САПР 1 семестр
Цикл по четным

Троицкий Д.И. Информатика САПР 1 семестрЦикл по четным и нечетным значениямПример:

и нечетным значениям
Пример: просуммировать все четные числа от 1

до 1000

VAR s:longint; c:word;
BEGIN s:=0; FOR c:=1 to 1000 DO IF с MOD 2=0 THEN s:=s+c;

Остаток от деления (MOD) на 2 будет равен нулю для четных чисел и единице для нечетных


Слайд 12 Троицкий Д.И. Информатика САПР 1 семестр
Для немедленного выхода

Троицкий Д.И. Информатика САПР 1 семестрДля немедленного выхода из любого цикла

из любого цикла можно использовать команду Break
Команды BREAK и

CONTINUE

Пример использования Найти позицию первого пробела в строке
N:=0;
for i:=1 to Length(S) do
if S[i] = ’ ’ then
begin
N:=i;
Break
end;


Слайд 13 Троицкий Д.И. Информатика САПР 1 семестр
Команды BREAK и

Троицкий Д.И. Информатика САПР 1 семестрКоманды BREAK и CONTINUE Команда Continue

CONTINUE
Команда Continue по своему действию противоположна команде прерывания

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

Пример использования
N:=0;
for i:=1 to Length(S) do
Begin
If S[i] <>‘ ‘ then
Continue;
N:=i;
Break
End;


Слайд 14 Троицкий Д.И. Информатика САПР 1 семестр
Вечные циклы
Если в

Троицкий Д.И. Информатика САПР 1 семестрВечные циклыЕсли в теле цикла не

теле цикла не изменяется условие цикла, то получаем вечный

цикл, что приводит к зависанию всего приложения.

Пример (не пробовать!!!!)
t:=true;
while t do
x:=100;

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

Зависшая программа снимается нажатием Ctrl+F2 в Delphi


Слайд 15 Троицкий Д.И. Информатика САПР 1 семестр
Реакция на действия

Троицкий Д.И. Информатика САПР 1 семестрРеакция на действия пользователя в циклеПо

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

интерфейса, поэтому не удастся поставить кнопку «Прервать цикл». Чтобы программа в цикле отзывалась на действия пользователя, в теле цикла пишем:

Application.ProcessMessages;

При нажатии на кнопку Stop значение переменной Br устанавливается в True

Br:=false;
FOR i:=1 to 1000000000 DO BEGIN … Application.ProcessMessages; IF br THEN Break END;


Слайд 16 Троицкий Д.И. Информатика САПР 1 семестр
Что такое INC

Троицкий Д.И. Информатика САПР 1 семестрЧто такое INC и DEC?Процедура DEC(X)

и DEC?
Процедура DEC(X) уменьшает значение перечислимого типа на 1

и соответствует выражению X:=X-1
Процедура DEC(X,N) уменьшает значение перечислимого типа на N и соответствует выражению X:=X-N

Процедура INC(X) увеличивает значение перечислимого типа на 1 и соответствует выражению X:=X+1
Процедура INC(X,N) увеличивает значение перечислимого типа на N и соответствует выражению X:=X+N


Слайд 17 Троицкий Д.И. Информатика САПР 1 семестр
Вложенные циклы (nested

Троицкий Д.И. Информатика САПР 1 семестрВложенные циклы (nested loops)Если цикл включает

loops)
Если цикл включает в себя один или несколько циклов,

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

Delphi выдерживает до 255 вложенных циклов


Слайд 18 Троицкий Д.И. Информатика САПР 1 семестр
Вложенные циклы
Блок –

Троицкий Д.И. Информатика САПР 1 семестрВложенные циклыБлок – схема, соответствующая вложенному

схема, соответствующая вложенному циклу
Примеры использования
for i :=1

to n do
for j :=1 to n do


WHILE x<10 DO FOR i:=1 TO 20 DO s:=x+i;


Слайд 19 Троицкий Д.И. Информатика САПР 1 семестр
Массив — это

Троицкий Д.И. Информатика САПР 1 семестрМассив — это структура данных, представляющая

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

общее имя. Массивы удобно использовать для хранения однородной по своей природе информации, например, таблиц и списков.

Объявление массива

TYPE TA=array [нижний_индекс .. верхний_индекс] of тип; VAR c:TA;
где:
TA— имя типа массива (придумываем сами);
тип — тип данных каждого элемента массива.

Массивы (arrays)

Примеры объявления массивов:
коef:array[0. .2] of integer;
name:array[1..30] of string[25];


Слайд 20 Троицкий Д.И. Информатика САПР 1 семестр
При объявлении массива

Троицкий Д.И. Информатика САПР 1 семестрПри объявлении массива удобно использовать константы.Массивы

удобно использовать константы.
Массивы могут быть константными:
Имя:array [нижний_индекс..верхний_индекс] of тип

= (список);
где список — разделенные запятыми значения элементов массива.

const NT = 18; // число команд SN = 25; // предельная длина названия команды TYPE team: array[1..NT] of string[SN];

Например:
a: array[1..10] of integer = (1,2,3,4,5,6,7,8,9,10);


Слайд 21 Троицкий Д.И. Информатика САПР 1 семестр
TYPE Ta :

Троицкий Д.И. Информатика САПР 1 семестрTYPE Ta : array[1..5] of integer;

array[1..5] of integer; // тип массива
summ: integer; // сумма

элементов a: TA; // массив
sr: real; // среднее арифметическое
i: integer; // индекс
begin
// ввод массива
// считаем, что если ячейка пустая, то соответствующий
// ей элемент массива равен нулю
for i:= 1 to 5 do
if Length(StringGridl.Cells[i-1, 0]) <>0
then a[i] := StrToInt(StringGridl.Cells[i-1,0])
else a[i] := 0;
// обработка массива
summ := 0;
for i :=1 to 5 do
summ := summ + a[i]; sr := summ / 5;
//вывод результата
Label2.Caption :='Сумма элементов: ' + IntToStr(summ)
+ #13+ 'Среднее арифметическое: ' + FloatToStr(sr);
end;

Ввод-вывод массива


Слайд 22 Троицкий Д.И. Информатика САПР 1 семестр
const
SIZE=5; TYPE TA=array[l..SIZE]

Троицкий Д.И. Информатика САПР 1 семестрconstSIZE=5; TYPE TA=array[l..SIZE] of integer;vara:TA; //

of integer;
var
a:TA; // массив целых
min:integer; // номер минимального

элемента массива
i:integer; // номер элемента, сравниваемого с минимальным
begin
// ввод массива
for i:=1 to SIZE do
a[i]:=StrToInt(StringGridl.Cells[i-1,0]);
// поиск минимального элемента
min:=a[1]; // пусть первый элемент минимальный
for i:=2 to SIZE do
if a[i]< a[min] then min:=i;
// вывод результата
label2.caption:='Минимальный элемент массива:'
+IntToStr(a[min] +#13+'Номер элемента:'+ IntToStr(min);
end;

Поиск минимального (максимального) элемента массива


  • Имя файла: tsikly-i-massivy-delphi.pptx
  • Количество просмотров: 140
  • Количество скачиваний: 0