1) Вирус - это вредоносная программа, которая распространяется копируя себя (возможно не полностью). Различаются по попадания на устройство, типу заражаемых объектов распространения и типу вредоносных действий
В среднем жизненный цикл вируса такой: попадание на устройство, активация, поиск объектов для заражения, заражение, распространение
2) Вообще вирус может делать все то же, что и другая программа. Теоретически вирус может быть даже полезным. Но так или иначе он совершает действия не санкционированные самим пользователем или системой
Примеры вредоносных действий
использование ресурсов системы в своих целях (вычисления, Ддос атаки,...)удаление или порча, шифрование файловнарушение работы системы/ОСкража личных данных пользователя (напр. данных банковских карт, паролей)нарушение работы программперегрузка/блокировка линий связиспам, внедрение угрожающих/рекламных сообщений, переходы на нежелательные сайтыОбъяснение:
Метод - це невелика підпрограма, яка виконує, в ідеалі, тільки одну функцію. Методи дозволяють скоротити обсяг коду. Методи разом з полями, є основними членами класу.Раніше, ми вже розглядали методи в уроці Функції в Сі-шарп, але зараз ми розглянемо їх під іншим кутом. В тому уроці ми розглядали статичні методи, а в цьому поговоримо про прості, і про різницю між ними.
Статичний метод - це метод, який не має доступу до полів об'єкта, і для виклику такого методу не потрібно створювати екземпляр (об'єкт) класу, в якому він оголошений.
Простий метод - це метод, який має доступ до даних об'єкта, і його виклик виконується через об'єкт. Прості методи служать для обробки внутрішніх даних об'єкта.
Наведу приклад використання простого методу. Клас Телевізор, у нього є поле switchedOn, яке відображає стан включений / виключений, і два методи - включення і виключення:
class TVSet
{
private bool switchedOn;
public void SwitchOn()
{
switchedOn = true;
}
public void SwitchOff()
{
switchedOn = false;
}
}
class Program
{
static void Main(string[] args)
{
TVSet myTV = new TVSet();
myTV.SwitchOn(); // включаємо телевізор, switchedOn = true;
myTV.SwitchOff(); // виключаємо телевізор, switchedOn = false;
}
}
Щоб викликати простий метод, перед його ім'ям, вказується ім'я об'єкта. Для виклику статичного методу необхідно вказувати ім'я класу.
Статичні методи, зазвичай, виконують якусь глобальну, загальну функцію, обробляють «зовнішні дані». Наприклад, сортування масиву, обробка рядка, зведення числа в ступінь і інше.
Приклад статичного методу, який обрізає рядок до вказаної довжини, і додає крапки:
class StringHelper
{
public static string TrimIt(string s, int max)
{
if (s == null)
return string.Empty;
if (s.Length <= max)
return s;
return s.Substring(0, max) + "...";
}
}
class Program
{
static void Main(string[] args)
{
string s ="Дуже довгий рядок, який необхідно обрізати до зазначеної довжини і додати три крапки";
Console.WriteLine(StringHelper.TrimIt(s, 20)); //"Дуже довгий рядок ..."
Console.ReadLine();
}
}
Статичний метод не має доступу до нестатичних полів класу:
class SomeClass
{
private int a;
private static int b;
public static void SomeMethod()
{
a=5; // помилка
b=10; // допустимо
}
}
A:integer;
Begin
Randomize;
A:=random(101);
WriteLn('Исходное число: ',A);
if A mod 2 = 0 then WriteLn('Число чётное, ',A/2)
else WriteLn('Число нечётное, ',A*A);
End.
Var
A:integer;
Begin
Write('Введите целое число: ');ReadLn(A);
if (A>15)and(A mod 10 = 6) then WriteLn(A*A,', весна')
else WriteLn(Sqrt(A),', осень')
End.
Var
A:integer;
Begin
Randomize;
A:=random(900)+100;
WriteLn('Исходное число: ',A);
if A mod 5 = 0 then WriteLn('Оно кратно пяти, ',A div 10)
else WriteLn('Оно не кратно пяти, ',A mod 100);
End.