- •Лабораторна робота №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)
- •Контрольні питання
- •Література
- Size _t maxlen - максимальне число символів, які копіюємо з вихідної стрічки в результуючу.
Функція аналогічна до strcat, strcpy
Приклад: /*strncpy/cpp*/
#include<stdio.h>
#include<string.h>
main ( )
{
char src[80] = “abcdefghij”;
char dst[80] = “1234567890”;
printf (“До: src = =%s dst = =%s \n”, src, dst);
puts (“Викликаємо strncpy (dst, src, 5)”);
strncpy (dst, src, 5);
printf (“Після: src = = %s dst = = %s \n”, src, dst);
return 0;
}
4.11 Функція strstr, _fstrstr - шукає стрічку (s2) в іншій стрічці (s1). Повертає адресу першого символу входження стрічки або, якщо підстрічка s2 не знайдена в стрічку s1, - повертає нуль (string.h)
Синтаксис: char *strstr (const char *s1, const char *s2);
char far *far _ fstrstr (const char far *s1, const char far *s2);
Параметри:
- const char *s1 - покажчик на стрічку, у якій відбувається пошук підстрічки, адресуємо s2.
- const char *s2 - покажчик на підстрічку, що шукається в стрічці, адресуємої s1.
Функція аналогічна до strchr, strcmp, strspn
Приклад:
/*strstr.cpp*/
#include<stdio.h>
#include<string.h>
main ()
{
char *s1= “filename.cpp”;
char *s2=”.cpp”;
printf (“s1= = %s \n”, s1 );
printf (“s2= = %s \n”, s2);
puts (“Викликаємо char *s3= strstr (s1, s2)”);
char *s3= strstr (s1, s2);
printf (“s3= = %s \n”, s3);
return 0;
}
4.12 Функція strtod - Перетворить символьне представлення числа з плаваючою крапкою, що міститься в стрічці, у його двійкове представлення типу double чи long double. У випадку успіху повертає отриманий при перетворенні результат, а у випадку помилки повертає HUGE_VAL (strtod ()) чи LHUGE _VAL помилки повертає HUGE_VAL (strtod ()) чи LHUGE _VA (stdlib.h)
Синтаксис : double strtod (const char *s, char **endptr);
long double strtold (const char *s, char ** endptr);
Параметри :
- const char *s - покажчик на стрічку, що містить символьне представлення числа з плаваючою крапкою, або в десятковій нотації (наприклад, “123.45”), або в науковій нотації (наприклад, “4.5е-3”).
- char **endptr - якщо цей параметр не дорівнює нулю, то він повинен бути рівним адресі символу, розташованого безпосередньо після останнього символу в рядку s, що бере участь у перетворенні. Цей не обов'язковий покажчик використовується при розборі стрічок, що містять кілька значень з плаваючою комою, можливо, розділених символами пробілу, комами.
Функція аналогічна до atof, printf, sprintf, strtol
Приклад:
/*strtod.cpp*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main (int argc, char *argv [ ])
{
if (argc <= 1)
{
puts (“Введіть значення типу double”);
puts (“наприклад, STRTOD 3.14159”);
exit (1);
}
char *endptr;
double d = strtod (argv[1], &endptr);
printf (“Значення у двійковому представленні = = %lf \n”, d);
if (strlen (endptr)>0)
printf (“Перегляд зупинений на: %s \n”, endptr);
return 0;
}
4.13 Функція strtol - перетворить символьне представлення значення типу long у його двійкове представлення. Значення в стрічці може бути представлене в десятирічному, восьмирічному чи шістнадцятирічному вигляді, що використовує стандартні правила форматування мови С ( що діють для printf( ), scanf( ) і інших аналогічних функцій). Розпізнаються також інші основи системи числення, від 2 до 36. У випадку успіху функція повертає перетворений результат і встановлює не нульовий покажчик endptr рівним адресі, що слідує за останнім символом, що входить у символьне представлення числа. У випадку помилки функція повертає нуль і встановлює ненульовий покажчик endptr рівним s.
Синтаксис: long strtol (const char *s, char **endptr, int radix);
Параметри:
- const char *s - покажчик на стрічку, що містить, ціле значення типу long у текстовому вигляді. Ця стрічка може також містити й інші символи.
- char ** endptr - якщо цей параметр не дорівнює нулю, то він повинен бути рівним адресі символу, розташованого безпосередньо після останнього символу в стрічці s, що бере участь у перетворенні. Цей необов'язковий покажчик використовується при розбиранні рядків, що містять кілька значень типу long, можливо, поділених символами пробілу, комами і т.п.
- int radix - задає основу системи числення, яка використовується при перетворенні, і може приймати значення від 2 до 36. Наприклад, 2 – для двійкових значень, 10 – для десятеричних значень, 16 – для шістнадцятирічних значень і т.д. Літери від A до Z розпізнаються як числові символи для основ, що перевищують 10. (При основі 16 для представлення числа використовуються цифри від 0 до 9 і букви від А до F, при основі 17 – цифри від 0 до 9 і букви від А до G і т.п.) Якщо параметр radix встановлений рівним нулю, функція буде автоматично розпізнавати і перетворити числа, використовуючи стандартні правила форматування мови С, тобто десяткові числа повинні починатися з цифри, восьмеричні – із літери О, а шістнадцятирічні – із префікса Ох чи ОХ.
Функція аналогічна до atoi, atof, atol, printf, sprintf, strtoul
Приклад:
/*strtol.cpp*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define RADIX O // Автоматичне розпізнавання основи
main (int argc, char *argv [ ])
{
if (argc <=1 ) {
puts (“Введіть довге ціле”);
puts (“Наприклад, STRTOD Ox96C”);
exit (1);
}
char *endptr;
long l = strtol (argv [1], &endptr, RADIX);
printf (“Двійкове представлення значення = = % ld \n”, l);
if (strlen (endptr)>0)
printf (“Сканування зупинене на: %s \n”, endptr);
return 0;
}