Сделай Сам Свою Работу на 5

Построение математической модели решаемой задачи.





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

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

 

Анализ исполнителя алгоритма.

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



Иными словами, на данном этапе необходимо всесторонне проанализировать возможности будущего исполнителя алгоритма.

 

Составление и тестирование алгоритма.

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

 

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

 

 

Языки программирования: понятие, классификация и общие принципы построения.



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

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

Программу, написанную на любом из таких языков, необходимо транслировать(перекодировать) в машинное представление, иначе она не будет выполнена ПЭВМ. Такую трансляцию выполняют специальные программы-трансляторы. Трансляторы с машинно-ориентированных ЯП называются ассемблерами, а с машинно-независимых ЯП - компиляторами и интерпретаторами.



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

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

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

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

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

Среди языков высокого уровня различают процедурно- и проблемно-ориентированные. К процедурно-ориентированным языкам относятся алгоритмически универсальные языки, предназначенные для описания алгоритмов решения любых задач. Данные ЯП имеют определенную, но, в то же время, достаточно широкую проблемную направленность . Например, специализацию на процедуры вычислительного характера(Фортран, Алгол-60)), обработки деловой информации(Кобол). Проблемно-ориентированные языки, как правило, являются более специализированными и ориентированы на описание процедур узкой предметной области(например, процессов обработки трехмерных деталей на станках с программным управлением), и при этом не обязательно являются алгоритмически универсальными. В качестве примеров таких языков приведем отечественные языки КИЕВ-67 и КИЕВ-70, предназначенные для описания процессов управления электронным лучом при обработке плоской поверхности.

ОСНОВНЫЕ ПОНЯТИЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ

В настоящее время существует большое количество языков программирования, в том числе, и для персональных компьютеров. Наиболее актуальны сейчас Паскаль, Бейсик, Visual Basic, СИ, Делфи, JavaScript – для создания WEB-страниц.

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

Составные части языка программирования:

Алфавит

Выражения

Операторы

 

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

- знаки арифметических операций;

- символы операций сравнения;

- символы математической логики;

- специальные символы;

- буквы и цифры.

Алфавит языка Бейсик

- арифметические операции:

- сложение +

- вычитание –

- умножение *

- деление /

- возведение в степень ^

Алфавит языка Бейсик

- операции сравнения:

- равно =

- не равно <>

- меньше <

- больше >

- меньше или равно <=

- больше или равно >=

Алфавит языка Бейсик

- основные операции математической логики:

- отрицание NOT

- или (дизъюнкция) OR

- и (конъюнкция) AND

Алфавит языка Бейсик

- специальные символы:

- знаки препинания

- ~ @ # № $ % & | \

- буквы и цифры:

- буквы русского алфавита

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

 

Язык программирования содержит также выражения, которые состоят из символов алфавита. Выражения можно разделить на

- арифметические;

- функциональные;

- отношения;

- логические;

- текстовые.

Выражения языка Бейсик

- арифметические

- только из констант (15+6)/4,3-7*9,8^3

- из переменных X-(A+B)^n*Z

- смешанные 5,4*С+(М-N)/8

- функциональные

- переменные или арифметические выражения являются аргументами функций языка, например sin(X-Y)

- отношения – это два выражения, между которыми стоит операция сравнения, например (X+Y) < 13*6,7*Z

- логические – это два и более выражений сравнения, связанных операциями математической логики, например A<2 AND B>3 OR C=5

- текстовые задаются

- в явном виде, например “Язык программирования”

- в виде переменных, например B$, CD$

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

Группы операторов языка Бейсик:

- общей обработки:

- присваивания, например A1=17,3*cos(M+N)/X2

I=I+1

- ввода данных, например INPUT S

- вывода результатов, например, на экран дисплея PRINT B

- управления:

- безусловного перехода, например GOTO 20

- условного перехода, например IF A+B>C THEN S=S+1

- завершения программы END

- цикла – выполняет серию операторов заданное число раз в цикле, например FOR I=1 TO N

Операторы

NEXT I

 

 

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.