регистрация / вход

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

Работа с массивами, их ввод и вывод, организация программ циклической структуры. Способы описания и использования массивов, алгоритмы их сортировки, сортировка выбором и вставками. Алгоритмы поиска элемента в неупорядоченном и упорядоченном массивах.

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

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

на тему

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


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

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

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

ОТКРЫТЬ САМ ДОКУМЕНТ В НОВОМ ОКНЕ

ДОБАВИТЬ КОММЕНТАРИЙ  [можно без регистрации]

Ваше имя:

Комментарий