velikol.ru
1



Липецкий государственный педагогический университет


Кафедра информатики


Отчет о лабораторной работе №_1


Проверил _________________________________ Чабоненко А. А.

Сдал _________________________________


Г. Липецк 2007.


1. Задание

Найти все натуральные числа не превосходящие заданного m, двоичная запись которых представляет собой симметричную последовательность 0 и 1 (нач. с 1). Показать десятичную и двоичную запись этих чисел.


2. Математическая модель

Перевод чисел из одной СС в другую сводится к определению множителей разложения этого числа по степеням основания q

N=(ak ak-1… a1 a0)p = (bn bn-1 b1 b0)q

Чтобы перевести целую часть числа n записанную в системе с. с основанием p в с. с. с основанием q. Необходимо разделить n на основание q записанное в системе счисления p. Остаток от деления даст младший разряд искомой записи (b0). Далее полученное частное вновь делится на основание q, а остаток даст последующий разряд искомой записи (b1) Последовательное деление частных продолжается до тех пор пака оно не станет меньше q. Оно и принимается за старший разряд искомой записи в новой с. с.


^ 3.1 Описание исходных данных

Исходным данным является число m в десятичной с.с. до которого будет осуществлен поиск симметричных чисел в двоичной с.с.


^ 3.2 Описание выходных данных

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


3.3 Описание блок-схемы

1) Вводим m- число в десятичной с.с. до которого будет осуществлен поиск симметричных чисел в двоичной с.с.

2) Создаем цикл в котором в котором будут проверяться числа от 1 до заданного m.

3) Находим последние цифры числа и записываем их в строковую переменную в правильной и обратной последовательности

4) Сравниваем: если число и его обратная запись равны, то выводим десятичную и двоичную запись числа.

5) Обнуляем строковые переменные.


^ Блок-схема нахождения чисел двоичная запись которых представляет симметричную последовательность.





4. Текст программы на языке Qbasic

CLS

^ PRINT "ЧИСЛА. ДВОИЧНАЯ ЗАПИСЬ КОТОРЫХ ПРЕДСТАВЛЯЕТ”

PRINT” СИММЕТРИЧНУЮ ПОСЛЕДОВАТЕЛЬНОСТЬ"

INPUT "Введите максимальное число до которого будет произведен поиск"; n

PRINT "Десятичная запись Двоичная запись"

FOR i = 1 TO n

k = i

WHILE k > 0

c = kmod2

k = k \ 2

c$ = (STR$(c)) + c$

c1$ = c1$ + (STR$(c))

WEND

IF c$ = c1$ THEN PRINT i, , c$

c$ = "": c1$ = ""

NEXT i

END


5. Литература

1) Могилев А. В. Информатика: учебное пособие для учащихся педагогических вузов / А. В. Могилев, Н. И. Пак, Е. К. Хеннер. М.: изд. Центр «Академия», 2001-816 с.

2) Бобровский С. И. Программирование на языке Qbasic для школьников и студентов / С. И. Бобровский. М.: «Инфорком-пресс», 1999-207 с.

3) Симонович С. В. Практическая информатика: учебное пособие для средней школы / С. В. Симонович, Г. А. Евсеев. М.: АСТпресс 2002- 480с