Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Тип_функції ім'я_функції(список_формальних_параметрів)




Порядок виконання лабораторних робіт

Лабораторні роботи складаються з декількох програм та завдань до них. Студент повинен розробити, відлагодити і зберегти у робочому каталозі програми в точній відповідності з приведеними в лабораторних роботах текстами програм (вихідні програми), опрацювати і проаналізувати результати їхньої роботи, а також розробити для кожної вихідної програми самостійне завдання відповідно заданому варіанту та продемонструвати викладачу роботу цих програм.

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

Лабораторна робота вважається захищеною, якщо при захисті отримано не менш половини вірних відповідей.

Зміст звіту:

1. Титульний лист, виконаний відповідно до СТП.

2. Мета роботи.

3. Відповіді на контрольні питання.



Загальні відомості

Одновимірні масиви. Масив – це сукупність змінних одного типу, що мають одне ім'я. При визначенні масиву оголошують його розмір, значення розміру повинно бути константним цілочисловим виразом. Наприклад:

int a[3];

Покажчики.Це цілі беззнакові змінні, значеннями яких служать адреси ділянок пам'яті, виділених для об'єктів (змінних) конкретних типів. Тип покажчика – це тип змінної, адреса якої є значенням покажчика. Наприклад:

int a=1;

int *ptra,*ptrb, *ptrс; //визначення покажчиків

ptra=&a;  //привласнення адреси змінної a

ptrb=ptra; //привласнення значення покажчика ptra

ptrс=(int*)0xB8000000; //привласнення явної адреси

Ім'я масиву – це покажчик-константа, значення якого є адреса нульового елемента масиву. З елементами масивів, пов'язаними з покажчиками, можна працювати за допомогою індексіві операції розіменування. Наприклад, для доступу до останнього елементу масиву можливі такі конструкції:

int arr[10]; int *ptr=arr;

arr[9]=2; *(arr+9)=2; *(9+arr)=2; 9[arr]=2;

ptr[9]=2; *(ptr+9)=2; *(9+ptr)=2; 9[ptr]=2;

Рядок.Це сукупність змінних типу char, наприкінці якої завжди міститься символ '\0'.Рядок можна ініціалізувати послідовністю символів, що знаходиться у парних подвійних лапках. Наприклад:

char str[5]="name";

Адреса першого елемента рядка може використовуватися для ініціалізації покажчика типу char, наприклад:

char *strptr="name";

Багатовимірний масив. Це масив масивів, тобто такий масив, елементами якого є масиви. Ім'я багатовимірного масиву є покажчик-константа на масив покажчиків-констант, елементами якого є покажчики-константи на початок кожного з рядків масиву.

Доступ до елементів двовимірного масиву може здійснюватися за індексом або за допомогою операції розіменування. Наприклад:

int a[3][4]; //визначення двовимірного масиву

a[0][3]=7;       // доступ до останнього елементу 1-го рядка

*(a[1]+3)=8;   // доступ до останнього елемунту 2-го рядка

*(*(a+2)+3)=9; // доступ до останнього елемунту 3-го рядка

Масиви динамічної пам'яті.Пам'ять для збереження масивів даних може виділятися динамічно в так званій "купі", розмір і положення якої залежать від моделі пам'яті, операційної системи та компілятора. При цьому розмір масиву може буде змінною.

В мові Сі використовується функція malloc()для запиту і виділення пам'яті і функція free()для її звільнення. Прототипи цих функцій описано в заголовних файлах <alloc.h> та<stdlib.h>. У мові С++ для цього існують операції new і delete. Операція new автоматично визначає необхідний обсяг пам'яті в байтах. Наприклад:

int n=10; // розмір масиву є змінна типу int

int *dipa=(int*)malloc(n*sizeof(int)); //запит пам'яті

...

free(dipa); //звільнення пам'яті

double *ddpa=new double[n]; //запит пам'яті

...

delete [] ddpa; //звільнення пам'яті

Структури. Це сукупність поіменованих об'єктів у загальному випадку різних типів. Кожна структура включає в себе один або декілька об'єктів (змінних, масивів, покажчиків, структур), які називають елементами (полями) структури.

Структурний тип (шаблон)визначає, скільки елементів і якого типу входять в структуру. Визначення шаблону структури починаєть­ся із слова struct, за яким розміщаються описи елементів, що входять в структуру, поміщені у фігурні дужки. Шаблон структури має права типу. Під шаблон пам'ять не виділяється. Наприклад:

