14 поняття про мову розмітки гіпертексту

Вид материалаУрок
Урок 9 команди вибору та повторення
У короткій формі
Приклади використання команди вибору
Приклади використання команди повторення з передумовою
Приклад використання команди повторення з післяумовою
Тема 14 ОСНОВИ АЛГОРИТМІЗАЦІЇ І ПРОГРАМУВАННЯ
Приклад алгоритму, який використовує таблиці
Подобный материал:
1   2   3   4   5
Тема 14 ОСНОВИ АЛГОРИТМІЗАЦІЇ І ПРОГРАМУВАННЯ

УРОК 9 КОМАНДИ ВИБОРУ ТА ПОВТОРЕННЯ


Для зручного запису розгалужень з багатьма альтернативами до алгоритмічної мови введено команду вибору. Існують дві форми команди вибору: повна і коротка. Повна форма має вигляд: вибір

при <умова 1> : <серія команд 1> при <умова 2> : <серія команд 2>

при <умова Н> : <серія команд Н> інакше <серія команд інакше> кв

Принцип роботи: в команді вибору виконується лише одна серія — найперша за поряд-

ком, для якої умова буде виконуватись. Деякі умови можуть навіть збігатися — в цьому разі серія, яка стоїть нижче, не виконається ніколи. Якщо не виконується жодна умова, то виконується серія команд, яка стоїть після слова

Якщо серія команд складається з більш ніж однієї команди, то на початку серії ставиться слово пс. в кінці серії кс. для однієї команди ці слова не потрібні.

У короткій формі команди вибору рядок з інакше опускається, і, якщо не виконується жодна умова, то одразу виконується команда алгоритму, яка стоїть після команди вибору.

Приклади використання команди вибору:

а) Визначення пори року залежно від номера місяця.

вибір Місяць

при Місяць=1 або Місяць=2 або Місяць=12 :

Пора:="Зима"

при Місяць>2 і Місяць<6 : Пора:="Весна"

при Місяць>5 і Місяць<9 : Пора:="Літо"

при Місяпь>8 і Місяць<12 : Пора:="0сінь"

інакше Пора :="Неправильний номер місяця"

кв

б) Розв'язок квадратного рівняння А·Х2+ В·Х + С = О, А¹0.

Д:=В2-4·А·С

вибір Д при Д>0 :

пс С:="Два корені";

Xl:=(-B+sqrt(Д))/2/A;

X2:=(-B-sqrt(Д))/2/A

кс

при Д=0 :

пс С: = "0дин корінь";

Х:= -В/2/А;

кс

при Д<0 : С:="Немає коренів"

кв


Команди повторення

Для програмування циклів з передумовою в алгоритмічній мові застосовується команда повторення з передумовою.

Команда повторення з передумовою записується таким чином:

поки <умова>

<серія команд>

Принцип роботи:

Перевіряється <умова>; якщо вона виконується, то виконується <серія команд> і здійснюється повернення до перевірки <умови>. Якщо <умова> виявляється невиконаною, відбувається вихід з повторення. Оскільки <умова> перевіряється до початку виконання <серії команд>, вона може не виконуватися жодного разу.

<Серія команд> називається тілом циклу. Якщо серія містить більше однієї команди, їх треба поставити між словами пс та кс.

Приклади використання команди повторення з передумовою:

а) Наповнення бочки водою.

поки Бочка неповна

Налити в бочку відро води

б) Обчислення суми

1/2 + 1/3 + 1/4 +...+1/100

Сума:=0; Знаменник:=2

поки Знаменник <= 100

пс

Сума:=Сума+1/Знаменник

Знаменник:=3наменник+1

кс

Для програмування циклічних алгоритмів, в яких перевірка умови виконується після виконання тіла циклу, в алгоритмічній мові використовується команда повторення з після-умовою.

Команда повторення з післяумовою записується таким чином:

повторювати

<група команд>

доти <умова>

Принцип роботи:

