Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая оля.docx
Скачиваний:
15
Добавлен:
15.05.2015
Размер:
194.26 Кб
Скачать

АЛЬМЕТЬЕВСКИЙ ГОСУДАРСТВЕННЫЙ

НЕФТЯНОЙ ИНСТИТУТ

КАФЕДРА ИНФОРМАТИКИ

КУРСОВАЯ РАБОТА

ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА»

РАЗДЕЛ: АЛГОРИТМИЧЕСКИЙ ЯЗЫК PASCAL

НА ТЕМУ: РАЗРАБОТКА В СРЕДЕ TURBO PASCAL ПРОГРАММЫ ПОИСКА В МАССИВЕ УЧАСТКОВ МОНОТОННОСТИ

Выполнил студент: Курбанов Р.Н.

Группы: 61-11-14

Проверила: Садриева Л.М.

АЛЬМЕТЬЕВСК 2012 год

Пояснительная записка

Оглавление

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

  2. Описание алгоритма решения задачи графическим способом

    1. Укрупненная схема алгоритма и ее детализация

    2. Блок – схема алгоритма

  3. Разработка программы на языке программирования

  4. Описание блоков укрупненной схемы алгоритмов на языке программирования

    1. Текст программы

    2. Тестирование программы

  5. Литература

Тема курсовой работы: Разработка в среде Turbo Paskal программы поиска в массиве участков монотонности

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

  1. Вычислить значение 38 элементов одномерного целочисленного массива D в интервале (-9, 7) с использованием генератора случайных чисел.

  2. Вычислить среднегармоническое значение ненулевых элементов первой трети массива.

  3. Определить наименьший по абсолютной величине среди четных по номеру элементов первой четверти массива.

  4. Упорядочить ненулевые элементы последней трети массива по возрастанию абсолютных значений

  1. Описание алгоритма решения задачи

графическим способом

Укрупненная схема алгоритма

Начало

Ввод массива

Вычисление значения элементов массива с использованием генератора случ. чисел

Вычисление среднеарифметических четных элементов массива

Вычисление наименьшего элемента среди положительных элем.

Упорядочение массива по убыванию

Вывод результата

Конец

2.1 Детализация укрупненной схемы алгоритма

В программе решаются следующие подзадачи:

  1. Заполнение одномерного массива

  2. Вычисление значения 38 элементов одномерного массива с использованием генератора случайных чисел

  3. Вычисление среднегармонического значения ненулевых элементов первой четверти массива.

  4. Определение наименьшего по абсолютной величине среди четных по номеру элемента первой степени массива.

  5. Упорядочение ненулевых элементов последней трети массива по возрастанию абсолютных значений.

  6. Вывод преобразованного массива

2.2. Блок-схема алгоритма

  1. Описание блоков укрупненной схемы алгоритмов на языке программирования

    1. Текст программы

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.