50110 (Обработка матриц), страница 4

2016-07-30СтудИзба

Описание файла

Документ из архива "Обработка матриц", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "50110"

Текст 4 страницы из документа "50110"

ВЫВОДЫ

В процессе выполнения курсовой работы были выполнено:

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

- разработка алгоритма разрабатываемой программы;

- разработка программы и пользовательского интерфейса;

- произведена отладка программы.

ПЕРЕЧЕНЬ ССЫЛОК

  1. Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль. - М.: Наука, 1988.

  2. Довгаль С.И., Литвинов Б.Ю., Сбитнев А..И. Персональные ЭВМ : Турбо Паскаль V7.0, объектное программирование, локальные сети. – Киев: Информсиситема сервис, 1993.

  3. Епанешников А.М., Епанешникова В.А. Программирование в среде Turbo Pascal 7.0.-М.: Диалог –МИФИ,1999.

  4. Зуев Е.А. Программирование на языке Turbo Pascal 6.0,7.0. – М.: Радио и связь, Веста,1993.

  5. Кандзюба С.П., Громов В.Н. Delphi 7.Базы данных и приложения. Лекции и упражнения. – К.: Издательство "ДиаСофт", 2001.

  6. Климова Л.М. Pascal 7.0. Практическое программирование. Решение типовых задач. –М.:КУДИУ ОБРАЗ, 2000.

  7. Марченко А. И., Марченко Л.А.. Программирование в среде Turbo Pascal 7.0.-К.: Век+,1999.

  8. Фаронов В.В. Turbo Pascal 7.0. Начальный курс. - М.: Нолидж, 2000.

  9. Методические указания к выполнению курсовой работы по дисциплине "Программирование" /Сост.: Н.С. Семенова, С.А. Сафонова – Северодонецк: Изд-во СТИ ВНУ, 2006. - 37с.

ПРИЛОЖЕНИЯ

Приложение А

Схема алгоритма программы

Приложение А (продолжение)

Приложение А (продолжение)

Приложение Б

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

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Grids;

type

TForm1 = class(TForm)

gbRazmer: TGroupBox;

lbN: TLabel;

lbM: TLabel;

edN: TEdit;

edM: TEdit;

buRazmer: TButton;

gbMatrix1: TGroupBox;

sgMatrix1: TStringGrid;

buRandom: TButton;

gbMatr2: TGroupBox;

sgMatrix2: TStringGrid;

buPerest: TButton;

gbOsob: TGroupBox;

buOsob: TButton;

lbOsob1: TLabel;

lbOsob2: TLabel;

buZapoln: TButton;

sgMatrix3: TStringGrid;

procedure FormCreate(Sender: TObject);

procedure buRazmerClick(Sender: TObject);

procedure buRandomClick(Sender: TObject);

procedure buPerestClick(Sender: TObject);

procedure buOsobClick(Sender: TObject);

procedure buZapolnClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

n,m : integer;

matr1, matr2, matr3: array [1..20, 1..20] of integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

Randomize; // включить генератор случайных чисел

end;

procedure TForm1.buRazmerClick(Sender: TObject);

var i: integer;

begin

// установить размер матрицы

n:= StrToInt(edN.Text);

m:= StrToInt(edM.Text);

// визуальное отображение

sgMatrix1.RowCount:= n+1;

sgMatrix1.ColCount:= m+1;

for i:= 1 to n do

sgMatrix1.Cells[0, i]:= IntToStr(i);

for i:= 1 to m do

sgMatrix1.Cells[i, 0]:= IntToStr(i);

sgMatrix2.RowCount:= n+1;

sgMatrix2.ColCount:= m+1;

for i:= 1 to n do

sgMatrix2.Cells[0, i]:= IntToStr(i);

for i:= 1 to m do

sgMatrix2.Cells[i, 0]:= IntToStr(i);

sgMatrix3.RowCount:= n+1;

