Процесс, описываемый структурой следования, называется линейным

Совокупность базовых структур " следование " называется линейным алгоритмом.

Структура "ветвление" разделяет последовательность действий на 2 направления в зависимости от итога заданного условия.

Например: вычислить

Алгоритм, в состав которого входит структура " ветвление " называется разветвляющимся.

Структура " повторение" обеспечивает повторное выполнение одного или группы операторов – цикл. Эта группа операторов называется телом цикла.

Различают две разновидности этой структуры:

"цикл - пока" и

"цикл - до".

В "цикле – пока" условие проверяется перед выполнением операторов тела цикла и в зависимости от результата проверки, тело цикла может вовсе не выполняться.

       
 
 
   
Например: вычислить значения функции z = cos(x) × sin(a), если параметр а изменяется в заданных пределах от 0,1 до 1 с шагом 0,2.


В "цикле – до" тело цикла выполняется всегда, а потом уже проверяется условие.

       
 
 
   
Например: вычислить сумму бесконечного ряда с точностью до10-4, при x=2


Алгоритм, в состав которого входит структура "цикл" называется циклическим.

Общая схема организации алгоритма циклической структуры, когда параметр цикла заранее определен.

       
   
Например: вычислить конечную сумму (или произведение)
 


Параметр цикла – это переменная (индекс), которая изменяется (с шагом) при каждом новом выходе на повторение.

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

1.6. Методы алгоритмизации задач

Реальные алгоритмы представляют собой совокупность всех рассмотренных базовых структур. Наиболее часто употребляются:

- линейные вычисления,

- ветвления,

- выбор из большого количества альтернатив одно,

- циклы, (вложенные циклы),

- подпрограммы.

Задача 3. Вычислить значения функции , в диапазоне изменения x от 0 до 3 с шагом 0.5. Будем использовать алгоритмическую структуру – цикл "до", на языке С# фрагмент программы имеет следующий вид: ..... double y=0, x=0; { do if (x>1) y=Math.Sin(x); else y=Math.Cos(x); Console.WriteLine("x={0,4:f} y={1,4:f}", x, y); x:=x+0.5; while x<3; } .....

2. Основы программирования

2.1. Машинный код процессора

Процессор – это большая интегральная схема, содержащая миллионы компонент:

- триггеры для запоминания битов данных,

- вентили для выполнения операций.

Для управления компонентами применяются управляющие сигналы, имеющие два уровня – низкий и высокий.

Множество управляющих сигналов можно связать с набором 0 и 1, которые можно интерпретировать, как число. Например, 0110001100110101.

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

2.2. Программа на языке программирования

Машинные коды трудно воспринимаются человеком. Поэтому люди составляют программу на удобном для себя языке (высокоуровневом).

Программирование на естественном человеческом языке (метаязыке) может использоваться только на этапе составления алгоритма.

Автоматически перевести такую программу в машинный код нельзя из-за неоднозначности естественного языка.

2.3. Трансляторы

Программа на языке программирования для выполнения требует преобразования высокого уровня в машинные коды. Это выполняют трансляторы.

Виды трансляторов:

- компилятор,

- интерпретатор.

Компилятор преобразует всю программу в машинные коды.

Достоинства компилятора:

- Транслированная программа может исполняться безкомпилятора.

- При трансляции может использоваться технология оптимизации.

- Скорость работы компилированной программы в сотни раз выше, чем интерпретируемой.

Недостатки компилятора:

- Трудоемкость программирования.

- Сложность тестирования и отладки.

- Сложность остановки.

Интерпретатор сразу выполняет команды языка, указанные в тексте программы. Команды транслируются и исполняются последовательно поштучно.

Достоинства интерпретатора:

- Постоянный контроль среды программирования.

- Удобства тестирования и отладки.

- Легкость остановки.

Недостатки интерпретатора:

- Транслированная программа не может исполняться без интерпретатора.

- При трансляции не может автоматически использоваться оптимизация.

- Скорость работы интерпретируемой программы в сотни раз ниже, чем компилируемой.

2.4. Классификация языков программирования

ЭВМ исполняет программу в машинных кодах. А составляют программу люди на удобном для себя языке.

Различают языки:

- низкого уровня (машинно-ориентированные),

- высокого уровня.

Языки высокого уровня бывают:

- процедурно-ориентированные. Содержат набор универсальных команд;

- проблемно - ориентированные. Имеют команды узкого назначения;

- объектно - ориентированные. Программирование на уровне объектов;

- событийно - ориентированные. Программирование на уровне событий;

- визуальные. Поддерживают визуальное программирование;

- комплексные. Поддерживают многие из перечисленных свойств.

Различают пять поколений языков программирования:

1. Начало 1950-х годов. Язык Ассемблера. Его принцип "Одна инструкция – одна строка". Инструкция на языке однозначно соответствует машинному коду команды.

2. Начало 1950-х – конец 1960-х годов. Язык символического Ассемблера. В нем появилось понятие переменной.

3. 1960-е годы. Универсальные языки программирования.

4. С начала 1970-х годов до настоящего времени. Проблемно-ориентированные языки для создания проектов в узкой предметной области.

5. С середины 1990-х годов до настоящего времени. Языки с автоматизацией программирования. Примеры – языки визуального программирования.

2.5. Языки низкого уровня

Язык Расшифровка
Assembler Ассемблер
Macro Assembler Макро Ассемблер

2.6. Языки высокого уровня

Язык Расшифровка Примечание
Fortran Formula Translator От слов - транслятор формул.
BASIC Beginner’s All-purpose Symbolic Instruction Code Многоцелевой мнемокод для начинающих. Создан в 1960-е годы.
Visual Basic Визуальный BASIC Язык 5-го поколения. Его версия – рабочий язык пакета Microsoft Office.
Cobol Common Business Oriented Language Язык для задач в экономике бизнесе.
Algol Algorithmic Language Создан для описания алгоритмов. Не получил широкого распространения.
Pascal   Универсальный язык. Создан в 1970-х годах. Один из часто применяемых.
С   Язык для системного программирования. Создан в 1970-х годах компанией Bell.
С++   Объектно-ориентированное расширение С++. Создан в 1980 году Страуструпом.
С# С шарп Многоплатформенная версия С++
Java   Модификация С для Internet. В нем удалены низкоуровневые возможности языка С.
Delphi   Универсальный язык. Создан в 1990-х годах. Предназначен для работы с объектами.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: