Автор: Пользователь скрыл имя, 12 Февраля 2013 в 22:38, контрольная работа
Задание:
Составить алгоритм и программу для:
1. Заполнения двумерного массива (6×5) произвольными значениями и вывода его на экран.
2. Подсчёта суммы элементов по столбцам и вывода на экран номеров столбцов и соответствующих сумм элементов.
3. Нахождения максимального элемента массива и вывода на экран его индекса (индексов) и значения.
4. Выделения 1-й строки в отдельный массив и сортировки его по возрастанию методом прямого обмена.
Задание:
Составить алгоритм и программу для:
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:
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)+','+
//выделяем первую строку в отдельный массив
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.
Информация о работе Контрольная работа по "Программированию"