Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Methods_AP_LABS_II

.pdf
Скачиваний:
17
Добавлен:
17.03.2016
Размер:
1.05 Mб
Скачать

ifstream in("test.in"); if(!in)

{

cerr << "Cannot open input file!\n"; return -1;

}

int a, b;

in >> a >> b;

ofstream out("test.out"); if(!out)

{

cerr << "Cannot open output file!\n"; return -2;

}

out << a + b;

return 0;

}

Закрити файл можна за допомогою методу потоку void close().

Наприклад,

ifstream i(“test.txt”);

...

i.close();

Лістинг 6.4

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

#include <iostream> #include <fstream>

int main()

{

using namespace std;

// Відкрити файл тільки для читання ifstream in("tst4.in");

if(!in)

{

cerr << "Не можу відкрити вхідний файл!"; return -1;

}

int n, m;

in >> n >> m;

//Створити матрицю int** mat = new int* [n]; for(int i = 0; i < n; ++i)

mat[i] = new int[m];

//Прочитати матрицю з файлу for(int i = 0; i < n; ++i)

for(int j = 0; j < m; ++j) in >> mat[i][j];

double sum = 0;

//Знайти суму всіх елементів матриці for(int i = 0; i < n; ++i)

for(int j = 0; j < m; ++j) sum += mat[i][j];

// Відкрити файл для запису ofstream out("tst4.out");

if(!out)

{

cerr << "Не можу відкрити вихідний файл!"; return -2;

}

// Записати матрицю з коефіцієнтами розділеними на суму її

елементів

for(int i = 0; i < n; ++i, out << endl) for(int j = 0; j < m; ++j)

out << '\t' << mat[i][j] / sum;

}

6.2 Практичні завдання

1. Виконати завдання згідно свого варіанту (таблиця 6.9).

Таблиця 6.9

Варіанти завдань

Варіант

Завдання

Заданий файл f,

компоненти якого є дійсними числами.

1Знайти:

а) суму компонентів файлу f;

б) добуток компонентів файлу f.

Заданий файл f, компоненти якого є дійсними числами.

2Знайти:

а) суму квадратів компонент файлу f;

б) модуль суми й квадрат добутку компонент файлу f.

Заданий файл f, компоненти якого є дійсними числами.

3Знайти:

а) найбільше з .значень компонентів файлу f;

б) найменше зі значень компонентів з парними номерами; Заданий файл f, компоненти якого є дійсними числами. Знайти:

4а) найбільше зі значень модулів компонент із непарними номерами; б) суму найбільшого й найменшого зі значень компонентів;

Заданий файл f, компоненти якого є цілими числами.

5Знайти:

а) кількість парних чисел серед компонентів; б) кількість квадратів непарних чисел серед компонентів; Послідовність x1, x2,… утворена за законом

i 0.1

6xi i3 tg 2i , i=1,2,….

Дано дійсне ε>0. Записати у файл h члени послідовності x1, x2,…, зупинившись після першого члена, для якого виконано

xi .

7Заданий символьний файл f. Одержати копію файлу у файлі g.

Задані символьні файли f1 і f2. Переписати зі збереженням

8порядку проходження компоненти файлу f1 у файл f2, а компоненти файлу f2 - у файл f1. Використовувати допоміжний файл h.

Задані файли f1, f2, f3, f4, f5, компоненти яких є дійсними числами. Організувати обмін компонентами між файлами за

9схемою: f1 →f3, f2 →f4, f3 →f5, f4 →f2, f5 →f1.

Дозволяється використовувати тільки один допоміжний файл h.

Заданий символьний файл f. У файлі f не менш двох

10компонентів. Визначити, є чи два перші символи файлу цифрами. Якщо так, то встановити, чи є число, утворене цими цифрами, парним.

Заданий файл f, компоненти якого є цілими числами.

11Одержати у файлі g всі компоненти файлу f, що є парними числами.

Заданий файл f, компоненти якого є цілими числами.

12Одержати у файлі g всі компоненти файлу f, що діляться на 3, що й не діляться на 7.

 

Заданий файл f, компоненти якого є цілими числами.

