10.4. Вправи
Вправа 1
Створити функцію filelen, що приймає як параметр ім'я файлу й повертає його довжину в байтах. Якщо файл не може бути відкритий, функція повинна виводити відповідне повідомлення.
Вправа 2
Напишіть програму, яка з’єднує два наданих текстових файла в один. Імена файлів повинні зчитуватися із командного рядка.
Вправа 3
Є список виборців, елементом якого є прізвище виборця, його ініціали й, можливо, інші дані. Список розміщений у файлі й довжина списку наперед не відома, довжина рядка не перевищує 200 символів. Скласти програму, що впорядковує список за абеткою по прізвищах і ініціалах. Впорядкований список повинен бути записаний у другий файл. Імена файлів повинні вказуватися в командному рядку. Для програмування операцій з файлами застосувати засоби бібліотеки С (тип FILE*), для подання рядків - одновимірні символьні масиви (тип char*).
Вправа 4
Скласти програму, яка розв’язує задачу з попередньої вправи, але для роботи з файлами застосувати потоки, а для подання рядків - стандартний клас string.
Вправа 5
Є текстовий файл. Написати функцію, що читає із цього файлу одне наступне слово за умови, що символ- роздільник слова - довільний. Наприклад, якщо символом-роздільником є символ '\n' , функція повинна читати цілий рядок. Для передачі файлу через параметр функції, використати параметр типу FILE*.
Вправа 6
Є потік in типу ifstream. Написати функцію, що читає із цього потоку одне слово за умови, що символ- роздільник слова є довільний заданий символ.
Вправа 7
Є текстовий файл, який містить список імен, розділених пропусками. Відберіть з нього паліндрономічні імена ( наприклад Ада, Анна, Аза, Алла ) і запишіть їх в інший файл.
Вправа 8
Напишіть програму, яка зчитує інформацію з текстового файлу та підраховує, скільки
разів зустрічається кожен з таких префіксів слів: над-, від-, пере-, під- .
Вправа 9
В тексті, який міститься в заданому файлі, слова можуть бути відокремлені одне від одного більш ніж одним пропуском. Відредагуйте текст, відокремлюючи слова одним символом пропуску, а речення двома.
Вправа 10
Файл телефонного довідника містить інформацію абонентів: прізвище, ім’я та по-батькові (ПІБ), адреса, рік установки телефону, номер телефону, наявність пільг. Напишіть програму, яка дає змогу модифікувати файл: видаляти введений з клавіатури ПІБ, або змінювати його, або додавати у файл.
Вправа 11
З матриці розміру , записаної у наданому файлі, треба одержати вектор, що складається з впорядкованих по спаданню середньоарифметичних значень елементів рядків матриці. Результат треба зберегти в іншому файлі.
Вправа 12
Файл містить інформацію про відправку поїздів з деякого вокзалу: номер поїзда, станція призначення, час відправлення, час в дорозі, наявність вільних місць. Напишіть програму, яка виводить інформацію про наявність білетів на поїзд з певним номером, коли він відправляється та прибуває в пункт призначення.
Вправа 13
Файл містить інформацію про результати змагань з п’ятиборства деякої групи студентів в такому вигляді: прізвище, ім’я та по-батькові (ПІБ), вид спорту, бал . Напишіть програму, яка виводить інформацію, відсортовану таким чином:
а) по алфавіту;
б) відповідно до спортивних досягнень студента.
Вправа 14
Написати програму для порівняння двох текстових файлів. Порівняння повинно виконуватись для кожної пари відповідних рядків. При неспівпаданні рядків на екран повинні виводитися номер поточного рядка та його зміст у першому та другому файлі.
Вправа 15
Надано файл та деяка послідовність символів D. Написати програму, яка знаходить кількість входжень послідовності D у наданий файл.
Вправа 16
Задача про паралельні резистори: обчислити загальний опір групи паралельно включених резисторів і відносну частку теплової потужності, що виділяється кожним з резисторів. Для збереження значень опорів використати динамічний масив. Вхідні данні зчитувати з файлу, результат записувати також у файл. Формули для розрахунків:
загальний опір R групи резисторів r1, r2, ... , rN:
;
доля теплової потужності, що виділяється k-тим резистором:
.
Вправа 17
Написати програму, яка виконує копіювання інформації з одного текстового файлу в інший і при цьому символ ". " (крапка) всюди змінити на символ ", " (кома).
Вправа 18
Напишіть програму, яка визначає кількість рядків тексту, що містяться у наданому текстовому файлі. Для програмування операцій з файлом застосувати потоки.
Вправа 19
Написати програму, яка виконує копіювання наданого текстового файлу на екран. Передбачити введення імені файлу через командний рядок. Для програмування операцій з файлом застосувати потоки. Створити наступні версії програми:
а) для зчитування символу з файлу застосувати функцію ifstream::get() ;
б) для зчитування символу з файлу застосувати функцію ifstream::get(x) ;
в) для зчитування символу з файлу застосувати операцію добування з потоку ">>". Щоб запобігти пропусків пробілів, застосувати прапор форматування skipws;
г) для зчитування інформації з файлу застосувати функцію ifstream::getline(buff,size).
Вправа 20
Написати програму, яка виводить наданий текстовий файл на екран. Ім’я файлу передавати через командний рядок. Застосувати потокові операції та функцію getline(istream&, string&) з модулю syst.h .
Вправа 21
Написати програму, яка виконує копіювання інформації з одного файлу в інший. Імена файлів передавати через командний рядок. Якщо ім’я файлу-приймача у командному рядку не вказано, копіювання повинно відбуватися на екран. Для програмування операцій з файлами застосувати потоки.
Yandex.RTB R-A-252273-3
- Запоріжжя знту 2008
- Глава 1
- 1.1. Історія та сучасність
- 1.2. Загальна структура програми. Два простих приклади
- Void main()
- Void main()
- Глава 2 Об’єкти та ідентифікатори
- 2.1. Об'єкти та їхні атрибути
- 2.2. Алфавіт мови та лексеми
- 2.3. Ідентифікатори
- Void main() // (рівень 0)
- 2.4. Вправи
- Глава 3
- 3.1. Поняття виразу. Вирази Lvalue та Rvalue
- 3.2. Операції. Пріоритети та асоціативність
- Void main()
- Void main()
- Void main()
- 3.3. Вправи
- Глава 4
- 4.1. Види операторів
- 4.2. Стандартні оператори
- If (лв) опер_1; [ else опер_2; ]
- Void main()
- If (лв1) опер_1;
- Void main()
- Void main()
- Void main()
- Void main()
- Void main()
- 4.3. Оголошення змінних та ініціалізація
- Int number(125);
- Int number(125);
- 4.4. Константи і константні об'єкти
- Void main()
- 4.5. Вправи
- Глава 5
- 5.1. Типи та їхні різновиди
- 5.2. Службове слово void
- Int a[small], a[large];
- 5.4. Перетворення типів
- 5.5. Вправи
- Void main()
- Глава 6 покажчики і посилання
- 6.1. Покажчики
- Void main()
- Void strcpy(char* s1, char* s2)
- Void* pv;
- 6.2. Посилання
- 6.3 Вправи
- Void main()
- Глава 7 масиви і динамічні об'єкти
- 7.1. Масиви
- Void main()
- 7.2. Рядки символів
- Int strlen(char* s);
- Int strcmp(char* s1, char* s2);
- Int len(char *s)
- 7.3. Динамічні об'єкти й масиви
- Void main()
- Void main()
- Void main()
- Void main()
- 7.4. Вправи
- Глава 8 функції та процедури
- 8.1. Загальні відомості
- Void main()
- Void c_mul(double a_re, double a_im,
- Void swap1(long *px, long *py)
- Void swap2(long &X, long &y)
- Void main()
- Int fun(int, float*, double&);
- Void fun(int n)
- Void main()
- Void swap(int& a, int& b)
- 8.2. Функція main
- Void або int main(int n, char** p, char** q);
- Void main(int n, char** p, char** q)
- 8.3. Функції зі змінною кількістю параметрів
- Void main()
- 8.4. Покажчики на функції
- Int (*pf[3])(float X, float y);
- Void main()
- 8.5. Функції з шаблонами
- Void swap(string& s1, string& s2)
- Void main()
- Inline t abs(t X)
- Void create(type* &a, int n)
- Void del(type* &a)
- 8.6. Вправи
- Глава 9 консольне вВедення / вИведення
- 9.1. Засоби бібліотеки с
- Void main()
- Void main()
- Void main()
- 9.2. Використання потоків
- Void main()
- Void main()
- 9.3. Вправи
- Глава 10 операції з файлами
- 10.1. Види файлів і режими роботи з ними
- 10.2. Бібліотека с
- Void fprint(file* f, &X)
- Void rewind(file* f);
- Void main()
- Void main(int n, char** f)
- Void main(int n, char** fnam)
- 10.3. Застосування потоків
- Ifstream fin;
- Void open(char* filename, int mode, int access);
- Ifstream fin("a.Dat");
- Void main()
- Ifstream fa("a.Dat");
- If (fa.Eof()) break;
- Void main(int n, char** fnam)
- Void main(int n, char** f)
- Ifstream fa(f[1]);
- Void main(int n, char** fnam)
- Void main()
- Ifstream in("example.Cpp");
- Void main()
- Ifstream in("name.Dat",ios::binary);
- Void main()
- Ifstream fa("a.Dat");
- Int descr(fstr& f)
- Void main()
- Ifstream ina(infa);
- Ifstream inb(infb);
- 10.4. Вправи
- Глава 11 компіляція програми. Директиви і макроси
- 11.1. Фази компіляції
- 11.2. Директиви режиму компіляції
- 11.3. Директиви препроцесора
- 11.4. Вправи
- Глава 12 змішане програмування. Використання ассемблерного коду
- 12.1. Засоби використання асемблера
- Void main()
- 12.2. Вправи
- Глава 13 програмна реалізація алгоритмів
- 13.1. Алгоритм Евкліда пошуку найбільшого загального дільника двох цілих чисел
- 13.2. Обчислення факторіала
- 13.3. Пошук простих чисел. Решето Ератосфена
- Void main()
- 13.4. Генерація підмножин
- Void main()
- 13.5. Сортування масивів
- Void main()
- Void main()
- Int flag;
- 13.6. Пошук у масиві
- Void main()
- Void main()
- 13.7. Операції з матрицями
- Void ObrMatr (double** a, double** b, unsigned n )
- Void Minv(double** a, double** b, unsigned n )
- Void Gauss(double** a, double* b, double* X, unsigned n)
- 13.8. Лінійна інтерполяція даних
- 13.9. Лінійна апроксимація
- Void linappr(int n, double* X, double* y, double& a0, double& a1)
- 13.10. Розв’язування нелінійних рівнянь
- Void Bisec(funx f, double a, double b, double eps, double& X)
- Void Bisec(funx f, double a, double b,
- Void main()
- 13.11. Пошук заданої послідовності символів у файлі
- Void push(char* s, int n, char X)
- Void main()
- 13.12. Вправи
- Глава 14 створення й використання бібліотечних модулів. Модуль syst.H
- 14.1. Створення бібліотечних модулів
- 14.2. Модуль syst.H
- 14.3. Системні функції та макрооперації
- Void runtimer();
- Void main()
- Void runstimer();
- Void main()
- Void swp(Type& a, Type& b);
- Void main()
- Int cmp(int nx, int ny, Type* X, Type* y);
- Void errhalt(bool ex, char* mes);
- Void errhalt(bool ex, char* mes, file* f);
- 14.4. Операції введення/виведення
- Void flushkey();
- Void main()
- Int getyes();
- Void main()
- Void main()
- Int weight(type X);
- Void main()
- Int hamdist(Type a, Type b)
- 14.6. Спеціальні класи. Клас Spline для інтерполяції даних сплайнами
- Void main()
- 14.7. Вправи
- Глава 15 графІчне виведення. Модуль rgraph.H
- 15.1. Модуль rgraph.H. Загальні відомості
- 15.2. Глобальні змінні й константи
- 15.3. Класи й покажчики на функції
- 15.4. Функції й процедури класів
- Void main()
- Void main()
- Void main()
- Void main()
- 15.7. Вправи
- Глава 16 Життєвий цикл програмного продукту. Питання стилю запису програм
- 16.1. Життєвий цикл програми
- Int n, alfa, col;
- Void draw();
- Void rotate(int delta);
- 16.3. Вправи
- Література