B. Специализированные языки

Программирование

Билет№1

1) Модели решения функциональных и вычислительных задач

А. Моделирование как метод познания

(моделирование - построение моделей для исследования и изучения объектов, процессов или явлений.

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

Во-вторых,оригинал может иметь много свойств и взаимосвязей. Для изучения какого-либо свойства иногда полезно отказаться от менее существенных,вовсе не учитывая их.

B. Классификация моделей:

(1)область использования, 2) учет в модели временного фактора(динамики) 3) отрасль знаний 4)способ представления моделей.)

C. Знаковые и вербальные информационные модели:

(знаковая модель-информационная модель,выраженная специальными знаками , т.е. средствами любого формального языка

(это рисунки,тексты,графики,схемы))(вербальная модель-информационная модель в мысленной или разговорной форме(к таким моделям можно отнести и идею, возникшую у

изобретателя,и музыкальную тему,иоифму, прозвучавшую пока еще в сознании у автора).

D. Функциональные и структурные информационные модели:

(Функциональная модель предназначена для изучения особенностей работы (функционирования) системы и её назначения

во взаимосвязи с внутренними и внешними элементами.

Функция — самая существенная характеристика любой системы, отражает её предназначение, то, для чего она нужна. Подобные модели оперируют, прежде всего,

с функциональными параметрами. Графическим представлением этих моделей служат блок-схемы. Они отображают порядок действий, направленных на достижение

заданных целей (т. н. 'функциональная схема'). Функциональной моделью является абстрактная модель.)

(структурные - схемы,графики,таблицы и т.п.)

E. Математические информационные модели:

( математические- математические формулы,отображающие связь различных параметров объекта или процесса)

F. Компьютерные информационные модели:

(Компьютерная модель - это модель реального процесса или явления, реализованная компьютерными средствами.

Компьютерные модели, как правило, являются знаковыми или информационными. К знаковым моделям в первую очередь относятся математические модели,

демонстрационные и имитационные программы.

G.Этапы моделирования

1 Этап. Постановка задачи:Описание задачи. определение цели моделирования . Анализ объекта моделирования.

2 Этап. Разработка модели: На этом этапе выясняются свойства,состояния, действия и другие характеристики элементарных объектов.

Формируется представление об элементарных объектах.Выбор наиболее существенной информации при создании информационной модели и ее сложность обусловлены целью

моделирования.

3 Этап. Компьютерный эксперимент. Тестирование - процесс проверки правильности модели.

4 Этап. Анализ результатов моделирования. Конечная цель моделирования (5этап)- принятие решения , которое должно быть выработано на основе всестороннего анализа

полученных результатов.

2) Методы сортировки массивов.

(Сортировка выбором -алгоритм сортировки.Может быть как устойчивый, так и неустойчивый. На массиве из n элементов имеет время выполнения в худшем, среднем и лучшем случае О(n2), предполагая что сравнения делаются за постоянное время.

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

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

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

3) Стандартные функции языка Pascal.

1)Арифметические функции

Функция Назначение Тип результата

abs (x) абсолютное значение аргумента совпадает с типом аргумента

sqr (x) квадрат аргумента совпадает с типом аргумента

sqrt (x) квадратный корень аргумента вещественный

cos (x) косинус аргумента вещественный

sin (x) синус аргумента вещественный

arctan (x) арктангенс аргумента вещественный

exp (x) e^(x) вещественный

ln (x) натуральный логарифм вещественный

int (x) целая часть числа вещественный

frac (x) дробная часть числа вещественный

2)Функции преобразования типов

Эти функции предназначены для преобразования типов величин, например, символа в целое число, вещественного числа в целое и т.д.

ord (x) - возвращает порядковый номер аргумента и, таким образом, преобразует величину порядкового типа в величину целого типа.

round (x) - округляет вещественное число до ближайшего целого.

trunc (x) - выдает целую часть вещественного числа, отбрасывая дробную.

3)Функции для величин порядкового типа

odd (x) - проверяет аргумент на нечетность. Аргумент функции величина типа longint, результат true, если аргумент нечетный, false – если четный.

pred (x) - определяет предыдущее значение величины x.

succ (x) - определяет последующее значение величины x.

ord (x) - возвращает порядковый номер величины x.

Билет №2

1) Языки программирования высокого уровня:

a. Эволюция и классификация языков программирования

Классификация языков программирования.

В общем, языки программирования делятся на две группы: операторные и функциональные. К функциональным относятся ЛИСП, ПРОЛОГ и т.д.

