Алгоритмы и алгоритмизация




Алгоритмизация - составление пошагового описание процесса решения задачи.

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

Алгоритм должен удовлетворять определенным требованиям. Принято выделять следующие семь:

Наличие ввода исходных данных.

Наличие вывода исходных данных.

Однозначность.

Общность - алгоритм предназначен для решения некоторого класса задач.

Корректность - алгоритм должен давать правильное решение задачи.

Конечность - решение задачи должно быть получено за конечное число шагов.

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

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


 

 
 

4. Структура программ на Паскале

 

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

Program имя программы;

Uses подключаемые модули;

Блок описания:

Меток

Констант

Типов

Переменных

Процедур

Функций

Begin

Тело программы.

Исполняемая часть.

End.

Строка программы может иметь максимальную длину 127 символов. Если строка будет длиннее, ее часть, выходящая за пределы 127 символов, будет компилятором игнорироваться.

Комментарии заключаются в фигурные скобки {……}.


Программирование основных конструкций языка

Паскаль

 

Линейная программа

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

Ветвления

В Паскале имеются две реализации одной из основных алгоритмических структур - ветвления. Это условный оператор и оператор выбора. Условный оператор имеет вид:

If a>b then Writeln (‘значение а больше’);

Полная версия условного оператора имеет вид:

If a > b then writeln (‘значение а больше’)

else writeln (‘значение b больше’);

Циклы

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

В языке программирования Паскаль имеется три разновидности цикла - цикл со счетчиком, цикл с предусловием и цикл с постусловием.

Операторы цикла:

Оператор While

Оператор Repeat

Оператор For

Оператор While:

При использовании оператора while условие повторения цикла запрашивается в начале цикла:

while выражение do оператор

Выражение после while должно быть логическим выражением. Оператор после do выполняется, если логическое выражение имеет значение true. Если после do, т.е. в цикле, должны быть выполнены несколько операторов, их следует поместить в операторные скобки begin и end. Если логическое выражение в начале имеет значение false, цикл вообще не выполняется.

Оператор Repeat:

repeat оператор until выражение

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

Оператор For:

for переменная: = выражение to выражение do оператор

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

Простые типы данных

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

var a, b: integer;

c: real;

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

В таблице приведено описание простых типов:

 

Название Идентификатор Множество допустимых значений
Порядковый
Короткий целый Shortint -128..127
Байтовый Byte 0..255
Слово Word 0..65535
Целый Integer -32768..32767
Длинный целый Longint -2147483..2147483647
Символьный Char Символы из расширенного набора символов кода ASCII
Булев Boolean True, False
Вещественный
Вещественный Real -1.7x1038. - 2.9x10-39
С одинарной точностью Single 2.9x10-39..1.7x1038
С двойной точностью Double -3.4x1038. - 1.5x10-45
Сложный Comp -263+1..263-1

 

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

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

Процедуры и функции

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

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

Процедура может содержать такие - же разделы описаний, что и Паскаль - программа, а именно: разделы описания модулей, меток, констант, типов, переменных, процедур и функций.


Задание

 

Составить программу вывода на экран всех натуральных чисел, не превосходящих N и не делящихся на каждую из своих цифр. Описать соответствующую функцию, получающую из основной программы в качестве параметра натуральное число и возвращает TRUE, если оно удовлетворяет указанному условию.

 

Блок - схема программы

 
 


Блок - схема функции { viborka }

 
 

Текст программы

program nat_chisla;

uses crt;

function viborka (var n: integer): boolean;

var f: boolean;

k: integer;

m: integer;

begin

f: =true;

k: =n;

while k<>0 do begin

m: =k mod 10;

if m <> 0 then

if n mod m = 0 then begin

f: =false;

break;

end;

k: =k div 10;

end;

viborka: =f;

end;

var i,n: integer;

begin

clrscr;

writeln ('Введите число');

readln (n);

for i: =1 to n do

if viborka (i) then writeln (i);

readln;

end.


Список использованной литературы

 

1. Turbo Pascal: практикум. - СПб.: Питер, 2002. - 256 с.: ил.

2. Turbo Pascal / 2-е изд., перераб., - Вологда: МП "МИК", 1991. - 342с.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-08-04 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: