вторник, 17 марта 2015 г.

Примеры задач.

1.Представьте с помощью блок-схемы алгоритм решения следующей задачи: "Из трех монет одинакового достоинства одна фальшивая (более легкая). Как ее найти с помощью одного взвешивания на чашечных весах без гирь?".

 

2.Составить блок-схем поиска Золушка



.

понедельник, 16 марта 2015 г.

Теория.

Существует 3 типа основных алгоритмических структур:
  • следование;
  • развилка;
  • цикл.  
Следование
Следование представляет собой последовательное выполнение операций и представляется алгоритмически последовательностью блоков "Процесс" :

Развилка
Развилка, в свою очередь, делится на
  • неполную развилку;
  • полную развилку;
  • ветвление.
Развилка представляет собой блок выбора (проверка условия).
Неполная развилка выполняет последовательность операций только по одной из веток.
Реализация неполной развилки в Си имеет вид:
if(условие) {
  операции;
}

Полная развилка выполняет последовательность операций по каждой из двух веток (при выполнении или невыполнении условия):

Реализация полной развилки в Си имеет вид:
if(условие) {
  операции блока 1;
} else {
  операции блока 2;
}

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

Реализация ветвления в Си имеет вид:
switch(выражение) {
  case 1:
    блок операций 1;
    break;
  case 2:
    блок операций 2;
    break;
  ...
  case n:
    блок операций n;
    break;
  default:
    блок операций по умолчанию;
}

Цикл
Цикл также делится на 3 типа
  • цикл с предусловием;
  • цикл с постусловием;
  • параметрический цикл.
Цикл с предусловием осуществляет проверку условия перед началом своего выполнения. В случае если условие не выполняется, происходит выход из цикла. Цикл с предусловием может не выполниться ни одного раза.

Реализация цикла с предусловием на Си:
while(условие) {
  операции;
}

Цикл с постусловием всегда выполняется хотя бы один раз, поскольку проверка условия осуществляется после выполнения операций цикла.
Реализация на Си цикла с постусловием:
do {
  операции;
} while(словие);

Параметрический цикл - это цикл с заданным числом повторений.
Реализация параметрического цикла на Си (НЗ - начальное значение, КЗ - конечное значение:
for(параметр = НЗ; параметр != КЗ; параметр += шаг) {
   операции;
}