Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Управление и оптимизация / Osnovi informatsionnikh i komputernikh tekhnologiy 2011

.pdf
Скачиваний:
50
Добавлен:
02.09.2019
Размер:
2.13 Mб
Скачать

2.Научиться создавать web-страницы, содержащие различные типы данных.

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

4.Развить инструментальную компетенцию путем применения на

практике различных технологий разработки web-приложений.

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

Технические средства: ПЭВМ с установленной операционной системой

Windows.

Программные средства: браузер, текстовый редактор.

Практическая часть.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<!—указывается тип документа--> <html>

<head> <!—заголовок страницы-->

<meta http-equiv="Content-Type" content="text/html; charset=windows1251">

<link rel="stylesheet" type="text/css" href="style.css" ><!--пример указания стиля оформления элементов страницы. Данную информацию можно вынести в отдельный файл стилей-->

</head>

<body>

<div class="colontitul"> <!-- Блок, содржащий информацию о заголовке

-->

<h1>1</h1>

</div>

<div class="menu"> <p>Верстка блоками div 1

2<!—меню, которое расположено слева и имеет ширину 30% от страницы-->

</div>

<div class="content"> <!—основной текст документа--> <P>3

</div>

<div class="colontitul">

91

<!-- Блок, обычно содержащий контактную информацию -->

<h2>4</h2>

</div>

</body>

</html>

Файл стилевого оформления:

div.colontitul {}

