Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lec_Inf_1k.doc
Скачиваний:
13
Добавлен:
23.04.2019
Размер:
386.05 Кб
Скачать

1.6.1. Антивирусные программы

Компьютерный вирус – это небольшая программа, которая может присоединять себя к другим программам и выполнять различные нежелательные действия на компьютере. Создают вирусы компьютерные хулиганы. Первые случаи появления вируса отмечены в 1987 году. В настоящее время известно более 5000 разновидностей вируса. Среди вирусов различают:

  1. файловые, инфицирующие программные файлы.

  2. Загрузочные, инфицирующие загрузочную область, системную на диске (область для размещения ОС).

  3. Файлово-загрузочные.

Основными путями проникновения вирусов в компьютер являются съемные диски и компьютерные сети. Для обнаружения и нейтрализации вирусов используются антивирусные программы, среди которых в настоящее время наиболее популярны: Aidstest; Dr.Web.

1.6.2. Программы – архиваторы

Создание запасных копий файлов является необходимой процедурой при работе на компьютере. Это нужно в целях подстраховки на случай повреждения рабочего экземпляра файла. Запасные копии обычно создаются с помощью программ-архиваторов, которые сжимают файлы и в результате позволяют сократить объем занимаемого ими дискового пространства. Используемые в архиваторов методы сжатия основаны на исключении из файлов избыточной информации. Различают поточную и символьную избыточность. В первом случае часто повторяются цепочки символов, во втором – отдельные символы. Суть алгоритмов сжатия состоит в перекодировании файлов при помощи специальных алгоритмов. При устранении поточной избыточности цепочки символов заменяются короткими указателями. При устранении символьной избыточности символы кодируются кодами переменной длины. При этом наиболее встречающиеся символы кодируются наиболее короткими кодами. В настоящее время наиболее часто применяются архиваторы ARJ, ZIP, RAR и др.

Тема 2. Основы программирования

2.1. ЭТАПЫ РАЗРАБОТКИ ПРОГРАММЫ

Программа – это логически упорядоченная последовательность команд и данных для компьютера, необходимая для решения им некоторой задачи. Процесс создания любой программы обычно разбивают на 6 этапов:

  1. Формализация задачи (описание задачи на языке математики). Например, исходная словесная постановка задачи: определить силу тока, протекающего через проводник. Формализованная математическая постановка задачи: I = U / R (закон Ома).

  2. Разработка структуры вход-выходных данных (данные могут быть представлены отдельными переменными и константами, массивами и файлами сложной структуры).

  3. Разработка машинно-ориентированного алгоритма решения задачи (алгоритма, удобного для решения данной задачи на ЭВМ).

  4. Запись текста программы на языке программирования.

  5. Трансляция и отладка (обнаружение и исправление ошибок) программы.

  6. Окончательная проверка программы на контрольном примере.

    1. . ЯЗЫК ОПИСАНИЯ АЛГОРИТМОВ. БЛОК-СХЕМА АЛГОРИТМА

Алгоритм – это последовательность операций, приводящая к решению задачи.

Существует несколько языков для описания алгоритмов. Один из них – язык блок-схем (граф-схем). Введем понятие графа.

Граф – это множество точек, соединенных отрезками линий. Точки называются вершинами графа, а отрезки линий – ребрами графа. Для изображения вершин допускается использование кружков или других геометрических фигур. Если ребра представлены стрелками, то граф называется ориентированным, иначе – неориентированным. Блок-схема алгоритма – это ориентированный граф, с каждой вершиной которого сопоставляется некоторое событие или действие в алгоритме. Для

изображения блок-схем алгоритмов будем использовать 4 типа вершин, каждый из которых отражает один из 4-х типов событий

1 )пуск / останов

2) ввод / вывод

3) процесс (вычислительный)

4) решение

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

2.3. ТИПЫ АЛГОРИТМОВ

Р азличаются алгоритмы линейные, разветвляющиеся и циклические.

2.3.1. Линейные алгоритмы

В линейном алгоритме отсутствуют разветвления и все операции выполняются однократно. Пример: выполнить функцию

y = [2 (x + 10) + 3 (x3 +5) ] / [4(x2 + 10) + 5(x3 + 5)]

Изобразим одну из возможных блок-схем алгоритма.

2.3.2. Разветвляющиеся алгоритмы

В разветвляющемся алгоритме имеются два или более направлений хода вычислений.

Пример: вычислить функцию

2.3.3. Циклические алгоритмы

В циклическом алгоритме некоторые операции выполняются многократно. Циклический алгоритм одновременно является и разветвляющимся. Пример: вычислить сумму из n слагаемых, если i-е по порядку слагаемое определяется выражением:

yi(x) = (x + i) / (i + 1), т.е.

y = (x +1) / 2 + (x + 2) / 3 + … + (x + n) / (n + 1)

Э ту сумму можно вычислить, предусмотрев в алгоритме для каждого слагаемого свой вычислительный блок типа "процесс". Однако при большом n этот путь чрезвычайно нерационален. А другой путь, основанный на том факте, что каждое слагаемое рассматриваемой суммы y рас-падается на n этапов, на каждом из которых выполняются одни и те же действия. При этом на i-м этапе вычисляется i-е по порядку слагаемое и сумма yi первых i слагаемых. Только эти действия для i-го слагаемого и i-й суммы дополненные операциями по изменению и проверке значения номера i и составляют содер-жание циклического алгоритма. При за-писи алгоритма опускаются индексы, отмечающие предыдущие и последую- щие значения y и i, то есть пишут: y = y + u и i = i + 1.

Переменную принято называть счетчиком или параметром цикла.

2.4. ЯЗЫКИ ПРОГРАММИРОВАНИЯ

Д ля представления алгоритма в виде понятном компьютеру, служат языки программирования, на одном из которых и должен быть записан алгоритм. В результате алгоритм превращается в компьютерную программу. Однако лишь единственный язык программирования понятен компьютеру без переводчика – это язык его машинных команд (кодов). Команды, как и любая другая информация в машине, представляются в виде двоичных кодов. Машинные коды – это двоичные коды, которыми кодируются команды ЭВМ. Эти коды содержат две части, в одной из которых размещается код операции, в другой – адреса операндов и результата. Приведем учебный пример

машинных кодов ЭВМ:

В современных ПЭВМ реали-зуется, как правило, порядка 200 различных команд. Прог-раммированию на языке ма-шинных кодов свойственны 2 недостатка: 1) высокая тру-доемкость программирования, 2) необходимость знания устройства ЭВМ.

Достоинством такого подхода к программированию является возможность получения наиболее компактных программ. В этом случае процесс общения человека с машиной можно представить рисунком:

Развитие языков программирования всегда осуществлялось и продолжает осуществляться в направлении исключения указанных недостатков. Первый шаг в этом направлении – это переход к языку ассемблера. Отличие ассемблера от языка машинных кодов заключается лишь в том, что двоичный код операции в ассемблере заменяется на ее символьное имя. В результате при записи в программе команды "сложение" при использовании ассемблера пишется ее имя "Add", а не код 0001. Однако при программировании на ассемблере программисту также необходимо знание устройства ЭВМ. Эти недостатки исчезают лишь при использовании так называемых языков высокого уровня. Примерами таких языков являются BASIC, C, Pascal и т.д. Эти языки гораздо более понятны человеку, нежели машинные коды, они не требуют знания устройства ЭВМ. Однако при использовании, как и в случае ассемблера, требуются спецпрограммы-переводчики с языка высокого уровня (ЯВУ) на язык машинных кодов. Эти программы называются трансляторами, а процесс перевода – трансляцией. В результате схема общения человека с ЭВМ приобретает следующий вид:

Трансляция

Существуют трансляторы 2-х типов: компиляторы и интерпретаторы. Компиляторы до использования программы переводят текст программы с ЯВУ на язык машинных команд целиком. Результат перевода – программа в машинных кодах – называется объектным модулем. Для ее исполнения в дальнейшем не нужен компилятор. Интерпретаторы переводят текст программы не целиком, а покомандно и не создают объектного модуля. Для исполнения программы в этом случае всегда нужен интерпретатор. Последнее свойство является явным недостатком. Однако отладка программы при использовании интерпретатора резко упрощается. Для некоторых языков разработаны как компиляторы, так и интерпретаторы. К числу таких языков относится QuickBasic. На практике вы будете работать с его усеченной по числу операторов версией QBASIC, для которого существует лишь интерпретатор. Для разработки и отладки программ на языках высокого уровня используются системы программирования, которые состоят из следующих компонентов:

  1. текстовый редактор для подготовки текста программы на ЯВУ

  2. транслятор для перевода исходного текста программы на язык машинных кодов

  3. средства для отладки программ.

Процесс отладки предназначен для обнаружения и исправления ошибок в программе и предполагает предварительную разработку проверочных исходных данных для программ – названных тестами.

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