Struct <тег > {
<тип 1> <поле1>;
<тип 2 > <поле 2>
…………………….
< тип К > <поле К>
};
де < ТЕГ > --- унікальне поле структури , яке визначає дану структуру .
Поля структур --- це елементи з яких складається структура , кожне поле має свій тип . Тип поля --- довільний , простий або складений допустимий для С.
Розмір структури (обсяг оперативної пам’яті) , яку займає структура буде більший (рівний) за розмір усіх її полів. Тому реальний розмір структури визначають операцією size of(<назва структури>) . Шаблони структур фактично створюють новий користувацький тип, але для них не виділяється місце в оперативній пам’яті. Пам’ять виділяється тільки для структурних змінних, які можна оголошувати разом зі шаблоном , або окремо , посилаючись на шаблон.
Для ідентифікації шаблону і оголошення змінних даного типу можна використовувати дескриптори. Операція приналежності (.) дозволяє получити доступ до окремих елементів структури через використання міток шаблона структури.
Якщо у нас є вказівник на конкретну структуру, для доступу до окремого елемента структури ми можемо використати вказівник і складену операцію приналежності (->) замість імені і операції крапка. Здобути адресу структури можна з допомогою &. На відміну від масивів , ім’я структури не може бути адресою структури.
Традиційно функція , орієнтована на роботу зі структурими , використовують вказівники на структури в якості аргументів. Сучасна версія С допускає передачу структур в якості аргументів, використання структур в якості повертаючи значень і виконання операції присвоєння над структурами одного і того ж типу. Подібним синтаксисом володіють об’єднаня. Прикладом який демонструє структуру може бути :
struct book {
char avtor[60];
char name[120] ;
int year ;
} book1,book2;
Файли. Файли являються частиною теперішніх комп’ютерних систем. Вони використовуються для зберігання програм, даних, кореспонденції, форм, графічних даних та багато іншої інформації.Будучи програмістом , ми повинні знати , як писати програми, які створюють, записують та читають файли .
Часто у нас виникає необхідність в програмах , які можуть зчитувати інформацію із файлу або записувати результати виконання у файл. Однією із таких форм обміну даними між програмою і файлом є пере адресація файлу.
Мова С пропонує більш потужніший метод обміну даними з файлами. Він дозволяє відкривати файли із програми , а тоді з допомогою спеціальних функцій вводу-виводу виконає читання і запис в цей файл.
Файл являє собою іменований розділ пам’яті , зазвичай розміщений на диску. Однак для операційної системи файл являється більш складним об’єктом.
С розглядає файл як неперервну послідовність байтів, кожен з яких може бути прочитаний індивідуально. Це відповідає структурі файлу в операційній системі Unix, з якої мова С бере свій початок. Оскільки інші операційні системи не відповідають цій моделі , стандарт ANSI С пропонує два способи представлення файлів: текстове представлення і двійкове представлення.
Програма на мові С розглядає ввід як деякий потік даних. Джерелом цього потоку може бути файл, пристрій вводу(клавіатура) або навіть вивід в іншу програму . Програма на С трактує вивід як потік байтів , місцем призначення яких може бути файл, пристрій відображення і тому подібне . Як С інтерпретує вхідний або вихідний потік байтів, залежить від того , яку функцію вводу-виводу ми використовуємо. Програма може читати і зберігати
байти без змін , з другої сторони , вона може інтерпретувати байти як символи , які в свою очередь , можна розглядати як звичайний текст, або текстове представлення чисел. Аналогічно для двійкового значення без зміни або перетворення в текст або текстове представлення чисел.
Якщо є числові , які необхідно зберегти , а потім використати без втрати точності їх представлення , використовують двійковий режим і функції fread( ) i fwrite( ). Якщо зберігати текстову інформацію і хочемо створити файл , який легко переглядається з допомогою звичайних текстових редакторів, скористаємося текстовим режимом і функціями getc( ) i fprint( ).
Щоб отримати доступ до файлу , потрібно створити вказівник на файл (типу FILE *) і пов’язати його з конкретним ім’ям файлу.
C підтримує операції введення/виведення даних через відповідні набори бібліотечних функцій , при чому вони можуть бути реалізовані на трьох рівнях :
А). високий --- це так звані потокоорієнтовані операції буферизованого вводу/виводу , їх прототипи містяться у заголовному файлі «stdio.h», які є дуже мобільні.
Б). низький --- (не підтримуваний стандартом) базується на операціях MS DOS , прототипи містяться у заголовном уфайлі <io.h>.
В). консольний --- базується на засобах BIOS , прототипи в заголовному файлі < conio.h>.
Важливо пам’ятати , що С сприймає поняття кінця файлу і виконує читання файлу вциклі до тих пір доки не досягне кінця файлу. Функції вводу у мові С не знаходять кінець файлу до того часу , доки не попробують читати символи , що йдуть за кінцем файлу.
Ввід і вивід файлів буферезований . Стандартний пакет вводу-виводу автоматично створює буфер для вводу і виводу, що прискорює передачу даних. Функція fopen( ) відкриває файл для стандартного вводу-виводу і створює структури даних , які пизначені для зберігання інформації про файл і буфер. Повертає вказівник на цю структуру даних , а сам вказівник використовується іншими функціями. Розрізняють декілька режимів виконання для функції fopen( ):
“r”—відкриття текстового файлу для читання;
“w”—відкриває текстовий файл для запису, відрізаючи довжину існуючого файлу до нуля, або створює файл якщо такого не існує;
“a”--- відкриває текстовий файл для запису, добавляючи дані в кінець існуючого файлу, або створює файл якщо такого не існує;
“r+”--- відкриває текстовий файл для обновлення;
“w+”--- відкриває текстовий файл для обновлення, виконавши спочатку обтинання файлу до нульової довжини , якщо він існує , або створює файл , якщо той ще не існує;
“a+”--- відкриває текстовий файл для обновлення, добавляючи дані в кінець існуючого файлу, або створює файл якщо такого не існує,але при цьому можна читати весь файл , однак записана інформація добавляється в кінецьфайла;
Функції feof( ) і ferror( ) повідомляють про причини невдалого завершення операцій вводу-виводу.
До задач числових методів відносяться прикладні задачі, розв’язок яких містить числову інформацію. Вони зводяться до математичрих обчислювальних методів. Виділяють наступні етапи розв’язування задач числових методів, які наведені [1,2]:
побудова математичних моделей (математичне формулювання задачі) - охоплює найважливіші для даної задачі сторони, явища;
вибір методу розв’язування – для найпростіших задач знаходять аналітичний розв’язок, складніші розв’язуються наближеними методами, зокрема числовими;
алгоритмізація процесу – складання алгоритму розв’язку задач (якщо задача розвязується на ПК, складається програма);
виконання обчислення на ПК чи вручну;
аналіз результатів.
Числові методи для розв’язання різноманітних задач почали широко використовуватися в 50-х рр. ХХ століття, коли починається розвиток комп’ютерної техніки. Громіздкі обчислення з появою електронно-обчислювальних машин перестали бути такими складними, адже їх виконувала машина.
Формула прямокутників.
Ідея формули прямокутників полягає в тому, що на малому відрізку [x
;x +h] площа криволінійної трапеції наближено рівна площі прямокутника з основою (x ;x +h) і висотою рівною ординаті будь-якої точки ,яка належить відрізку [x ;x +h]. (1)В залежності від вибору точки
отримаємо різновидності формул прямокутників (1).Розіб’ємо відрізок [a;b] на n рівних частин точками a=x
; x ; x , причому x =x +h; x =x +2h; x =x+nh. (2)На кожному відрізку [x
;x +h] замінемо відповідну криволінійну трапецію на прямокутник висоту якого можна визначити по різному.Формула „лівих” прямокутників.
Якщо за висоту прямокутника на кожному відрізку [x
;x +h] вибрати ординату в лівому кінці, тобто y , то криволінійна трапеція заміниться на ступінчасту фігуру, площу якої можна приймати за площу криволінійної трапеції.