struct STUDENT {char name[20];

         int age;

         float rating;};

Після визначення структурного типу з його допомогою можна визначити конкретні структури. Наприклад:

STUDENT st1, starr1[3],*ptrst=&st1;

При визначенні структури можлива її ініціалізація, тобто при­власнення початкових значень елементам структури. Для цього після визначення ставиться знак '=',у фігурних дужках через кому задають­ся значення елементів згідно структурного типу. Наприклад:

STUDENT st2={"Смирнов",20,4.9};

STUDENT star2[2]={"Петров",20,4.4,"Романов",19,4.3};

Для звернення (доступу) до елементів структури використову­ються уточнені імена. Наприклад:

st1.age=19;  st1.rating=4.3;

Для звернення до членів масиву структур використовується індекс, який вказують у квадратних дужках, наприклад:

cout<<arrstd[0].name;

starr1[2].age=20; starr1[3].rating=4.7;

При зверненні до членів структури, зв'язаної з покажчиком, використовується операції стрілка або розіменування покажчика та ім'я елемента структури після крапки. Нижче наведені обидві форми:

ptrstàage=18; (*ptrst).rating=4.5;

Об'єднання. Це сукупність поіменованих об'єктів різних типів, в яких однакова початкова адреса, тобто на відміну від структури всі елементи об'єднання мають нульовий зсув. Тип об'єднання (шаблон) визначає, скільки елементів і якого типу входять в нього. Визначення типа об'єднання починається зі слова union, за яким розміщаються описи елементів, поміщені у фігурні дужки.

Розмір пам'яті, що виділена під об'єднання, визначається розміром елемента з максимальною довжиною. Визначення шаблона об'єднання і самого об'єднання, а також доступ до елементів об'єднання виконується аналогічно структурам, наприклад:

union UN{int a[2];char c[4];} un1,*ptrun=&un1;

un1.a[0]=25; //звернення до елемента об'єднання

ptrunàc[3]='е'; //звернення до un1.c[3] через покажчик

При визначенні об'єднання можна ініціалізувати тільки перший елемент. Наприклад:

UN un23={1, 12}; //ініціалізується перший елемент (масив a)

Бітові поля структур та об'єднань. Це цілі значення (типу int, char, long, short), що займають у пам'яті фіксоване число бітів (від 1 до 16 біт). Бітові поля можуть бути тільки елементами структур і об'єднань. Їх використовують для доступу до окремих бітів даних. Розмір бітових полів задається через двокрапку після імені елемента структури або об'єднання. Наприклад:

struct SS{int a:5;   //для елемента aвиділиться 5 бітів

     int b:3;}; //для елемента bвиділиться 3 біта

SS stb,*pb=&stb; //визначення структури, покажчика на структуру

Доступ до бітових полів здійснюються як до елементів струк­тури. Наприклад: stb.а=31; stb.b=3; (*pb).a=1; pb->b=3;

Членами об'єднання можуть бути структури з бітовими полями, наприклад: union UB{char c; SS str1;} un3;

Функції. Це елементи програми, що можуть використовуватися неодноразово для виконання деякої, заздалегідь визначеної задачі. Кожна програма містить одну і тільки одну функцію з ім'ям main(), за допомогою якої здійснюється вхід у відкомпільовану програму. Крім головної функції в програмі може бути багато інших функцій.

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

Будь-яка функція, окрім головної функції main(), має бути визначена або описана до її використання (виклику) в конкретному модулі. Визначення функції має наступний синтаксис:

тип_функції ім'я_функції(список_формальних_параметрів)

{ тіло функції }

де тип_функції -це тип значення, що повертається функцією. Якщо функція нічого не повертає, то тип функції позначається void;

список_формальних_параметрів (чи сигнатура функції) – це список специфікацій окремих параметрів з вказівкою типів і імен, що записані через кому, або voidчи порожньо, якщо у функцію не передаються ніякі параметри;

тіло функції -це послідовність описів, визначень змінних та операторів, що поміщені у фігурні дужки.

Коли функція викликається, управління передається в початок тіла функції. Повернення в точку виклику функції виконується опера­тором return вираз; або return;. У тілі функції може бути декілька операторів return, якщо вихід з функції здійснюється в декількох точках.  Наприклад:










Последнее изменение этой страницы: 2018-04-12; просмотров: 448.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...