
- •3. Строение памяти. Системы счисления. Двоичная система счисления
- •8. Расширенные Бэкуса-Наура формы (рбнф), Способы записи синтаксиса языка: Диаграммы Вирта. Расширенные Бэкуса-Наура формы (рбнф).
- •12. Операторы выбора: оператор if, оператор switch. Операторы выбора.
- •1. Принципы объектно-ориентированного программирования. Основными свойствами ооп являются:
- •18. Создание собственных функций-манипуляторов.
- •1.Assign(const string& str);
- •31. Последовательные контейнеры.
1. Компьютер и его программное обеспечение. Компьютер представляет собой единство двух составляющих: аппаратуры и программного обеспечения (ПО) Программное обеспечение компьютера — это вся совокупность программ, хранящихся в его долговременной памяти. ПО компьютера может пополняться, изменяться. Знания и умения новорожденный приобретает в процессе развития, обучения, накапливая информацию в своей памяти. Компьютер, который собрали на заводе из микросхем, проводов, плат и прочего, подобен новорожденному человеку. Можно сказать, что загрузка в память компьютера программного обеспечения аналогична процессу обучения ребенка. Программное обеспечение компьютера делиться на: системное ПО; прикладное ПО; системы программирования. С помощью прикладных программ пользователь непосредственно решает свои информационные задачи, не прибегая к программированию. К прикладным программам относятся: редакторы текстовые и графические, системы управления базами данных (СУБД), табличные процессоры, сетевое ПО, игры. Большинство пользователей свое знакомство с ЭВМ(Электронно-вычислительная машина) начинаю с компьютерных игр. Главной частью системного ПО является операционная система (ОС). Операционная система - это набор программ, управляющих оперативной памятью, процессором, внешними устройствами и файлами, ведущих диалог с пользователем. Например, для того чтобы выполнить прикладную программу, ее нужно разыскать во внешней памяти (на диске), поместить в оперативную память, найдя там свободное место, "запустить" процессор на выполнение программы, контролировать работу всех устройств машины во время выполнения и в случае сбоев выводить диагностические сообщения. Все эти заботы берет на себя операционная система. Распространённые ОС: Windows, Linux. Сервисные программы. К системному программному обеспечению кроме ОС следует отнести и множество программ обслуживающего, сервисного характера. Например, это программы обслуживания дисков (копирование, форматирование, "лечение" и пр.), сжатия файлов на дисках (архиваторы), борьбы с компьютерными вирусами и многое другое. Системы программирования (СП) - инструмент для работы программиста. С системами программирования работают программисты. Всякая СП ориентирована на определенный язык программирования. Существует много разных языков, например Паскаль, Бейсик, ФОРТРАН, С ("Си"), Ассемблер, ЛИСП и др. На этих языках программист пишет программы, а с помощью систем программирования заносит их в компьютер, отлаживает, тестирует, исполняет.
2. Операционные системы и среды. Операционные системы и среды - это комплекс системных программ управляющих ресурсами ПК.
Аппаратные ресурсы характеризуют возможности аппаратуры. Программные ресурсы характеризуют возможности программных средств. Операционные системы и среды обеспечивают взаимодействие аппаратных и программных средств, а также пользователя с ПК. Они обеспечивают пользователю и прикладным программам удобный способ общения (интерфейс) с ПК. Программный интерфейс – набор программ обеспечивающих автоматизацию прохождения прикладных программ. Пользовательский интерфейс – набор команд для управления функционирования компьютером. В ПК IBM PC используется операционные среды: Windows, Millennium, Windows’98, Windows 2000, Windows XP и др. а также операционные системы, как правило, MS DOS – это дисковая операционная система, разработанная фирмой Microsoft. Linux. Операционные среды предоставляют пользователю более удобный интерфейс по сравнению с операционными системами. Работа пользователя в среде Windows является более удобной и раскрывает новые возможности для пользователя: запускать одновременно несколько программ; обмениваться информацией между программами; создавать файлы и управлять ими; открывать окна и работать с ними; работать с мощными приложениями Windows; эффективно работать с мышью; использовать вспомогательные программы - часы, календарь, калькулятор, блокнот; и др. возможности.
3. Строение памяти. Системы счисления. Двоичная система счисления
16тиричная: 0 1 2 3 4 5 6 7 8 9 a b c d e f
10теричная: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2ичная: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Двоичная система счисления: В этой системе счисления числа записываются с помощью двух символов (0 и 1). Пример перевода из 10ичной в 2ичную числа 19: 19/2=9 - остаток 1 ==> 9/2=4 - остаток 1 ==> 4/2=2 ==> остаток 0 ==> 2/2=1 - остаток 0 ==> 1/2=0 -остаток 1 =================> 11001 Нужно перевести число 1011010,101 в десятичную систему: 1*26+0*25+1*24+1*23+0*22+1*21+0*20+1*2-1+0*2-2+1*2-3=90.625
Пример:
206,11610=11001110,00011101102.
Перевод целой части дает 20610=110011102
0,116
• 2 = 0,232
0,232
• 2 = 0,464
0,464
• 2 = 0,928
0,928
• 2 = 1,856
0,856
• 2 = 1,712
0,712
• 2 = 1,424
0,424
• 2 = 0,848
0,848
• 2 = 1,696
0,696
• 2 = 1,392
0,392
• 2 = 0,784
и т. д.
Память
компьютера построена из двоичных
запоминающих элементов — битов,
объединенных в группы по 8 битов, которые
называются байтами.
(Единицы измерения памяти совпадают с
единицами измерения информации). Все
байты пронумерованы. Номер байта
называется его адресом.
Широко
используются и более крупные производные
единицы объема памяти: Килобайт, Мегабайт, Гигабайт,
а также, в последнее время, Терабайт и Петабайт.
Различают
два основных вида памяти — внутреннюю и
внешнюю.
В
состав внутренней
памяти входят оперативная
память, кэш-память и специальная
память.
Внешняя
память (ВЗУ)
предназначена для длительного хранения
программ и данных, и целостность её
содержимого не зависит от того, включен
или выключен компьютер. В
отличие от оперативной памяти, внешняя
память не имеет прямой связи с процессором.
4. Представление чисел в памяти. Представление символов в памяти. Для однобайтового представления:
Бесзнаковые целые числа
Например, восьмиразрядное число 14 будет вид 00001110 Целые числа со знаком:
Например, переведем число -8 в двоичный 8-разрядный код.
Возьмем модуль числа и дополним его до необходимого числа разрядов нулями слева 00001000
Теперь проивентируем 11110111
и, наконец, прибавим единицу.
Получаем
окончательный ответ - 11111000
Для
кодирования символов достаточно одного
байта. При этом можно представить 256
символов (с десятичными кодами от 0 до
255). Набор символов персональных ЭВМ,
совместимых с IBM PC, чаще всего является
расширением кода ASCII (American Standard Code for
Information Interchange — стандартный американский
код для обмена информацией). В настоящее
время используются и двухбайтовые
представления символов.
-117.
Двухбайтовое представление числа:
Получить дополнительный код числа для
16-разрядной ячейки.
5. Алгоритм и его свойства. Формализации понятия «алгоритм». Этапы разработки программ. Типы ошибок. Алгоритм - это заранее заданная последовательность однозначно описанных и трактуемых действий, позволяет получить за конечное число шагов решение задачи, определяемое исходными данными. Свойства алгоритмов: 1) Детерминированность(определенность); 2)Конечность(Результативность); 3)Массовость; 4)Выполнимость; 5)Дискретность
1.Предписанные алгоритмом действия должны быть однозначно предписаны и не допускать различной трактовки. В каждой момент времени, следующее действие должно однозначно определяться текущим состоянии системы. Таким образом алгоритмом должен выдавать один и тот же результат для одних и тех же исходных данных - Детерминированность
2. Конечность. При корректно заданных исходных данных алгоритм должен завершать работу и выдавать результат после выполнение конечного числа действий
3 Возможность принимать многократно один и тот де алгоритм для любой задачи одного класса или для решения одной задачи с разными данными.
4. Алгоритм должен содержать описание, только таких действий которые являются выполнимыми в рамках средств используемых для решения задач.
5. Алгоритм должен быть представлен как последовательное выполнение простых шагов. Шагом называется каждое действие алгоритма.
Оценка шагов алгоритма определяется: скоростью сходимости, времени выполнения, удобство обращение к алгоритму, простотой, удобочитаемостью. Типы ошибок: 1.Синтаксические (а*(b*(c+d))+a;2. Семантические. S/N, где S-строка, N-число.;
3. Логические. Расстояние = скорость + время. Этап 1. Проектирование программного комплекса. Проектирование программного комплекса представляет собой написание технического задания на разработку и создание модели документооборота. Этап 2. Разработка программного комплекса. Данный этап представляет собой непосредственно разработку (программирование) системы автоматизации в рамках утвержденного технического задания, сметы и графика работ. По завершению данного этапа заказчик получает готовую к эксплуатации информационную систему. Этап 3. Внедрение программного продукта. Данный этап представляет собой процесс обучения персонала заказчика работе с программным обеспечением, помощи в настройке и заведению справочников. Этап 4. Информационная поддержка. На протяжении данного этапа производится доводка разработанного программного обеспечения до совершенства - исправление ошибок, небольшие доработки (доработки не влекущие за собой изменение структуры базы данных).
6. Основные парадигмы программирования. Классификация языков программирования. ОПП -совокупность теорий, стандартов и методов используемых при разработки программ. ПП не является взаимно исключающими, а дополняют друг друга. Например разработав систему классов и объектов в рамках объектно-ориентированного программирования, при разработки методов класса руководствуются структурным программированием. 1) Процедурное программирование. . В соответствие с этой парадигмой, программа рассматривается как инструкций, задающих процедуру решения задачи. Выполнение программы сводится к последовательным действиям преобразующим исходное состояние памяти в результат. Здесь основной инструкцией является инструкция присваивания. Часто парадигму процедурного программирование разделяют на 2 части: Парадигма императивного программирования и парадигму функционального программирования. Функциональное программирование основана на построении обособленных структурных единиц каждая из которых принимает исходные данные и возвращает результат. Императивное программирования рассматривает программу как процесс изменения состояния путем выполнения отдельных инструкций. Из императивного программирования выросло:
2) Структурное программирование. 3) Модульное программирование. В модульном программирование данные и функции их обработки объединены в один модуль. Программа составлялась из отдельных модулей состоящей из множества процедур и функций. Эффективность таких программ тем выше чем меньше модули зависят друг от друга. Автономность модулей позволяет создавать библиотеки, чтобы потом использовать в качестве строительных уроков. Для того чтобы обеспечить максимальную независимость модулей друг от друга необходимо отделить открытые процедуры от закрытых. Так возникла идея об инкапсуляции данных и методов их обработки. Инкапсуляция(скрытие) преследует 2 цели: обеспечить безопасность модуля и уменьшить сложность. 4) Объектно-ориентированное программирование. Языки низкого уровня, высокого и сверхвысокого. В группу языков низкого уровня выходят машинные языки и языки символического кодирования. Например: Ассембля, автокод. Операторы этого языка это те же машинные команды записанные определенными кодами. Все языки низкого уровня ориентированы на определенный тип компа т.е. являются машинно-зависимы. Языки высокого уровня являются машинно-независимыми программы, написанные на них занимают больше памяти и медленнее выполняются. Сверхвысокий уровень относятся язык программирования Aмол-68 и APL . Повышение уровня этих языков произошло за счет введение сверхмощных операция и операторов.
7. Алфавит, синтаксис, семантика языка программирования. Способы записи синтаксиса языка: Бэкуса-Наура формы (БНФ). Содержательно язык программирования - это средство общения между человеком(программистом) и компьютером (исполнителя). Рассматривая любую знаковую систему, в том числе и язык программирования, выделяют синтаксис - это правило построения сообщений в этой системе, семантику - это правило истолкования сообщений тем, кому они адресованы, а так же прагматику сопоставляющих сообщения желания того от кого они исходят. Всякий язык программирования, можно определить как множество предложений , т.е. некоторое множество цепочек или конечных последовательностей элементарных единиц из некоторого непустого конечного множества символов, называемых словарем, или алфавитом языка. При таком рассмотрении языка программирования мы только фиксируем множество символов, которые можно использовать для записи программ, а также класс допустимых синтаксических правильных записей программ. Предложения языка строятся по определенным правилам в совокупности составляющим грамматику языка. Эти грамматические правила приписывают предложения языка некоторую синтаксическую структуру, которые используются в дальнейшем при определение смысла предложений. Семантика языка программирования - это правило предания смысла синтаксическим правильным программам. В конечном счете эти правила определяют ту последовательность действий вычислительной машины, которую она должна выполнить, работая по данной программе.
Способы записи синтаксиса языка. Бэкуса-Наура формы(БНФ). Есть еще Расширенные Бэкуса-Наура формы (РБНФ) и Диаграмма Вирта(№8). Метод язык предложенный Бэкусам Наурам в первые использовался для описания языка программирования - АЛГОЛ 60. В данном языки были использованы следующие обозначения: 1. Символ '::=' отделяет левую часть правила от правой. 2. Нетерминалы обозначаются произвольной символьной строкой, заключенной в угловые скобки '<' и '>'.3. Терминалы - это символы, используемые в описываемом языке. 4. Каждое правило определяет порождение нескольких альтернативных цепочек, отделяемых друг от друга символом вертикальной черты '|';
Пример описания идентификатора с использованием БНФ: <буква> ::= A|B|C|D|....|Z|a|b|c|...|z < цифра > ::= 1|2|3|...|0 <идентификатор> ::= <буква> | <идентификатор> <буква>| < идентификатор ><цифра>