Виконується <група команд>, після чого перевіряється <умова>. Якщо <умова> виконується, відбувається вихід з повторення, інакше — повернення до виконання <групи команд>.

Оскільки <умова> перевіряється після виконання <групи команд>, група буде виконана хоча б один раз.

Тілом циклу є група команд (а не серія), і її не треба брати в слова пс та кс.


Приклад використання команди повторення з післяумовою:

Обчислення факторіала числа

Н! = 1*2*3* ... *Н

Факт:=1; Множник:=1

повторювати

Факт := Факт * Множник

Множник := Множник + 1

доти Множник > Н

Для програмування алгоритмів, в яких до початку роботи циклу стає точно відомо, скільки саме разів необхідно виконати тіло циклу,

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

Команда повторення з лічильником записується таким чином:

для <змінна> від <ПЗ> до <КЗ> крок <КР> <серія команд>

<3мінна> — це змінна цілого або натурального типу даних, вона називається лічильником циклу; ПЗ (початкове значення) і КЗ (кінцеве значення) — величини відповідного типу,

Принцип роботи:

<Серія команд> (тіло циклу) виконується для всієї послідовності значень лічильника циклу від початкового до кінцевого включно з кроком КР. Отже, перший раз значення <змінної> дорівнює ПЗ, другий — ПЗ+КР, третій — ПЗ+2КР і так далі до КЗ.

Для додатних значень КР значення ПЗ повинно бути меншим за значення КЗ, для від'ємних КР — навпаки. Слово крок разом з величиною КР можна не записувати зовсім, якщо величина кроку дорівнює 1.

Якщо <серія команд> містить більше однієї команди, їх треба брати в слова пс та кс.

Роботу команди повторення з лічильником легко змоделювати за допомогою повторення з передумовою чи з післяумовою.

Наприклад, фрагмент алгоритму

для X від 2 до 100 крок 2

<серія команд>

можна записати з використанням повторення з передумовою таким чином:

Х:=2

поки X <= 100

пс

<серія команд>

X := X + 2

кс

Приклад використання команди повторення з лічильником:

Знаходження суми двозначних непарних чисел: Сума := О

для X від 11 до 99 крок 2

Сума:=Сума+Х

Допоміжні алгоритми

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

(в такому разі говорять, що головний алгоритм викликає допоміжний).

Допоміжний алгоритм зовні оформляється так само, як і головний, зв'язок між алгоритмами здійснюється через аргументи та результати допоміжного алгоритму (ці змінні називаються параметрами.алгоритму). Виклик допоміжного алгоритму здійснюється за допомогою команди виклику:

<Ім'я алгоритму> (<список параметрів алгоритму>)

<Список параметрів алгоритму> — це набір величин, які відповідають аргументам та результатам допоміжного алгоритму. Параметри відокремлюються один від одного комами. Для аргументів параметри можуть бути змінними або константами, для результатів — обов'язково змінними.

У момент виклику головний алгоритм припиняє роботу та починається виконання допоміжного алгоритму (говорять, що до нього передається управління). Після припинення виконання допоміжного алгоритму головний алгоритм продовжує роботу з місця виклику. При цьому змінюються значення змінних головного алгоритму, які відповідають результатам допоміжного алгоритму. Змінні головного алгоритму, які відповідають аргументам допоміжного, не змінюють своїх значень, навіть якщо у допоміжному їм надавалися які-небудь значення.

Наприклад:

Алгоритм знаходження найбільшого з двох чисел:

алг макс(нат А, Б, М)

арг А, Б

рез М

поч

якщо А > Б

то М := А

інакше М := Б

кін

Після виклику алгоритму макс(3, 198, МММ) змінна МММ набуде значення 198. За допомогою алгоритму макс можна скласти алгоритм знаходження найбільшого з чотирьох чисел:

алг макс4(нат А1, А2 , A3, А4, М)

арг А1, А2 , A3 , А4

рез М

поч нат М12 , М34

