ЛАБОРАТОРНАЯРАБОТА
по дисциплине“Основы программирования”
на тему
Алгоритмическиеязыки: обработка одномерных массивов
Цель работы: получение навыков работыс массивами, их вода и вывода, закрепление навыков организации программциклической структуры.Постановказадачи:
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 ofbyte);
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 dopowtor[(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. Подобраны наборы тестовых данных,которые были использованы при прогоне программы на наличие ошибок.