Виконання циклічних алгоритмів на базі системи "кумир"

цілі: Сформувати вміння записи, виконання та налагодження алгоритмів з використанням циклу бувай; домогтися розуміння використання циклу бувай ; розвивати вміння аналізувати.

Учні повинні знати: Правила запису та виконання циклу бувай; властивості циклу бувай.

Учні повинні вміти: Використовувати при складанні алгоритмів конструкцію циклу бувай   і записувати її на мові Кумир, володіти методами налагодження: по кроках, безперервно.

Метод навчання:пояснювально-ілюстративний і репродуктивний (на етапі пояснення нового матеріалу), репродуктивний з елементами проблемного (етап закріплення матеріалу).

Забезпечення уроку:

  • система Кумир;
  • Інтерактивна дошка;
  • мультимедійний проектор;
  • картки-завдання.

Хід уроку

1. Пояснення нового матеріалу.

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

Загальний вигляд циклу бувай

У загальному вигляді цикл бувай   записується так:

При виконанні циклу комп'ютер повторює наступні дії:

а) перевіряє записане після службового слова бувай   умова;

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

приклад.

метод налагодження: Крок за кроком.

Діалог Комп'ютера і Робота

комп'ютер: Знизу вільно?

робот: да.

комп'ютер: Вниз.

робот: Зміщується вниз в клітку Б.

комп'ютер: Знизу вільно?

робот: да.

комп'ютер: Вниз.

робот: Зміщується вниз в клітку В.

комп'ютер: Знизу вільно?

робот: немає.

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

Продемонструвати в системі Кумир методи налагодження: по кроках і безперервно.

Тіло циклу може не виконатися жодного разу,якщо умова в циклі бувай   не дотримується з самого початку. Наприклад, якщо в алгоритмі «вниз до стіни» Робот на перше ж питання «знизу вільно» відповість немає, То комп'ютер не викличе команду «вниз» жодного разу.

Зациклення.виконання циклу бувайможе й не завершитися, якщо умова весь час буде дотримуватися. Наприклад, якщо нижче Робота ніяких стін немає, то при виконанні попереднього алгоритму, комп'ютер «зациклиться», тобто буде нескінченно питати у Робота «знизу вільно», отримувати у відповідь да   і командувати «вниз».

Виконання вправ.

2. Експерименти з програмою на прикладі виконавця Робот.

Необхідно, в системі Кумир, попередньо зробити заготовки розташування Робота (файли 1.fil-6. fil).

Вправи.

Експерименти з програмою.

Завдання 1. (Завантажити файл 1.fil)

Потрібно перевести Робота з клітки А в клітку Б. Використовувати цикл бувай:

використовувати Робот

завдання 2. (Завантажити файл 2.fil)

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


завдання 3. (Завантажити файл 3.fil)

Робот знаходиться в горизонтальному коридорі. Зафарбувати всі клітини коридору:


завдання 4. (Завантажити файл 4.fil)

1. Переробіть алгоритм «зафарбувати ряд вправо і повернутися» використовуючи в ньому цикл:

2. Використовуючи допоміжний алгоритм, складіть алгоритм, при виконанні якого Робот зафарбовує прямокутник.


завдання 5. (Завантажити файл 5.fil)

Складіть алгоритм для зафарбовування всіх клітин навколо прямокутної стіни:

завдання 6. (Завантажити файл 6.fil) (З матеріалів іспиту 2009р.)

Робот знаходиться в лівому верхньому кутку обгородженого простору, що має форму прямокутника. Розміри прямокутника невідомі. Написати для Робота алгоритм, зафарбовувати чотири кутові клітини прямокутника.


завдання 7. (Завантажити файл 6.fil) (З матеріалів іспиту 2009 року)

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


3. Закріплення. питання:

Які команди Комп'ютер буде давати Роботу при виконанні циклу:

а) нц поки клітина не зафарбована

б) нц поки клітина зафарбована

У ситуації, коли Робот варто:

  1. в зафарбованою клітці,
  2. в не зафарбованою?

Розташування Робота показано на наступних малюнках:


Як буде виконуватися цикл?

Домашнє завдання.Визначте значення змінної S після виконання операторів:


література: А.Г.Кушніренко «Основи інформатики та обчислювальної техніки».

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

Отже, що таке цикл? Уявіть, що ми знаходимося на уроці фізичної культури і перед нами стоїть завдання зробити 7 присідань. Це завдання можна оформити у вигляді лінійного алгоритму і тоді воно буде виглядати приблизно так:

зроби присідання

зроби присідання

зроби присідання

зроби присідання

зроби присідання

зроби присідання

зроби присідання

Т. е ми повторили команду зроби присідання 7 разів. А чи є сенс писати 7 однакових команд? Може простіше дати команду зроби 7 присідань? Звичайно простіше і правильніше. Це і є цикл. Ви можете самі згадати приклади циклів з життя - їх досить багато.

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

повторюй 7 разів

зроби присідання

кінець циклу

Ось так, на вигаданому нами мовою ми оформили цикл. У виконавця Робот теж є можливість записувати цикли. причому, цикли бувають різні. Той варіант, який ми тільки що розглянули називається цикл з лічильником   або цикл з параметром.

Види циклів.

