Вход

Подпрограммы пользователя в языке Pascal .Подпрограмма- функция.

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 111470
Дата создания 2011
Страниц 33
Источников 5
Мы сможем обработать ваш заказ (!) 26 апреля в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
2 100руб.
КУПИТЬ

Содержание


Содержание
ВВЕДЕНИЕ
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('<Enter>');
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
<Enter>
************
-4
0
1
-2
3
5
7
<Enter>
************
-4
0
-2
1
3
5
7
<Enter>
************
-4
-2
0
1
3
5
7
<Enter>
************
-4
0
1
-2
3
5
7
<Enter>
************
-4
0
-2
1
3
5
7
<Enter>
************
-4
-2
0
1
3
5
7
<Enter>
************
-4
-2
0
1
3
5
7
<Enter>
Rezultat
-4
-2
0
1
3
5
7
<Enter>
ЗАКЛЮЧЕНИЕ
Курсовая работа посвящена вопросам реализации подпрограмм на языке высокого уровня 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('<Enter>');
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
<Enter>
************
-4
0
-2
3
1
5
7
<Enter>
************
-4
-2
0
1
3
5
7
<Enter>
************
-4
-2
0
1
3
5
7
<Enter>
************
-4
0
-2
3
1
5
7
<Enter>
************
-4
-2
0
1
3
5
7
<Enter>
************
-4
-2
0
1
3
5
7
<Enter>
************
-4
-2
0
1
3
5
7
<Enter>
Rezultat
-4
-2
0
1
3
5
7
<Enter>
20

Список литературы [ всего 5]

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1.Рапаков Г. Г., Ржеуцкая С. Ю. Программирование на языке Pascal. — СПб.: БХВ-Петербург, 2004. - 480 с.
2.Окулов С. М. Программирование в алгоритмах. М.Бином: 2002.
3.Ахо А.Д. Хопкрофт Д.Є. Ульман Структуры данныхи алгоритмы. Москва, Санкт-Петербург, 2000
4.Иванов Б.Н. Дискретная математика алгоритмы. Алгоритмы и программы. Лаборатория базовых знаний 2003
5.Голицына О.Л. Попов И.И. основы алгоритмизации и программирования. Москва, 2008
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00693
© Рефератбанк, 2002 - 2024