Шпаргалка по "Программированию"

Автор: Пользователь скрыл имя, 03 Декабря 2012 в 12:02, шпаргалка

Описание работы

1.Основные понятия информатики
2. Технические и программные средства реализации информационных процессов
3. Модели решения функциональных и вычислительных задач.
4. Алгоритмизация и программирование
5. Языки программирования высокого уровня
6. Основы и методы защиты информации

Работа содержит 1 файл

Информатика и программирвание.doc

— 195.00 Кб (Скачать)

 

16. Аксиоматический  Метод.

Аксиоматический Метод - способ построения научной теории, при котором какие-то положения теории избираются в качестве исходных, а все остальные ее положения выводятся из них чисто логическим путем, посредством доказательств. Положения, доказываемые на основе аксиом, называются теоремами. А. м. — особый способ определения объектов и отношений между ними (см.: Аксиоматическое определение). А. м. используется в математике, логике, а также в отдельных разделах физики, биологии и др. А. м. зародился еще в античности и приобрел большую известность благодаря «Началам» Евклида, появившимся около 330 — 320 гг. до н. э. Евклиду не удалось, однако, описать в его «аксиомах и постулатах» все свойства геометрических объектов, используемые им в действительности; его доказательства сопровождались многочисленными чертежами. «Скрытые» допущения геометрии Евклида были выявлены только в новейшее время Д. Гильбертом (1862-1943), рассматривавшим аксиоматическую теорию как формальную теорию, устанавливающую соотношения между ее элементами (знаками) и описывающую любые множества объектов, удовлетворяющих ей. Сейчас аксиоматические теории нередко формулируются как формализованные системы, содержащие точное описание логических средств вывода теорем из аксиом. Доказательство в такой теории представляет собой последовательность формул, каждая из которых либо является аксиомой, либо получается из предыдущих формул последовательности по одному из принятых правил вывода. К аксиоматической формальной системе предъявляются требования непротиворечивости, полноты, независимости системы аксиом и т. д. a.m. является лишь одним из методов построения научного знания. Он имеет ограниченное применение, поскольку требует высокого уровня развития аксиоматизируемой содержательной теории. Как показал известный математик и логик К. Гёдель, достаточно богатые научные теории (напр., арифметика натуральных чисел) не допускают полной аксиоматизации. Это свидетельствует об ограниченности a.m. и невозможности полной формализации научного знания.

 

17. Основные этапы компьютерного решения задач.

 Работа по решению прикладной задачи на компьютере проходит  через следующие этапы:

• постановка задачи;

• математическая формализация;

• построение алгоритма;

• составление программы на языке программирования;

• отлад¬ка и тестирование программы;

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

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

Дадим описание каждого из перечисленных этапов.

Постановка задачи.

На этапе постановки задачи должно быть четко определено, что  дано, и что требуется найти. Так, если задача конкретная, то под постановкой задачи понимают ответ на два вопроса: какие исходные данные известны и что требуется определить. Если задача обобщенная, то при постановке задачи понадобится еще ответ на третий вопрос: какие данные допустимы. Таким образом, постановка задачи включает в себя следующие моменты: сбор информации о задаче; формулировку условия задачи; определение конечных целей решения задачи; определение формы выдачи результатов; описание данных (их типов, диапазонов величин, структуры и т. п.).

Моделирование.

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

 

18. Модульные программы.

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

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

Модульность программного кода

Программный код  часто разбивается на несколько файлов, каждый из которых компилируется отдельно от остальных. Такая модульность программного кода позволяет значительно уменьшить время перекомпиляции при изменениях, вносимых лишь в небольшое количество исходных файлов, и упрощает групповую разработку. Также это возможность замены отдельных компонентов (таких как jar-файлы, so или dll библиотеки) конечного программного продукта, без необходимости пересборки всего проекта (например, разработка плагинов к уже готовой программе).

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

 

19. Объектно-ориентированное программирование.

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

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

Формирование  КОП от ООП произошло, как случилось  формирование модульного от процедурного программирования: процедуры сформировались в модули — независимые части кода до уровня сборки программы, так объекты сформировались в компоненты — независимые части кода до уровня выполнения программы. Взаимодействие объектов происходит посредством сообщений. Результатом дальнейшего развития ООП, по-видимому, будет агентно-ориентированое программирование, где агенты — независимые части кода на уровне выполнения. Взаимодействие агентов происходит посредством изменения среды, в которой они находятся.

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