Цикл з лічильником.

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

Для того, щоб написати цикл з лічильником для виконавця необхідно знати його синтаксис. А він такий:

нц<кількість повторень\u003e раз

<команда 1>

<команда 2>

<команда n>

Тут ми повинні вказати кількість повторень (число) і команди, які будуть повторюватися. Команди, які повторюються в циклі називають тілом циклу.

Давайте розглянемо це на прикладі.

Спочатку Робот знаходився в лівій верхній клітині.

Давайте для початку вирішимо завдання лінійно. В цьому випадку ми буде зафарбовувати поточну клітку і переміщатися на 1 клітку вправо і програма буде виглядати так:
використовувати Робот
  алг
  нач

зафарбувати

вправо

зафарбувати

вправо

зафарбувати

вправо

зафарбувати

вправо

зафарбувати

вправо

зафарбувати

вправо

зафарбувати

вправо

Як бачимо, команди зафарбувати і вправо повторюються 7 раз. Давайте тепер перепишемо програму з використанням циклу. До речі, щоб вставити цикл в свою програму можна в меню вставка   вибрати пункт нц-раз-кц   або натиснути одну з комбінацій клавіш Esc, Р   (Російська буква Р) або Esc, H   (Латинська буква H). причому клавіші треба натискати послідовно   - спочатку Esc, відпустити її і тільки потім Р або H.

Так ось, наша програма з циклом   буде виглядати так:

використовувати Робот

нц 7 разів

зафарбувати

вправо

Якщо ми її запустимо, то побачимо, що в результаті вийде те ж саме - 7 зафарбованих клітин. Однак програма стала коротше і значно грамотніше з алгоритмічної точки зору!

В якості розминки і закріплення пропоную самостійно написати програму для Робота, яка намалює квадрат зі стороною 7 клітин. Природно, використовуючи цикл. Чекаю рішення в коментарях.

Цикл з умовою.

При вирішенні задачі 19 ДПА з інформатики з Роботом використовувати цикл з лічильником не вийде. Так як там поле, як правило, нескінченне і стіни не мають конкретної довжини. Тому ми не зможемо визначити кількість повторень для циклу з лічильником. Але не біда - нам допоможе цикл з умовою.

Повернемося до фізкультури і змінимо завдання. Адже хтось може і не зробити 7 присідань, а інший здатний зробити 27. Чи можна врахувати це при створенні циклу? Звичайно. Тільки тепер ми будемо використовувати не лічильник (кількість повторень), а умова. Наприклад, поки не втомився, роби присідання. У цьому випадку людина буде робити не конкретне число присідань, а присідати до тих пір, поки не втомиться. І наш цикл на абстрактному мовою прийме такий вигляд:

бувай не втомився

зроби присідання

кінець циклу

Слова не втомився в нашому випадку - це умова. Коли воно істинне, цикл виконується. Якщо ж воно помилкове (втомився) тіло циклу не буде виконано. У виконавця Робот є кілька умов

зверху вільно

знизу вільно

зліва вільно

праворуч вільно

зверху стіна

знизу стіна

зліва стіна

праворуч стіна

Але в умові завдання 19 ДПА вказані тільки перші 4. Так що будемо користуватися тільки ними.

Тепер давайте вирішимо наступну задачу для Робота - намалювати вертикальну лінію від лівого до правого кордону поля використовую цикл з умовою. Спочатку Робот знаходиться в лівому верхньому кутку.

Давайте спочатку сформулюємо словесний алгоритм - т. Е. Опишемо словами що потрібно робити Роботу. Цей алгоритм буде звучати приблизно так:

« Поки справа вільно роби крок вправо і зафарбовувати клітку »

В результаті Робот пробіжить по всіх клітках вправо і буде їх зафарбовувати до тих пір, поки справа не опиниться стіна.

Вихідний код нашої програми для Робота буде приблизно такою:

використовувати Робот

нц поки справа вільно

вправо

зафарбувати

В результаті виконання цієї програми ми побачимо ось таку картину:


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


Для закріплення прошу написати програму, яка буде робити рамку навколо робочого поля Робота незалежно від його розміру. Звичайно ж з використанням циклів з умовою. У результаті повинно вийти так:


Рішення чекаю в коментарях. І нагадую, до залишилося зовсім небагато часу, готуємося активніше.

Картки-завдання

    Знайдіть серед n -метою чисел вводяться з клавіатури кількість негативних

    Дано два довільних числа. Поки їх твір менше 100, збільшувати кожне число на 2 і вивести кінцеві числа на монітор

    Послідовно вводяться n -метою чисел. Знайти кількість п'ятірок в послідовності

    Послідовно вводяться n -метою чисел. Знайти різницю між максимальним і мінімальним значеннями даних чисел

    Знайдіть серед n -метою чисел вводяться з клавіатури кількість негативних

    Дано два довільних числа. Поки їх твір менше 100, збільшувати кожне число на 2 і вивести кінцеві числа на монітор

    Послідовно вводяться n -метою чисел. Знайти кількість п'ятірок в послідовності

    Послідовно вводяться n -метою чисел. Знайти різницю між максимальним і мінімальним значеннями даних чисел

    Знайдіть серед n -метою чисел вводяться з клавіатури кількість негативних

    Дано два довільних числа. Поки їх твір менше 100, збільшувати кожне число на 2 і вивести кінцеві числа на монітор

    Послідовно вводяться n -метою чисел. Знайти кількість п'ятірок в послідовності

    Послідовно вводяться n -метою чисел. Знайти різницю між максимальним і мінімальним значеннями даних чисел

    Знайдіть серед n -метою чисел вводяться з клавіатури кількість негативних

    Дано два довільних числа. Поки їх твір менше 100, збільшувати кожне число на 2 і вивести кінцеві числа на монітор

    Послідовно вводяться n -метою чисел. Знайти кількість п'ятірок в послідовності

    Послідовно вводяться n -метою чисел. Знайти різницю між максимальним і мінімальним значеннями даних чисел

