Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

S1 s2 s3 s4 s5 S6 s7 s8 s9 s10




Лабораторна робота №3

 

Написання програм для введення та обробки серій із нулів та одиниць

 

Кількість занять – 2 (4 години).

Мета роботи – вдосконалити навики роботи з цілим типом мови ТР 7.0 та побудови алгоритмічних конструкцій.

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

Послідовність виконання роботи.

1. Отримати індивідуальне завдання.

2. Скласти алгоритм розв`язання задачі у вигляді блок-схеми.

3. Написати програму мовою ТР 7.0, яка реалізує даний алгоритм.

4. Ввести і налагодити програму, виконати розрахунки за комп`ютером.

5. Оформити та захистити звіт.

 

3.3.1. Поняття послідовності серій із чисел

 

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

 

0 1 00 1 0 1111 00 1 0 1

└┘ └┘ └┘ └┘ └┘ └┘ └┘ └┘ └┘ └┘

 

Перед серією послідовності розуміють набір однакових чисел, що слідують одне за одним. У наведеному прикладі набори S1-S10 є серіями.

Кількість нулів або одиниць в серії визначає її довжину. Наприклад, серія S6 складається з чотирьох одиниць, тому її довжина дорівнює 4. Кількість нулів та одиниць послідовності визначає її довжину (в наведеному прикладі довжина послідовності дорівнює 15).

У подальшому при побудові алгоритмів та написанні програм домовимося використовувати такі позначення:

Z — щойно введене (поточне) число послідовності (нуль або одиниця);

C — попередньо введене число;

I — довжина послідовності;

L — число елементів (нулів або одиниць) у поточній серії (серії, що вводиться);

Lp — число елементів у попередньо введеній серії;

S — число серій у послідовності;

L0,L1— відповідно довжина нульової та одиничної серії.

 

 

3.3.2. Зразок виконання індивідуального завдання

 

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

1) Виконання завдання. Складемо алгоритм обчислень, побудувавши графічну блок – схему (рис.3.3.1.)

Перш ніж перейти до написання програми, звернемо увагу на те, що в наведеному алгоритмі використовується багатонапрямлене (три напрями) розгалуження. Як відомо, в цьому випадку можна використати вкладені конструкції IF…THEN…ELSE, як показано в наведеній нижче ТР-програмі. Однак неважко помітити громіздкість та заплутаність цього варіанта вирішення, які збільшуються зі збільшенням числа напрямків розгалуження.

У мові ТР у подібних ситуаціях дуже часто використовують оператори CASE..OF, які замінюють конструкції складеними операторами IF…THEN…ELSE і є більш наочними при програмуванні.

 


 

 
 

 

Рис.3.3.1. Блок-схема введення та обробки серій із нулів й одиниць.


PROGRAM SERII1;

USES CRT;

CONST N=2; M=3; {опис констант}

VAR I, L0, S, Z:INTEGER;

BEGIN

CLRSCR;

I:=0; L0:=0; S:=0;

REPEAT {цикл із післяумовою}

I:=I+1;

WRITE(‘Введіть нуль або одиницю:’);

READLN(Z);

IF Z=0 {багатонапрямлене розгалуження}

THEN

L0:=L0+1 {перша вітка}

ELSE

IF Z=1

THEN

BEGIN

IF L0:=M {друга вітка}

THEN

BEGIN

S:=S+1;

L0:=0

END;

END;

ELSE

BEGIN

WRITELN(‘Некоректне введення:’); {третя вітка}

I:=I-2

END;

UNTIL S=N;

WRITELN(‘Довжина послідовності:’);

END.

 

Загальний вигляд конструкції CASE..OF:

 

CASE <порядкова зміна> OF

<Значення_1>: {перший напрямок}

BEGIN

<оператор_1>;

-

-

<оператор_n>;

END;

 

<Значення_2>: {другий напрямок}

BEGIN

<оператор_1>;

-

-

<оператор_m>;

END;

-

-

<Значення_K>: {k-ий напрямок}

BEGIN

<оператор_1>;

-

-

<оператор_p>;

END;

ELSE {останній напрямок}

BEGIN

<оператор_1>;

-

-

<оператор_1>;

END;

END. {кінець конструкції CASE..OF}

 

 

Для даної конструкції виконується той і–ий напрямок, <значення_i> якого збігається зі значенням <порядкової_змінної>. Якщо ж жодне із <значень_і> не збігається зі значенням <порядкової_змінної>, то виконується напрямок (набір операторів), що відповідає ключовому слову ELSE (останній напрямок).

Слід зауважити, що <порядкова_змінна> оператора вибору CASE..OF повинна належати одному з упорядкованих типів, який дозволяє перерахування (впорядкування) деяких об`єктів (у нашому випадку це цілий тип даних).

Наведена вище ТР – програма при використанні конструкції CASE..OF перепишеться таким чином:

 

 

PROGRAM SERII2;

USES CRT;

CONST N=_;M=_;

VAR I, L0, S, Z:INTEGER;

BEGIN

CLRSCR;

I:=0; L0:=0; S:=0;

REPEAT

I:=I+1;

WRITE(‘Введіть нуль або одиницю:’);

READLN(Z);

CASE Z OF

0: L0:=L0+1; {перша вітка}

1: IF L0=M {друга вітка}

THEN

BEGIN

S:=S+1;

L0:=0;

END;

ELSE {остання вітка}

BEGIN

WRITELN(‘Некоректне введення:’);

I:=I-2

END;

END;

UNTIL S=N;

WRITELN(‘Довжина послідовності:’);

END.

 

2) Введемо, налагодимо та виконаємо наведені програми за комп`ютером.

Порівняємо отримані результати.

 

Контрольні вправи та питання

 

1. Які цілочислові типи даних мови ТР 7.0 Ви знаєте?

2. Які основні характеристики цих типів?

3. Що розуміється під послідовністю серій чисел?

4. Поняття про умовну конструкцію CASE..OF та правила її використання?

5. Виконайте по-кроково ту частину наведеної програми, де працює оператор вибору CASE..OF.

 

 




Поделиться с друзьями:


Дата добавления: 2014-10-31; Просмотров: 748; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.025 сек.