13

Одержати у файлі g всі компоненти файлу, що є точними

 

квадратами.

 

 

Заданий файл f, компоненти якого u0, u1,..., un є послідовними

14

числами Фібоначчі. Одержати у файлі f послідовні числа

 

Фібоначчі u0, u1,..., un+1.

 

Заданий символьний файл f. Одержати файл g, утворений з

15

файлу f заміною всіх його прописних (великих) букв

 

однойменними рядковими (малими).

 

Заданий файл f, компоненти якого є цілими числами.

16

Записати у файл g всі парні числа файлу f, а у файл h - всі

 

непарні. Порядок проходження чисел зберігається.

 

Задані символьні файлу f і g. Записати у файл h спочатку

17

компоненти файлу f, потім - компоненти файлу g зі

 

збереженням порядку.

 

Заданий файл f, компоненти якого є цілими числами.

18

Одержати файл g, утворений з файлу f виключенням

 

повторних входжень того самого числа.

 

Заданий файл f, компоненти якого є цілими числами. Жоден з

 

компонентів файлу не дорівнює нулю. Файл f містить стільки

19

ж негативних чисел, скільки й позитивних. Використовуючи

допоміжний файл h, переписати компоненти файлу f у файл g

 

 

так, щоб у файлі g спочатку йшли в позитивні, потім

 

негативні числа.

 

 

Заданий файл f, компоненти якого є цілими числами. Жоден з

 

компонентів файлу не дорівнює нулю. Числа у файлі йдуть у

20

наступному порядку: десять позитивних, десять негативних і

т.д. Переписати компоненти файлу f у файл g так, щоб у

 

 

файлі g числа йшли в наступному порядку: п'ять позитивних,

 

п'ять негативних, п'ять позитивних, п'ять негативних і т.д.

 

Заданий файл f, компоненти якого є цілими числами. Жоден з

 

компонентів файлу не дорівнює нулю. Числа у файлі йдуть у

 

наступному порядку: десять позитивних, десять негативних і

21

т.д.

Переписати компоненти файлу f у файл g так, щоб у

файлі g числа йшли в наступному порядку: двадцять

 

 

позитивних, двадцять негативних, двадцять позитивних,

 

двадцять негативних і т.д. (передбачається, що число

 

компонентів файлу f ділиться на 40).

 

Заданий символьний файл f.

 

а) Обчислити число входжень у файл комбінацій ab.

 

б) Визначити входить чи у файл комбінація abcdefgh.

22

Обчислити число входжень у файл кожної з букв а, b, с, d, e, f

 

і вивести результат у вигляді таблиці:

 

a-Na

b-Nb

c-Nc

 

d-Nd

e-Ne

f-Nf

 

Задані символьні

файли f

і g. Визначити,

чи

збігаються

 

компоненти файлу f з компонентами файлу g. Якщо ні, то

23

одержати номер

першого

компонента, у

якому f

і

g

відрізняються між собою. У випадку, коли один з файлів має

 

 

n компонентів (n>0) і повторює початок іншого (більш

 

довгого) файлу, відповіддю повинне бути число n+1.

 

 

 

Заданий символьний файл f. Записати

у

файл

g

зі

24

збереженням порядку проходження ті символи файлу f, яким

 

у цьому файлі передує буква а.

 

 

 

 

 

 

Заданий символьний файл f. Записати

у

файл

g

зі

25

збереженням порядку проходження ті символи

файлу

f,

 

слідом за яким у цьому файлі йде буква а.

 

 

 

 

 

 

Заданий символьний файл f. Вважаючи, що кількість

26

символів у слові не перевершує двадцяти визначити, скільки

у файлі f є слів, що складаються з одного, двох, трьох і т.д.

 

 

символів.

 

 

 

 

 

 

 

 

Заданий символьний файл f. Вважаючи,

 

що

кількість

27

символів у слові не перевершує двадцяти

одержати

 

гістограмму (стовпчасту діаграму) довжин усіх слів файлу f.

 

 

Заданий символьний файл f, що містить відомості про

 

співробітників установи, записані по наступному зразку:

28