цілі: Сформувати вміння записи, виконання та налагодження алгоритмів з використанням циклу бувай; домогтися розуміння використання циклу бувай ; розвивати вміння аналізувати.

Учні повинні знати: Правила запису та виконання циклу бувай; властивості циклу бувай.

Учні повинні вміти: Використовувати при складанні алгоритмів конструкцію циклу бувай   і записувати її на мові Кумир, володіти методами налагодження: по кроках, безперервно.

Метод навчання:пояснювально-ілюстративний і репродуктивний (на етапі пояснення нового матеріалу), репродуктивний з елементами проблемного (етап закріплення матеріалу).

Забезпечення уроку:

  • система Кумир;
  • Інтерактивна дошка;
  • мультимедійний проектор;
  • картки-завдання.

Хід уроку

1. Пояснення нового матеріалу.

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

Загальний вигляд циклу бувай

У загальному вигляді цикл бувай   записується так:

При виконанні циклу комп'ютер повторює наступні дії:

а) перевіряє записане після службового слова бувай   умова;

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

приклад.

метод налагодження: Крок за кроком.

Діалог Комп'ютера і Робота

комп'ютер: Знизу вільно?

робот: да.

комп'ютер: Вниз.

робот: Зміщується вниз в клітку Б.

комп'ютер: Знизу вільно?

робот: да.

комп'ютер: Вниз.

робот: Зміщується вниз в клітку В.

комп'ютер: Знизу вільно?

робот: немає.

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

Продемонструвати в системі Кумир методи налагодження: по кроках і безперервно.

Тіло циклу може не виконатися жодного разу,якщо умова в циклі бувай   не дотримується з самого початку. Наприклад, якщо в алгоритмі «вниз до стіни» Робот на перше ж питання «знизу вільно» відповість немає, То комп'ютер не викличе команду «вниз» жодного разу.

Зациклення.виконання циклу бувайможе й не завершитися, якщо умова весь час буде дотримуватися. Наприклад, якщо нижче Робота ніяких стін немає, то при виконанні попереднього алгоритму, комп'ютер «зациклиться», тобто буде нескінченно питати у Робота «знизу вільно», отримувати у відповідь да   і командувати «вниз».

Виконання вправ.

2. Експерименти з програмою на прикладі виконавця Робот.

Необхідно, в системі Кумир, попередньо зробити заготовки розташування Робота (файли 1.fil-6. fil).

Вправи.

Експерименти з програмою.

Завдання 1. (Завантажити файл 1.fil)

Потрібно перевести Робота з клітки А в клітку Б. Використовувати цикл бувай:

використовувати Робот

завдання 2. (Завантажити файл 2.fil)

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

завдання 3. (Завантажити файл 3.fil)

Робот знаходиться в горизонтальному коридорі. Зафарбувати всі клітини коридору:

завдання 4. (Завантажити файл 4.fil)

1. Переробіть алгоритм «зафарбувати ряд вправо і повернутися» використовуючи в ньому цикл:

2. Використовуючи допоміжний алгоритм, складіть алгоритм, при виконанні якого Робот зафарбовує прямокутник.

завдання 5. (Завантажити файл 5.fil)

Складіть алгоритм для зафарбовування всіх клітин навколо прямокутної стіни:

завдання 6. (Завантажити файл 6.fil) (З матеріалів іспиту 2009р.)

Робот знаходиться в лівому верхньому кутку обгородженого простору, що має форму прямокутника. Розміри прямокутника невідомі. Написати для Робота алгоритм, зафарбовувати чотири кутові клітини прямокутника.

завдання 7. (Завантажити файл 6.fil) (З матеріалів іспиту 2009 року)

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

3. Закріплення. питання:

Які команди Комп'ютер буде давати Роботу при виконанні циклу:

а) нц поки клітина не зафарбована

б) нц поки клітина зафарбована

У ситуації, коли Робот варто:

  1. в зафарбованою клітці,
  2. в не зафарбованою?

Розташування Робота показано на наступних малюнках:

Як буде виконуватися цикл?

Домашнє завдання.Визначте значення змінної S після виконання операторів:

література: А.Г.Кушніренко «Основи інформатики та обчислювальної техніки».

1. Вступ

