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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2010, 23:36   #1
warma2d
Пользователь
 
Аватар для warma2d
 
Регистрация: 17.12.2008
Сообщений: 50
Вопрос Двумерный Массив Delphi7

Здравствуйте!

Помогите пожалуйста добить программу с таким заданием
"Найти количество элементов матрицы D (NxM) , значения которых принадлежат отрезку [-2; 2] и записать их номера в массив F."

Код:
program Rabota620;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  math;

Var
k,max:integer;
i,j,n,m:integer; //rabo4aya peremennaya
b:array [1..10,1..10] of real; // Massiv 1
a:array [1..10,1..10] of real; // Massiv 2
F:array[1..100] of real;

begin
k:=0;
writeln('V-te kol-vo n <=10');
readln(n);
writeln('V-te kol-vo m <=10');
readln(m);
writeln ('v-te massiv 1 ');
for i:=1 to n do
for j:=1 to m do
readln(a[i,j]);
writeln ('v-te massiv 2 ');
for i:=1 to n do
for j:=1 to m do
readln(b[i,j]);

 max := 0;
for i:=max+1 to n do
 for j:=max+1 to m do

     if (b[i,j]>=-2)and(b[i,j]<=2)and(b[i,j]>b[max]) then  max:=i;
                            



readln;
end.
Заранее Благодарю!
Skype: warma2d
ICQ: 838012
mail warma2d@ya.ru
warma2d вне форума Ответить с цитированием
Старый 17.11.2010, 00:07   #2
ybn
Заблокирован
 
Регистрация: 17.09.2010
Сообщений: 23
По умолчанию

Цитата:
Сообщение от warma2d Посмотреть сообщение
Здравствуйте!
"Найти количество элементов матрицы D (NxM) , значения которых принадлежат отрезку [-2; 2] и записать их номера в массив F."

Код:
Var
k,max:integer;
i,j,n,m:integer; //rabo4aya peremennaya
b:array [1..10,1..10] of real; // Massiv 1
a:array [1..10,1..10] of real; // Massiv 2
F:array[1..100] of real;
Вопрос №1. А зачем Вам две матрицы A,B?
Может я чего то не понимаю. Если я правильно понимаю, Вам нужна одна матрица D[n,m] и с ней работать надо. Если так, то помогу.
ybn вне форума Ответить с цитированием
Старый 18.11.2010, 17:16   #3
warma2d
Пользователь
 
Аватар для warma2d
 
Регистрация: 17.12.2008
Сообщений: 50
По умолчанию

ybn, извините за долгий ответ - просто действительно не было времени. Да, действительно, нужно только две матрицы как написано в задании.

Получается преобразуется в вид:

Код:
program Rabota620;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  math;

Var
k:integer;
i,j,n,m:integer; //rabo4aya peremennaya
a:array [1..10,1..10] of real; // Massiv 1
F:array[1..100] of real;

begin
k:=0;
writeln('V-te kol-vo n <=10');
readln(n);
writeln('V-te kol-vo m <=10');
readln(m);
writeln ('v-te massiv 1 ');
for i:=1 to n do
for j:=1 to m do
readln(a[i,j]);

 for i:=1 to n do
  for j:=1 to m  do

     if (a[i,j]>=-2)and(a[i,j]<=2) then




readln;
end.
Только никак не могу понять как сделать так, чтобы результат записать в двумерный массив.
"Найти количество элементов матрицы D (NxM) , значения которых принадлежат отрезку [-2; 2] и записать их номера в массив F."

Пожалуйста, помогите пожалуйста до конца разобрать задачу
Skype: warma2d
ICQ: 838012
mail warma2d@ya.ru

Последний раз редактировалось warma2d; 18.11.2010 в 17:45.
warma2d вне форума Ответить с цитированием
Старый 18.11.2010, 18:26   #4
Ybn2
Форумчанин
 
Регистрация: 18.11.2010
Сообщений: 183
По умолчанию

Цитата:
Сообщение от warma2d Посмотреть сообщение
Да, действительно, нужно только две матрицы как написано в задании.

"Найти количество элементов матрицы D (NxM) , значения которых принадлежат отрезку [-2; 2] и записать их номера в массив F."
Вот какой должен быть код:

Код:
program Rabota620;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  math;

Var
k:integer;
i,j,n,m:integer; //rabo4aya peremennaya
d:array [1..10,1..10] of real; // Massiv 1
F:array[1..100] of Record 
                             n,m:integer;
                         end;
begin
k:=0;
writeln('V-te kol-vo n <=10');
readln(n);
writeln('V-te kol-vo m <=10');
readln(m);
writeln ('v-te massiv 1 ');
for i:=1 to n do
for j:=1 to m do
readln(d[i,j]);
  k:=0;
 for i:=1 to n do
  for j:=1 to m  do
     if (d[i,j]>=-2)and(d[i,j]<=2) then
       Begin
         k:=K+1;
         F[k].n:=i;
         F[k].m:=j;
      end;
WriteLn ('Количество элементов: ',k);
WriteLn ('Их номера:');
if k>0 then    //Проверка были ли такие числа
    For i:=1 to k do
       WriteLn (F(i).n,' ',F(i).m);

readln;
end.
Ybn2 вне форума Ответить с цитированием
Старый 18.11.2010, 18:48   #5
halo
 
Регистрация: 25.01.2010
Сообщений: 4
По умолчанию

Привет всем!!! У меня некоторые проблемы с такой програмой в Делфи:
Есть матрица А(n,n). нужно розпечатать номеря тех строк, в которых все елемпенты однаковые. Матрицу ввожу с помощу StringGrid. а вывод номеров с помощу Memo. n ввожу с помощу SpinEdit. Написал такую програму, но она нероботает:

procedure TForm1.Button2Click(Sender: TObject);
var A: Array [1..15,1..15] of Integer;
i,j: Integer;
eo,ep,n: integer;

begin
n:=SpinEdit1.Value;
For i:=1 To n Do
For j:=1 To n Do
A[i,j]:=StrToInt(StringGrid1.Cells[j-1,i-1]);
eo:=0;
for j:=1 to n do
for i:=1 to n-1 do begin
if a[i,j]=a[i+1,j] then eo:=eo+1;
if i=n-1 then
if a[n-1,j] = a[n,j] then eo:=eo+1;
if eo=n then Memo1.Lines.Add(IntToStr(j)); End;

end;

Помогите ПЛИЗ!!!!!!!!!!!!!!!!!!!!!!!!!!

Последний раз редактировалось halo; 18.11.2010 в 18:51.
halo вне форума Ответить с цитированием
Старый 18.11.2010, 19:19   #6
Ybn2
Форумчанин
 
Регистрация: 18.11.2010
Сообщений: 183
По умолчанию

Цитата:
Сообщение от halo Посмотреть сообщение
Есть матрица А(n,n). нужно розпечатать номеря тех строк, в которых все елемпенты однаковые. Матрицу ввожу с помощу StringGrid. а вывод номеров с помощу Memo. n ввожу с помощу SpinEdit. Написал такую програму, но она нероботает:
Попробуй так:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var A: Array [1..15,1..15] of Integer;
    i,j: Integer;
    eo,ep,n: integer;
           b:boolean;
begin
     n:=SpinEdit1.Value;
     For i:=1 To n Do
      For j:=1 To n Do
       A[i,j]:=StrToInt(StringGrid1.Cells[j-1,i-1]);
     
     for j:=1 to n do
     Begin 
        b:=true;
        for i:=1 to n-1 do 
          if a[i,j]<>a[i+1,j] then b:=false;
        if b then Memo1.Lines.Add(IntToStr(j)); End;
    end;

end;
Ybn2 вне форума Ответить с цитированием
Старый 18.11.2010, 19:44   #7
warma2d
Пользователь
 
Аватар для warma2d
 
Регистрация: 17.12.2008
Сообщений: 50
По умолчанию

К сожалению, ругается на точку запятой или оператор в самом конце программы

Код:
program Rabota620;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  math;

Var

i,j,n,m,k:integer; //rabo4aya peremennaya
d:array [1..10,1..10] of real; // Massiv 1
F:array[1..100] of Record
                             n,m:integer;
                         end;
begin
k:=0;
writeln('V-te kol-vo n <=10');
readln(n);
writeln('V-te kol-vo m <=10');
readln(m);
writeln ('v-te massiv 1 ');
for i:=1 to n do
for j:=1 to m do
readln(d[i,j]);
  k:=0;
 for i:=1 to n do
  for j:=1 to m  do
     if (d[i,j]>=-2)and(d[i,j]<=2) then
       Begin
         k:=K+1;
         F[k].n:=i;
         F[k].m:=j;
      end;
WriteLn ('Kol-vo elementov: ',k);
WriteLn ('Ih numera:');
if k>0 then    //proverka bili li takie 4usla
    For i:=1 to k do
       WriteLn (F(i).n,' ',F(i).m);

readln;
end.
Skype: warma2d
ICQ: 838012
mail warma2d@ya.ru
warma2d вне форума Ответить с цитированием
Старый 18.11.2010, 19:50   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Это же не Бейсик:
Код:
WriteLn (F[i].n,' ',F[i].m);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.11.2010, 19:59   #9
warma2d
Пользователь
 
Аватар для warma2d
 
Регистрация: 17.12.2008
Сообщений: 50
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Это же не Бейсик:
Код:
WriteLn (F[i].n,' ',F[i].m);
Stilet
Подскажите пожалуйста, как эту программу можно правильно сделать для Delphi
Skype: warma2d
ICQ: 838012
mail warma2d@ya.ru

Последний раз редактировалось warma2d; 18.11.2010 в 20:26.
warma2d вне форума Ответить с цитированием
Старый 18.11.2010, 23:26   #10
halo
 
Регистрация: 25.01.2010
Сообщений: 4
По умолчанию

Спасиб ВСЕМ!!!!!!!!!!!!!!!!!!!!!!!!!!!
halo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный Массив Delphi7 warma2d Помощь студентам 8 16.11.2010 16:02
Двумерный массив mislagusla Помощь студентам 11 28.05.2010 15:21
двумерный массив Laplas Помощь студентам 5 07.01.2010 15:42
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
Двумерный массив Анжелика Помощь студентам 3 29.12.2008 21:23