прізвище_ім'я_ по-батькові,

прізвище_ім'я_

 

по-батькові,...

Записати ці відомості у файлі g, використовуючи зразки:

 

 

ім'я_ по-батькові_прізвище, ім'я_ по-батькові_прізвище, ім'я_

 

по-батькові_прізвище.

 

 

 

 

 

 

 

Заданий символьний файл f, що містить відомості про

 

співробітників установи, записані по наступному зразку:

 

 

29

прізвище_ім'я_по-батькові,прізвище_ім'я_по-батькові,…

 

 

 

Записати ці відомості у файлі g, використовуючи зразки:

 

 

 

прізвище_і.п., прізвище_і.п., прізвище_і.п.,…

 

 

 

 

 

 

Заданий файл f, що містить різні дати. Кожна дата - це число,

 

місяць і рік. Знайти:

 

 

 

 

 

 

30

рік з найменшим номером;

 

 

 

 

 

 

 

всі весняні дати;

 

 

 

 

 

 

 

 

саму пізню дату.

 

 

 

 

 

 

 

2.Завдання початкового рівня

1.В файлі test.in записно цілі числа. Знайти їх суму. Результат запишіть в test.out. Для роботи з файлами використовуйте функції cstdio.

2.В файлі test.in записно цілі числа. Знайти їх суму. Результат запишіть в test.out. Для роботи з файлами використовуйте функції fstream.

3.В файлі test.in записано матрицю NxN. Знайдіть її детермінант. Результат запишіть в test.out. Для роботи з файлами використовуйте функції cstdio.

4.В файлі test.in записано матрицю NxN. Знайдіть її детермінант. Результат запишіть в test.out. Для роботи з файлами використовуйте функції fstream.

5.В файлі test.in записано текст англійською мовою. Запишіть в файл test.out всі рядки з файлу test.in, в яких зустрічається слово “Hello”. Результат запишіть в test.out. Для роботи з файлами використовуйте функції cstdio.

6.В файлі test.in записано текст англійською мовою. Запишіть в файл test.out всі рядки з файлу test.in, в яких зустрічається слово “Hello”.

Результат запишіть в test.out. Для роботи з файлами використовуйте функції

fstream.

7. В файлі test.in записано текст англійською мовою. Замініть всі входження слова “Hello” на слово “World”. Результат запишіть в test.out.

Для роботи з файлами використовуйте функції cstdio.

8. В файлі test.in записано текст англійською мовою. Замініть всі входження слова “Hello” на слово “World”. Результат запишіть в test.out.

Для роботи з файлами використовуйте функції fstream.

9. В файлі test.in записано текст англійською мовою. Змініть регістр алфавітних символів. (Приклад: “Hello, World!” стане “hELLO, wORLD!”). Результат запишіть в test.out. Для роботи з файлами використовуйте функції cstdio.

10.В файлі test.in записано текст англійською мовою. Змініть регістр алфавітних символів. (Приклад: “Hello, World!” стане “hELLO, wORLD!”). Результат запишіть в test.out. Для роботи з файлами використовуйте функції fstream.

3. Завдання середнього рівня

11.Створіть програму, що буде видаляти з лістингу програми на мові С++ (файл *.cpp) коментарі виду /* коментар */. Для роботи з файлами використовуйте функції cstdio.

12.Створіть програму, що буде видаляти з лістингу програми на мові С++ (файл *.cpp) коментарі виду /* коментар */. Для роботи з файлами використовуйте функції fstream.

13.Створіть програму, що буде видаляти з лістингу програми на мові С++ (файл *.cpp) коментарі виду // коментар. Для роботи з файлами використовуйте функції cstdio.

14.Створіть програму, що буде видаляти з лістингу програми на мові С++ (файл *.cpp) коментарі виду // коментар. Для роботи з файлами використовуйте функції fstream.

15.Створіть програму, що буде видаляти в текстовому файлі символи-

роздільники (пробіл, символ табуляції) в кінці строк. Для роботи з файлами використовуйте функції cstdio.

16.Створіть програму, що буде видаляти в текстовому файлі символи-

