Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Использование функций и процедур языка Паскаль

Поиск

 

Алгоритм.

Слово алгоритм происходит от algorithmic – латинской формы написания имени латинского математика IX в. Аль-Хорезми, который сформулировал правила выполнения четырёх арифметических действий над многозадачными числами. В дальнейшем алгоритм стали называть описание любой последовательности действий, которую следует выполнить для решения заданной задачи.

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

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

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

Свойства алгоритма. При составлении алгоритма необходимо обеспечить, чтобы он обладал рядом свойств.

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

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

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

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

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

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

Чтобы компьютер смог выполнить программу, она должна быть записана в специальной форме, доступной компьютеру; должна быть записана в соответствии со специальным набором правил.

Набор записи компьютерной программы называется «алгоритмическим языком».

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

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

Алгоритм деления отрезка АВ пополам:

1) поставить ножку циркуля в точку А;

2) установить раствор циркуля равным длине отрезка АВ;

3) провести окружность;

4) поставить ножку циркуля в точку В;

5) провести окружность;

6) через точки пересечения окружностей провести прямую;

7) отметить точку пересечения этой прямой с отрезком АВ;

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

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

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

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

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

Опишем назначение этих процедур:

write (p1, p2,... pn); - (выводит на экран значения выражений p1, p2,... pn, количество которых (n) неограниченно. Выражения могут быть числовые, строковые, символьные и логические. Под выражением будем понимать совокупность некоторых действий, применённых к переменным, константам или литералам, например: арифметические действия и математические функции для чисел, функции для обработки строк и отдельных символов, логические выражения и т.п. Возможен форматный вывод, т.е. явное указание того, сколько выделять позиций на экране для вывода значения.

Пример для вещественных типов:

  write (r+s:10:5); - (вывести значение выражения r + s с выделением для этого 10 позиций, из них 5 (после запятой).

Для других типов все несколько проще:

write (p:10); - (вывести значение выражения p, выделив под это 10 позиций. Вывод на экран в любом случае производится по правому краю выделенного поля.

Writeln (p1, p2,... pn); - (аналогично write, выводит значения p1, p2,... pn, после чего переводит курсор на новую строку. Смысл параметров (тот же, замечания о форматном выводе остаются в силе.

Существует вариант writeln; (без параметров), что означает лишь перевод курсора на начало новой строки.

r eadln (v1, v2,...vn); (ввод с клавиатуры значений переменных v1,...vn.

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

r ead (v1, v2,...vn); (по назначению сходно с readln; отличие состоит в том, что символ перевода строки (Enter), нажатый при завершении ввода, не «проглатывается», а ждет следующего оператора ввода. Если им окажется оператор ввода строковой переменной или просто readln; то строковой переменной будет присвоено значение пустой строки, а readln без параметров не станет ждать, пока пользователь нажмет Enter, а среагирует на уже введенный.

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

Program PrintSum;

var a,b: integer;

begin

write ('Введите два числа:');

readln (a,b);

writeln (' Сумма a и b равна ',a+b);

readln;

end.




Поделиться:


Последнее изменение этой страницы: 2020-03-14; просмотров: 364; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.12.71.166 (0.007 с.)