Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4 Курс / Практика / metodichka_u_praktika.doc
Скачиваний:
10
Добавлен:
30.05.2020
Размер:
2.15 Mб
Скачать

Hanr(n-1,s1,s3,s2);

cout << "perenesty s "<<s1<<" na "<<s2<<endl;

Hanr(n-1,s3,s2,s1);

}

}

9.3. Індивідуальні завдання

Вирішити завдання двома способами – із застосуванням рекурсії і без неї.

1. Обчислити середнє значення елементів одновимірного масиву.

2. Обчислити твір елементів одновимірного масиву.

3. Підрахувати кількість цифр в заданому числі.

4. У впорядкованому масиві цілих чисел ai, i = 1 ... n знайти номер елементу з методом бінарного пошуку, використовуючи очевидне співвідношення: якщо, тоді, інакше . Якщо елемент з відсутній в масиві, то вивести відповідне повідомлення.

5. Знайти найбільшого загального дільника чисел M і N використовуючи метод Ейлера: якщо M ділиться на N, то НОД (N, M) = N, інакше НОД (N, M) = = НОД (M % N, N).

6. Обчислити значення полінома міри n за формулою

.

7. Обчислити значення, використовуючи формулу, як початкове наближення використовувати значення x0 = (1+a)/2.

8. Знайти максимальний елемент в масиві a1 ..., an, використовуючи метод ділення навпіл max (a1 ..., an) = max (max (a1 ..., an/2), max (an/2+1 ..., an)).

9. Обчислити .

10. Обчислити твір n ( 2 (n парне) співмножників

11. Обчислити по наступному алгоритму:, якщо N парне;, якщо N непарне.

12. Обчислити

13. Обчислити твір двох цілих позитивних чисел по наступному алгоритму:, якщо b парне;, якщо b непарне. Якщо b = 0, то p = 0.

14. Обчислити значення суми S = 1/1! + 1/2! + ... + 1/k!

15. Перевірити, чи є заданий рядок палиндромом.

Робота №10 Програмування з використанням файлів

10.1. Організація роботи з файлами

Розрізняють два види файлів: текстові і двійкові.

Текстові файли зберігають інформацію у вигляді послідовності символів. У текстовому режимі кожен розділовий символ рядка автоматично перетвориться в пару (повернення каретки – перехід на новий рядок).

Бінарні (або двійкові) файли призначені для зберігання лише числових значень даних. Структура такого файлу визначається програмно.

Функції для роботи з файлами розміщені в бібліотеках stdio.lib (#include <stdio.h>) і io.lib (#include <io.h>). Кожен файл має бути пов'язаний з деяким покажчиком. Цей покажчик має типа FILE і використовується у всіх операціях з файлами.

Формат оголошення покажчика на файл наступний:

FILE *указатель на файл;

Макрос NULL визначає порожній покажчик.

Макрос EOF, часто визначуваний як –1, є значенням, повертаним тоді, коли функція введення намагається виконати читання після кінця файлу.

Макрос FOPEN_MAX визначає ціле значення, рівне максимальному числу одночасно відкритих файлів.

10.2. Функції для роботи з файлами

Функція

FILE *fopen(const char *имя_файла,

const char *режим_открытия);

відкриває файл і пов'язує його з потоком. Повертає покажчик на відкритий файл. Імя_файла – це покажчик на рядок символів, в якому зберігається ім'я файлу і дорога до нього. Режім_откритія – це покажчик на рядок символів, в якому вказується режим відкриття файлу. Допустимі режими:

r ( відкриття текстового файлу для читання;

w ( cоздатие текстового файлу для запису;

а ( додавання інформації в кінець текстового файлу.

При роботі з текстовими файлами до символу, вказуючого режим відкриття, додається символ «t» (за умовчанням), а при роботі з бінарними – «b». Якщо необхідно і читати і записувати у файл, то додається символ «+». При виникненні помилки під час відкриття файлу, функція fopen повертає значення NULL.

Функція

int fclose(FILE *указатель_на _файл);

закриває потік, який був відкритий за допомогою виклику fopen() і записує у файл всі дані, які ще залишалися в дисковому буфері. Доступ до файлу після виконання функції буде заборонений.

Повернення нуля означає успішну операцію закриття. У разі ж помилки повертається EOF.

Функція

int fcloseall(void);

закриває всі відкриті файли. Повертає кількість закритих файлів або EOF, якщо виникає помилка.

Функція

int putc(int символ, FILE * указатель_на _файл);

записує один символ в поточну позицію вказаного відкритого файлу. Функція

int getc(FILE * указатель_на _файл);

читає один символ з поточної позиції вказаного відкритого файлу.

Функція

int feof(FILE * указатель_на _файл);

повертає відмінне від нуля значення (true), якщо кінець файлу не досягнутий, і нуль (false), якщо досягнутий кінець файлу.

Функція

int fputs(const char * рядок, FILE * указатель_на _файл);

записує рядок символів в поточну позицію вказаного відкритого файлу.

Функція

char *fgets(char *строка, int довжина

FILE * указатель_на _файл);

читає рядок символів з поточної позиції вказаного відкритого файлу до тих пір, поки не буде прочитаний символ переходу на новий рядок, або кількість прочитаних символів не стане рівною довжина – 1.

Функція

int *fprintf(FILE * указатель_на _файл

const char * управляющая_строка);

записує форматовані дані у файл. Управляющая_строка визначає рядок форматування аргументів, заданих своїми адресами. Зазвичай цей рядок складається з послідовності символів «%», після яких слідує символ типа даних: