Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Тема: Вбудовані функції. Директиви препроцесора.↑ Стр 1 из 3Следующая ⇒ Содержание книги
Поиск на нашем сайте
Тема: Рекурсивні функції. Контрольні запитання: 1. Що таке рекурсія? 2. Яка підпрограма називається рекурсивною? 3. Що називають глибиною рекурсії? 4. У яких випадках при виконанні рекурсивних підпрограм виникають помилки переповнення стеку(Stack overflow)? 5. У яких випадках доцільно використовувати рекурсивні алгоритми для розв’язку задач? 6. Запишіть ланцюг рекурсивних викликів та поясніть роботу заданої рекурсивної функції: double g(int n) { if (n == 0) return 1; else if (n > 0) return g(n-1)*2; else return 1 / g(-n); } при умові, що функція викликається таким чином а)cout << g(1) << endl; б)cout << g(3) << endl; в)cout << g(-2) << endl; Яку задачу розв’язує задана рекурсивна функція? 7. Запишіть ланцюг рекурсивних викликів та поясніть роботу заданої рекурсивної функції: int f(int n) { if (n == 5) return 120; else if (n > 5) return f(n-1)*n; else return f(n+1)/(n+1); } при умові, що функція викликається таким чином: а)cout << f(5) << endl; б)cout << f(3) << endl; в)cout << f(6) << endl; Яку задачу розв’язує задана рекурсивна функція? 8. Запишіть ланцюг рекурсивних викликів та поясніть роботу заданої рекурсивної функції: double R(int n) { if (n == 0) return 1; else if (n > 0) return R(n - 1) * 5; else return R(n + 1) / 5.; } при умові, що функція викликається таким чином: а)cout << R(1) << endl; б)cout << R(3) << endl; в)cout << R(-2) << endl; Яку задачу розв’язує задана рекурсивна функція? Завдання 1. Написати програму. Вимоги до завдання: - використати рекурсивні функції. - протестувати рекурсивні функції на придатних наборах вхідних даних.
Варіанти:
ì 1 при n = 0 xn = í 1/x|n| при n < 0 î x* xn-1 при n > 0
Завдання 2. Написати програму. Вимоги до завдання: - використати рекурсивні функції. - протестувати рекурсивні функції на придатних наборах вхідних даних.
Варіанти:
Лабораторна робота №2 Завдання 4. Створити приклад програми з використанням директив умовної компіляції.
Лабораторна робота №3 Тема: Посилання. Вказівники та посилання як параметри та результати функцій. Контрольні запитання: 1. Означення посилання Оголошення посилання та ініціалізація. 2. Чи можна змінити посилання(спрямувати на інше дане)? 3. Порівняйте вказівник та посилання. 4. Передача параметрів у функції за значенням. 5. Передача параметрів у функції за посиланням(у С та С++). 6. Напишіть функцію обміну значеннями двох змінних за допомогою вказівників. Напишіть відповідний оператор виклику функції. 7. Напишіть функцію обміну значеннями двох змінних за допомогою посилань. Напишіть відповідний оператор виклику функції.
Завдання 1. Написати функцію(чи шаблон), яка отримує 2 вказівники на змінні і виконує обмін значеннями між змінними. Перевірити роботу функції для двох змінних. Варіанти:
1. За допомогою функції поміняти місцями стовпці матриці, вказані користувачем. 2. За допомогою функції поміняти місцями у одновимірному масиві перший елемент з другим, третій з четвертим і т. д 3. За допомогою функції обернути одновимірний масив. 4. За допомогою функції поміняти місцями перший та останній стовпці матриці. 5. За допомогою функції поміняти місцями дві половини одновимірного масиву. 6. За допомогою функції поміняти місцями перший та останній рядки матриці. 7. За допомогою функції поміняти місцями перший та другий рядки матриці. 8. За допомогою функції поміняти місцями діагоналі квадратної матриці. 9. За допомогою функції поміняти місцями кожні два сусідні рядки матриці. 10. За допомогою функції поміняти місцями кожні два сусідні стовпці матриці. 11. За допомогою функції обернути матрицю по рядках. 12. За допомогою функції обернути матрицю по стовпцях.
Завдання 2. Написати функцію для розв’язування квадратного рівняння. а) Функція отримує коефіціенти квадратного рівняння та вказівники на змінні, у яких потрібно розмістити корені рівняння. Функція повертає кількість коренів рівняння. Перевірити роботу функції. б) Написати функцію розв’язування квадратного рівняння за допомогою посилань. Перевірити роботу функції.
Завдання 3. Написати функцію (або шаблон функції), яка приймає два вказівника і повертає вказівник на менше число. За допомогою функції: а) Вивести на екран менше з двох введених чисел б) Збільшити на 10 менше число.
Завдання 4. Виконати завдання 3 за допомогою посилань.
Лабораторна робота № 5 Тема: Вказівники на функції. Масиви вказівників на функції. Завдання 2. Написати бібліотеку функцій(шаблонів функцій) для роботи з динамічним одновимірним масивом, які реалізують наступні завдання 1. Створення динамічного масиву вказаного розміру і його заповнення випадковими числами. Функція повертає адресу створеного масиву(або отримує посилання на вказівник на базовий тип масиву). 2. Вивід елементів масиву 3. Доповнення масиву одним елементом. Функція отримує адресу масиву, розмір та елемент для доповнення. 4. Видалення елемента за вказаною позицією. 5. Вставка нового елемента у довільну допустиму позицію у масиві 6. Доповнення масиву блоком елементів. 7. Видалення блоку елементів із масиву за вказаною позицією. 8. Вставка блоку нових елементів у довільну допустиму позицію у масиві
За допомогою функцій бібліотеки розв’язати задачу згідно варіанту. Варіанти: 1) Дано масив дійсних чисел. Після кожного від’ємного елемента вставити його модуль. 2) Дано масив дійсних чисел. Видалити ту половину масиву, у якій розміщений мінімальний елемент. 3) Дано масив дійсних чисел. Видалити всі фрагменти масиву, які утворюють зростаючу послідовність. 4) Дано цілочислові масиви А і В. Додати у кінець масиву А елементи з масиву В, кратні 3 або 7. 5) Дано масив цілих чисел. Якщо перший елемент масиву є парним числом, то видалити із масиву всі парні числа, інакше – навпаки(видалити непарні числа). 6) Дано масив цілих чисел. Видалити з масиву усі непарні числа. 7) Дано масив цілих чисел. Перед кожним елементом масиву вставити число, що рівне останній цифрі елемента. Наприклад, масив A = {12, 23, 89, 50} має бути перетворений до {2, 12, 3, 23, 9, 89, 0, 50}. 8) Задача «Решето Ератосфена». Дано перших N натуральних чисел. Спочатку викреслюються(видаляються із масиву) числа, що діляться на 2, потім ті що діляться на 3. і т.д. Результат – прості числа із діапазону 1..N. 9) Дано масив дійсних чисел. Видалити всі фрагменти масиву, які утворюють зростаючу послідовність. 10) Дано 2 масиви дійсних чисел: A, B. Утворити масив із спільних елементів цих масивів мінімально можливого розміру. 11) Дано масив символів. Кожну групу з повторів деякого символу замінити одним його входженням. 12) Дано масив дійсних чисел. Видалити всі повторні входження елементів у масиві. 13) Дано масив натуральних чисел. Доповнити початок цілого масиву послідовністю чисел, що передують першому елементу. Наприклад, для масиву {5, 10, 100, 3} очікується результат {1, 2, 3, 4, 5, 10, 100, 3}. 14) Дано 2 масиви дійсних чисел: A, B. Утворити масив із елементів масиву А, які не зустрічаються у В. 15) Дано масив А натуральних чисел. Утворити масиви мінімально можливого розміру В і С, що містять трицифрові та двоцифрові числа масиву А відповідно.
Лабораторна робота № 7-8 Завдання 2. Написати бібліотеку функцій(шаблонів функцій) для роботи з динамічним двовимірним масивом, які реалізують наступні завдання 1. Створення динамічного масиву вказаного розміру і його заповнення випадковими числами. Функція повертає адресу створеного масиву(або адреса матриці передається за посиланням). 2. Вивід елементів матриці 3. Доповнення матриці новим рядком 4. Видалення з матриці рядка за вказаним номером 5. Вставка нового рядка за вказаним номером 6. Доповнення матриці новим стовпчиком 7. Видалення з матриці стовпця за вказаним номером 8. Вставка нового стовпця за вказаним номером За допомогою функцій бібліотеки розв’язати задачу згідно варіанту. Розміри матриці задавати з клавіатури. Варіанти: 1) У матриці цілих чисел видалити рядки з парними номерами. 2) У матриці дійсних чисел вставити після кожного непарного стовпця стовпчик- копію. 3) Доповнити символьну матрицю нульовим та останнім рядками, що складаються із символів ‘*’. 4) Видалити стовпці матриці, що містять більше двох нулів. 5) Доповнити символьну матрицю нульовим та останнім стовпцями, що складаються із символів ‘|’. 6) Видалити рядки матриці, сума елементів яких перевищує 50. 7) Додати до матриці рядок із сумами елементів відповідних стовпців. 8) Додати до матриці стовпець із значеннями найбільших елементів відповідних рядків. 9) Видалити із матриці рядок та стовпець, на перетині яких знаходиться максимальний елемент матриці. 10) Додати на початок матриці рядок із кількістю парних елементів у відповідних стовпцях цілочислової матриці.. 11) Додати на початок матриці стовпець із діагональних елементів mматриці. 12) Видалити із рядок, у якому розміщений найменший елемент матриці. 13) Після кожного рядка з непарним номером вставити цей рядок з оберненим порядком розташування елементів. 14) Видалити стовпці матриці, сума елементів яких не перевищує 4. 15) Додати до матриці рядок із значеннями найменших елементів відповідних стовпців.
Завдання 3. Створити функції для обробки ступінчатої матриці: 1. Створення та заповнення 2. Вивід елементів матриці 3. Знаходження сум у кожному рядку матриці 4. Реверс матриці по рядках. 5. Циклічний зсув рядків матриці вверх(вниз).
Лабораторна робота № 9 Тема: Рядки у С. Мета: Формування вмінь і навичок обробки рядків у С. Контрольні запитання: 1. Який рядок називають ASCIIZ- рядком? 2. Способи оголошення ASCIIZ – рядків. Ініціалізація. 3. Ввід - вивід рядків. 4. Функції gets(), gets_s(), cin.getline(),cin.get(). 5. Які з оголошень рядків є коректними? Відповідь обгрунтуйте. char str0[] ="Good day!"; char str1[] = {'A','B','C'}; char str2[] = {'D', 70, 'G', 0}; char str4[] = {'A','B','\0','C'}; char *str5 = "abcdefgh"; char str6[] ="\\0\\ minutes\0 we have!"; 6. Для кожного правильно оголошеного рядка(див.завд 5) виконайте наступні дії: o обчисліть значення sizeof() o обчисліть значення strlen() o виведіть рядок на екран o замініть перший символ рядка на ‘*’: str[0] = ‘*’ Результати поясніть. 7. Поясніть роботу наступних рядків коду:
cout<< "We learn C- string" + 3 <<endl; cout<< *("We learn C- string" + 5) <<endl; cout<< "We learn C- string"[0] <<endl; . Завдання 1. Створити програму для виконання задачі згідно варіанту. Варіанти: 1) Дано рядок. Порахувати кількість голосних букв у рядку. 2) Вводиться рядок. Порахувати кількість букв ’а’ у рядку. 3) Дано рядок. Замінити кожний символ ’+’ у рядку на символ ’-’. Написати відповідну функцію. 4) Дано рядок. Написати функцію, яка повертає кількість цифр у рядку. Перевірити роботу функції. 5) Дано рядок. Замінити у рядку кожну латинську букву наступною про алфавіту(букв ‘z’, ‘Z’ замінювати буквою ‘a’, ‘A’). Наприклад, рядок “Zebra has two colors” має перетворитися на “Afcsb ibt uxp dpmpst”. Написати відповідну функцію шифрування рядка. 6) Дано текст. Визначити чи у текст входять всі букви слова “win”. 7) Дано рядок. Замінити кожну цифру рядка на символ крапки. Написати відповідну функцію. 8) Вводиться рядок, що містить символи крапка. Вивести послідовність символів, розміщених між першою та другою крапкою. 9) Вводиться рядок. Порахувати кількість букв латиниці у рядку. 10) Вводиться рядок. Визначити чи у тексті зустрічається сполучення букв ‘no’. 11) Вводиться рядок. Визначити чи він є паліндромом(читається однаково.з обох сторін). 12) Дано текст, що складається з кількох речень. Речення можуть закінчуватися знаками ‘.’, ‘?’,’!’. Порахувати кількість речень у тексті. 13) Дано рядок з формулою. Знайти кількість арифметичних операцій та кількість аргументів у формулі. Завдання 2. Створити програму для виконання задачі згідно варіанту. Написати відповідну функцію для роботи з рядком(рядками). При розв’язанні задачі не користуватися бібліотечними функціями. Варіанти: 1) Вставити ’*’ після кожного входження букв ’а’ чи ’А’. Результат розмістити у новому рядку. 2) Видалити у рядку всі входження заданої букви. Результат розмістити у новому рядку. 3) Виконати копію символів латиниці з одного рядка у інший. 4) Написати та протестувати свою власну функцію – аналог бібліотечної функції strlen(). 5) Написати та протестувати свою власну функцію – аналог бібліотечної функції strcpy(). 6) Написати та протестувати свою власну функцію – аналог бібліотечної функції strncpy(). 7) Написати та протестувати свою власну функцію – аналог бібліотечної функції strcat(). 8) Написати та протестувати свою власну функцію – аналог бібліотечної функції strcmp(). 9) Написати та протестувати свою власну функцію – аналог бібліотечної функції strncat(). 10) Написати та протестувати свою власну функцію – аналог бібліотечної функції atoi(). 11) Написати та протестувати свою власну функцію – аналог бібліотечної функції stricmp(). 12) Написати та протестувати свою власну функцію – аналог бібліотечної функції strpbrk(). 13) Написати та протестувати свою власну функцію – аналог бібліотечної функції strchr(). 14) Написати та протестувати свою власну функцію – аналог бібліотечної функції itoa(). 15) Написати та протестувати свою власну функцію – аналог бібліотечної функції strrchr().
Лабораторна робота № 10 Завдання 2. Описати масив Zoo, кожний елемент якого може зберігати інформацію або про домашню тварину(кличка, порода, вік), або про дику(назва, місцевість, де проживає), або про птаха. Описати функції для заповнення та виведення масиву Zoo, пошуку інформації в ньому по різноманітним критеріям. При побудові програми використати об’єднання.
Лабораторна робота № 13 Тема: Рекурсивні функції. Контрольні запитання: 1. Що таке рекурсія? 2. Яка підпрограма називається рекурсивною? 3. Що називають глибиною рекурсії? 4. У яких випадках при виконанні рекурсивних підпрограм виникають помилки переповнення стеку(Stack overflow)? 5. У яких випадках доцільно використовувати рекурсивні алгоритми для розв’язку задач? 6. Запишіть ланцюг рекурсивних викликів та поясніть роботу заданої рекурсивної функції: double g(int n) { if (n == 0) return 1; else if (n > 0) return g(n-1)*2; else return 1 / g(-n); } при умові, що функція викликається таким чином а)cout << g(1) << endl; б)cout << g(3) << endl; в)cout << g(-2) << endl; Яку задачу розв’язує задана рекурсивна функція? 7. Запишіть ланцюг рекурсивних викликів та поясніть роботу заданої рекурсивної функції: int f(int n) { if (n == 5) return 120; else if (n > 5) return f(n-1)*n; else return f(n+1)/(n+1); } при умові, що функція викликається таким чином: а)cout << f(5) << endl; б)cout << f(3) << endl; в)cout << f(6) << endl; Яку задачу розв’язує задана рекурсивна функція? 8. Запишіть ланцюг рекурсивних викликів та поясніть роботу заданої рекурсивної функції: double R(int n) { if (n == 0) return 1; else if (n > 0) return R(n - 1) * 5; else return R(n + 1) / 5.; } при умові, що функція викликається таким чином: а)cout << R(1) << endl; б)cout << R(3) << endl; в)cout << R(-2) << endl; Яку задачу розв’язує задана рекурсивна функція? Завдання 1. Написати програму. Вимоги до завдання: - використати рекурсивні функції. - протестувати рекурсивні функції на придатних наборах вхідних даних.
Варіанти:
ì 1 при n = 0 xn = í 1/x|n| при n < 0 î x* xn-1 при n > 0
Завдання 2. Написати програму. Вимоги до завдання: - використати рекурсивні функції. - протестувати рекурсивні функції на придатних наборах вхідних даних.
Варіанти:
Лабораторна робота №2 Тема: Вбудовані функції. Директиви препроцесора. Контрольні запитання: 1. Які функції називають вбудованими? 2. Мета застосування вбудованих функцій. 3. Яким правилам має задовольняти вбудована функція? 4. Призначення препроцесора. 5. Призначення директиви препроцесора #include. Формат директиви. 6. Призначення директив препроцесора #define, #undef. 7. Правила створення макросів. 8. Умовна компіляція програми. Директиви умовної компіляції. 9. Відмінності між макросами та функціями. Завдання 1. Створити програму з використанням вбудованої функції. Варіанти:
Завдання 2. Програма «Шифрування коду». Скласти програму, що містить текст програми у зашифрованому вигляді. Створити файл code.h, у якому розміщені директиви для заміни деяких ключових слів, символів мови С++ на нові «ключові» слова(наприклад, слову begin поставити у відповідність {, end - } та ін.) Підключити code.h у файлі з головною функцією.
Завдання 3. Створити макрос згідно варіанту та перевірити роботу макросу. Подивитися на результат роботи препроцесора, виконуючи наступні кроки:
Варіанти:
1. Створити макрос для обчислення n!. 2. Створити макрос для обчислення xN. 3. Створити макроси для обчислення більшого з двох та більшого з трьох. 4. Створити макроси, які перевіряють число на парність та кратність 5. 5. Створити макроси для округлення дробового до найближчого цілого, та для відсікання дробової частини. 6. Створити макрос, які перевіряє існування трикутника на трьох сторонах 7. Створити макроси для обчислення меншого з двох та меншого з трьох. 8. Створити макроси для обчислення гіпотенузи прямокутного трикутника за двома катетами та навпаки(обчислення другого катета за гіпотенузою та першим катетом) 9. Створити макроси для округлення дробового до найближчого цілого, та для отримання дробової частини числа. 10. Створити макрос для обчислення 2n!!. 11. Створити макроси для обчислення середнього з двох та середнього з трьох чисел. 12. Створити макроси для обчислення площі круга та поверхні кулі. Оголосити препроцесорну константу PI. 13. Створити макроси для перетворення сантиметрів у дюйми та навпаки.. Оголосити препроцесорну константу зі значенням 2.54. 14. Створити макроси для перетворення градусі Цельсія у Фаренгейти та навпаки. Формула переходу TF = TC *1.8 +32.
Завдання 4. Створити приклад програми з використанням директив умовної компіляції.
Лабораторна робота №3
|
||||
Последнее изменение этой страницы: 2016-04-18; просмотров: 487; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.39.181 (0.014 с.) |