Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Method_Lab_Work_ANSI_C__2010_lab1-10_v2.doc
Скачиваний:
39
Добавлен:
22.11.2018
Размер:
1.14 Mб
Скачать

8.3. Варіанти завдань

  1. У заданій квадратній матриці знайти суму значень елементів, що розташовані на головній діагоналі або вище від неї і є більшими за всі елементи, розташовані нижче від головної діагоналі.

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

  3. Задати квадратну матрицю, ввівши кількість рядків і стовпців з клавіатури. Упорядкувати значення елементів головної діагоналі за алгоритмом вставки, а значення побічної діагоналі — за алгоритмом обміну. Визначити кількість порівнянь та обмінів під час сортування.

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

  5. У селищі, де N будинків, розташованих уздовж прямої дороги з однієї сторони на рівних відстанях, прокладають телефонний зв’язок. Зазначено, скільки телефонних апаратів треба встановити в кожному будинку. Кожен телефон має бути з’єднаний з АТС окремим кабелем. Визначити, в якому будинку необхідно встановити АТС, щоб сумарна довжина кабелів була мінімальною.

  6. Задана дійсна матриця poзмipy n*m, в якій не всі елементи дорівнюють нулю. Одержати нову матрицю шляхом ділення вcix елементів заданої матриці на її найбільший за модулем елемент. Замінити діагональні елементи матриці на найбільший за модулем елемент.

  7. Задана дійсна матриця розміру m*n. Знайти середнє арифметичне найбільшого і найменшого значень її елементів. Поміняти місцями найбільше і найменше значення елементів.

  8. В заданій дійсній квадратній матриці вимірністю n*n, знайти суму елементів рядка, в якому знаходиться елемент з найменшим значенням. Вважаємо, що такий елемент єдиний.

  9. Задана дійсна матриця вимірності m*n. Упорядкувати її рядки за неспадністю суми елементів рядків. Вивести масив сум елементів рядків та матрицю.

  10. В заданій дійсній матриці m*n переставити місцями рядок, що містить елемент з найменшим значенням з рядком, що містить найбільше значення. Вважаємо, що ці елементи єдині.

  11. Задана дійсна матриця розміру n*m, всі елементи якої різні. В кожному рядку вибираємо елемент з найменшим значенням, потім серед цих чисел вибираємо найбільше. Вказати індекси елементу із знайденим значенням.

  12. Задане натуральне число n, матриця цілих чисел А розміром 2*n. Знайти суму тих її елементів з другого рядка, які мають в першому рядку рівні за значенням елементи.

  13. Задана квадратна матриця цілих чисел розмірності n*n. Знайти найменше із значень елементів стовпчика, який має найбільшу суму модулів елементів.

  14. Задана дійсна квадратна матриця розмірністю n*n. В рядках з відємним елементом на головній діагоналі знайти суму елементів, найбільший з усіх елементів та його індекс.

  15. Задана дійсна квадратна матриця розмірності n*n. Знайти суми тих елементів, які розміщені відповідно нижче, вище та на головній діагоналі, в рядках, що починаються з відємного елементу.

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

  17. Задати матрицю довільної вимірності та вектор. Визначити транспоновану матрицю та здійснити множення матриці на вектор.

  18. Для заданої цілочислової матриці визначити індекси та значення її сідлових точок. Елемент матриці називається сідловою точкою, якщо він є найменшим у своєму рядку та найбільшим у своєму стовпчику.

  19. Для заданої матриці довільної вимірності визначити скалярний добуток рядка з найбільшим елементом на стовпчик з найменшим елементом.

  20. Задати матрицю розмірності mn (m, n  3). Починаючи з лівого нижнього кута матриці та рухаючись лише праворуч і догори, досягти її правого верхнього кута і вибрати при цьому такі значення елементів, що їх сума буде максимальною. Вивести перелік вибраних елементів.

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

  22. Для заданої матриці та вектора довільної вимірності здійснити множення матриці та вектор та вектора на матрицю.

  23. Для заданої матриці довільної вимірності визначити вектор, -ий елемент котрого дорівнюватиме 1, якщо елементи -го рядка матриці впорядковані за спаданням, та 0, якщо -ий рядок матриці є симетричним.

  24. В заданій матриці довільної вимірності обчислити суму елементів парних рядків, найбільші значення у непарних рядках, середнє арифметичне серед від’ємних елементів матриці та індекси нульових елементів.

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

  1. Дати означення матриці.

  2. Як зображується матриця в оперативній пам’яті?

  3. Як здійснити доступ до елементів масиву чи матриці?

  4. Як здійснити доступ до елемента матриці, користуючись значенням тільки одного індексу?

  5. Означити типові операції над матрицями.

Обробка рядків Лабораторна робота 9

9.1 Теоретичні відомості

9.1.1. Визначення рядка

Рядок - це масив символів, який закінчується символом кінця рядка '\0'. Значенням символа є ціле число, яке є кодом таблиці символів ASCII. Символ відображається у одинарних лапках, наприклад: 'z'. Кожний символ в оперативній пам'яті займає один байт. Рядок характеризується дов-жиною, яка дорівнює кількості символів, та обсягом пам'яті. Обсяг пам'яті, який займає рядок, на одиницю більший за довжину рядка за рахунок символа кінця рядка '\0'.

Кожний символ рядка має свій індекс. Доступ до символа рядка здійснюється за допомогою операції [ ]. Рядок і всі його символи мають одне ім'я. При оголошенні рядка задаються ім'я та кількість елементів рядка. Довжина рядка визначається читанням символа кінця рядка '\0' під час введення рядка. Для позначення нового рядка використовується символ '\n'.

Рядок доступний через покажчик (адресу) на перший символ у рядку. Таким чином, ім'я рядка - це покажчик на перший символ.

Формати оголошення рядка:

char ім'я_рядка[кількість символів];

char *ім'я_рядка;

Рядок можна ініціалізувати у процесі оголошення через покажчик на рядок.Приклад:

char string[50];

сhar * pointer="mastering Visual C++"; //покажчик на рядок

Рядкові (літеральні) константи на відміну від значення символа записуються у подвійних лапках.

У процесі оголошення рядка як масиву символів останній повинний мати такий розмір, щоб зберігати рядок і символ кінця рядка '\0'. Якщо рядок більший за масив символів, то символи, які виходять за його межі, будуть змінювати дані, що знаходяться в наступних за масивом комірках пам'яті.

Рядки можуть компонуватися у масив рядків та утворювати текст. Під час оголошення масиву рядків необхідно визначити два індекси: кількість рядків і максимальну кількість символів у одному рядку.

Приклад: char text[5][25];

Уведення та виведення рядка здійснюється за допомогою функцій puts(char* s); gets(char *s); без використання циклів. Параметром функцій ведення та виведення є покажчик на рядок. Якщо вводити рядки за допомогою класів потоків через операцію >>, то символи рядка вводяться до першого символа пропуску. Символи рядка після символа пропуску ігноруються.

Для рядків не визначені операції присвоєння (=) та порівняння (>, <, ==, !=). Для виконання подібних дій використовуються відповідні функції, прототипи яких визначені у файлі string.h. Перелік деяких функцій обробки рядків подано у табл. 4.1.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]