Основные этапы решения задач на ЭВМ

Основные этапы решения задач на ЭВМ

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

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

Следующий этап это разработка алгоритма решения. На этом этапе выбирается тип записи алгоритма.

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

Алгоритмы обработки данных. Основные алгоритмические конструкции.

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

Простейшими алгоритмическими конструкциями являются:

1.)Последовательное выполнение(следование).Как показано на рисунке операции А,В,С выполняются друг за другом. Повторение операций называется итерацией. В любом алгоритме возможно посчитать количество итераций. Для данного цикла они будут высчитываться по формуле:N=I(кон) – I(нач)+1.

2.) Условный переход. Алгоритм называется разветвляющимся, если он состоит из нескольких блоков, ветвей или частей, каждая из которых выполняется в зависимости от выполнения некоторых условий. Условие - это логическое выражение. Оно принимает значение либо "истинно", либо "ложно". В языке С принято, что значение "истинно" - это ненулевое значение величины, которая записана и проверяется в условии. Значение "ложно" - это ноль.

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

Простые типы данных : целочисленные и вещественные типы.

В Турбо Паскаль применяется несколько стандартных видов констант:

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

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

Структура простейшей программы: основные разделы (типы, переменные, константы, метки)

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

Название раздела Операторы раздела

Заголовок программы (необязателен) program ИмяПрограммы;

Раздел описаний - необязателен, но, как const список констант;

правило, присутствует var список переменных;

Тело программы - обязателен, содержит begin

операторы программы операторы;

End.

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

Пример простейшей программы:

program p1;

var

a,b,c:real;

begin

writeln ('Введите значения A и B:');

read(a,b);

c:=a+b;

writeln ('A+B=',c);

c:=a-b;

writeln ('A-B=',c);

end.

Основные действия программы комментируются: комментарием в Паскале считается любой текст, ограниченный фигурными скобками { ... } или символами (* ... *). Количество комментариев в программе никак не влияет на объем генерируемого машинного кода, они призваны, прежде всего, облегчить последующее чтение и модификацию исходного текста программы.

Генератор случайных чисел.

Random(X)

Возвращает случайное целое число в диапазоне 0..X. Если аргумент опущен (Random), то возвращается случайное вещественное число от 0 до 1.

Перед использованием random в программах рекомендуется сначала инициализировать генератор псевдослучайных чисел процедурой Randomize. В противном случае при каждом запуске программы будет генерироваться одна и та же последовательность случайных чисел.

Функция Random

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

Type

<имя типа> = record <идентификатор поля> : <тип компонента>;

...

<идентификатор поля> : <тип компонента>

end;

Var

<идентификатор,...> : <имя типа>;

Доступ к полям записи осуществляется через переменные M,V типа Mash. Идентификатор поля должен быть уникален в пределах всей программы. Обращение к значению поля осуществляется с помощью идентификатора переменной и идентификатора поля, разделенных точкой. Такая комбинация называется составным именем.

Обращение к полям записи имеет несколько громоздкий вид. Для решения этой задачи предназначен оператор with, имеющий следующий формат:

with <перменная типа запись> do <оператор>;

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

Рекурсивное обращение. Примеры использования рекурсивных подпрограмм.

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

Пример. Вариант функции, рекурсивно вычисляющей факториал числа N.

functicon Factorial(N: Byte): Longint;

begin

if N in [0..1]

then Factorial := 1

else Factorial := N * Factorial(N - 1)

end;

INTERFACE

<интерфейсная часть>

IMPLEMENTATION

<исполняемая часть>

BEGIN

<инициирующая часть>

END.

Здесь UNIT - зарезервированное слово (единица); начинает заголовок модуля; <имя> - имя модуля (правильный идентификатор); INTERFACE - зарезервированное слово (интерфейс); начинает интерфейсную часть модуля;

IMPLEMENTATION - зарезервированное слово (выполнение); начинает исполняемую часть;

BEGIN - зарезервированное слово; начинает инициирующую часть модуля;

конструкция BEGIN Инициирующая частъ> необязательна;

END - зарезервированное слово - признак конца модуля.

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

Интерфейсная часть

Интерфейсная часть открывается зарезервированным словом INTERFACE. В этой части содержатся объявления всех глобальных объектов модуля (типов, констант, переменных и подпрограмм), которые должны стать доступными основной программе и/или другиммодулям. При объявлении глобальных подпрограмм в интерфейсной части указывается только их заголовок.

Если в интерфейсной части объявляются внешние подпрограммы или подпрограммы в машинных кодах, их тела (т.е. зарезервированное слово EXTERNAL, в первом случае, и машинные коды вместе со словом INLINE - во втором) должны следовать сразу за их заголовками в исполняемой части модуля (не в интерфейсной!). В интерфейсной части модулей нельзя использовать опережающее описание.

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

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

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

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

Инициирующая часть

Инициирующая часть завершает модуль. Она может отсутствовать вместе с начинающим ее словом BEGIN или быть пустой - тогда за BEGIN сразу следует признак конца модуля (слово END и следующая за ним точка).

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

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

Стандартные модули.

В Турбо Паскале имеется восемь стандартных модулей, в которых содержится большое число разнообразных типов, констант, процедур и функций. Этими модулями являются SYSTEM, DOS, CRT, PRINTER, GRAPH, OVERLAY, TURBOS и GRAPH3.

Модуль SYSTEM. В него входят все процедуры и функции стандартного Паскаля, а также встроенные процедуры и функции, которые не вошли в другие стандартные модули .

Модуль PRINTER. Делает доступным вывод текстов на матричный принтер. В нем определяется файловая переменная LST типа TEXT, которая связывается с логическим устройством PRN.

Модуль CRT. В нем сосредоточены процедуры и функции, обеспечивающие управление текстовым режимом работы экрана. С помощью входящих в модуль подпрограмм можно перемещать курсор в произвольную позицию экрана, менять цвет выводимых символов и окружающего их фона, создавать окна.

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

Модуль DOS. В модуле собраны процедуры и функции, открывающие доступ программам к средствам дисковой операционной системы MS- DOS.

Модуль OVERLAY. Он необходим при разработке громоздких программ с перекрытиями.

Основные этапы решения задач на ЭВМ

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

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

Следующий этап это разработка алгоритма решения. На этом этапе выбирается тип записи алгоритма.

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

Наши рекомендации