1. Понятие информации. Виды информации. Роль информации в жи­вой природе и в жизни людей

Вид материалаДокументы

Содержание


1. Основные алгоритмические структуры: следование, ветвление, цикл; изображение на блок-схемах. Разбиение задачи на подзадачи. В
Алгоритмические конструкции
Основными алгоритмическими конструкциями
Язык блок-схем
Пример программы на языке программирования Pascal{программа вычисляет площадь прямоугольника}
Язык блок-схем
Пример программы на языке программирования Pascal
Блок-схема цикла с предусловием продолжения
Разработка алгоритмов методом последовательной детализации. Вспомогательные алгоритмы
1. Величины: константы, переменные, типы величин. Присваивание, ввод и вывод величин. Линейные алгоритмы работы с величинами.
Имена (идентификаторы) — употpебляются для обозначения объектов пpогpаммы
Массивы — последовательности однотипных элементов, число которых фиксировано и которым присвоено одно имя.
Выpажения — пpедназначаются для выполнения необходимых вычислений
Значения строковых (литерных) выражений — текcты
Линейная алгоритмическая структура
1. Логические величины, операции, выражения. Логические выражения в качестве условий в ветвящихся и циклических алгоритмах.
Пример: "Буква а - гласная".
Базовые логические операции
Подобный материал:
1   2   3   4   5   6   7



Билет 7

1. Основные алгоритмические структуры: следование, ветвление, цикл; изображение на блок-схемах. Разбиение задачи на подзадачи. Вспомогательные алгоритмы.


Алгоритмические конструкции

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

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

Линейная последовательность шагов

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

На рисунке изображена блок-схема линейного алгоритма, состоящего из двух шагов.

Язык блок-схем

Алгоритмический язык



нач


действие 1

действие 2
...................

кон


 

Пример программы на языке программирования Pascal
{программа вычисляет площадь прямоугольника}


Program ploshad;
var a,b,s:word;
begin
write('a=');
read (a);
write ('b=');
read (b);
s:=a*b;
writeln ('площадь прямоугольника', s);
end.


Ветвление

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

На рисунке приведена блок-схема ветвления

Язык блок-схем

Алгоритмический язык




если условие

то
действия 1
иначе
действия 2

все


Если условие истинно, то будет выполнено только действие1, в противном случае будет выполнено только действие2.

В языках программирования высокого уровня ветвление обычно реализуется с помощью оператора (команды) IF. (См. оператор If в Паскале, оператор If в языке Basic.)

Пример программы на языке программирования Pascal

{Программа, которая находит наибольшее из трех чисел}

