Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


Ётапы решени€ задач на компьютере




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

1. ѕостановка задачи. Ќа этом этапе формулируетс€ цель решени€ задачи, анализируютс€ требовани€ и подробно описываетс€ содержание задачи, вы€вл€ютс€ услови€, при которых решаетс€ задача, а также определ€ютс€ входные параметры, которые называютс€ исходными данными. Ќапример, дл€ задачи, рассмотренной в п.1.3, целью €вл€етс€ вычисление периметра треугольника, а исходными данными €вл€ютс€ координаты его вершин, при этом условием €вл€етс€ то, что вершины треугольника лежат на плоскости.

2. ‘ормальное построение модели задачи. Ќа этом этапе составл€етс€ формальна€ модель решени€ задачи, например, модель базы данных, адекватна€ оригиналу, модель объектов и потоков информации. ƒл€ нашей задачи мы определили, что периметр треугольника вычислим, если будем знать длины его сторон, а длины сторон определ€ютс€ по координатам вершин треугольника.

3. ѕостроение математической модели решени€ задачи. Ётот этап иначе называют формализацией задачи, на котором описательна€ модель записываетс€ с помощью какого-либо формального €зыка, например, математического. ¬ решаемой задаче дл€ вычислени€ периметра используем формулу –=AB+BC+AC, а дл€ вычислени€ длины одной стороны формулу .

4. –азработка алгоритма. ѕроцесс обработки данных разбиваетс€ на отдельные самосто€тельные блоки и определ€етс€ последовательность выполнени€ этих блоков. ƒл€ рассматриваемого примера мы вынесли в самосто€тельный блок (в подпрограмму-функцию) вычисление рассто€ни€ между двум€ точками. ¬ызов подпрограммы будет осуществл€тьс€ из основной программы.

5. ѕрограммирование, составление программы. Ќа этом этапе алгоритм записываетс€ на каком-либо конкретном €зыке программировани€. ѕрограмма на любом €зыке состоит из операторов - так называютс€ отдельные действи€, разрешенные в €зыке. „исло операторов в любом €зыке ограничено и правила их написани€ жестко заданы. ќператоры записываютс€ с помощью зарезервированных в €зыке ключевых слов и синтаксических правил €зыка.

6. “естирование и отладка. ѕрограмма, которую удалось откомпилировать, не об€зательно работает правильно. ќна может содержать ошибки, дл€ вы€влени€ которых предназначен этап отладки - поиска и устранени€ синтаксических и логических ошибок в программе.  ак правило, компил€ци€ и отладка выполн€ютс€ программистом в тесной взаимосв€зи.

¬озможны программные ошибки трех видов:

Ј синтаксические (ошибки в правилах €зыка);

Ј алгоритмические (ошибки в логике программы);

Ј ошибки времени исполнени€, возникающие в процессе работы запущенной программы.

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

ќшибки времени исполнени€ возникают как результат некорректных действий пользовател€, недопустимых операций над данными (например, попытки извлечь квадратный корень из отрицательного числа, поделить на ноль) или ошибок программного и аппаратного обеспечени€ Ё¬ћ. –азвитые системы программировани€ предлагают обработку таких ошибок с помощью механизма исключений.

¬ отладке сложных программных комплексов есть существенные отличи€, дл€ них же требуютс€ и описанные далее этапы разработки.

≈сли программна€ система сложна и ее разрабатывает компани€-исполнитель по заданию заказчика, то программа сначала тестируетс€ людьми компании-исполнител€ (тестологами). Ётот этап называют альфа-тестированием.

7. ѕо истечении определенного времени тестировани€, когда количество ошибок резко уменьшаетс€, начинаетс€ интенсивное использование системы у заказчика с целью вы€влени€ и устранени€ максимального количества ошибок перед выходом системы на рынок. Ётот процесс называетс€ бета-тестированием. ¬ том случае, если ошибки не найдены, говор€т, что при тестировании системы получен положительный результат. и выполнен этап анализа результатов.

8. ¬недрение и сопровождение. ≈сли заказчик удовлетворен качеством программного продукта, то наступает период его внедрени€ в эксплуатацию. ѕосле того, как заказчик подписывает акт приемки, проект разработки программной системы считаетс€ завершенным.  ак правило, сотрудничество исполнител€ по обслуживанию системы с заказчиком продолжаетс€, которое называетс€ сопровождением программы.

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

√лавным качеством любого программного продукта €вл€етс€ его надежность.

ѕостановка задачи, формальное построение модели задачи и построение математической модели решени€ задачи,построение алгоритма Ц это этапы системного анализа задачи (если задача сложна€, то рассматривают также этапы конструировани€ информационной системы (»—) - разработка архитектуры »—, разработка структур программ и разработка схемы информационных обменов »—), а далее идет этап кодировани€ алгоритма.

Ёволюци€ и классификаци€ €зыков программировани€. ќсновные пон€ти€ €зыков программировани€

јлгоритм Ц это точно определенное описание способа решени€ задачи в виде конечной последовательности действий. »наче говор€, это описание €вл€етс€ формальным

ѕрограмма Ц это логически упор€доченна€ последовательность команд, необходима€ дл€ управлени€ компьютером. ѕрограмма €вл€етс€ фактической реализацией алгоритма на том или ином конкретном €зыке программировани€. ѕрограмма, с которой работает процессор, представл€ет собой последовательность чисел, называемую машинным кодом. Ќаписать программу в машинном коде достаточно сложно и поэтому дл€ представлени€ алгоритма в виде, пон€тном компьютеру, служат €зыки программировани€.

языки программировани€ - э тоискусственные €зыки. ќни отличаютс€ от естественных ограниченным, достаточно малым числом слов, значение которых пон€тно компьютеру (трансл€тору), и строгими правилами записи команд (операторов). —овокупность требований дл€ записи команд образуют синтаксис €зыка, а смысл каждой команды Ц семантику €зыка.

≈сли €зык программировани€ ориентирован на конкретный тип процессора и учитывает его особенности, то он называетс€ €зыком программировани€ низкого уровн€. УЌизкий уровеньФ здесь означает, что операторы близки к машинному коду и ориентированы на конкретный тип процессора. языком самого низкого уровн€ €вл€етс€ €зык јссемблера, который представл€ет каждую машинную команду в виде символьных условных обозначений, называемых символьными мнемониками. ѕеревод программы на €зыке јссемблера в машинный €зык называетс€ транслитерацией. ѕрограмма, написанна€ на €зыке низкого уровн€, может быть использована только в той операционной среде, в которой она была создана. — помощью €зыков низкого уровн€ создаютс€ очень эффективные и компактные программы, так как разработчик получает доступ ко всем возможност€м процессора.

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

языки программировани€ прин€то делить на п€ть поколений. ¬ первое поколение вход€т €зыки, созданные в начале 50-х годов XX века. Ёто были первые €зыки ассемблера, созданные по принципу " одна инструкци€ Ц одна строка".

–асцвет второго поколени€ €зыков программировани€ пришелс€ на конец 50-х Ц начало 60-х годов. “огда был разработан символический ассемблер, в котором по€вилось пон€тие переменной. ќн стал первым полноценным €зыком программировани€. Ѕлагодар€ его возникновению заметно возросли скорость разработки и надежность программ.

ѕо€вление третьего поколени€ €зыков программировани€ прин€то относить к 60-м годам. ¬ это врем€ родились универсальные €зыки высокого уровн€, с их помощью удаетс€ решать задачи из любых областей. “акие качества новых €зыков, как относительна€ простота, независимость от конкретного компьютера и его операционной системы, возможность использовани€ мощных синтаксических конструкций, позволили резко повысить производительность труда программистов. ѕодавл€ющее большинство €зыков этого поколени€ успешно примен€етс€ и сегодн€.

— начала 70-х годов по насто€щее врем€ продолжаетс€ период €зыков четвертого поколени€. Ёти €зыки предназначены дл€ реализации крупных проектов, повышени€ их надежности и скорости создани€. ќни обычно ориентированы на специализированные области применени€, где хороших результатов можно добитьс€, использу€ не универсальные, а проблемно-ориентированные €зыки, оперирующие конкретными пон€ти€ми узкой предметной области.  ак правило, в эти €зыки встраиваютс€ мощные операторы, позвол€ющие одной строкой описать такую функциональность, дл€ реализации которой в €зыках младших поколений потребовались бы тыс€чи строк исходного кода.

