Алгоритм может быть реализован в виде комбинации трех базовых алгоритмических конструкций: линейной, разветвленной, циклической.
Алгоритм линейной структуры — алгоритм, в котором предписываемые действия выполняются последовательно: Оператор1 — Оператор2 —. — Оператор N. Такой порядок выполнения действий называется естественным.
Алгоритм разветвленной структуры — алгоритм, в котором предусмотрено разветвление выполняемой последовательности действий в зависимости от результата проверки какого-то условия. Условие — это некоторое логическое выражение. Если условие (логическое выражение) принимает значение «истина», то выполняется Оператор1, в противном случае — значение «ложь» — выполняется Оператор2. Oпeратор1 и Оператор2 могут представлять собой группу операторов, а также могут быть условными операторами. В случае отсутствия Оператора2 получаем конструкцию с неполным ветвлением.
Базовые алгоритмические структуры
Алгоритм циклической структуры (цикл с повторением) — алгоритм, в котором предусмотрено неоднократное выполнение одной и той же последовательности действий. Эту последовательность действий называют телом цикла.
Если количество повторений известно, то используют цикл со счетчиком, иначе — цикл с предварительной или последующей проверкой условия повторения.
Циклическую структуру реализуют операторы трех типов.
Оператор FOR. DO действует следующим образом. Тело цикла выполняется для каждого значения параметра цикла I от его начального M1 до конечного значения М2 включительно. I, Ml, M2 — чаще всего переменные целого типа. Шаг изменения переменной цикла I равен +1 или -1.
Оператор WHILE. DO действует следующим образом. Каждый раз предварительно проверяется значение логического выражения. Пока оно истинно, выполняется тело цикла. Как только оно становится ложным, происходит выход за пределы цикла.
Если с самого начала значение логического выражения является ложным, то тело цикла не выполняется ни разу.
Оператор REPEAT. UNTIL действует следующим образом. Тело цикла выполняется, пока значение логического выражения ложно. Тело цикла выполняется как минимум один раз.
Все алгоритмические конструкции имеют общее свойство: один вход и один выход. Допускается неограниченное соединение структур и их вложение друг в друга, что позволяет проектировать сложные алгоритмы
Язык программирования. Типы данных. Реализация основных алгоритмических структур на языке программирования. Основные этапы разработки программ.
Языки программирования
Первые компьютеры (ЭВМ) разрабатывались прежде всего как вычислительные машины, т. е. устройства, выполняющие операции над числами. Сегодня компьютеры позволяют обрабатывать информацию всех видов — текстовую, графическую, числовую, мультимедийную. Для решения задачи на компьютере необходимо создать программу, т. е. последовательность команд, входящих в систему команд компьютера.
Основные алгоритмические конструкции | Информатика 8 класс #20 | Инфоурок
Для первых компьютеров программисты писали программы в двоичных кодах, т. е. на машинном языке. Каждая команда машинного языка задает некоторое элементарное действие центрального процессора.
Важным этапом в развитии программирования явилась разработка языков программирования высокого уровня (ЯПВУ) — специальных искусственных языков, приближенных к обычному разговорному языку (английскому). Примеры таких языков: FORTRAN, Basic, Pascal, С. Большинство языков высокого уровня универсальны, т. е. предназначены для решения широкого круга задач.
Первая цель создания ЯПВУ — облегчить создание программ. Вторая цель — сделать программы переносимыми, т. е. уменьшить количество труда по адаптации программ для новых типов компьютеров.
Поскольку компьютер (а точнее, его процессор) оперирует не конструкциями ЯПВУ, а двоичными командами, то перед выполнением программа должна быть превращена в машинный код. Выполняют эту операцию программы-трансляторы. В зависимости от порядка подготовки программы на языке высокого уровня к исполнению, трансляторы делятся на компиляторы и интерпретаторы.
Компилятор — это программа, автоматически преобразующая (компилирующая) исходный код ЯПВУ в машинный код и создающая таким образом исполняемый файл. Он может быть запущен на исполнение операционной системой. В ОС Microsoft такие файлы могут иметь расширения ехе, com, dll.
Интерпретатор — это программа, преобразующая код ЯПВУ в машинный код шаг за шагом, т. е. каждая команда преобразуется интерпретатором и сразу выполняется компьютером, затем интерпретатор преобразует следующую команду, компьютер ее выполняет и т. д. (интерпретатор — «синхронный переводчик»). Недостаток интерпретаторов — низкая скорость выполнения программ. Примеры: интерпретаторы языков Basic и Java Script. Для языка Basic в настоящее время существуют как интерпретаторы, так и компиляторы.
Типы данных
При решении задач на компьютере следует определить данные задачи и их типы. Данные — это информация, необходимая для выполнения программы, представленная в формальном виде, который обеспечивает возможность ее хранения, обработки и передачи (англ. data).
Языки высокого уровня организуют обработку данных с помощью переменных. Переменная — это именованная область оперативной памяти, в которой может храниться нужная информация (данные). Способ хранения определяется типом переменной.
Константа — это именованное значение, которое остается неизменным на протяжении всего времени выполнения программы. Числовая константа представляет собой какое-либо число (7; 3.14), а строковая константа — произвольную строку (» количество учеников в классе «).
В любом ЯПВУ переменные и константы характеризуются своими типами. Тип данных — это правила хранения и формат данных. Во время работы программы тип данных будет определять, каким образом данные будут извлекаться из оперативной памяти (ОП), интерпретироваться и сохраняться в ОП. Например, величины 205 и -45 относятся к целочисленному типу и их можно складывать, вычитать, перемножать и делить. Величины » цвет » и » ок » относятся к строковому типу, их можно сцеплять, но над ними нельзя выполнять арифметические операции.
В языке Basic существуют следующие типы данных.
Простые | Структурированные |
Целые: Integer (2 байта) LONG (4 байта) | Массивы: DIM (могут быть целыми, вещественными, логическими) |
Вещественные: SINGLE (4 байта) DOUBLE (8 байтов) | Строковые: STRING (1 байт на символ) |
Логические: BOOLEAN (2 байта) |
Примечание: Массив — индексированный набор элементов одного типа; STRING — ряд, последовательность, цепочка; строка — последовательность символов.
Источник: infopedia.su
Основные алгоритмические структуры
Следование представляет собой последовательное выполнение операций и представляется алгоритмически последовательностью блоков «Процесс»:
Развилка (условие)
- неполную развилку;
- полную развилку;
- ветвление.
Развилка представляет собой блок выбора (проверка условия).
Неполная развилка выполняет последовательность операций только по одной из веток.
Реализация неполной развилки в Си имеет вид:
if (условие)
операции;
>
Полная развилка выполняет последовательность операций по каждой из двух веток (при выполнении или невыполнении условия):
Реализация полной развилки в Си имеет вид:
if (условие)
операции блока 1;
>
else
операции блока 2;
>
Ветвление представляет собой операцию множественного выбора, при которой проверка условия может иметь более двух возможных вариантов:
Реализация ветвления в Си имеет вид:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
switch (выражение)
case 1:
блок операций 1;
break ;
case 2:
блок операций 2;
break ;
…
case n:
блок операций n;
break ;
default:
блок операций по умолчанию;
>
Цикл
Существует 3 основных вида циклов :
- цикл с предусловием;
- цикл с постусловием;
- параметрический цикл.
Цикл с предусловием осуществляет проверку условия перед началом своего выполнения. В случае если условие не выполняется, происходит выход из цикла. Цикл с предусловием может не выполниться ни одного раза.
Реализация цикла с предусловием на Си:
while (условие)
операции;
>
Цикл с постусловием всегда выполняется хотя бы один раз, поскольку проверка условия осуществляется после выполнения операций цикла.
Реализация на Си цикла с постусловием:
do операции;
> while (условие);
Параметрический цикл — это цикл с заданным числом повторений.
Реализация параметрического цикла на Си ( П — параметр, НЗ — начальное значение, КЗ — конечное значение (в общем случае — условие продолжения цикла), Ш — шаг):
Источник: prog-cpp.ru
4)Реализация алгоритмических структур в языках программирования. Примеры.
Алгоритмы можно представлять как некоторые структуры, состоящие из отдельных базовых (т.е. основных) элементов. Логическая структура любого алгоритма может быть представлена комбинацией трех базовых структур: Следование, Ветвление, Цикл
Характерной особенностью базовых структур явл-ся наличие в них одного входа и одного выхода.
1.Базовая структура следование. Образуется из последовательности действий, следующих одно за другим:
Реализация в программировании (Pascal):
Вычислительный процесс (алгоритм), в котором команды выполняются последовательно, наз-ся линейным. При исполнении такой программы микропроцессор выполняет команды последовательно одну за другой. Точку входа (оператор с которого начинается выполнение программы), в Pascal-программе определяет служебное слово Begin, с которого начинается тело программы, заканчивается тело программы словом end. Начало и конец подпрограмм также выделяется этими словами.
2. Базовая структура ветвление. Обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран.
Структура ветвление существует в четырех основных вариантах:
Реализация в программировании (Pascal): if then
Реализация в программировании (Pascal)if then else;
Реализация в программировании (Pascal):
Реализация в программировании (Pascal):
3. Базовая структура цикл. Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла.
Основные разновидности цикла:
А) Цикл с параметром
Реализация в программировании (Pascal):
Также можно использовать слово downto вместо to:
При этом происходит уменьшение значения параметра от начального значения до конечного значения на 1.
Б) Цикл с предусловием
Тело цикла выполняется, пока выполняется условие.
Реализация в программировании (Pascal):
В) Цикл с постусловием
Тело цикла выполняется, пока не выполнится условие. Гарантирует выполнение тела цикла хотя бы один раз (в отличие от цикла с предусловием).
Реализация в программировании (Pascal):
5) Понятие класса. Процедуры и функции, статические методы класса и особенности работы с ними.
1. Понятие класса.
Объект с точки зрения ООП это переменная, тип которой определяется последователем. Тип объекта называется классом, а объект принято называть экземпляром своего класса. Синтаксис объявления класса в языке OP (Object Pascal) следующий:
//(раздел по умолчанию)
//поля, методы, свойства, события
— это любой возможный идентификатор языка Pascal (общепринятым является использование буквы Т перед именем класса. Это буква поясняет, что переменная является типом.). После директивы класс в круглых скобках задается имя родительского класса. По умолчанию этот класс можно опустить. В этом случае компилятор считает, что данный класс является наследником базового класса TObject. Однако для удобства читаемости программы родительский класс лучше указывать:
TMyClass = class (TObject) | TMyClass = class — Эти объявления эквивалентны.
Процедуры и функции, статические методы класса и особенности работы с ними.
Статические методы (static) объявляются внутри класса, также как и процедуры и функции в языке Pascal. Синтаксис их объявления:
— любой разрешенный идентификатор языка Pascal. Общепринято, что имена выбираются в соответствии с выполняемыми действиями.
— необязательный элемент, предназначен для передачи параметров. В нем передаются имена переменных, предназначенных для выполнения соответствующих действий данному методу. Синтаксис:
— необязательный элемент, предназначенный для указания способа передачи параметра.
1. Если он отсутствует, то значение параметра передается по значению, т.е. в стеке программы помещается копия данного параметра, с которым и работает сам метод. В этом случае любые сделанные им изменения не приведут к изменению внешнего параметра. (Изменяется только копия в стеке).
Index : Integer – передача по значению.
2. Если раздел объявлен, как var, то параметр передается по ссылке, т.е. в стек помещается адрес реально существующей переменной и любые изменения, производимые с ней в теле метода приводят и к изменению значения внешнего параметра.
Var Index : Integer – передача по значению
3. Если раздел const, то параметр передается по ссылке, но компилятор запрещает любые изменения этой переменной. При попытке ее модифицировать выдается сообщение об ошибке.
const Index : Integer – передача как const
После того, как все методы будут объявлены внутри класса, их необходимо определить в разделе implementation соответствующего:
implementation
В отличие от обычных процедур и функций языка Pascal методам класса неявно передается специальный указатель (Self) на вызвавший их объект. За счет этого метод узнает данные какого конкретного объекта ему необходимо использовать. Этот механизм позволяет значительно сократить затраты памяти так как методы принадлежат только классу, а не всем его объектам.
Источник: studfile.net