Рефераты. Экзаменационные билеты по информатике

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

Действительно, вначале, в 50—60 годы, программы писались на машинном языке, т. е. представляли собой очень длинные последовательности нулей и единиц. Однако составление программ на машинном языке было чрезвычайно трудоемким делом.

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

Известный всем Бейсик был создан в 1964 году сотрудниками Дартмутского колледжа Дж. Кемени и Т. Курцом. (Название BASIC является аббревиатурой английского названия Beginner's All-purpose Symbolic Instruction Code.) Интересно, что языки программирования развиваются так же, как и естественные, т. е. они обогащаются новыми операторами и новыми возможностями, возникают различные версии языка (QBasic, VisualBasic и др.).

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

Итак, мы создали программу на Бейсике (некоторый текст) и загрузили ее в оперативную память из внешней памяти или с клавиатуры. Теперь мы хотим, чтобы процессор ее выполнил, однако процессор «понимает» команды на машинном языке, а наша программа написана на Бейсике. Как быть? Необходимо, чтобы в оперативной памяти находилась программа переводчик (транслятор), автоматически переводящая с Бейсика на машинный язык.

Ясно, что один и тот же компьютер может «понимать» и QBasic, и Turbo Pascal, и какой-либо другой язык, все зависит от того, транслятор какого языка программирования размещен в оперативной памяти компьютера.

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

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

Естественный язык

Блок-схема

Бейсик

 

 


Следующим этапом является кодирование алгоритма на языке программирования (в данном случае Бейсике) и загрузка полученной программы в оперативную память. Оперативная память состоит из отдельных адресуемых ячеек, в которых информация может храниться, записываться и стираться. Каждая ячейка имеет уникальный адрес, и в ней может храниться 1 байт информации. Количество таких ячеек в современных компьютерах велико и соответствует объему памяти, выраженному в байтах. Для памяти 16 Мб оно составляет 16 777216 ячеек.

Программа займет в оперативной памяти определенное количество ячеек в области, отведенной для программ пользователя. Программа будет записана в памяти во внутреннем представлении языка программирования (в данном случае Бейсика), который процессор «не понимает». Для перевода программы на машинный язык, понятный процессору, в памяти должна находиться программа-транслятор с данного языка программирования.

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

REM — оператор комментариев; неисполняемый оператор, все, что стоит в строке программы после этого оператора, компьютером игнорируется.

INPUT — оператор ввода значений переменных; процессор отводит в оперативной памяти области (некоторое количество ячеек) и «называет» их именами переменных (А, В) из списка вво'да; запрашивает у пользователя их значения (на экране дисплея появляется знак вопроса ?); пользователь вводит значения переменных с клавиатуры (5,8); процессор записывает эти значения в отведенные области памяти.

LET — оператор присваивания; процессор считывает из памяти значения переменных (А, В), составляющих арифметическое выражение в правой части присваивания; вычисляет значение арифметического выражения (40); отводит в памяти область под переменную, стоящую в левой части присваивания (X); записывает вычисленное значение (40) арифметического выражения в эту область.

PRINT — оператор вывода значений переменных на экран; процессор считывает значение переменной (X) из памяти и высвечивает это значение (40) на экране дисплея.

END — оператор окончания программы; на экране дисплея появляется соответствующее сообщение (Ok) и курсор.

Системы счисления. Двоичная система счисления и ее применение в вычислительной технике.

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

Мы привыкли считать предметы десятками: десять единиц образуют десяток, десять десятков — сотню, десять сотен — тысячу и т. д. Наша система счисления десятичная. Но десятичная система не единственно возможная. Существуют, например, двенадцатеричная система счисления (там счет идет на дюжины) или римская система счисления.

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

Для представления чисел в десятичной системе используются десять цифр: от 0 до 9. Число 2359,407, записанное в десятичной системе, читается как «две тысячи триста пятьдесят девять и четыреста семь тысячных » и может быть представлено следующим образом:

2-1000+3-100+5-10+9-1+4-0,1+7-0,001. Множители каждого слагаемого представляют собой одну из степеней числа 10, т.е. можно записать:

10^+9-10°+4- 10^ +

10^ + 10^ + 7

10^ +

+ 0 - 10" + 7 - 10"

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

В непозиционных системах значение цифры не зависит от ее позиции. Общеизвестным примером непозиционной системы является римская система счисления. Так, в числе МСХХХ11 (1132) значение цифры Х не изменяется и всегда равно десяти.

В ЭВМ применяются позиционные системы счисления, в основном двоичная система. Применение двоичной системы обусловлено, прежде всего, простотой представления в ЭВМ только двух цифр (0 и 1), которые она использует. Чтобы представить две цифры в ЭВМ, надо иметь элементы с двумя устойчивыми состояниями, одно из которых можно принять за 1, другое — за 0. Таких элементов достаточно много: намагниченный или ненамагниченный сердечник, открытый или закрытый транзистор и др.

Число в двоичной системе, так же как в десятичной, изображается последовательностью цифр. Например, десятичное число 13 изображается как последовательность двух цифр 1 и 3, это же число в двоичной системе — последовательность четырех цифр—1101: 1310^11012.

Так же как в десятичной, в двоичной системе есть понятие разряда числа. Если в десятичной — это разряд единиц, десятков, сотен и т. д. (т. е. разряд 10*\ 10^ 10^ и т. д.), то в двоичной — это разряд 2°, 2^, 2^, 2^ и т. д. Двоичный разряд принято называть битом.

Например, число 1101 в двоичной системе можно представить как 1-2^+1-2^+0-2^+1-2^.

Алгоритм перевода числа из двоичной системы счисления в десятичную достаточно простой. Напомним, что для такого перевода необходимо вычислить сумму вкладов битов по правилам десятичной системы счисления. Примеры: 101 = 2+0+1==

= 5; 110 010 = 2^+2^+0+0+2+0= 50.

Для перевода десятичной записи числа в двоичную существует несколько различных способов. Рассмотрим, например, следующий алгоритм (все действия выполняются по правилам десятичной системы счисления):

1. Разделим число, подлежащее преобразованию, на 2, остаток от деления может быть 1 или О, значение остатка присваивается младшему (самому первому) значащему биту искомой двоичной записи.

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

3. Повторим п. 2 до тех пор, пока частное не станет меньше двух, частное от последнего деления равно значению старшего бита, остаток — второму по старшинству биту.

Графически работу этого алгоритма изобразим так:

27:2-13+(1) 13:2=6+(l) 6:2°3+(0)

3:2=l+(l)

ч I

1 10

Рассмотрим, как выполняются арифметические действия в двоичной системе. Для этого проведем анализ таблиц сложения и умножения в двоичной системе:

0+0=0,          0-0=0, 0+1 =1,          0 • 1=0, 1+1=10,         1 -1= 1. Следует обратить внимание на аналогию в правилах выполнения арифметических действий в двоичной и десятичных системах счисления: если при сложении двух двоичных чисел (точнее, представленных в двоичной системе счисления) сумма цифр окажется больше единицы, то возникает перенос в старший разряд; если уменьшаемая цифра меньше вычитаемой, то нужно сделать «заем» единицы в старшем разряде: *         *        ***

1)^10 II 101

_101 II

10

3)111 101 1100

4)

^111 110 1110

11100

101010

* — перенос (заем).

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

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.