- •Мова програмування с Навчальний посібник
- •І. Теоретична частина Структура програми на мові с
- •Базові типи даних
- •I для опису цілих чисел без дробової частини nt
- •1. Char – символ
- •3. Float – число з плаваючою крапкою одинарної точності
- •4. Double – число з плаваючою крапкою подвійної точності
- •Арифметичні операції
- •Функції введення scanf() та виведення printf()
- •Оператори
- •Функції користувача
- •Функції із змінним числом аргументів
- •Функції стандартних бібліотек Функції для роботи із символами (ctype.H)
- •Функції для роботи з каталогами (dir.H)
- •Функції для роботи з ос (dos.H)
- •Функції для роботи з графічним режимом (graphics.H)
- •Математичні функції (math.H)
- •Функції для роботи з рядками (string.H)
- •Функції потокового вводу/виводу (stdio.H)
- •Функції вводу/виводу нижнього рівня (io.H)
- •Функції вводу/виводу консолі та порту (conio.H)
- •Структури
- •Об'єднання
- •Динамічний розподіл пам’яті
- •Іі. Практична частина Лабораторна робота №1 Тема: Основні конструкції мови с. Програмування простих алгоритмів
- •Лабораторна робота №2 Тема: Створення і використання функцій
- •Лабораторна робота №3 Тема: Використання структур
- •Лабораторна робота №4 Тема: Організація роботи з файлами
- •Рекомендована література
Лабораторна робота №2 Тема: Створення і використання функцій
Завдання 1
Робота з векторами та матрицями
-
Задано матрицю розміру 55, елементи якої вводяться по стовпчиках. Визначити, в скількох стрічках матриці елементи знаходяться в спадаючому порядку.
-
Задано вектор цілих чисел A(n) величиною від 1 до 40. Надрукувати всі числа, які входять в цю послідовність по одному разу.
-
За заданою квадратною матрицею розміру
побудувати вектор довжиною 2n-1,
елементи якого — максимуми елементів
діагоналей, паралельних головній
діагоналі . -
Знайти максимальний серед всіх елементів тих рядків заданої матриці, які впорядковані (або за зростанням, або за спаданням).
-
Взаємнооднозначне відображення елементів матриці на себе можна задати за допомогою двох цілочисельних матриць: в першій вказувати номер рядка, куди переходить даний елемент, а в другій – номер стовпчика. Побудувати 2 матриці, що задають відображення кожного елементу матриці розміром
на симетричний йому відносно головної
діагоналі. Застосувати створені матриці. -
Дано множину прямих на площині (коефіцієнтами рівнянь, які утворюють матрицю). Підрахувати кількість точок перетину цих прямих .
-
В заданій послідовності цілих чисел (в векторі A(n)) знайти найдовшу послідовність, яка є арифметичною чи геометричною прогресією.
-
Для заданої цілочисельної матриці знайти максимум серед сум елементів діагоналей, паралельних головній діагоналі матриці .
-
Упорядкувати рядки матриці розміром
за зростанням мінімального елементу
рядка. -
Задано два впорядковані масиви F(n), E(m). Об’єднати їх в один упорядкований за зростанням масив.
-
Перевірити, чи утворюють рядки матриці A(n, m) монотонні послідовності. А стовпці? Видати їх кількість.
-
Задано вектор цілих чисел A(N). Створити вектор з елементів, розташованних між першим максимальним і останнім мінімальним елементами масиву А. Впорядкувати його.
-
Задано матрицю цілих чисел A(N,М), і – ціле число,
Роздрукувати всі мінори і-го
стовпчика. -
Задано вектор A(N) і матриця B(N,М). Побудувати вектор C=AB і пронормувати його.
-
Задано три дійсні матриці A, B, C розмірності N. Розв’язати рівняння ax2+bx+c=0, де a, b, c – мінімальні елементи матриць A, B, C.
-
Використовуючи схему Горнера обчислити значення многочлена
в точці
,
де
– відомий вектор розмірності
. -
В дійсних векторах
і
містяться коефіцієнти двох многочленів
степенів
і
відповідно. Побудувати вектор
,
що буде містити коефіцієнти добутку
цих двох векторів (
,
елемент вектора з індексом
містить коефіцієнт при степені
).
-
Дано неспадний вектор додатних цілих чисел
.
Знайти найменше ціле додатне число, що
не представляється у вигляді суми
декількох елементів цього масиву.
-
Дано матрицю
і число
.
Для кожного квадрата
в цій таблиці обчислити суму чисел, що
знаходяться в ньому.
-
У векторі
зустрічаються по одному разу цілі числа
від
до
,
.
Знайти пропущені числа. -
Дано вектор
і число
.
Для кожної ділянки із
сусідніх елементів (а таких ділянок,
очевидно, буде
)
обчислити її суму. -
Задана цілочисельна матриця
,
впорядкована по рядках і стовпчиках
(
,
)
і ціле число
.
Чи зустрічається
серед елементів матриці
. -
Дано два впорядковані за зростанням дійсні масиви
і
і число
.
Знайти суму виду
,
що знаходиться найближче до числа
. -
Дано натуральне число
і послідовність дійсних чисел
,
,
...,
.
Отримати
,
.
Перевірити чи впорядкована послідовність
за спаданням (зростанням). -
Дано натуральне число
і послідовність дійсних чисел
,
,
...,
.
Обчислити добуток членів послідовності,
що знаходяться між першим і другим
нульовим членами, а також кількість
сусідств двох додатних чисел. -
Дано натуральне число
і послідовність дійсних чисел
,
,
...,
.
Знайти кількість тих членів послідовності,
для яких виконується нерівність
,
а також довжину найменшого відрізка
числової осі, що містить числа
,
,
...,
. -
Для заданої матриці
з елементами дійсного типу визначити
чи є матриця магічним квадратом, тобто
такою, у якій суми елементів у всіх
стрічках і рядках однакові.
-
Підрахувати кількість локальних мінімумів заданої цілочисельної матриці
.
Під локальним мінімумом матриці
розумітимемо елемент матриці, що менший
за всіх своїх сусідів. -
Визначити чи є задана матриця
ортонормованою, тобто такою, що скалярний
добуток кожної пари різних стрічок
дорівнює 0, а скалярний добуток кожної
стрічки на себе дорівнює 1. -
Знайти індекси всіх сідлових точок заданої матриці
,
тобто таких елементів, які є найменшими
в своїй стрічці і одночасно найбільшими
в рядку.
Завдання 2
Робота з рядками
-
Дано рядок символів. Створити функцію, яка на вхід одержує рядок символів і повертає новий рядок, в якому символи розташовані в оберненому порядку. Функція повинна повертати також довжину рядка.
-
Дано рядок символів. Створити функцію, яка на вхід одержує рядок символів і повертає 1, якщо рядок символів симетричний і 0, якщо несиметричний.
-
Дано два рядка символів. Створити функцію, яка на вхід одержує два рядка символів і повертає 1, якщо кожний символ першого рядка міститься в другому, і 0, якщо ні.
-
Дано рядок символів. Створити функцію, яка на вхід одержує рядок символів і повертає символ, який зустрічається в рядку найчастіше, і скільки разів він зустрічається. Якщо таких символів декілька, тоді взяти символ з найменшим кодом.
-
Дано рядок символів. Створити функцію, яка на вхід одержує рядок символів і повідомляє, скільки разів зустрічається в рядку кожний із символів рядка. Інформація про кожний символ повинна друкуватися один раз. Функція повинна також повертати ціле число, яке дорівнює кількості різних символів в рядку.
-
Дано рядок символів. Створити функцію, яка на вхід одержує рядок символів і повертає 1, якщо в рядку цифр більше, ніж інших символів, 0 - якщо рівно і –1, якщо цифр менше.
-
Рядок символів складається з слів, між якими – пробіли. Створити функцію, яка на вхід одержує рядок символів і друкує всі слова, які починаються і закінчуються однією буквою. Функція повинна також повертати ціле число, яке дорівнює кількості таких слів.
-
Дано рядок символів. Створити функцію, яка на вхід одержує рядок символів і один символ, функція друкує ті слова рядка, в яких зустрічається цей символ. Функція повертає ціле число, яке дорівнює кількості таких слів. Рядок символів складається з слів, між якими – пробіли.
-
Створити функцію, яка одержує на вхід ціле число і повертає рядок символів, який є записом цього числа в трійковій системі числення.
-
Дано рядок символів, що складається із слів, які розділені пробілом. Вивести ті слова, в яких є дві однакові букви підряд.
-
Дано рядок символів. Створити функцію, яка на вхід одержує рядок символів і повертає новий рядок символів, який містить першу по порядку найдовшу групу цифр і довжину цієї групи.
-
Створити функцію. Функція порівнює два рядка символів і повертає: -1, якщо рядок1 рядка 2; 0, якщо рядок 1 = рядок 2; 1, якщо рядок 1 рядка 2. Рядки порівнюються посимвольно. Функція повинна також повертати номер першої позиції, де рядки не співпадають, і –1, якщо рядки співпадають. Таку саму дію (порівняння рядків) виконати стандартною функцією.
-
Дано рядок символів. Створити функцію, яка на вхід одержує рядок символів і повертає кількість цифр в рядку, а також кількість слів в рядку.
-
Дано рядок символів, який складається із слів, між якими – пробіли. Визначити кількість симетричних слів в тексті. Перевірку симетричності оформити у вигляді функції.
-
Чи є в тексті слова, які складаються з однакових букв (в тому числі і по кількості букв, що повторюються)?
-
Дано рядок символів, що складається із слів, розділених пробілами. Створити функцію, яка на вхід одержує рядок символів і друкує усі слова рядка, а також кількість входжень в рядок кожного із слів.
-
Створити функцію, яка перевіряє чи є рядок символів правильним записом шістнадцяткового дійсного числа.
-
Дано рядок символів, що складається із слів, розділених пробілами. Створити функцію, що друкує слова, в яких доля голосних максимальна.
-
Створити функцію, що перевіряє, чи є в рядку баланс дужок, що відкриваються і закриваються (з можливістю вибору символів дужок). Якщо так, то функція повинна повертати 1, інакше – 0.
-
Дано два рядки символів, що складаються із слів, між якими – пробіли. Створити функцію, яка друкує найкоротше слово першого рядка, якого немає в другому рядку.
-
Дано рядок символів, що складається з літер латинського алфавіту. Створити функцію, яка повертає зашифрований рядок символів на основі шифру, що утворюється циклічним зсувом літер латинського алфавіту на
символів (вліво чи вправо). -
Дано зашифрований рядок символів, що складається з літер латинського алфавіту. Створити функцію, яка повертає розшифрований рядок символів на основі шифру, що утворюється циклічним зсувом літер латинського алфавіту на
символів (вліво чи вправо). -
Дано рядок символів. Створити функцію, яка подвоює в ньому групи однакових символів. Функція повертає змінену стрічку. Вихідна стрічка не модифікується.
-
Дано два рядки символів, що складаються із слів, між якими – пробіли. Створити функцію, яка друкує найдовше спільне слово двох рядків.
-
Дано рядок символів. Нехай
– кількість голосних,
–
кількість приголосних у рядку (до уваги
беруться тільки символи латинського
алфавіту),
– кількість інших допоміжних символів,
.
Створити функцію, яка повертає z, і
у випадку коли
,
друкує рядок без допоміжних символів
(крім останнього символу). -
Дано рядок символів. Перевірити чи є у рядку слова, у яких відношення кількості голосних літер до приголосних більше 0.3. Надрукувати їх у випадку присутності. Для обчислення відношення кількості голосних літер до приголосних у слові використати функцію, що повертає необхідне відношення.
-
Перевірити, чи є у вхідному рядку символів, що складається із слів, розділених пробілом, цілі числа
,
що задовольняють умову
.
Для перевірки числа використати функцію.
У випадку наявності таких чисел
надрукувати їх, а також їхню кількість. -
Дано рядок символів, що складається із слів, розділених пробілами. Замінити у рядку усі дійсні числа, корінь квадратний із модуля яких більший 10, послідовністю символів “*>100*”. Для перевірки числа написати функцію.
-
Дано два рядки символів, що складаються із слів, розділених пробілами. Знайти і надрукувати суму чисел, що містяться у першому і другому рядках. У випадку, коли сума чисел першого рядка більша другої надрукувати всі числа першого рядка, в іншому випадку – другого. Для обчислення суми чисел рядка написати функцію, яка на вхід одержує рядок, а повертає суму чисел рядка.
-
Створити функцію, яка на вхід одержує рядок символів, повідомляє кількість входжень кожної цифри в рядок і у випадку, якщо цифр 5, 6, 7, 8, 9 більше за 0, 1, 2, 3, 4 – заміняє кожну з цифр 0, 1, 2, 3, 4 на послідовність символів “”,“*”,“**”,“***”,“****”.
