пятница, 20 ноября 2015 г.

Вибіркова заміна знаків у чисел в масиві у Turbo Pascal

И еще одна задача из контрольной работы по массивам, включающая в себя составление блок-схемы в системе «Алгоритм» и написание программы на Турбо Паскале. Исходники загружаются по ссылке в конце статьи.

Завдання


Дано масив {X} розмірністю n.

Потрібно: замінити знаки так, щоб всі елементи масиву стали від’ємними, якщо тільки на k позиціях підряд є однакові елементи.
При невиконанні заданої умови видати повідомлення «Рішення не існує».

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

Маємо такі вхідні дані:
  1. Масив Х.
  2. n – кількість елементів масиву.
  3. к – число, яке вказує, на скількох позиціях підряд повинні находитися однакові елементи. При обчисленні задачі повинна проводитися перевірка на те, щоб число к не перевищувало число елементів масиву n.
Вихідні дані — результуючий масив У.

План роботи


Для обчислення задачі треба:
  1. Порівняти кожний елемент масиву з попереднім.
  2. Якщо наступний елемент дорівнює попередньому, то в допоміжну змінну заноситься число однакових елементів підряд (в даному випадку 2).
  3. Далі слідуючий елемент порівнюється з попереднім.
  4. Якщо і він буде дорівнювати попередньому, то до нашої допоміжної змінної додається одиниця, і змінній буде вже присвоєно число 3. І так далі.
  5. Потім значення цієї змінної порівнюється з введеним з клавіатури числом к.
  6. Якщо значення співпадають, то всі знаки у масиві Х змінюються на від’ємні і на екран монітору виводиться результуючий масив У. У противному разі ми побачимо повідомлення, що рішення в даному випадку не існує. Таке ж повідомлення ми побачимо й у тому разі, коли число к, введене з клавіатури, буде перевищувати число n – кількість елементів масиву.

Блок-схема та результати обчислень


Використовуючи систему АЛГОРИТМ, побудуємо блок-схему для нашої задачі:

Заміна знаків у чисел за умовою у Turbo Pascal

Користуючись розробленою блок-схемою, побудуємо програму в середовищі Turbo Pascal для обчислення поставленої задачі:

Проведемо обчислення при n=6 та к=3.
Отримаємо такі результати роботи програми:

Похідний масив

x[1]=1.0 x[2]=2.0 x[3]=3.0 x[4]=3.0 x[5]=3.0 x[6]=4.0

Результуючий масив

y[1]=-1.0 y[2]=-2.0 y[3]=-3.0 y[4]=-3.0 y[5]=-3.0 y[6]=-4.0

Якщо в масиві підряд буде менше однакових елементів, ніж число к=3, то отримаємо:

Похідний масив 

x[1]=1.0 x[2]=2.0 x[3]=3.0 x[4]=3.0 x[5]=4.0 x[6]=5.0

Рішення не існує.

Если вы желаете скачать листинг программы и файл с блок-схемой из системы «Алгоритм», нажмите на эту кнопку:

.

Также вы можете ознакомиться с решением другой задачи по массивам, работой с массивами в Турбо Паскале и задачи по замене знаков в массиве.

Комментариев нет:

Отправить комментарий