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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 25.11.2008, 17:36   #1
neomaximus
Пользователь
 
Регистрация: 11.06.2008
Сообщений: 47
По умолчанию Помогите решить задание

Вот задание:Задана символьная матрица размером NxM. Определить k - количество различных элементов матрицы (т.е. повторяющиеся элементы считать один раз).
Вот по этому примеру
Цитата:
unit tem4;

interface

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

type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
StringGrid3: TStringGrid;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

const
Nmax=10; // Максимальная размерность массива
Type
Mas2 = array[1..Nmax,1..Nmax] of extended; // Объявление типа двумерного массива размерностью Nmax
Mas1 = array[1..Nmax] of extended; // Объявление типа одномерного массива размерностью Nmax
var
Form1: TForm1;
A : Mas2; // Объявление двумерного массива
B,Y : Mas1; // Объявление одномерных массивов
N,i,j : integer;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
N:=3; // Размерность массива
Edit1.Text:=FloatToStr(N);
{Задание числа строк и столбцов в таблицах}
StringGrid1.ColCount:=N+1;
StringGrid1.RowCount:=N+1;
StringGrid2.RowCount:=N+1;
StringGrid3.RowCount:=N+1;

{Ввод в левую верхнюю ячейку таблицы названия массива}
StringGrid1.Cells[0,0]:='Массив A:';
StringGrid2.Cells[0,0]:='Массив B:';
StringGrid3.Cells[0,0]:='Массив Y:';
{Заполнение верхнего и левого столбцов поясняющими подписями}
for i:=1 to N do begin
StringGrid1.Cells[0,i]:=' i= '+IntToStr(i);
StringGrid1.Cells[i,0]:=' j= '+IntToStr(i);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
N:=StrToInt(Edit1.Text);
{Задание числа строк и столбцов в таблицах}
StringGrid1.ColCount:=N+1;
StringGrid1.RowCount:=N+1;
StringGrid2.RowCount:=N+1;
StringGrid3.RowCount:=N+1;
{Заполнение верхнего и левого столбцов поясняющими подписями}
for i:=1 to N do begin
StringGrid1.Cells[0,i]:=' i= '+IntToStr(i);
StringGrid1.Cells[i,0]:=' j= '+IntToStr(i);
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var s: extended;
begin
{Заполнение массива А элементами из таблицы StringGrid1}
for i:=1 to N do
for j:=1 to N do
A[i,j]:=StrToFloat(StringGrid1.Cells[j,i]);
{Заполнение массива B элементами из таблицы StringGrid2}
for i:=1 to N do
B[i]:=StrToFloat(StringGrid2.Cells[0,i]);
{Умножение массива А на массив В}
for i:=1 to N do begin
s:=0;
for j:=1 to N do s:=s+A[i,j]*B[j];
Y[i]:=s;
{Вывод результата в таблицу StringGrid3}
StringGrid3.Cells[0,i]:=FloatToStrf(y[i],fffixed,6,2);
end;
end;

end.
neomaximus вне форума
Старый 25.11.2008, 19:16   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Создай пустое множество m:=[]; Потом идешь по матрице обычным путем и если символа нет в множестве if not a[i,j] in m то включаешь его и считаешь then begin m:=m+[a[i,j]]; k:=k+1;
puporev вне форума
Старый 25.11.2008, 19:28   #3
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
По умолчанию

Название. Читайте правила форума.
Закрыто.
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"
AlDelta вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
с++ помогите сделать задание Seven Общие вопросы C/C++ 8 29.12.2008 16:15
Помогите доделать задание в паскале! neomaximus Помощь студентам 1 22.06.2008 09:45
помогите сделать задание NV31 Общие вопросы C/C++ 9 27.11.2006 21:40