Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Приклад виконання завдання





1. Розробка алгоритму розв’язку.

Алгоритм розв’язку, приведений на малюнку є типовим алгоритмом обробки масиву, елементами якого є описи монастирів.

Алгоритм починається з введення значень елементів цього масиву. Введення відбувається в циклі з лічильником n, який змінюється від 0 до 9 (блок 2), але як ми побачимо нижче, вихід з циклу може відбутися і до того, як лічильник досягне останнього значення. У кожній ітерації циклу виводиться запрошення (блок 3) і вводяться значення складових частин опису монастиря (блоки 4, 6, 7, 8). Але зразу ж після введення першої складової - назви - перевіряється її значення (блок 5). Якщо введена назва "***", то подальшого введення не відбувається, а відразу виконується вихід з циклу. У будь-якому випадку після виходу в змінній n залишається кількість введених елементів. Таким чином, програма може обробляти масив з 10 або менше елементів - скільки їх було введено. Ознакою кінця введення є назва "***".

Далі друкуємо заголовок таблиці (блок 9) і в циклі (блоки 10, 11) - рядки таблиці з даними. Оскільки параметр цього циклу змінюється від 0 до n-1, буде надруковано n рядків.

Наступний складний цикл реалізує сортування таблиці по алгоритму простої обмінної вибірки. Сортування виконується за допомогою вкладеного циклу (блок 12). У першій ітерації зовнішнього циклу виконується пошук елементу масиву з мінімальним значенням поля name. Для цього спочатку мінімальним елементом вважається перший елемент (блок 13). Потім в циклі (блок 14) переглядається решта елементів масиву, і кожен порівнюється з мінімальним (блок 15). Якщо поле name чергового елементу менше, ніж мінімального, то тепер цей елемент вважається мінімальним (блок 16). Індекс мінімального елементу записується в змінну m. Після виходу з внутрішнього циклу, якщо знайдений мінімальний елемент не перший (блок 17), то він міняється місцями з першим (блок 18). Таким чином, мінімальний елемент масиву стає на своє місце. У наступній ітерації зовнішнього циклу виконується пошук мінімуму серед елементів масиву, починаючи з другого, в третій - починаючи з третього і т.д. Після виходу із зовнішнього циклу масив виявляється відсортованим.

Виведення відсортованого масиву (блоки 19 - 21) відбувається точно так, як і початкового масиву (блоки 9 - 11).

2. Визначення змінних програми

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

struct mon {

char name[15]; /* назва */

char sc; /* школа */

int cnt; /* кількість ченців */

float sq; /* площа */

};

Тут ми резервуємо для назви більше символів,, передбачаючи можливість появи довших назв, а також даємо тип int полю cnt, допускаючи, що його значення може бути більше, ніж 255.

Нам потрібно буде мати масив елементів вказаного типу, отже, оголошуємо:

struct mon mm[10];

Для виконання перестановки елементів масиву потрібна буде ще робоча область пам'яті того ж типу, що і елементи масиву, що тому вводиться ще:

Struct mon x;

Як видно з схеми алгоритму, потрібно буде змінні цілого типу для: кількості введених елементів n, індексів зовнішнього (i) і внутрішнього (j) циклів і індексу мінімального елементу - m. Тому оголошуємо:

Int i, j, n, m;

Date: 2016-07-25; view: 279; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию