Этапы разрешения задач на алгоритмы




 

Этапы решения задачи на ЭВМ.

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

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

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

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

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

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

Шестой этап – собственно программирование, т.е. запись разработанного алгоритма на языке программирования.

Седьмой этап – тестирование, отладка и исправление обнаруженных ошибок.

Отладка программы — это процесс поиска и устранения ошибок в программе, производимый по результатам её прогона на компьютере.

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

• синтаксическая отладка;

• отладка семантики и логической структуры;

• тестовые расчеты и анализ результатов тестирования;

• совершенствование программы.

Для выполнения тестирования необходимо подготовить тесты.

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

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

Девятый этап – сопровождение программы — это работы, связанные с обслуживанием программ в процессе их эксплуатации.

• доработка программы для решения конкретных задач;

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

 


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

 

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

Среди разработчиков современного программного обеспечения наиболее популярны следующие основные языки программирования. Список приведён в порядке убывания популярности: SQL. Java. XML. C++. HTML. VisualBasic. XSL. Delphi. Этот список языков программирования далеко не полный, однако это наиболее востребованные языки, знание которых могут потребовать у программиста при устройстве на работу. Все они являются языками программирования высокого уровня.

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

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

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


Базы данных

 

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

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

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

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

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

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

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

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

 


Компьютерная сеть

 

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

Что такое компьютерная сеть, назначение.

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

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

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

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

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

Классификация компьютерных сетей.

Компьютерные сети можно разделить по таким признакам:

по масштабу и территориальной распрстраненности:

- глобальные сети, WAN(Wide Area network);

- городские сети, MAN(Metroplitan Area network);

- кампусные сети, CAN(Campus Area network);

- локальные вычислительные сети, LAN(Localareanetwork);

- персональные сети;

по способу взаимодействия между собой компьютеров:

- клиент-серверные;

- одноранговые;

по способу соединения компьютеров между собой, топологии:

- кольцо;

- шина;

- звезда;

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

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

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

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

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

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

В топологии звезда, каждый адрес однозначно связан с портом, к которому присоединён конкретный компьютер. Поэтому нет такого «гуляния» пакетов.

В самом простом случае, для создания компьютерной сети необходимо иметь простой концентратор, сами компьютеры, присоединённые к концентратору кабелем «витая пара». Непосредственно подключение производится разъёмами RJ-45. Это что касается физического соединения. Для того чтобы сеть работала, необходимо сделать ряд настроек в операционной системе. О том, как настроить компьютерную сеть, более подробно будет рассказано в других статьях.


Сетевое оборудование

 

Сетевое оборудование — устройства, необходимые для работы компьютерной сети, например: маршрутизатор, коммутатор, концентратор, патч-панель и др. Можно выделить активное и пассивное сетевое оборудование.

Активное сетевое оборудование – оборудование, за которым следует некоторая «интеллектуальная» особенность. То есть маршрутизатор, коммутатор (свитч) и т.д. являются активным сетевым оборудованием.

Пассивное сетевое оборудование – оборудование, не наделенное «интеллектуальными» особенностями. Например - кабельная система: кабель (коаксиальный и витая пара (UTP/STP)), вилка/розетка (RG58, RJ45, RJ11, GG45), повторитель (репитер), патч-панель, концентратор (хаб), балун (balun) для коаксиальных кабелей (RG-58) и т.д. Также, к пассивному оборудованию можно отнести монтажные шкафы и стойки, телекоммуникационные шкафы.

Основными компонентами сети являются рабочие станции, серверы, передающие среды (кабели) и сетевое оборудование.

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

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

Виды сетевого оборудования.

1. Сетевые карты – это контроллеры, подключаемые в слоты расширения материнской платы компьютера, предназначенные для передачи сигналов в сеть и приема сигналов из сети.

2. Терминаторы – это резисторы номиналом 50 Ом, которые производят затухание сигнала на концах сегмента сети.

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

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

5. Коммутаторы (Switch) – управляемые программным обеспечением центральные устройства кабельной системы, сокращающие сетевой трафик за счет того, что пришедший пакет анализируется для выяснения адреса его получателя и соответственно передается только ему.

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

6. Маршрутизаторы (Router) – стандартные устройства сети, работающие на сетевом уровне и позволяющее переадресовывать и маршрутизировать пакеты из одной сети в другую, а также фильтровать широковещательные сообщения.

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

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

9. Мультиплексоры – это устройства центрального офиса, которое поддерживают несколько сотен цифровых абонентских линий. Мультиплексоры посылают и получают абонентские данные по телефонным линиям, концентрируя весь трафик в одном высокоскоростном канале для передачи в Internet или в сеть компании.

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




Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-03-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: