Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Парадигмы программирования.

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

В процессе развития компьютеров и методов обработки информации появилось большое количество языков программирования: Фортран, Пролог, Алгол, Ada, Вasic, Modula, Лисп, Паскаль, PL/1, Cи, Си++, Java и другие. Все языки условно можно поделить на группы, которые отличаются друг от друга походом к решению задачи на компьютере и, соответственно, методами построения программ для реализации их решения. Так сформировалось понятие парадигмы программирования. Понятие это еще не устоявшееся, и в литературе можно встретить различные описания парадигм программирования. Мы выделим три наиболее часто встречающихся: директивное программирование, декларативное программирование и объектно-ориентированное программирование

Директивное программирование (которое в литературе так же определяется как императивное, процедурное, процедурно-ориентированное, модульное, структурное) предполагает такое решение задачи, где программа представляет собой последовательность команд, которую компьютер затем транслирует в машинный код. Представителями таких языков программирования из перчисленных яяются Фортран, Алгол, Ada, Вasic, Modula, Паскаль, PL/1, Cи.

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

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

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

 

 

1) Постановка задачи в виде текста, или информационных таблиц, или математических формул, или в любой другой форме, корректно описывающей задачу данной предметной области, например:

Задача: Посчитать объем выпускаемой продукции за некоторый промежуток времени, если известна производительность труда в каждый момент этого промежутка.

Задача: Рассчитать демографию населения на ближайшие 10 лет.

Задача: Решить квадратное уравнение.

2) Составление математической модели задачи. Задача должна быть максимально формализована и описана в виде математических формул, например:

W – объем продукции;

t0,t1 – начальное и конечное значения времени t;

T = t1 – t0;

Z(t) – производительность труда.

Производительность можно вычислить при помощи интеграла на промежутке от t до t1. интеграл от Z(t) по dt:

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

4)Составление алгоритма решения задач – четко обозначенная последовательность действий по решению конкретной задачи. Каждый алгоритм обладает следующими свойствами:

a. Конечность алгоритма, то есть решение задачи должно быть получено за конечное количество операций;

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

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

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

Порядок выполнения операций:

 
 

 


…………

       
   
 
   
 
 

 

 


Арифметический блок (или блок присваивания):

 

 

Условный блок:

 

нет да

 
 

 


Остановимся подробней на этапе составления алгоритма. Пусть дана задача: решить квадратное уравнение. Очевидно, что её математической моделью будет уравнение вида ax² +bx+c=0. Анализ задачи позволяет выявить следующие численные операции для нахождения решения:

a) x1,x2 = (-b±(b²-4ac)½)/2a, D=b²-4ac>0

a≠0

b) a≠0, D<0 – нет решений

c) a=0 => bx+c=0 => x= (-c)/b

b≠0

d) a=0 и b=0 => c=0

e) a=0, b=0 и c=0 – x- любое действительное число

f) a=0, b=0, c≠0 – нет решений.

 

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

 

5) Программирование – это запись алгоритма решения задачи на каком-либо языке программирования.

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

1-ЯВУ-языки высокого уровня; приближены к естественным языкам (Бейсик, Паскаль). Их задача: как можно быстрее запрограммировать.

2-ЯНУ-языки низкого уровня; приближены к машинным языкам. Они делятся на: а) МЯ-машинные языки;

b) МОЯ-машинно-ориентированные языки (выполняют машинные команды);

c) ЯСК-языки символического кодирования (это машинные языки, но записывающие с помощью символов).

В настоящее время ЯНУ получили общее название – ассемблеры.

 

6) Трансляция - это перевод с символического на машинный.

символическая команда -> машинная команда

Трансляция ЯВУ: символическую программу заменяют последовательностью машинных команд.

Существует 2 типа трансляторов:

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

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

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

 

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

 

8) Отладка-это процесс поиска ошибок во время исполнения программы. Для отладки программы обычно используют следующие приемы:

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

b) если результаты не равны, то поиск ошибки осуществляется методом трассировки;

с) просмотр промежуточных результатов вычисления.

Трассировка-это отслеживание порядка выполнения операторов программ. Этот способ реализуется путем вставки в программу промежуточных операторов печати. Существуют автоматические способы трассировки.

При отладке могут быть обнаружены ошибки 2-х типов:

-ошибки алгоритма;

-ошибки вычисления.

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

 

9) Выполнение.

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




Поделиться с друзьями:


Дата добавления: 2015-01-03; Просмотров: 430; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.