Сортировка строк матрицы в программе Pascal
Разработка программы на языке Pascal. Описание переменных. Действия, которые должна выполнить программа согласно выбранного алгоритма. Детализация графической части программы. Листинг и тестирование программы. Вывод массива данных на экран монитора.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 13.06.2012 |
Размер файла | 360,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
Алгоритмический язык Паскаль был создан в конце 60-х годов профессором Н. Виртом (Швейцария) как специальный язык для обучения программированию. В настоящее время он реализован практически на всех ПЭВМ. Международный стандарт языка Паскаль утвержден в 1982 году.
Pascal - один из лучших реальных «учебных» языков программирования - недаром его изучают во многих школах и на начальных курсах большинства технических вузов. Для начала работы с языком программирования нужно уяснить для себя что такое алгоритм, язык программирования, программа; научиться алгоритмическому мышлению и научиться писать свои программы. Особое место в языке Паскаль занимают массивы. Массивом называется совокупность данных, выполняющих аналогичные функции, и обозначаемая одним именем. Если за каждым элементом массива закреплен только один его порядковый номер, то такой массив называется линейным, или одномерным.
В данной курсовой работе разработана программа, реализующая сортировку строк матрицы.
Турбо Паскаль - это система программирования, созданная для повышения качества и скорости разработки программ (80-е гг.). Слово Турбо в названии системы программирования - это отражение торговой марки фирмы-разработчика Borland International (США).
Систему программирования Турбо Паскаль называют интегрированной (integration - объединение отдельных элементов в единое целое) средой программирования, т.к. она включает в себя редактор, компилятор, отладчик, имеет сервисные возможности.
Цель работы заключается в том, чтобы написать, проанализировать работу и программы в среде Turbo Pascal, реализующей сортировку строк матрицы.
Для достижения цели поставим следующие задачи:
Изучить язык программирования Turbo Pascal.
Решить контрольные задачи.
Предоставить листинг, алгоритмы и анализ программ.
Проанализировать контрольную программу, реализующую сортировку строк матрицы.
1. Разработка программы на языке Pascal
Любая программа состоит из заголовка программы, блока подключаемых модулей, блока описания констант и переменных, и тела программы, в котором используются различные операторы.
В модуле CRT реализованы специальные процедуры и функции для работы с текстовой информацией на дисплее, позволяющие: управлять текстовыми режимами, организовывать окна вывода на экран, настраивать цвета символов на экране, управлять курсором.
Для подключения модуля достаточно указать зарезервированное слово USES и список подключаемых модулей в самом начале программы:
USES CRT;
USES CRT используем для подключения процедуры
Procedure ClrScr;
Которая, позволяет очистить экран от всей ненужной информации и поместить курсор в левый верхний угол.
Описание констант.
В разделе описаний программы должны быть описаны не только переменные, но и константы, в данной программе константы описаны следующим образом:
Const
N=30;
Где, N=имя константы, 30=ее значение.
Описание переменных.
Все переменные используемые в программе должны быть перечислены в разделе описания переменных VAR. Этот раздел состоит из предложений описания переменных. Размещается он между заголовком программы, подпрограммы или модуля и зарезервированным словом BEGIN, открывающим раздел операторов программы, подпрограммы или модуля.
Пример описания переменных:
A:ARRAY [1…N] OF INTEGER;
I, J:INTEGER; P, K:REAL;
где A - целочисленный одномерный массив состоящий из N элементов. I, J - целочисленные переменные, P, K - вещественные переменные.
В разделе операторов опишем действия, которые должна выполнить программа согласно выбранного алгоритма. Этот раздел заключен между словами begin и end. В программе может использоваться составной оператор begin end;.
Формирование массива осуществим с помощью генератора случайных чисел randomize и цикла с параметром.
Массив - структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип.
Если в форме описания массива задан один индекс, массив называется одномерным, если два индекса - двумерным, если n индексов - n-мерным. Одномерный массив соответствует понятию линейной таблицы, двумерный - понятию прямоугольной таблицы. В нашем случае массивы являются одномерными.
Оператор повтора, одно из ключевых слов которого является FOR часто называют оператором цикла с параметром, т.к. число повторений задается переменной, которая на каждом шаге цикла автоматически изменяет свое значение ровно на единицу - поэтому ее называют счетчиком. Оператор повтора FOR применяется в случаях, когда число повторений заранее известно, он состоит из заголовка и тела цикла.
В записи цикла присутствует оператор присваивания (:=), который предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, идентификатор которой расположен в левой части. Переменные и выражение должны быть совместимы по типу.
С помощью процедуры writeln описываем выводящееся на экран. Write - оператор, который используется для вывода информации на экран. Оператор WriteLn выполняет то же самое действие, но так как у него есть еще окончание Ln, то после вывода на экран нужного сообщения, он дополнительно переводит курсор на следующую строчку.
Условный оператор позволяет проверить некоторое условие и в зависимости от результата выполнить тот или иной оператор или группу операторов. С помощью условных операторов программируются алгоритмы разветвляющейся структуры.
Оператор повтора одно из ключевых слов которого является While часто называют оператором повтора с предусловием, т.к. условие выполнения цикла проверяется в самом начале. Его чаще всего используют, когда число повторений цикла заранее не известно. Переменная цикла всегда должна изменяться в теле цикла, иначе он никогда не завершится.
2. Детализация графической части программы
2.1 Задача 1
Дана последовательность чисел, так называемых чисел Фибоначчи. 1,2,3,5,8,12… Вывести все числа Фибоначчи до заданного числа N, вводимого пользователем.
Начало
Ввод N
I=1
J=I
I<=N
I
K=I
I=J
J=K+I
Конец
Листинг программы
uses crt;
var i, j, k, n:integer;
begin
write ('N=');
read(n);
i:=1; j:=i;
while i<= n do begin
write (i:3); k:=i; i:=j; j:=k+i; end; readln; readln; end.
Тестирование программы
2.2 Задача 2
pascal программа листинг тестирование
По условию элементы массива должны быть заполнены случайными числами, затем выведены на экран. Для вывода массива на экран воспользуемся циклом с параметром.
Листинг программы
uses crt;
const n=11;
var i, j, k, min, max:integer;
a:array [1..n] of integer;
begin
clrscr;
randomize;
for i:=1 to n do
a[i]:=random(30);
writeln ('Данные о количестве учеников в классах');
for i:=1 to n do
write (a[i]:3); k:=0;
for i:=1 to n do
k:=k+a[i];
writeln;
write ('Среднее количество учеников', k/n:3:0); min:=0;
for i:=1 to n do
if a[i]>k/n then inc(min); writeln; writeln ('Количество классов: ', min);
min:=a[1]; max:=a[1];
k:=1; j:=1;
for i:=1 to n do begin
if a[i]>max then begin max:=a[i]; k:=i; end;
if a[i]<min then begin min:=a[i]; j:=i; end; end;
writeln ('Максимальное количество ', max, ' в ', k, ' классе');
writeln ('Минимальное количество ', min, ' в ', j, ' классе'); min:=0;
for i:=1 to n do
min:=min+a[i];
max:=max*n;
writeln ('Процент увеличения ', max*100/min:3:1,' % '); end.
Тестирование программы
2.3 Задача 3
Определим сумму положительных и количество отрицательных элементов среди элементов, расположенных между первым максимальным и последним по порядку минимальным элементом.
Листинг программы
uses crt;
const n=15;
var
i, j, k, min, max:integer; a:array [1..n] of integer;
begin
clrscr;
randomize;
writeln ('Исходный вектор');
for i:=1 to n do
a[i]:=random (25+25) - 25;
for i:=1 to n do
write (a[i]:3); writeln;
max:=a[1]; min:=a[1]; k:=1; j:=1;
for i:=1 to n do begin
if a[i]>max then begin max:=a[i]; j:=i; end;
if a[i]<=min then begin min:=a[i]; k:=i; end; end;
writeln ('Мин элемент', min:3,' адрес', k:3,' Макс Элемент', max:3,' адрес', j:3);
max:=0; min:=0;
if j<k then
for i:=j to k do
if a[i]>0 then max:=max+a[i] else inc(min)
else
for i:=k to j do
if a[i]>0 then max:=max+a[i] else inc(min);
writeln ('сумма', max:3,' количество', min:3); end.
Тестирование программы
2.4 Задача 4
Дана последовательность ненулевых чисел, проверить чередуются ли в нем положительные и отрицательные элементы. Если чередуются, то вывести 0, иначе номер элемента нарушающего закономерность.
Листинг программы
uses crt;
const n=20;
var i, j, k:integer;
a:array [1..n] of integer;
begin
clrscr; randomize;
for i:=1 to n do
repeat
a[i]:=random (5+5) - 5;
until (a[i]>0) or (a[i]<0);
writeln('Вектор');
for i:=1 to n do write (a[i]:3); writeln; i:=1; k:=1;
if a[k]>0 then begin repeat
if (a[i]>0) and (a[i+1]<0) then k:=i+1 else begin k:=k+1;
break; end; i:=i+2; until i>=n;
if k=n then write(0) else write(k); end else write(1); end.
Тестирование программы
Заключение
Решение контрольных задач показало, что массивы и способы их обработки - это удобный инструмент, который можно использовать как для хранения данных на время работы программы, так и для решения конкретных, более сложных задач.
Достоинства:
- Лёгкость вычисления адреса элемента по его индексу (поскольку элементы массива располагаются один за другим);
- Одинаковое время доступа ко всем элементам;
- Малый размер элементов: они состоят только из информационного поля;
Выполняя данную работу, убеждаешься, что программирование и математика стоят не так уж далеко друг от друга. Программирование в Паскале развивает алгоритмическое мышление. Также данная работа позволила овладеть основными навыками работы в MS Word, что в наше время очень актуально.
Выполняя данную работу, убеждаешься, что программирование и математика стоят не так уж далеко друг от друга. Программирование в Паскале развивает алгоритмическое мышление. Также данная работа позволила овладеть основными навыками работы в MS Word, что в наше время очень актуально.
Список литературы
1. Немнюгин С.А. TURBO PASCAL. Учебник. - СПб.: «Питер», 2000.
2. Иванов А. Ф, Потапова О. Н, Салихова Г.Л., Основы алгоритмического языка Pascal. Учебное пособие. - Альметьевск: типография АГНИ, 2007.
3. Иванов А.Ф, Потапова О.Н, Салихова Г.Л., Информатика Раздел: Word для начинающих. Учебно-методическое пособие-Альметьевск.: типография АГНИ, 2003.
4. Зеленяк О.П., Практикум программирования на Turbo Pascal. Задачи, алгоритмы и решения - СПб.: «ДиаСофтЮП, ДМК Пресс», 2007.
5. Марченко А. И, Марченко Л. А, Программирование в среде Turbo Pascal 7.0. Базовый курс: М.: «Век+», 2003.
Размещено на Allbest.ru
Подобные документы
Решения задачи графическим и программным способами. Описание алгоритма решения графическим способом, укрупненная схема алгоритма. Ввод элементов двумерного массива, вывод преобразованного массива, разработка программы на языке pascal, листинг программы.
курсовая работа [115,5 K], добавлен 22.05.2010Описание алгоритма решения задачи графическим способом. Вывод элементов массива. Описание блоков укрупненной схемы алгоритма на языке Pascal. Листинг программы, а также ее тестирование. Результат выполнения c помощью ввода различных входных данных.
контрольная работа [150,4 K], добавлен 03.05.2014Описание алгоритма решения задачи по вычислению суммы элементов строк матрицы с использованием графического способа. Детализация укрупненной схемы алгоритма и разработка программы для решения задачи в среде Turbo Pascal. Листинг и тестирование программы.
курсовая работа [446,0 K], добавлен 19.06.2014Анализ эффективности методов сортировки данных в языке Turbo Pascal. Разработка эскизного и технического проекта программы. Сортировка без и с использованием дополнительной памяти, за исключением небольшого стека (массива). Сортировка связанных списков.
курсовая работа [359,0 K], добавлен 23.05.2012Описание методов вычисления определителя матрицы. Математическое решение задачи с применением метода исключения Гаусса с выбором главного элемента. Схема алгоритма программы, описание переменных и структур данных, текст программы на языке Pascal.
курсовая работа [438,8 K], добавлен 16.02.2011Разработка и тестирование программы на языке Pascal для поиска, вывода на экран и сохранения в файл списка книг с фамилиями авторов в алфавитном порядке, изданных после 2012 года. Разработка алгоритма и его описание. Инструкции по эксплуатации приложения.
курсовая работа [903,0 K], добавлен 13.06.2013Разработка программы на языке Turbo Pascal, обеспечивающей работу пользователя в диалоговом режиме с возможностью выбора функций с помощью одноуровневого меню вертикального типа. Блок-схема и листинг программы, описание руководства пользователя.
курсовая работа [1,5 M], добавлен 17.03.2014Переменные типа integer, real, их функции. Общее понятие о массиве, файлы для Pascal. Информационный и информанизационный набор списка. Реализация и тестирование программы. Выбор базы данных, внесение имени, меню. Блок-схема алгоритма, листинг программы.
курсовая работа [306,0 K], добавлен 04.02.2013Описание алгоритма решения задачи графическим способом. Ввод элементов исходного массива в цикле. Нахождение определённых элементов. Сортировка элементов с помощью пузырькового метода. Разработка программы на языке Pascal. Поиск наибольшего элемента.
лабораторная работа [123,5 K], добавлен 15.01.2014Разработка эскизного и технического проектов программы "Helpopr" (ввод, хранение и вывод данных на дисплей по запросу пользователя). Язык программирования Turbo Pascal. Описание алгоритма программы. Требования к компьютеру и программному обеспечению.
курсовая работа [198,1 K], добавлен 03.02.2010