Контрольная работа по "Программированию"

Автор: Пользователь скрыл имя, 12 Февраля 2013 в 22:38, контрольная работа

Описание работы

Задание:
Составить алгоритм и программу для:
1. Заполнения двумерного массива (6×5) произвольными значениями и вывода его на экран.
2. Подсчёта суммы элементов по столбцам и вывода на экран номеров столбцов и соответствующих сумм элементов.
3. Нахождения максимального элемента массива и вывода на экран его индекса (индексов) и значения.
4. Выделения 1-й строки в отдельный массив и сортировки его по возрастанию методом прямого обмена.

Работа содержит 1 файл

контрольная.doc

— 97.00 Кб (Скачать)

 


Задание: 

Составить алгоритм и  программу для:

1. Заполнения двумерного  массива (6×5) произвольными значениями  и вывода его на экран.

2. Подсчёта суммы элементов  по столбцам и вывода на  экран номеров столбцов и соответствующих сумм элементов.

3. Нахождения максимального элемента массива и вывода на экран его индекса (индексов) и значения.

4. Выделения 1-й строки  в отдельный массив и сортировки  его по возрастанию методом прямого обмена.

 

 

 

 

Решение:

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

 

 

Рис.1 – Главная форма

Рис.2 – Пример выполнения поставленной задачи

 

 

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

unit Unit1;

 

interface

 

uses

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

Dialogs, StdCtrls, Grids;

 

type

TForm1 = class(TForm)

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

StringGrid3: TStringGrid;

Label5: TLabel;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

var a: array[1..6,1..5] of integer;

csum:array[1..6] of integer;

firstRow:array[1..6] of integer;

i,j, temp:integer;

max,maxindexX,maxindexY:integer;

begin

 

Randomize();

for i:=1 to 6 do

for j:=1 to 5 do

begin

//заполняем массив случайными  числами

a[i,j]:=Random(10);

//выводим массив

StringGrid1.Cells[i-1,j-1] := IntToStr(a[i,j]);

end;

 

//массив для хранение сумм  элементов столбцов в начале  заполняем нулями

for i:=1 to 6 do

csum[i]:= 0;

 

//считаем сумму эл столбцов

for i:=1 to 6 do

for j:=1 to 5 do

csum[i]:=csum[i]+a[i,j];

 

//выводим на форму

StringGrid2.Cells[0,0] := 'Col #:';

StringGrid2.Cells[0,1] := 'Sum:';

for i:=1 to 6 do

begin

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

StringGrid2.Cells[i,1] := IntToStr(csum[i]);

end;

 

//поиск максимального  эл и его индексов

max:=a[1,1];

maxindexX:=1;

maxindexY:=1;

 

for i:=1 to 6 do

for j:=1 to 5 do

if(a[i,j]>max) then

begin

max:=a[i,j];

maxindexX:=i;

maxindexY:=j;

end;

Label3.Caption:='Максимальный элемент a['+IntToStr(maxindexX)+','+IntToStr(maxindexY)+'] = '+IntToStr(max);

 

//выделяем первую строку  в отдельный массив

for i:=1 to 6 do

firstRow[i]:=a[i,1];

 

//сортируем элементы

i:=1;

while i<=5 do

begin

if firstRow[i] > firstRow[i+1] then

begin

temp:=firstRow[i];

firstRow[i]:=firstRow[i+1];

firstRow[i+1]:=temp;

i:=1;

end

else

i:=i+1;

end;

 

//выводим отсортированую 1 строку

for i:=1 to 6 do

StringGrid3.Cells[i-1,0] := IntToStr(firstRow[i]);

 

end;

 

end.




Информация о работе Контрольная работа по "Программированию"