Файл: Основы программирования на языке Pascal (Типы данных языка программирования Pascal).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 31.03.2023

Просмотров: 62

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

2.2 Алгоритмическая структура ветвление и ее реализация

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

Разветвляющийся алгоритм предполагает отход от линейной структуры.[12]

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

Блок-схема оператора условного перехода в полной форме представлена на рисунке 10.

Рисунок 10 – Полная форма оператора условного перехода

Логика реализации оператора условного перехода состоит в следующем. Программа проверяет выполнение условия. В том случае, если условие выполняется, будет выполнено действие, расположенное на ветке «да». В противном случае реализуется действие, расположенное на ветке «нет». [5]

Реализация полной формы оператора условного перехода информации в PascalABC:

if < условие>

then <действие 1>

else < действие 2>;

Условия могут быть простыми или составными. Простое условие – это одно равенство или неравенство. Например:

A >= K+N

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

Логические связки:

  • not – инверсия (логическое отрицание);
  • and – конъюнкция (логическое умножение);
  • or – дизъюнкция (логическое сложение).

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

(a = 7) and (not(odd(x)))

Блок-схема оператора условного перехода в сокращенной форме представлена на рисунке 11.

Рисунок 11 - Сокращенная форма оператора условного перехода

Оператор условного перехода в сокращенной форме предполагает выполнение заданных действий только в случае выполнения условия. При невыполнении условия никаких специальных действий не выполняется, программа продолжает выполняться дальше.[20]

Реализация сокращенной формы оператора условного перехода информации в PascalABC:

if < условие>

then <действие 1>;

2.3 Алгоритмическая структура повторение и ее реализация

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


Алгоритмическая структура повторение реализуется при помощи оператора цикла. В языке программирования PascalABC используются три оператора цикла:

  • цикл со счетчиком;
  • цикл с предусловием;
  • цикл с постусловием.

Группу многократно повторяющихся операторов называют телом цикла. [9]

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

Параметры цикла:

  • начальное значение переменной цикла;
  • конечное значение переменной цикла;
  • шаг цикла.

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

Блок-схема цикла со счетчиком представлена на рисунке 12.

Рисунок 12 - Блок-схема цикла со счетчиком

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

Реализация оператора цикла со счетчиком в языке программирования PascalABC:

for i:=<начальное значение> to <конечное значение> do

< тело цикла>;

Шаг цикла со счетчиком по умолчанию равен 1.

Если вместо служебного слова to в операторе цикла со счетчиком используется служебное слово downto, то шаг равен -1.

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

Блок-схемы циклов с предусловием и с постусловием представлена на рисунке 13.

Рисунок 13 – Блок-схемы циклов с предусловием (слева) и с постусловием (справа)

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

Реализация операторов циклов с предусловием и с постусловием в языке программирования PascalABC:

Цикл с предусловием

Цикл с постусловием

i:=<начальное значение>;

while <i<= конечного значения> do

begin

<тело цикла>;

i:=i+h;’добавление шага

end;

i:=<начальное значение>;

repeat

<тело цикла>;

i:=i+h;’добавление шага

until <i > конечного значения>


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

3 РАЗРАБОТКА ПРОГРАММЫ НА PASCALABC

3.1 Структурное программирование

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

В современном программировании можно выделить следующие основные концепции программирования:

  • процедурное программирование;
  • структурное (модульное) программирование;
  • объектно-ориентированное программирование;
  • модель объектных компонентов COM.

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

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

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

Основные принципы структурного программирования:

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

Структура модульной программы представлена на рисунке 14.

Рисунок 14 - Структура модульной программы

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

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


3.2 Подпрограммы в PascalABC

Структурное программирование в языке программирования Pascal реализуется при помощи следующих инструментов:

  • подпрограммы:
      • процедуры;
      • функции;
  • модули.

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

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

В Pascal подпрограммы могут быть реализованы в виде процедур или функций.

Синтаксис объявления процедуры:

Procedure <Имя> (список формальных параметров− может отсутствовать);

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

begin

<тело процудуры>

end;

Структура процедуры соответствует структуре программы на языке программирования Pascal. Описательная часть соответствует разделу описаний.

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

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

Выделяют два вида формальных параметров:

  • параметры-переменные;
  • параметры-значения.

Параметры-переменные − это формальные параметры, перед которыми записывается служебное слово var. Они направляются по ссылке при вызове процедуры, когда необходимо передать новые значения в точку вызова подпрограммы.

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

Фактическим параметром называется параметр, который передается процедуре при обращении к ней.

Функция в отличие от процедуры предназначена для вычисления только одного значения.

Синтаксис описания функции:

Function <Имя>(Список формальных параметров):<Тип>;

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

begin


<тело функции>

end;

Отличия функций от процедур:

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

Модуль – это библиотека функций, для использования которой надо подключите ее в разделе описаний, указав ее имя после служебного слова use.

Язык программирования Pascal предлагает разработчику большое количество модулей, в версии PascalABC этот набор расширен за счет новых модулей и возможностей платформы .NET. Кроме готовых модулей пользователь может разработать собственные модули и использовать их при разработке программ.

3.3 Программа с использованием структурного подхода

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

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

Предложить пользователю на выбор одну из функций:

  1. ;
  2. .

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

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

Код программы СтруктурнаяПрограмма.pas:

program СтруктурноеПрограммирование;

// описание функций

function Функция1(x:real):= power(x,2);

function Функция2(x:real):= 3*x-5;

//описание процедуры вывода

//таблицы значений функции

procedure Печать(x: real; n:integer);

var y:real;

begin

if n=1 then y:=Функция1(x)

else y:=Функция2(x);

writeln ('':3,x: 6:2, y:15:2);

end;

var a, b, h, x: real;

n: integer;

begin

writeln (' Программа табулирования функции ');

writeln('----------------------------------------');

writeln (' Выберите функцию для табулирования: ');

writeln ( '1: y = x^2');

writeln ( '2: y = 3x-5');

n:=ReadlnInteger(' n=');

writeln;

writeln (' Выберите промежуток табулирования [a; b] ');

a:=ReadlnReal(' a=');