Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursova.docx
Скачиваний:
10
Добавлен:
23.02.2016
Размер:
3.81 Mб
Скачать

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

У Сі є типи цілих чисел різних розмірів ( short int, long int), зі знаком ( signed) і без ( unsigned), чисел з плаваючою комою ( float, double), символів, що перераховуються типів (enum) і записів-структур (struct). Крім того, мова Сі пропонує тип об'єднання (union), за допомогою якого можна або зберігати в одному місці пам'яті різнорідні дані.

У обох задачах курсової роботи я використовував умовний оператор. Умовний оператор реалізує розгалуження процесу виконання програми та дає змогу вибрати один з можливих варіантів. Взагалі існує 2 умовні оператори: if та switch. Проте я використовував тільки оператор if.

Оператор if має скорочену та повну форми. Синтаксис скороченої форми наступний:

if (вираз) оператор

Вираз, записаний в дужках, визначає, за якої умови буде виконуватися оператор. Якщо вираз справджується, то оператор буде виконуватися.

Синтаксис повної форми if має такий вигляд:

if (вираз )

оператор_1

else

оператор_2

Якщо вираз буде правдивим, то виконуватиметься оператор_1, в усіх інших випадках буде виконуватися оператор_2.

Для виконання курсової роботи, я використав оператори циклу. Відомо 3 оператори циклу: оператор for, оператор while (цикл з передумовою) та оператор do-while (цикл з післяумовою).

Синтаксис оператора for має такий вигляд:

for ( вираз_1; вираз_2; вираз_3)

оператор

Тут вираз_1 встановлює початкові значення змінних циклу (вираз ініціалізації); вираз_2 задає умову виконання циклу; вираз_3 виконує зміну значень змінних циклу.

Іншим видом оператора циклу мови Сі є оператор while, що має наступний синтаксис:

while (вираз)

оператор

Тут вираз – довільний вираз, що задає умову виконання циклу; оператор – довільний оператор мови, що формує тіло циклу.

Оператор do-while називають оператором циклу з постумовою. Синтаксис його такий:

do

оператор

while (вираз)

Оператор та вираз можуть бути такими ж, як і в попередньому виді циклу.

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

Розробляючи програми, я використовував масиви. Масивом називають сукупність елементів одного типу, що мають спільне ім’я. Слід пам’ятати, що нумерація елементів масиву у мові Сі починається з нуля, тоді як у мові Паскаль перший елемент має номер 1. Оголошення масивів виконують через таку синтаксичну конструкцію:

тип_елементів ім’я_масиву[кількість_елементів]

Наведу приклад:

double arr[15] – оголошено масив з 15-ти дійсних чисел;

int vector[4*n] – оголошено масив з 4*n чисел, де n – якась константа.

Оглошуючи масив, можна відразу ініціалізувати його, тобто задати його елементи. Наприклад: int simple1[5]={3,5,7,9,11}. Слід пам’ятати, що кількість заданих значень не повинна перевищувати вказану розмірність масиву.

У 1-ому завданні нам потрібно здійснити запис до файлу, а у 2-ому завданні прочитати файл. Та перед тим, як файл можна прочитати або здійснити до нього запис, файл потрібно відкрити за допомогою бібліотечної функції fopen.

Оголошення файлу має наступний вигляд:

FILE *fp;

FILE *fopen(char *name, char *mode);

Це означає, що fp є покажчиком на (структуру типу) FILE і fopen повертає покажчик на FILE. FILE - це назва типу, така сама як int. Виклик fopen у програмі має вигляд

fp = fopen(name, mode);

Першим аргументом fopen є символьний ланцюжок, що містить назву файла. Другий аргумент — це режим, також символьний ланцюжок, який вказує на те, як буде використовуватись файл. Допустимими режимами можуть бути режим читання («r» — read), запису («w» — write) і долучення («a» — append). Якщо файл, якого не існує, відкрито для запису або додання, його буде створено, якщо це можливо. Відкриття наявного файла для запису спричинить звільнення старого змісту, тоді як відкриття для дозапису збереже старий зміст. Спроба прочитання файла, якого не існує, викличе помилку; існують також інші причини помилок, як скажімо спроба прочитати файл, на який ви не маєте дозволу. Якщо сталася якась помилка, fopen повертає NULL.

