Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
projekt_ukr2.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
180.22 Кб
Скачать

Головні файли.

Представимо що компоненти програми-калькулятора великих розмірів, і які неможливо розмістити в одному файлі. В цьому випадку необхідно розмістити їх по декількох файлах. Програму main помістимо у файл, який назвемо main.c; push, pop і їх змінні розмістимо в іншому файлі, stack.c; а getop –у третьому getop.с, getch і ungetch помістимо в четвертому файлі getop.с.

Існує ще один момент, про який слідує пам’ятати - ці визначення і декларації використовуються декількома файлами. Наскільки ми б хотіли централізувати опис так, щоб для них існувала тільки одна копія. Тоді програму в процесі її розвитку буде легше і виправляти, і підтримувати в правильному стані. Для цього загальну інформацію розмістимо в головному файлі calc.h, який буде по мірі необхідності включати й інші файли.

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

Лекція 12

Масиви в якості аргументів функції.

Оскільки масив може містити сотні байтів тому немає змісту копіювати всі ці дані в стек при передачі масиву функції. Так як масив займає суміжні комірки пам'яті, то у випадку використання імені масиву (без індексу) у якості аргументу функції мова програмування Сі забезпечує передачу функцією адреси першого байта цього масиву. Приведений далі приклад демонструє один із способів оголошення масиву у викликаній функції.

Передача масиву функцією

/*

* визначити й ініціалізувати багатомірний масив

*/

#include “stdio.h” /* може знадобитися функція getchar */

char co_index[4][15]= /* другий індекс рівний розміру найбільш */

{ /* довшої допустимої назви в таблиці */

“IBM inc”, /* грудки розділяє рядки масиву */

“General Motors”,

“Delta”,

“Shell Oil”

};

/*

* рахувати індекс (у межах 1-4) і зобразити на екрані відповідні фірми

*/

main()

{

int index;

printf(“уведіть значення індексу (1-4): ”);

index=getchar();

display(index, co_index);

}

/*

* ця функція отримує індекс і масив відповідних фірм. Вона зображає на

* екрані назву, відповідну переданому значенню індексу.

*/

display(і, names)

int і; /* ASC II – код індексу*/

char names[4][15] /* двомірний масив назв*/

/* вказівка розмірності в аргументах необов'язкова */

{

i=i – ‘0’ – 1;

if (i>=0 && i<=3)

printf(“найменування фірми: %s/n”, names[і]);

else printf(“допускаються значення індексу від 1 до 4!”);

}

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

Лекція 13

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