система "кумирів" (назва походить від слів "Комплект Навчальних Міров"), з якої вас познайомить даний електронний варіант підручника.
  Розробники мови "кумирів" мали на меті створити просту мову для початкового курсу інформатики, що відповідає сучасній технології програмування і допускає виробниче використання. За основу був узятий шкільний алгоритмічний мову. Мова був доповнений деякими можливостями, що перетворюють його з навчального в виробничий. У мові є:
  типи цілий, вещ, літ; традиційний набір операцій над даними цих типів (включаючи операції над рядками і стандартний набір математичних функцій);
  масиви ( таб) Зазначених типів; структурні керуючі конструкції циклів, розгалуження і ін.
  Кумир відкритий - підключення зовнішніх виконавців збагачує мову новими можливостями: від управління базами даних   і роботи з геометричними об'єктами до розширення безлічі допустимих числових типів (при цьому мова дозволить змішувати в виразах нові типи з уже існуючими числовими типами).
сучасна технологія   програмування вчить розбивати програму не тільки на підпрограми, а й на більші одиниці: набори програм, що працюють над загальними даними. У різних мовах програмування такі одиниці називаються по-різному, в кумира така одиниця називається "Виконавець". Поняття виконавця надзвичайно важливо в практичній роботі   , І має бути введено на якомога більш ранніх стадіях навчання.
  Досвід використання кумира в викладанні і для розробки навчального програмного   забезпечення показав, що мова простий у вивченні і разом з тим досить потужний для розширення широкого класу виробничих завдань.
  Подібно Е-практикуму, кумир є інтегрованою системою, що включає текстовий редактор, інкрементальний компілятор з нульовим часом відповіді, а так само простий і зручний відладчик. Гарна назва для системи такого роду - "Редактор-компілятор": поки ви вводите вашу програму, компілятор її обробляє, і в будь-який момент програма готова до виконання без найменшої затримки.

2. Імена та типи величини. операції кумирів

У записі імен змінних можуть бути використані будь-які символи російського і латинського алфавіту , А так само цифри. Ім'я не повинно починатися з цифри. На довжину імен в системі кумира строгих обмежень не накладається, але для зручності редагування і щоб уникнути переповнення рядків змінним і алгоритмам не варто давати надто довгі імена. Зазвичай ім'я підбирається так, щоб можна було зрозуміти, для чого призначений алгоритм. При редагуванні програм також слід пам'ятати про те, що російські і латинські букви, схожі за написанням, розрізняються ЕОМ. Наприклад, якщо при описі змінної з ім'ям А користувач набрав "А" на латинському алфавіті, а в тексті алгоритму намагається звернутися до цієї змінної, набираючи її ім'я російською алфавіті, то в цьому рядку на "полях" з'явиться повідомлення "ім'я не визначено" .
  В алгоритмічній мові системи програмування кумира використовуються три типи величин: цілі ( цілий), Речові ( вещ) І літерні ( лит).
Тип величини   - визначає безліч значень, які може приймати величина, і безліч дій, які можна виконувати з цією величиною.
величина   - це окремий інформаційний об'єкт, який має ім'я, значення і тип.

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

Для позначення знаків логічних операцій використовуються символи:
  = Одно;
< >   не дорівнює;
< меньше;
  \u003e Більше;
< = меньше или равно;
  \u003e = Більше або дорівнює;
  Для запису складних умов використовуються такі операції як: І, АБО НЕ.
  І -
одночасне виконання перерахованих умов (Х\u003e 0 і Х< = 2);
АБО   - виконання хоча б однієї з умов (Х\u003e 0 або Y\u003e 0);
НЕ   - заперечення.

3. Вбудовані функції мови кумирів

Наведемо приклад вбудованих функцій:

  звернення

  функція

типи

  аргументу

  функції

SIN (X) COS (X) TG (X) EXP (X) LN (X) ABS (X) SQRT (X) MOD (A,B) INT (X)   ПІ

  синус х   косинус х   тангенс х
  експонента х (ех)   натур. логарифм х
  модуль х
  корінь квадратний х
  залишок від ділення (А на В)
  ціла частина числа
  число "пі" - 3,14159

вещ
вещ
вещ
вещ
вещ
вещ
вещ
вещ, цілий
вещ
вещ

вещ
вещ
вещ
вещ
вещ
вещ
вещ
цілий
цілий
без аргумен

Приклад запису арифметичних виразів на алгоритмічній мові:

4. Команди ВВЕДЕННЯ / ВИВЕДЕННЯ інформації

Часто потрібно організувати обмін інформацією ( "діалог") між людиною і ЕОМ в процесі виконання алгоритму. Для цього в алгоритмічній мові є спеціальні команди ВИВЕДЕННЯ інформації з пам'яті ЕОМ на екран і ВВЕДЕННЯ інформації з клавіатури (від людини) в пам'ять ЕОМ.
  Команда ВВЕДЕННЯ -команда, по якій значення змінних задаються через пристрої введення (клавіатура).
  команда ВИВЕДЕННЯ- команда, по якій значення величини відбивається на пристрої виведення комп'ютера (екран монітора).
  Оскільки в алгоритмічній мові для запам'ятовування інформації використовуються величини, то в командах введення / виведення вказуються імена величин, значення яких треба вивести (показати на екрані) або ввести (запам'ятати в пам'яті ЕОМ).
  приклад:

службове слово НС   (Новий рядок) вказує ЕОМ, що інформація повинна виводитися на новий рядок.

5. Команда присвоювання. Створення та редагування програм лінійної структури

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

