Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб раб 6

.pdf
Скачиваний:
19
Добавлен:
10.05.2015
Размер:
452.88 Кб
Скачать

10

Описание структуры цикла ПОКА с постусловием на алгоритмическом (псевдоязыке) языке (знаковая модель) имеет вид:

нц

<тело цикла – операторы> пока <условие продолжения цикла> кц

Цикл ДО (с постусловием) (рис. 6)

начальные присваивания переменным

тело цикла

условие

окончания

цикла

Рисунок 6 – Условное изображение цикла ДО (образно-знаковая модель)

Структура работает так: повторять тело цикла ДО тех пор, пока условие не станет истинным, то есть пока ложно.

Описание цикла ДО с постусловием на алгоритмическом (псевдоязыке) языке (знаковая модель) имеет вид:

нц

<тело цикла – операторы> до <условие окончания цикла> кц

Условное изображение цикла ДО с предусловием приведено на рисунке 7.

11

Начальные присваивания переменным

условие

окончания

цикла

нет

тело цикла (изменение параметра цикла)

Рисунок 7 – Условное изображение цикла ДО с предусловием (образно-знаковая модель)

Описание структуры цикла ДО с предусловием на алгоритмическом (псевдоязыке) языке (знаковая модель) имеет вид:

нц до <условие окончания цикла>

<тело цикла – операторы> кц

Оба цикла ДО и ПОКА используются как с предусловием, так и с постусловием.

«Предусловие» означает, что тело цикла выполняется после проверки условия цикла и если оно ложно, цикл не выполнится ни разу. Условие интерпретируется как условие продолжения цикла в цикле ПОКА, а в цикле ДО условие окончания цикла.

«Постусловие» означает, что тело цикла выполняется прежде проверки условия цикла, то есть цикл выполнится хотя бы один раз. Условие интерпретируется как условие окончания цикла в цикле ДО или условие продолжения цикла в цикле ПОКА. Оба цикла взаимозаменяемы, условия цикла противоположны.

12

Во всех языках программирования присутствует структура цикл с параметром или цикл с определенным числом повторений (или со счётчиком). Для обозначения такого цикла используется геометрический символ модификация (рис. 8).

В циклах ДО и ПОКА число повторений неизвестно заранее и зависит от условия цикла, а в цикле с параметром число повторений задано изначально (цикл со счётчиком).

i=1, N, m

Тело цикла

Рисунок 8 – Условное изображение цикла с параметром (образно-знаковая модель)

Параметр – счетчик i изменяется от 1 до N с шагом m. При каждом вхождении в цикл параметр i увеличивается на m автоматически

– величину шага изменения параметра (i=i+m) и неявно проверяется условие: i не превысило N (i N). Если не превысило, тело цикла выполнять, в противном случае – цикл закончить.

Описание структуры на алгоритмическом (псевдоязыке) языке (знаковая модель) цикла с параметром имеет вид:

нц

для i от 1 до N шаг m

<тело цикла – операторы>

кц

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

гообразие алгоритмов. Структура любого алгоритма имеет вид, представленный на рисунке 9.

13

начало

ввод исходных данных

обработка данных

вывод

результата

конец

алг

нач

цел [вещ …] <переменные> ввод <переменные>

<операторы – базовые структуры>

вывод <переменные>

кон

Рисунок 9 – Условное изображение алгоритма (образнознаковая модель) и соответствующее описание на алгоритмическом

(псевдоязыке) языке (знаковая модель)

3.Примеры решения задач

Пример 1. Постановка задачи. Найти минимальное и максимальное значения элементов одномерного массива a[i], составленного из целых положительных и отрицательных чисел; определить их разницу – значение переменной S. Известна знаковая модель задачи (рис. 8). Сформировать образно-знаковую модель в виде блок-схемы. Выполнить просчет алгоритма для заданных исходных данных: n=10; a[i]=35; -22; 5; 9; 28; 14; -2; -18; 33; 24.

Вычисление значения переменной S (просчет алгоритма)

Начало

1.Ввод: n=10, i=1

2.Цикл Пока

Шаг 1. i=1, i ≤ n → 1≤10→да, ввод a[1]=35: i=i+1=1+1=2 Шаг 2. i=2, i ≤ n → 2≤10 →да, ввод a[2]= -22: i=i+1=2+1=3 Шаг 3. i=3, i ≤ n → 3≤10 →да, ввод a[3]=5: i=i+1=3+1=4

14