div.menu { width:30%; height:100%; float:left; background-color: #105783} div.content { width:70%; float:left }

div.colontitul { clear:both }

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

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

При оформлении можно использовать фоновые изображения.

При блочной верстке обычно сначала создают макет в каком либо из графических редакторов и потом уже на основании это рисунка создают web страницу.

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

<style type="text/css"> a:link {color: #808080}

a:visited {color: #FFFF00} a:hover {color: #00FF00} a:active {color: #0000FF}

</style>

92

ОСНОВЫ ПРОГРАММИРОВАНИЯ

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

Основные принципы программирования

Научно-технические и управленческие задачи, которые ставятся перед исполнителем постоянно усложняются. Для эффективного решения данных задач активно используются программные средства и математический аппарат. Разработка прикладного программного обеспечения и алгоритмических структур является важным аспектом внедрения информационных технологий в системе Государственной противопожарной службы и МЧС в целом. Компьютерные программы обеспечивают использование математических и инженерных моделей, информационносправочных систем, экспертных программ, способствуют проектноконструкторской деятельности. С использованием программного обеспечения проводится математическое моделирование различных процессов для исследования динамики пожара, разработки оптимальных тактических планов действий подразделений пожарной охраны, проектирования пожарной техники, средств защиты пожарного, анализ экспериментальных данных и многое другое.

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

Программирование является творческим процессом и сочетает в себе элементы искусства, фундаментальных наук (прежде всего информатики и математики), элементы инженерии и т.д. Один из основоположников теоретического и системного программирования А.П.Ершов сказал: “Программист должен обладать способностью первоклассного математика к абстракции и логическому мышлению в сочетании с эдисоновским талантом сооружать все, что угодно, из нуля и единиц. Он должен сочетать аккуратность бухгалтера с проницательностью разведчика, фантазию автора детективных романов с трезвой практичностью экономиста. А кроме того, программист должен иметь вкус к коллективной работе, понимать интересы пользователя и много другое...”. В узком смысле слова «программирование» рассматривается как кодирование алгоритмов на заданном языке, то есть

93

написание программного кода на языке программирования, который, как и любой другой язык, обладает своим алфавитом и синтаксисом. Также под термином «программирование» может пониматься разработка логических схем, запись информации в постоянное запоминающее устройство (ПЗУ), «перепрошивка» устройств микроэлектроники с использованием программаторов. Главной задачей прикладного программирования является максимизация эффективности решения поставленной задачи. Для этого необходимо знание основ программирования: алгоритмизация, логика, программирование.

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

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

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

Тестирование – составление специальных наборов входных данных, исполнение программы и проверка полученных результатов в поисках возможных ошибок.

Отладка – поиск и исправление ошибок в программе.

При написании программного обеспечения важной составляющей является его документационное сопровождение.

На схеме приведены основные стадии разработки программного обеспечения.

Как уже отмечалось выше, понятие «программирование» является достаточно широким и в зависимости от решаемой задачи можно выделить несколько типов программирования.

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

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

94

Системное программирование – раздел программирования,

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

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

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

Выделяют следующие основные парадигмы программирования.

1.Процедурное (императивное) программирование (ПП).

2.Структурное программирование или модульное.

3.Объектно-ориентированное программирование (ООП).

4.Компонентно-ориентированое программирование (КОП).

5.Аспектно-ориентированое программирование (АОП).

6.Функциональное программирование.

7.Логическое программирование.

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

Структурное программирование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Программа разбивается на составные части – программные модули при этом каждый модуль может разрабатываться, программироваться, транслироваться и тестироваться независимо от других. Разработана Н. Виртом.

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

95

В отличие от ООП компонентно-ориентированное программирование

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

Аспектно-ориентированое программирование основано на идее разделения программы на модули и введения понятия «аспект», который пересекается с модулями, образуя процесс «сплетение сущностей», который выдает классы.

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

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

Язык программирования строится в соответствии с той или иной базовой моделью вычислений и парадигмой программирования.

Языки программирования

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

Программа обычно представляет собой некоторый алгоритм в форме, понятной для исполнителя (например, компьютера).

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

Внастоящее время существует огромное количество языков программирования. Но все они могут быть разделены на два больших класса:

компилируемые и интерпретируемые.

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

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

ине может быть запущена без интерпретатора.

96

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

Наиболее известный пример низкоуровнего языка — ассемблера.

Высокоуровневый язык программирования - язык программирования,

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

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

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

Процедурные или императивные языки – языки, которые представляют собой последовательность выполняемых операторов. К таким языкам относятся C, Ada, Pascal, Smalltalk, КОБОЛ, Фортран, Модула-2, Глагол (русский аналог Оберона), и некоторые другие. Код программы на процедурном языке может быть записан следующим образом: operator1; operator2; operator3, …

Структурное программирование, основная идея которого заключаются в том, что существует только четыре структурных оператора. Основные элементы: линейная цепочка операторов – любая задача может быть разбита на несколько подзадач, условный оператор – подзадача выполняется в зависимости от результа, полученного на предыдущем шаге, оператор цикла с проверкой условий до тела цикла и оператор цикла с проверкой условий после тела цикла. Используя эти операторы, можно построить сколь угодно сложную программу. Структурные языки программирования: Алгол, Basic, QBASIC, Фортран, Фокал, Cg.

97

Объектно-ориентированные языки основаны на построении объектов как набора данных и операций над ними. Они объединяют и расширяют возможности, присущие процедурным и аппликативным языкам. К объектно-

ориентированным языкам относятся C++, Object Pascal, Java, Delphi, Python, JavaScript. В настоящее время именно этот тип языков получил наибольшее распространение. Наряду с ними активно развиваются аспектноориентированные языки.

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

function1(function2(function3(beginning_date)));

К аппликативным языкам относится язык LISP.

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

Код программы на языке системы правил может быть записан следующим образом:

if condition1 then operator1; if condition2 then operator2; if condition3 then operator3;

Можно выделить так же сценарные, или скриптовые языки

программирования (Perl, Python, PHP, Tcl (Tool command language), Ruby, ERM, Lua);

Наиболее распространёнными высокоуровневыми языками являются

C++, Visual Basic, Java, Python, Ruby, Perl, Delphi (Pascal), PHP.

Блок-схемы и алгоритмы

Основные понятия

Одним из основных этапов написания программы является создание алгоритма и лишь затем его запись на одном из языков программирования. Правильность и быстрота работы программы зависит от того насколько правильно и рационально был составлен алгоритм.

Слово «алгоритм» происходит от латинского написания имени альХорезми - algorithmi, под которым в средневековой Европе знали величайшего математика из Хорезма (город в современном Узбекистане) Мухаммеда бен Мусу, жившего в 783-850 гг.

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

98

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

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

1.Конечность – любой алгоритм должен быть завершен за конечное число шагов. Он не может быть бесконечным.

2.Результативность – в результате выполнения алгоритма должен быть получен результат. Отметим, что установление факта, что задача решения не имеет, является тоже результатом исполнения алгоритма.

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

4.Понятность – команды алгоритма должны быть понятны исполнителю. В алгоритме используются только команды из системы команд исполнителя.

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

6.Массовость – алгоритм должен обеспечивать решение класса задач определенного типа.

7.Эффективность – каждый шаг алгоритма должен быть выполнен точно и за конечное время.

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

На практике наиболее распространены следующие формы представления алгоритмов.

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

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

99

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

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

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

Формальный язык или язык программирования. Обычно используется для алгоритмов, ориентированных на исполнителя – ЭВМ. Алгоритм, записанный на языке программирования – программа.

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

Структура алгоритма

В основе построения алгоритма лежат следующие базовые структуры.

Следование. При использовании этой структуры все действия в алгоритме выполняются последовательно. Алгоритм в этом случае называется линейным.

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

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

Графический способ представления алгоритмов

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

100