ІМ'Я ВЕЛИЧИНИ: = Вирази

Знак ": =" (двокрапка, а потім рівність) називається знаком присвоювання і читається як "привласнити" (наприклад, команда "n: = e" читається "n привласнити е"). При виконанні команди присвоювання ЕОМ спочатку обчислює записане в правій частині вираження (замінюючи імена величин на їх значення), а потім отримане значення виразу записує в пам'ять.

Алгоритми, що представляють собою просту послідовність дій, називаються алгоритмами лінійної структури.
  Розглянемо процес створення лінійного алгоритму на прикладі обчислення виразу:
  1. Обчислити суму двох чисел
  2. Написати програму знаходження гіпотенузи прямокутного трикутника за двома даними катетам
  3. Знайти об'єм куба, якщо відома його сторона

6. Створення та редагування програм розгалужується структури

Рішення задач не завжди можна представити у вигляді лінійного алгоритму. Існують завдання, в яких потрібно організувати вибір виконання послідовності дій в залежності від будь-яких умов. Такі алгоритми називаються алгоритмами розгалужується структури.   В системі програмування кумиром для створення алгоритму розгалужується структури передбачені конструкції "ЯКЩО - ТО - ІНАКШЕ - ВСЕ" і "ВИБІР - ПРИ - ВСЕ".

Команда розгалуження: ЯКЩО - ТО - ІНАКШЕ - ВСЕ

Команда розгалуження - поділяє алгоритм на два шляхи в залежності від деякої умови; потім виконання алгоритму виходить на загальне продовження. Розгалуження буває повне і неповне.

Графічна схема виконання конструкції " якщо"

Службові слова " якщо", "то", "інакше"Мають звичайний сенс. Слово" усе"Означає кінець конструкції. Між" то"І" інакше"- в одній або декількох рядках - записується послідовність команд алгоритмічної мови (серія 1). Між" інакше"І" усе"Записується інша послідовність команд (серія 2). Серія 2 разом зі службовим словом" інакше"Може бути відсутнім. При виконанні конструкції" якщо"ЕОМ спочатку перевіряє умова, записана між" якщо"І" то". У результаті перевірки виходить або ТАК, або НІ.Якщо вийде ТАК,   то виконується СЕРІЯ 1, а якщо НІ, -   то СЕРІЯ 2 (якщо вона є) .
  Якщо умова не дотримується (вийде НІ), А серія 2 разом з " інакше"Відсутній, то ЕОМ відразу переходить до виконання команд, записаних після слова" усе".

7. Види циклів в системі програмування кумирів

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

  Цикл з передумовою (цикл поки)

Цикл з передумовою (цикл поки) - цикл, виконання якого повторюється, поки істинно умова циклу. службові слова НЦ(Початок циклу) і   КЦ(Кінець циклу) пишуться строго одне під іншим і з'єднуються вертикальною лінією. Правіше цієї риси записується повторювана послідовність команд (тіло циклу).

При його виконанні ЕОМ циклічно повторює наступні дії:
  а) перевіряє записане після слова бувай   умова;
  б) якщо умова не дотримується (умова помилкова), то виконання циклу завершується і ЕОМ починає виконувати команди, записані після КЦ. Якщо ж умова дотримується (умова істинно), то ЕОМ виконує тіло циклу, знову перевіряє умова і т. Д.
  Якщо умова в циклі бувай   не дотримується з самого початку, то тіло циклу не виконується жодного разу.
  зауваження. виконання циклу бувайможе й не завершитися, якщо умова весь час буде істинним (цю ситуацію прийнято називати зацикленням). Тому щоб уникнути подібних ситуацій в тілі циклу повинні міститися команди зміни умови.

Дано ціле позитивне число N. Обчислити факторіал цього числа: N! = 1 * 2 * 3 * ... *   N.

Цикл з параметром (цикл для)

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

Тут i - змінна цілого типу, яка називається параметром циклу: i1, in - початкове і кінцеве значення параметра циклу, які можуть бути задані або довільними цілими числами, або виразами з цілими значеннями; h - крок зміни значення параметра циклу, значенням кроку може бути будь-яке ціле число (як позитивне, так і негативне). Запис "крок h" в першому рядку може взагалі бути відсутнім, при цьому за замовчуванням значення кроку приймається рівним 1.
  При виконанні циклу для,   його тіло виконується для i = i1, i = i1 + h, i = i1 + 2 * h,. . . , I = in. Правила алгоритмічного мови допускають завдання будь-яких цілих i1, in, h. Зокрема, in може бути менше i1. Якщо при цьому значення h< 0, то цикл выполняется нужное количество раз, а если h имеет положительное значение, то этот случай не считается ошибочным - просто тело цикла не будет выполнено ни разу, а ЭВМ сразу перейдет к выполнению команд, записанных после КЦ. При h = 0 відбувається зациклення.

Приклад: Дано ціле позитивне число N. Обчислити факторіал цього числа: N! = 1 * 2 * 3 * ... * N.

8. Алгоритми рекурентних виразів

В математики та інформатики часто зустрічаються послідовності, в яких кожен наступний член обчислюється через попередні.
  В арифметичній прогресії, наприклад, кожен наступний член дорівнює попередньому, збільшеному на різницю прогресії:

