Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB_TO2.doc
Скачиваний:
15
Добавлен:
19.02.2016
Размер:
2.62 Mб
Скачать

3 Методичні вказівки

  1. Уважно прочитати умову задачі з індивідуального завдання. Визначити, що має бути отримано в результаті її розв'язку, які дані для цього потрібно ввести.

  2. Використати знання про вказівники, операції над ними.

  3. Для вводу й виводу даних використати бібліотеку функцій <stdіo.h>.

  4. Ввести текст програми. Звернути увагу на типи даних, що будуть використані в програмі.

  5. Запустити програму на компіляцію. У випадку необхідності виправити синтаксичні помилки.

  6. Запустити програму на виконання. У випадку необхідності виправити семантичні помилки.

  7. Реалізувати програму для різних вхідних даних.

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 Контрольні запитання

  1. Який знак операції використовується для одержання адресу змінної?

  2. Який знак операції використовується для одержання значення по адресі?

  3. Що таке посилання по вказівнику?

  4. Що таке вказівник?

  5. Які операції можна виконувати над вказівниками.

  6. Операція зміщення над вказівниками?

  7. Що таке адресна арифметика?

  8. Що означає інкрементування вказівників?

  9. Який зв’язок між елементами масиву і вказівниками.

  10. Чи можна вказівники описувати разом зі змінними?

Лабораторна робота № 11-12

Тема: Передача масивів у функції

Мета: Навчитись передавати масиви в функції за допомогою вказівників в С-програмах

1 Короткі теоретичні відомості

Означення функції. Функцією називається незалежний фрагмент програми, який має 44ер’я, призначена для виконання конкретної задачі, і повертає значення в44ередавань програму (що не обов’язково). Розглянемо складові частини означення функції:

Опис функції. Функції при використанні потрібно описувати. Опис функції називають прототипом функції. Синтаксис опису: (прототип функції)

Тип функції (значення, яке повертає функція) 44ер’я функції(тип арг1. імя-арг. 1, тип арг2. імя-арг.2, тип арг3. імя арг.3);

Оператор опису функції повідомляє компілятору функцію, яка буде визначена в програмі пізніше. Опис включає тип значення, яке повертає функція, 44ер’я функції і типи аргументів, які передаються в функцію. Оператор опису закінчується ;

Приклад float cube(float x);

Для того, щоб до функції можна було звернутися, у тому ж файлі повинно бути опис функції (прототип).

Double line(double x1,double y1,double x2,double y2);

double square(double a, double b, double c);

Це прототипи функцій, описаних вище.

Прототипи функцій повинні бути бути в тексті швидше аніж виклик функції, щоб компілятор міг здійснити перевірку правильності виклику.

Передача масивів в функції. Єдиний спосіб передати в функцію масив це вказівники. Аргумент це 44ередавань в функцію значення. Воно може мати будь-який тип, але повинно бути одиночним значенням. Це може бути окремий елемент масиву, але не весь масив. Треба скористатися вказівником на масив, який являє собою одиничне числове значення – адрес першого елемента масиву. Якщо передати його в функцію, то функція буде знати адресу масиву і може звернутися до нього з допомогою операції ссилки (посилання) по вказівнику.

Якщо функція може приймати аргумент масив, то хотілось би, щоб вона працювала з масивом різної довжини. Звідки функція повинна знати цю довжину. Так як значення відповідного аргументу – це лише вказівник на перший елемент масиву, який може бути першим з 10, або першим з 1000-чі. Є два способи повідомити функцію розмір масиву.

  1. Можна помістити останній елемент масиву, помістивши в нього останнє значення. При обробці масиву функція перевірить всі елементи, і як тільки виявить спеціальне значення, буде знати, що масив закінчився. Недолік той, що треба резервувати певне значення тільки для перевірки кінця масиву.

  2. Передача довжини масиву в явному виді. Це може бути просто аргумент типу int. Таким чином функція одержує мінімум два аргументи: вказівник на перший елемент масиву і ціле число, яке визначає кількість елементів в масиві.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]