Главная Обратная связь

Дисциплины:






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



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

1. Постановка задачи:

• сбор информации о задаче;

• формулировка условия задачи;

• определение конечных целей решения задачи;

• определение формы выдачи результатов;

• описание данных (их типов, диапазонов величин, структуры и т. п.).

2. Анализ и исследование задачи, модели:

• анализ существующих аналогов;

• анализ технических и программных средств;

• разработка математической модели;

• разработка структур данных.

 

 

3. Разработка алгоритма:

• выбор метода проектирования алгоритма;

• выбор формы записи алгоритма (блок-схемы, псевдокод и др.);

• выбор тестов и метода тестирования;

• проектирование алгоритма.

4. Программирование:

• выбор языка программирования;

• уточнение способов организации данных;

• запись алгоритма на выбранном языке

программирования.

5. Тестирование и отладка:

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

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

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

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

6. Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2-5.

7. Сопровождение программы:

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

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

Машинные коды

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

 

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

 

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



 

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

 

Каждая модель процессора имеет свой собственный набор команд, хотя во многих моделях эти наборы команд сильно перекрываются. Говорят, что процессор A совместим с процессором B, если процессор A полностью «понимает» машинный код процессора B. Если процессор A знает несколько команд, которых не понимает процессор B, то B несовместим с A.

 

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

 

Также инструкции бывают постоянной длины (у RISC-, MISC-архитектур) и диапазонной (у CISC-архитектур; например, для архитектуры x86 команда имеет длину от 8 до 120 битов).

 

2)Машинные коды(прямой, обратный, дополнительный)

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

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

Рассмотрим десятичные числа в двоичном эквиваленте 8 разрядном:

+29(10)=0001 1101(2)

+127(10)=0111 1111(2)

+0(10)=0000(2)

-29(10)=1001 1101(2)

-127(10)=1111 1111(2)

-0(10)=1000 0000(2)

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

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

Для дополнительного кода отрицательное число Z представляем как Z=-X=( ,

где

Z < 0, Х > 0.

n – величина разрядной сетки.

( – дополнительный код числа.

Для обратного кода Z=-X=( - +1

 

Пример: возьмем число +31 и -31 и представим их двоичные эквиваленты.

+31(10) для него прямой=обратному=дополнительному=0000 0000 0001 1111(2)

-31(10) Прямой =1000 0000 0001 1111(2)

-31(10) =1000 0000 0000 0000

Дополнительный =1111 1111 1110 0001(2)

-31(10) -1=0111 1111 1111 1111

Обратный = 1111 1111 1110 0000

 

15 ВОПРОС





sdamzavas.net - 2017 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...