Можно выделить четыре подхода к программированию: структурное (процедурное), объектно-ориентированное, логическое и функциональное. В школе, как правило, изучаются структурное (процедурное) и объектно-ориентированное программирование.
Структурное (процедурное) программирование основывается на двух основных принципах: последовательной детализации алгоритма и использовании набора базовых структур. Алгоритм любой сложности можно построить с помощью основных алгоритмических структур. В качестве примера языка программирования, реализующего такой подход, можно привести язык Pascal.
Суть объектно-ориентированного программирования состоит в разработке программы как модели взаимодействующих объектов. Объект здесь — это некоторая структура данных (в том числе разных типов) и процедур их обработки, к которой можно обращаться по имени и описывать как единое целое. Формальное описание такого объекта называется классом. Объект в этом случае считается экземпляром некоторого класса. Примеры языков программирования, основанных на таком подходе: Java, C++.
Поскольку компьютер (а точнее, его процессор) оперирует не конструкциями языка программирования, а двоичными командами, то перед выполнением программа должна быть превращена в машинный код. Выполняют эту операцию программы-трансляторы.
Транслятор языка программирования (интерпретатор или компилятор) входит в состав среды (системы) программирования. Это программные комплексы, включающие специализированные текстовые редакторы, трансляторы, средства отладки и контроля за исполнением программ, средства разработки дополнительных элементов программ, библиотеки компонентов и многие другие средства, используемые профессиональными разработчиками системного и прикладного программного обеспечения.
Компилятор — это программа, автоматически преобразующая (транслирующая, компилирующая) исходный код языка высокого уровня в машинный код и создающая таким образом исполняемый файл. Он может быть запущен на исполнение операционной системой. В операционной системе MicrosoftWindows такие файлы могут иметь расширение exe, com, dll[5].
Интерпретатор — это программа, преобразующая код языка высокого уровня в машинный код шаг за шагом, т. е. каждая команда преобразуется интерпретатором и выполняется компьютером, затем интерпретатор преобразует следующую команду, компьютер ее выполняет и т. д. (интерпретатор — «синхронный переводчик»). Недостаток интерпретаторов — низкая скорость выполнения программ. Примеры: интерпретаторы языков Basic и JavaScript. Для языка Basic в настоящее время существуют как интерпретаторы, так и компиляторы
2)Система счисления – это знаковая система, в которой числа записываются по пределенным правилам, с помощью символов некого алфавита, которыми наз. Цифрами.
Для записи информации о количестве объектов используются числа. Числа записываются с использованием особых знаковых систем, которые называются системами счисления. Алфавит систем счисления состоит из символов, которые называются цифрами. Например, в десятичной системе счисления числа записываются с помощью десяти всем хорошо известных цифр: 0, 1, 2, 3, 4, 5, б, 7, 8, 9.
Все системы счисления делятся на две большие группы: позиционные и не позиционные системы счисления. В позиционных системах счисления значение цифры зависит от ее положения в числе, а в непозиционных — не зависит.
Римская непозиционная система счисления. Самой распространенной из непозиционных систем счисления является римская. В качестве цифр в ней используются: I (1), V (5), X (10), L (50), С (100), D (500), М (1000).
Значение цифры не зависит от ее положения в числе. Например, в числе XXX (30) цифра X встречается трижды и в каждом случае обозначает одну и ту же величину - число 10, три числа по 10 в сумме дают 30.
Величина числа в римской системе счисления определяется как сумма или разность цифр в числе. Если меньшая цифра стоит слева от большей, то она вычитается, если справа - прибавляется. Например, запись десятичного числа 1998 в римской системе счисления будет выглядеть следующим образом:
MCMXCVIII = 1000 + (1000 - 100) + (100 -10)+ 5 + 1 + 1 + 1.
Позиционные системы счисления. Первая позиционная система счисления была придумана еще в Древнем Вавилоне, причем вавилонская нумерация была шестидесятеричной, то есть в ней использовалось шестьдесят цифр! Интересно, что до сих пор при измерении времени мы используем основание, равное 60 (в 1 минуте содержится 60 секунд, а в 1 часе — 60 минут).
В XIX веке довольно широкое распространение получила двенадцатеричная система счисления. До сих пор мы часто употребляем дюжину (число 12): в сутках две дюжины часов, круг содержит тридцать дюжин градусов и так далее.
Наиболее распространенными в настоящее время позиционными системами счисления являются десятичная, двоичная, восьмеричная и шестнадцатеричная. Каждая позиционная система имеет определенный алфавит цифр и основание. Десятичная система счисления имеет алфавит цифр, который состоит из десяти всем известных, так называемых арабских, цифр, и основание, равное 10, двоичная — две цифры и основание 2, восьмеричная — восемь цифр и основание 8, шестнадцатеричная — шестнадцать цифр (в качестве цифр используются и буквы латинского алфавита) и основание 16. Десятичная система счисления. Рассмотрим в качестве примера десятичное число 555. Цифра 5 встречается трижды, причем самая правая цифра 5 обозначает пять единиц, вторая справа — пять десятков и, наконец, третья справа — пять сотен.
Позиция цифры в числе называется разрядом. Разряд числа возрастает справа налево, от младших разрядов к старшим. В десятичной системе цифра, находящаяся в крайней справа позиции (разряде), обозначает количество единиц, цифра, смещенная на одну позицию влево, — количество десятков, еще левее — сотен, затем тысяч и так далее. Соответственно имеем разряд единиц, разряд десятков и так далее.
Число 555 записано в привычной для нас свернутой форме. Мы настолько привыкли к такой форме записи, что уже не замечаем, как в уме умножаем цифры числа на различные степени числа 10.
В развернутой форме записи числа такое умножение записывается в явной форме. Так, в развернутой форме записьчисла 555 в десятичной системе будет выглядеть следующим образом:
55510 = 5-102+ 5-Ю1 + 5-10°.
Билет № 14
1) Данный раздел содержит большой практический материал для на-чального изучения программирования. Задачи ориентированы, главным образом, на использование процедурных языков программирования, из которых в настоящее время наиболее распространенными являются Паскаль, Бейсик и СИ. Чаще всего именно эти языки изучаются на уроках информатики.
С точки зрения авторов, наиболее подходящим языком для первоначального освоения программирования является язык Паскаль. Как известно, автор Паскаля Н. Вирт создавал его прежде всего как учебный язык. Позднее фирмой Borland была разработана система программирования Турбо-Паскаль, расширившая область применения языка и развившая сам язык программирования. Современные версии Турбо-Паскаля достаточно широко распространены в компьютерных классах учебных заведений.
Предлагаемые в данном разделе задачи могут решаться с использованием любого языка программирования. Однако весь пояснительный материал и примеры программ приведены на Паскале. Таким образом, помимо задач, раздел содержит краткий справочник по программированию на Паскале. Описание языка не является полным. За более подробными сведениями о Паскале следует обращаться к специальной литературе.
Некоторые тематические разделы поделены на части, отличающиеся уровнем сложности задач. Эти части обозначены буквами А, В и т. д. по возрастанию сложности.
Программы с линейной структурой составляются из операторов присваивания, ввода, вывода, обращения к процедурам. Оператор присваивания можно назвать основным в любом языке программирования. Оператор присваивания:
<переменная>:= <выражение>
Оператор выполняется следующим образом. Вычисляется значение <выражения>, после чего <переменная> получает вычисленное значение. При этом тип выражения должен быть совместим с типом переменной.
Примеры оператора присваивания:
X:=(Y+Z)/(2+Z*10)-l/3;
LogPer:=(A>B) and (C<=D).
2) Многие годы люди работали с информацией «вручную», прежде чем был изобретен компьютер, позволяющий автоматизировать процессы обработки, передачи и хранения информации. Любая информация (данные) в компьютере представлена дискретно — последовательностью отделенных друг от друга элементов. Значит, информацию для компьютера необходимо закодировать. Кодирование — это преобразование информации из одной знаковой формы в другую, удобную для ее обработки, хранения или передачи. Используемый для кодирования конечный набор знаков называют алфавитом. Кодирование осуществляется по принятым правилам. Правило кодирования называется кодом (от французского code — кодекс, свод законов). Длина кода — количество знаков алфавита, используемых для кодирования.
При кодировании информации для технических устройств важное значение имеют алфавиты, состоящие всего из двух знаков. Такие алфавиты называют двоичными. Они наиболее просты для кодирования. Чем меньше знаков в алфавите, тем проще устроена «машина» для распознавания (дешифрования) информационного сообщения. Однако чем меньше знаков в алфавите, тем большее их количество требуется для кодирования, следовательно, больше длина кода.
Легко рассчитать количество М различных сообщений, которые можно закодировать, используя код постоянной длины п и алфавит из Rзнаков: М = R1. Если мы используем двоичный алфавит, то М= 2".
При конструировании компьютеров был выбран двоичный алфавит {0, 1}, что позволило использовать достаточно простые устройства для представления и автоматического распознавания программ и данных. Именно простота сделала этот принцип кодирования таким распространенным. Наряду с этим свойством двоичное кодирование обеспечивает удобство физической реализации, универсальность представления любого вида информации, уменьшение избыточности сообщения, обеспечение защиты от случайных искажений или нежелательного доступа.