- •Ф.Б. Рогальський, і.А. Лур'є, н.В. Корніловська
- •Ф.Б. Рогальський, і.А. Лур'є, н.В. Корніловська
- •Передмова
- •Лабораторна робота №1 Інтегроване середовище програмування системи
- •Теоретична частина
- •Компоненти інтегрованого середовища
- •Головне меню
- •Системне меню
- •Replace (Замінити) – відображає блок діалогу, що дозволяє вводити шуканий текст і текст, на який його варто замінити.
- •Clear (Стерти) – видаляє обраний фрагмент тексту, але не заносить його в текстовий буфер.
- •Size/Move (Змінити розмір/Перемістити) – використовується для того, щоб змінити розмір чи місце розташування активного вікна.
- •Створення першої програми
- •Контрольні питання
- •Мова програмування Сі Використовувані символи
- •Константи
- •Приклади цілих констант
- •Ідентифікатор
- •Використання коментарів у тексті програми
- •Типи даних та їх оголошення
- •Категорії типів даних Ключові слова для визначення основних типів даних
- •Стандартні функції
- •Специфікатори формату
- •Команди формату
- •Стандартні заголовні файли
- •Пріоритети операцій і порядок обчислень
- •Контрольні питання
- •Варіанти завдань роботи
- •Лабораторна робота № 3 Оператори управління
- •Теоретична частина
- •Умовний оператор if
- •If (вираз) оператор-1; [else оператор-2;]
- •Оператор switch
- •Оператор break
- •Оператор for
- •Оператор goto
- •Зразок виконання завдання
- •Контрольні питання
- •Оператор switch.
- •Оператор break.
- •Варіанти завдань роботи
- •Лабораторна робота № 4
- •Оператор do while
- •Оператор continue
- •Оператор return
- •Контрольні питання
- •Варіанти завдань роботи
- •Лабораторна робота № 5 Функції і прототипи функцій
- •Теоретична частина
- •Прототипи функцій
- •Метод половинного ділення
- •Зразок виконання завдання
- •Контрольні питання
- •Варіанти завдань роботи
- •Лабораторна робота № 6 Алгоритми обробки одновимірних масивів
- •Теоретична частина
- •Контрольні запитання
- •Варіанти завдань роботи
- •Лабораторна робота №7 Сортування даних
- •Теоретична частина
- •Обмінне сортування
- •Інші методи сортування
- •Контрольні питання
- •Варіанти завдань роботи
- •Лабораторна робота № 8 Алгоритми обробки двовимірних масивів
- •Теоретична частина
- •Перетворення одновимірних масивів у двовимірні та навпаки
- •Контрольні питання
- •Варіанти завдань роботи
- •Лабораторна робота n 9 Прийоми програмування з використанням покажчиків.
- •Теоретична частина
- •Зв’язок між покажчиками та масивами
- •Покажчики на багатовимірні масиви.
- •Операції з покажчиками
- •Приклад:
- •Масиви покажчиків
- •Контрольні питання
- •Методичні вказівки
- •Приклад виконання завдання по обробці рядків
- •Приклад виконання програми
- •Варіанти завдань роботи
- •Лабораторна робота n10 Директиви препроцесора.
- •Теоретична частина Препроцесор мови с
- •Директива #еrrоr
- •Директива #include
- •Директиви умовної компіляції
- •Визначені макроси.
- •Контрольні питання
- •Варіанти завдань роботи.
- •Лабораторна робота 11 Друк кодової таблиці.
- •Теоретична частина.
- •Особливості типу char
- •Файл ctype.H
- •Рекомендації зо вибору імен змінних і функцій
- •Контрольні питання
- •Додатки
- •Методика виконання роботи
- •Варіанти завдань роботи
- •Вид таблиці символів:
- •Теоретична частина
- •Лабораторна робота 12 Рядки. Потокове введення/виведення у мові с.
- •Функції для роботи з рядками
- •Рядки і числові типи даних
- •Робота з файлами
- •Контрольні питання.
- •Додатки
- •Варіанти завдань роботи .
- •Лабораторна робота 13
- •Теоретична частина.
- •Контрольні питання
- •Варіанти завдань роботи.
- •Лабораторна робота 14
- •Теоретична частина
- •Ключі доступу
- •Просте спадкування
- •Віртуальні методи
- •Механізм пізнього зв'язування
- •Абстрактні класи
- •Множинне спадкування
- •Відмінності структур і об'єднань від класів.
- •Контрольні питання.
- •Варіанти завдань роботи.
- •Література
- •Рогальський Франц Борисович
Контрольні питання.
Що таке «рядок» у С\С++?
Як визначається масив символів і як його можна ініціалізувати?
Як підрахувати довжину рядка?
Як скопіювати рядок?
Приведіть приклади функцій з <string.h> і вкажіть їхнє призначення.
Як визначити перемінну потоку і як зв'язати її з набором даних?
Як скопіювати текстовий файл?
Додатки
// Програма 1 копіювання текстового файлу
#include <fstream.h>
char sztring (100);
void main (void)
{
ifstream f (“file_in.txt”, ios::in); /*Створили вхідний потік*/
ofstream f (“file_in.txt”, ios::out); /*Створили вихідний потік*/
while (if, eom()) {
f.getline (szstring, 100); /*Виконали введення рядка*/
g<<szstring<<end1; //
}
}
// Програма 2 копіювання текстового файлу
#include <fstream.h>
char sztring (100);
void main (void)
{
fstream f ; /*Утворили вхідний потік*/
fstream f1; /* Утворили вихідний потік */
f.open (“new_c2.cpp”, ios::in); // відкрили потік для введення
f1.open (“new_c2.cpp”, ios::out); // відкрили потік для виведення
while (if. eof()){
f.getline (szstring, 100); /*виконали неформатоване введення рядка*/
f1<<szstring<<end1; // вставили рядок у вивідний потік
}
f1.close ();
}
// Програма 3 копіювання текстового файлу – побайтове копіювання
#include <fstream.h>
char c;
void main (void) {
fstream f (“new_copy.cpp”, ios::in); /*Утворили вхідний потік*/
fstream f1 (“new_copy.cpy”, ios::out); /*Утворили вихідний потік*/
while (f.get (c)) f1.put (c); /*побайтове копіювання*/
f1.close ();
}
// Програма для експериментів з strtok
#include <string.h>
char a [20] = “це рядок фрагментів рядка”;
char a_copy[20]
char b [ ]= “ . . ”;
void main (void) {
char * pc;
strcpy (a_copy, a);
pc=strtok (a,b);
pc=strtok (NULL,b);
}
Варіанти завдань роботи .
Задано файл з декількох рядків:
Підрахувати в кожнім рядку файлу кількість рядків “int”. Додати перед кожним таким рядком рядок “unsigned”. Результат вивести в новий файл.
У словах кожного рядку файлу залишити тільки перші букви. Слова розділені між собою пробілами. Результат вивести в новий файл.
У кожнім рядку файлу після кожного максимального ланцюжка цифр вставити символи “0”. Результат зберегти в новому файлі.
Підрахувати в текстовому файлі, кількість слів, у яких перший і останній символи однакові. Результати підрахунку вивести у файл.
Підрахувати кількість слів-анаграм у рядках файлу. Слово – анаграма однаково читається з ліва на право і навпаки (тот, кабак, кок). Результат вивести в новий файл.
У кожнім рядку файлу змінити порядок слів на зворотній. Результат зберегти в новому файлі. Слова розділені пробілами або комою.
Підрахувати, скільки слів у кожнім рядку файлу починається з цифри. Слова розділені пробілами. Результати підрахунку вивести у файл.
Замінити в рядках файлу кожне слово, що складається тільки з цифр, розташувавши цифри в порядку зростання. Результат зберегти в новому файлі.
У файлі всі слова, що закінчуються буквою а, узяти в квадратні дужки. Слова розділені пробілами. Результат вивести в новий файл.
У новий файл скопіювати рядки заданого файлу, що містять, принаймні, два слова, що складаються з одної множини символів.
У кожнім рядку файлу після кожного символу '{' вставити ланцюжок /*Begin*/, а після кожного символу '}' – ланцюжок /*end*/. Результат зберегти у новому файлі.
У кожнім рядку файлу перед першою буквою слова, що випливає за словом “int”, вставити букву 'і'. Результат вивести в новий файл.
Для кожного рядку файлу визначити, чи маються в рядку слова, що є правильним записом римськими цифрами цілих чисел від 1 до 999 і, якщо маються, построчно вивести ці числа у файл у десятковій системі.
У кожнім рядку файлу слова, що складаються тільки з латинських букв, розташувати в порядку зростання їхніх довжин. Позиції інших слів у рядку не повинні змінитися.
Файл містить речення, що складаються зі слів. Кінець пропозиції позначається знаком '.' (крапкою). Підрахувати для кожної пропозиції число слів, число символів у словах і загальне число символів (включаючи пробіли). Результати записати у файл.
