Подпрограммы пользователя в языке Pascal .Подпрограмма- функция.
Заказать уникальную курсовую работу- 33 33 страницы
- 5 + 5 источников
- Добавлена 29.03.2011
- Содержание
- Часть работы
- Список литературы
- Вопросы/Ответы
Содержание
ВВЕДЕНИЕ
1 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
1.1 Общие сведения о реализации подпрограмм
1.2 Использование процедур в языке Pascal
1.3 Механизм передачи параметров
1.3.1. Параметры-значения
1.3.2. Параметры-переменные
1.3.3 Параметры-константы
1.4 Использование функций
1.5 Вложенные процедуры и функции
2 ПРОЕКТНАЯ ЧАСТЬ
2.1 Условие задачи
2.2 Тестовые примеры
2.3 Схема алгоритма
3 ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ
3.1 Листинг программы
3.2 Протокол работы программы
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЕ А ЛИСТИНГ И ПРОТОКОЛ РАБОТЫ МОДИФИЦИРОВАННОЙ ПРОГРАММЫ
Рис. 2.2. Схема алгоритма метода «пузырька»
Рис.2.3 Алогритм процедуры ввода элементов массива
Рис.2.4 Алогритм процедуры вывода элементов массива
Рис.2.4 Алогритм функции перестановки элементов массива
3 ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ
3.1 Листинг программы
Согласно разработанного алгоритма, в разделе 2.3, используя язык программирования Pascal, была разработана программа текст, которой представлен ниже
{программа сортирует по возрастанию массив из 100 целых элементов}
program sort;
{подключаем библиотеку, содержащую функции стирания экрана и ожидания нажатия клавиши}
uses crt;
{описываем тип массива}
type massive=array[1..100] of integer;
{описываем необходимые переменные}
var lb,ub:integer;
i,n,a0:integer;
flag:boolean;
A:massive;
procedure vvod(var A:massive);
{процедура ввода массива}
begin
for i:=1 to n do
begin
write('A[',i,']=');
read(A[i]);
end;
end;
procedure vuvod(var A:massive);
{процедура вывода массива}
begin
for i:=1 to n do
writeln(A[i]);
writeln('
readkey;
end;
function swap:boolean;
{функция перестановки элементов массива}
begin
a0:=A[i+1];
A[i+1]:=A[i];
A[i]:=a0;
swap:=false;
end;
{начало главной программы }
Begin
{стирание экрана }
clrscr;
{ввод размера массива}
Writeln('Vvedite N');
readln(N);
lb:=1;
ub:=n-1;
{ввода массива}
vvod(A);
repeat
flag:=true;
for i:=1 to ub do
if A[i]>A[i+1] then
{перестановка элементов массива}
flag:=swap;
writeln('************');
{вывод промежуточных результатов}
vuvod(A);
{завершение цикла обработки }
until flag=true;
{ вывод результирующего массива}
writeln('Rezultat');
vuvod(A);
end.
3.2 Протокол работы программы
Vvedite N
7
A[1]=7
A[2]=0
A[3]=-4
A[4]=3
A[5]=1
A[6]=-2
A[7]=5
************
0
-4
3
1
-2
5
7
************
-4
0
1
-2
3
5
7
************
-4
0
-2
1
3
5
7
************
-4
-2
0
1
3
5
7
************
-4
0
1
-2
3
5
7
************
-4
0
-2
1
3
5
7
************
-4
-2
0
1
3
5
7
************
-4
-2
0
1
3
5
7
Rezultat
-4
-2
0
1
3
5
7
ЗАКЛЮЧЕНИЕ
Курсовая работа посвящена вопросам реализации подпрограмм на языке высокого уровня pascal. Первая часть работы является теоретическим исследованием рассматриваемых вопросов. Проанализированы методы описания процедур и функций в pascal, а так же проанализированы виды процедур, функций, а так же особенности описания и реализации. Рассмотрены вопросы, связанные с описанием параметров процедур и функций.
Во второй части работы разработка алгоритма решения задачи сортировки массива методом простого обмена с использованием средств процедур и функций.
В третьей части работы выполнена разработка программы, реализующей алгоритм рассматриваемого метода с использованием процедур и функций.
Как показывают проведенные исследования разработанный алгоритм и программа позволяют успешно решать рассматриваемую задачу трассировки целочисленного массива. Удачным решением при разработке программы является использование двух процедур и одной функции, что позволило существенно уменьшить код программы, однако реализованный метод, не обладает высокой эффективностью решения задач сортировки и близок к полнопереборным методом.
Для уменьшения этого недостатка возможна модификация рассматриваемого метода простого обмена, которая известна в литературе как Шейк-сортировка. В этом алгоритме сортировка выполняется каждый раз с различных сторон массива. Первый раз с начальных элементов, второй раз -с последних элементов массива. Процесс сортировки, обмена элементов массива аналогичен сортировке простого обмена (метод пузырька).
Применение модифицированного метода сортировки пузырька (Шейк-сортировки) обычно приводит к повышению скорости и уменьшению операций при сортировке массива, особенно в тех случаях когда массив является частично упорядоченным. Листинг разработанной программы по методу Шейк сортировки и протокол работы программы приведены в приложении А. Результаты показывают, что результат сортировки по этому методу достигается быстрее. Как недостаток метода Шейк-сортировки необходимо отметить некоторую большую сложность по сравнению с методом пузырька.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
Рапаков Г. Г., Ржеуцкая С. Ю. Программирование на языке Pascal. — СПб.: БХВ-Петербург, 2004. - 480 с.
Окулов С. М. Программирование в алгоритмах. М.Бином: 2002.
Ахо А.Д. Хопкрофт Д.Є. Ульман Структуры данныхи алгоритмы. Москва, Санкт-Петербург, 2000
Иванов Б.Н. Дискретная математика алгоритмы. Алгоритмы и программы. Лаборатория базовых знаний 2003
Голицына О.Л. Попов И.И. основы алгоритмизации и программирования. Москва, 2008
ПРИЛОЖЕНИЕ А
ЛИСТИНГ И ПРОТОКОЛ РАБОТЫ МОДИФИЦИРОВАННОЙ ПРОГРАММЫ
program sort;
uses crt;
type massive=array[1..100] of integer;
var lb,ub:integer;
i,n,a0:integer;
flag:boolean;
A:massive;
procedure vvod(var A:massive);
begin
for i:=1 to n do
begin
write('A[',i,']=');
read(A[i]);
end;
end;
procedure vuvod(var A:massive);
begin
for i:=1 to n do
writeln(A[i]);
writeln('
readkey;
end;
function swap:boolean;
begin
a0:=A[i+1];
A[i+1]:=A[i];
A[i]:=a0;
swap:=false;
end;
function swap1:boolean;
begin
a0:=A[i];
A[i]:=A[i-1];
A[i-1]:=a0;
swap1:=false;
end;
begin
clrscr;
Writeln('Vvedite N');
readln(N);
lb:=1;
ub:=n-1;
vvod(A);
repeat
flag:=true;
for i:=1 to ub do
if A[i]>A[i+1] then flag:=swap;
writeln('************');
vuvod(A);
if flag=true then break;
for i:=n downto 2 do
if A[i-1]>A[i] then flag:=swap1;
writeln('************');
vuvod(A);
until flag=true;
writeln('Rezultat');
vuvod(A);
end.
Протокол работы программы
Vvedite N
7
A[1]=7
A[2]=0
A[3]=-4
A[4]=3
A[5]=1
A[6]=-2
A[7]=5
************
0
-4
3
1
-2
5
7
************
-4
0
-2
3
1
5
7
************
-4
-2
0
1
3
5
7
************
-4
-2
0
1
3
5
7
************
-4
0
-2
3
1
5
7
************
-4
-2
0
1
3
5
7
************
-4
-2
0
1
3
5
7
************
-4
-2
0
1
3
5
7
Rezultat
-4
-2
0
1
3
5
7
20
1.Рапаков Г. Г., Ржеуцкая С. Ю. Программирование на языке Pascal. — СПб.: БХВ-Петербург, 2004. - 480 с.
2.Окулов С. М. Программирование в алгоритмах. М.Бином: 2002.
3.Ахо А.Д. Хопкрофт Д.Є. Ульман Структуры данныхи алгоритмы. Москва, Санкт-Петербург, 2000
4.Иванов Б.Н. Дискретная математика алгоритмы. Алгоритмы и программы. Лаборатория базовых знаний 2003
5.Голицына О.Л. Попов И.И. основы алгоритмизации и программирования. Москва, 2008
Вопрос-ответ:
Какие общие сведения о реализации подпрограмм можно найти в статье?
В статье рассказывается о общих сведениях о реализации подпрограмм в языке Pascal.
Какие типы параметров могут быть переданы в подпрограмму?
В подпрограмму можно передавать параметры значения, параметры переменные и параметры константы.
Что такое вложенные процедуры и функции?
Вложенные процедуры и функции - это подпрограммы, которые находятся внутри других подпрограмм.
Какое условие задачи рассматривается в проектной части статьи?
В проектной части статьи рассматривается определенное условие задачи, которое не указано.
Где можно найти листинг программы и протокол работы программы?
В экспериментальной части статьи приведены листинг программы и протокол работы программы.
Какие общие сведения о реализации подпрограмм существуют?
Общие сведения о реализации подпрограмм включают в себя информацию о том, как создавать и использовать процедуры и функции в языке Pascal. Они также описывают механизм передачи параметров в подпрограммы.
Какие типы параметров можно использовать при передаче в подпрограммы?
При передаче параметров в подпрограммы можно использовать три типа: параметры значения, параметры переменные и параметры константы. Параметры значения используются для передачи обычных значений, параметры переменные позволяют передавать адреса переменных для изменения их значений, а параметры константы используются для передачи значений, которые не могут быть изменены в подпрограмме.