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

2.Описание программы

2.1 Описание логической структуры

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

Во втором режиме осуществляется ввод матрицы , схема представлена

на рисунке 2

В первом режиме осуществляется ввод элементов массива , схема предаставлена на рисунке 3

Рисунок 1 - Схема основной программы.

Рисунок 2 - Схема программы формирования последовательности из матрицы.

Продолжение Рисунка 2.

Рисунок 3 - Схема программы обработка массива.

Продолжение Рисунка 3.

Продолжение Рисунка 3.

Текст программы представлен в приложении А.

2.2 Входные и выходные данные

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

Выходными данными первого режима является отсортированный массив шейкер сортировкой по возрастанию.

Входными данными для второго режима будут размерность строк и столбцов и элементы матрицы. Выходные данные будут представлены в виде массива.

3 Инструкция по эксплуатации

3.1 Назначение программы

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

Основная программа работает в двух режимах.

В рамках первого режима вводится массив, который сортируется по возрастанию шейкер сортировкой.

В рамках второго режима выводится последовательность из нулей и единиц, в которой i-й элемент равен единице, если в i-й строке матрицы есть хотя бы один отрицательный элемент.

3.2 Выполнение программы

Для запуска основной программы необходимо запустить файл KURSOVAI.EXE. После запуска программы появится окно, содержащее запрос на выбор одного из двух режимов. Для того, чтобы выбрать режим 1, в поле «Номер режима» необходимо ввести 1. После выбора первого режима (рисунок 4) появится окно, в котором необходимо ввести массив. После ввода размерности необходимо ввести элементы массива. После завершения ввода элементов программа выдаст результат (Рисунок 5). Для возврата в главное меню программы необходимо нажать Enter.

Рисунок 4 - Пункты главного меню и выбор режима 1.

Рисунок 5 - Результат работы режима 1.

Аналогичным образом выбирается режим 2. После ввода размерности матрицы. После завершения ввода элементов, программа выдаст результат. Рисунок 6 - Результат работы режима 2.

3.3 Описание контрольного примера

Для описания контрольного примера мы берем все два режима нашей программы. Для запуска программы необходимо загрузить файл KURSOVAI.EXE. После запуска программы появится окно, содержащее запрос на выбор одного из двух режимов (рисунок 19).

Рисунок 7 - Главное меню.

Далее в главном меню выбираем режим 1 - обработка массива. После выбора режима появится окно, в котором вводим размерность матрицы - 3. После ввода размерности вводим 9 элементов матрицы: r[1]=2, r[2]=2, r[3]=3, r[4]=32, r[5]=43, r[6]=2, r[7]=3, r[8]=5, r[9]=4, r[10]=67, r[11]=3, r[12]=4, r[13]=2. Для вывода результата нажимаем Enter. Результатом работы режима является отсортированный массив по возрастанию(рисунок 21). Для выхода в основное меню нажимаем Enter.

Рисунок 8 - результат работы Режима 1.

Далее в главном меню выбираем режим 2 –транспанирование матрицы. После выбора режима появится окно, в котором вводим размерность матрицы – 3х3. Далее мы вводим 9 элементов матрицы A: а11=2, а12=-1, а13=3, а21=-2, а22=3, а23=5, а31=7, а32=3, а33=-2. Для вывода результата нажимаем Enter. Результатом работы режима является массив B(рисунок 9). Для выхода в основное меню нажимаем Enter.

Рис. 9 - результат работы Режима 2.

ЗАКЛЮЧЕНИЕ

В рамках курсовой работы была разработана программа, работающая в двух режимах.

Выполнение курсовой работы способствовало закреплению, углублению и обобщению знаний, полученных мною за время обучения. Был приобретен опыт проектирования и разработки программ, а так же были усвоены конкретные методы и технологии программирования.

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. ГОСТ 19.701-90.  Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. – Взамен ГОСТ 19.002-80, ГОСТ 19.003-80; введ. 01.01.1992. – М.: Межгосударственный совет по стандартизации, метрологии и сертификации, 1991. – 23 с. - (Единая система программной документации).

2. ГОСТ 2.105-95. Общие требования к текстовым документам. - Взамен ГОСТ 2.105-79, ГОСТ 2.906-71; введ. 01.07.1996. – Минск: Межгосударственный совет по стандартизации, метрологии и сертификации, 1995. – 19 с. - (Межгосударственный стандарт. Единая система конструкторской документации).

3. Докукина Т.К. Программирование и алгоритмические языки / Т.К.Докукина. – 2-е изд., перераб.и доп. – М.: Машиностроение, 1992. – 496 с.

4. Кнут Д. Искусство программирования для ЭВМ. В 3 т. Т.3.Сортировка и поиск / Д.Кнут; пер. с.англ. – 2-е изд. – М.: Вильямс, 2004. – 832 с.

5. Культин Н.Б. Программирование в Turbo Pascal 7.0 и Delphi / Н.Б.Культин. – СПб.: BHV, 1998. – 240 с.

6. МАРКОВА Т.Н. Основы программирования/ Т.Н.Маркова. – Тула: Изд-во ТулГУ, 2009. – 105 с.

7. Перминов О.Н. Программирование на языке Паскаль / О.Н.Перминов. - М.: Радио и связь, 1988. - 219 с.: ил.

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

program KURSOVAI;

uses

Crt;

procedure sheik;

var i,j,n,k,l,b,max,min:integer;

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

f:text;

begin

clrscr;

write('Vvedite razmernost'' massiva, n=');

read(n);

writeln('Vvedite elementi massiva');

assign(f,'sheik.txt');

rewrite(f);

for i:=1 to n do

begin

write('c[',i,']= ');

read(c[i]);

writeln(f,c[i]);

end;

close(f);

reset(f);

i:=1;

while not eof(f) do

begin

readln(f,c[i]);

i:=i+1;

end;

for i:=1 to (n div 2) do

begin

max:=-32768;

min:=32767;

for j:=i to n-i+1 do

if c[j]<min then

begin

min:=c[j];

k:=j;

end;

b:=c[i];

c[i]:=c[k];

c[k]:=b;

for j:=i+1 to n-i+1 do

if c[j]>max then

begin

max:=c[j];

l:=j

end;

b:=c[n-i+1];

c[n-i+1]:=c[l];

c[l]:=b;

end;

writeln('Otsortirovannij massiv:');

for i:=1 to n do

writeln('c[',i,']= ',c[i]);

readkey;

end;

procedure matrix;

var a: array [1..10,1..12] of integer;

b: array [1..10] of integer;

i,j,n,m,k,kol,x,y: integer;

begin

clrscr;

writeln('Vvedite razmernost'' matrici nxm:');

write('n=');

read(n);

write('m=');

read(m);

writeln('Vvedite elementi matrici:',n,'x',m,' :');

gotoXY(whereX+3,whereY);

x:=whereX;

y:=whereY;

k:=1;

for i:=1 to n do

begin

kol:=0;

for j:=1 to m do

begin

gotoXY(x*j,y+i);

read(a[i,j]);

if a[i,j]<0 then

kol:=kol+1;

end;

b[k]:=kol;

k:=k+1;

end;

writeln('Massiv B:');

for i:=1 to n do

write(' ',b[i]);

readkey;

end;

var

k:integer;

begin

repeat

clrscr;

writeln('"1"-sheiker-sortirovka');

writeln('"2"-obrabotka matrici');

writeln('"0"-vihod');

write('Vash vibor: ');

read(k);

case k of

1: sheik;

2: matrix;

end;

until k=0;

end.

20