Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_po_informatike_bakalavry.doc
Скачиваний:
42
Добавлен:
11.04.2015
Размер:
407.04 Кб
Скачать

Программа:

program lab8;

const n=5; m=4;

type str=array[1..n,1..m] of real;

var a:str;

sum:real;

k,i,j:integer;

f:text;

begin

assign(f,'lab8.dat'); rewrite(f);

writeln('ВВЕДИТЕ ЭЛ-ТЫ МАССИВА А(',n:1, ',' , m:1, ')');

(* ВВОД МАССИВА *)

for i:=1 to n do

for j:=1 to m do

read(a[i,j]);

(* ВЫВОД ЭЛ-ОВ МАССИВА НА ЭКРАН И В ФАЙЛ *)

writeln; writeln(' ':10,'ИСХОДНЫЙ МАССИВ');

writeln(f); writeln(f,' ':10,'ИСХОДНЫЙ МАССИВ');

for i:=1 to n do

for j:=1 to m do

begin

write(' A[',i:1, ',' ,j:1,']=',a[i,j]:8:3);

write(f,' A[',i:1, ',' ,j:1,']=',a[i,j]:8:3);

if ( j mod 4 =0) then begin

writeln; writeln(f)

end

end;

(* НАХОЖДЕНИЕ СУММЫ ЭЛЕМЕНТОВ МАССИВА *)

sum:=0;

for i:=1 to n do

for j:=1 to m do

sum:=sum+a[i,j];

writeln; writeln(f);

writeln(' СУММА ЭЛЕМЕНТОВ МАССИВА =',sum:8:3);

writeln(f,' СУММА ЭЛЕМЕНТОВ МАССИВА =',sum:8:3);

writeln; writeln(f);

writeln(' ПРОГРАММУ ВЫПОЛНИЛ ИВАНОВ И.И.');

writeln(f,' ПРОГРАММУ ВЫПОЛНИЛ ИВАНОВ И.И.');

close(f)

end.

РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММЫ:

ИСХОДНЫЙ МАССИВ

A[1,1]= 5.100 A[1,2]= 30.000 A[1,3]= 5.900 A[1,4]= 9.300

A[2,1]= 3.400 A[2,2]= 5.600 A[2,3]= -11.500 A[2,4]= 8.300

A[3,1]= 125.800 A[3,2]= 17.100 A[3,3]= 19.500 A[3,4]= 34.000

A[4,1]= 1.000 A[4,2]= 0.500 A[4,3]= 0.400 A[4,4]= 345.000

A[5,1]= -4.700 A[5,2]= 45.700 A[5,3]= 18.900 A[5,4]= 12.700

СУММА ЭЛЕМЕНТОВ МАССИВА = 672.000

ПРОГРАММУ ВЫПОЛНИЛ ИВАНОВ И.И.

Контрольные вопросы:

  1. Способы описания массивов?

  2. Как организуется ввод и вывод массивов?

Лабораторная работа №8 название: упорядочение элементов массива

ЦЕЛЬ РАБОТЫ:

1. Получение практических навыков в использовании оператора цикла.

2. Знакомство с алгоритмами упорядочения.

ПОСТАНОВКА ЗАДАЧИ:

Изучив алгоритмы упорядочения, выбрать один из них. Написать программу, которая работает с любым доступным набором данных. Входную информацию и результаты счета вывести на рабочий диск и на экран, снабдив их соответствующими заголовками.

СОДЕРЖАНИЕ ОТЧЕТА

1. Задание на лабораторную работу.

2. Блок-схему алгоритма и текст программы.

3. Результаты работы программы.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ:

Рассмотрим массив целых и действительных чисел A(1),...,A(N).

Пусть требуется переставить элементы этого массива так, чтобы после перестановки они были упорядочены по не убыванию (возрастанию).

A(1)<=A(2)<=A(3)<=...<=A(N).

Эта задача называется задачей сортировки или упорядочения массива (эту же задачу можно рассматривать применительно к упорядочению по не возрастанию (убыванию)):

A(1)>=A(2)>=A(3)>=...>=A(N)).

Для решения этой задачи можно воспользоваться, например, следующими алгоритмами:

а) Найти элемент массива, имеющий наименьшее значение, переставить его с первым элементом, затем проделать то же самое, начав со второго элемента и т.д. (сортировка выбором). При решении задачи используются два цикла. Во внутреннем цикле находится наименьший элемент и его порядковый номер. После окончания цикла первый элемент из рассматриваемой части массива записывается на место наименьшего, а наименьший - на место первого. Указанные действия повторяются во внешнем цикле, начиная сначала с первого элемента массива, затем со второго и т.д.

б) Последовательным просмотром чисел A(1),...,A(N) найти 'I' такое, что A(I)>A(I+1). Поменять местами A(I) и A(I+1), возобновить просмотр с элемента A(I+1) и т.д. Тем самым наибольшее число передвинется на последнее место. Следующие просмотры начинать опять сначала, пока в процессе просмотра массива не будет перестановок (сортировка обменом).

Пример программы упорядочения массива по не убыванию (возрастанию) методом выбора.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]