Program maximal;
var a,b,c,d:word;
begin
write ('a,b,c'');
read (a,b,c);
if a>b then d:=a
else d:=b;
if c>d tnen d:=c then
writeln ('наибольшее',d);
end.


Цикл

Цикл представляет собой алгоритмическую конструкцию, в которой многократно выполняется одна и та же последовательность шагов, называемая телом цикла. Каждое однократное исполнение тела цикла называется итерацией. Если тело цикла было выполнено N раз, говорят, что было произведено N итераций.

Для того, чтобы определить момент прекращения выполнения тела цикла, используется условие цикла. Если при истинности условия цикл продолжается, то такое условие называется условием продолжения цикла. Иными словами, цикл продолжается, пока условие цикла истинно.

Если при истинности условия цикл завершается, то такое условие называется условием завершения цикла. В этом случае цикл продолжается до тех пор, пока условие цикла не станет истинным.

Различают циклы с проверкой условия перед выполнением очередной итерации и циклы с проверкой условия после выполнения очередной итерации. Первые называются циклами с предусловием, вторые – с постусловием.





Блок-схема цикла с предусловием продолжения

Блок-схема цикла с постусловием завершения

Тело цикла с постусловием всегда выполнится хотя бы один раз.





Цикл типа Пока

 

Цикл типа Для

 

нц пока условие
тело цикла (последовательность действий)
кц

нц для i от i1 до i2
тело цикла (последовательность действий)
кц


В языках программирования высокого уровня существуют различные операторы циклов (см. циклы в Паскале, циклы в Basic), в том числе реализующие циклы с заранее заданным количеством итераций, так называемые циклы со счетчиком.

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

Разработка алгоритмов методом последовательной детализации. Вспомогательные алгоритмы

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

Процесс построения алгоритма методом последовательной детализации состоит в следующем. Сначала алгоритм формулируется в «крупных» блоках (командах), которые могут быть непонятны исполнителю (не входят в его систему команд) и залисываются как вызовы вспомогательных алгоритмов. Затем происходит детализация, и все вспомогательные алгоритмы подробно расписываются с использованием команд, понятных исполнителю.

Рассмотрим процесс создания алгоритма Домик для исполнителя Чертежник методом последовательной детализации. Пусть необходимо нарисовать домик с крышей.

Сначала запишем алгоритм, состоящий из крупных блоков. Такими блоками, содержащими «непонятные» для исполнителя Чертежник команды, являются блоки стена, крыша. Теперь детализируем эти блоки и запишем их в виде вспомогательных алгоритмов, содержащих понятные Чертежнику команды.



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

Билет 8

  1. Величины: константы, переменные, типы величин. Присваивание, ввод и вывод величин. Линейные алгоритмы работы с величинами.



Каждое понятие алгоритмического языка подразумевает некоторую синтаксическую единицу (конструкцию) и определяемые ею свойства программных объектов или процесса обработки данных.

Понятие языка определяется во взаимодействии синтаксических и семантических правил. Синтаксические правила показывают, как образуется данное понятие из других понятий и букв алфавита, а семантические правила определяют свойства данного понятия.

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

Имена (идентификаторы) — употpебляются для обозначения объектов пpогpаммы (пеpеменных, массивов, функций и дp.).

Опеpации . Типы операций:
  • аpифметические опеpации + , - , * , / и дp. ;
  • логические опеpации и, или, не ;
  • опеpации отношения < , > , <=, >= , = , <> ;
  • опеpация сцепки (иначе, "присоединения", "конкатенации") символьных значений дpуг с другом с образованием одной длинной строки; изображается знаком "+".

Данные величины, обpабатываемые пpогpаммой . Имеется тpи основных вида данных: константы, пеpеменные и массивы .
  • Константы — это данные, которые зафиксированы в тексте программы и не изменяются в процессе ее выполнения.

Пpимеpы констант:
    • числовые 7.5, 12;
    • логические да (истина) , нет (ложь);
    • символьные "А", "+";
    • литеpные "abcde", "информатика", "" (пустая строка).


  • Пеpеменные обозначаются именами и могут изменять свои значения в ходе выполнения пpогpаммы. Пеpеменные бывают целые, вещественные, логические, символьные и литерные .
  • Массивы — последовательности однотипных элементов, число которых фиксировано и которым присвоено одно имя. Положение элемента в массиве однозначно определяется его индексами (одним, в случае одномерного массива, или несколькими, если массив многомерный). Иногда массивы называют таблицами.

Выpажения — пpедназначаются для выполнения необходимых вычислений , состоят из констант, пеpеменных, указателей функций (напpимеp, exp(x)), объединенных знаками опеpаций.

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

Различают выражения арифметические, логические и строковые.
  • Арифметические выражения служат для определения одного числового значения . Например, (1+sin(x))/2. Значение этого выражения при x=0 равно 0.5, а при x=p/2 - единице.
  • Логические выражения описывают некоторые условия, которые могут удовлетворяться или не удовлетворяться . Таким образом, логическое выражение может принимать только два значения — "истина" или " ложь" ( да или нет ). Рассмотрим в качестве примера логическое выражение x*x + y*y < r*r , определяющее принадлежность точки с координатами (x,y) внутренней области круга радиусом r c центром в начале координат. При x=1, y=1, r=2 значение этого выражения — "истина" , а при x=2, y=2, r=1 — "ложь" .
  • Значения строковых (литерных) выражений — текcты . В них могут входить литерные константы, литерные переменные и литерные функции, разделенные знаком операции сцепки. Например, А + В означает присоединение строки В к концу строки А. Если А = "куст " , а В = "зеленый", то значение выражения А+В есть " куст зеленый" .

Операторы (команды). Оператор — это наиболее крупное и содержательное понятие языка: каждый оператор представляет собой законченную фразу языка и определяет некоторый вполне законченный этап обработки данных. В состав опеpатоpов входят:
  • ключевые слова;
  • данные;
  • выpажения и т.д.

Операторы подpазделяются на исполняемые и неисполняемые. Неисполняемые опеpатоpы пpедназначены для описания данных и стpуктуpы пpогpаммы, а исполняемые — для выполнения pазличных действий (напpимеp, опеpатоp пpисваивания, опеpатоpы ввода и вывода, условный оператор, операторы цикла, оператор процедуры и дp.).

Линейная алгоритмическая структура

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

Языки программирования - искусственные языки. От естественных они отличаются ограниченным числом "слов", значение которых понятно транслятору, и очень строгими правилами записи команд (операторов).

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

Программа имеет линейную структуру, если все операторы (команды) выполняются последовательно друг за другом.





Пример: программа, складывающая два числа

Program summa;
var a, b, c: integer;
begin
write ('a'); readln (a);
write ('b'); readln (b);
c: = a + b;
writeln ('Результат:', c);
end.

Присваивание

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

Для задания значения переменной служит оператор присваивания . Он записывается так:
(относительно языка Pascal)
переменная:=значение (или просто: переменная:=значение)
Пример:
a:=16
chislo: = 15


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

Билет 9

  1. Логические величины, операции, выражения. Логические выражения в качестве условий в ветвящихся и циклических алгоритмах.



Логика - это наука о формах и способах мышления.

Основоположником формальной логики является Аристотель, который впервые отделил логические формы мышления от его содержания.

Мышление всегда осуществляется в каких-то формах. Выделяют три основные: поняти, высказывание и умозаключение.

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

По поводу высказывание можно сказать, истинно оно или ложно. Истинным будет высказывание, в котором связь понятий правильно отражает свойства отношения реальных вещей. Ложным высказывание будет, если оно противоречит реальной действительности.

Пример: "Буква а - гласная". (это истинное высказвание).

Алгебра логики

Алгебра - это наука об общих операциях, аналогичных сложению и умножению, которые выполняются не только над числами, на и над другими математическими объектами, в том числе и над высказываниями. Такая алгебра называется алгеброй логики. Алгебра логики отвлекается от смысловой содержательности высказываний и принимает во внимание только истинность или ложность высказывания.

Логическая переменная - это простое высказывание, содержащее только одну мысль. Ее символическое обозначание - латинская буква (например, A, B,C,F). Значением логическое меременной могут быть только констансты ИСТИНА (1) и ЛОЖЬ (0).

Составное высказывание - логическая функция, которая содержит несколько простых мыслей, соединенных между собой с помощью логических операций. Ее символическое обозначение - F.

На основании простых высказываний могут быть построены составные высказывания.

Логические операции - логические действие.

Базовые логические операции:

1. Логическое умножение (конъюнкция)

(соответсвует союз "И")

Составное высказывание, образованное в результате операции логического умножения (конъюнкции), истинно тогда и только тогда, когда истинны все входящие в него простые высказывания.

А

В

F = A /\ B

0

0

0

0

1

0

1

0

0

1

1

1

2. Логическое сложение (дизъюнкция)

(соответсвует союз "ИЛИ")

Составное высказывание, образованное в результате операции логического сложения (дизъюнкции), истинно тогда, когда истинно хотя бы одно из входящих в него простых высказываний.

А

В

F = A \/ B

0

0

0

0

1

1

1

0

1

1

1

1

3. Логическое отрицание (инверсия)

(соответсвует частица "НЕ")

Логическое отрицание (инверсия) делает истинное высказывание ложным и, наоборот, ложное – истинным .

А

F = A

0

1

1

0

Логические выражения в алгоритмах

Логическое выражение при выполнении алгоритма принимает одно из двух знаничений:"истина" или "ложь". В логических выражниях действией (операцией) является сравнение (отношение).

Существуют следующие операции сравнения:

знак

операция

=

равно

<>

не равно

>

больше

<

меньше

>=

больше или равно

<=

меньше или равно