Файл: Основные структуры алгоритмов: сравнительный анализ и примеры их использования (Программная реализация основных алгоритмических структур на языке высокого уровня Паскаль).pdf

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

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

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

Добавлен: 23.04.2023

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

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

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

Writeln(‘Vvedite n= ’);

Read(n);

Pi:=3.14;

For r:=1 to n do

Begin

P:=2*pi*r;

Writeln(‘r= ’,r,’ p= ’,p);

End;

End. [14]

Результат выполнения программы Cycle1.pas с циклом for дан на рис. 10.

Рис. 10 - Результат выполнения программы Cycle1.pas с циклом for

Программа Cycle2.pas с использованием цикла Repeat …until.

Program Cycle2;

Var

P,pi: real;

R,n: integer;

Begin

Writeln(‘Vvedite n= ’);

Read(n);

Pi:=3.14;

R:=1;

Repeat

P:=2*pi*r;

Writeln(‘r= ’,r,’ p= ’,p);

r:=r+1;

until r>n;

end. [16]

На рис. 11 приведен скриншот выполнения программы Cycle2.pas с использованием цикла Repeat …until.

Рис.11 - Результат выполнения программы Cycle2.pas с использованием цикла Repeat …until

Программа Cycle3.pas с циклом while.

Program Cycle3;

var P,pi: real;

R,n: integer;

Begin

Writeln(‘Vvedite n= ’);

Read(n);

Pi:=3.14;

R:=1;

While (r<=n) do

begin

P:=2*pi*r;

Writeln(‘r= ’,r,’ p= ’,p);

r:=r+1;

end;

end. [9]

На рис. 12 приведен результат выполнения программы Cycle3.pas с использованием цикла while.

Рис. 12 - Результат выполнения программы Cycle3.pas с использованием цикла while

Программа Cycle4.pas с циклом с неизвестным числом повторений.

Программа вычисляет значение функции у = 2cos(x)+sin(x) c шагом dx=0,5 с точностью 0,01 [12].

Нарисуем блок-схему алгоритма решения задачи.

Блок-схема вычисления функции у = 2cos(x)+sin(x) c шагом dx=0,5 с точностью 0,01 [13]

Начало

Ввод х

dx=0.5

n=1

Y1=2cos(x)+sin(x)

x=x+dx

Y2=2cos(x)+sin(x)

Dy=Abs(y2-y1)

Вывод x, y

Y1=y2

Dy>0.01

да

Вывод n

Конец

Исходный код программы вычисления функции у = 2cos(x)+sin(x) c шагом dx=0,5 с точностью 0,01.

Program Cycle4;

var

x,dx,y1,y2,dy,d: real;

n: integer;

Begin

Writeln(‘Vvedite x= ’);

Read(x);

dx:=0.5;

d:=0.01;

n:=1;

y1:=2*cos(x)+sin(x);

repeat

x:=x+dx;

y2:=2*cos(x)+sin(x);

dy:=Abs(y2-y1);

Writeln(‘x= ’,x,’ y1= ’,y1);

Y1:=y2;

n:=n+1;

until dy<d;

writeln(‘n= ’,n);

end. [16]

На рис. 13 приведен результат выполнения программы Cycle4.pas с неизвестным числом повторений (цикл repeat).

Рис. 13 - Результат выполнения программы Cicle4.pas с неизвестным числом повторений

Программа Cycle5.pas со сложным циклом, вычисляет функцию y:=x*z/(с+b) при изменениях х от 2 до 8 с шагом 1 и z от 1 до 5 с шагом 1.


Приведем сначала блок-схему алгоритма [12].

Блок-схема алгоритма вычисления функции y:=x*z/(с+b) при изменениях х от 2 до 8 с шагом 1 и z от 1 до 5 с шагом 1 [13]

Начало

Ввод b,с

i=0

Х=2,8,1

Вывод i

z=1,5,1

Конец

y=x*z/(b+c)

Вывод x, y, z

i=i+1

Программа вычисления функции y:=x*z/(с+b) при изменениях х от 2 до 8 с шагом 1 и z от 1 до 5 с шагом 1

Program Cicle5;

var

x,z,a,b,i: integer;

y: real;

Begin

Writeln(‘Vvedite b = ’);

Read(b);

Writeln(‘Vvedite с= ’);

Read(с);

i:=0;

for x:=2 to 8 do

for z:=1 to 5 do

begin

y:=x*z/(с+b);

Writeln(‘x= ’,x,’ z=’,z,’ y= ’,y);

i:=i+1;

end;

