Потрібно написати код до трьох задач на чистій мові С.
1)Задача1: Використовуючи стандартні бібліотечні функції генерування випадкових
чисел, заповнити випадковими двоцифровими числами матрицю
N ( M та N оголосити як макроконстанти або константи´розмірності M
мови С). Забезпечити, щоб у кожному рядку матриці всі елементи мали
різні значення. Окремо зазначити найбільший і найменший серед
згенерованих елементів.
У програмі забезпечити можливість опрацювання довільної (у допус-
тимих межах) кількості елементів масиву. Граничні розмірності багатови-
мірних масивів і масивів символьних рядків доцільно задавати макроконстан-
тами, значення яких має бути обґрунтованим для умов задачі. Треба вибрати
певний спосіб обмеження кількості елементів масиву в процесі введення,
наприклад: попередньо ввести реальну розмірність матриці, закінчити
введення символьних рядків введенням порожнього рядка тощо, водночас
слідкуючи, щоб не вийти за межі масиву.
Записуючи програму, обов’язково використати різні форми звертання
до елементів багатовимірних масивів і масивів символьних рядків, зокрема за
допомогою конструкцій “вказівник на масив” або “вказівник на вказівник”
(можна розробити декілька варіантів програми). Слід пам’ятати, що кожен
рядок матриці чи символьний рядок можна опрацьовувати як окремий масив.
Введення вхідних даних та виведення результатів повинно
супроводжуватись відповідними повідомленнями. У завданнях, де перетворю-
ються матриці, результат їхнього опрацювання треба обов’язково виводити на
екран у формі наочної прямокутної матриці.
2)Задача2 : З клавіатури ввести символьний рядок, в якому крім тексту можуть бути
також цілі числа. Визначити й надрукувати найбільше та найменше число з
цього рядка. Потім видалити з рядка всі числа, замінивши кожне число
одним символом *. Надрукувати скорочений рядок.
Переглянути стандартні функції із бібліотек <ctype.h>, <string.h> та
<stdlib.h> і вибрати ті з них, які дають змогу спростити програмування дій,
передбачених алгоритмом розв’язування задачі.
Розробити два варіанти програми: в одному мінімізувати кількість
звертань до бібліотечних функцій, а в іншому максимально застосувати
доцільні функції. В обох програмах введення-виведення даних здійснювати за
допомогою відповідних бібліотечних функцій. Примітка: якщо версія
програми без бібліотечних функцій викликає значні труднощі, то можна розро-
бити тільки одну програму із використанням потрібних бібліотечних функцій
або дещо спростити завдання у версії без функцій.
3)Задача3: З клавіатури ввести символьний рядок, у якому записано прізвище та ім’я й
по-батькові певної особи. Перетворити цей рядок так, щоб спереду були
записані ініціали, а за ними – прізвище особи та надрукувати новий рядок.
Підказка: скористатись додатковим рядком, який потім переписати на місце
введеного рядка.
Скласти програму стараючись не застосовувати бібліотечних функції із заголовних файлів <ctype.h>,
<string.h> чи <stdlib.h>. Для звертання до окремих символів або частин рядка в програмі треба
використати як вказівникову, так і індексну форму виділення елементів. У
процесах (циклах) опрацювання символьних рядків обов’язково врахувати
їхню основну властивість – закінчення рядка нуль-символом.
Для організації введення-виведення символьних рядків і окремих
символів вибрати найвідповідніші бібліотечні функції із <stdio.h>.
Обов’язково супроводити кожну операцію введення-виведення відповідною
підказкою або заголовком.
До кожної з програм написати коментарі в коді.
Термін до 22,30 год 08,12,2021!