Алгоритмические языки: обработка одномерных массивов

ЛАБОРАТОРНАЯ РАБОТА

по дисциплине “Основы программирования”

на тему

Алгоритмические языки: обработка одномерных массивов


Цель работы: получение навыков работы с массивами, их вода и вывода, закрепление навыков организации программ циклической структуры.

Постановка задачи:

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. Подобраны наборы тестовых данных, которые были использованы при прогоне программы на наличие ошибок.