Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Delphi] Матрица (7х7) 
:(
    Опции темы
ZhooZhik
  Дата 23.1.2008, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 9.1.2008

Репутация: нет
Всего: нет



Получить вещественную матрицу A размерности 7x7, первая строка которой задается формулой a=2*j+3  (j = 1, ..., 7), вторая строка задается формулой a=j-(3/(2+1/j))  (j = 1, ..., 7), а каждая следующая строка есть сумма двух предыдущих.
  С первой формулой всё нормально работает, а вот со второй не работает(несовместимость типов), да и "суммой двух предыдущих"
у меня проблемы, подскажите пожадуйста. Вот код, который я написал:
Код

function For1(j,i:integer):integer;
begin
j:=j+1;
for i:= 1 to 7 do
  result:= (2*j + 3);
end;
procedure For2(j,i:integer; var n:real);//процедура скорее всего неправильная
begin
j:=j+1;
for i:= 1 to 7 do
  n:= j-(3/(2+1/j));
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  i,j,s:integer;
begin
  for j:= 0 to StringGrid1.colcount - 7 do
  for i:= 0 to StringGrid1.RowCount - 1 do
  stringgrid1.cells[i,j]:=Inttostr(for1(i,j));
  j:=0; i:=0;
  for j:= 1 to StringGrid1.colcount - 6 do
  for i:= 0 to StringGrid1.RowCount - 1 do
  stringgrid1.cells[i,j]:=Inttostr(for2(i,j));


Заранее спасибо   smile 
PM MAIL   Вверх
Palladin
Дата 23.1.2008, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 3
Всего: 17



Смотри нижеsmile

Это сообщение отредактировал(а) Palladin - 23.1.2008, 22:27


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
THandle
Дата 23.1.2008, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 30
Всего: 372



Цитата(Palladin @  23.1.2008,  22:15 Найти цитируемый пост)
Function For2(j,i:integer; var n:real):real; //процедура скорее всего неправильная
Код

begin
j:=j+1;
for i:= 1 to 7 do
  n:= j-(3/(2+1/j));
end;


Собственно непонятно что данная функция возвращает....

PM   Вверх
Palladin
Дата 23.1.2008, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 3
Всего: 17



а вот весь код твоей задачи:

Код

var
t,k:integer;
t:=6; k:=1;
function For1(j,i:integer):integer;
begin
j:=j+1;
for i:= 1 to 7 do
  result:= (2*j + 3);
end;

Function For2(j,i:integer; var n:real):real; //процедура скорее всего неправильная
begin
j:=j+1;
for i:= 1 to 7 do
  n:= j-(3/(2+1/j));
end;

Procedure For3(); //процедура скорее всего неправильная
begin
inc(k); t:=t-1;
i,j:integer;
for i:=k to StringGrid1.colcount-t do
for i:= 0 to StringGrid1.RowCount - 1 do
stringgrid1.cells[i,j]:=FloatToStr(StringGrid1.Cells[i-1,j-1]*StringGrid1.Cells[i-2,j-2]);
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  i,j,s:integer;
begin
  for j:= 0 to StringGrid1.colcount - 7 do
  for i:= 0 to StringGrid1.RowCount - 1 do
  stringgrid1.cells[i,j]:=Inttostr(for1(i,j));
  j:=0; i:=0;
  for j:= 1 to StringGrid1.colcount - 6 do
  for i:= 0 to StringGrid1.RowCount - 1 do
  stringgrid1.cells[i,j]:=FloatToStr(for2(i,j));
  
 for3();for3();for3();for3();for3();
  


Может и неработать, я в Delphi уже полтара года не сидел, такчто чуть что доработай кодsmile

Это сообщение отредактировал(а) Palladin - 23.1.2008, 22:28


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
THandle
Дата 23.1.2008, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 30
Всего: 372



Вот собственно говоря рабочий код. Коряво конечно, но работает. smile 

Код

function For1(j:integer):integer;
begin
  result:= 2*j + 3;
end;

function For2(j:integer):real;
begin
  result:= j-(3/(2+1/j));
end;

function For3(i, j : string) : real;
begin
  result := StrToFloat(i) + StrToFloat(j);
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  i, j : integer;
begin
  StringGrid1.ColCount := 7;
  StringGrid1.RowCount := 7;
  for i:= 0 to StringGrid1.RowCount - 1 do
    begin
      stringgrid1.cells[i,0] := Inttostr(for1(i + 1));
      StringGrid1.Cells[i,1] := Floattostr(for2(i + 1));
    end;
  for i := 2 to StringGrid1.RowCount - 1 do
    for j := 0 to StringGrid1.ColCount - 1 do
      StringGrid1.Cells[j,i] := FloatToStr(For3(StringGrid1.Cells[j,i-1], StringGrid1.Cells[j,i-2]));
end;

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0419 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.