writeln(‘chislo iteracii = ’,i);

end. [1, 3]

Скриншот выполнения программы приведен на рис. 14.

Рис. 14 - Результат выполнения программы Cycle5.pas со сложным циклом

Программа Cycle51.pas со сложным циклом нахождения максимального элемента в двумерном массиве. Составим блок-схему алгоритма [3].

Блок-схема алгоритма нахождения максимального элемента в двумерном массиве

Начало

Ввод m

Max=mij

i=1,n,1

j=1,n,1

Вывод max

Mij>max

Конец

Max=mij

Программа Cycle51.pas нахождения максимального элемента в двумерном массиве

Program Cycle51;

var

m: array[0..9,0..9] of integer;

i,j,n,max: integer;

Begin

Writeln(‘Введите элементы массива 3x3 построчнo’);

Writeln;

for i:=1 to n do

for j:=1 to n do

Read(m[i,j]);

{поиск max элемента}

for i:=1 to n do

for j:=1 to n do

if m[i,j]>max then max:=m[i,j];

Writeln(‘max= ’,max);

end. [4, 5, 6]

Скриншот выполнения программы Cicle51.pas дан на рис. 15.

Рис. 15 - Результат выполнения программы Cycle51.pas с двумерным массивом

Вывод: В главе рассмотрены операторы цикла, используемые в Паскале для программирования циклических алгоритмических структур: FOR, WHILE…DO, REPEAT …UNTIL.

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

Таким образом, реализованы все рассмотренные в теоретической главе основные алгоритмические структуры.


ЗАКЛЮЧЕНИЕ

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

Основные способы описания алгоритмов состоят из: словесно-формульного (на естественном языке); структурного или блок-схемного; с использованием специальных алгоритмических языков; посредством граф-схем; посредством сетей Петри. При разработке программ чаще всего пользуются словесно-формульным и блок-схемным способами.

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

В циклических алгоритмах рассмотрены и составлены программы с известным и неизвестным числом итераций, с использованием циклов for, while, repeat, а также вложенных сложных циклов.

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. Епанешников А.М., Епанешников В. А. Программирование в среде Турбо -Паскаль 7. 0 – М.: Диалог, 2015.
  2. Кадырова Г.Р. Основы алгоритмизации и программирования : учебное пособие /Г. Р. Кадырова. – Ульяновск: УлГТУ, 2014. – 95 с.
  3. Культин Н. Turbo Pascal в задачах и примерах . – СПб. : БХВ -Петербург , 2014. – 256 с.
  4. Павловская Т.А. Паскаль . Программирование на языке высокого уровня . – СПб.: Питер, 2013. – 320 с.
  5. Попов В. Паскаль и Дельфи. Самоучитель. – СПб.: Птер, 2013. – 544 с.
  6. Потопахин В. В. Turbo Pascal : решение сложных задач . – СП б.: БХВ -Петербург , 2014. – 208 с.
  7. Программирование и основы алгоритмизации: Для инженерных специальностей технических университетов и вузов. /А.Г. Аузяк, Ю.А. Богомолов, А.И. Маликов, Б.А. Старостин. - Казань: Изд-во КНИТУ- КАИ, 2013. - 153 с.
  8. Программирование на языке Pascal. http://hi-intel.ru/800/101.html
  9. Рапаков Г.Г., Ржеуцкая С.Ю. Программирование на языке Pascal. – СП б.: БХВ -Петербург , 2014. – 315 с.
  10. Фаронов В. В. Турбо Паскаль 7. 0. Начальный курс : учебное пособие . – М.: ОМД Групп, 2013. – 616 с.
  11. Фаронов В. В. Turbo Pascal . Наиболее полное руководство. – СП б.: БХВ -Петербург , 2014. – 1056 с.
  12. Федоренко Ю. Алгоритмы и программы на Turbo Pascal . Учебный курс . – СПб.: Питер, 2011. – 240 с.
  13. Блок-схемы. Графическая реализация алгоритмов. Лекции Интуит. 2017. URL: http://www.intuit.ru/studies/courses/19752/1301/lecture/25625 (Дата обращения: 10.02.2018).
  14. Паскаль для начинающих. URL: http://schools.keldysh.ru/sch887/pascal.htm (Дата обращения: 10.02.2018).
  15. Учебник по информатике. URL: http://dssp.petrsu.ru/p/tutorial/zonna/3_ychebnik_9.htm (Дата обращения: 10.02.2018).
  16. Язык Pascal. Программирование для начинающих. URL: http: //pas1.ru /programming (Дата обращения: 10.02.2018).