Первым языком программирования, в котором были предложены принципы объектной ориентированности, была Симула. В момент своего появления (в 1967 году), этот язык программирования предложил поистине революционные  идеи: объекты, классы, виртуальные методы и др., однако это всё не было воспринято современниками как нечто грандиозное. Тем не менее, большинство концепций были развиты Аланом Кэйем и Дэном Ингаллсом в языке Smalltalk. Именно он стал первым широко распространённым объектно-ориентированным языком программирования.

 

20. Критерии качества программы.

• Корректность – очевидно, что программа должна работать правильно, иначе нет смысла ее писать.

• Надежность – программа не должна «зависать» или «зацикливаться» при любых исходных данных.

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

• Эргономичность – удобство для пользователя. Не забывайте, что первым пользователем Вашей программы будете Вы сами.

• Читабельность – удобство для программиста. К сожалению, по прошествии времени, программа забывается, и давно написанную Вами программу невозможно прочитать как книгу, Вы должны заново принимать все когда-то принятые решения. Поэтому нет смысла создавать себе дополнительные трудности в виде плохо структурированного и плохо читаемого текста. Для решения этой проблемы существует ряд принципов написания текста программы.

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

2. Принято вложенные блоки писать со смещением вправо.

3. Используйте везде, где можно, аккуратные столбцы.

4. Не жалейте пробелов – «а + b» читается лучше, чем «a+b».

5. Не прячьте операторные скобки (begin … end в Паскале, {…} в С) в конец строки – в этом случае их трудно найти и определить начало и конец блока.

• Переносимость – программа должна работать не только на Вашем компьютере, но и на других!

 

21. Дружественность.

Интерфейс (interface) - комплекс условий, обеспечивающих взаимодействие объектов в окружающем информационном пространстве. Любая интерактивная  система или программа нуждается в интерфейсе, обеспечивающем удобство и простоту работы человека (пользователя). "Дружественность" интерфейса к пользователю, обеспечивающая, в конечном итоге, эффективность системы в целом, сегодня обозначается термином usability (его общеупотребительный русскоязычный эквивалент – юзабилити, в свою очередь происходящее от англ. use — использовать и ability — способность). Дружественный интерфейс должен предотвращать ситуации, которые могут закончиться ошибками, предупреждать пользователя о возможных ошибках и способах их предупреждения, предлагать отмену ошибочных действий. Дружественность интерфейса означает обеспечение простоты работы в сочетании с реализацией доступа к широким функциональным возможностям. Один из возможных путей поддержания простоты работы - представление на экране информации, минимально необходимой для выполнения пользователем очередного шага задания. Другой путь - размещение и представление элементов управления на экране с учетом их смыслового значения и логической взаимосвязи.

 

22. Диалоговые  программы.

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

Диалоговое окно (англ. dialog box) — в графическом  пользовательском интерфейсе специальный  элемент интерфейса, окно, предназначенное  для вывода информации и (или) получения ответа от пользователя. Получил своё название потому, что осуществляет двустороннее взаимодействие компьютер-пользователь («диалог»): сообщая пользователю что-то и ожидая от него ответа.

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

Простейшим типом  диалогового окна является окно сообщения (англ. message box, англ. alert box), которое выводит сообщение и требует от пользователя подтвердить, что сообщение прочитано. Для этого обычно необходимо нажать кнопку OK. Окно сообщения предназначено для подтверждения системой выполнения команды, вывода сообщения об ошибке и тому подобных случаев, не требующих от пользователя какого-либо выбора.

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

 

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

Существуют различные  классификации языков программирования.

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

Если язык близок к естественному языку программирования, то он называется языком высокого уровня, если ближе к машинным командам, – языком низкого уровня.

В группу языков низкого уровня входят машинные языки  и языки символического кодирования: Автокод, Ассемблер. Операторы этого  языка – это те же машинные команды, но записанные мнемоническими кодами, а в качестве операндов используются не конкретные адреса, а символические имена. Все языки низкого уровня ориентированы на определенный тип компьютера, т. е. являются машинно–зависимыми.

Машинно–ориентированные языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.).

К языкам программирования высокого уровня относят Фортран (переводчик формул – был разработан в середине 50–х годов программистами фирмы IBM и в основном используется для программ, выполняющих естественно – научные и математические расчеты), Алгол, Кобол (коммерческий язык – используется, в первую очередь, для программирования экономических задач), Паскаль, Бейсик (был разработан профессорами Дармутского колледжа Джоном Кемени и Томасом Курцом.), Си (Деннис Ритч – 1972 году), Пролог (в основе языка лежит аппарат математической логики) и т.д.

Информация о работе Шпаргалка по "Программированию"