ai =ai-1 +d

У послідовності 1, 1, 2, 3, 5, 8, 13, ... ( вона називається послідовністю Фібоначчі) Кожен наступний член дорівнює сумі двох попередніх. Для цієї послідовності

ai = ai-1 + ai-2, a1 = a2 = 1

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

9. Табличні величини та робота з ними

Для запису алгоритмів, що працюють з великим обсягом інформації, в алгоритмічній мові існують спеціальні табличні величини, звані таблицями (масивами).
  Табличні величини складаються з інших величин, як правило, цілих або речових, які називаються елементами. Елементи в таблиці можуть бути розташовані по-різному. В алгоритмічній мові системи програмування кумира використовуються 2 найбільш часто зустрічаються види таблиць: лінійні і прямокутні таблиці.

Робота з лінійними таблицями (одновимірними масивами)

Як і будь-яка величина, лінійна таблиця   займає місце в пам'яті ЕОМ, має ім'я, значення і тип. У кумира використовуються таблиці цілого (целтаб) і речового (вещтаб) типів. наприклад:

Запис целтаб А [1: 5] означає, що величина А є таблицею (таб), що складається з цілих (цілий) чисел, елементи даної таблиці мають індекси от1 (нижня межа) до 5 (верхня межа). Значення А - це п'ять цілих чисел: 3, 15, 0, -10,101.
  Елементи таблиці окремих імен не мають. Для позначення i-го елемента таблиці А використовується запис А [i]. Наприклад, при виконанні команди А [3]: = A [2] + A [4] ЕОМ підставить замість А [2] і А [4] значення 2-го і 4-го елементів таблиці А, т. Е. Числа 15 і -10, складе їх і привласнить отримане значення 3-му елементу, таким чином, на місці 3-го елемента в таблиці замість 0 з'явиться значення 5.
  Як значення кордонів таблиці можуть бути використані будь-які (як позитивні, так і негативні) цілі числа, а також 0. Значення нижньої межі повинно бути менше значення верхньої межі, в разі їх рівності таблиця вважається складається з одного елемента. Якщо в описі таблиці через описки нижня межа виявиться більше верхньої, наприклад, целтаб [3: 1], то це не буде вважатися помилкою, і при введенні алгоритму ніяких повідомлень на "полях" не з'явиться. У цьому випадку буде вважатися, що в цій таблиці немає жодного елемента, і при першому ж зверненні до цієї таблиці з'явиться повідомлення "поганий індекс".

Завдання.

Робота з прямокутними таблицями (матрицями)

Як і лінійна таблиця, матриця займає місце в пам'яті ЕОМ, має ім'я, значення і тип. У кумира використовуються таблиці цілого (целтаб) і речового (вещтаб) типів.

Запис целтаб А [1: 5, 1: 2] означає, що величина А є таблицею (таб), що складається з цілих (цілий) чисел, елементи даної таблиці мають індекси від (перший стовпець, перший рядок) до (останній стовпець, остання рядок). Значення А - це десять цілих чисел: 3, 15, 0, -10, 101, 200, -45, 50, 10, 222.
Елементи таблиці окремих імен не мають. Для позначення i-го елемента таблиці А використовується запис А [i, j]. Наприклад, при виконанні команди А [3, 1]: = A [2, 1] + A [4, 1] ЕОМ підставить замість А [2, 1] і А [4, 1] значення 2-го і 4-го елементів першого стовпця таблиці А, т. е. числа 15 і -10, складе їх і привласнить отримане значення 3-му елементу в першому рядку таким чином, на місці 3-го елемента першого рядка в таблиці замість 0 з'явиться значення 5.
  Як значення кордонів таблиці можуть бути використані будь-які (як позитивні, так і негативні) цілі числа, а також 0. Значення нижньої межі повинно бути менше значення верхньої межі, в разі їх рівності таблиця вважається складається з одного елемента. Якщо в описі таблиці через описки нижня межа виявиться більше верхньої, наприклад, целтаб [3: 1, 5: 2], то це не буде вважатися помилкою, і при введенні алгоритму ніяких повідомлень на "полях" не з'явиться. У цьому випадку буде вважатися, що в цій таблиці немає жодного елемента, і при першому ж зверненні до цієї таблиці з'явиться повідомлення "поганий індекс".

Завдання.   У заданої таблиці В визначити індекс і значення максимального елемента.

Додаток: Завдання

лінійні алгоритми

завдання №1

Знайдіть суму двох чисел - а й b
Рішення:

алг   сума
нач вещ   a, b, c
висновок   "Введіть значення 2 чисел"
введення   a, b
з: = a + b
висновок нс , "Сума чисел", a, "і", b, "дорівнює", c
кін

завдання №2

Знайдіть різницю двох чисел
Рішення:

  алг   різницю
нач вещ   a, b, c
висновок   "Введіть значення змінних"
введення   a, b
з: = a - b
висновок нс,   "Різницю чисел", a, "і", b, "дорівнює", c
кін

завдання №3

Знайдіть добуток двох будь-яких натуральних чисел
Рішення:

цілий a, b, c

алг твір
нач
висновок
" введіть два числа "
введення
a,bc: =a +b
висновок нс,
"
твір чисел ", a," і ", b" одно ", c
кін

