Мова програмування Turbo Basic Зміст матеріалу: Опис розгалуження на мові Turbo Basic. Операції відношення, логічні операції. Структура розгалужень (умовний та безумовний переходи). Приклади програм. Опис циклу на мові Turbo Basic. Цикл FOR/NEXT. Приклади. Цикл WHILE/WEND. Приклади.
Опис розгалуження на мові Turbo Basic Розгалуження - це алгоритмічна конструкція, де перевіряється умова і залежно від її істинності чи хибності виконується та чи інша серія операторів. Іншими словами, розгалужений алгоритм містить крім простих команд ще й умовну команду. Розгалуження - це алгоритмічна конструкція, де перевіряється умова і залежно від її істинності чи хибності виконується та чи інша серія операторів. Іншими словами, розгалужений алгоритм містить крім простих команд ще й умовну команду. Умовна команда - це вказівка виконувати одну з двох команд. Вивчатимемо такі види розгалужень: Умовна команда - це вказівка виконувати одну з двох команд. Вивчатимемо такі види розгалужень: 1) повне ; 2) неповне ; 3) оператор безумовного переходу; умовний перехід умовний перехід При реалізації лінійних програм на комп'ютері виникла проблема. Суть її полягає у слідуючому: При реалізації лінійних програм на комп'ютері виникла проблема. Суть її полягає у слідуючому: Розглянемо такий приклад: Знайдіть значення, виразу: На перший погляд це лінійний алгоритм, тобто в результаті складання програми отримаємо лінійну програму. Але знаходження значення цього виразу при х = 1 приводить до видачі комп'ютером помилки, тобто програма складена неправильно, що неможливо. На перший погляд це лінійний алгоритм, тобто в результаті складання програми отримаємо лінійну програму. Але знаходження значення цього виразу при х = 1 приводить до видачі комп'ютером помилки, тобто програма складена неправильно, що неможливо. Вирішення цієї проблеми можна реалізувати за допомогою розгалуженої програми, поставивши при цьому умову. Вирішення цієї проблеми можна реалізувати за допомогою розгалуженої програми, поставивши при цьому умову.
Опис розгалуження Для реалізації програми розгалуження необхідно знати структуру розгалуження. Для реалізації програми розгалуження необхідно знати структуру розгалуження. Структура повного розгалуження має вигляд : IF умова THEN оператор 1 ELSE оператор 2 Словесно повне розгалуження має вигляд : якщо умова то оператор 1 інакше оператор 2 Правило виконання вказівки про розгалуження: Якщо умова, записана після службового слова IF (якщо), виконується, то виконується оператор 1 (оператори, команди), який слідує після службового слова THEN (то), а оператор 2, який слідує після службового слова ELSE (інакше) - пропускається і на цьому виконання вказівки про розгалуження закінчується. Якщо ж умова, записана після службового слова IF (якщо) не виконується, то оператор 1, який слідує після службового слова THEN (то) пропускається, а виконується оператор 2, який слідує після службового слова ELSE (інакше), після чого виконання вказівки про розгалуження закінчується. Якщо умова, записана після службового слова IF (якщо), виконується, то виконується оператор 1 (оператори, команди), який слідує після службового слова THEN (то), а оператор 2, який слідує після службового слова ELSE (інакше) - пропускається і на цьому виконання вказівки про розгалуження закінчується. Якщо ж умова, записана після службового слова IF (якщо) не виконується, то оператор 1, який слідує після службового слова THEN (то) пропускається, а виконується оператор 2, який слідує після службового слова ELSE (інакше), після чого виконання вказівки про розгалуження закінчується. Структура неповного розгалуження має вигляд : IF умова THEN оператор Словесно неповне розгалуження має вигляд : Словесно неповне розгалуження має вигляд : якщо умова то оператор Правило виконання вказівки про розгалуження: В разі виконання умови, записаної після слова IF (якщо), виконується оператор, який слідує після слова THEN (то), після чого виконання вказівки про розгалуження закінчується. Якщо ж вказана умова не виконується, то виконання вказівки одразу закінчується, ніякі дії при цьому не виконуються. В разі виконання умови, записаної після слова IF (якщо), виконується оператор, який слідує після слова THEN (то), після чого виконання вказівки про розгалуження закінчується. Якщо ж вказана умова не виконується, то виконання вказівки одразу закінчується, ніякі дії при цьому не виконуються.
Приклади програм 1. Складемо програму розв'язку лінійного рівняння: ах + b = 0. Пояснимо дану задачу детально: 1. Вхідні дані (аргументи) а, b; Вихідні дані (результати) х; Вихідні дані (результати) х; 2. Математична формула: якщо а = 0, b = 0 - безліч розв'язків; якщо а = О, b О - не існує розв'язків; якщо а О, b - будь-яке, то х = - b/а. 3. Блок – схема. 4. Програма: CLS REM Розвязки рівняння REM Розвязки рівняння INPUT a, b INPUT a, b IF a=0 and b=0 THEN PRINT безліч коренів IF a=0 and b=0 THEN PRINT безліч коренів IF a=0 and b 0 THEN PRINT коренів не існує IF a=0 and b 0 THEN PRINT коренів не існує IF a 0 THEN x=-b/a : PRINT x IF a 0 THEN x=-b/a : PRINT x END END
2. Чи поміститься квадрат, із стороною а в колі радіуса R ? 1. Вхідні дані а, R Вихідні дані у Вихідні дані у 2. математична формула: За т. Піфагора: a 2 +a 2 = 2R 2 2а 2 = (2R) 2, а за умовою повинно бути 2a 2 <(2R) 2 Отже, повинна перевірятися ця умова. 3. Блок-схема. 4. Програма: CLS REM розміщення INPUT a, R IF 2*a^2<(2*R)^2 THEN PRINT поміститься ELSE PRINT не поміститься END Для зміни порядку виконання програми і переходу з одного рядка програми в інший рядок використовується оператор GOTO (безумовний перехід). Оператор має вигляд: GOTO {номер рядка або мітка оператора} Номер рядка - це ціле число від О до 65535, яке ставиться перед оператором. Номер рядка - це ціле число від О до 65535, яке ставиться перед оператором. Мітка оператора - будь-яка кількість букв і цифр, яка повинна починатися з букв і міститися в окремому рядку. За міткою ставиться двокрапка. Мітка оператора - будь-яка кількість букв і цифр, яка повинна починатися з букв і міститися в окремому рядку. За міткою ставиться двокрапка. За допомогою оператора безумовного переходу GOTO можна переписати приклад 2 і одержати таку програму: За допомогою оператора безумовного переходу GOTO можна переписати приклад 2 і одержати таку програму:CLS REM розміщення INPUT a, R IF 2*a^2<(2*R)^2 THEN GOTO 1 ELSE GOTO 2 1 PRINT поміститься GOTO fin 2 PRINTне поміститься GOTO fin fin:END fin - мітка кінця програми.
Приклади програм 3. Напишіть програму обрахунку значення функції: при умові, що при умові, щоCLS REM обрахунок INPUT Х IF Х>=0 THEN Z=2*X ELSE Z=-X IF Z>=1 THEN f=Z^2 ELSE f=1-Z PRINT f END 4. Написати програму знаходження значення у для заданих значень: с*х+2, якщо с*х9 с*х+2, якщо с*х9 у = с 2 +х, якщо 9< с*х<20 с-х, якщо с*х20 с-х, якщо с*х20CLS REM обрахунок INPUT с, х a=c*x IF a<=9 THEN y=c*x+2 : PRINT у IF a>=20 THEN y=c-x : PRINT у IF a>9 and a 9 and a<20 THEN y=c^2+x : PRINT уEND
5. Визначити, чи є трикутник зі сторонами а,b,с рівнобедреним. Написати програму. CLS REM визначення INPUT а, b, с IF a=b or b=c or c=a THEN PRINT трикутник рівнобедрений ELSE PRINT трикутник не рівнобедрений END 6. Числа а і b виражають довжини катетів одного прямокутного трикутника, с і d - другого. Визначити, чи є ці трикутники рівними. CLS REM визначення INPUT a, b, c, d IF (а=с and b=d) or (a=d and b=c) THEN PRINT трикутники - рівні ELSE PRINT трикутники - не рівні END
Опис циклу на мові Turbo Basic Цикл - це алгоритмічна конструкція, за допомогою якої деяка серія операторів повторюється певну кількість разів для різних значень величин, що є в циклі. Кількість повторень у циклі повинна бути скінченною. Розрізняють цикли, де кількість повторень відома заздалегідь і цикли, де вона заздалегідь невідома, але її можна визначити під час виконання циклу. Наприклад, обчислити суму десяти членів прогресії - це задача на виконання циклу з відомою кількістю повторень. У побуті прикладом циклу, де кількість повторень дій заздалегідь невідома, є процес наповнення водою посудини невідомої місткості за допомогою літрової банки. Розглянемо будову циклу: 1. Підготовка циклу На цьому етапі задаються початкові значення змінних, які є в циклі. Ця частина виконується один раз і може бути відсутньою якщо значень змінним надавати не треба. 2. Перевірка умови циклу Перевіряється умова, яка забезпечує вихід з циклу після досягнення мети. 3. Виконання серії операторів Виконуються основні дії, заради яких конструювали цикл. 4. Зміна значення параметра Згідно з умовою задачі змінюється значення змінної, яка є в умові. Ця змінна називається параметром циклу.
Розглянемо цикли двох типів: цикл для і цикл поки. 1) Цикл для призначений для організації повторень, якщо кількість повторень у циклі відома. Словесне цикл для має вигляд: для і від а до в крок с пц серія операторів кц Мовою Turbo Basic цикл "для" записується так: FOR і = a TO в STEP с тіло циклу (серія операторів) NEXT і де FOR, TO, STEP - службові слова, які утворюють оператор; NEXT (наступний) - фіксує кінець тіла циклу і змінює значення параметра і ; Серія операторів - це ті оператори, які виконуються багато разів; і - називається параметром циклу; а - задає початкове значення параметра циклу; в - кінцеве значення параметра циклу; с - значення кроку, на яке щоразу змінюємо значення параметра циклу. Опис роботи: Виконання оператора циклу починається з присвоєння змінній циклу ( і ) вказаного початкового значення. Потім виконуються оператори, які складають тіло циклу. В результаті виконання оператора NEXT до поточного значення змінної циклу додається крок с, після чого отримане значення порівнюється з кінцевим значенням ( в ). Якщо значення змінної циклу ( і ) стало більше кінцевого значення ( в ), то цикл закінчується і керування передається оператору, який слідує за оператором NEXT. В протилежному випадку відбувається наступне виконання операторів тіла циклу. Так виконується оператор циклу у випадку, коли крок с>0. Якщо ж с 0. Якщо ж с<0 (що дозволено), то в ході виконання циклу значення змінної ( і ) циклу зменшується і вихід з циклу відбудеться коли ( і ) стане менше кінцевого значення в. Крок STEP - може бути опущений і тоді по замовчуванню крок циклу ( с ) буде мати значення рівне 1. Тіло циклу виконується при такому співвідношенні: а > b і с о ; і не виконується ні разу якщо: а > b і с > о або а b і с > о або а < b і с < о. Наприклад, тіло циклу не виконане, якщо: а = 1, в = 2 і с = -1;а = 2, в =1 і с = 1.
Приклади : 1. Написати програму знаходження суми ряду: CLS REM сума INPUT N S=0 FOR k=1 TO N STEP 1 S=S+(k+2)^2/(k+4) NEXT k PRINT S END 2. Написати програму виведення квадратів для чисел від 1 до 8 з кроком 0,4. FOR А=1 ТО 8 STEP 0.4 B=A^2 PRINT А, В NEXT A 3. Написати програму виведення непарних чисел від 1 до 100. FOR I=1 TO 100 STEP 2 PRINT I NEXT I
2) Цикл " поки" Цикл " поки " призначений для організації повторень, якщо кількість повторень в циклі невідома. Словесно цикл "поки" має вигляд: поки умова пц серія команд (тіло циклу) серія команд (тіло циклу)кц Мовою Turbo Basic цикл "поки" записується так: WHILE умова тіло циклу WEND де WHILE і WEND - службові слова, які утворюють оператор. Опис роботи: Перевіряється виконання умови, якщо вона виконується, то виконується тіло циклу (оператори), після чого знову повертаємося до перевірки виконання вказаної умови (зустрівши слово WEND). Вказані дії виконуються доти, поки умова перестане виконуватись. Якщо умова не виконується, то тіло циклу пропускається і виконання вказівки повторення закінчується.
Приклади: 1. По заданій формулі члена ряду з номером k склacmu програму обрахунку суми всіх членів ряду, не менших заданого числа Е (число Е ввести з клавіатури). До нескінченності рахувати не можна, тому ми вводимо штучне обмеження не кількості підрахунку, а підрахунку до певної межі точності, поки елемент ряду (найбільший елемент) буде більший за деяке число Е. Цей ряд збіжний - кожний наступний елемент менший за попередній. Тому нам потрібно обрахувати перше значення елемента ряду і тоді порівнювати з Е. INPUT точність Е =, Е S=0 k=1 А=2*k/((k^2 + 1)*(2*k + 1)) WHILE A>=Е S=S+Ak=k+1 A=2*k/((k^2 + 1) * (2*k+ 1)) WEND PRINT S
2. По заданій формулі члена ряду з номером k скласти програму обрахунку суми всіх членів ряду з k від 1 до 50. CLS S = О FOR k = 1 TO 50 S = S+(2*k/((k^2 + 1) * (2*k + 1))) NEXT K PRINT S 3. Скласти програму знаходження суми всіх чисел, кратних двом від N до 10. INPUT N S=0 FOR I=10 TO N STEP -2 S = S + I NEXT I PRINT S PRINT S