Файл: Основные структуры алгоритмов: сравнительный анализ и примеры их использования (Понятие и принципы построения алгоритмов).pdf
Добавлен: 30.03.2023
Просмотров: 313
Скачиваний: 2
СОДЕРЖАНИЕ
ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ ПОСТРОЕНИЯ АЛГОРИТМОВ
Понятие и принципы построения алгоритмов
1.2. Способы описания алгоритмов
Основные алгоритмические структуры
Программная реализация основных алгоритмических структур на языке высокого уровня Паскаль
2.1. О языке высокого уровня Паскаль
2.2. Операторы цикла в Паскаль
Нарисуем блок-схему алгоритма решения задачи.
Блок-схема вычисления функции у = 2cos(x)+sin(x) c шагом dx=0,5 с точностью 0,01 [13]
да
Исходный код программы вычисления функции у = 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]
Программа вычисления функции 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].
Блок-схема алгоритма нахождения максимального элемента в двумерном массиве
Программа 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, а также вложенных сложных циклов.
Все программы отлажены и приведены скриншоты результатов выполненных программ.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- Епанешников А.М., Епанешников В. А. Программирование в среде Турбо -Паскаль 7. 0 – М.: Диалог, 2015.
- Кадырова Г.Р. Основы алгоритмизации и программирования : учебное пособие /Г. Р. Кадырова. – Ульяновск: УлГТУ, 2014. – 95 с.
- Культин Н. Turbo Pascal в задачах и примерах . – СПб. : БХВ -Петербург , 2014. – 256 с.
- Павловская Т.А. Паскаль . Программирование на языке высокого уровня . – СПб.: Питер, 2013. – 320 с.
- Попов В. Паскаль и Дельфи. Самоучитель. – СПб.: Птер, 2013. – 544 с.
- Потопахин В. В. Turbo Pascal : решение сложных задач . – СП б.: БХВ -Петербург , 2014. – 208 с.
- Программирование и основы алгоритмизации: Для инженерных специальностей технических университетов и вузов. /А.Г. Аузяк, Ю.А. Богомолов, А.И. Маликов, Б.А. Старостин. - Казань: Изд-во КНИТУ- КАИ, 2013. - 153 с.
- Программирование на языке Pascal. http://hi-intel.ru/800/101.html
- Рапаков Г.Г., Ржеуцкая С.Ю. Программирование на языке Pascal. – СП б.: БХВ -Петербург , 2014. – 315 с.
- Фаронов В. В. Турбо Паскаль 7. 0. Начальный курс : учебное пособие . – М.: ОМД Групп, 2013. – 616 с.
- Фаронов В. В. Turbo Pascal . Наиболее полное руководство. – СП б.: БХВ -Петербург , 2014. – 1056 с.
- Федоренко Ю. Алгоритмы и программы на Turbo Pascal . Учебный курс . – СПб.: Питер, 2011. – 240 с.
- Блок-схемы. Графическая реализация алгоритмов. Лекции Интуит. 2017. URL: http://www.intuit.ru/studies/courses/19752/1301/lecture/25625 (Дата обращения: 10.02.2018).
- Паскаль для начинающих. URL: http://schools.keldysh.ru/sch887/pascal.htm (Дата обращения: 10.02.2018).
- Учебник по информатике. URL: http HYPERLINK "http://dssp.petrsu.ru/p/tutorial/zonna/3_ychebnik_9.htm":// HYPERLINK "http://dssp.petrsu.ru/p/tutorial/zonna/3_ychebnik_9.htm"dssp HYPERLINK "http://dssp.petrsu.ru/p/tutorial/zonna/3_ychebnik_9.htm". HYPERLINK "http://dssp.petrsu.ru/p/tutorial/zonna/3_ychebnik_9.htm"petrsu HYPERLINK "http://dssp.petrsu.ru/p/tutorial/zonna/3_ychebnik_9.htm". HYPERLINK "http://dssp.petrsu.ru/p/tutorial/zonna/3_ychebnik_9.htm"ru HYPERLINK "http://dssp.petrsu.ru/p/tutorial/zonna/3_ychebnik_9.htm"/ HYPERLINK "http://dssp.petrsu.ru/p/tutorial/zonna/3_ychebnik_9.htm"p HYPERLINK "http://dssp.petrsu.ru/p/tutorial/zonna/3_ychebnik_9.htm"/ HYPERLINK "http://dssp.petrsu.ru/p/tutorial/zonna/3_ychebnik_9.htm"tutorial HYPERLINK "http://dssp.petrsu.ru/p/tutorial/zonna/3_ychebnik_9.htm"/ HYPERLINK "http://dssp.petrsu.ru/p/tutorial/zonna/3_ychebnik_9.htm"zonna HYPERLINK "http://dssp.petrsu.ru/p/tutorial/zonna/3_ychebnik_9.htm"/3_ HYPERLINK "http://dssp.petrsu.ru/p/tutorial/zonna/3_ychebnik_9.htm"ychebnik HYPERLINK "http://dssp.petrsu.ru/p/tutorial/zonna/3_ychebnik_9.htm"_9. HYPERLINK "http://dssp.petrsu.ru/p/tutorial/zonna/3_ychebnik_9.htm"htm (Дата обращения: 10.02.2018).
- Язык HYPERLINK "http://pas1.ru/"Pascal HYPERLINK "http://pas1.ru/". Программирование для начинающих. URL: http: //pas1.ru /programming (Дата обращения: 10.02.2018).