Операторные языки делятся на процедурные и непроцедурные (Smalltalk, QBE). Процедурные делятся на машино - ориентированные и машино – независимые.

К машино – ориентированным языкам относятся: машинные языки, автокоды, языки символического кодирования, ассемблеры. К машино – независимым языкам относятся:

− Процедурно – ориентированные (Паскаль, Фортран и др.).

− Проблемно – ориентированные (ЛИСП и др.).

− Объектно-ориентированные (Си++, VisualBasic, Java и др.).

Эволюция ЯП:

Первые ЭВМ(электронно-вычислительные машины), созданные человеком, имели небольшой набор команд и встроенных типов данных, но позволяли выполнять программы на машинном языке. Машинный язык (МЯ) - единственный язык, понятный ЭВМ. Он реализуется аппаратно: каждую команду выполняет некоторое электронное устройство. Программа на МЯ представляет собой последовательность команд и данных, заданных в цифровом виде. Например, команда вида 1А12 в 16-ричном виде или 0001101000010010 в двоичном виде означает операцию сложения (1А) содержимого регистров 1 и 2.

Данные на МЯ представлены числами и символами. Операции являются элементарными и из них строится вся программа. Ввод программы в цифровом виде производился непосредственно в память с пульта ЭВМ либо с примитивных устройств ввода. Естественно, что процесс программирования был очень трудоемким, разобраться в программе даже автору было довольно сложно, а эффект от применения ЭВМ был довольно низким. Этот этап в развитии ЯП показал, что программирование является сложной проблемой, трудно поддающейся автоматизации, но именно программное обеспечение определяет в конечном счете эффективность применения ЭВМ. Поэтому на всех последующих этапах усилия направлялись на совершенствование интерфейса между программистом и ЭВМ - языка программирования.

Стремление программистов оперировать не цифрами, а символами, привело к созданию мнемонического языка программирования, который называют ассемблером, мнемокодом, автокодом. Этот язык имеет определенный синтаксис записи программ, в котором, в частности, цифровой код операции заменен мнемоническим кодом. Например, команда сложения записывается в виде AR 1,2 и означает сложение (Addition) типа регистр-регистр (Register) для регистров 1 и 2. Теперь программа имеет более удобочитаемую форму, но ее не понимает ЭВМ. Поэтому понадобилось создать специальную программу транслятор, который преобразует программу с языка ассемблера на МЯ. Эта проблема потребовала, в свою очередь, глубоких научных исследований и разработки различных теорий, например теорию формальных языков, которые легли в основу создания трансляторов. Практически любой класс ЭВМ имеет свой язык ассемблера. На сегодняшний день язык ассемблера используется для создания системных программ, использующих специфические аппаратные возможности данного класса ЭВМ.

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

Принципиальными отличиями ЯВУ от языков низкого уровня являются:
· использование переменных;

· возможность записи сложных выражений;

· расширяемость типов данных за счет конструирования новых типов из базовых;

· расширяемость набора операций за счет подключения библиотек подпрограмм;
· слабая зависимость от типа ЭВМ.

С усложнением ЯП усложняются и трансляторы для них. Теперь в набор инструментов программиста, кроме транслятора, входит текстовый редактор для ввода текста программ, отладчик для устранения ошибок, библиотекарь для создания библиотек программных модулей и множество других служебных программ. Все вместе это называется системой программирования. Наиболее яркими представителями ЯВУ являются FORTRAN, PL/1, Pascal, C, Basic, Ada.

b. Специализированные языки

C. Основные понятия алгоритмических языков программирования

Основными понятиями в алгоритмических языках являются следующие.

Имена (идентификаторы) - последовательность символов для обозначения объектов программы (переменных, массивов, функций и дp.).

Операции. Существуют следующие типы операций:

-арифметические операции: сложение, обозначается символом “+”; вычитание, обозначается символом “-”; умножение, обозначается символом “*”; деление, обозначается символом “/” и дp. ;

- логические операции: операции “логическое и”, “логическое или”, “логическое не” и др.;

- операции отношения: меньше, обозначается символом “<”; больше, обозначается символом “>”; меньше или равно, обозначается символами “<=”; больше или равно, обозначается символами “>=”; равно, обозначается символом “=”; не равно, обозначается символами “<>”.

- операция конкатенации символьных значений дpуг с другом, изображается знаком "+".

Ключевые слова – это слова языка, имеющие строго определенное назначение, которые не могут использоваться в качестве идентификаторов.

Данные - величины, обрабатываемые программой. Имеется тpи основных вида данных: константы, переменные и массивы.

Константы - это данные, которые зафиксированы в тексте программы и не изменяются в процессе ее выполнения.

Примеры констант:

числовые: 7.5, 12;

логические: true(истина), false(ложь);

символьные: "А", "+";

строковые: "abcde", "информатика".

Переменные – это данные, которые могут изменять свои значения в ходе выполнения программы. Они обозначаются именами. Переменные бывают целые,вещественные, логические, символьные и строковые.

Массивы - последовательности однотипных элементов, число которых фиксировано и которым присвоено одно имя. Положение элемента в массиве однозначно определяется его индексами - одним в случае одномерного массива, или несколькими, если массив многомерный.

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

Различают выражения арифметические, логические и строковые.

D. Типы данных

Современные цифровые компьютеры являются двоичными и данные хранят в двоичном (бинарном) коде (хотя возможны реализации и в других системах счисления). Эти данные как правило отражают информацию из реального мира (имена, банковские счета, измерения и др.), представляющую высокоуровневые концепции.

Особая система, по которой данные организуются в программе, — это система типов языка программирования; разработка и изучение систем типов известна под названием теория типов. Языки можно поделить на имеющие статическую типизацию и динамическую типизацию, а также бестиповые языки (например, Forth).

Статически типизированные языки могут быть в дальнейшем подразделены на языки с обязательной декларацией, где каждая переменная и объявление функции имеет обязательное объявление типа, и языки с выводимыми типами. Иногда динамически типизированные языки называют латентно типизированными.

E. Структуры данных

Системы типов в языках высокого уровня позволяют определять сложные, составные типы, так называемые структуры данных. Как правило, структурные типы данных образуются как декартово произведение базовых (атомарных) типов и ранее определённых составных типов.

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

2) Область действия программных объектов, вложенность подпрограмм, локальные и глобальные описания.

Область действия объекта определяет, в каких участках программы допустимо использование имени этого объекта. Так, объект с глобальным временемжизни существует в течение всего времени выполнения программы, однако он доступен только в тех частях программы, на которые распространяется его область действия. Область действия объекта распространяется на блок или исходный файл, если в этом блоке или исходном файле известны тип и имя объекта. Объект может иметь глобальную или локальную область действия. Глобальная область действия означает, что объект доступен, или может быть через соответствующие объявления сделан доступным в пределах всех исходных файлов, образующих программу. Этот вопрос рассматривается в разделе 3.6 "Классы памяти". Локальная область действия означает, что объект доступен только в том блоке или файле, в котором он объявлен или определен.

Область действия переменной, объявленной на внешнем уровне, распространяется от точки программы, в которой она объявлена, до конца исходного файла, на все функции и вложенные блоки, за исключением случаев локального переобъявления (см. ниже). Область действия этой переменной можно распространить и на другие исходные файлы путем ее объявления в этих файлах (см. раздел 3.6 "Классы памяти"). Однако область действия переменной, объявленной на внешнем уровне с классом памяти static, распространяется только до конца исходного файла, содержащего ее объявление.

Область действия переменной, объявленной на внутреннем уровне, распространяется от точки программы, в которой она объявлена, до конца блока, содержащего ее объявление. Такая переменная называется локальной.

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

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

Все переменные, объявленные в разделе описаний после оператора Program доступны для использования в основной программе, во всех подпрограммах и называются глобальными. Переменные, объявленные в разделе описаний подпрограмм, доступны только внутри этих подпрограмм и называются локальными. Локальными переменными являются также переменные, описанные вначале основной программы, но после описания подпрограмм.

3) Алфавит языка ObjectPascal.

Алфавит языка состоит из следующих символов:

Заглавные и строчные латинские буквы и символ подчеркивания:

А,В,С.. .,X,Y,Z,a,b,c, .. .,x,y,z.

Обратите внимание, что в языке TurboPascal символ подчеркивания считается буквой.Буквы используются для формирования идентификаторов и служебных слов.

Десять арабских цифр от 0 до 9:

0,1,2,3,4,5,6,7,8,9

Цифры используются для записи чисел и идентификаторов.

Двадцать два специальных символа:

+ -*/-><. , ; : ( )[ ]{ }#$

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

Билет №3

1) Технологии программирования.

Технологии программирования:

Наши рекомендации