Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Курсовая работа

.docx
Скачиваний:
22
Добавлен:
18.04.2018
Размер:
68.67 Кб
Скачать

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

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

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

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

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

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

Разработка в среде Turbo Pascal программы формирование и обработки элементов двумерного массива.

выполнил студент:

проверил: Доцент, к.п.н. Иванов А.Ф.

Альметьевск 2015 год

ОГЛАВЛЕНИЕ

Вариант 2 3

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

ОПИСАНИЕ АЛГОРИТМА РЕШЕНИЯ ЗАДАЧИ ГРАФИЧЕСКИМ СПОСОБОМ 4

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

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

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

РАЗРАБОТКА ПРОГРАММЫ НА ЯЗЫКЕ PASCAL 12

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

Листинг программы 17

Вариант 2

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

  1. Сформировать двумерный целочисленный массив В(4х8), используя генератор случайных чисел на интервале (-9, 6). Элементы массива вывести на экран в виде матрицы.

  2. Преобразовать массив В в одномерный массив Т. Полученный массив вывести на экран.

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

  4. Определить элемент, самый близкий к заданному числу С среди элементов, принадлежащих интервалу [a/2; b/2] в третьей четверти массива Т.

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

Среднеквадратичное значение – величина, получаемая определением среднего значения множества возведённый в квадрат величин.

ОПИСАНИЕ АЛГОРИТМА РЕШЕНИЯ ЗАДАЧИ ГРАФИЧЕСКИМ СПОСОБОМ

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

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

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

  1. Формирование и вывод двумерного массива.

  2. Преобразование двумерного массива в одномерный.

  3. Вычисление среднеквадратичного значения.

  4. Поиск близкого элемента массива.

  5. Сортировка массива

Формирование и вывод двумерного массива.

Исходными данными являются размерность массива и диапазон значений. Формируем массив с помощью генератора случайных чисел и выводим его на экран. В виде блок-схемы данный алгоритм может быть представлен:

Преобразование двумерного массива в одномерный.

Для преобразование двумерного массива в одномерный необходимо ввести дополнительную переменную k для индексирования элементов одномерного массива T. Затем поочередно переписываем элементы двумерного массива в одномерный по следующей схеме:

Вычисление среднеквадратичного значения.

В данной подзадаче требуется вычислить среднеквадратичное значение четных по номеру элементов второй половины одномерного массива. Это можно представить в виде следующего фрагмента блок-схемы:

Определение элемента, самого близкого к заданному числу С среди элементов, принадлежащих интервалу [a/2; b/2] в третьей четверти массива T.

Сортировка нечётных по значению элементов второй четверти массива Т по убыванию обратных значений.

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

РАЗРАБОТКА ПРОГРАММЫ НА ЯЗЫКЕ PASCAL

Программа начинается со служебного слова Program, после которого следует заголовок программы. В данном случае это rabota.

Далее включаем раздел Uses для использования модуля CRT, который применяется для управления работой экрана в текстовом режиме.

После названия программы и идентификации используемых модулей следует раздел объявления констант и переменны var.

В разделе переменных описаны целочисленные массивы под именами a,t , целочисленные переменные: i,j,k,n,ind,min,l,c,x, вещественная переменная s.

Тело программы или раздел операторов начинается со слова begin и заканчивается end. В этом разделе описываем действия, которые должна выполнить программа, согласно выбранного алгоритма.

Так как в программе подразумевается ввод данных с экрана и вывод полученных результатов на экран, перед началом программы его необходимо очистить от ненужной информации. Это проделывает процедура clrscr, которая описана в модуле Crt.

Перед первым обращением к функции random необходимо с помощью вызова процедуры randomize инициализировать программный генератор случайных чисел, иначе при каждом запуске программы датчик будет выдавать одни и те же числа

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

Создание и заполнения массивов.

Часто цикл for называют циклом со счетчиком. Этот цикл используется, когда число повторений не связано с тем, что происходит в теле цикла. Т.е. количество повторений может быть вычислено заранее (хотя оно не вычисляется).

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

for счетчик:=значение toконечное_значениеdo

тело_цикла;

Счетчик – это переменная любого из перечисляемых типов (целого, булевого, символьного, диапазонного, перечисления). Начальные и конечные значения могут быть представлены не только значениями, но и выражениями, возвращающими совместимые с типом счетчика типы данных. Если между начальным и конечным выражением указано служебное слово to, то на каждом шаге цикла значение параметра будет увеличиваться на единицу.

Фрагмент программы буде выглядеть так:

k:=0;

for i:=1 to 4 do

begin

for j:=1 to 8 do begin

k:=k+1;

t[i,j]:=random(16)-9;

