
- •Лабораторна робота №1
- •Завдання
- •Хід роботи
- •Контрольні запитання
- •Лабораторна робота № 2
- •Завдання
- •Приклад програми
- •Контрольні запитання
- •Лабораторна робота № 3
- •Теоретичні відомості „Функції обробки рядків”
- •Завдання
- •Контрольні запитання
- •Лабораторна робота №4
- •Завдання
- •Приклад програми
- •Контрольні запитання
- •Лабораторна робота №5
- •Хід роботи
- •Варіанти
- •Контрольні запитання
- •Лабораторна робота №6
- •Завдання
- •Приклад програми
- •Контрольні запитання
- •Завдання
- •Контрольні запитання
- •Завдання
- •Контрольні запитання
- •Лабораторна робота №9
- •Завдання
- •Приклад програми
- •Приклад програми
- •Контрольні запитання
- •Лабораторна робота№13
- •Теоретичні відомості
- •Завдання
- •Завдання
- •Контрольні запитання
- •Лабораторна робота №15
- •Завдання
- •Хід роботи
- •Варіанти
- •Завдання
- •Хід роботи
- •Варіанти
- •Контрольні запитання
- •Лабораторна робота №18
- •Теоретичні відомості
- •Хід роботи
- •Лабораторна робота №19
- •Завдання
- •Хід роботи
- •Варіанти.
- •Приклад
- •Контрольні запитання
- •Лабораторна робота №21
Завдання
Набрати та відладити програму .
Проаналізувати програму.
Написати коментарі до програм.
Приклад:
#include <stdio.h>
#include <string.h>
void check(char *a, char *b,
int (*cmp)(const char *, const char *));
int main(void)
{
char s1[80], s2[80];
int (*p)(const char *, const char *);
/* указатель на функцию */
p = strcmp;
/* привласнює адресу функції strcmp вказівнику p */
printf("Введиті два рядка.\n");
gets(s1);
gets(s2);
check(s1, s2, p); /* Передає адресу функції strcmp() через вказівник p */
return 0;
}
void check(char *a, char *b,
int (*cmp)(const char *, const char *))
{
printf("Перевірка на співпадання .\n");
if(!(*cmp)(a, b)) printf("Равны");
else printf("Не рівні");
}
Написати програму за варіантом:
4.1 Додати два рядка.
4.2 Порівняти два рядка.
4.3 Визначити довжину рядка.
4.4 Виділити підрядок.
Контрольні запитання
1. Чому заборонені арифметичні операції над покажчиками на функції?
2. Чому в описі покажчика на функцію необхідні круглі дужки при імені покажчика?
3. Чи може функція повертати значення типа покажчик? Якщо так, то як оголошується прототип такої функції?
4. Чи можуть параметрами функції бути покажчики на об'єкти? Якщо так, то як відбувається передача фактичних параметрів при виклику функції?
5. Чи можуть параметрами функції бути покажчики на функції? Якщо так, то як відбувається передача фактичних параметрів при виклику функції?
Лабораторна робота №15
Тема : Розробка програм з використанням масиву структур.
Мета : Набуття практичних навичок з використання структур в системи програмування С.
Завдання
В середовищі С створити програми, які створюють та обробляють структури.
Хід роботи
Завантажити систему програмування.
Розробити програму з використанням структури. Для цього потрібно:
Визначити шаблон структури для об’єкту згідно варіанту.
Визначити область пам’яті ( як масив) для розташування значень полів структури.
Внести дані в поля структури.
Для кожній структури вивести на екран монітору вхідні дані.
Для кожного варіанту зробити один запит. Результати запиту вивести на екран монітору.
Якщо є помилки, відредагуйте програму.
Покажіть одержані результати викладачу.
Складіть звіт.
Варіанти
Магазин. За назвою товару визначити його ціну. Знайти загальну вартість товару.
Лікарня . За кодом медичної картки знайти прізвище пацієнта. Визначити його адресу. Підрахувати загальну кількість пацієнтів.
Аптека. За назвою ліків визначити його ціну. Знайти загальну вартість ліків, у яких строк збереження був до 2006р.
Залізничні каси. За номером квітку визначити приз віще пасажира, № потягу та № вагону. Вивести на екран монітору всіх пасажирів потягу №х.
Прокат автомобілів. Знайти за номером машини її тип, рік випуску, марку. Підрахувати скільки літрів пального було втрачено за весь час її експлуатації (вважаємо, що нам відомо показник спідометру).
Ломбард. За номером квитанції визначити власника закладної, його адресу, суму залогу, дату повернення залогу. Розрахувати суму прострочи залогу, враховуючи, що один тиждень коштуватиме 1% від залогу.
Успішність студентів. За прізвищем студента визначити його адресу, № телефону, середній бал. Вивести список студентів за рейтингом.
Готель. За прізвищем гостя вивести № кімнати, де він поселився. Вивести вартість заселення кімнати за добу та вартість проживання за весь час.
Видавництво. За прізвищем автора вивести назву книги, її вартість та тираж. Підрахувати заробіток автора, як що відомо, що він отримав 65% від загальної вартості.
Технічне обслуговування автомобілів. За номером автомобіля вивести його марку, № двигуна, вид та вартість ремонту та технічного обслуговування. Знайти загальну вартість обслуговування машини.
Приклад:
Typedef struct{ char name(30);
float sr_bal;}student;
main()
{
student st[5]; int I;
for (i=0;i<=5;i++){
scanf(“%s”,st[i].name);
scanf(“%f”,st[i].sr_bal);
}
}
Контрольні запитання
Як визначається область пам’яті під структуру?
Що описує структура?
Як звертатися до поля структури?
Лабораторна робота №16
Тема : Розробка програм з використанням структур як полів структур.
Мета : Набуття практичних навичок з використання структур в системи програмування С.
Теоретичні відомості
Оголошення структури:
struct Employee { // основна структура
char name[64];
int age;
char ssan[ll];
struct Date { //вкладена структура
int day;
int month;
int year;
} hire_date; // Виділення пам’яті для вкладеній структури
int pay_grade;
float salary;
unsigned employee_number;
} new_employee; // Виділення пам’яті для основній структури
Звернення до члена вкладеної структури.
Спочатку вказується член основної структури, потім – вкладеній.
new_employee.hire_date.month = 12;