На головну

Алгоритм організації лічильника

  1. Amp; 8. Держава - ядро ??політичної організації суспільства
  2. I. НОРМАТИВНА БАЗА ДЛЯ РОЗРОБКИ ПОЛОЖЕННЯ ПРО ПЕРВИННОЇ ОРГАНІЗАЦІЇ ПРОФСПІЛКИ
  3. I. РОЗРОБКА АЛГОРИТМІВ. ГРАФІЧНЕ ЗОБРАЖЕННЯ (БЛОК-СХЕМИ) І СЛОВЕСНА ЗАПИС АЛГОРИТМІВ
  4. III. Нормативно-правова база щодо організації та проведення діагностичної діяльності.
  5. S.1. ІНФОРМАЦІЙНА СИСТЕМА ТОРГІВЛІ
  6. Z. ХАРАКТЕРИСТИКА ОРГАНІЗАЦІЇ ухвалення управлінських рішень 379
  7. А) Інноваційна спрямованість діяльності організації.

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

1. в розділі var описати змінну целочисленного типу, за допомогою якої буде вестися підрахунок;

2. до циклу присвоїти їй початкове значення 0;

3. в тілі циклу, якщо черговий елемент даних відповідає умові підрахунку, збільшити цю змінну на 1 оператором виду k: = k + 1 ;.

Необхідність присвоєння початкових значень на кроці 2 цього і наступних алгоритмів пов'язана з тим, що після опису в розділі var значення змінної ще не визначено. "Поки ми не почали підраховувати кількість, воно дорівнює нулю" - цей очевидний для людини факт не очевидний для комп'ютера! Тому будь-якої змінної, яка може змінюватися в тілі циклу, необхідно привласнити до циклу початкове значення, що і робить оператор виду k: = 0 ;.

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

Inc (X, N); - Збільшує значення змінної.

Тут параметр X - змінна порядкового типу, а N - змінна або вираз цілочисельного типу. Значення X збільшується на 1, якщо параметр N не визначений, або на N, якщо параметр N визначено, тобто Inc (X); відповідає X: = X + 1 ;, а Inc (X, N); відповідає X: = X + N ;.

Dec (X, N); - Зменшує значення змінної.

Параметр X - також змінна порядкового типу, N - цілочисельне значення або вираз. Значення X зменшується на 1, якщо параметр N не визначений, або на N, якщо параметр N визначено, тобто Dec (X); відповідає X: = X-1 ;, а Dec (X, N); відповідає X: = X-N ;.

За допомогою Inc і Dec генерується більш оптимізований код, особливо корисний в складних циклах. Можливо, ми будемо використовувати їх не у всіх прикладах, але вам раджу про них не забувати.

Як приклад реалізації алгоритму розглянемо наступну задачу.

Послідовність z (i) задана співвідношеннями , I = 1,2, ..., 100. Знайти кількість елементів послідовності, большіх значення 0.5.

Позначивши шукану кількість за k, складемо програму:

var z: real;

i, k: integer;

begin

k: = 0;

for i: = 1 to 100 do begin

if i mod 2 = 0 then z: = sqr (i) * cos (i)

else z: = sin (i / 2);

if z> 0.5 then inc (k);

end;

writeln ( 'Кількість =', k);

end.

Так як крок по змінної i дорівнює 1, в програмі використаний цикл for, для перевірки того, чи є значення i парних, використана операція mod.

У наступній завданню займемося обробкою даних у міру їх введення користувачем.

Відомі оцінки за іспит з інформатики для групи з n студентів, 2?n?25. Оцінити кількісну і якісну успішність групи за формулами:

, , Де k1 - кількість "трійок", "четвірок" і "п'ятірок", k2 - кількість тільки "четвірок" і "п'ятірок".

Для введення поточної оцінки використовуємо целочисленную змінну a, як лічильник циклу for введемо змінну i ( "номер студента"), інші величини описані в умові задачі. При введенні значення n і чергового значення a для простоти Не будемо контролювати коректність введених даних.

var a, i, n, k1, k2: integer;

ykol, ykach: real;

begin

writeln;

writeln ( 'Введіть кількість студентів:');

read (n);

k1: = 0;

k2: = 0;

for i: = 1 to n do begin

write ( 'Введіть оцінку', i, 'студента:');

read (a);

if a> 2 then begin

inc (k1);

if a> 3 then inc (k2);

end;

end;

ykol: = k1 / n * 100;

ykach: = k2 / n * 100;

writeln

( 'Кількісна успішність =', ykol: 6: 2);

writeln

( 'Якісна успішність =', ykach: 6: 2);

reset (input); readln;

end.

 



Попередня   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   Наступна

Компілятор і оболонка Turbo Pascal | Логічні операції | Короткий умовний оператор | Складовою умовний оператор | Вкладені умовні оператори | оператор вибору | Приклади програм з умовним оператором | Директиви компілятора і обробка помилок введення | Оператор циклу. Цикли з передумовою та умовою поста | Цикл з лічильником і дострокове завершення циклів |

© um.co.ua - учбові матеріали та реферати