Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
СХІДНОУКРАЇНСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ
ІМЕНІ ВОЛОДИМИРА ДАЛЯ
МЕТОДИЧНІ ВКАЗІВКИ
до виконання лабораторних робіт
з дисципліни «Програмування»
(частина перша)
(для студентів денної та заочної форм навчання спеціальностей 091501 «Компютерні системи та мережі», 091502 «Системне програмування», 170101 - «Безпека інформаційних і комунікаційних систем»)
ЗАТВЕРДЖЕНО
на засіданні методичної ради кафедри компютерних систем та мереж
Протокол №10 від 28.10.2009р.
Луганськ 2009
УДК 681.3
Методичні вказівки до лабораторних робіт з дисципліни «Програмування» (частина перша) для студентів денної та заочної форм навчання спеціальностей 091501 «Компютерні системи та мережі», 091502 «Системне програмування», 170101 - «Безпека інформаційних і комунікаційних систем»/ Укл. Петров О. С., Дубовіков Є. Ю. Луганськ: вид-во СНУ ім. В. Даля, 2009 42 с.
Дані методичні вказівки призначені для використання студентами при виконанні та оформленні лабораторних робіт з дисципліни «Програмування». Методичні вказівки містять короткі теоретичні відомості з основних розділів курсу. При розгляді кожної теми наводяться приклади вирішення типових задач з використанням середи Microsoft Visual C++. Виклад матеріалу супроводжується контрольними питаннями по кожній темі та варіантами завдань для самостійного опрацювання.
Укладачі: |
Петров О. С., проф. Дубовіков Є. Ю. викл. стаж. |
Відпов. за випуск |
Петров О.С., професор |
Рецензент |
Петрущенко Т.В., доцент |
ВСТУП
У 1972 році 31-річний фахівець з системного програмування з фірми Bell Labs Денис Рітчи розробив мову програмування C.
У 1984 році французький математик і саксофоніст Філіп Кан засновує фірмуBorland International.
Далі з'явився діалект мови C фірми Borland.
Початковий C був розроблений як мова для програмування в операційній системі Unix.
Незабаром він почав розповсюджуватися для програмістів-практиків. В кінці 70-х були розроблені транслятори C для Мікро ЕОМ для операційної системою Ср/m.
Після появи IBM РС почали з'являтися і компілятори C (для цього комп'ютера їх зараз більше 20).
У 1983 р. Американський Інститут Стандартів (ANSI) сформував Технічний Комітет X3J11, для створення стандарту мови C. Мова C++ корпорації Borland, що з'явився на ринку, підкоряється більшості вимог стандарту.
По суті своїй C є язиком функцій. Програмування на C, здійснюється шляхом написання функцій і звернення до бібліотечних функцій. Більшість функцій повертають деякі значення, які можуть використовуватися в інших операторах.
Серед безлічі достоїнств мови C потрібно відзначити основні:
ПОНЯТТЯ АЛГОРИТМУ. БАЗОВІ СТРУКТУРИ ПРОГРАМИ.
Алгоритм зрозуміле та точне розпорядження (інструкція) виконавцеві виконати кінцеву послідовність дій (команд), що приводять від початкових даних до бажаного результату.
Технологічний ланцюжок рішення задачі на ЕОМ:
Основні умовні графічні позначення для побудови блок-схем алгоритмів програм та правила їх використання наведені в табл. 1.
Таблиця 1
Умовне графічне позначення |
Правила використання |
Початок програми (підпрограми) |
|
Кінець програми (підпрограми) |
|
Введення/виведення даних для стандартних пристроїв введення-виведення (клавіатура, дисплей); у межах блока вказуються ідентифікатори змінних для введдення даних або вирази, значення яких виводяться |
|
Виконання дій; у межах блока вказуються дії, які необхідно виконати. У даному випадку обчислюється значення виразу і обчислене значення присвоюється змінній |
Продовження таблиці 1
Розгалуження алгоритму програми залежно від виконання умови; у межах блока вказується вираз, результат якого визначає подальший хід виконання алгоритму програми |
|
Виконання циклу; у межах блока вказуються межі діапазону значень параметру циклу та алгоритм (вираз), за яким змінюється параметр циклу |
|
Виконання підпрограми (процедури чи функції); у межах блока вказується заголовок (імя та параметри) підпрограми(процедури чи функції) |
|
Виведення даних на папір (принтер); у межах блока вказується список виразів, значення яких виводяться |
|
Лінії зєднань між блоками |
|
Переходи на іншу сторінку; використовуються, якщо блок-схема розташована на кількох сторінках; N номер сторінки, M номер блоку |
|
Перехід у межах сторінки |
ЕЛЕМЕНТИ МОВИ C
Під елементами мови C розуміють наступні базові конструкції, які використовуються при написанні програм:
Алфавіт мови C утворюють:
Спеціальний символ складається із оберненого слеша, за яким іде або буква, або знаки пунктуації, або комбінація цифр.
Наприклад:
\n символ нового рядка;
\r символ повернення каретки;
\t символ горизонтальної табуляції;
\v символ вертикальної табуляції;
\b символ повернення на крок;
\f символ переведення формату;
\\ зворотний слеш;
\ апостроф;
\ лапки;
\0 нуль-символ;
\ddd байтове значення у вісімковому представленні;
\xdd байтове значення у шістнадцятковому представленні;
Константа це число, символ або рядок символів. Константи використовуються у програмі для задання сталих величин. Розрізняють чотири типи констант: цілі, з плаваючою крапкою, символьні константи і символьні рядки.
Ціла константа це десяткове, вісімкове чи шістнадцяткове число, яке представляє ціле значення. Десяткова константа має наступний формат представлення:
<цифри>
де <цифри> послідовність з однієї або декількох десяткових цифр від 0 до 9.
Кожна ціла константа має тип, що визначає її представлення у памяті (див. 1.2) Десяткові константи можуть мати тип int (цілий знаковий тип) або long (довгий цілий знаковий тип). Якщо значення десяткової константи більше максимального значення, яке може бути представлено типом int, то дана константа представляється типом long.
Можна явно визначити для любої цілої константи тип long, дописавши до неї суфікс l або L. Наприклад, константа із значенням 10 буде мати тип long тільки у тому випадку, якщо її записати як 10L
Константа з плаваючою крапкою це дійсне десяткове додатне число. Воно містить цілу частину, дробову частину і експоненту. Такі константи мають наступний формат представлення:
[<цифри>] [ . <цифри>] [<e>[ - ]<цифри>]
де <цифри> одна чи більше десяткових цифр (від 0 до 9);
< е > ознака експоненти, яка задається як Е або е.
Зауваження: а) або ціла або дробова частина константи може бути відсутня, але не обидві одночасно. б) або десяткова крапка з дробовою частиною або експонента може бути відсутня, але не обидві одночасно.
Константи з плаваючою крапкою завжди специфікують додатні значення. Для формування відємного значення застосовується операція “унарний мінус”. Приклади констант з плаваючою крапкою:
15.75
1.575Е1
1575е-2
-0.0025
-.175Е-2
Усі константи з плаваючою крапкою мають тип double.
Символьна константа це літера, цифра, знак пунктуації чи спеціальний символ, обрамлений апострофами. Символьна константа має наступну форму представлення:
' <символ> '
<символ> може бути довільним символом (у тому числі довільним спеціальним символом), за виключенням символів апострофа ('), зворотного слеша (\) і нового рядка (\n). Символи апострофа, зворотного слеша і нового рядка представляються відповідними спеціальними символами ' \' ' , ' \\ ' та ' \n '.
Приклади символьних констант:
' а ' - мала літера а;
' ? ' - знак питання;
' \b ' - символ повернення на крок.
Усі символьні константи мають тип int.
Ідентифікатор це послідовність букв, цифр і символів підкреслення, яка починається з букви або символа підкреслення. Ідентифікатори вживаються для іменування різних обєктів: типів констант, змінних, функцій тощо. Допустиме довільне число символів у ідентифікаторі, однак лише перші 32 символи розглядаються компілятором як такі, що мають значення.
Приклади правильних ідентифікаторів:
a
temp1
top_of_page
Приклади не правильних ідентифікаторів:
a+b
1temp
top of page
Компілятор мови C розглядає букви верхнього і нижнього регістрів як різні символи. Тому наступні ідентифікатори є різними:
add
ADD
aDD
Ключові слова наперед визначенні індетифікатори, які мають спеціальне значення для компілятора мови C. Ключові слова не можна використовувати як ідентифікатори. Перелік ключових слів наводиться у табл.2.
Таблиця 2
auto |
do |
for |
return |
switch |
break |
double |
goto |
short |
typedef |
case |
else |
if |
signed |
union |
char |
enum |
int |
sizeof |
unsigned |
continue |
extern |
long |
static |
void |
default |
float |
register |
struct |
while |
Коментар це послідовність символів, яка сприймається компілятором мови C як окремий символ пропуску та ігнорується.
Синтаксис коментаря має наступний вигляд:
/* < символи > */
Приклад коментаря:
/* це коментар */
Коментарі можуть займати більше одного рядка програмного тексту:
/* Коментар може займати
декілька рядків */
Коментарі не можуть містити вкладених коментарів, тому наступний приклад буде помилковим:
/* Неприпустимі /* вкладені */ коментарі */
БАЗОВІ ТИПИ ДАНИХ
У мові C реалізовано набір типів даних, які називаються “базовими” типами.
До базових типів відносяться: цілі знакові, цілі беззнакові, з плаваючою крапкою. Типи, їх імена та розмір памяті в байтах, яку займають дані цих типів у ІBM РС сумісних персональних компютерах, наведено у табл. 3.
Таблиця 3
Базові типи |
Назва |
Довжина, байт |
Діапазон значень |
Цілі знакові типи |
|||
Символьний Цілий Короткий цілий Довгий цілий |
сhar int short або short int long або long int |
1 2 або 4 2 4 |
128...127 32768...32767 231....231 1 |
Цілі беззнакові типи |
|||
Символьний Цілий Коротк. цілий Довгий цілий |
unsigned char unsigned або unsigned int unsigned short unsigned long |
1 2 або 4 2 4 |
0...255 0...65535 232….232 1 |
Типи з плаваючою комою |
|||
Плаваючий Плаваючий довгий |
float double або long float |
4 8 |
231....231 1 10-38...1038 |
ОПЕРАЦІЇ
Операції це комбінації символів, що специфікують дії по перетворенню значень. В таблиці 4. представлений перелік операцій. Операції повинні використовуватися так, як вони представлені в таблиці, без символів пропуску між символами в тих операціях, які представлені декількома символами (за винятком умовної операції).
Таблиця 4
Операція |
Назва |
Операція |
Назва |
! |
Логічне НІ |
&& |
Логічне І |
~ |
Зворотний код |
|| |
Логічне АБО |
+ |
Додавання; унарний плюс |
, |
Послідовне виконання |
|
Віднімання; унарний мінус |
? : |
Умовна операція |
* |
Множення; значення за адресою |
+ + |
Інкремент |
/ |
Ділення |
|
Декремент |
% |
Остача від ділення |
= |
Просте присвоювання |
<< |
Зсув вліво |
+ = |
Присвоювання з додаванням |
>> |
Зсув вправо |
= |
Присвоювання з відніманням |
< |
Менше |
* = |
Присвоювання з перемноженням |
<= |
Менше чи рівне |
/ = |
Присвоювання з діленням |
> |
Більше |
% = |
Присвоювання з залишком від ділення |
>= |
Більше чи рівне |
>> = |
Присвоювання з зсувом вправо |
= = |
Рівне |
<< = |
Присвоювання з зсувом вліво |
! = |
Не рівне |
& = |
Присвоювання з порозрядним І |
& |
Порозрядне І; адресація |
| = |
Присвоювання з пороз-рядним АБО |
| |
Порозрядне АБО |
^ = |
Присвоювання з пороз-рядним АБО з виключенням (Присвоювання з порозрядним додаванням за модулем 2) |
Продовження таблиці 4
^ |
Порозрядне АБО з виключенням (порозрядне додавання за модулем 2) |
sizeof1 |
Розмір обєкту |
Присвоєння змінним деякого значення здійснюється за допомогою операції присвоєння. Синтаксис:
<змінна> = <вираз>
де <змінна> - ім'я змінної (правильний ідентифікатор);
<вираз> константа (ім'я або значення), вираз, виклик функції, тип яких сумісний з типом змінної.
ЗАГОЛОВОЧНІ ФАЙЛИ2
Cтандартні заголовочні файли включаються у вихідну програму за допомогою директиви препроцесора #include. Наприклад:
#include <stdio.h> /* включення файлу stdio.h у вихідну програму*/
#include <math.h> /* включення файлу math.h у вихідну програму*/
У файлі stdio.h (standart input/output header заголовний файл вводу/ виводу) містяться оголошення функцій (прототипи) вводу/виводу, зокрема для стандартних бібліотечних функцій printf та scanf.
У файлі math.h знаходяться прототипи стандартних бібліотечних математичних функцій. Перелік цих функцій наведено в табл. 5.
Таблиця 5
Функція |
Короткий опис |
abs(x) |
Знаходження абсолютного значення виразу типу int |
atan(x) |
Обчислення арктангенса |
atan2(x,y) |
Обчислення арктангенса від y/x |
acos(x) |
Обчислення арккосинуса |
asin(x) |
Обчислення арксинуса |
cabs(x) |
Знаходження абсолютного значення комплексного числа |
ceil(x) |
Знаходження найменшого цілого, більшого чи рівного х |
cos(x) |
Обчислення косинуса |
cosh(x) |
Обчислення гіперболічного косинуса |
exp(x) |
Обчислення функції експоненти |
fabs(x) |
Знаходження абсолютного значення типу double |
floor(x) |
Знаходження найбільшого цілого, меншого чи рівного х |
Продовження таблиці 5
fmod(x/y) |
Знаходження залишку від ділення х/y |
frexp(x) |
Розкладання х як добутку мантиси на експоненту 2n |
labs(x) |
Знаходження абсолютного значення типу long |
ldexp(x) |
Обчислення x * 2exp |
log(x) |
Обчислення натурального логарифма |
log10(x) |
Обчислення десяткового логарифма |
pow(x,y) |
Обчислення х в степені у |
sin(x) |
Обчислення синуса |
sinh(x) |
Обчислення гіперболічного синуса |
sqrt(x) |
Знаходження квадратного корня |
tan(x) |
Обчислення тангенсу |
tanh(x) |
Обчислення гіперболічного тангенсу |
ФУНКЦІЯ ВВЕДЕННЯ ДАНИХ SCANF
За допомогою функції scanf відбувається зчитування значень із стандартного пристрою вводу (клавіатури) і присвоєння їх змінним вихідної програми.
Приклади:
int x;
. . . . .
scanf(“%d”, &x); /* зчитування із клавіатури та присвоєння змінній x значення цілого типу */
int x;
double y;
. . . . .
scanf(“%d %lf ”, &x, &y); /* зчитування із клавіатури та присвоєння змінній x значення цілого типу, а змінній y значення типу double */
ФУНКЦІЯ ВИВОДУ ДАНИХ PRINTF
За допомогою функції printf здійснюється вивід інформації на дисплей. Синтаксис виклику функції printf має наступний вигляд:
printf (керуючий текстовий рядок, аргумент1, аргумент2,…);
У керуючому текстовому рядку може міститися інформація двох різних видів:
аргумент1, аргумент2… параметри що виводяться, які можуть бути змінними, константами чи виразами, що обчислюються перед виводом на друк.
У випадку виводу текстового фрагменту на екран дисплея, керуючий текстовий рядок являє собою текстовий фрагмент.
Наприклад:
printf (“ Текстовий рядок ”);
У цьому випадку на екран буде виведено текстовий рядок.
У випадку виводу числових даних на екран дисплея, керуючий текстовий рядок повинен містити специфікації формату. Окрім того, після керуючого текстового рядка необхідно задати список аргументів, кількість яких повинна відповідати кількості специфікацій формату. Перший аргумент співставляємо з першою специфікацією формату, другий аргумент з другою і т.д.
Приклад:
printf (“ Значення змінних а = %d та b = %lf ”, x, y);
де “значення змінних a = та b = ” текстовий рядок, що містить специфікації формату %d і %lf .
x, y аргументи.
Інформація, що буде виведена на екран дисплею, матиме вигляд (вважається, що x та y було попередньо присвоєно відповідні значення 5 та 3.14):
Значення змінних а = 5 та b = 3.14
Специфікація формату визначається типом аргумента згідно з табл. 6.
Таблиця 6
Специфікація формату |
Тип аргумента |
%і або %d |
цілий знаковий |
%с |
символьний |
%s |
текстовий рядок |
%e |
з плаваючою крапкою (eкспоненціальний запис) |
%f |
з плаваючою крапкою (десятковий запис) |
%lf |
з плаваючою крапкою подвійної точності (десятковий запис). |
%u |
цілий беззнаковий |
СТРУКТУРА ТИПОВОЇ ПРОГРАМИ
#include <stdio.h> /* включення файлів stdio.h та math.h */
#include <math.h> /* у вихідну програму*/
void main(void) /* визначення головної функції*/
{
int x = 5; /* визначення змінної х (оголошення з ініціалізацією значення */
double y, z; /* оголошення змінних у та z*/
scanf( “%lf”, &y ); /* зчитування з клавіатури значення типу double та присвоєння його змінній y */
z=x+pow(y,2);
printf(“x = %d, z = %lf ”, x, z ); /* вивід на дисплей значень змінних x та z */
}
ЗАДАЧІ НА ЛІНІЙНІ СТРУКТУРИ
ОПЕРАТОР-ВИРАЗ
Синтаксис:
<вираз>;
УМОВНИЙ ОПЕРАТОР IF
Умовний оператор дає змогу змінити хід виконання програми залежно від результату перевірки значення деякого виразу логічного типу.
Синтаксис:
if <вираз>
<оператор1> [else <оператор2>]
де if, else ключові слова мови C;
<вираз> вираз логічного типу;
<оператор1> оператор, який виконується, якщо значення виразу <вираз> є істинне (true); <оператор2> довільний оператор, який виконується, якщо значення виразу <вираз> не є істинне (false). Частина умовного оператора обмежена квадратними дужками є необовязковою.
Якщо значення виразу <вираз> є false, однак конструкція else пропущена, то керування передається на оператор, що знаходиться в програмі за оператором if.
Приклад:
if (a < 10)
a = 10;
else
a = 15;
В даному прикладі показано, що змінній а присвоюється значення 10 тоді, коли значення виразу (a < 10) true, тобто умова виконується; в іншому випадку, якщо значення виразу false, (тобто (а > = 10) або (а > 10)), змінній а присвоюється значення 15.
В одному операторі можна використовувати стільки конструкцій else if, скільки потрібно, що ілюструється на даному прикладі:
if (a < 10)
a = 10;
else if (a < 15)
a = 15;
else if (a < 20)
a = 20;
else
a = 25;
Існує правило, яке говорить, що else відповідає найближчому if, крім тих випадків, коли присутні фігурні дужки.
Приклад1:
if (number > 6)
if (number < 12)
printf (“Вивід змінних … ”);
else
printf (“Вивід змінних завершено ! ”);
При виконанні програми результат буде наступним:
Число Результат
5 Немає
10 Вивід змінних …
15 Вивід змінних завершено !
Якщо ми хочемо, щоб else відповідав першому if , необхідно даний фрагмент оформити наступним чином:
if (number > 6)
{
if (number < 12)
printf (“Вивід змінних … ”);
}
else
printf (“Вивід змінних завершено !”);
Тепер результат виглядатиме так:
Число Результат
5 Вивід змінних завершено !
10 Вивід змінних …
15 Немає
В мові C є короткий спосіб запису одного із видів оператора if else. Він називається “Умовним виразом” і використовує операцію умови ? : . Ця операція складається із двох частин і містить три операнда. Нижче наводиться приклад оператора, за допомогою якого знаходиться абсолютне значення числа:
x = (y < 0 ) ? y : y;
Cенс оператора полягає у наступному:
Якщо y < 0 то x = -y; в іншому випадку x = y.
В загальному випадку умовний вираз можна записати наступним чином:
<вираз1> ? <вираз2> : <вираз3>;
ОПЕРАТОРИ SWITCH ТА BREAK
Загальна структура оператора switch:
switch(цілий вираз)
{
case константа1:
<оператори> (необовязкові)
case константа2:
<оператори> (необовязкові)
. . . .
default:
<оператори> (необовязкові)
}
Управління в програмі передається оператору, у якого в якості міток використовується значення деякого виразу. Потім в процесі проходження програми будуть виконуватись оператори, що залишились, поки не відбудеться новий перехід. Як вирази, так і мітки повинні мати значення цілого типу (включаючи тип char); мітки повинні бути константами чи константними виразами. Якщо деякому значенню виразу не відповідає ніяка мітка, управління передається оператору з міткою default (якщо такий є в програмі). В протилежному випадку управління передається оператору, що знаходиться за оператором switch (приклад ).
Приклад:
switch(number)
{
case 1: printf(“Номер 1-ший”);
break;
case 2: printf(“Номер 2-гий”);
break;
. . . .
default: printf(“Інші номера…”);
break;
}
Цей приклад слугує ілюстрацією роботи оператора switch. Спочатку обчислюється вираз в дужках, розташованого за ключовим словом switch. В даному випадку значенням цього виразу буде символ, присвоєний змінній number, яким ми ввели перед цим. Далі програма переглядає список “міток” (в цьому прикладі case 1; , case 2: і т.д.) доки не знайде “мітку”, яка відповідає даному значенню, і виконує оператор розташований після “мітки”. Наступний етап програма переходить до виконання оператора, що розташований в цій стрічці. Якщо такої “мітки” не знаходиться і якщо існує стрічка з “міткою” case default: , то буде виконуватись оператор, що позначений цією “міткою”. В іншому випадку відбудеться перехід до оператора, розташованому за оператором switch.
Виконання оператора break приводить до того, що в програмі відбувається вихід із оператора switch і здійснюється перехід до наступного оператора, що знаходиться за даним.
При відсутності оператора break будуть виконані всі оператори, починаючи з поміченого даною “міткою” і закінчуючи оператором switch.
ПИТАННЯ ДЛЯ САМОКОНТРОЛЮ
ЗАДАЧІ НА УМОВНІ ОПЕРАТОРИ
.
.
.
ОПЕРАТОР ЦИКЛУ З ПЕРЕДУМОВОЮ WHILE
Оператор циклу while визначає операції, які циклічно виконуються до тих пір, поки вираз, що перевіряється не стане false або рівним 0. Оператор while це цикл з передумовою; рішення, чи виконувати в черговий раз тіло циклу, приймається перед початком його проходження.
Оператор, що утворює тіло циклу, може бути або простим або складеним.
Синтаксис простого оператора:
while (вираз) /*простий оператор*/
<oператор>
Приклад:
while (i < 0)
printf(“Значення змінної і відємне”);
Оператор виконується в тому випадку, коли i < 0. Якщо значення і буде більшим чи рівним 0 ((i > 0) чи (і >= 0)), то тіло оператора while взагалі не буде виконуватись і управління зразу перейде на наступний за тілом циклу оператор програми.
Синтаксис складеного оператора :
while (вираз) /*складений оператор*/
{
<oператор1>
<oператор2>
}
Приклад:
while (i < 10)
{
i = 0;
i++;
printf(“Значення змінної і = %d”, i );
}
ОПЕРАТОР ПОКРОКОВОГО ЦИКЛУ FOR
В операторі for використовуються три вирази, що керують роботою циклу; вони розділені символами “ ; ”.
Синтаксис:
for( [<ініціалізація>]; [<умовний вираз>]; [<корекція>])
<oператор>
Тіло оператора циклу for виконується до тих пір, поки <умовний вираз> не стане false або рівним 0. Якщо він із самого початку false, то тіло циклу не буде виконано жодного разу. <Ініціалізація> і <корекція> використовуються для ініціалізації і модифікації параметрів циклу чи інших значень.
Ініціалізуючий вираз (якщо він є) обчислюється тільки один раз до початку виконання якого-небудь із операторів циклу. Потім обчислюється умовний вираз і проводиться його оцінка наступним чином:
Оператор for це цикл з передумовою: рішення, виконати в черговий раз тіло циклу чи ні, приймається до початку його проходження. Тому може бути так, що тіло циклу не буде виконано ні разу.
Оператор, що утворює тіло циклу, може бути як простим (приклад 1), так і складеним (приклад2)
Приклад1:
for( n = 0; n < 10; n++)
printf( “%d”, n);
Приклад2:
for( n = 0; n < 10; n++)
{
k = 5 * b;
printf( “%d”, k);
}
В даних прикладах тіло циклу виконується до тих пір, поки умова що перевіряється (n < 10), не стане false чи рівна нулю.
Операція “,” повязує два вирази в один і гарантує, що самий лівий вираз буде обчислюватись першим.
Приклад:
for( а = 1, в = 0; в < 10; a * = 2)
b + = a ;
ОПЕРАТОР ЦИКЛУ З ПІСЛЯУМОВОЮ DO WHILE .
Оператор do while визначає дії, які циклічно виконуються до тих пір, поки вираз не стане false, чи рівним 0. Оператор do while цикл з післяумовою; рішення, виконувати чи не виконувати в черговий раз тіло циклу, приймається після його проходження. Тому тіло циклу буде виконуватись по крайній мірі один раз. Оператор, що утворює тіло циклу, може бути як простим, так і складеним.
Форма запису:
do
<оператор>
while (вираз)
Виконання оператора повторюється до тих пір, поки вираз не стане false, чи рівним 0.
Наприклад:
do
scanf (“%d”, &number);
while (number ! = 20)
КЛЮЧОВІ СЛОВА: BREAK, CONTINUE, GOTO
Ці три команди викликають перехід від одного оператора програми до іншого, розташованого в іншому місці (в тілі програми).
break
Оператор break можна використовувати з любою із трьох форм циклу і з оператором switch. Вона приводить до того, що управління програмою “ігнорує” залишок циклу чи оператор switch, що містить цей залишок, і поновлює виконання програми з оператора, що знаходиться за циклом чи оператором switch (див. попередній приклад). Якщо оператор break знаходиться в середині деякої сукупності вкладених структур, його дія розповсюджується тільки на саму внутрішню структуру, в якій він безпосередньо знаходиться.
continue
Оператор continue може використовуватись в любій з трьох форм циклів, но не в операторі switch. Його виконання приводить до такої зміни логіки програми, що решту операторів циклу пропускаються. Для циклів while чи for в слід за цим починається новий крок, а для циклу do while перевіряється умова на виході, і потім, якщо вона виявляється істинною, виконується наступна ітерація.
Приклад:
while(number != 0)
{
if(number = = 2)
continue;
printf(“number = %d”, number);
}
goto
Виконання оператора goto викликає передачу управління в програмі оператору, поміченому вказаною міткою. Для відокремлення оператора від відповідної йому мітки використовується двокрапка “ : “ . Імена міток утворюються по тим же правилам, що й імена змінних. Позначений оператор може появитися в програмі текстуально до чи після goto.
Форма запису:
goto мітка;
. . . . .
мітка: оператор;
Приклад:
top : number = 1;
. . . . .
if(number = = 0)
goto top;
ПИТАННЯ ДЛЯ САМОКОНТРОЛЮ
ЗАДАЧІ НА ОПЕРАТОРИ ЦИКЛУ
ЗАВДАННЯ ДЛЯ САМОСТІЙНОЇ РОБОТИ
Усі матеріали подаються у друкованому та електронному вигляді!!!
Таблиця 7
№ п/п |
Вираз |
Значення аргументів |
1 |
x=2.632, y=0.731 |
|
2 |
x=3.142, z=0.543 |
|
3 |
x=4.112, y=1.628 |
|
4 |
x=2.361, y=1.149 |
|
5 |
x=2.735, z=7.218 |
|
6 |
y=6.153, z=1.001 |
|
7 |
x=12.394, y=7.139 |
|
8 |
z=9.761 |
|
9 |
x=2.14, y=0.578 |
|
10 |
x=1.155, y=3.981 |
|
11 |
x=15.241, y=7.118 |
|
12 |
x=0.067, y=3.017 |
|
13 |
x=5.168, z=1.569, y=3.022 |
|
14 |
|
x=2.134, y=0.129 |
15 |
x=0.013, z=1.245 |
|
16 |
y=7.315, z=3.127 |
|
17 |
x=1.839, y=3.821, z=0.349 |
|
18 |
x=1.549, y=7.317 |
|
19 |
x=4.123, y=2.395 |
|
20 |
x=0.712, y=3.161 |
|
21 |
x=166.124, z=15.839 |
|
22 |
x=2.531, y=0.193 |
|
23 |
x=4.597, y=7.954 |
|
24 |
x=1.413, y=0.057 |
|
25 |
x=0.357, y=2.031 |
Таблиця 8
№ п/п |
Функції |
Умови для вибору функцій |
Крок, h |
Інтервал, [a,b] |
1 |
0.02 |
[0.5, 0.9] |
||
2 |
0.2 |
[2, 4] |
||
3 |
0.2 |
[4, 6] |
||
4 |
0.2 |
[2, 4] |
||
5 |
0.05 |
[0.1, 0.7] |
||
6 |
0.02 |
[0.5, 0.8] |
||
7 |
0.2 |
[3, 6] |
||
8 |
0.2 |
[1.5, 3.5] |
Продовження таблиці 8
9 |
0.2 |
[4, 7] |
||
10 |
0.1 |
[2, 3] |
||
11 |
0.2 |
[3, 6] |
||
12 |
0.2 |
[0.5, 2] |
||
13 |
0.01 |
[0.2, 0.5] |
||
14 |
0.02 |
[0.4, 0.8] |
||
15 |
0.2 |
[7.5, 10] |
||
16 |
0.2 |
[2, 5] |
||
17 |
0.05 |
[0.3, 0.9] |
Продовження таблиці 8
18 |
0.05 |
[-0.9, -0.4] |
||
19 |
0.05 |
[0.3, 0.9] |
||
20 |
0.3 |
[0.3, 3.5] |
||
21 |
0.3 |
[3, 6] |
||
22 |
0.2 |
[2, 5] |
||
23 |
0.2 |
[3, 8] |
||
24 |
0.2 |
[2, 5] |
||
25 |
0.2 |
[6, 9] |
Таблиця 9
№ п/п |
Функція |
Інтервал, [a, b] |
Крок, h |
Похибка, d |
1 |
[0.5, 0.7] |
0.05 |
0.001 |
|
2 |
[0.1, 0.6] |
0.05 |
0.001 |
|
3 |
[3, 4] |
0.1 |
0.001 |
|
4 |
[0.2, 0.3] |
0.01 |
10-6 |
|
5 |
[1.1, 2] |
0.1 |
0.001 |
|
6 |
[-1, 1] |
0.5 |
0.001 |
|
7 |
[-1, 1] |
0.2 |
0.001 |
|
8 |
[-1, -0.9] |
0.01 |
0.001 |
|
9 |
[-1, 1] |
0.1 |
0.001 |
|
10 |
[0.1, 1] |
0.1 |
0.001 |
|
11 |
[0, 1] |
0.1 |
0.0001 |
|
12 |
[1, 2] |
0.1 |
0.001 |
|
13 |
[3, 4] |
0.1 |
0.001 |
|
14 |
, m=20 |
[0.1, 0.5] |
0.05 |
0.001 |
15 |
, m=3 |
[0.1, 0.5] |
0.05 |
0.001 |
16 |
[1, 1.2] |
0.02 |
10-6 |
Продовження таблиці 9
17 |
[1, 1.5] |
0.05 |
10-5 |
|
18 |
[1, 1.5] |
0.05 |
10-5 |
|
19 |
[0, 0.5] |
0.05 |
0.001 |
|
20 |
[-0.5, 0] |
0.05 |
0.001 |
|
21 |
[0.5, 0.9] |
0.05 |
0.001 |
|
22 |
[0.5, 0.9] |
0.05 |
0.001 |
|
23 |
[0, 0.2] |
0.02 |
0.001 |
|
24 |
, m=20 |
[0, 0.5] |
0.05 |
0.001 |
25 |
, m=9 |
[0, 0.5] |
0.05 |
0.001 |
ДОДАТОК А
Зразок титульного листа
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
СХІДНОУКРАЇНСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ
імені ВОЛОДИМИРА ДАЛЯ
КАФЕДРА КОМПЮТЕРНИХ СИСТЕМ ТА МЕРЕЖ
ІНДИВІДУАЛЬНА КОНТРОЛЬНА РОБОТА
з дисципліни: “Програмування ”
Тема: “Програмування на мові C”
Виконав: |
студент гр.____________ |
(індекс) |
|
_____________________ |
|
(прізвище, ініціали) |
|
Керівник: |
_____________________ |
(посада, прізвище, ініціали) |
ЛУГАНСЬК 20__
ДОДАТОК Б
Зразок змісту
ДОДАТОК В
Зразок списку використаних джерел
Список використаних джерел
1. Організаційно-технічне забезпечення інформаційної безпеки. Навчальний посібник/ За ред. Проф. В.О. Хорошка/ Уклад.:А.Г. Габович, С.Б. Гордієнко, В.О. Хорошко, Д.В. Чирков. К.: ДУІКТ, Полиграфконсалтинг, 2005, -116с.
2. Петров А.С., Петров А.А. Основы безопасности информационных систем: Учебное пособие - Луганск: Изд-во ВНУ им. В.Даля, 2004. 148с.3.
3. Герасименко В.А. Защита информации в автоматизированных системах обработки данных. В 2-х книгах. - М.: Энергоатомиздат, 1994.
4. Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в компьютерных системах и сетях / Под ред. В.Ф. Шаньгина. - 2-е изд., перераб. и доп. М.: Радио и связь, 2001. - 376 с.
5. Стеклов В.К., Беркман Л.Н. Телекоммунікаціонні мережі.-Київ.,-2000,-396с.
6. Сучасні телекомунікації./ За ред. Довгого С.А.-М.: Экотрендз,2003-320с.
7. Коханович Г.Ф., Климчук В.П., Паук С.М., Потапов В.Г. Защита информации в телекоммуникационных системах. К.: „МК-Пресс”, 2005. -288с., ил.
8. Максименко Г.А., Хорошко В.А. Методы выявления, обработки и идентификации сигналов радиозакладных устройств. К.: ООО „ПолиграфКонсалтинг”, 2004. с.317. ил.
ДОДАТОК Г
Зразок прикладу роботи програми
ДОДАТОК Д
Зразок блок-схеми алгоритму роботи програми
1Операція sizeof на відміну від інших представляється ключовим словом.
2 Розглядаються лише ті заголовочні файли, які є необхідними для виконання лабораторних робіт.
2
2
В