Шаг 4. i=4, i ≤ n → 4≤10 →да, ввод a[4]=9: i=i+1=4+1=5 Шаг 5. i=5, i ≤ n → 5≤10 →да, ввод a[5]=28: i=i+1=5+1=6 Шаг 6. i=6, i ≤ n →6≤10 →да, ввод a[6]=14: i=i+1=6+1=7 Шаг 7. i=7, i ≤ n → 7≤10 →да, ввод a[7]= -2: i=i+1=7+1=8 Шаг 8. i=8, i ≤ n → 8≤10 →да, ввод a[8]= -18: i=i+1=8+1=9 Шаг 9. i=9, i ≤ n → 9≤10 →да, ввод a[9]=33: i=i+1=9+1=10

Шаг 10. i=10, i ≤ n → 10≤10→да, ввод a[10]=24: i=i+1=10+1=11

Шаг 11. i=11, i ≤ n → 11≤10 → нет → выход из цикла

3.m1=a[1] → m1=35 : m2=a[1] → m2=35

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

Шаг1. i=2 : a[2]< m1→ -22<35→да, m1=a[2]: m1=-22, i=2 : a[2]> m2→ -22>35→ нет

Шаг 2. i=3 : a[3]< m1→ 5< -22 →нет, i=3: a[3]> m2→ 5>35→нет Шаг 3. i=4: a[4]<m1→9< -22 →нет, i=4: a[4]>m2→9>35 →нет Шаг 4. i=5: a[5]<m1→28< -22 →нет, i=5: a[5]>m2→28>35 →нет Шаг5. i=6: a[6]<m1→14< -22 →нет, i=6: a[6]>m2→14>35 →нет Шаг 6. i=7: a[7]<m1→ -2< -22 →нет, i=7: a[7]>m2→ -2>35 →нет Шаг 7. i=8: a[8]<m1→ -18< -22 →нет, i=8: a[8]>m2→ -18>35 →нет Шаг 8. i=9: a[9]<m1→ 33< -22 →нет, i=9: a[9] >m2→ 33>35 →нет

Шаг 9. i=10: a[10]<m1→24< -22 →нет, i =10: a[10] >m2→ 24> 35 →нет, i =11 → выход из цикла. 5. S = m2 - m1→ S=35+22=57.

6. Вывод S=57. Конец алгоритма.

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

Основные свойства алгоритмов:

а) определенность (однозначность действий); б) результативность (последовательность действий должна при-

водить к конечному результату); в) массовость (решение однотипных задач с различными исход-

ными данными); г) дискретность (пошаговое выполнение действий).

Знаковая и образно-знаковая модели задачи представлены на рисунке 10.

15

нач

цел а[10], n, i, s, m1, m2

ввод n i=1

нц

пока i<=n ввод а[i] i=i+1

кц

m1=a[1]

m2=a[1]

нц

для i от 2 до n

если а[i]<m1 то m1=a[i]

все

если а[i]>m2 то m2=a[i]

все

кц s=m2-m1

вывод s кон

Рисунок 10 – Знаковая и образно-знаковая модели задачи

 

Начало

Ввод n

i=1

Нет

 

 

i <= n

 

Да

 

Ввод a[i]

 

i = i + 1

 

m1 = a[1]

m2 = a[1]

i = 2, n

нет

a[i]<m1

да

m1 = a[i]

нет

a[i]>m2

да

m2 = a[i]

S = m2-m1

Вывод S

Конец

16

Пример 2. Задана образно-знаковая модель задачи (рис. 11). Сформировать знаковую модель задачи. Определить значение переменной S – выполнить просчет алгоритма для заданных значений ис-

ходных данных: n=9, a=1, b=1.

Начало

Вввод n,a,b

X1=a

X2=b

S=X1+X2

i=1, n, 1

X3= X1+X2

S= S+X3

X1=X2

X2= X3

Вывод S

Конец

Рисунок 11 – Образно-знаковая модель задачи

17

Знаковая модель задачи

нач

цел x1, x2, x3, S, i, n ввод n, a, b

x1=a x2=b

S= x1+x2

нц

для i=1, n

x3=x1+x2 S=S+x3

x1=x2 x2=x3

кц вывод S кон

Вычисление значения переменной S (просчет алгоритма)

Начало

1.Ввод n=9, a=1, b=1.

2.x1= a=1

3.x2=b=1

4.S= x1+x2=1+1=2

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

Шаг 1. i=1, x3=x1+x2=1+1=2, S=S+x3=2+2=4, x1=x2=1, x2=x3=2 Шаг 2. i=2, x3=x1+x2=1+2=3, S=S+x3=4+3=7, x1=x2=2, x2=x3=3 Шаг 3. i=3, x3=x1+x2=2+3=5, S=S+x3=7+5=12, x1=x2=3, x2=x3=5 Шаг 4. i=4, x3=x1+x2=3+5=8, S=S+x3=12+8=20, x1=x2=5, x2=x3=8