Наступний крок — мати спосіб читання або запису до файла після того, як його відкрито. getc повертає наступний знак з файла; вона вимагає покажчика на файл, щоб знати, який саме файл.

int getc(FILE *fp)

getc повертає наступний знак з потоку, на який вказує fp; вона повертає EOF у випадку кінця файла або помилки.

putc - це функція виводу:

int putc(int c, FILE *fp)

putc запише символ з c до файла fp і поверне записаний знак або EOF у випадку помилки. Так само як getchar і putchar, getc із putc можуть бути макросами, а не функціями. Під час запуску C-програми, середовище операційної системи бере на себе завдання відкриття трьох файлів і надання покажчиків до них. Ці файли — це стандартний ввід, стандартний вивід і стандартна помилка; відповідні їм покажчики називаються stdin, stdout і stderr, і оголошено в <stdio.h>. За звичайних обставин, stdin сполучено з клавіатурою, тоді як stdout із stderr — з екраном, але stdin і stdout можна перенаправити в інші файли або конвеєри.

Для форматованого вводу або виводу із файлами, можна використати функції fscanf і fprintf. Вони тотожні scanf із printf за винятком того, що першим аргументом є покажчик на файл, який вказує на, власне, файл, який буде читатися; другим аргументом є ланцюжок формату.

int fscanf(FILE *fp, char *format, ...)

int fprintf(FILE *fp, char *format, ...)

Після закінчення роботи з файлом, його потрібно закрити. Функція int fclose(FILE *fp)являється протилежністю fopen, вона розриває зв'язок між покажчиком на файл і зовнішньою назвою, отриманою fopen, звільняючи покажчик для іншого файла. fclose викликається автоматично для кожного відкритого файла при нормальному завершенні програми.

Також я використав у своїх програмах функції. У Cі, функція — це еквівалент процедур чи функцій Pascal. Функції забезпечують зручним способом герметизувати, або відокремити, якесь обчислення, яке після того можна використати не хвилюючись про те, як саме воно було втілене. C робить використання функцій легким, зручним і ефективним; ви часто побачите короткі функції, означені та викликані тільки один раз лише тому, що вони прояснюють якийсь кусочок коду.

Досі ми використовували тільки такі функції як printf, getchar і putchar, які нам було надано.

Функція main — це така сама функція, як і будь-яка інша, вона також може повертати значення викликачеві, що насправді є середовищем у якому запущено програму. Типово, повернення нуля означає нормальне завершення; ненульові значення сигналізують незвичайні або помилкові умови завершення.

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

У C, аргументи функцій передаються «за значенням». Це означає, що викликаній функції передаються значення аргументів у вигляді тимчасових змінних, а не оригінали. Це призводить до дещо відмінних властивостей, ніж ті, які можна зустріти у разі «виклику за зверненням», типового у випадку параметрів var у Pascal, в якому викликана функція має доступ до оригінального аргументу, а не локальної копії.

Згідно зі стандартом мови Сі, функція повинна оптсуватись синтаксичною конструкцією такої форми:

тип_значення_функції імя_функції (оголошення параметрів)

{

оголошення внутрішніх змінних

оператори тіла функції

}

Ключове слово struct оголошує структуру, яка в свою чергу являється списком оголошень, включених у фігурні дужки. За словом struct може слідувати необов'язкова назва, яку називають «етикеткою структури» (як point у цьому прикладі). Етикетка присвоює назву структурі, і може використовуватись пізніше як скорочення для частин, оголошенних у фігурних дужках.

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

Саме оголошення struct визначає новий тип. За правою закриваючою дужкою може слідувати список змінних, так само як і у випадку інших основних типів.

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

  1. РОЗРОБКА АЛГОРИТМІВ РОЗВЯЗАННЯ ЗАДАЧ

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