top of page

Формулы в Информатике

Оттолкнемся от одной из главных формул информатики – формулы Хартли N=2^i. При ее использовании учащиеся могут еще не знать понятия логарифма, достаточно вначале иметь перед глазами, а затем запомнить таблицу степеней числа 2 хотя бы по 10-й степени.

При этом формула может применяться в решении задач разного типа, если правильно определить систему обозначений.

Выделим в системе задач на количество информации задачи следующих типов:

  1. A. Количество информации при вероятностном подходе;

  2. B. Кодирование положений;

  3. C. Количество информации при алфавитном подходе (кодирование текста);

  4. D. Кодирование графической информации;

  5. E. Кодирование звуковой информации

Все задачи группы A (в случае, если мы имеем дело с равновероятными событиями) решаются непосредственно по формуле Хартли с ее привычными обозначениями:

  • N – количество равновероятных событий;

  • i – количество бит в сообщении о том, что событие произошло,

Причем в задаче может быть определена любая из переменных с заданием найти вторую. В случае если число N не является непосредственно числом, представляющим ту или иную степень числа 2, количество бит нам необходимо определить «с запасом». Так для гарантированного угадывания числа в диапазоне от 1 до 100 необходимо задать минимально 7 вопросов (27=128).

Решение задач для случаев неравновероятных событий в этой статье не рассматривается.

Для решения задач групп B-E дополнительно введем еще одну формулу:

Q=k*i

и определим систему обозначений для задач разного типа.

Для задач группы B значение переменных в формуле Хартли таково:

  • i – количество «двоичных элементов», используемых для кодирования;

  • N – количество положений, которые можно закодировать посредством этих элементов;

  • k – количество знаков в сообщении;

  • Q – количество информации в сообщении (информационный «вес», «объем» сообщения), количество памяти, отведенное для хранения закодированной информации,

Так:

  • два флажка позволяют передать 4 различных сообщения;

  • с помощью трех лампочек можно потенциально закодировать 8 различных сигналов;

  • последовательность из 8 импульсов и пауз при передаче информации посредством электрического тока позволяет закодировать 256 различных текстовых знаков;

и т.п.

Как научиться решать логические задачи?

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

Перед Вами будет поставлены следующие задачи:

      • Познакомиться с основными способами решения логических задач;

      • На примерах конкретных задач выяснить: Какие методы более эффективные?

      • Подготовить презентацию к докладу на тему: Как я решаю логические задачи?

      • Подготовить подборку наиболее интересных задач для стенной газеты в раздел «Конкурс».

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

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

      • Метод рассуждений;

      • Метод таблиц;

      • Метод графов;

      • Метод блок-схем;

      • Метод бильярда;

      • Метод кругов Эйлера.

Как написать программу в Паскале?

Составить программу решения следующей задачи.
Саша спросил Сережу: "Сколько тебе лет?" Сережа ответил:
"Если бы число моих лет увеличить в 3 раза, а потом уменьшить на 17, то мне было бы 16 лет". Сколько лет Сереже?

Обычно решение такого типа задач начинается с "конца".
Число лет, которое было бы Сереже, т. е. 16, увеличиваем на 17, получаем 
Полученный результат уменьшаем в 3 раза, т.е. делим на  получаем 11.
Итак, Сереже было 11 лет.

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

Program Serg;
   var a, b, c: integer;
begin
write("Ведите число лет, которое было бы Сереже ");

readln(a);
b := a + 17;
c := b div 3;
writeln("Сереже было ", c, " лет");
end.

 

Составим несколько правил для создание программ в Паскале:

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

-точка с запятой является обязательным разделительным знаком в языке Паскаль;

-слово var - это сокращение от слова variable (переменная),указываются все переменные;

- слово begin (начать), которым начинается новый раздел программы - раздел операторов;

-программа заканчивается служебным словом end, после которого стоит точка.

 

КОНСТРУКЦИЯ ПРОГРАММЫ на языке 
ПАСКАЛЬ

1.Program <имя>;

2.РАЗДЕЛ ОПИСАНИЙ
В нем описываются имена переменных и их типы.

3.Begin

4.РАЗДЕЛ ОПЕРАТОРОВ
Ввод данных, последовательность команд, вывод результатов.

5.end.

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

Как решать задачи с циклами?

1. Цикл с параметром в Паскале - FOR

Цикл FOR задаёт определённое условие по которому программа будет работать до его выполнения, допустим нужно нам 5 (или n) раз зациклить программу, то это легко сделать с помощью данного цикла. У цикла FOR есть характерная черта - счетчик который обычно обозначается буквой i или j

 

