Тема урока: Методы решения задач по теме «Системы счисления» в различных средах.

Цели урока:

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

развивающие: способствовать развитию логики мышления, формированию информационной культуры и познавательного потенциала;

воспитательные: эстетическое воспитание, воспитание аккуратности, самостоятельности.

Методические приемы.

1.  Фронтальная работа учителя с классом;

2.  Самостоятельная работа учащихся.

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

План занятия.

I. Ответить на вопросы:

1). Дать определение позиционной системы счисления.

2). Базис, алфавит, основание системы счисления.

3). Представление чисел в Р-ичных системах счисления.

4). Алгоритмы перевода чисел в позиционных системах счисления.

5). Использование схемы Горнера для вычислений.

II. Решение задач.

1. Задача. Написать программу перевода действительных чисел, с конечной дробной частью (количество чисел в ней не больше 6) из 16-ичной системы счисления в десятичную. Переводимое число вводится с клавиатуры. Вычисления производить с точностью до 4 десятичных цифр после запятой.

Обсуждение и выбор метода решения задачи. Разработка алгоритма.

Алгоритм решения задачи.

НЕ нашли? Не то? Что вы ищете?

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

Function CharToInt (s: char; P: integer): integer;

Var

T: integer:

Begin

case UpCase (s) of

‘0’..’9’ : T:=ord(s) – ord(‘0’);

‘A’..’F’ : T:=ord(s) – ord(‘A’) +10;

else

Writeln(s,’- не цифра’);

If T<P then CharToInt:=T

else

Writeln(s,’-неверная цифра’);

end;

Схема Горнера позволяет вычислить значение p-ичного числа по записи в развернутой форме с использованием минимального числа арифметических операций (сложение и умножение).

2. На доске выписать необходимые операторы, процедуры и функции для написания программы.

§  Вспомним стандартные процедуры и функции:

Ord(X): longint - функция преобразования, возвращает порядковый номер, соответствующий значению X.

Str(X, S) – строковая процедура, которая преобразует численное значение X в его строковое представление S.

Delete(S, N,K) - строковая процедура, которая удаляет K символов из строки S, начиная с позиции N, где K, N: integer.

§  Составить тестовые задания.

3. Учащиеся самостоятельно работают в среде программирования Турбо-Паскаль 7.0.

Один из вариантов реализации алгоритма на языке программирования:

Program Zadacha;

Var

Sym: char;

St: string;

P, X, Z, Y: longint;

T: integer;

Begin

Write ('основание системы'); Readln (P);

Write ('введите число');

X:=0; {целая часть результата}

Read (Sym);

While not (Sym=',') do

{ пока не закончиться целая часть, подсчитаем десятичное число по схеме Горнера}

begin

case Sym of

'0'..'9': T:= ord(Sym) - ord('0');

'A'..'Z': T:= ord(Sym) - ord('A') +10;

end;

X:= X*P + T;

Read (Sym);

end;

Z:=0; Y:=1;

While not eoln do { пока не закончиться входная строка}

begin

Read (Sym);

Y:=Y*P;

case Sym of

'0'..'9': T:= ord(Sym) - ord('0');

'A'..'F': T:= ord(Sym) - ord('A') +10;

end;

Z:= Z*P + T;

end;

Readln;

Str (Z/Y:8:4, St);

Delete (St, 1, 2);

Writeln( X, ',', St);

Readln ;

end.

4. Подведение итогов и анализ работы по решению задачи программирования.

5. Задача. Перевести целое число из десятичной системы счисления в P-ичной систему счисления. Основание системы P ( 1<P<16) и само число вводятся с клавиатуры.

6. Обсуждение и выбор метода решения задачи. Разработка алгоритма.

Алгоритм решения задачи.

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

В ячейку В3 вводим число, которое надо перевести, в ячейку Н3 основание системы счисления Р<16

В ячейку А6 запишем формулу = ЦЕЛОЕ (В3/$Н$4), в столбце В получаем остаток от деления исходного числа на Р. Для получения Р-ичной записи числа надо выписать все цифры, получаемые в столбце В снизу вверх. Чтобы этот процесс автоматизировать и сразу получить искомое значение, в столбце С на каждом шаге будем получать очередную степень 10, в столбце D - результат умножения степени на соответствующее число из столбца В. Затем сложим полученные значения в столбце D., используя стандартную функцию суммирования.

Если в последней ячейке столбца А получился 0, то это последняя операция по переводу исходного числа.

7. Учащиеся самостоятельно работают в электронных таблицах Excel


Данный способ создания таблицы для перевода из десятичной системы в Р-ичную с помощью электронной таблицы демонстрирует наглядный пошаговый метод.

8. Подведение итогов и анализ работы по решению задачи с помощью электронных таблиц.

III. Вывод.

Литература.

1.  Угринович Информатика и информационные технологии

2.  Е. Андреева, И. Фалина « Системы счисления и компьютерная арифметика», Москва, «Лаборатория базовых знаний», 1999 г.

3.  С. Молчанова « Основы программирования Турбо-Паскаль 7.0» Москва, «Аквариум», 1999 г.