Skip to content

Latest commit

 

History

History
99 lines (88 loc) · 10 KB

arrays.md

File metadata and controls

99 lines (88 loc) · 10 KB

Масиви

Структура директорії для лабораторної роботи

.
└── lab06
    ├── Makefile
    ├── README.md
    ├── doc
    │   └── lab06.txt
    └── src
        └── main.c

Індивідуальні завдання.

Виконати одне завдання з пулу завдань на свій розсуд згідно її складності (що впливає на максимальну оцінку, що може бути отримана за лабораторну роботу). Зверніть увагу. Викладач має право надати вам додаткове завдання для виконання.

Зверніть увагу. Послідовність (масив) символів не дорівнює строкам (NTCS) !!! Послідовність символів, напр. "ABCD" повинна бути описана як:

#define TEXT_LEN 4
char consequence[TEXT_LEN] = { 'A', 'B', 'C', 'D' };
  1. Генерація нік-нейму (nick name): в заданому рядку замінити символи:
    • a та A на @,
    • о та O на 0,
    • i та I на 1,
    • s та S на $.
  2. Відсортувати масив цілих чисел методом "бульбашки" за зростанням або зменшенням залежно від прапору.
  3. Замінити усі числа в масиві цілих чисел на значення максимального або мінімального елементу масиву залежно від прапору.
  4. Знайти відношення максимального елементу масиву до мінімального. Врахувати, що ділити на 0 не можна.
  5. Знайти середнє значення елементів масиву цілих чисел.
  6. У масиві цілих чисел визначити суму двозначних чисел.
  7. Визначити кількість голосних букв у заданому слові / реченні.
  8. Визначити кількість приголосних букв у заданому слові / реченні. При цьому забороняється роботи перелік усіх приголосних букв у блоках if, switch-case.
  9. Дано масив з k чисел. З’ясувати, чи відбудеться переповнення розрядної сітки з n байтів при визначенні добутку чисел масиву. Наприклад, при $30 * 100 * 30$ -> буде мати місце переповнення розрядної сітки з двох байтів.
  10. Для заданої послідовності символів визначити, чи є вона поліандром. Наприклад, А2ВССССB2А – поліандр.
  11. (*) У масиві цілих чисел визначити кількість елементів, що більше попереднього елементу та більше наступного.
  12. (*) Заповнити масив цілих чисел заданого розміру числами Фібоначчі.
  13. (*) Визначити кількість "щасливих" квитків з 4-розрядними числами (до 9999) та записати їх у масив.
  14. (*) Поміняти місцями першу та другу половини заданого рядка. Наприклад,
    • "Ivanov" ==> "novIva".
  15. (*) Знайти перший елемент у масиві, сума цифр якого найбільша в масиві.
  16. (*) У заданому тексті знайти слово з найбільшою кількістю букв.
  17. (*) Дано двовимірний масив з $N \times M$ цілих чисел. Виконати дзеркальне відображення матриці відносно центрального (якщо кількість стовпців парне - уявного) стовпця.
  18. (*) Дано двовимірний масив з $N \times N$ цілих чисел. Попарно поміняти місцями елементи головної та побічної діагоналей.
  19. (*) Дано двовимірний масив з $N \times N$ речовинних чисел. Помножити кожен елемент рядка матриці на значення елементу бічної діагоналі відповідного рядка. Повернути кількість рядків матриці.
  20. (*) Дано двовимірний масив з $N \times M$ цілих чисел. Повернути з функції середнє значення мінімальних елементів кожного з стовпців матриці.
  21. (*) Дано масив з N речових чисел. Необхідно знайти середнє значення даних масиву методом інкрементального середнього.
  22. (**) Заповнити масив із заданої кількості елементів простими числами заданого діапазону, що не повторюються. Розмір вихідного масиву задати наперед відомим значенням, що може будуть більшим аніж результуюча кількість отриманих елементів. Якщо масив більше, ніж кількість унікальних значень - невикористовані комірки замінити нулями.
  23. (**) Перетворити позитивне число (максимальне значення якого - 9999) в рядок. (усі символи нижнього регістру на виході). Наприклад,
    • 123 – "one hundred twenty three",
    • 4311 – "four thousands three hundreds eleven".
  24. (**) У заданому тексті знайти кількість слів за умови, що між словами може бути будь-яка кількість пропусків.
  25. (**) Дано двовимірний масив з $N \times N$ цілих чисел. Виконати циклічне зрушення елементів рядків масиву в напрямку справа наліво (перший елемент рядка повинен переміститися в її кінець).
  26. (**) Дано двовимірний масив з $N \times N$ цілих чисел. Помножити матрицю саму на себе (відповідно до правил множення матриць).
  27. (**) Центрувати заданий рядок на площині з із заданим заповнювачем. Наприклад,
    • заповнювач = "_" ,
    • довжина строки = 15,
    • рядок = ”Ivanov\ \ \ \ \ \ \ \ \0” (6 символів слово "Ivanov", 8 - пробілів, останній символ = '\0')
    • результат = “____Ivanov____” (4 символи заповнювача, слово "Ivanov", 4 символи заповнювача, останній символ = '\0')

Обов'язково забезпечити!!!

  • текст програми повинен мати коментарі до коду. Точка входу має також бути документована формулюванням завдання, а також по-пунктного його виконанням. Поряд з кожною змінною повино бути вказано її призначення;
  • структура проекту повинна бути згідно вимогам;
  • звіт має містити інформацію про хід виконання завдання, а саме:
    • створення проекту та файлу з вихідним кодом;
    • визначити, де знаходиться точка входу; описати її знаходження, призначення, та чому вона повинна бути одна;
    • запуск програми;
    • зупинка посередині виконання програми за допомогою breakpoints. Навести приклад зміни стану програми "на льоту";
  • звіт не повинен мати зображення.

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

  1. Як рядки представляються в мові програмування C?
  2. Що таке "мірність масиву"? Скільки вимірів може мати масив?
  3. Від чого залежить об’єм пам’яті, що необхідний для зберігання елементів масиву?
  4. Як можна звернутися до елементу масиву?
  5. Як оголошуються масиви?
  6. Дайте оцінку наступному оголошенню масиву:
int mas[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
  1. При доступі до елементів двовимірного масиву укажіть, яке призначення першого та другого індексів?
  2. Дайте оцінку наступному оголошенню масиву:
int mas[][2] = {
	{ 1, 2 }, 
	{ 3, 4 }, 
	{ 5, 6 }, 
	{ 7, 8 }
};
  1. В якому порядку зберігаються у пам’яті комп’ютера елементи двовимірного масиву?
  2. Чим характеризуються діагональні елементи багатовимірних масивів? Скільки операторів циклу необхідно для їх обробки?