КАТЕГОРИИ: Архитектура-(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) |
Приклад
Програма роботи Постановка завдання Мета роботи Лабораторна робота № 11 Функції з параметрами
Дослідити роботу операторів функцій з параметрами мови програмування С++, знати призначення, форму запису та особливості застосування функцій з параметрами. Засвоїти методику складання та налагодження програм із використанням функцій з параметрами на ПЕОМ.
Скласти схему алгоритму, таблицю символічних імен та програму мовою С++ відповідно до заданого варіанту. Налагодити та розв’язати задачу на ПЕОМ. Теоретичні відомості
У мові С++ аргументи функції можуть передаватися за значенням, тобто функція, що викликається, отримує свою тимчасову копію кожного аргументу, а не його адресу. Це означає, що функція не може змінити значення змінної у програмі, яка викликала цю функцію. Однак це легко зробити, якщо передавати у функцію не змінні, а їх адреси. Наприклад: void swap(int *a, int *b) { int tmp = *a; *a = *b; *b = tmp; } Виклик з програми функції swap(&b, &c) (тут підпрограмі передаються адреси змінних b і с) призведе до того, що значення змінних b і c поміняються місцями. Коли як аргумент функції використовується ім’я масиву, то передається лише адреса початку масиву, а самі елементи не копіюються. Функція може змінювати елементи масиву, зсуваючись (індексуванням) від його початку. Функції можна передати масив у вигляді параметра. Тут можливі три варіанти: 1. Параметр задається як масив (наприклад: int m[100];). 2. Параметр задається як масив без зазначення його розмірності (наприклад: int m[];). 3. Параметр задається як покажчик (наприклад: int *m;). Цей варіант використовується найчастіше. Незалежно від вибраного варіанта викликуваної функції передається покажчик на початок масиву. Самі ж елементи масиву не копіюються.
3.1. Записати запропанований викладачем варіант завдання з п. 5. Ознайомитись з рекомендованою літературою та конспектом лекцій. 3.2. Програмування задачі: – скласти таблицю символічних імен; – скласти схему алгоритму або псевдокод (за вказіквою викладача); – скласти програму розв’язання задачі мовою С++. 3.3. Розв’язання задачі на ПЕОМ. На ПЕОМ набрати, відлагодити та розв’язати складену програму. 3.4. Оформлення звіту. Звіт повинен містити: – номер лабораторної роботи та її назву; – умову задачі та дані свого варіанта; – таблицю символічних імен; – схему алгоритму (або псевдокод); – лістинг (або рукопис) програми; – результати розрахунку задачі; – висновки.
Дано матрицю А(2,3). Знайти максимальний і мінімальний елементи та створити функції для пошуку кожного з них. Уведення та виведення матриці виконати за допомогою функцій. Розв’язання. Таблиця символічних імен основної програми
Таблиця символічних імен для функції PoiskMaxMin
Текст програми мовою С++ для компіляторів Vusual C++
#include <iostream.h> const int N = 2, M = 3; // функція вводу масиву void Input(int x[N][M], int n, int m, char *name) { for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cout <<"Уведіть"<<name<<"["<<i<<"]["<<j<<"]"; cin >> x[ i ][ j ]; } } } // функція виводу масиву void Output(int x[N][M], int n, int m, char *name) { for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cout << x[ i ][ j ] << '\t'; } cout << endl; } } // функція пошуку максимального та мінімального елементів void PoiskMaxMin(int x[N][M], int n, int m, int *max, int *min) { *max = x[0][0]; *min = x[0][0]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (*max < x[ i ][ j ]) *max = x[ i ][ j ]; if (*min > x[ i ][ j ]) *min = x[ i ][ j ]; } } } int main() // головна функція { int mat[ N ][ M ]; int mx,mn; Input(mat,N,M,"mat"); // виклик функції вводу масиву cout << endl << endl; Output(mat,N,M,"mat");// виклик функції виводу масиву cout << endl << endl; PoiskMaxMin(mat,N, M, &mx, &mn); // виклик функції пошуку // максимального та мінімального елементів cout << "Максимальний елемент = " << mx << endl; cout << "Мінімальний елемент = " << mn << endl; return 0; }
5. Варіанти завдань
Кожен студент вибирає варіант завдання за номером у списку групи. Завдання. Скласти схему алгоритму, таблицю символічних імен та програму для розв’язання відповідної до заданого варіанта задачі з використанням функцій з параметрами,.
1. Дано матриці А(4,4) і Y(3,3), для кожної з яких обчислити суму елементів над, під головною діагоналлю та на головній діагоналі. Уведення, виведення матриці та обчислення сум оформити у вигляді функцій. 2. Дано матриці А(4,4) і Y (5,5), для кожної з яких знайти найбільший і найменший елементи головної діагоналі. Уведення, виведення матриці, пошук мінімального і максимального елементів оформити у вигляді функцій. 3. Дано матриці А(3,3), Y (5,5), С(4,4). Для кожної з них визначити максимальні елементи у рядках і перемістити їх на головну діагональ. Уведення, виведення матриці та її перетворення оформити у вигляді функцій. 4. Дано матриці А(4,3) і Y (3,5). Знайти середні геометричні позитивних елементів кожного їх рядка. Уведення, виведення матриці та пошук середніх геометричних оформити у вигляді функцій. 5. Дано матриці А(6,3) і Y (4,5). Знайти найбільший елемент кожної з них і записати одиницю у той рядок і стовпець, в яких він розмішений. Уведення, виведення і перетворення матриці оформити у вигляді функцій. 6. Дано матриці А(3,3) і Y (5,5), транспонувати їх. Уведення, виведення і транспонування матриці оформити у вигляді функцій. 7. Дано матриці А(6,2) і Y (4,5). Знайти найбільший елемент кожної з них і номер рядка і стовпця, в яких він розміщений. Уведення, виведення матриці і пошук максимального елемента оформити у вигляді функцій. 8. Дано матриці А(4,4) і Y (3,4). Знайти найменший елемент кожної з них і записати у рядок, де міститься цей елемент, ‘10’. Уведення, виведення матриці та її перетворення матриці оформити у вигляді функцій. 9. Дано матриці А(4,5) і Y (5,5). Для кожної з них обчислити суму елементів рядків і визначити найменше значення цих сум і номер відповідного рядка. Уведення, виведення матриці і пошук номера рядка оформити у вигляді функцій. 10. Дано матриці А(3,3) і Y (4,5), де визначити кількість додатних та від’ємних елементів. Уведення, виведення матриці і пошук кількості додатних та від’ємних елементів оформити у вигляді функцій. 11. Дано матриці А(5,2) і Y (3,2). Для кожної з них знайти найбільші елементи кожного рядка і записати в одновимірний масив. Уведення, виведення матриці та формування одновимірного масиву оформити у вигляді функцій. 12. Дано матриці А(4,3), В(5,4), С(5,4) і два дійсних числа x і y. Знайти x*A, y*B, x*C+y*B. Уведення, виведення матриці, додавання, множення на число оформити у вигляді функцій. 13. Дано матриці А(4,4), Y (5,5), С(6,6). Знайти транспоновані матриці , ,. Уведення, виведення, транспонування матриці оформити у вигляді функцій. 14. Дано матриці А(4,4), Y (3,3), С(5,5). Для кожної з них обчислити суму елементів над, під головною діагоналлю та на головній діагоналі. Уведення, виведення матриці та обчислення сум оформити у вигляді функцій. 15. Дано матриці А(3,3), Y (5,5), С(4,4). Знайти третю норму для кожної з них. Уведення, виведення матриці, обчислення норми оформити у вигляді функцій, скориставшись формулою: . 16. Дано матриці А(3,5), Y (5,2), С(4,6), у кожній з них поміняти місцями перший та останій рядки. Уведення, виведення матриці, обмін рядків оформити у вигляді функцій. 17. Дано матриці А(4,5), Y (5,3), С(4,6), у кожній з яких поміняти місцями перший і останній стовпці. Уведення, виведення матриці, обмін стовпців оформити у вигляді функцій. 18. Дано матриці А(3,5), Y (5,2), С(4,6), у кожній з яких визначити місце розмішення максимального елемента. Уведення, виведення матриці, пошук місця оформити у вигляді функцій. 19. Дано матриці А(4,5), Y (5,3), С(4,6). Утворити три нові матриці діленням кожного елемента вихідної матриці на середнє арифметичне її елементів. Уведення, виведення та зміну матриць оформити у вигляді функцій. 20. Дано матриці А(3,3), Y (5,5), С(4,4), у кожній з яких поміняти місцями елементи на головній і побічній діагоналях. Уведення, виведення, перетворення матриці оформити у вигляді функцій. 21. Дано матриці А(3,3), Y (5,5), С(4,4). Для кожної з них обчислити суму елементів головної діагоналі. Уведення, виведення матриці, обчислення суми елементів зазначеної діагоналі оформити у вигляді функцій. 22. Дано матриці А(3,5), Y (5,2), С(4,6). Для кожної з них обчислити суми рядків. Уведення, виведення матриці, обчислення сум рядків, виведення вектора сум оформити у вигляді функцій. 23. Дано матриці А(4,5), Y (5,3), С(2,6). Для кожної з них обчислити суми стовпців. Уведення, виведення матриці, обчислення сум стовпців, виведення вектора сум оформити у вигляді функцій. 24. Дано матриці А(3,3), Y (5,5), С(4,4). Для кожної з них знайти максимальний і мінімальний елементи головної діагоналі. Уведення, виведення матриці, пошук мінімального та максимального елементів оформити у вигляді функцій. 25. Дано матриці А(3,5), Y (5,2), С(4,6). Для кожної з них обчислити кількість додатних і від’ємних елементів. Уведення, виведення матриці, обчислення кількості названих елементів оформити у вигляді функцій.
Дата добавления: 2014-10-15; Просмотров: 786; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |