- •Мова програмування с Навчальний посібник
- •І. Теоретична частина Структура програми на мові с
- •Базові типи даних
- •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 на послідовність символів “”,“*”,“**”,“***”,“****”.