Міністерство освіти і науки РФ
Федеральне державне бюджетне освітня установа вищої професійної освіти Володимирський державний університет імені Олександра Григоровича і Миколи Григоровича Столєтова
Кафедра Фізики та прикладної математики
Лабораторна робота
з дисципліни
Об'єктно-орієнтоване програмування
на тему:
Базові типи даних і операції мови С
Виконала:
Амочкін А.В.
ст. гр. ПМІ - 111
Перевірила:
Шишкіна М.В.
Владимир +2013
Мета роботи: познайомитися з усіма базовими типами мови С та особливостями форматування при введенні/виведенні на стандартний пристрій за допомогою функцій printf/scanf. Вивчити пріоритети операцій мови С та особливості їх використання в складних виразах.
Задача:
. Для всіх базових типів визначити розмір в байтах.
. Для всіх цілих типів розрахувати діапазон представлення даних.
. Дослідити питання про переповнення типів. По ходу виконання завдання давати коментарі по поведінці компіляції і run.
. 1Создать змінну типу int, проініціалізувати її максимальним позитивним значенням, допустимим для цього типу. За допомогою функції printf і специфікаторів для цілого знакового і цілого без знакового (% d - знаковий,% u - для без знакового) вивести на екран значення цієї змінної вихідне і збільшене на одиницю.
. 2Создать трьох змінні типу int. Дві з них проініціалізувати так, щоб самі значення перебували в межах допустимого типом діапазону, а їх сума давала переповнення. Результат суми записати в третю змінну і вивести її значення на екран.
. 3Об'явіть змінну типу char, проініціалізувати її значенням 350, вивести на екран її значення зі специфікаторами для символьного і цілого без знакового типу. Пояснити отриманий результат.
. Створити змінні всіх базових типів, виконати всілякі привласнення на цих різнотипних змінних, вивести на екран значення змінних з різними специфікаторами невідповідними їх типами.
. Проаналізувати вираження на предмет їх синтаксичної коректності і в разі необхідності внести потрібні зміни, розставити порядок дій, прокоментувати значення шуканих змінних k і i.
масив тип програма переповнення
1) Int k, i=1, k=1 +++ i;
) Int k, i=1, k ++ i ++;
) Int k, i=1, k +=k ++;
) Int k, i=1, k +=++ k;
) int a, b, c, d, k; b=2; d=3; k=(a=b) + (c=d) шукані: k, a, c
) int a, b, k; a=2; b=1; k=(a!=b)? (a-b ++): (++ ab) шукані: a, b, k
) int a=3; int b=2; float y1, y2, c=3.5; y1=c * a/b; y2=c * (a/b)
Коротка теорія
Всі дані, використовувані в програмі, можна розділити на дві групи: константи і змінні. До першої групи належать дані, що не змінюють свого значення в ході виконання програми, дані другої групи можуть змінювати своє значення.
Як константи, так і змінні можуть бути різних типів, які визначають їх структуру, набір допустимих значень, правила користування і спосіб представлення в ЕОМ. Ієрархію типів даних можна представити наступною схемою.
Прості (скалярні) типи:
· цілі,
· речові,
· символьні,
· покажчики,
· перелічувальний тип.
Складові (структуровані) типи:
o масив,
o структура,
o об'єднання.
Змінна простого (скалярного) типу в будь-який момент часу зберігає тільки одне значення. На відміну від простих змінних, змінні складеного (структурованого) типу одночасно зберігають кілька значень.
Цілі і речові змінні призначені для зберігання чисел, символьні змінні - це також числові змінні, вони зберігають ASCII коди символів.
Покажчик - це змінна, значенням якої є адреса об'єкта (зазвичай іншої змінної) в пам'яті комп'ютера. Таким чином, якщо одна змінна містить адресу іншої змінної, то говорять, що перша змінна вказує (посилається) на другу.
Масив - це група елементів однакового типу (double, float, int і т. п.). З оголошення масиву компілятор повинен отримати інформацію про тип елем...