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