sgMatrix3.ColCount:= m+1;

for i:= 1 to n do

sgMatrix3.Cells[0, i]:= IntToStr(i);

for i:= 1 to m do

sgMatrix3.Cells[i, 0]:= IntToStr(i);

end;

procedure TForm1.buRandomClick(Sender: TObject);

var i, j: integer;

begin

for i:= 1 to n do

for j:= 1 to m do

begin

matr1[i, j]:= random(11);

sgMatrix1.Cells[j, i]:= IntToStr(matr1[i, j]);

end;

end;

procedure TForm1.buZapolnClick(Sender: TObject);

var i, j: integer;

begin

for i:= 1 to n do

for j:= 1 to m do

begin

matr1[i, j]:= StrToInt(sgMatrix1.Cells[j, i]);

end;

end;

procedure TForm1.buPerestClick(Sender: TObject);

var i, j, k: integer;

begin

// формирование переставленной матрицы

for j:= 1 to (m div 2) do

for i:= 1 to n do

begin

matr2[i, j]:= matr1[i, m-j+1];

matr2[i, m-j+1]:= matr1[i, j];

end;

// проверка если стобцов нечетное число, то средний столбец остается без изменений

if (m mod 2)<>0 then

for i:= 1 to n do

matr2[i, m div 2+1]:= matr1[i, m div 2+1];

// отображение переставленной матрицы

for i:= 1 to n do

for j:= 1 to m do

begin

sgMatrix2.Cells[j, i]:= IntToStr(matr2[i, j]);

end;

end;

procedure TForm1.buOsobClick(Sender: TObject);

var

i, j, l, osob1, osob2, k: integer;

fLev, fPrav: boolean;

begin

// подсчет особых в 1 матрице

osob1:= 0;

for i:= 1 to n do

for j:= 2 to m-1 do

begin

k:= matr1[i, j];

// сравнение слева от текущего элемента (если он не первый)

begin

fLev:= true;

for l:= 1 to j-1 do

if matr1[i, l]>=k then fLev:= false;

end;

// сравнение справа от текущего элемента (если он не последний)

fPrav:= true;

for l:= j+1 to m do

if matr1[i, l]<=k then fPrav:= false;

if fLev and fPrav then osob1:= osob1+1;

end;

lbOsob1.Caption:= 'Число "особых" элементов в матрице1 = '+ IntToStr(osob1);

// подсчет особых вo 2 матрице

osob2:= 0;

for i:= 1 to n do

for j:= 2 to m-1 do

begin

k:= matr2[i, j];

// сравнение слева от текущего элемента (если он не первый)

begin

fLev:= true;

for l:= 1 to j-1 do

if matr2[i, l]>=k then fLev:= false;

end;

// сравнение справа от текущего элемента (если он не последний)

fPrav:= true;

for l:= j+1 to m do

if matr2[i, l]<=k then fPrav:= false;

if fLev and fPrav then osob2:= osob2+1;

end;

lbOsob2.Caption:= 'Число "особых" элементов в матрице2 = '+ IntToStr(osob2);

// формирование отсортированной матрицы

if osob1>= osob1 then

matr3:= matr1

else

matr3:= matr2;

for i:= 1 to n do

for j:= m downto 2 do

for l:= 1 to m-1 do

if matr3[i, l] < matr3[i, l+1] then

begin

k:=matr3[i, l] ;

matr3[i, l]:=matr3[i, l+1];

matr3[i, l+1]:=k;

end;

// отображение переставленной матрицы

for i:= 1 to n do

for j:= 1 to m do

begin

sgMatrix3.Cells[j, i]:= IntToStr(matr3[i, j]);

end;

end;

end.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Нет! Мы не выполняем работы на заказ, однако Вы можете попросить что-то выложить в наших социальных сетях.
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
4125
Авторов
на СтудИзбе
667
Средний доход
с одного платного файла
Обучение Подробнее