- •2. Схема розв'язування задачі. Етапи підготовки задачі для розв'язування на еом
- •3. Поняття про операційні системи (ос) та їх роль у функціонуванні еом
- •4.Внутрішня та зовнішня частини ос, їх призначення.
- •5. Cхеми алгоритмів і програм
- •6. Різновидності структур алгоритмів. Організація алгоритмів лінійної і розгалудженої структури
- •7. Організація алгоритмів циклічної і вкладеної структури.
- •8. Основні види мов програмування. Машинно-залежні та машинно-незалежні мови.
- •9. Види програмного забеспечення поем
- •11 Поняття і призначення комп'ютерних мереж
- •12. Архітектура комп’ютерних мереж. Передача даних
- •15 Основні ф-ції
- •17 Типи вірусів
- •30. Оператор if
- •32.Оператор циклу for на мові Сі
- •33. Оператор циклу while на мові Сі.
- •36. Оператор переходу goto на мові Сі.
- •37. Поняття функції на мові Сі, її опис та структура
- •38. Поняття про локальні і глобальні величини на мові Сі
- •39. Звернення до функцій на мові Сі
- •41. Приклад програми з використанням одно та двовимірних масивів на мові Сі.
- •42. Введення даних
- •43.Оператор виводу
- •48. Дії над вказівниками
17 Типи вірусів
файлові віруси заражають програмні файли з такими розширеннями, як COM, EXE, DLL, SYS, DRV, VXD . Файлові віруси можуть заражати файли практично будь-якої операційної системи незалежно від її версії. Окремою категорією коштують віруси, які заражають документи, соз дані за допомогою пакету програм Microsoft Office, це так називає миє макровіруси;
завантажувальні віруси, або як їх ще називають boot -віруси (бутові), до ториє заражають завантажувальні області дискет і жорстких дисків, точніше ту їх частина, що не використовується системними файлами. Такі віруси зара жают практично всі дискети, які використовуються на зараженому комп'ютері.
Особливість завантажувальних вірусів полягає в тому, що вони завантажуються в пам'ять комп'ютера ще до запуску операційної системи, а значить, до запуску антивіруса, що декілька утрудняє своєчасне їх обна руженіє, особливо, якщо програма для "лову вірусів" при запуску комп'ютера не перевіряє оперативну пам'ять. Ще одним нюансом завантажувальних вірусів є те, що в операційних системах типа Windows багато хто з них не здібний до зараження інших дисків;
завантажувально-файлові віруси володіють можливістю зараження якраз особистих файлів, так і завантажувальної області дисків. При цьому зараження може статися навіть при простому зверненні до зараженого диска або при запуску зараженого файлу;
мережеві віруси — ця категорія вірусів здатна самостійно пері давати свій програмний код всім комп'ютерам, підключеним до ло кальной мережі. Часто цю категорію вірусів називають черв'яками;
"троянські коні" — ця категорія вірусів, як правило, ніколи не за ражаєт файли або завантажувальну область диска, а просто прописує себе в автозавантаження і чекає, коли ж ви введете якийсь пароль, щоб відправити його творцеві вірусу. Такі програми призначені, в основному, для крадіжки коштовної інформації.
Так або інакше комп'ютерні віруси потрапляють на комп'ютер користувача за допомогою так званої глобальної мережі — або разом з електронним листом, або коли сам користувач викачує деякий файл, содер жащий вірус, і потім запускає його на своєму комп'ютері або несе на дискеті на комп'ютер друга, колеги.
18. Шляхи проникнення вірусів у комп'ютер і механізм розподілу вірусних програм Основними шляхами проникнення вірусів у комп'ютер є знімні диски (гнучкі й лазерні), а також комп'ютерні мережі. Зараження жорсткого диска вірусами може відбутися при завантаженні програми з дискети, що містить вірус. Таке зараження може бути випадковим, наприклад, якщо дискету не вийняли з дисководу А і перезавантажили комп'ютер, при цьому дискета може бути і не системною. Заразити дискету набагато простіше. На неї вірус може потрапити, навіть якщо дискету просто вставили в дисковод зараженого комп'ютера і, наприклад, прочитали її зміст. Вірус, як правило, впроваджується в робочу програму таким чином, щоб при її запуску управління спочатку передалося йому і тільки після виконання всіх його команд знову повернулося до робочої програми. Отримавши доступ до управління, вірус насамперед переписує сам себе в іншу робочу програму і заражає її. Після запуску програми, що містить вірус, стає можливим зараження інших файлів. Найчастіше вірусом заражаються завантажувальний сектор диска і виконувані файли, що мають розширення EXE, COM, SYS, BAT. Вкрай рідко заражаються текстові файли. Після зараження програми вірус може виконати якусь диверсію, не дуже серйозну, щоб не привернути уваги. І нарешті, не забуває повернути управління тій програмі, з якої було запущено. Кожне виконання зараженої програми переносить вірус у наступну. Таким чином, заразиться все програмне забезпечення. Для ілюстрації процесу зараження комп'ютерної програми вірусом має сенс уподібнити дискову пам'ять старомодному архіву з файлами на тасьмі. У папках розташовані програми, а послідовність операцій з впровадження вірусу буде в цьому випадку виглядати наступним чином.
19
Антивірусна програма — це програма, яка запобігає зараження ПК комп'ютерними вірусами і дозволяє усунути наслідки зараження.
антивірусні програми дозволяють видаляти віруси з комп'ютера, а інколи навіть рятувати пошкоджену інформацію. Щоб запобігти можливості "зараження" комп'ютера, зазвичай використовуються антивірусні програми, які можна підрозділити на два основні види:
антивірусний сканер — ця категорія дозволяє перевіряти файли, що містяться на жорсткому диску або на будь-якому змінному носієві, на наявність в них програмної коди, характерної для того або іншого комп'ютерного вірусу (не секрет, що віруси "прикріплюють" себе до іс полняємим файлам інших програм). При цьому ви можете запустити перевірку в будь-який слушний для вас час;
антивірусний монітор — дана категорія призначена для постійного контролю всіх програм, що запускаються, і копійованих (переміщає мих, що видаляються, відкриваються) файлів. Як правило, антивірусний монітор запускається разом з операційною системою і контролює всі процеси, що виконуються в оперативній пам'яті. Як дополнітель ний послуги монітор може перевіряти файли на жорсткому диску, якщо на комп'ютері протягом певного часу не здійснюється ника ких робіт. При цьому робота комп'ютера декілька сповільнюється, а то і взагалі стає дуже повільною. Тут все залежить від того, які за розміром файли використовуються. Особливе уповільнення роботи помітно на іграх.
На сьогоднішній день найбільш популярними є антивірусні про грами:
AVP або Антивірус Касперського,
Dr . Web, створена фахівцями компанії "Діалог-наука
Symantec Norton Antivirus,
20
Структура програми на мові Сі.
Програма на С складається із сукупності функцій, одна з яких повинна називатись main(). Описані функції складаються із заголовку і тіла функції. Заголовок містить оператори (директиви) передпроцесора, наприклад, #include та ім’я функції. Ім’я пізнається по круглим дужкам, які можуть бути порожніми. Тіло функції береться у фігурні дужки і складається із ряду операторів, кожний з яких закінчується крапкою з комою. Усі програми, написані на мові Сі, повинні містити в собі хоча б одну функцію. Функція main() - вхідна точка будь-якої програмної системи, причому немає різниці, де її розміщувати. Але потрібно пам'ятати наступне: якщо вона буде відсутня, завантажувач не зможе зібрати програму, про що буде виведене відповідне попередження. Перший оператор програми повинен розміщуватися саме в цій функції.
Мінімальна програма на мові Сі має вигляд:
main()
{
return 0;
}
Функція починається з імені. В даному прикладі вона не має параметрів, тому за її ім'ям розташовуються порожні круглі дужки (). Далі обидві фігурні дужки {...} позначають блок або складений оператор, з яким ми працюватимемо, як з єдиним цілим.
Мінімальна програма має лише один оператор - оператор повернення значення return. Він завершує виконання програми та повертає в нашому випадку деяке ціле значення (ненульове значення свідчить про помилки в програмі, нульове про успішне її завершення). Виконання навіть цієї найпростішої програми, як і решти багатьох, проходить у декілька етапів
код запуску |
21
Оголошення велечин.
Величина – характеристика об’єкта, яка може набувати різних
значень. Ім’я величини (змінної, алгоритму, програми) – символ або група символів, що використовується для позначення величини (змінної, алгоритму, програми).
Cтала величина (або константа) – це величина, яка не може змінювати своє значення в процесі виконання алгоритму (програми).
Змінна – це іменована величина, яка в процесі виконання алгоритму
(програми) може набувати і зберігати різні значення.
Тип величини – це характеристика величини, яка визначає множину її
допустимих значень і спосіб їх подання в пам’яті комп’ютера, а
також множину допустимих операцій над величиною.
Є 5 основних типів змінних char, int, float, double i void. Тип char інтерпритується як однобайтова ціла величина від 0 до 255 або символ. Тип int таож зміна цілого типу але з областю від -32768 до +32768 і займай в памяті 2б. Типи float і double оголошують змінні дійсного типу. float займай в памяті 4б і займає область від -10^37 до +10^37 і doubleзаймає 8б з облюстю від -10 до +10 в 368 степенні.
Тип void може бути використаний тільки для оголошення функцій, які не повертають значення.
22
Запис арифметичних виразів на мові Сі
Арифметичними виразами з двома операндами є +, -, *, / і оператор коефіцієнту %. Поділ цілих відкидає дробову частину. Вираз
x % y
повертає залишок поділу x на y, і нуль, якщо ділення відбудеться без залишку. Наприклад, рік буде високосним, якщо він кратний 4, але не 100, за винятком того, що роки кратні 400 — теж високосні. Таким чином
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
printf("%d is a leap year\n", year);
else
printf("%d is not a leap year\n", year);
Оператор % неможливо застосувати із float та double. Напрямок округлення у випадку / і знак результату % є машинозалежним для від'ємних чисел, так само як дії у випадку втрати значності або переповнення. Оператори + та - рівні за пріоритетом, але мають менший пріоритет ніж *, / і %, які в свою чергу, поступаються унарним + та -. Арифметичні оператори діють з ліва на право.Арифметичні вирази будує користувач відповідно до умови задачі зі сталих, змінних, функцій, поєднуючи їх за певними правилами за допомогою символів операцій.
Результатом обчислення арифметичного виразу є число.
І. Числові вирази
В них використовуються арифметичні та логічні операції, операції порівняння і виконуються арифметичні функції.
Арифметичні операції: - - зміна знаку; наприклад: -а, -3; *, / - множення, ділення;
\ - ділення націло; наприклад: 10\3→3;
MOD - знаходження остачі від ділення; наприклад: 10 MOD 3 →1
+, - - додавання, віднімання.
Для зміни природної послідовності виконання арифметичних операцій використовують круглі дужки. Інші види дужок не допускаються. Кількість відкритих і закритих дужок у виразі повинна бути однаковою. Спочатку обчислюють вирази в дужках.
ІІ. Символьні (текстові) вирази
Результатом обчислення є рядок. Над рядками символів можна виконувати такі операції:
1) + , з'єднання, наприклад: “місто” + “ “ + “Луцьк” результат - “місто Луцьк”
2) визначення довжини рядка; 3) виділення підрядка з рядка; 4) порівняння рядків і т.д.
23
Oсновні арифметичні функції, їх застосування У програмі на мові Сі.
арифметичні функції містяться у файлі <math.h> (компілятори мови С) або у файлі <сmath> (компілятори мови С++). Аргументи x та y мають тип double, n – тип int; усі функції повертають значення типу double.
24
Логічні вирази – вирази, призначені для записування різноманітних умов.Умовні оператори забезпечують виконання чи невиконання деякого оператора або послідовності операторів в залежності від заданих умов
Умовні оператори реалізують розгалуження процесу виконання програми та дають змогу вибрати один з можливих варіантів продовження програми. Мова С має два вии умовних операторів: if та switch.
25
Операції автоматичного збільшення та зменшення на мові Сі.
У мові C++ є дві операції для збільшення і зменшення значень змінних. Унарна операція збільшення ++ (інкремент) додає одиницю до свого операнда, а унарна операція зменшення -- (декремент) віднімає одиницю. Наприклад, використання операції ++ для збільшення змінних:
if(c == '\n')
i++;
Незвичайний аспект полягає в тому, що операції ++ і -- можна використати як префіксні (++n), так і як постфіксні (n++). Ефект в обох випадках полягає в збільшенні N. Але вираз ++n збільшує змінну n до використання її значення, у той час як n++ збільшує змінну n після того, як її значення було використано. Це означає, що використання ++n і n++ призводить до різних результатів. Якщо n = 5, то:
х = n++; // встановлює x рівним 5,
х = ++n; // встановлює x рівним 6.
В обох випадках n стає рівним 6. Операції збільшення і зменшення можна застосовувати тільки до змінної. Вираз типу х = (I + J)++ є помилковим.
У випадках, де потрібне тільки збільшення, а саме значення не використовується, як, наприклад, у
if (c == '\n')
nl++;
то вибір префіксної або постфіксної операції довільний, але є ситуації, де потрібно використати саме ту або іншу операцію.
26
Операція присвоєння
У Сі присвоюються значення виразів. Крім простого привласнення допомогою операції =, Сі
підтримує складові операції привласнення, які перед присвоюванням виконують додаткові операції над своїми операндами. Остаточне значення результату залежить від старшинства операцій і від побічних ефектів, якщо вони виникають. Порядок обчислення встановлюється певним групуванням операндів і операцій у виразі. Побічний ефект - це зміни стану машини, викликані в процесі обчислення виразу. Присвоєння має декільа видів:
1. Звичайне змінна=вираз
2. Послідовне зиінна1=....зміннаN=вираз
3. Присвоїння з одночасним виконанням операцій змінна+=вираз, змінна/=змінна+=+вираз
Приклади:
х+=1
а/=5
b&=c
y+=a*b-c*d
4. Послідовне з використанням +.-.*./
a+=b*=c/=a+b
27
Умовний вираз (операція ? ) на мові Сі
Умовна операція ?: - єдина тернарна операція в мові Сі. Її синтаксис :
умова ? вираз_1 : вираз_2
Принцип її роботи такий. Спочатку обчислюється вираз умови. Якщо цей вираз має ненульове значення, то обчислюється вираз_1. Результатом операції ?: в даному випадку буде значення виразу_1. Якщо вираз умови рівний нулю, то обчислюється вираз_2 і його значення буде результатом операції. В будь-якому випадку обчислюється тільки один із виразів (вираз_1 або вираз_2).
Наприклад, дану операцію зручно використати для знаходження найбільшого з двох чисел x і y:
max=(x>y)?x:y;
Приклад 1 :
#include<stdio.h>
void main()
{
int points;
printf("Введiть оцiнку [2..5]:");
scanf("%d",&points);
printf("%s",points>3?"Ви добре знаєте матерiал!":"Погано...");
}
Приклад 2 :
j = (i<0) ? (-i) : (i); /* змінній j присвоюється модуль i*/
28
Вираз послідовного обчислення (операція , )
Операція "кома" (,) називається операцією послідовного обчислення, яка "зв'язує" два довільних вирази. Список виразів, розділених між собою комами, обчислюються зліва направо. Наприклад, фрагмент тексту
a=4;
b=a+5;
можна записати так :
a=4, b=b+5;
Операція послідовного обчислення використовується в основному в операторах циклу for()
Для порівняння наводимо приклад з використанням операції слідування (приклад 1) та без неї (приклад 2):
Приклад 1.
int a[10],sum,i;
/* ... */
sum=a[0];
for (i=1;i<10;i++)
sum+=a[i];
Приклад 2.
int a[10],sum,i;
/* ... */
for (i=1,sum=a[0];i<10;sum+=a[i],i++) ;
29
Поняття про оператор на мові Сі. Структура оператора та його основні види
Всі оператори мови С можуть бути умовно розділені на наступні категорії:
- Умовні оператори, до яких відносяться оператор умови if і оператор вибору switch;
- Оператори циклу (for, while, do while);
- Оператори переходу (break, continue, return, goto);
- Інші оператори (оператор "вираз", порожній оператор).
Оператори в програмі можуть об'єднуватися в складені оператори за допомогою фігурних дужок. Будь-який оператор у програмі може бути позначений міткою, що складається з імені і наступного за ним двокрапки.
Всі оператори мови С, крім складених операторів, закінчуються крапкою з комою ";".
Порожній оператор
Порожній оператор складається тільки з точки з комою. При виконанні цього оператора нічого не відбувається. Він зазвичай використовується в наступних випадках: - В операторах do, for, while, if в рядках, коли місце оператора не потрібно, але зсинтаксису потрібно хоча б один оператор; - При необхідності позначити фігурну дужку. Оператор безумовного переходу Використання оператора безумовного переходу goto в практиці програмування на мові С настійно не рекомендується, так як він ускладнює розуміння програм і можливість їх модифікацій. Оператор if Формат оператора: if (вираз) оператор; Виконання оператора if починається з обчислення виразу. Далі виконання здійснюється за наступною схемою: - Якщо вираз істинний (тобто відмінно від 0), то виконується оператор. - Якщо вираз помилково, то виконується наступний за if оператор. Оператор перемикач switch Оператор switch призначений для організації вибору з безлічі різних варіантів. Формат оператора наступний: switch (вираз) {[Оголошення] : [Case константне-вираз1]: [список-операторов1] [Case константне-вираз2]: [список-операторов2] : : [Default: [список операторів]] } Вираз, наступне за ключовим словом switch в круглих дужках, може бути будь-яким виразом, допустимими в мові С, значення якого повинно бути цілим.
Оператор циклу for
Оператор for - це найбільш загальний спосіб організації циклу. Він має наступний формат: for (вираз 1; вираз 2; вираз 3) тіло Вираз 1 зазвичай використовується для встановлення початкового значення змінних, керуючих циклом. Вираз 2 - це вираз, що визначає умову, за якої тілоциклу буде виконуватися. Вираз 3 визначає зміна змінних, керуючих циклом після кожного виконання тіла циклу. Схема виконання оператора for: 1. Обчислюється вираз 1. 2. Обчислюється вираз 2. 3. Якщо значення виразу 2 відмінно від нуля (істина), виконується тіло циклу, обчислюється вираз 3 і здійснюється перехід до пункту 2, якщо вираз 2 дорівнює нулю (брехня), то управління передається на оператор, наступний за операторомfor.
Оператор циклу з передумовою while
Оператор циклу while називається циклом з передумовою і має наступний формат: while (вираз) тіло; В якості виразу допускається використовувати будь-який вираз мови Сі, а як тіла будь-який оператор, в тому числі порожній або складової. Схема виконання оператора while наступна: 1. Обчислюється вираз. 2. Якщо вираз помилково, то виконання оператора while закінчується і виконується наступний по порядку оператор. Якщо вираз істинний, то виконується тіло оператора while. 3. Процес повторюється з пункту 1. Оператор циклу виду for (вираз-1; вираз-2; вираз-3) тіло; може бути замінений оператором while наступним чином: вираз-1; while (вираз-2) { тіло вираз-3; }
Оператор циклу з післяумовою do - while
Оператор циклу do while називається оператором циклу з постусловіем і використовується в тих випадках, коли необхідно виконати тіло циклу хоча б один раз. Формат оператора має наступний вигляд: do тіло while (вираз); Схема виконання оператора do while: 1. Виконується тіло циклу (яке може бути складеним оператором). 2. Обчислюється вираз. 3. Якщо вираз помилково, то виконання оператора do while закінчується і виконується наступний по порядку оператор. Якщо вираз істинний, то виконання оператора триває з пункту 1. Щоб перервати виконання циклу до того, як умова стане хибним, можна використовувати оператор break.