Сортировка строк матрицы в программе Pascal
Если в форме описания массива задан один индекс, массив называется одномерным, если два индекса — двумерным, если n индексов — n-мерным. Одномерный массив соответствует понятию линейной таблицы, двумерный — понятию прямоугольной таблицы. В нашем случае массивы являются одномерными. Выполняя данную работу, убеждаешься, что программирование и математика стоят не так уж далеко друг от друга… Читать ещё >
Сортировка строк матрицы в программе Pascal (реферат, курсовая, диплом, контрольная)
Алгоритмический язык Паскаль был создан в конце 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]
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
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.