Внешний вид цикла с параметром в паскале:
for i:= 1 to n do // присваиваем i сначала одному, потом двум, трем, ..., n

После 1-го прохода переменной i присваиваем 1, после второго присваиваем 2 и так до тех пор, пока не дойдем до n. to - это до .. в порядке возрастания, также есть downto - до .. в порядке убывания.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Цикл с предусловием в Паскале - WHILE

 

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

Структура цикла с предусловием:
- логическое выражение, истинность которого проверяется вначале выполнения циклического оператора;

- любые выполняемые операторы языка.

Порядок выполнения цикла:
Пока условие истинно выполняется тело цикла. Как только условие становится ложно выполнение цикла прекращается.

 

 

 

 

 

 

 

 

 

 

 

 

 

3. Цикл с постусловием - Repeat - until

 

 Этот оператор аналогичен оператору цикла с предусловием, но отличается от него тем, что проверка условия производится после выполнения тела (действий) цикла. Это обеспечивает его выполнение хотя бы один раз в отличие от ранее разобранных циклов.
 Обратите внимание на то, что данный оператор цикла предполагает наличие нескольких операторов в теле цикла, то есть можно выполнять несколько действий, поэтому служебные слова Begin и End не нужны.
 Последовательность операторов, входящих в тело цикла выполняется один раз, после чего проверяется соблюдение условия, записанного следом за служебным словом Until. Если условие не соблюдается, цикл завершается. В противном случае - тело цикла повторяется ещё раз, после чего снова проверяется соблюдение условия.

 

 

 

 

 

 

 

 

 

 

 

Как решать задачи с ветвлением?

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

Формат записи оператора If имеет 2 формы: неполную (If..Then) и полную (If..Then..Else).

Формат полного оператора ветвления следующий:

 

if <логическое выражение> then <оператор1>
else <оператор2>

Здесь if - "если", then - "то", else - "иначе".

Как перевести число из двоичной системы в восьмеричную и шестнадцатеричную?

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

1. Разбить двоичное число справа налево на группы по 2 (для четвертичной СС), 3 (для восьмеричной СС) или 4 (для шестнадцатеричной СС) цифры. Если слева не будет хватать цифр для полной группы, нужно дописать необходимое количество незначащих нулей.

2. Заменить каждую группу цифр на ее аналог в соответствующей системе счисления.

 

ПРИМЕР 1:

Перевести число 111100110 из двоичной системы в четвертичную.

РЕШЕНИЕ: Разбиваем число на группы по 2 цифры справа налево и заменяем каждую группу на аналог в четвертичной системе счисления из таблицы: 111100110 (2СС) = 01 11 10 01 10 = 13212 (4СС)

 

ПРИМЕР 2:

Перевести число 111100110 из двоичной системы в восьмеричную.

РЕШЕНИЕ: Разбиваем число на группы по 3 цифры справа налево и заменяем каждую группу на аналог в восьмеричной системе счисления из таблицы: 111100110 (2СС) = 111 100 110 = 746 (8СС)

ПРИМЕР 3:

Перевести число 111100110 из двоичной системы в шестнадцатеричную.

РЕШЕНИЕ: Разбиваем число на группы по 4 цифры справа налево и заменяем каждую группу на аналог в шестнадцатеричной системе счисления из таблицы: 111100110 (2СС) = 0001 1110 0110 = 1E6 (16СС)

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

1. Заменить каждую цифру на двоичный аналог, состоящий из 2 (для четвертичной), 3 (для восьмеричной) или 4 (для шестнадцатеричной) цифр. Если нужно, число дополняется нулями слева.

2. Вычеркнуть из числа незначащие нули.
 

ПРИМЕР 4:

Перевести число 120323 из четвертичной системы в двоичную.

РЕШЕНИЕ: Выполняем замену каждой цифры на группу из 2 цифр в двоичной системе счисления: 120323 (4СС) = 01 10 00 11 10 11 = 11000111011 (2СС)

 

ПРИМЕР 5:

Перевести число 26475030 из восьмеричной системы в двоичную.

РЕШЕНИЕ: Выполняем замену каждой цифры на группу из 3 цифр в двоичной системе счисления: 26475030 (8СС) = 010 110 100 111 101 000 011 000 = 10110100111101000011000 (2СС)

 

ПРИМЕР 6: Перевести число 2AC0F74 из шестнадцатеричной системы в двоичную.

РЕШЕНИЕ: Выполняем замену каждой цифры на группу из 4 цифр в двоичной системе счисления: 2AC0F74 (16СС) = 0010 1010 1100 0000 1111 0111 0100 = 10101011000000111101110100 (2СС)



 

bottom of page