История развития вычислительной техники

Автор работы: Пользователь скрыл имя, 20 Января 2012 в 23:42, курсовая работа

Описание

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

Работа состоит из  1 файл

История развития вычислительной техники.doc

— 309.00 Кб (Скачать документ)
 

  Средства, используемые  для записи алгоритмов, в значительной  степени определяются тем, для  кого предназначается алгоритм. Если для человека, то его запись  может быть не полностью формализирована. На первое место выдвигается понятность и наглядность записи алгоритма. Если алгоритм предназначен для исполнителя-автомата, необходима строгая формальная запись.  
  1. Словесная запись алгоритмов.  
  Пример: алгоритм Евклида для нахождения НОД двух натуральных чисел.  
      Шаг 1. Если числа равны, то взять первое в качестве ответа и остановиться, иначе перейти к 2.  
      Шаг 2. Определить большее из двух чисел.  
      Шаг 3. Заменить большее число разностью большего и меньшего чисел.  
      Шаг 4. Перейти к шагу 1.  
 
  Словесное описание алгоритма используется на первых этапах разработки алгоритма, т.к. словесная запись недостаточно формализована (это и плюс и минус).  
  2. Блок-схема алгоритмов.  
  Особенности блок-схем. Предписания алгоритма помещаются внутрь блоков, соединённых стрелками, показывающими очерёдность выполнения.  
   
  Приняты определённые стандарты графических изображений блоков (Гост 19.003-80) (стандарты есть и на документацию!)  
  Схемы обладают большей наглядностью, но занимают много места. Поэтому наглядность быстро теряется при записи больших алгоритмов.  
  3. Псевдокоды.  
  Псевдокод - это система обозначений и правил для записи алгоритмов. Он занимает промежуточное место между естественным и формальным языком. С одной стороны, не нужна строгость в синтаксисе, как в естественном языке, с другой стороны в псевдокоде используется математическая символика и управляющие конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке.  
  Пример записи алгоритма Евклида на псевдокоде.  
  Алгоритм Евклида:  
  начало  
    ввод k1, k2  
    пока k1 k2 повторять  
      если k1 > k2  
        то k1 := k1-k2  
        иначе k2 := k2-k1  
      всё  
    кц (* конец цикла пока *)  
  вывод k1  
  конец  
  4. Запись на алгоритмическом языке.  
  Этот способ и есть программирование. Такая запись предназначена для выполнения ЭВМ, точнее, программой - транслятором с данного языка программирования. Однако такая запись предназначена не только для машины, но и для человека - она должна легко читаться и содержать пояснения (комментарии), облегчающие её понимание.
 

Основные  алгоритмические  конструкции: псевдоязык, Бейсик, Паскаль. 

Базовые элементы алгоритма.

 

  Элементарной  структурной единицей любого  алгоритма является простая команда,  например, команда присваивания:  
      x := 1;  
      y := y+1;  
  Команды ввода-вывода  
      Ввод х;  
      Ввод y;  
  Из простых команд и проверок условий образуются более сложные конструкции. Среди них выделяются базовые конструкции: следование, ветвление, повторение и их модификации.  
  1. Следование. Эта конструкция образуется из последовательных блоков, следующих друг за другом, причём каждый блок может представлять собой или простую команду или любую более сложную конструкция базовых элементов.  
  Схема следования:  
   
  2. Ветвление.  
  С помощью ветвления осуществляется выполнение одного из двух возможных блоков в зависимости от результата проверки условия.  
  Схема ветвления:  
   
  Запись на псевдокоде:  
    Если <условие>  
      То <блок 1>  
      Иначе <блок 2>  
    Всё  
  Каждый блок может представлять собой любую конструкцию базовых элементов.  
  Команда ветвления может использоваться в сокращённом виде (неполное ветвление). На псевдокоде это выглядит так:  
   
  Пример. Составить на псевдокоде алгоритм вычисления функции:  
   
  Решение.  
    если x < 0  
      то y := x 2  
      иначе если x < 1  
        то y := x  
        иначе y := 1  
      всё  
    всё  
  (вложенные ветвления!)  
  3. Выбор.  
  Вложенные ветвления можно заменить одной конструкцией, которая называется выбор. На псевдокоде она записывается следующим образом:  
 
    выбор  
      при <условие 1>: <блок 1>  
      при <условие 2>: <блок 2>  
      ........  
      при <условие n>: <блок n>  
      иначе <блок n+1>  
    всё  
  Решим тот же пример с помощью выбора:  
 
    выбор  
      при x<0: y:=x2  
      при 0 x<0: y:=x  
      при x 1: y:=1  
    всё  
  Последнюю альтернативу можно заменить на иначе у:=1  
Условие можно упростить! Но так можно не думать о порядке альтернатив.  
  Конструкция "выбор" существует во всех современных алгоритмических языках, слегка отличается синтаксисом и семантикой. Стандартная семантика - выполняется только одна ветвь (альтернатива) выбора.  
  4. Повторение (цикл)  
  Для записи многократно повторяющихся команд используется специальная конструкция, называемая циклом. Цикл состоит из заголовка и тела цикла. Тело цикла - это повторяемые команды, а заголовок определяет, сколько раз будет повторено тело цикла.  
  а) Цикл "повторить"  
  повторить k раз - заголовок  
    <тело цикла> - повторить к раз  
  Kц -ограничитель (конец цикла)  
  б) Цикл "пока"  
     
  Порядок (семантика) работы цикла пока:  
    Шаг 1. Проверяем условие.  
    Шаг 2. Если условие истинно, то выполняем тело цикла, иначе переходим к шагу 4.  
    Шаг 3. Переходим к шагу 1.  
    Шаг 4. Продолжаем выполнение программы (команд, следующих за "Kц")  
  в) Цикл "до"  
     
  г) Цикл "для" (цикл с параметром)  
  для <параметр> от <начальное значение> до <конечное значение> шаг <значение>  
    выполнить  
      <тело цикла>  
    Kц  
  Шаг, равный 1, обычно не указывается.  
  Цикл с параметром существует во всех алгоритмических языках программирования, отличаясь несущественными особенностями.  
  Стандарт выполнения:  
   Шаг 1. Вычисляем начальное и конечное значение, присваиваем параметру начальное значение.  
   Шаг 2. Проверяем выполнение условия  
      При положительном шаге: параметр конечное значение  
      При отрицательном шаге: параметр конечное значение  
   Шаг 3. Если условие истинно, то выполняем тело цикла, иначе переходим к шагу 5.  
   Шаг 4. Изменяем параметр на величину шага и переходим к шагу 2.  
   Шаг 5. Продолжаем выполнение программы. (команд, следующих за Кц.  
  Пример. Вычислить сумму:  
     
  Решение:  
    сумма := 0  
    для k от 1 до n [шаг 1]  
    выполнить  
        сумма := сумма + xkyk  
    Кц  
  Решение можно записать любым из вариантов цикла, например, с помощью цикла "пока":  
    сумма := 0  
    k := 1  
    пока k n повторять  
        сумма := сумма + xkyk  
        k := k + 1  
    Кц  
  Пример. Вычислить (n двоек)  
  Решение:  
    ввод n  
    y := 0  
    повторить n раз  
       
    Кц  
    вывод y  
  Домашнее задание  
  Составить алгоритм решения задачи.  
  100 гномов едят одно яблоко весом 200 г. Каждый откусывает 1/100 того, что ему досталось и ещё 1 г. Найти вес огрызка.  
  Реализация циклов на паскале:  
  Цикл "повторить k раз" - моделируется циклом для  
  Цикл "пока" while <условие> do begin ... end;  
  Цикл "до" repeat ... until <условие выхода> ;  
  Цикл "для" for <параметр> := <начальное значение> to <конечное значение> do  
      begin ... end;  
  to - шаг = 1  
  downto - шаг = -1  
  Цикл "для" с произвольным шагом - моделируется циклом "пока"  
      параметр := начальное значение;  
      while параметр конечн.значен. do begin  
      <тело цикла>  
      параметр := параметр + шаг;  
      end;  
  Заметим, что в этом случае есть возможность влиять на конечное значение и шаг в теле цикла.
 

Информация о работе История развития вычислительной техники