роздільники (пробіл, символ табуляції) в кінці строк. Для роботи з файлами використовуйте функції fstream.

17.Створіть програму, що буде підраховувати частоти монограм (байтів) в

бінарному файлі. Який байт найчастіше зустрічається в текстовому файлі (*.txt)? Виконуваному файлі (*.exe)? Для роботи з файлами використовуйте функції cstdio.

18.Створіть програму, що буде підраховувати частоти монограм (байтів) в

бінарному файлі. Який байт найчастіше зустрічається в текстовому файлі (*.txt)? Виконуваному файлі (*.exe)? Для роботи з файлами використовуйте функції fstream.

19.Створіть програму, що буде підраховувати ентропію за Шенноном бінарного файлу ($H = - \sum_{i=0}^{255} f_i \log f_i$, де $f_i$ --

частота входження байту $i$). Знайдіть ентропію документу Word

(*.doc) та архіву (*.zip). Для роботи з файлами використовуйте функції cstdio.

20.Створіть програму, що буде підраховувати ентропію за Шенноном бінарного файлу ($H = - \sum_{i=0}^{255} f_i \log f_i$, де $f_i$ --

частота входження байту $i$). Знайдіть ентропію документу Word (*.doc) та архіву (*.zip). Для роботи з файлами використовуйте функції fstream.

21.Створіть програму, що буде в текстовому файлі переводити символи табуляції в пробіли (символ табуляції переводить курсор вперед на позицію кратну 8). Для роботи з файлами використовуйте функції cstdio.

22.Створіть програму, що буде в текстовому файлі переводити символи табуляції в пробіли (символ табуляції переводить курсор вперед на позицію кратну 8). Для роботи з файлами використовуйте функції fstream.

23.Створіть програму, що буде в текстовому файлі переводити пробіли в символи табуляції (символ табуляції переводить курсор вперед на позицію кратну 8). Для роботи з файлами використовуйте функції cstdio.

24.Створіть програму, що буде в текстовому файлі переводити пробіли в символи табуляції (символ табуляції переводить курсор вперед на позицію кратну 8). Для роботи з файлами використовуйте функції fstream.

25.Створіть программу пошуку входження строки в бінарному файлі. Чи входить строка ‘This program’ у виконуваний файл Вашої програми

(*.exe)? Для роботи з файлами використовуйте функції cstdio.

26.Створіть программу пошуку входження строки в бінарному файлі. Чи входить строка ‘This program’ у виконуваний файл Вашої програми

(*.exe)? Для роботи з файлами використовуйте функції fstream.

27.Створіть програму, що буде знаходити всі текстові строки довжиною більше 5 символів в бінарному файлі. Для роботи з файлами використовуйте функції cstdio.

28.Створіть програму, що буде знаходити всі текстові строки довжиною більше 5 символів в бінарному файлі. Для роботи з файлами використовуйте функції fstream.

29.Створіть програму, що буде виводити шістнадцятковий дамп бінарного файлу (замість кожного байту вхідного файлу виводиться значення в шістнадцятковій системі). Для роботи з файлами використовуйте функції cstdio.

30.Створіть програму, що буде виводити шістнадцятковий дамп бінарного файлу (замість кожного байту вхідного файлу виводиться значення в шістнадцятковій системі). Для роботи з файлами використовуйте функції fstream.

31.Створіть програму, що буде виводити вісімковий дамп бінарного файлу

(замість кожного байту вхідного файлу виводиться значення в вісімковій системі). Для роботи з файлами використовуйте функції cstdio.

32.Створіть програму, що буде виводити вісімковий дамп бінарного файлу

(замість кожного байту вхідного файлу виводиться значення в вісімковій системі). Для роботи з файлами використовуйте функції fstream.

33.Створіть програму, що буде виводити десятковий дамп бінарного файлу (замість кожного байту вхідного файлу виводиться значення в десятковій системі). Для роботи з файлами використовуйте функції cstdio.

34.Створіть програму, що буде виводити десятковий дамп бінарного файлу (замість кожного байту вхідного файлу виводиться значення в десятковій системі). Для роботи з файлами використовуйте функції fstream.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]