Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Короткі теоретичні відомості. Варіанти індивідуальних завдань




Варіанти індивідуальних завдань

1. Написати програму, яка об'єднує два впорядкованих по зростанню (за абеткою) одновимірних масиви символів латинської абетки в один, також впорядкований по зростанню масив.

2. Написати програму, яка обчислює суму елементів стовпців двовимірного масиву та добуток елементів рядків.

3. Написати програму, яка обчислює добуток діагональних елементів двовимірного масиву розміром n×n.

4. Написати програму, яка замінює діагональні елементи двовимірного масиву, які менші нуля на одиниці.

5. Написати програму, яка знаходить мінімальний та максимальний елементи двовимірного масиву.

6. Написати програму сортування двовимірного масиву за зростанням елементів по рядках.

7. Написати програму, яка методом обміну («бульбашки») впорядковує по спаданню одновимірний масив

8. Написати програму, яка обчислює середнє арифметичне елементів двовимірного масиву без врахування мінімального та максимального елементів.

9. Написати програму, яка методом бінарного пошуку знаходить заданий елемент одновимірного масиву. Перед проведенням пошуку масив впорядкувати за зростанням.

10. Написати програму, яка перевіряє чи є введений двовимірний масив «магічним» квадратом. «Магічним» квадратом називається матриця, в якої сума чисел у кожному горизонтальному ряді, в кожному вертикальному ряді та в кожній діагоналі є одна й та ж.

11. Написати програму, яка виводить на екран значення максимального та мінімального елементів двовимірного масиву та їх індекси.

12. Обчислити добуток перших трьох додатніх елементів більших 3 одновимірного та визначити їх індекси

13. Обчислити суму елементів над головною діагоналлю квадратної матриці.

14. Знайти кількість елементів масиву і їх середнє арифметичне для яких виконується умова: 2<am,n<5.

15. Обчислити добуток від'ємних елементів двовимірного масиву і визначити індекс мінімального елементу.

 

Вказівник – це змінна, яка містить адресу деякого об’єкту. Перед використанням вказівник потрібно оголосити.

Формат оголошення вказівника:

тип_змінної *ім’я_вказівника

де тип_змінної – визначає тип тієї змінної на яку вказує вказівник

Наприклад, char *p_rt, int *len, float *prt. Щоб використати вказівник його необхідно ініціалізувати – присвоїти йому значення адреси змінної на яку він вказує. Використання не ініціалізованих вказівників призводить до помилок виконання програми.

Формат ініціалізації вказівника:

ім’я_вказівника=&ім’я_змінної

Наприклад, p_rt=&name, len=&count, prt=&f1. Операція взяття адреси - & вказує на те, що вказівнику присвоюється не значення змінної, а її адреса. Інкремент чи декремент вказівника приводить до переходу на наступний чи попередній елементу масиву.

В мові С існує однозначний зв’язок між вказівниками та масивами: ім’я масиву є вказівником на перший елемент масиву. Наприклад, якщо оголошено масив data[25], то data – це адреса першого елемента масиву. Таким чином справджуються тотожності data==&data[0], (data+1)==&data[1], (data+2)==&data[2] і т.д. Щоб присвоїти значення першому елементу масиву можна записати *(data)=4 або data[0]=4, другому елементу - *(data+1)=8 або data[1]=8, третьому - *(data+2)=45 або data[2]=45. У випадку двовимірного масиву присвоєння значення елементу, який знаходиться на перетині k-го рядка та n-го стовпця здійснюється наступним чином: *(*(matr+k)+n)=91 або matr[k][n]=91.

Динамічний розподіл пам’яті. Бібліотека мови С містить функції для розподілу пам’яті безпосередньо в ході виконання програми. Для використання функцій динамічного керування пам’яттю до програми необхідно підключити файли-заголовки stdlib.h або alloc.h. Найчастіше використовуються наступні функції malloc(), calloc(), free().

Функція malloc() виділяє в пам’яті блок з n байт і повертає вказівник на перший байт цього блоку. Наприклад, pd=malloc(sizeof(int)) – повертає вказівнику рd адресу блоку пам’яті для одного цілого числа, rt1=malloc(40*sizeof(float)) - повертає вказівнику rt1 адресу першого байту блоку пам’яті для сорока дійсних чисел.

Функція calloc() виділяє пам’ять для групи об’єктів і повертає вказівник з адресою на перший байт виділеного блоку. Наприклад, name=calloc(120, sizeof(char)) повертає вказівнику name адресу першого байту блоку пам’яті для 120 об’єктів символьного типу.

Функція free() призначена для звільнення динамічно розподіленої пам’яті. Звільнена пам’ять може знову використовуватись. Наприклад, free(rt1) звільняє блок пам’яті, який було виділено для 40 цілих чисел.

Щоб застосувати динамічний розподіл пам’яті для роботи з масивом потрібно оголосити вказівник, який буде іменем масиву. Потім у програмі потрібно за допомогою функцій розподілу пам’яті виділити необхідний блок пам’яті для масиву і присвоїти адресу першого байту вказівнику. Після роботи з масивом виділену пам’ять треба звільнити. Функції для роботи з динамічною пам’яттю представлено в додатку Г.

 




Поделиться с друзьями:


Дата добавления: 2015-05-24; Просмотров: 379; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.