МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
ЖИТОМИРСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГIЧНИЙ
УНІВЕРСИТЕТ
МЕТОДИЧНІ ВКАЗІВКИ
до виконання лабораторних робіт
з навчальної дисципліни
“Основи програмування та алгоритмічні мови”
Напрям підготовки 6.050103 “Програмна інженерія”
(денна форма навчання)
ФАКУЛЬТЕТ ІНФОРМАЦІЙНО-КОМП’ЮТЕРНИХ ТЕХНОЛОГІЙ
КАФЕДРА ІНФОРМАТИКИ ТА КОМП'ЮТЕРНОГО
МОДЕЛЮВАННЯ
Житомир 2010
Методичні вказівки до виконання лабораторних робіт з дисципліни «Основи програмування та алгоритмічні мови» для студентів спеціальності 6.050103 “Програмна інженерія” денної форми навчання / Панаріна І.В.– Житомир: ЖДТУ, – 2010.– 28 с.
Автор: к.т.н. Панаріна Ірина Володимирівна,
доцент кафедри ІКМ
Відповідальний за випуск:д.т.н, проф. Панішев А.В. зав. каф. ПЗОТ
__________________
Затверджено
на засіданні кафедри
ПЗОТ
Протокол № ____
від «___» ________ 20___р.
Загальні вказівки
Видання містить лабораторні роботи, завдання яких закріплюють теоретичний матерівл з вивчення основних прийомів програмування алгоритмічною мовою Сі.
|
|
Перша лабораторна робота містить однакові для всіх завдання. Кожна наступна лабораторна робота містить варіанти однакової складності. Студент обирає свій варіант згідно з номером у журналі академічної групи.
Для виконання лабораторних робіт студент повинен мати необхідні теоретичні знання з основ мови програмування Сі.
Вимоги щодо оформлення робіт
Звіт до кожної лабораторної роботи оформлюється на окремих аркушах паперу А4 та здається викладачу у встановлені терміни.
Звіт повинен містити наступні елементи:
1. титульну сторінку (рис. 1);
2. короткі теоретичні відомості відповідно до теми лабораторної роботи;
3. умови задач;
4. описи алгоритмів розв'язання задач у виглядібдок-схем (для 1 та 2 лабораторної роботи 1-ого семестру) та описи створених функцій для решти лабораторних робіт.
5. тексти програм на мові програмування Сі;
6. список використаноїлітератури.
До лабораторної роботи додається дискета (або диск) зі створеними програмами.
| ||||||||||||
Рис. 1. Приклад оформлення титульної сторінки звіту |
Теоретичні відомості до першої лабораторної роботи.
Елементи мови Сі
Будь-яка мова (українська, російська, англійська, французька та інші) складається з декількох основних елементів - символів, слів, словосполучень і речень. В алгоритмічних мовах програмування існують аналогічні структурні елементи, тільки слова називають лексемами, словосполучення - виразами, а речення - операторами. Лексеми в свою чергу утворюються із символів, вирази - із лексем і символів, оператори - із символів, лексем і виразів.
|
|
· Алфавіт мови, або її символи - це основні неподільні знаки, за допомогою яких пишуться всі тексти на мові програмування.
· Лексема, або елементарна конструкція - мінімальна одиниця мови, яка має самостійний зміст.
· Вираз задає правило обчислення деякого значення.
· Оператор задає кінцевий опис деякої дії.
Алфавіт
Алфавіт мови Сі включає:
· великі та малі літери латинської абетки;
· арабські цифри;
· пробільні символи: пробіл, символи табуляції, символ переходу на наступний рядок тощо;
· символи,.;:? '! | / \ ~ () [ ] { } < > # % ^ & - + * =
Ідентифікатори
Ідентифікатори використовуються для іменування різних об'єктів: змінних, констант, міток, функцій тощо. При записі ідентифікаторів можуть використовуватися великі та малі літери латинської абетки, арабські цифри та символ підкреслення. Ідентифікатор не може починатися з цифри і не може містити пробілів.
Компілятор мови Сі розглядає літери верхнього та нижнього регістрів як різні символи. Тому можна створювати ідентифікатори, які співпадають орфографічно, але відрізняються регістром літер. Наприклад, кожний з наступних ідентифікаторів унікальний:
Sum sum sUm SUM sUM
Слід також пам'ятати, що ідентифікатори не повинні співпадати з ключовими словами.
Константи
Константами називають сталі величини, тобто такі, які в процесі виконання програми не змінюються. В мові Сі існує чотири типи констант: цілі, дійсні, рядкові та символьні.
1. Цілі константи можуть бути десятковими, вісімковими або шістнадцятковими.
Десяткова константа - послідовність десяткових цифр (від 0 до 9), яка починається не з нуля якщо це число не нуль. Приклади десяткових констант: 10, 132, 1024.
Вісімкові константи починаються з символу 0, після якого розміщуються вісімкові цифри (від 0 до 7). Наприклад: 023. Запис константи вигляду 08 буде сприйматися компілятором як помилка, так як 8 не є вісімковою цифрою.
Шістнадцяткові константи починаються з символів 0х або 0Х, після яких розміщуються шістнадцяткові цифри (від 0 до F, можна записувати їх у верхньому чи нижньому регістрах). Наприклад: 0ХF123.
2. Дійсні константи складаються з цілої частини, десяткової крапки, дробової частини, символу експоненти (e чи E) та показника степеня. Дійсні константи мають наступний формат представлення:
[ ціла_частина ][. дробова_частина ][ Е [-] степінь ]
У записі константи можуть бути опущені ціла чи дробова частини (але не обидві разом), десяткова крапка з дробовою частиною чи символ E (e) з показником степеня (але не разом). Приклади дійсних констант: 2.2, 220е-2, 22.Е-1,.22Е1.
Якщо потрібно сформувати від'ємну цілу або дійсну константу, то перед константою необхідно поставити знак унарного мінуса.
3. Символьні константи. Символьна константа - це один або декілька символів, які заключені в апострофи. Якщо константа складається з одного символу, вона займає в пам'яті 1 байт (тип char). Двосимвольні константи займають в пам'яті відповідно 2 байти (тип int).
Послідовності символів, які починаються з символу \ (обернений слеш) називаються керуючими або escape-послідовностями (таблиця 1.1).
Таблиця 1. Escape-послідовності
Спеціальний символ | Шістнадцятковий код | Значення |
\a | звуковий сигнал | |
\b | повернення на 1 символ | |
\f | 0C | переведення сторінки |
\n | 0A | перехід на наступний рядок |
\r | 0D | повернення каретки |
\t | горизонтальна табуляція | |
\v | 0B | вертикальна табуляція |
\\ | 5C | символ \ |
\' | символ ' | |
\" | символ " | |
\? | 3F | символ? |
\0 | нульовий символ | |
\0ddd | - | вісімковий код символу |
\0xddd | ddd | шістнадцятковий код символу |
|
|
4. Рядкові константи записуються як послідовності символів, взятих у подвійні лапки.
"Це рядковий літерал!\n"
Для формування рядкових констант, які займають декілька рядків тексту програми використовується символ \ (обернений слеш):
"Довгі рядки можна розбивати на \
частини"
Загальна форма визначення іменованої константи має вигляд:
const тип ім'я = значення;
Модифікатор const попереджує будь-які присвоювання даному об'єкту, а також інші дії, що можуть вплинути на зміну значення. Наприклад:
const float pi = 3.14l5926;
const maxint = 32767;
char *const str="Hello,P...!"; /* покажчик-константа */
char const *str2= "Hello!"; /* покажчик на константу */
Використання одного лише модифікатору const еквівалентно const int.
Коментарі
Текст на Сі, що міститься у дужках /* та */ ігноруватиметься компілятором, тобто вважатиметься коментарем до програми. Такі коментарі можуть розміщуватися в будь-якому місці програми.
Коментарі здебільшого використовуються для "документування програм" та під час їх відлагодження. В програму бажано вміщувати текст, що хоч якось пояснює її роботу та призначення. Проте не слід надто зловживати коментарями, а використовувати більш розумні форми найменування змінних, констант, функцій тощо. Якщо, наприклад, функція матиме назву add_matrix, очевидно не зовсім раціональним буде включення у програму після її заголовної частини коментар про те, що:
/*функція обчислює cуму матриць */
У цьому випадку ім'я функції пояснює її призначення. У більш сучасних версіях Сі широко застосовується так званий угорський запис імен, коли ім'я змінної містить в собі інформацію про її призначення і тип.
Оператори
Оператори - це основні елементи, з яких "будуються" програми на будь-якій мові програмування. Більшість операторів складаються з виразів. Виходячи з цього, спочатку розглянемо вирази.
|
|
Вираз представляє собою об'єднання операцій і операндів. Найпростіший вираз складається з одного операнду.
Приклади виразів:
-7
10+21
a*(b+d*1)-1
x=++a%3
a>3
Неважко помітити, що операнди можуть бути константами, змінними, їх об'єднаннями. Деякі вирази складаються з менших виразів.
Дуже важливою особливістю мови Сі є те, що кожний вираз має значення. Наведемо приклади кількох виразів і їх значень:
-5+7 2
1 < 2 1
6+(a = 1+2) 9
a = 1 + 2 3
Основу будь-якої програми складають оператори. Оператором-виразом називається вираз, вслід за яким стоїть крапка з комою. Взагалі усі оператори можна згрупувати у наступні класи:
· оператори присвоювання;
· виклики функцій;
· розгалуження;
· цикли.
Проте, оператори найчастіше відносяться до більш ніж одного з чотирьох класів. Наприклад, оператор if (a=fn(b+c)>d) складається з представників наступних класів: присвоювання, виклик функції та розгалуження. У тому і є гнучкість Сі, що є можливість змішування в одному операторі операторів різних класів. Проте навряд чи слід цим зловживати - програма може вийти правильною, проте надто заплутаною та нечитабельною.