ЛАБОРАТОРНАЯ РАБОТА
по дисциплине “Основы программирования”
на тему
Алгоритмические языки: обработка одномерных массивов
Цель работы: получение навыков работы с массивами, их вода и вывода, закрепление навыков организации программ циклической структуры.
Постановка задачи:
1. Изучить способы описания и использования массивов, алгоритмы сортировки массивов, сортировку выбором, вставками и обменную сортировку. Так же алгоритмы поиска элемента в неупорядоченном и упорядоченном массивах.
2. Разработать алгоритм и составить программу для решения задачи соответствующего варианта.
3. Подобрать наборы тестовых данных.
Задание к работе:
1. Если в массиве нет повторяющихся элементов, то упорядочить его по возрастанию.
2. Набрать программу, отладить ее, протестировать. Распечатать текст программы и результаты ее работы на тестовых данных.
Ход выполнения работы
1. Наборы тестовых данных
Первый набор тестовых данных: {0,9,8,7,6,5,32,6,4,3}
Второй набор тестовых данных: {2,4,16,23,34,45,76,91,98,100}
2. Текст программы
PROGRAM LAB5;
PROCEDURE SORT_MAS(SIZ:WORD;a:array of byte);
VAR
S:BYTE;K,i:WORD;
BEGIN
REPEAT
S:=0;
BEGIN
FOR K:=3 downTO 1 DO
BEGIN
FOR I:=0 TO (SIZ-K) DO
BEGIN
IF (A[I]>A[I+1]) THEN
BEGIN
A[I]:=A[I]+A[I+1];
A[I+1]:=A[I]-A[I+1];
A[I]:=A[I]-A[I+1];
S:=1
END
END
END
END;
UNTIL S=0;
WRITELN('Массив после упорядочивания: ');
WRITELN;
for k:=1 to SIZ do write(a[k],', ');
end;
VAR
powtor:array[1..256] of byte;
a:array[1..10000] of byte;
SIZ,w:WORD;
q:byte;
BEGIN
WRITELN('Введите длину массива ');readln(siz);
WRITELN('Введите массив:');
for w:=1to siz do
begin
write('a[',w,']=');readln(a[w])
end;
for w:=1 to 256 do powtor[w]:=0;
for w:=1 to siz do powtor[(a[w])+1]:=powtor[(a[w])+1]+1;
w:=1;
Q:=0;
repeat
begin
if powtor[w]>1 then q:=1;;
w:=w+1
end;
until (q=1) or (w>=255);
if q=0 then sort_mas(siz,a)
ELSE
writeln('Данный массив содержит повторяющиеся элементы!')
END.
3. Результаты работы
Пример №1.
Введите длину массива
10
Введите массив:
a[1]=0
a[2]=9
a[3]=8
a[4]=7
a[5]=6
a[6]=5
a[7]=32
a[8]=6
a[9]=4
a[10]=3
Данный массив содержит повторяющиеся элементы!
Пример №2.
Введите длину массива
10
Введите массив:
a[1]=100
a[2]=2
a[3]=4
a[4]=98
a[5]=76
a[6]=45
a[7]=23
a[8]=91
a[9]=34
a[10]=16
Массив после упорядочивания: 2,4,16,23,34,45,76,91,98,100
4. Описание ошибок, выявленных при отладке программы
При отладке программы ошибок не обнаружено.
Выводы
В ходе лабораторной работы были достигнуты следующие цели:
1. Был изучен теоретический материал по обработке массивов данных в языке программирования Pascal.
2. Изучены различные способы описания и использования массивов, алгоритмы сортировки массивов, сортировка выбором, вставками и обменная сортировка. Так же алгоритмы поиска элемента в неупорядоченном и упорядоченном массивах.
3. Разработан алгоритм и составлена программу для решения задачи соответствующего варианта.
4. Подобраны наборы тестовых данных, которые были использованы при прогоне программы на наличие ошибок.