- •Лабораторна робота №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)
- •Контрольні питання
- •Література
Функція аналогічна до stpcpy, strncpy
Приклад:
/*strcpy.cpp*/
#include<stdio.h>
#include<string.h>
main()
{
char src[80] = “abcdefghij”;
char dst[80] = “1234567890”;
printf(“До: джерело==%s приймач==%s\n”, src, dst);
puts(“Викликаємо strcpy(приймач, джерело)”);
strcpy(dst, src);
printf(“Після: джерело==%s приймач==%s\n”, src, dst);
return 0;
}
4.7 Функція _strdate - запам'ятовує поточну дату у вигляді стрічки у форматі mm/dd/yy (mm – місяць, dd – день, yy – рік. Повертає datestr, (time.h)
Синтаксис: char *_strdate(cha *datestr);
Параметри:
- char *datestr - вказівник на результуючу стрічку довжиною принаймні 9 байтів.
Функція аналогічна до asctime, ctime, _strtime, time
Приклад:
/*_strdate.cpp*/
#include<stdio.h>
#include<time.h>
main()
{
char sdate[9];
_strdate(sdate);
printf(“: %s\n”, sdate);
return 0;}
4.8 Функція _strerror - створює зі стрічки s стрічку повідомлення про помилку, додаючи двокрапку, пробіл і опис поточної системної помилки (string.h чи stdio.h).
Синтаксис: char *_strerror(const char *s);
Параметри:
- const char *s - повідомлення користувача про помилку довжиною не більше 94 символів, до якого додається повідомлення про системну помилку. Якщо цей вказівник дорівнює нулю, _strerror() повертає вказівник на стрічку повідомлення про помилку із самим останнім кодом помилки.
Функція аналогічна до perror, strerror
Приклад:
/*_strerror.cpp*/
#include<stdio.h>
#include<string.h>
main()
{
char *p = _strerror(“Перевірочне повідомлення про помилку”);
printf(“Повідомлення про помилку == %s\n”, p);
p = _strerror(NULL);
printf(“Сама остання помилка == %s\n”, p);
return 0;
}
4.9 Функція strftime - форматує дату і час у вигляді текстової стрічки, використовуючи систему правил перетворення, аналогічну системі printf(). Форматна стрічка fmt містить одне чи декілька правил, що заміняються компонентами дати і часу. Крім того, форматна стрічка може також містити й інші символи, що не відносяться до правил перетворення. Повертає число символів, записаних у результуючу стрічку(time.h). Правило перетворення складається зі знака відсотка (%) і символу.
Таблиця 13.2 - Правила перетворення для strftime() |
|
Правила перетворення |
Компоненти дати і часу |
% |
Вставити знак відсотка (%) |
A |
День тижня (абревіатура: Sun, Mon і т.д.) |
A |
Повна назва дня тижня |
B |
Місяць (абревіатура: Jan, Feb і т.д.) |
B |
Повна назва місяця |
с |
Дата і час у форматі asctime() |
d |
День місяця (від 01 до 31) |
H |
Час в 24-годинному форматі (від 00 до 23) |
I |
Час в 12-годинному форматі (від 00 до 12) |
j |
День року (від 001 до 366) |
m |
Номер місяця (від 1 до 12) |
M |
Хвилина (від 00 до 59) |
Таблиця 13.2 - Правила перетворення (продовження) |
|
p |
Букви АМ чи РМ (що позначають час до чи після півдня відповідно) |
S |
Секунда (від 00 до 59) |
U |
Номер тижня (від 00 до 53) (тиждень починається із неділі) |
w |
День тижня (від 0 до 6) (неділя == 0) |
W |
Номер тижня (від 00 до 53) (тиждень починається з понеділка) |
x |
Дата |
X |
Час |
y |
Рік мінус сторіччя (наприклад, 68 для 1968) |
Y |
Повний рік (наприклад, 1968) |
Z |
Найменування часової зони (EST чи EDT) |
Синтаксис : size_t strftime(char *s, size_t maxsize, const char *fmt, const struct tm *t);
Параметри:
- char *s - вказівник на результуючу стрічку, в якій запам'ятовується результат функції.
- size_t maxsize - максимальне число символів, записуваних у результуючу стрічку. Звичайно встановлюється рівним розміру стрічки мінус одиниця.
- const char *fmt -вказівник на форматну стрічку, що містить звичайний текст і правила перетворення .
- const struct tm *t - вказівник на структуру типу tm, що містить дату і час, форматуємі у стрічку.
Функція аналогічна до asctime, ctime, localtime, mktime, time
Приклад:
/*strftime.cpp*/
#include<stdio.h>
#include<time.h>
#define SIZE 80
main()
{
time_t t;
struct tm *tp;
char s[SIZE];
time(&t);
tp = localtime(&t);
puts(“”);
strftime(s, SIZE, “Дата: %x\n”, tp);
puts(s);
strftime(s, SIZE, “Час: %x\n”, tp);
puts(s);
strftime(s, SIZE, “Сьогодні %A\n”, tp);
puts(s);
return 0;
}
4.10 Функція strncpy,_fstrncpy - копіює максимум maxlen символів із вихідної стрічки src у результуючу стрічку dest, перезаписуючи символи результуючої стрічки. Якщо maxlen дорівнює розміру в байтах результуючій стрічці (і вихідна стрічка має не меншу довжину), то результуюча стрічка не завершується нульовим символом. Якщо maxlen і довжина вихідної стрічки перевищують розмір результуючої стрічки, кінець результуючої стрічки перезаписується, що, можливо, зруйнує інші дані чи код у цьому місці пам'яті. Щоб уникнути подібних помилок, ніколи не встановлюйте maxlen більше максимального числа символів, що може, містити результуюча стрічка(string.h)
Синтаксис: char *strncpy (char *dest, const char *src, size _t maxlen);
char far *far _fstrncpy (char far *dest, const char far *src, sizе _t maxlen);
Параметри:
- char *dest - покажчик на результуючу стрічку, що містить мінімум maxlen байтів
- const char *src - покажчик на вихідну стрічку, яку копіюємо в результую-чу.