- •З дисципліни “Системне програмування”
- •Мета виконання лабораторно-практичних робіт
- •Порядок виконання лабораторно-практичних робіт
- •Оформлення звітів про виконання лабораторно-практичних робіт
- •Лабораторна робота № 1
- •1 Короткі теоретичні відомості
- •1.4 Основні типи даних. Основні типи даних наведено в таблиці.
- •1.5 Операції.
- •Int printf (фороматний рядок, [, argument, ...]);
- •2 Питання вхідного контролю
- •3 Постановка завдання
- •4 Варіанти індивідуальних завдань
- •5 Методичні вказівки
- •6 Приклад розв’язку завдання
- •7 Питання вихідного контролю
- •Лабораторна робота № 2
- •1 Короткі теоретичні відомості Умовний оператор if. Уморвний оператор – це оператор, який виконується в залежності від виконання деякої умови.
- •2 Варіанти індивідуальних завдань
- •3 Методичні вказівки
- •4 Контрольні запитання
- •Лабораторна робота № 3
- •Оператор циклу while. Цикл while – це ітераційний цикл із передумовою. Це оператор циклу, який працює до тих пір, поки деяка умова буде істинною.
- •2 Варіанти індивідуальних завдань
- •3 Методичні вказівки
- •4 Приклад виконання лабораторної роботи
- •5 Контрольні запитання
- •Лабораторна робота № 4
- •1 Короткі теоретичні відомості
- •1.2 Опис масивів. Ім’я масиву це звичайний ідентифікатор. Він має бути унікальним, за ним іде розмірність. Розмір масиву може бути як літеральна константа, так і символьна.
- •Int array[a];
- •Int array[12];
- •Int array[a];
- •1.5 Одновимірні масиви. Одномірні масиви. Одномірний масив має один індекс.. Індекс – це номер в квадратних дужках після імені масиву.
- •2 Питання вхідного контролю
- •3 Варіанти індивідуальних завдань
- •4 Методичні вказівки
- •5 Приклад розв’язку завдання
- •5 Питання вихідного контролю
- •Лабораторна робота № 5
- •1 Короткі теоретичні відомості
- •2 Постановка завдання.
- •3 Варіанти індивідуальних завдань
- •4 Методичні вказівки
- •5 Приклад виконання лабораторної роботи
- •6 Контрольні запитання
- •Лабораторна робота № 6
- •1 Короткі теоретичні відомості
- •2 Питання вхідного контролю
- •3 Варіанти індивідуальних завдань
- •4 Методичні вказівки
- •5 Приклад розв’язку завдання
- •6 Питання вихідного контролю
- •Лабораторна робота № 7
- •1 Короткі теоретичні відомості
- •Int putchar(int c);
- •2 Варіанти індивідуальних завдань
- •3 Методичні вказівки
- •4 Контрольні запитання
- •Лабораторна робота № 8
- •1 Короткі теоретичні відомості
- •2 Постановка задачі
- •3 Варіанти індивідуальних завдань
- •4 Приклад виконання лабораторної роботи
- •5 Контрольні запитання
- •Лабораторна робота № 9
- •1 Короткі теоретичні відомості
- •2 Питання вхідного контролю
- •3 Постановка завдання
- •4 Варіанти індивідуальних завдань
- •5 Методичні вказівки
- •6 Приклад розв’язку завдання
- •7 Питання вихідного контролю
- •Лабораторна робота № 10
- •1 Короткі теоретичні відомості
- •2 Питання вхідного контролю
- •3 Варіанти індивідуальних завдань
- •4 Методичні вказівки
- •5 Приклад розв’язку завдання
- •6 Питання вихідного контролю
- •Лабораторна робота № 11
- •1 Короткі теоретичні відомості
- •2 Питання вхідного контролю
- •3 Постановка завдання
- •4 Варіанти індивідуальних завдань
- •5 Методичні вказівки
- •6 Приклад розв’язку завдання
- •7 Питання вихідного контролю
- •Практична робота № 1
- •1 Короткі теоретичні відомості
- •1.1 Умовний оператор if. Уморвний оператор – це оператор, який виконується в залежності від виконання деякої умови.
- •Оператор виконує наступні дії:
- •Приклад: Написати програму, яка виводить на екран числа від 1 до 7.
- •Оператор while виконує наступні дії:
- •Приклад: Вивести на екран додатні числа менші від 10.
- •Оператор виконує наступні дії:
- •2 Питання вхідного контролю
- •3 Постановка завдання на використання оператора switch
- •4 Варіанти індивідуальних завдань на використання оператора switch
- •5 Варіанти індивідуальних завдань на оператори циклів
- •6 Методичні вказівки
- •7 Приклад розв’язку завдання
- •8 Питання вихідного контролю
- •Практична робота № 2
- •1 Короткі теоретичні відомості
- •Void func( ) /*нічого не повертає*/
- •2 Варіанти індивідуальних завдань:
- •3 Методичні вказівки
- •4 Приклад виконання практичної роботи
- •5 Контрольні запитання
- •Практична робота № 3
- •1 Короткі теоретичні відомості
- •Int putchar(int c);
- •2 Питання вхідного контролю
- •3 Варіанти індивідуальних завдань
- •4 Методичні вказівки
- •5 Приклад розв’язку завдання
- •6 Питання вихідного контролю
- •Практична робота № 4
- •1 Короткі теоретичні відомості
- •2 Питання вхідного контролю
- •3 Постановка завдання
- •4 Варіанти індивідуальних завдань
- •5 Методичні вказівки
- •6 Приклад розв’язку завдання
- •7 Питання вихідного контролю
- •Список рекомендованої літератури
5 Приклад розв’язку завдання
Знайти довжину трьох заданих символьних рядків за допомогою функції strlen(). Результати вивести на екран. Приєднати другий рядок в кінець першого, а третій - в кінець другого, результатуючі рядки вивести на екран.
Текст програми
# include <string.h>
# include <stdio.h>
#include<conio.h>
char a1[]=”qwerett”;
char a2[20]=”qyuwerp[ett”;
char a3[255]=”qwerett”;
int l1,l2,l3;
void main()
{
clrscr();
/* Знаходження довжин рядків */
l1=strlen(a1);
l2=strlen(a2);
l3=strlen(a3);
/* Вивід довжин рядків */
printf(“l1=%d\t l2=%d\t l3=%d\n”);
strcat(a1,a2);
strcat(a2,a3);
puts(a1);
puts(a2);
}
6 Питання вихідного контролю
1 За допомогою якої функції вводяться рядки з клавіатури?
2 Який синтаксис функції puts()?
3 За допомогою якої функції виводяться рядки на екран?
4 За допомогою якої функції вводяться символи з клавіатури?
5 За допомогою якої функції виводяться символи на екран?
6 Що повертає функція gets()?
7 Що таке довжина рядка і як її можна визначити?
8 Що необхідно зробити перед копіюванням рядка?
Практична робота № 4
Тема: Блочний файловий ввід-вивід структурованих даних
Мета: Навчитися записувати дані у двійкові файли та читати їх за допомогою функцій блочного вводу-виводу.
1 Короткі теоретичні відомості
1.1 Блочний вивід. Блочний ввід-вивід використовується для збереження даних, які буде зчитувати програма на С. Цей спосіб використовується тільки для двійкових файлів. В процесі блочного вводу-виводу дані копіюються повністю з пам’яті на диск і навпаки з диску в пам’ять. Наприклад, при одному виклику функції блочного вводу-виводу можна записати на диск цілий масив і навпаки, одним викликом функції зчитати цей масив з диску в пам’ять. Блочний ввід-вивід виконується функціями fread() i fwrite().
1.2 Функція fwrite(). Ця функція записує блок даних з пам’яті в двійковий файл. Прототип функції знаходиться в файлі stdio.h і має вигляд:
int fwrite(void *buf, int size, int count, FILE *fp) ;
Аргумент buf – це вказівник на ділянку пам’яті, в якій є дані для запису. Тип void означає, що аргумент може бути вказівником на любий тип даних.
Аргумент size - вказує розмір в байтах окремих елементів даних в блоці.
Аргумент count - вказує загальну кількість елементів даних. Наприклад, якщо треба записати масив з 100 цілочисельних елементів, то size=sizeof(int), а count=100, бо цілочисельна змінна має sizeof(int) байти, кількість елементів 100.
Аргумент fp - є вказівником на структуру FILE, який повертає з функція fopen() при відкритті файлу. Функція fwrite() повертає кількість елементів даних, записаних в файл. Якщо ця кількість менша аргументу count, то запис був помилковим. Обов’язкова перевірка на правильність запичу даних у файл.
if ( (fwrite(buf, size, count, fp) != count)
printf("Помилка");
Приклад: Записати одну змінну x типу double
fwrite(&x, sizeof(double), 1, fp);
Приклад: Записати масив data[50] типу float
float data[50];
fwrite(data, sizeof(float), 50, fp);/*Записує масив 50 елементів */
або
fwrite(data, sizeof(data), 1, fp); /* Записує масив як 1 елемент */
1.3 Блочний вивід. Функція fread(). Функція fread() зчитує блок даних з двійкового файлу в память.
Прототип функції знаходиться в файлі stdio.h і має вигляд:
int fread(void *buf, int size, int count, FILE *fp) ;
Аргумент buf - це вказівник на ділянку пам’яті, в яку поміщаються дані з файлу. Опис void означає, що аргумент може бути вказівником на дані будь-якого типу.
Аргумент size - вказує розмір в байтах окремих елементів даних в блоці.
Аргумент count - вказує загальну кількість елементів даних. Наприклад, якщо треба зчитати масив з 100 цілочисельних елементів, то size=2, а count=100, бо цілочисельна змінна має 2 байти, квлькість елементів рівна 100. Для обчислення аргументу size можна використати операцію sizeof().
Аргумент fp - є вказівником на структуру FILE , який повертається з функції fopen() при відкритті файлу. Функція повертає кількість елементів даних, зчитаних з файлу. Якщо ця кількість менша аргумента count , то зчитування було помилковим. Перевірка правильності виводу:
if ( (fread(buf, size, count, fp) != count) printf("Помилка");
