Тема урока: Методы решения задач по теме «Системы счисления» в различных средах.
Цели урока:
образовательные: повторение и закрепление алгоритмов перевода чисел из различных систем счисления, использование различных программных средств для решения поставленной задачи;
развивающие: способствовать развитию логики мышления, формированию информационной культуры и познавательного потенциала;
воспитательные: эстетическое воспитание, воспитание аккуратности, самостоятельности.
Методические приемы.
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 г.


