Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Федеральное агентство по образованию
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра компьютерных систем
в управлении и проектировании (КСУП)
ОТЧЕТ
К лабораторной работе 7 (сортировка) по дисциплине
“Программирование на языках высокого уровня”
Выполнила:
Студентка гр. 539
Безверхая О.С.
31.05.2010
Принял:
ст. преподаватель каф. КСУП
Е. А. Потапова
2010
ВВЕДЕНИЕ 3
Анализ задачи № 10 4
БЛОК-СХЕМА к функции в задаче № 10 5
БЛОК-СХЕМА к функции в задаче № 10 6
Решение задачи № 10 на языке Turbo Paskal 7
Анализ задачи № 24 8
БЛОК-СХЕМА к процедуре в задаче № 24 9
БЛОК-СХЕМА к задаче № 23 10
Решение задачи № 24 на языке Turbo Paskal 11
ЗАКЛЮЧЕНИЕ 12
Приложение 1 13
Данная лабораторная работа посвящена решению задач в разделе “Сортировка”. Цель работы научится применять основные методы сортировки, которые были даны в курсе лекций. В данной работе представлено решение и анализ задач №10 и №24 из лабораторной работы №7
Пусть для целого n>0 функция d(n) равна наименьшему делителю числа n, не равному1.Дано m>0. Упорядочить все числа n от 1 до m в порядке неубывания значений d(n).
Указание: использовать только один массив длиной m.
Для решения задачи:
- формируем тело программы и описываем переменные;
- пишем функцию для определения наименьшего делителя;
- создаем цикл для сортировки элементов в массиве а;
- выводим на экран отсортированный массив;
- завершаем программу.
Переменные:
a массив;
i,j - переменные цикла;
k,n,m вспомогательные переменные;
d название функции;
B mod c=0
конец
d:=c
break
c:=2,b
старт
БЛОК-СХЕМА к функции в задаче № 10
старт
m
i:=1,m
i=1,m
i=1,m
a[i]:=i
i:=2,m
j:=2,i
a[i]
a[i]:=a[j]
d(a[i])<d(a[j])
a[j]:=k
k:=a[i]
i:=1,m
конец
Решение задачи № 10 на языке Turbo Paskal
uses crt;
var
end.
Дана матрица из целых чисел A размерности MxN. Упорядочить элементы матрицы так, чтобы
A[i , j] >= A[i , k], если k >= j для всех i,
A[i1 , j1] >= A[i2 , j2], если i2 >= i1 для всех j1, j2, т.е. все элементы матрицы должны быть расположены по убыванию.
Для решения задачи:
- формируем тело программы и описываем переменные;
- создаем процедуру для вывода матрицы;
- создаем цикл для сортировки матрицы с;
- меняем нужные элементы местами;
- выводим отсортированную матрицу;
-завершаем программу.
Переменные:
с- матрица;
i,j,i1,i2,j1,j2 переменные циклов;
t вспомогательная переменная.
конец
d[ii,jj]
jj:=1,m
writeln
ii:=1,n
старт
БЛОК-СХЕМА к задаче № 23
старт
i:= 1,n
j:= 1,m
c[i,j]:= random(10)
vivod(c)
i1:=1,n
j1:=1,m
i2:=1,n
j2:=1,m
((i2=i1)and(j2<=j1))or(i2<i1)
Continue
c[i1,j1]<c[i2,j2]
t:=c[i1,j1];
c[i1,j1]:=c[i2,j2];
c[i2,j2]:=t
конец
vivod(c)
const n=3;m=4;
type mat=array[1..n,1..m] of integer;
var i1,i2,j1,j2,t,i,j:integer;
c:mat;
procedure Vivod(d:mat);
var ii,jj:integer;
begin
for ii:=1 to n do begin
for jj:=1 to m do
write(d[ii,jj],' ');
writeln;
end;
writeln;
end;
begin
randomize;
for i:= 1 to n do
for j:= 1 to m do
c[i,j]:= random(10);
vivod(c);
for i1:=1 to n do
for j1:=1 to m do
for i2:=1 to n do
for j2:=1 to m do
begin
if (((i2=i1)and(j2<=j1))or(i2<i1)) then Continue;
if (c[i1,j1]<c[i2,j2]) then
begin
t:=c[i1,j1];
c[i1,j1]:=c[i2,j2];
c[i2,j2]:=t;
end;
end;
vivod(c);
readln;
end.
В ходе лабораторной работы были применены знания, полученные на теоретических занятиях. При выполнении данной лабораторной работы научилась применять основные методы сортировки.
Тестирование задачи № 10:
Тестирование задачи № 24: