- •Тема курсовой работы: Разработка в среде Turbo Paskal программы поиска в массиве участков монотонности
- •Постановка задачи
- •Описание алгоритма решения задачи
- •Укрупненная схема алгоритма
- •2.1 Детализация укрупненной схемы алгоритма
- •2.2. Блок-схема алгоритма
- •Описание блоков укрупненной схемы алгоритмов на языке программирования
- •Текст программы
- •Тестирование программы
- •Литература
АЛЬМЕТЬЕВСКИЙ ГОСУДАРСТВЕННЫЙ
НЕФТЯНОЙ ИНСТИТУТ
КАФЕДРА ИНФОРМАТИКИ
КУРСОВАЯ РАБОТА
ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА»
РАЗДЕЛ: АЛГОРИТМИЧЕСКИЙ ЯЗЫК PASCAL
НА ТЕМУ: РАЗРАБОТКА В СРЕДЕ TURBO PASCAL ПРОГРАММЫ ПОИСКА В МАССИВЕ УЧАСТКОВ МОНОТОННОСТИ
Выполнил студент: Курбанов Р.Н.
Группы: 61-11-14
Проверила: Садриева Л.М.
АЛЬМЕТЬЕВСК 2012 год
Пояснительная записка
Оглавление
-
Постановка задачи
-
Описание алгоритма решения задачи графическим способом
-
Укрупненная схема алгоритма и ее детализация
-
Блок – схема алгоритма
-
-
Разработка программы на языке программирования
-
Описание блоков укрупненной схемы алгоритмов на языке программирования
-
Текст программы
-
Тестирование программы
-
-
Литература
Тема курсовой работы: Разработка в среде Turbo Paskal программы поиска в массиве участков монотонности
-
Постановка задачи
-
Вычислить значение 38 элементов одномерного целочисленного массива D в интервале (-9, 7) с использованием генератора случайных чисел.
-
Вычислить среднегармоническое значение ненулевых элементов первой трети массива.
-
Определить наименьший по абсолютной величине среди четных по номеру элементов первой четверти массива.
-
Упорядочить ненулевые элементы последней трети массива по возрастанию абсолютных значений
-
Описание алгоритма решения задачи
графическим способом
Укрупненная схема алгоритма
Начало
Ввод
массива
Вычисление
значения элементов массива с использованием
генератора случ. чисел
Вычисление
среднеарифметических четных элементов
массива
Вычисление
наименьшего элемента среди положительных
элем.
Упорядочение
массива по убыванию
Вывод
результата
Конец
2.1 Детализация укрупненной схемы алгоритма
В программе решаются следующие подзадачи:
-
Заполнение одномерного массива
-
Вычисление значения 38 элементов одномерного массива с использованием генератора случайных чисел
-
Вычисление среднегармонического значения ненулевых элементов первой четверти массива.
-
Определение наименьшего по абсолютной величине среди четных по номеру элемента первой степени массива.
-
Упорядочение ненулевых элементов последней трети массива по возрастанию абсолютных значений.
-
Вывод преобразованного массива
2.2. Блок-схема алгоритма
-
Описание блоков укрупненной схемы алгоритмов на языке программирования
-
Текст программы
-
PROGRAM Zadanie 1 Вычислить значение 38 элементов одномерного целочисленного массива D в интервале (-9, 7) с использованием генератора случайных чисел.
var M:array[1..38] of integer; i:integer; b:integer;
begin
writeln('Vod massiva');
randomize;
for i:=1 to 38 do begin
b:=random(7);
M[i]:=b;
end;
for i:=1 to 38 do write(M[i],' ');
writeln;
end.
writeln('задание 2'); Вычислить среднегармоническое значение ненулевых элементов первой трети массива
PROGRAM Zadanie1;
var M:array[1..38] of integer; i:integer; n,b:integer; sum:real;
begin
writeln('Vod massiva');
randomize;
for i:=1 to 38 do begin
b:=random(7);
M[i]:=b;
end;
for i:=1 to 38 do write(M[i],' ');
writeln;
writeln('задание 2');
n:=0;
sum:=0;
for i:=1 to 12 do begin
if M[i]<>0 then sum:=sum+1/M[i];
n:=n+1;
write(sum,' ');
end;
writeln;
writeln('srednegarm=',1/((1/n)*sum):5:2);
end.
PROGRAM Zadanie1; Определить наименьший по абсолютной величине среди четных по номеру элементов первой четверти массива
var M:array[1..38] of integer; i:integer; b,a,c:integer;
begin
writeln('Vod massiva');
randomize;
for i:=1 to 38 do begin
b:=random(7);
M[i]:=b;
end;
for i:=1 to 38 do write(M[i],' ');
writeln;
writeln('задание 3');
a:=10;
c:=0;
for i:=1 to 9 do begin
if a>M[i] then begin a:=M[i];
c:=i;
end;
end;
writeln('Наименьши элемент=',a,' под номером =',c);
end.
PROGRAM Zadanie4; Упорядочить ненулевые элементы последней трети массива по возростанию абсолютных значений
var M:array[1..38] of integer; i:integer; b,a,d,e,c:integer;
begin
writeln('Vod massiva');
randomize;
for i:=1 to 38 do begin
b:=random(16)-9;
M[i]:=b;
end;
for i:=1 to 38 do write(M[i],' ');
writeln;
writeln('задание 3');
a:=10;
c:=0;
for i:=1 to 9 do begin
if a>M[i] then begin a:=M[i];
c:=i;
end;
end;
writeln('Наименьши элемент=',a,' под номером =',c);
writeln('задание 4');
for i:=26 to 37 do begin
if M[i]<>0 then begin
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
write(M[i]);
end;
end;
writeln;
for i:=26 to 37 do begin
if M[i]<>0 then begin
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
write(M[i]);
end;
end;
writeln;
for i:=26 to 37 do begin
if M[i]<>0 then begin
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
write(M[i]);
end;
end;
writeln;
for i:=26 to 37 do begin
if M[i]<>0 then begin
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
write(M[i]);
end;
end;
writeln;
for i:=26 to 37 do begin
if M[i]<>0 then begin
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
write(M[i]);
end;
end;
writeln;
for i:=26 to 37 do begin
if M[i]<>0 then begin
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
write(M[i]);
end;
end;
writeln;
for i:=26 to 37 do begin
if M[i]<>0 then begin
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
write(M[i]);
end;
end;
writeln;
for i:=26 to 37 do begin
if M[i]<>0 then begin
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
write(M[i]);
end;
end;
writeln;
for i:=26 to 37 do begin
if M[i]<>0 then begin
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
write(M[i]);
end;
end;
writeln;
for i:=26 to 37 do begin
if M[i]<>0 then begin
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
write(M[i]);
end;
end;
writeln;
for i:=26 to 37 do begin
if M[i]<>0 then begin
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
write(M[i]);
end;
end;
writeln;
for i:=26 to 37 do begin
if M[i]<>0 then begin
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
write(M[i]);
end;
end;
writeln;
end.
PROGRAM Zadanie4;
var M:array[1..38] of integer; i, b,a,d,e,c,n:integer; sum:real;
begin
writeln('Vod massiva');
randomize;
for i:=1 to 38 do begin
b:=random(16)-9;
M[i]:=b;
end;
for i:=1 to 38 do write(M[i],' ');
writeln;
writeln('задание 2');
n:=0;
sum:=0;
for i:=1 to 12 do begin
if M[i]<>0 then sum:=sum+1/M[i];
n:=n+1;
write(sum,' ');
end;
writeln;
writeln('srednegarm=',1/((1/n)*sum):5:2);
writeln('задание 3');
a:=10;
c:=0;
for i:=1 to 9 do begin
if a>M[i] then begin a:=M[i];
c:=i;
end;
end;
writeln('Наименьши элемент=',a,' под номером =',c);
writeln('задание 4');
for i:=26 to 37 do
if M[i]<>0 then
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
for i:=26 to 37 do
if M[i]<>0 then
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
for i:=26 to 37 do
if M[i]<>0 then
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
for i:=26 to 37 do
if M[i]<>0 then
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
for i:=26 to 37 do
if M[i]<>0 then
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
for i:=26 to 37 do
if M[i]<>0 then
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
for i:=26 to 37 do
if M[i]<>0 then
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
for i:=26 to 37 do
if M[i]<>0 then
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
for i:=26 to 37 do
if M[i]<>0 then
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
for i:=26 to 37 do
if M[i]<>0 then
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
for i:=26 to 37 do
if M[i]<>0 then
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
for i:=26 to 37 do
if M[i]<>0 then
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
for i:=26 to 37 do
if M[i]<>0 then
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
for i:=26 to 37 do
if M[i]<>0 then
if M[i]>M[i+1] then begin
d:=M[i];
e:=M[i+1];
M[i]:=M[i+1];
M[i+1]:=d;
end;
for i:=26 to 37 do write(M[i],' ');
writeln;
writeln('конец программы.');
end.