Общие понятия

Алгоритм, исполнитель, переменная

 «Алгоритм – точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату» - по ГОСТу. Алгоритм – последовательность действий, которую ИСПОЛНИТЕЛЬ должен выполнить, чтобы решить задачу. Исполнитель глуп, туп и бестолков. Он умеет выполнять только небольшое количество действий (например, складывать, вычитать, умножать, делить). Но он всегда выполняет одно и то же действие одинаково. Поэтому, при составлении  алгоритма нужно учитывать глупость (простоту) исполнителя, т.е. действия, из которых составляется алгоритм, должны принадлежать множеству действий, которые умеет выполнять исполнитель.  Вообще говоря, можно составлять А. для  некого виртуального И. Тогда при кодировании – переводе алгоритма на язык Исполнителя, придется учитывать и его особенности.

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

 

Примеры  алгоритмов

1. Порядок нахождения корней квадратного уравнения

                1. дискриминант

                2. если =0 - корень 1, если >0 - 2 корня по конкретной формуле

2. Есть болото с кочками. Надо перейти с 1-го края на другой. Алгоритм – перечисление тех кочек, на

которые надо перепрыгивать.

                В каждый конкретный момент человек находится на какой-нибудь кочке.

                И всегда известен путь по кочкам, выполнив который, можно попасть

                на эту конкретную кочку.

3. Шахматы - классический пример алгоритмов.

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

 

Свойства алгоритма:

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

2. Понятность. Алгоритм должен быть понятен исполнителю, и исполнитель должен быть в состоянии выполнить его команды. Следовательно, алгоритм нужно разрабатывать с ориентацией на определенного исполнителя, то есть в алгоритм можно включать команды только из системы команд данного исполнителя.

3. Детерминированность. Будучи понятным, алгоритм не должен содержать команды, смысл которых может восприниматься неоднозначно. (Например, робот будет поставлен в тупик командой "Взять две-три ложки песка": что значит "две-три"?). Кроме того, недопустимы ситуации, когда после выполнения очередной команды исполнителю не ясно, какую команду выполнять на следующем шаге. Нарушение составителем алгоритма этих требований приводит к тому, что одна и та же команда после выполнения разными исполнителями дает неодинаковый результат.

4. Результативность. Смысл этого обязательного требования к алгоритмам состоит в том, что при точном исполнении всех команд алгоритма процесс решения задачи должен прекратиться за конечное число шагов и при этом должен быть получен определенный постановкой задачи ответ.

5. Массовость. Разработка алгоритмов — процесс интересный, творческий, но непростой, требующий многих, часто коллективных, умственных усилий и затрат времени. Поэтому предпочтительно разрабатывать алгоритмы, обеспечивающие решение всего класса задач данного типа. Например, если составляется алгоритм решения квадратного уравнения АХ2 + ВХ+ С= 0, он должен быть вариативен, то есть обеспечивать возможность решения для любых допустимых исходных значений коэффициентов А, В. С. Про такой алгоритм говорят, что он удовлетворяет требованию массовости.

 

Типы Алгоритмов – линейный, с ветвлением, циклический.

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

Ветвление – выбор одного из нескольких возможных направлений продолжения алгоритма в зависимости от условия.

4 вида ветвления:

В первых 3-х ветвлениях для записи условия используется логическое выражение.

Цикл – многократное выполнение некоторой совокупности действий. Несколько типов циклов – цикл с параметром, цикл с предусловием и цикл с постусловием.

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

 

 

 

Этапы решения задач на ЭВМ

 

«Все правила существуют для того, чтобы их нарушать»

Аксиомы – препод может ошибаться, книга может ошибаться, но чаще всего ошибаешься ты сам.

Не всегда самый короткий путь – самый быстрый, и наоборот.

 

1.      Первое – определить задачу, формализовать ее. Определить, какие действия необходимы для ее решения, какие данные должны быть известны, что мы хотим получить. Разбиение задачи на максимально более мелкие подзадачи.

2.      Затем – алгоритмизация – подробное расписывание порядка действий для решения этой задачи – опять - же максимально мелких. Собственно, на этом этапе кончается искусство программиста, инженера и т.д. Далее работа кодировщика.

3.      Перевод на язык программирования. Оптимизация кода.

4.      Трансляция и исправление ошибок при кодировке.

5.      Прогон – результаты программисту или постановщику задачи .

6.      Отладка – возврат к пунктам 2,3,4,5, редко – к 1.

7.      Решение задачи – месяцы расчетов – анализ удобства программы, возможен возврат ко всем предыдущим пунктам.

8.      анализ результатов расчетов – возврат.

9.      выводы, документирование, комментирование причесывание и т.д.

При разработке программ с интерфейсом работа делится на две задачи – собственно задача и разработка интерфейса. Это уже из области искусства.

Составив алгоритм – поработай машиной – пройди по всем этапам и представь, что ЭВМ сможет сделать по твоему алгоритму. Аналогично и с программой.

 

Операционная система

Основные функции операционной системы:

  1. Обмен данными между компьютером и различными периферийными устройствами (терминалами, принтерами, гибкими дисками, жесткими дисками и т.д.). Такой обмен данными называется "ввод/вывод данных".
  2. Обеспечение системы организации и хранения файлов.
  3. Загрузка программ в память и обеспечение их выполнения.
  4. Организация диалога с пользователем.

 

 

Состав операционной системы.

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

 

Повторение

ЭВМ - и упрощение и усложнение (появилась новая профессия - программист),

Алгоритм – точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату» - по ГОСТу

Способы записи: словесный, математическими формулами, линейными схемами, блок-схемой, псевдокодом (программа).

Любой алгоритм может быть записан с помощью трех базовых структур:

Блок операций – один или несколько простых или сложных операторов. Может содержать внутри себя другие структуры.

Ветвление – выбор одного из нескольких возможных направлений продолжения алгоритма в зависимости от условия.

4 вида:

В первых 3-х случаях для записи условия используется логическое выражение.

НА ГЛАВНУЮ ДАЛЕЕ
Hosted by uCoz