write(t[i,j]:4);

a[k]:=t[i,j];

end;

writeln;

end;

С помощью процедуры writeln описываем сообщение, выводящееся на экран. Write– оператор, который используется для вывода информации на экран. Процедура WriteLn выполняет то же самое действие, но так как у него есть еще окончание Ln, то после вывода на экран нужного сообщения, он дополнительно переводит курсор на следующую строчку.

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

Условный оператор позволяет проверить некоторое условие и в зависимости от результата выполнить тот или иной оператор или группу операторов. С помощью условных операторов программируются алгоритмы разветвляющейся структуры. Формат условного оператора: IF<условие>THEN<оператор1>ELSE<оператор2>IF,THEN,ELSE- зарезервированные слова. Оператор2 выполняется, только при не выполнении условия, иначе выполняется оператор1.

При выполнении целочисленного деления (операция div) остаток от деления отбрасывается.

n:=k div 2 ;

s:=0;

for i:=1 to n do

if i mod 2 =0 then s:= s+ a[i]*a[i];

s:=sqrt(2*s/n) ;

Определение элемента, самого близкого к заданному числу С среди элементов, принадлежащих интервалу [a/2; b/2] в третьей четверти массива Т.

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

readln (c);

n:=k div 4;

min:=20;

ind:=2;

for i:=3 to k do

if (-4.5<=a[i]<=3)and(min>abs(c-a[i])) then

begin

min := abs(c-a[i]);

ind:= i;

end;

Сортировка нечётных по значению элементов второй четверти массива по убыванию обратных значений.

k:=n div 4;

for i:=k+1 to k*2-1 do

for j:=i+1 to k*2 do

if (a[i]mod 2 =1)and( a[j]mod 2 =1)and(1/a[i]>1/a[j]) then

begin

x:=a[i];

a[i]:=a[j];

a[j]:=x;

end;

end.

Листинг программы

program sum;

uses crt;

var

s : real;

i,j,k,n,ind,min,c,x:integer;

a:array [1..50] of integer;

t:array [1..4, 1..8] of integer;

begin

clrscr;

randomize;

writeln(' Массив T(4*8)' );

k:=0;

for i:=1 to 4 do

begin

for j:=1 to 8 do begin

k:=k+1;

t[i,j]:=random(16)-9;

write(t[i,j]:4);

a[k]:=t[i,j];

end;

writeln;

end;

writeln;

writeln(' Одномерный массив сформированный из элементов двумерного ' );

for i:=1 to k do

write(a[i]:4);

writeln; writeln;

n:=k div 2 ;

s:=0;

for i:=1 to n do

if i mod 2 =0 then s:= s+ a[i]*a[i];

s:=sqrt(2*s/n) ;

write ('1) Среднеквадратичное значение нечетных по номеру элементов первой четверти массива = ' , s:10:2) ;

writeln; writeln;

write ('2) Введитечисло C ' ) ;

readln (c);

n:=k div 4;

min:=20;

ind:=2;

for i:=2*n to 3*n do

if (-4.5<=a[i])and (a[i]<=3) and (min>(c-a[i])) then

begin

min := (c-a[i]);

ind:= i;

end;

write (' Ближайший к заданному числу ',c,' среди элементов, принадлежащих интервалу [a/2, b/2] в третьей четверти массива = ', a[ind] ,' , а его индекс = ',ind);

writeln; writeln;

n:=k div 4;

for i:=1 to 8 do

for j:=2*n to 2*n-1 do

if (a[i] mod 2 =1)and (a[j] mod 2 =1)and((1/a[i])>(1/a[j])) then

begin

x:=a[i];

a[i]:=a[j];

a[j]:=x;

end;

writeln('3) Массив упорядоченный по условию: нечётные по значению элементы второй четверти массива Т расположены по убыванию обратных значений ') ;

for i:=9 to n*2 do

write(a[i]:4);

readln ;

end.

Соседние файлы в предмете Информатика
  • #
    18.04.201841.98 Кб7STRUCTURA.doc
  • #
    18.04.2018319.49 Кб10Кадры.mdb
  • #
    18.04.2018720.9 Кб3Кадры1.mdb
  • #
    18.04.2018720.9 Кб14Кадры12.mdb
  • #
    18.04.201811.2 Кб9книга.xlsx
  • #
  • #
    18.04.201848.64 Кб58Лабораторная работа №2.xls
  • #
    18.04.201820.99 Кб25лабораторная работа №3.xls
  • #
    18.04.201823.04 Кб28лаборнаневааторная работа №3.xls
  • #
    18.04.201817.92 Кб17Формула.xls
  • #
    18.04.201812.01 Кб13Функция.xlsx