- •Лабораторна робота №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)
- •Контрольні питання
- •Література
If (!strcmp(mm[n].Name,"***")) break;
scanf("%s",&mm[n].sc);
scanf("%d",&mm[n].cnt);
/* Увага! Ми обходимо помилку в системі програмування */
scanf("%f",&sqx); mm[n].sq=sqx;
}
/* Вивід таблиці */
printf("---------------------------------------------\n");
printf("|Буддистські монастирі Японії перiоду Нара |\n");
printf("|--------------------------------------------|\n");
printf("| Назва | Школа |Кількість| Площа |\n");
printf("| | | монахів | земель(га) |\n");
printf("|-----------|-------|----------|-------------|\n");
/* вивід стрічок фактичних даних */
for (i=0; i<n; i++)
printf("| %9s | %c | %3d | %-5.1f |\n",
mm[i].name,mm[i].sc,mm[i].cnt,mm[i].sq);
printf("---------------------------------------------\n");
/* сортування масиву */
for (i=0; i<n-1; i++) {
m=i; /* мінімальний єлемент - перший */
for (j=i+1; j<n; j++)
/* якщо поточний елемент > мінімального,
він стає мінімальним */
if (strcmp(mm[m].name,mm[j].name)>0) m=j;
if (m>i) {
/* перестановка першого і мінімального елементів */
strcpy(x.name,mm[i].name); x.sc=mm[i].sc;
x.cnt=mm[i].cnt; x.sq=mm[i].sq;
strcpy(mm[i].name,mm[m].name); mm[i].sc=mm[m].sc;
mm[i].cnt=mm[m].cnt; mm[i].sq=mm[m].sq;
strcpy(mm[m].name,x.name); mm[m].sc=x.sc;
mm[m].cnt=x.cnt; mm[m].sq=x.sq;
}
}
/* Вивід таблиці */
printf("---------------------------------------------\n");
printf("|Буддистські монастирі Японії перiоду Нара |\n");
printf("|--------------------------------------------|\n");
printf("| Назва | Школа |Кількість| Площа |\n");
printf("| | | монахів | земель(га) |\n");
printf("|-----------|-------|----------|-------------|\n");
for (i=0; i<n; i++)
printf("| %9s | %c | %3d | %-5.1f |\n",
mm[i].name,mm[i].sc,mm[i].cnt,mm[i].sq);
printf("---------------------------------------------\n");
return 0;
}
-
Налагодження програми
При налагоджені програми можна використовувати покроковий режим з дослідженням значень змінних - тих, що вводяться. Якщо виникають проблеми з вводом змінних, то потрібно вводити кожну змінну окремим оператором.
Самим складним може бути налагодження тієї частини програми, яка виконує сортування масиву. Перегляд всього масиву структур засобами налагодження системи програмування хоча і можливий, але може бути і достатньо громіздкий. Тому краще при помилках в цій частині програми вставити проміжні виводи - наприклад, виводити всю таблицю після кожного циклу сортування. В покроковому режимі можна спостерігати значення знайденого мінімуму в кожному циклі.
3.5 Результати роботи програми
При роботі програми на екран було виведено наступне:
1. Введіть: назву, школу, кількість, площа > Тодайдзі Т
220 368.8
2. Введіть: назву, школу, кількість, площа > Якусідзі С
50 54.7
3. Введіть: назву, школу, кількість, площа > Дайаєдзі Д
10 12.2
Буддистські монастирі Японії періоду Нара |
|||
Назва |
Школа |
Кількість монахів |
Площа земель (га) |
Тодайдзі Якусідзі Дайєдзі
|
Т С Д |
220 50 10 |
36.8 54.7 12.2 |