Шаг 5. i=5, x3=x1+x2=5+8=13, S=S+x3=20+13=33, x1=x2=8, x2=x3=13 Шаг 6. i=6, x3=x1+x2=8+13=21, S=S+x3=33+21=54, x1=x2=13, x2=x3 = 21

Шаг 7. i=7, x3=x1+x2=13+21=34, S=S+x3=54+34=88, x1=x2=21, x2=x3 =34

Шаг 8. i=8, x3=x1+x2=21+34=55, S=S+x3=88+55=143, x1=x2=34, x2=x3=55

Шаг 9. i=9, x3=x1+x2=34+55=89, S=S+x3=143+89=232, x1=x2=55, x2=x3=89

6. Вывод S=232. Конец алгоритма.

18

4. Задание для выполнения лабораторной (практической) работы

Задание 1 (на оценку «удовлетворительно»). Скорректировать знаковую (Пример 1) или образно-знаковую (Пример 2) модели согласно варианту. Номер варианта – номер логина.

Выполнить просчет алгоритма для новых исходных данных. Варианты Задания 1 приведены в таблице 2. Составить отчет в рабочей тетради в соответствии с требованиями (см. р. 5).

Таблица 2 – Варианты Задания 1

Номер ва-

Исходные данные

Задание

рианта

 

 

1.

n=7; a[i]= 5; -12; 15; 19;

Для ввода элементов массива

Пример 1.

–8; 14; -2

использовать цикл с парамет-

 

 

ром

2.

n=10, a=2, b=3

Заменить цикл с параметром

Пример 2.

 

на цикл ДО с постусловием

3.

n=8; a[i]= 5; -12; 15; 19;

Для ввода элементов массива

Пример 1.

–8; 14; -2; 10

использовать цикл ДО с по-

 

 

стусловием

4.

n=6, a=2, b=5

Заменить цикл с параметром

Пример 2.

 

на цикл ПОКА с предусловием

5.

n=5; a[i]= 19; –8; 14; -2;

Для ввода элементов массива

Пример 1.

10

использовать цикл ПОКА с по-

 

 

стусловием

6.

n=8, a=1, b=5

Заменить цикл с параметром

Пример 2.

 

на цикл ДО с предусловием

7.

n=9; a[i]= 5; -12; 15; 19;

Для ввода элементов массива

Пример 1.

–8; 14; -2; 10; -3

использовать цикл ПОКА с по-

 

 

стусловием

8.

n=10, a=1, b=2

Заменить цикл с параметром

Пример 2.

 

на цикл ДО с постусловием

9.

n=4; a[i]= 5; -12; 15; 19;

Для ввода элементов массива

Пример 1.

 

использовать цикл с парамет-

 

 

ром

10.

n=6, a=2, b=4

Заменить цикл с параметром

19

Пример 2.

 

на цикл ДО с предусловием

11.

n=10; a[i]= 5; -12; 15;

Для ввода элементов массива

Пример 1.

19; –8; 14; -2; 10; -3; 6

использовать цикл ДО с по-

 

 

стусловием

12.

n=8, a=6, b=7

Заменить цикл с параметром

Пример 2.

 

на цикл ДО с предусловием

13.

n=5; a[i]=–8; 14; -2; 10;

Для ввода элементов массива

Пример 1.

-3

использовать цикл ПОКА с по-

 

 

стусловием

14.

n=11, a=6, b=2

Заменить цикл с параметром

Пример 2.

 

на цикл ПОКА с постусловием

15.

n=9; a[i]= 1; -10; 13; 17;

Для ввода элементов массива

Пример 1.

–8; 14; -2; 10; -5

использовать цикл с парамет-

 

 

ром

16.

n=9, a=4, b=1

Заменить цикл с параметром

Пример 2.

 

на цикл ПОКА с предусловием

Задание 2 (на оценку «хорошо» и «отлично»).

Пусть дан одномерный числовой массив, составленный из целых чисел. Количество элементов заранее неизвестно. Решить одну задачу (оценка «хорошо») или две задачи (оценка «отлично»). Составить образно-знаковую (одна задача) и знаковую (другая задача) модели в соответствии с вариантом. Номер варианта – номер логина.

Варианты Задания 2 приведены в таблице 3. Составить отчет в рабочей тетради в соответствии с требованиями (см. р. 5).

Таблица 3 – Варианты Задания 2

Номер

Постановка задачи

варианта

 

1Найти сумму элементов, имеющих нечетные индексы. Заменить максимальный элемент на противоположный по знаку

2Удалить из массива все элементы, в которых есть цифра

5.

Подсчитать количество элементов, больших заданного числа D