завдання №4

Знайдіть частка двох натуральних чисел
Рішення:

вещ a, b, c

алг приватна
нач
висновок "
введіть ділене і дільник "
введення
a, b
c: = a / b
висновок нс,
"Приватне чисел", a, "і", b, "дорівнює", c
кін

завдання №5

Знайдіть середнє арифметичне п'яти довільних чисел
Рішення:

вещ   a, b, c, d, e, f

алг   арифметичне
нач вещ   a, b, c, d, e, f
висновок   "Введіть 5 будь-яких чисел"
введення   a, b, c, d, e
f: = (a + b + c + d + e) ​​/ 5
висновок нс , "Середнє арифметичне 5 чисел одно", f
кін

розгалуження

завдання №1

Знайдіть серед 3 цілих чисел найбільше (числа довільні)

алг   максимум
поч цілий   а Б В
висновок   "Введіть три довільних числа"
введення   а Б В
якщо   а\u003e б\u003e з
то висновок нс , "Максимальним числом є", а
усе
якщо   а<б>з
то висновок нс , "Максимальним числом є", б
усе
якщо   а<б<с
то висновок нс , "Максимальним числом є", з
усе
кін

завдання №2

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

алг   умова
нач вещ   а, б
висновок   "Введіть два числа"
введення   а, б
якщо   а\u003e б
то   а: = а + б
  б: = а * б
інакше   а: = а * б
  б: = а + б
висновок нс , А, б
кін

Завдання №3:

Знайдіть серед 4 довільних чисел мінімальне
Рішення:

алг   мінімум
нач вещ   а, б, с, е
висновок   "Введіть 4 довільних числа"
введення   а, б, с. е
якщо   а\u003e б\u003e з\u003e е
то висновок нс , "Максимальне число -", а
усе
якщо   а<б>c\u003e е
то висновок нс , "Максимальне число -", б
усе
якщо
  а<б<с>е
то висновок нс , "Максимальне число -", з
усе
якщо
  а<б<с<е
то висновок нс , "Максимальне число -", е
усе
кін

завдання №4

Дано 2 катета (2 см і 2 см) рівнобедреного трикутника і його підставу (2.82 см). Визначити, чи є трикутник прямокутним.
Рішення:

алг   трикутник
нач вещ   я, ч, з
я: = 2
ч: = 2
з: = 2.82
якщо   с ** 2 = (я ** 2) + (ч ** 2)
то висновок   "Істина"
інакше висновок   "Брехня"
усе
кін

завдання №5

Вивести повідомлення "істина", якщо твір двох негативних чисел більше нуля, інакше вивести повідомлення "брехня"
Рішення:

алг   негативні
нач вещ   я, ч, с, м
висновок   "Введіть два від'ємних числа"
введення   я, ч
з: = 0
м: = я * год
якщо   м\u003e з
то висновок нс , "Істина"
інакше висновок нс , "Брехня"
усе
кін

Цикл «для»

завдання №1

Знайдіть Факторіал   натурального числаn ( Факторіалом натурального числа n є твір всіх натуральних чисел на проміжку від 1 до n ) Рішення:

алг факторіал
нач вещ
а. б
цілий
н, і
висновок

введення
  н
а: = 1
нц для
і від 1 до н
висновок нс,
" введіть число"
введення
б
  а: = а * б
кЦ
висновок нс
,
"Факторіал", н, "цілих чисел дорівнює", а
кін

завдання №2

Знайдіть максимальне значення середn - цілих чисел
Рішення:

алг максимум
нач вещ
а, б
цілий
і, н
висновок
"Введіть кількість цілих чисел для порівняння"
введення
н
а: = 0
нц для
і від 1 до н
висновок нс,
"введіть число"
введення
б
якщо
б\u003e а
то
а: = б
усе
кЦ
висновок нс,
"Максимальним числом серед даних є число", а
кін

завдання №3

Знайдіть середn-цілих чисел кількість негативних
Рішення:

алг збіг
нач вещ
а, б, з
цілий
н, і, з
висновок "
введіть кількість натуральних чисел "
введення
н
висновок нс,
"введіть число"
введення
б
н: = н - 1
з: = 0
нц для
і від 1 до н
висновок нс,"
  введіть число"
введення
з
  якщо
з = б
то
  з: = з + 1
усе
кЦ
висновок нс
,

кін

завдання №4

Послідовно вводяться n-цілих чисел. Знайти кількість збігів з першим числом
Рішення:

нач вещ а, б, з
цілий
н, і, з
висновок
"Введіть кількість натуральних чисел"
введення
н
висновок нс,
"введіть число"
введення
б
н: = н - 1
з: = 0
нц для
і від 1 до   н
висновок нс,
" введіть число"
введення
з
  якщо
з = б
то   з: = з + 1
усе
кЦ
висновок нс
,
"Кількість збігів з першим числом одно", з
кін

завдання №5

Послідовно вводяться n-цілих чисел. Знайти різницю між максимальним і мінімальним значеннями даних чисел
Рішення:

