- •Лабораторна робота №10
- •Порядок виконання роботи
- •1. Варіанти завдання
- •2. Теоретичні відомості
- •Int len (char e[ ])
- •Int len (char *s)
- •Void invert(char e[ ])
- •Void main( )
- •Int index(char [ ], char [ ]);
- •Int row(char c1[ ], char c2[ ])
- •Void cone(char *c1, char *c2)
- •Void substr(char *c1, char *c2, int n, int k)
- •3. Приклад розв’язання задачі на еом (варіант 3, завдання №7)
- •Void ChangeStr(char **s1,int m)
- •3.3 Результати роботи програми
- •Контрольні запитання
- •Лабораторна робота №11
- •Тема: Особливості роботи з одномірними динамічними масивами
- •Мета роботи: Отримання практичних навиків у роботі з одномірними динамічними масивами в мові c
- •Порядок виконання роботи
- •1. Варіанти завдання
- •2. Теоретичні відомості
- •Void main()
- •3. Приклад розв’язання задачі на еом (варіант №30)
- •3.2. Визначення змінних програми
- •3.3. Розробка тексту програми Крім файлів:
- •Int main(void) {
- •3.4. Налагодження програми
- •3.5. Результати роботи програми
- •Контрольні запитання
- •2. Теоретичні відомості
- •Int**array;
- •Void quart(int n, float * х)
- •Void main()
- •Void quart (int n, float X [ ])
- •3. Приклад розв’язання задачі на еом (варіант №30)
- •3.1. Розробка алгоритму вирішення
- •3.2. Представлення матриці в пам'яті
- •3.3. Визначення змінних програми (варіант 1)
- •Int size;
- •3.4. Розробка тексту програми (варіант 1)
- •Void fill(int *, int);
- •Void fill(int *a, int s) {
- •3.5. Відмінності для варіанту реалізації 3
- •Void fill(int far **, int);
- •Void fill(int far **a, int s) {
- •3.6. Налагодження програми
- •3.7. Результати роботи програми
- •Контрольні запитання
- •Лабораторна робота №13
- •Порядок виконання роботи
- •1. Варіанти завдання Завдання 1
- •2. Теоретичні відомості
- •Void main( )
- •Void main( )
- •Void main( )
- •3.Стандартні функції для роботи зі стрічками (бібліотека string.H)
- •4. Приклади використання стандартних функцій для роботи зі стрічками
- •Функція аналогічна до stpcpy, strcpy, strncat
- •Функція аналогічна до strcspn, strrchr, strspn, strstr
- •Int far _fstrcmp(const char far *s1, const char far *s2);
- •Функція аналогічна до stpcpy, strncpy
- •- Size _t maxlen - максимальне число символів, які копіюємо з вихідної стрічки в результуючу.
- •Приклад: /*strncpy/cpp*/
- •5. Приклад розв’язання задачі на еом (варіант 2)
- •5.1. Розробка алгоритму вирішення
- •5.2 Розробка тексту програми
- •Int main()
- •4.3 Результати роботи програми
- •Контрольні запитання
- •Лабораторна робота №14
- •Порядок виконання роботи
- •1. Варіанти завдання
- •2. Теоретичні відомості
- •Void main( )
- •Приклади розробки функцій для обробки текстової інформації
- •Int len (char e[ ])
- •Int len (char *s)
- •Void invert(char e[ ])
- •Void main( )
- •Int index(char [ ], char [ ]);
- •Int row(char c1[ ], char c2[ ])
- •Void cone(char *c1, char *c2)
- •Void substr(char *c1, char *c2, int n, int k)
- •3. Приклад розв’язання задачі на еом (завдання 2, варіант 7)
- •Void ChangeStr(char **s1,int m)
- •4.3 Результати роботи програми
- •Контрольні запитання
- •Лабораторна робота №15
- •Порядок виконання роботи
- •Варіанти завдання
- •Теоретичні відомості
- •Int pole2 ;
- •Приклад розв’язання задачі на еом (варіант №30)
- •Розробка алгоритму розв’язання задачі
- •Визначення змінних програми
- •Розробка тексту програми Текст програми починаємо з підключення файлу stdio.H.
- •Int main(void) {
- •If (!strcmp(mm[n].Name,"***")) break;
- •Контрольні запитання
- •Лабораторна робота №16
- •Порядок виконання роботи
- •1. Варіанти завдання
- •Теоретичні відомості Читання і запис текстових файлів
- •Int main ()
- •Приклад розв’язання задачі на еом (варіант 6)
- •Контрольні запитання
- •Лабораторна робота №17
- •Порядок виконання роботи
- •Варіанти завдання
- •Теоретичні відомості Читання і запис двійкових файлів
- •Відкриття двійкових фалів
- •Файли з послідовним доступом
- •Запис даних у файл c послідовним доступом
- •Int main()
- •If ( ! outf)
- •Int array[100];
- •Int main()
- •If ( ! inpf)
- •Int array[100];
- •Файли з довільним доступом
- •Int main()
- •If ( ! inpf)
- •Int main()
- •If ( ! outf)
- •Передача файлів між комп’ютерами.
- •Програмне підтвердження зв’язку
- •Перекачування файлу
- •Void send_file(fname)
- •Void wait(port)
- •Int port;
- •Прийом файлу
- •Void rec_file()
- •If(ferror(fp)) {
- •Void get_file_name(f)
- •Приклад розв’язання задачі на еом (варіант 10)
- •Контрольні питання
- •Література
Int main ()
{
char name[80];
puts(str1);
gets(name);
return 0;
}
Будь-яка стрічка символів в мові Сі повинна закінчуватись нуль-символом ’\0’. В останній елемент масиву str1 нуль-символ буде записаний автоматично під час трансляції при ініціалізації масиву.
Форматний ввід-вивід. Для роботи з стандартними потоками в режимі форматного вводу-виводу визначені дві функції:
printf () – форматний вивід, перетворює дані з внутрішнього представлення в символьний вид в відповідності з форматною стрічкою і виводить їх в потік. Дані, які перетворюються і виводяться, задаються як аргументи функції printf ().
scanf () – форматний ввід з вхідного потоку, читає послідовності кодів символів з вхідного потоку і інтерпретує їх як цілі числа, дійсні числа, одиничні символи, стрічки.
Для роботи з файлами включені наступні функції:
fgetc (), getc () – ввід (читання) одного символу з файлу;
fputc (), putc () – запис одного символу в файл;
fprintf () – форматний вивід в файл;
fscanf () – форматний ввід (читання) з файлу;
fgets () – ввід (читання) стрічки з файлу;
fputs () – запис стрічки в файл.
Функція fputs (const char *s, FILE *stream) записує обмежену символом ’\0’ стрічку в файл, визначений вказівником stream на потік, і повертає невід’ємне число. Символ ’\0’ в файл не переноситься, і символ ’\n’ не записується в кінці стрічки замість ’\0’.
Функція fgets (char *s, int n, FILE *stream) – читає з визначеного вказівником stream файлу не більше (n-1) символів і записує їх в стрічку, на яку вказує вказівник s. Функція закінчує читання, як тільки прочитає (n-1) символів чи зустріне символ нової стрічки ’\n’, який переноситься в стрічку s. Додатково в кінець кожної стрічки записується признак кінця стрічки ’\0’. В випадку успішного завершення функція повертає вказівник s. При помилці чи при досягненні кінця файлу, при умові, що із файлу не прочитаний жоден символ, повертається значення NULL. В цьому випадку вміст масиву, який адресується вказівником s, залишається без змін. На відміну від fgets () функція gets () відкидає символ ’\n’.
Перед тим як працювати з потоком його необхідно ініціалізувати. При цьому потік потік зв’язується в виконуваній програмі з структурою визначеного типу FILE. Визначення структурного типу FILE знаходиться в заголовочному файлі stdio.h. В структурі FILE вміщуються компоненти, з допомогою яких ведеться робота з потоком: вказівник на буфер, вказівник поточної позиції в потоці.
При відкритті потоку в програму повертається вказівник на потік, що є вказівником на об’єкт структурного типу FILE. Цей вказівник ідентифікує потік в усіх наступних операціях.
Вказівник на потік, наприклад fp, повинен бути описаний в програмі наступним чином:
#include<stdio.h>
FILE *fp;
Вказівник на потік набуває значення в результаті виконання функції відкриття потоку:
fp = fopen (ім’я_файлу, режим_відкриття);
Параметри функції fopen () є вказівниками на масиви символів, які вміщують відповідно ім’я файлу, зв’язаного з потоком, і стрічку режимів відкриття. Однак ці параметри можуть задаватись і безпосередньо в вигляді стрічок при виклику функції відкриття файлу:
fp = fopen (”file.txt”,”r”);
де file.txt – ім’я деякого файлу, зв’язаного з потоком;
r – позначення одного з режимів роботи з файлом (тип доступу до потоку).
Після закінчення роботи з файлами рекомендується закрити їх явно. Для цього використовується функція
fclose - вказівник на потік
Відкритий файл можна відкрити повторно (наприклад, для зміни режиму роботи з ним) тільки після того, як файл буде закритий з допомогою функції fclose .