Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2009, 15:01   #1
Гудвин
 
Регистрация: 31.03.2009
Сообщений: 6
По умолчанию Помогите с задачей

Задана матрица размером NxM. Упорядочить ее строки по неубыванию их наибольших элементов.
Гудвин вне форума Ответить с цитированием
Старый 31.03.2009, 15:04   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Чем помочь? Где вопросы и ваши наработки?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 31.03.2009, 21:39   #3
Гудвин
 
Регистрация: 31.03.2009
Сообщений: 6
По умолчанию

Задачу нужно сделать в Delphi. Я пробовал сортировку методом "пузырька". Но не получается из максимальных элементов сделать массив (если он надо?). Дальше связать со строками. Код получился такой:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;

type
TForm1 = class(TForm)
Memo1: TMemo;
btnCompute: TButton;
strgrA: TStringGrid;
strgrY: TStringGrid;
procedure FormCreate(Sender: TObject);
procedure btnComputeClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
const M=2; N=4;
var
A:array[1..M,1..N] of real;
Y:array[1..M,1..N] of real;
k,d,i,j:integer;
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Clear;
Memo1.Lines.Add('CJ');

{задание числа строк и столбцов в таблицах}
strgrA.ColCount:=M+1;
strgrA.RowCount:=N+1;
strgrY.ColCount:=M+1;
strgrY.RowCount:=N+1;

{ввод в левую верхнюю ячейку таблицы названия массива}
strgrA.Cells[0,0]:='Массив А:';
strgrY.Cells[0,0]:='Массив Y:';

end;

procedure TForm1.btnComputeClick(Sender: TObject);
var

max,P:real;
begin
{заполнение массива A элементами из таблицы strgrA}
for i:=1 to M do
for j:=1 to N do
A[i,j]:= StrToFloat(strgrA.Cells[i,j]);

for j:=1 to N do
begin
max:=A[i,1];
for i:=1 to M do
if A[i,j]>=max then max:=A[i,j];
Memo1.Lines.Add('max в строке ='+FloatToStrF(max,ffFixed,6,2));
end;

for i:=1 to M do
for j:=1 to N do
Y[i,j]:= StrToFloat(strgrA.Cells[i,j]);


for k:=n downto 1 do
for i:=1 to k do
for d:=m-1 downto 1 do
for j:=1 to d do
if Y[i,j]>Y[i,j+1]
then
begin

P:=Y[i,j];
Y[i,j]:=Y[i,j+1]; Y[i,j+1]:=P;
end;

for i:=1 to M do
for j:=1 to N do
strgrY.Cells[i,j]:=FloatToStrF(Y[i,j],ffFixed,6,0);

end;
end.
Гудвин вне форума Ответить с цитированием
Старый 31.03.2009, 22:11   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Если честно, сейчас не хочется разбираться со всякими гридами и прочим. Написал на паскале.
Поменяется только ввод-вывод, который, у вас, вроде как, уже сделан.
Я выделил кусок, который делает то, что требуется.

Код:
uses crt;
const M=4; N=4;
var
A : array[1..M,1..N] of integer;
i,j,k,max,tmp : integer;
mas : array[1..M] of integer;  { массив для максимумов }

begin
clrscr;
randomize;
for i:=1 to M do
 begin
 for j:=1 to N do
  begin
  a[i,j] := random(30)+1;
  write(a[i,j]:4);
  end;
 writeln;
 end;
writeln;
writeln;
{---------}

{==========================================================}
{ ищем максимумы в строках }
for i:=1 to M do
 begin
 mas[i] := a[i,1];
 for j:=1 to N do
  if a[i,j]>mas[i] then mas[i] := a[i,j];
 end;
{ -- максимумы найдены. Теперь сортируем по ним --- }

for i:=1 to M-1 do
 begin
 max := i;
 for k:=i+1 to M do
  if mas[k]<mas[max] then max := k;

 for j:=1 to N do
  begin
  tmp := a[i,j];
  a[i,j] := a[max,j];
  a[max,j] := tmp;
  end;
 tmp := mas[i];
 mas[i] := mas[max];
 mas[max] := tmp;

 end;
{---------}
{====================================================}

for i:=1 to M do
 begin
 for j:=1 to N do
  write(a[i,j]:4);
 writeln;
 end;

readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 31.03.2009, 22:18   #5
Гудвин
 
Регистрация: 31.03.2009
Сообщений: 6
По умолчанию

СПАСИБО ОГРОМНОЕ!!!!!!!!!!!!!!!!!!!!!!
Гудвин вне форума Ответить с цитированием
Старый 31.03.2009, 23:39   #6
Taures_tek
 
Регистрация: 31.03.2009
Сообщений: 6
По умолчанию

Здравствуйте сразу хочу сказать я ещё не студент, только абитуриент, но на подготовительных курсах нам задали задачу повышенной сложности я думаю знаюшщие люди могут помочь
Taures_tek вне форума Ответить с цитированием
Старый 31.03.2009, 23:41   #7
Taures_tek
 
Регистрация: 31.03.2009
Сообщений: 6
По умолчанию

Необходимо создать программу, чтобы она воспроизводила 20 медиафайлов, при этом при нажатии проигрывать плейлист - чтобы файлы проигрывались не в одном порядке, а хаотично. УВажаемые знающие люди скажите пожалуйста как мне справиться с этим, может быть кто то может написать ?
Taures_tek вне форума Ответить с цитированием
Старый 31.03.2009, 23:56   #8
Костя КС
Пользователь
 
Аватар для Костя КС
 
Регистрация: 22.01.2008
Сообщений: 78
По умолчанию

Taures_tek,
а какой язык?
Костя КС вне форума Ответить с цитированием
Старый 01.04.2009, 00:02   #9
Taures_tek
 
Регистрация: 31.03.2009
Сообщений: 6
По умолчанию

не указали - сказали сделать - то есть в каком кто ссможет то есть на курсах мы пока токо изучали Pascal и то бегло.
ну то есть для нас абитуриентов - задание оч повышенной сложности то есть кто как может .
Taures_tek вне форума Ответить с цитированием
Старый 01.04.2009, 00:20   #10
Костя КС
Пользователь
 
Аватар для Костя КС
 
Регистрация: 22.01.2008
Сообщений: 78
По умолчанию

ну я, в принципе, мог совершенно бескорыстно попробовать сделать в делфи. Если конечно не найдется более "знающий" человек, которому некуда девать время.
Если мое предложение тебя интересует, то давай как-нибудь свяжемся не через форум, не хочется получать штраф за болтавню не по теме
Костя КС вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с задачей We1c0m3 Помощь студентам 3 10.02.2009 16:59
Помогите с задачей.. vit_al Паскаль, Turbo Pascal, PascalABC.NET 3 24.04.2008 13:48
Помогите с задачей bel_ka Общие вопросы C/C++ 13 26.12.2007 19:23