Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Завдання. Метою даної лабораторної роботи є ознайомлення з алгоритмами сортування масиву та визначення кратних елементів




Мета роботи

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

1. Скласти алгоритм і написати програму обробки одномірного масиву згідно варіанту. Основна програмна одиниця повинна включати введення/вивід даних і задачу сортування масиву. Задачу з визначення кратних елементів виконати в підпрограмі-функції. Варіанти завдань наведені у Додатку 10.Номер варіанту визначається викладачем.

2. Провести налагодження програми та її тестування.

3. Скласти звіт про роботу.

Вказівки до виконання завдання

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

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

1. Опис – окремий модуль, у якому обчислення записані з використанням формальних параметрів:

ТИП FUNCTION ex[*n] (x1, x2, …, xn)

{ тіло функції }

ex=…

RETURN

END

Тут ex – символьне ім'я функції, ТИП – тип результату функції, [*n] – довжина результату функції, (x 1, x 2, …, xn) – список формальних параметрів функції.

2. Виклик підпрограми розміщається в основному модулі і виглядає так:

ex (f1, f2, …, fn).

Тут f 1, f 2, …, f n – список фактичних параметрів, що заміняють формальні параметри в описі при виклику підпрограми.

Списки формальних і фактичних параметрів повинні відповідати один по одному проходження, типам, розмірам операндів. У списку формальних параметрів можуть бути символьні імена змінних, масивів, а в списку фактичних параметрів, крім перерахованих, можуть бути константи, елементи масиву або виразу. Наведемо приклад передачі масиву у функцію.

PROGRAM EXAMPLE

REAL A

DIMENSION A(10)

-----------

A=F(A, 10)! Виклик функції

-----------

END

С Опис функції

FUNCTION F(K, L)

REAL K

INTEGER L

С Опис масиву у функції з використанням формальних параметрів

DIMENSION K(L)

-----------

F=…

END

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

Для виявлення кратних елементів можна скористатись алгоритмом, який зображено на рис. 8. Слід відмітити, що змінна Р повинна бути цілого типу. Якщо число є кратним, то при повторному множенні отримаємо первинний елемент; якщо ні - отримане значення буде менше первинного числа (за рахунок відкидання дробової частини змінної Р).

Рисунок 8 – Визначення кратних елементів У деяких задачах потрібно змінити розташування елементів у масиві. Наприклад, вишикувати елементи масиву за убуванням або зростанням, поміняти будь – які елементи місцями і т.д. Для сортування масивів використовується оператор циклу DO, а зміна розташування елементів організується за допомогою індексів цих елементів. Способи сортування масиву дано у прикладах.

Приклад 1. Дано масив чисел дійсного типу А (30). Вишикувати елементи масиву за убуванням.

PROGRAM EXAMPLE

REAL A(30), R

INTEGER I, K

OPEN(1,FILE=’A.DAT’, STATUS=’OLD’)

READ(1,*) (A(I), I=1,30)! Введення елементів масиву

DO 10 K=1, 30! Цикл для повторення обробки масиву

DO 20 I=1, 29! Цикл для аналізу елементів масиву

IF(A(I).LT. A(I+1))

R=A(I)! перестановка

A(I) = A(I+1)! елементів

A(I+1) = R! місцями

ENDIF

20 CONTINUE

10 CONTINUE

С Роздруківка елементів масиву в рядок

DO 30 I=1, 30

WRITE(*,’(F8.2\)’) A(I)

30 CONTINUE

END

 

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

Приклад 2. Дано масив цілих чисел А (20). Вишикувати елементи масиву в зворотному порядку.

PROGRAM EXAMPLE

REAL A(30), R

INTEGER I, K

OPEN(1,FILE=’A.DAT’, STATUS=’OLD’)

READ(1,*) (A(I), I=1,30)! Введення елементів масиву

DO 20 I=1, 10

R=A(I)! перестановка

A(I) = A(20 – I+1)! елементів

A(20 - I+1) = R! місцями

20 CONTINUE

С Роздруківка елементів масиву в рядок

DO 30 I=1, 20

WRITE(*,’(F8.2\)’) A(I)

30 CONTINUE

END

 

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

 

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

РОБОТА З ДВОВИМІРНИМИ МАСИВАМИ.

ОБЧИСЛЕННЯ МАКСИМУМУ, МІНІМУМУ,




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


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


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



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




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