- •Міністерство транспорту та зв'язку україни
- •Мета виконання лабораторно-практичних робіт
- •Порядок виконання лабораторно-практичних робіт
- •Оформлення звітів про виконання лабораторно-практичних робіт
- •Лабораторна робота № 1-2
- •1 Короткі теоретичні відомості
- •2 Постановка завдання
- •3 Варіанти індивідуальних завдань
- •4 Методичні вказівки
- •5 Приклад виконання лабораторної роботи
- •6 Порядок виконання лабораторної роботи
- •7 Контрольні запитання
- •Лабораторна робота № 3 Тема: "Програмування розгалужених обчислювальних процесів з використанням умовних операторів"
- •1 Короткі теоретичні відомості Умовний оператор if. Уморвний оператор – це оператор, який виконується в залежності від виконання деякої умови.
- •Синтаксис оператора
- •2 Постановка завдання
- •3 Варіанти індивідуальних завдань
- •4 Методичні вказівки
- •5 Контрольні запитання
- •Лабораторна робота № 4
- •2 Варіанти індивідуальних завдань
- •3 Методичні вказівки
- •Оператор циклу while. Цикл while – це ітераційний цикл із передумовою. Це оператор циклу, який працює до тих пір, поки деяка умова буде істинною.
- •2 Постановка завдання
- •3 Варіанти індивідуальних завдань
- •4 Методичні вказівки
- •5 Приклад виконання лабораторної роботи
- •6 Контрольні запитання
- •Лабораторна робота № 6-7
- •1 Короткі теоретичні відомості
- •Int array[a];
- •Int array[12];
- •Int array[a];
- •2 Варіанти індивідуальних завдань
- •3 Методичні вказівки
- •4 Приклад виконання лабораторної роботи
- •5 Контрольні запитання
- •Лабораторна робота № 8
- •2 Постановка завдання
- •3 Приклад виконання лабораторної роботиІндивідуальне завдання
- •4 Контрольні запитання
- •Лабораторна робота № 9
- •1 Короткі теоретичні відомості
- •2 Індивідуальні завдання
- •3 Методичні вказівки
- •4 Контрольні запитання
- •Лабораторна робота № 10
- •1 Короткі теоретичні відомості
- •2 Індивідуальні завдання
- •3 Методичні вказівки
- •4 Приклад виконання лабораторної роботи
- •5 Контрольні запитання
- •Лабораторна робота № 11-12
- •1 Короткі теоретичні відомості
- •2 Варіанти індивідуальних завдань:
- •3 Методичні вказівки
- •4 Приклад виконання лабораторної роботи
- •5 Контрольні запитання
- •Лабораторна робота № 13-14
- •1 Короткі теоретичні відомості
- •2 Постановка завдання.
- •3 Варіанти індивідуальних завдань
- •4 Методичні вказівки
- •5 Приклад виконання лабораторної роботи
- •6 Контрольні запитання
- •Лабораторна робота № 15
- •1 Короткі теоретичні відомості
- •Int putchar(int c);
- •2 Варіанти індивідуальних завдань
- •3 Методичні вказівки
- •4 Контрольні запитання
- •Лабораторна робота № 16
- •1 Короткі теоретичні відомості
- •Int strcmp(const chart *str1, const chart *str2);
- •2. Варіанти індивідуальних завдань
- •3 Методичні вказівки
- •4 Приклад виконання лабораторної роботи
- •5 Контрольні запитання
- •Лабораторна робота № 17-18
- •1 Короткі теоретичні відомості
- •2 Постановка задачі
- •3 Варіанти індивідуальних завдань
- •4 Приклад виконання лабораторної роботи
- •5 Контрольні запитання
- •Лабораторна робота № 19
- •1 Короткі теоретичні відомості
- •2 Завдання практичної роботи
- •3 Варіанти індивідуальних завдань
- •4 Методичні вказівки
- •5 Приклад виконання лабораторної роботи
- •6 Контрольні запитання
- •Лабораторна робота № 20
- •1 Короткі теоретичні відомості
- •2. Варіанти індивідуальних завдань
- •3 Методичні вказівки
- •4 Контрольні запитання
- •Лабораторна робота № 21
- •1 Короткі теоретичні відомості
- •2 Варіанти індивідуальних завдань
- •3 Методичні вказівки
- •4 Приклад виконання лабораторної роботи
- •2 Варіанти індивідуальних завдань
- •3 Методичні вказівки
- •4 Приклад виконання лабораторної роботи
- •5 Контрольні запитання
- •Лабораторна робота № 24
- •1 Короткі теоретичні відомості
- •2 Варіанти індивідуальних завдань
- •3 Методичні вказівки
- •4 Приклад виконання лабораторної роботи
- •5 Контрольні запитання
- •Лабораторна робота № 24
- •1. Короткі теоретичні відомості
- •2 Варіанти індивідуальних завдань
- •3 Методичні вказівки
- •4 Контрольні запитання
- •Практична робота № 1-2
- •1 Короткі теоретичні відомості
- •Оператор виконує наступні дії:
- •3 Методичні вказівки
- •4 Контрольні запитання
- •Практична робота № 3
- •1 Короткі теоретичні відомості
- •Int array[a];
- •Int array[12];
- •Int array[a];
- •2 Постановка завдання
- •3 Методичні вказівки
- •4 Приклад виконання практичної роботи Завдання
- •Програма розв'язку
- •5 Контрольні запитання
- •Практична робота № 4
- •1 Короткі теоретичні відомості
- •2 Постановка завдання
- •3 Варіанти індивідуальни х завдань
- •4 Методичні вказівки
- •5 Приклад виконання практичної роботи
- •6 Контрольні запитання
- •Практична робота № 5
- •1 Короткі теоретичні відомості
- •Void func( ) /*нічого не повертає*/
- •2 Варіанти індивідуальних завдань
- •3 Методичні вказівки
- •4 Приклад виконання лабораторної роботи
- •5 Контрольні запитання
- •Практична робота № 6
- •1 Короткі теоретичні відомості
- •2 Постановка завдання
- •3 Варіанти індивідуальних завдань
- •4 Методичні вказівки
- •2 Завдання практичної роботи:
- •3 Варіанти індивідуальних завдань
- •4 Методичні вказівки
- •5 Приклад виконання лабораторної роботи
- •Програма розв'язку
- •4 Контрольні запитання
- •Список рекомендованої літератури
3 Методичні вказівки
Уважно прочитати умову задачі з індивідуального завдання. Визначити, що має бути отримано в результаті її розв'язку, які дані для цього потрібно ввести.
Використати знання про вказівники, операції над ними.
Для вводу й виводу даних використати бібліотеку функцій <stdіo.h>.
Ввести текст програми. Звернути увагу на типи даних, що будуть використані в програмі.
Запустити програму на компіляцію. У випадку необхідності виправити синтаксичні помилки.
Запустити програму на виконання. У випадку необхідності виправити семантичні помилки.
Реалізувати програму для різних вхідних даних.
4 Приклад виконання лабораторної роботи
Описати 3 масиви типу char, short і float розмірністю 6. Вивести на екран адреси всіх елементів 3-х масивів з використанням адресної арифметики.
Текст програми,:
#include <stdio.h>
#define MAX 10
/* Опис ³ задання масиву типу short */
short s_array[MAX] = { 0,1,2,3,4,5,6,7,8,9 };
/* Опис ³ задання масиву типу char */
char c_array[MAX] = { 0,1,2,3,4,5,6,7,8,9 };
/* Опис ³ задання масиву типу float. */
float f_array[MAX] = { .0, .1, .2, .3, .4, .5, .6, .7, .8, .9 };
/* Опис вказ³вника на float. */
float *f_ptr;
/* Опис вказ³вника на int ³ зм³нно¿ типу int */
char *c_ptr, i;
/* Опис вказ³вника на short */
short *s_ptr;
void main()
{ /* Задання вказ³вник³в. */
c_ptr = c_array;
s_ptr = s_array;
f_ptr = f_array;
/* Вив³д адрес³в елемент³в масиву p dbrjhb */
for (i=0; i<MAX; i++)
{ printf("%ld\t", c_ptr++);
printf("%ld\t", s_ptr++);
printf("%ld\n", f_ptr++); }}
Результат роботи програми
4202524 4202504 4202536
4202525 4202506 4202540
4202526 4202508 4202544
4202527 4202510 4202548
4202528 4202512 4202552
4202529 4202514 4202556
4202530 4202516 4202560
4202531 4202518 4202564
4202532 4202520 4202568
4202533 4202522 4202572
5 Контрольні запитання
Який знак операції використовується для одержання адресу змінної?
Який знак операції використовується для одержання значення по адресі?
Що таке посилання по вказівнику?
Що таке вказівник?
Які операції можна виконувати над вказівниками.
Операція зміщення над вказівниками?
Що таке адресна арифметика?
Що означає інкрементування вказівників?
Який зв’язок між елементами масиву і вказівниками.
Чи можна вказівники описувати разом зі змінними?
Лабораторна робота № 11-12
Тема: Передача масивів у функції
Мета: Навчитись передавати масиви в функції за допомогою вказівників в С-програмах
1 Короткі теоретичні відомості
Означення
функції. Функцією
називається незалежний фрагмент
програми, який має
Опис функції. Функції при використанні потрібно описувати. Опис функції називають прототипом функції. Синтаксис опису: (прототип функції)
Тип
функції (значення,
яке повертає функція)
Оператор
опису функції повідомляє компілятору
функцію, яка буде визначена в програмі
пізніше. Опис включає тип
значення,
яке повертає функція,
Приклад float cube(float x);
Для того, щоб до функції можна було звернутися, у тому ж файлі повинно бути опис функції (прототип).
Double line(double x1,double y1,double x2,double y2);
double square(double a, double b, double c);
Це прототипи функцій, описаних вище.
Прототипи функцій повинні бути бути в тексті швидше аніж виклик функції, щоб компілятор міг здійснити перевірку правильності виклику.
Передача
масивів в функції. Єдиний
спосіб передати в функцію масив це
вказівники.
Аргумент це
Якщо функція може приймати аргумент масив, то хотілось би, щоб вона працювала з масивом різної довжини. Звідки функція повинна знати цю довжину. Так як значення відповідного аргументу – це лише вказівник на перший елемент масиву, який може бути першим з 10, або першим з 1000-чі. Є два способи повідомити функцію розмір масиву.
Можна помістити останній елемент масиву, помістивши в нього останнє значення. При обробці масиву функція перевірить всі елементи, і як тільки виявить спеціальне значення, буде знати, що масив закінчився. Недолік той, що треба резервувати певне значення тільки для перевірки кінця масиву.
Передача довжини масиву в явному виді. Це може бути просто аргумент типу int. Таким чином функція одержує мінімум два аргументи: вказівник на перший елемент масиву і ціле число, яке визначає кількість елементів в масиві.