алг різниця
нач вещ
а. б, с, д
цілий
н, і
висновок
"Введіть кількість чисел"
введення
н
а: = 0
з: = 0
нц для
і від 1 до   н
висновок нс,
"введіть число"
введення
д
якщо
д\u003e з
то
з: = д
усе
якщо
д<а
то
а: = д
усе
кЦ
  б: = с - а
висновок нс,
"Різниця між мінімальним і максимальним значеннями дорівнює", б
кін

Цикл «поки»

завдання №1

Знайти суму всіх чисел на проміжку від 1 до 5
Рішення:

алг   числа
нач вещ   а, б
висновок   "Введіть два таких числа, що друге число більше першого"
введення   а, б
нц поки   а<б
  а: = а + 1
кЦ
висновок нс
, а
кін

завдання №2

Дано два таких числа, що друге число більше першого. Треба додавати до першого числа по 1, поки воно не буде так само другого числі, вивести його на монітор.
Рішення:

алг   сума
нач вещ   а, б, з
висновок "Введіть проміжок підсумовування"
введення   а, б
з: = а
нц поки   а< б
а: = а + 1
з: = з + а
кЦ
висновок нс
, "Сума чисел на даному проміжку дорівнює", з
кін

завдання №3

Дано два довільних числа. Поки їх твір менше 100, збільшувати кожне число на 2 і вивести кінцеві числа на монітор
Рішення:

алг   твір
нач вещ   а, б, з
висновок   "Введіть два довільних числа"
введення   а, б
з: = 100
нц поки   а * б< с
а: = а + 2
б: = б + 2
кЦ
висновок нс
, А, б
кін

одномірні масиви

завдання №1

Заповніть масив випадковими числами і виведіть його елементи Рішення:

алг масив 2
поч цілий
n, i
вещ
b, max
вещтаб
а [1: n]
висновок
"Заповніть масив"
введення
n
max: = 0
нц для
i від 1 до   n
висновок нс,
"Введіть елемент масиву"
введення
b
якщо
b\u003e max
то   max: = b
усе
кЦ
висновок нс
,

кін

завдання №2

Знайдіть максимальний елемент масиву і виведіть його на монітор Рішення:

алг масив 2
нач
цілий   n, i
вещ
b, max
вещтаб а [1: n]
висновок
"Заповніть масив"
введення
n
max: = 0
нц для
i від 1 до   n
висновок нс,
"Введіть елемент масиву"
введення
  b
якщо
b\u003e max
то   max: = b
усе
кЦ
висновок нс
,
"Максимальний елемент даного масиву дорівнює", max
кін

завдання №3

Знайдіть суму елементів одновимірного масиву Рішення:

алг сума
нач цілий
n, i
вещтаб
а [1: n]
вещ
b, z
висновок
"Введіть кількість елементів масиву"
введення
n
z: = 0
нц для i від 1 до   n
висновок нс,
"Введіть елемент масиву"
введення
  b
z: = z + b
кЦ
висновок нс
,
"Сума", n, "елементів масиву дорівнює", z
кін

завдання №4

Знайдіть твір елементів одновимірного масиву Рішення:

алг твір
поч цілий
i, n
вещ
s, d
вещтаб
а [1: n]
висновок
"Введіть кількість елементів масиву"
введення
n
d: = 1
нц для
i від 1 до   n
висновок нс,
"введіть число"
введення
s
d: = d * s
кЦ
висновок нс
,"
  твір ", n," елементів одно ", d
кін

масиви

завдання №1


Заповніть матрицю випадковими числами Рішення:

алг масив двовимірний
цілий
n, j, h, v
нач вещтаб
а
висновок
"Введіть кількість елементів таблиці"
введення
  n
h: = 0
v: = 0
висновок нс,
"Заповніть масив"
введення
a
нц для
j від 1 до   n
якщо а\u003e 0
то
h: = h + 1
інакше
v: = v + 1
кЦ
висновок нс,
а
кін


завдання №2


Обчисліть кількість позитивних і негативних елементів першого рядка матриці Рішення:

алг масив 2
нач
вещ   b, x, z
цілий
i, n
висновок

введення
n   x: = 0
z: = 0
нц для
i від 1 до   n
висновок
нс," введіть число"
введення
  b
якщо
b\u003e 0
то
x: = x + 1
інакше
z: = z + 1
усе
кЦ
висновок нс
,

висновок нс,

кін


завдання №3


Обчисліть суму елементів кожного рядка Рішення:

алг масив 3
нач вещ
b, x, z, y
цілий
i, n
вещтаб
a [1: n, 1: n]
висновок
"Введіть кількість стовпців"
введення
n   x: = 0
z: = 0
нц для
i від 1 до   n
висновок нс,
"Заповніть масив"
введення
a [1: n, 1: n]
b: = a [1, i] + a [n, i]
кЦ
висновок нс
,
"Кількість позитивних чисел одно", x
висновок нс,
"Кількість негативних чисел одно", z
кін


завдання №4


Обчисліть суму трьох чисел другого рядка матриці розміром три на три Рішення:

алг   матриця
нач цілий
i, n
вещтаб   a [1: 3, 1: 3]
висновок   "Заповніть масив"
введення   a [1: 3, 1: 3]
n: = 0
нц для i від 1 до 3
n: = n + a [2, i]
кЦ
висновок нс,
"Сума чисел другого рядка масиву дорівнює", n
кін