макс(АІ, А2, МІ2)

макс (A3, А4, М34)

макс(М12, М34, М)

кін


Тема 14 ОСНОВИ АЛГОРИТМІЗАЦІЇ І ПРОГРАМУВАННЯ

УРОК 10 Табличні величини


Для збереження та обробки великої кількості даних (сотень, тисяч величин тощо) в алгоритмічній мові введено спеціальний тип даних — таблиця.

Таблиця в алгоритмічній мові — це сукупність даних одного типу.

Змінні табличного типу підкоряються тим самим правилам, що й інші змінні, та описуються у вигляді:

<тип даних> таб <ім'я таблиці> [ ПЗ: КЗ ]

де <тип даних> — це тип змінних, які складають таблицю;

<ім'я таблиці> створюється за тими ж правилами, що й імена в алгоритмічній мові;

ПЗ — це номер першої змінної таблиці, КЗ — номер останньої змінної (тобто загалом таблиця буде мати КЗ-ПЗ+1 елемент).

Величини такого типу даних називають ще лінійними таблицями.

Наприклад:

нат таб А[ 1:100]— таблиця із 100 натуральних чисел;

ціл таб Б [ 0 :10 ] — таблиця із 11 цілих чисел;

літ таб В[ -50 :50 ] — таблиця із 101 змінної літерного типу.

Для звертання до конкретної комірки таблиці (для надання їй значення або для його зчитування) після назви таблиці в квадратних дужках позначається номер комірки, наприклад:

А[3]:= 8; А[Х+6]:= А[Х+7]-б;

А[б]:= довж(В[3])

Приклад алгоритму, який використовує таблиці:

У лінійній таблиці зберігаються значення температури, зареєстровані 1, 2,,.. 28 лютого 2002 року о 8.00 у Києві. Скласти алгоритм встановлення кількості днів у лютому, в які температура піднімалася вище від нульової позначки.

алг темп(нат таб Т[1:28], нат Кількість)

арг Т

рез Кількість

поч нат Н

Кількість:=0

для Н від 1 до 28

якщо Т[Н] > О

то Кількість:= Кількість+1

кін

Двомірні (прямокутні) табличні величини

Двомірні таблиці в алгоритмічній мові визначаються подібно до лінійних таблиць, дані в них розташовуються рядками однакової довжини. Отже, щоб указати комірку у двомірній таблиці, треба навести два цілих числа, перше з яких — це номер рядка, а друге — номер стовпчика.

Змінні типу двомірна тйошщя тгасуютъъа -у вигляді:

<тип даних> таб <ім'я таблиці>[П31:К31, П32:К32],

де П31:К31 — це діапазон зміни номера рядка, а П32:К32 — діапазон номера стовпчика (тобто загалом таблиця буде мати (К31-П31+1)·(К32-П32+1) елемент).

Наприклад:

нат таб А [ 1:10 0, 1:10] — таблиця із тисячі натуральних чисел;

ціл таб Б [ 0 :3 , 0:4] — таблиця із 20 цілих чисел;

літ таб В[-5:5, 7:10] — таблиця із 44 змінних літерного типу.

Для звертання до конкретної комірки таблиці (для надання їй значення або для його зчитування) після назви таблиці в квадратних дужках указуються номери рядка та стовпчика комірки, наприклад:

А[3,5]:=8; А[Х+6,Х-5]:=А[Х+7,3]-6;

А[6,6]:= довж(В[3,8])

Приклад алгоритму, який використовує дво-мірні таблиці:

Скласти алгоритм знаходження таблиці множення Піфагора для чисел від 1 до 9 (в такій таблиці кожний елемент дорівнює добутку номерів рядка та стовпчика).

алг Піфагор (нат таб П [ 1:9,1:9 ])

рез П

поч нат Рядок, Стовпчик для Рядок від 1 до 9

для Стовпчик від 1 до 9

П[Рядок,Стовпчик]:=Рядок*Стовпчик

кін