–ождение €зыков п€того поколени€ произошло в середине 90-х годов.   ним относ€тс€ также системы автоматического создани€ прикладных программ с помощью визуальных средств разработки, без знани€ программировани€. √лавна€ иде€, котора€ закладываема€ в эти €зыки,- возможность автоматического формировани€ результирующего текста на универсальных €зыках программировани€ (который потом требуетс€ откомпилировать). »нструкции же ввод€тс€ в компьютер в максимально нагл€дном виде с помощью методов, наиболее удобных дл€ человека, не знакомого с программированием.

— точки зрени€ способа выполнени€ программы компьютером, €зыки программировани€ дел€тс€ на компилируемые и интерпретируемые.

“рансл€тор Ц это программа или техническое средство, выполн€ющее преобразование программы, представленной на одном из €зыков программировани€, в программу на другом €зыке, в определенном смысле равносильную первой.

 омпил€тор Ц это программа, предназначенна€ дл€ трансл€ции исходного текста программы с высокоуровневого €зыка в объектный код.

 омпилировать означает проводить трансл€цию программы с проблемно-ориентированного €зыка на машинно-ориентированный €зык (создание объектного кода) дл€ ее исполнени€.  омпил€ци€ в программировании Ц преобразование программы, представленной на одном из €зыков программировани€, в коды на машинно-ориентированном €зыке, которые принимаютс€ и исполн€ютс€ непосредственно процессором. –езультатом компил€ции €вл€етс€ объектный файл с необходимыми внешними ссылками дл€ компоновщика. ¬ходной информацией дл€ компил€тора €вл€етс€ описание алгоритма или программа на €зыке программировани€. Ќа выходе компил€тора находитс€ эквивалентное описание алгоритма на машинно-ориентированном €зыке (объектный код). ѕрограмма уже переведена в машинные инструкции, однако еще не полностью готова к выполнению. ¬ объектном файле имеютс€ ссылки на различные системные функции. ƒаже если в программе €вно не упом€нута ни одна функци€, необходим, по крайней мере, один вызов системной функции Ц завершение программы и освобождение всех принадлежащих ей ресурсов.

 омпоновщик Ц модуль системы программировани€ или самосто€тельна€ программа, котора€ собирает результирующую программу из объектных модулей и стандартных библиотечных модулей. Ётот процесс называетс€ компоновкой (сборкой), и его результатом €вл€етс€ исполн€емый файл.

»сполн€емый файл Ц это файл, который может быть обработан или выполнен компьютером без предварительной трансл€ции. ќбычно исполн€емый файл получаетс€ в результате компил€ции и компоновки объектных модулей и содержит машинные команды и/или команды операционной системы.

»нтерпретаци€ программ Ц процесс непосредственного покомандного выполнени€ программы без предварительной компил€ции, "на лету". »нтерпретатор анализирует и тут же выполн€ет программу покомандно, по мере поступлени€ ее исходного кода на вход интерпретатора. јлгоритм работы простого интерпретатора таков:

1. прочитать инструкцию;

2. проанализировать инструкцию и определить соответствующие действи€;

3. выполнить соответствующие действи€;

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

»нтерпретаци€ св€зана с получением переменными значений в процессе работы программы.

ѕроцедура интерпретации не €вл€етс€ процессом создани€ исполн€емого файла. »нтерпретаци€ не позвол€ет изменить синтаксис €зыка Ц набор правил построени€ фраз алгоритмического €зыка, позвол€ющий определить осмысленные предложени€ в этом €зыке. »нтерпретаци€ не позвол€ет изменить семантику (смысл) €зыка программировани€. ќбычно при описании семантики в рамках операционного подхода исполнение конструкций €зыка программировани€ трактуетс€ с помощью некоторой воображаемой (абстрактной, виртуальной) Ё¬ћ.

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

 лассификацию основных €зыков программировани€, как компилируемых, так и интерпретируемых, можно представить на схеме таким образом (рис. 14):

языки программировани€
ѕроцедурные
ќбъектно-ориентированные
ƒекларативные
ќперационные
—труктурные
ќбъектные
¬изуальные
‘ункциональные
Ћогические

–ис. 14.  лассификаци€ €зыков программировани€

ѕроцедурное программирование, по сути дела, есть отражение фон-Ќеймановской архитектуры компьютера. ѕрограмма, написанна€ на процедурном €зыке, представл€ет собой последовательность команд, определ€ющих алгоритм решени€ задачи. ќсновна€ иде€ процедурного программировани€ - использование пам€ти дл€ хранени€ данных. ќсновна€ команда - присваивание, с помощью которой определ€етс€ и мен€етс€ состо€ние отдельных €чеек пам€ти компьютера. ѕрограмма производит преобразование содержимого пам€ти, измен€€ его от исходного состо€ни€ к результирующему.

–азличают следующие основные €зыки процедурного программировани€:

Ј ‘ортран Ц создан в начале 50-х годов 20-го века дл€ программировани€ научно-технических задач;

Ј  обол Ц создан в конце 60-х годов 20-го века дл€ решени€ задач обработки больших объемов данных, хран€щихс€ на различных носител€х данных;

Ј јлгол (1960 год) Цмногоцелевой расширенный €зык программировани€. ¬ нем впервые введены пон€ти€ "блочна€ структура программы" и "динамическое распределение пам€ти".

¬ середине 60-х годов 20-го века был создан специализированный €зык программировани€ дл€ начинающих Ц BASIC. ќн характеризуетс€ простотой освоени€ и наличием универсальных средств дл€ решени€ научных, технических и экономических задач, а также задач, например, игровых.

¬се перечисленные выше €зыки были ориентированы на различные классы задач, но они в той или иной мере были прив€заны к конкретной архитектуре Ё¬ћ.

¬ 1963-1966 гг. был создан многоцелевой универсальный €зык PL-1. Ётот €зык хорошо приспособлен дл€ исследовани€ и планировани€ вычислительных процессов, моделировани€, решени€ логических задач, разработки систем математического обеспечени€.

язык ѕаскаль (Pascal, 1968-1971 гг.) - €зык процедурного программировани€ наиболее попул€рный дл€ персональных компьютеров, который и в насто€щее врем€ успешно примен€етс€ при обучении программированию. ¬ основу €зыка Pascal положен подход от общей задачи к частным (более простым и меньшим по объему).   основным принципам, которыми обладает ѕаскаль, можно отнести:

Ј —труктурное программирование, которое основано на использовании подпрограмм и независимых структур данных;

Ј ѕрограммирование "сверху-вниз", когда задача делитс€ на простые, самосто€тельно решаемые задачи. «атем выстраиваетс€ решение исходной задачи полностью сверху вниз.

язык јƒј (1979 г.) назван в честь первой программистки јды Ћавлейс - дочери Ѕайрона. ≈го отличает модульность конструкций.

язык (—и, начало 70-х годов) также относитс€ к €зыкам процедурного программировани€. ѕервоначальный его вариант планировалс€ как €зык дл€ реализации операционной системы Unix вместо €зыка јссемблера. ќдной из особенностей €зыка —и €вл€етс€ то, что различи€ между выражени€ми и операторами сглаживаютс€, что приближает его к функциональным €зыкам программировани€.  роме того, в €зыке —и отсутствует пон€тие процедуры, а использование подпрограмм основано на пон€тии функции, котора€ может сочетать в себе возможности процедуры. — одной стороны, по набору управл€ющих конструкций и структур данных его можно отнести к €зыкам высокого уровн€, а с другой Ц он имеет набор средств пр€мого обращени€ к функциональным узлам компьютера, а это означает, что его можно использовать как операционный €зык.

–ассмотрим другие группы €зыков программировани€.

  декларативным €зыкам программировани€ относ€тс€ функциональные и логические €зыки.

‘ункциональное программирование - это способ составлени€ программ, в которых единственным действием €вл€етс€ вызов функции. ¬ функциональном программировании не используетс€ оперативна€ пам€ть, как место дл€ хранени€ данных, а, следовательно, не используютс€ промежуточные переменные, операторы присваивани€ и циклы.  лючевым пон€тием в функциональных €зыках €вл€етс€ выражение. ѕрограмма, написанна€ на функциональном €зыке, представл€ет собой последовательность описани€ функций и выражений. ¬ыражение вычисл€етс€ сведением сложного к простому. ¬се выражени€ записываютс€ в виде списков. ѕервым функциональным €зыком стал €зык Ћисп (LISP, LIST Processing- обработка списков), он создан в 1959 г. Ётот €зык позвол€ет обрабатывать большие объемы текстовой информации.

Ћогическое программирование - это программирование в терминах математической логики. ¬ 1973 году был создан €зык искусственного интеллекта ѕролог (Prolog, Programming in Logic). ѕрограмма на €зыке ѕролог строитс€ из последовательности фактов и правил, затем формулируетс€ утверждение, которое ѕролог пытаетс€ доказать с помощью правил. язык сам ищет решение с помощью методов поиска и сопоставлени€, которые в нем заложены. Ћогические программы не отличаютс€ высоким быстродействием, так как процесс их выполнени€ сводитс€ к построению пр€мых и обратных цепочек рассуждений разнообразными методами поиска.

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

Ј создание, преобразование и удаление таблиц в Ѕƒ;

Ј поиск, отбор, сортировка по запросам пользовател€;

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

ƒл€ обработки больших массивов информации и выборки записей по определенным признакам был создан структурированный €зык запросов SQL (Structured Query Language Ч "€зык структурированных запросов"). язык SQL Ц это стандартный €зык работы с рел€ционными (состо€щими из таблиц) базами данных.

—егодн€ в мире ведущие производител€ми —”Ѕƒ €вл€ютс€ компании Microsoft (SQL Server), IBM (DB2), Oracle, Software AG (Adabas), Informix и Sybase. ѕрактически в каждой —”Ѕƒ имеетс€ свой встроенный €зык работы с Ѕƒ, €вл€ющийс€ той или иной разновидностью SQL. “ак, например, в Oracle имеетс€ встроенный €зык PL/SQL, в Informix Ц INFORMIX 4GL, в Adabas Ц Natural и т.д.

языки программировани€ дл€ компьютерных сетей €вл€ютс€ интерпретируемыми. »нтерпретаторы дл€ них распростран€ютс€ бесплатно, а сами программы Ц в исходных текстах. “акие €зыки называютс€ также €зыками написани€ скриптов.

Ј ‘ормат HTML (HyperText Markup Language) Ц универсальный формат разметки гипертекста, используемый дл€ подготовки Web-документов дл€ »нтернета. язык позвол€ет форматировать текст, добавл€ть графические образы, работать с таблицами и организовывать св€зь одного документа с другим с помощью механизма гиперссылок (см. п. 2.3). ¬ отличие от €зыков программировани€ и других форматов разметки, HTML довольно "демократичен", синтаксическа€ ошибка в разметке обычно не приводит к "зависани€м" или каким-либо сообщени€м об ошибках, хот€, разумеетс€, может вызвать неправильное форматирование документа.

Ј язык Perl (1980 г.) содержит многочисленные функции работы со строками, массивами, всевозможные средства преобразовани€ данных.

Ј язык PHP (1995-1997 гг.) обладает средствами доступа к Ѕƒ и используетс€ создател€ми динамических сайтов во всем мире.

Ј язык Tcl/Tk (конец 80-х годов) состоит из мощных команд, предназначенных дл€ работы с абстрактными нетипизированными объектами и позвол€ет создавать программы с графическим интерфейсом.

Ј ‘ормат VRML (1994 г.) создан дл€ организации виртуальных трехмерных интерфейсов в »нтернете.

Ј ‘ормат XML. — 1996 г. идет работа над созданием универсального €зыка описани€ структуры документов. ¬ перспективе XML становитс€ заменой как €зыка HTML, так и других €зыков разметки.

  скриптовым можно отнести также объектно-ориентированные €зыки Java и €зык сценариев Javascript, используемые в программировании дл€ Web.





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-05-07; ћы поможем в написании ваших работ!; просмотров: 2507 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

„тобы получилс€ студенческий борщ, его нужно варить также как и домашний, только без м€са и развести водой 1:10 © Ќеизвестно
==> читать все изречени€...

679 - | 683 -


© 2015-2023 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.045 с.