IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Массивы, помогите...
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


Я посмотрел в ФАКе, ничего такого не нашел, может кто знает как это сделать, помогите?
Все нужно сделать в делфе с интерфейсом.
1)Составить программу формирования вектора(размерность - 4), компоненты которого - элементы лежащие на побочной диагонали матрицы 4*4, значения задаются пользователем.
2)Дан вектор А(размерность - 10). Составить программу, формирующую вектор В, элементы которого располагаются так: сначала нечетные члены последовательности элементов А, потом четные(а1, а3, а5, а7, а9, а2, а4, а6, а8, а10)

По второму я что-то навоял, но это не работает, вот код:

Код

------
type
TVector = array [0..9] of Integer
TVector2 = array [0..9] of Integer
var
v:TVector;
m:TVector2;

implementation

{$R *.dfm}

procedure TfrmArray.btnVectorClick(Sender: TObject);
begin
v[0]: = StrToInt(TVector.Cells[0, 0]);
v[1]: = StrToInt(TVector.Cells[1, 0]);
v[2]: = StrToInt(TVector.Cells[2, 0]);
v[3]: = StrToInt(TVector.Cells[3, 0]);
v[4]: = StrToInt(TVector.Cells[4, 0]);
v[5]: = StrToInt(TVector.Cells[5, 0]);
v[6]: = StrToInt(TVector.Cells[6, 0]);
v[7]: = StrToInt(TVector.Cells[7, 0]);
v[8]: = StrToInt(TVector.Cells[8, 0]);
v[9]: = StrToInt(TVector.Cells[9, 0]);
end;
 procedureTfrmArray.btnVecttoVectClick(Sender: TObject);
var i, j : integer
begin
m[0]:=v[0];
m[1]:=v[2];
m[2]:=v[4];
m[3]:=v[6];
m[4]:=v[8];
m[5]:=v[1];
m[6]:=v[3];
m[7]:=v[5];
m[8]:=v[7];
m[9]:=v[9];
end;
end.


Над первым думаю сейчас, но пока мало что получается...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникальный
**

Группа: Пользователи
Сообщений: 64
Пол: Мужской

Репутация: -  2  +


Слушай а ти случайно не Британец ... судя по коду ... в конце концов ведь циклы есть ... blink.gif


--------------------
Век живи, век учи С © by Jahnerus
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Автооответчик
*****

Группа: Пользователи
Сообщений: 1 188
Пол: Мужской
Реальное имя: Александр

Репутация: -  16  +


Цитата
случайно не Британец ... судя по коду

проясни ситуацию, а ?


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникальный
**

Группа: Пользователи
Сообщений: 64
Пол: Мужской

Репутация: -  2  +


2 Функции выполняющие только формирование векторов ...
если ввод сам не сделаешь пиши!
Код
const n=4;
 m=10;
type ma3x=array[1..n,1..n] of integer;
 vector=array[1..m] of integer;
{Задание 1}
procedure vect(matr:ma3x; var vec:vector);
var
 i:byte;
begin
 for i:=1 to n do vec[i]:=matr[n-i+1,i];
end;
{Задание 2}
procedure vect_2(v1:vector; var v2:vector);
var
 i,j:byte;
begin
 j:=0;
 for i:=1 to m do begin
   if v1[i]<0 then begin
     j:=j+1;
     v2[j]:=v1[i];
   end;
 end;
 for i:=1 to m do begin
   if v1[i]>=0 then begin
     j:=j+1;
     v2[j]:=v1[i];
   end;
 end;
end;


Добавлено (3.12.04 18:17):

GoodWind
Существует такая легенда ...
Британцы умудряються писать самый не рациональный код ... говорят даже что если посадить обезьяну за комп то она напишет лучше них ... с тех пор и повелось "Британец" значит кодит не так как все ! (мягко говоря).
Ну согласись 20 строк по принцыпу Copy + Paste это извращение sad.gif


--------------------
Век живи, век учи С © by Jahnerus
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Автооответчик
*****

Группа: Пользователи
Сообщений: 1 188
Пол: Мужской
Реальное имя: Александр

Репутация: -  16  +


Цитата
Британец" значит кодит не так как все !

lol.gif lol.gif lol.gif


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


Да мне вобщем-то не важна оптимизированность кода, главное чтобы все работало...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Уникальный
**

Группа: Пользователи
Сообщений: 64
Пол: Мужской

Репутация: -  2  +


Wert
Цитата
Да мне вобщем-то не важна оптимизированность кода, главное чтобы все работало...

Не хочу конешно тебя обежать ... уверен ти только начинаешь ... и у тебя всё впереди ... но дело здесь даже не в оптимизации, а в экономии хотябы личного времени ...
Я бы поленился копировать и вставлять 20 раз одну и ту же строку заменяя в каждой из них только один параметр ... А еслиб размерность была не 10 а 1000... я бы на тебя тогда посмотрел ! :D :D :D

Сообщение отредактировано: Jahnerus -


--------------------
Век живи, век учи С © by Jahnerus
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


Я действительно только начинаю...

И я не совсем понял: функция, что ты написал стоит отдельно?, или это действие при клике на кнопку??

Вобщем я что-то написал а он ругается на многие строки... sad.gif


Код

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   StringGrid1: TStringGrid;
   btnVector: TButton;
   StringGrid2: TStringGrid;
   btnVecttoVect: TButton;
 private
   { Private declarations }
 public
   { Public declarations }
 end;

 const
m=10;
vector=array [1..m] of integer; // [Error] Unit1.pas(23): Expression expected but 'ARRAY' found   ||   [Error] Unit1.pas(23): ';' expected but 'OF' found


var  //[Error] Unit1.pas(26): Expression expected but 'VAR' found
 Form1: TForm1;

implementation

{$R *.dfm}

procedure vect_2(v1:vector; var v2:vector);  //[Error] Unit1.pas(33): 'vector' is not a type identifier
var
i,j:byte;
begin
j:=0;
for i:=1 to m do begin
  if v1[i]<0 then begin   //[Warning] Unit1.pas(39): Comparing signed and unsigned types - widened both operands
    j:=j+1;
    v2[j]:=v1[i];
  end;
end;
for i:=1 to m do begin
  if v1[i]>=0 then begin  //[Warning] Unit1.pas(45): Comparing signed and unsigned types - widened both operands
    j:=j+1;
    v2[j]:=v1[i];
  end;
end;
end;

end.




Вобщем, помогите пжлста, без вас я пропаду... sad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Wert
Ты забыл слово Type (3-я строка)
Код

const
m=10;
type
vector=array [1..m] of integer;

Попробуй исправить.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


не работает, все те же ошибки остались
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






Wert
Я только что откомпилировал приведенный выше код - никаких ошибок в нем нет.
Ты добавил слово Type?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


да
А этот код на паскале?
У меня на Делфе.
В принципе разницы никакой...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гость






Так я на Дельфи и компилировал...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


А хотя нет, осталась только одна ошибка

const
m=10; [Error] Unit1.pas(23): Identifier redeclared: 'm'

Добавлено (3.12.04 22:02):
Только что она значит я не понимаю...

Добавлено (3.12.04 22:05):
О, все, и эту ошибку убрал...
Спасибо, только как мне написать процедуру к кнопке, ту, что я написал подойдет? Или ты и так ее написал? Прошу прощения за тупой вопрос
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Гость






А значит она, что у тебя где-то выше по тексту уже определена переменная (или константа) с именем "m", и ты ее пытаешься переопределить...

Проверь, может ты просто эту строчку 2 раза поставил?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


Да, я уже убрал...
Но объясните вот это:
Код

procedure vect_2(v1:vector; var v2:vector);
var
i,j:byte;
begin
j:=0;
for i:=1 to m do begin
  if v1[i]<0 then begin
    j:=j+1;
    v2[j]:=v1[i];
  end;
end;
for i:=1 to m do begin
  if v1[i]>=0 then begin
    j:=j+1;
    v2[j]:=v1[i];
  end;
end;
end;

это процедура к кнопке или что? unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Гость






Вообще-то, это процедура, которая по содержимому одного массива вычисляет второй. А уж как ее вызывать - твое дело. Хочешь - можешь вызывать по нажатию кнопки... :yes:
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


Спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


Опять я что-то сделал не так, подскажите, кто знает пжлста:
Код

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, Grids;
type
 TForm1 = class(TForm)
   StringGrid1: TStringGrid;
   btnVector: TButton;
   StringGrid2: TStringGrid;
   btnVecttoVect: TButton;
   procedure btnVecttoVectClick(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

 const
m=10;
type
vector=array [1..m] of integer;


var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure vect_2(v1:vector; var v2:vector);

procedure TForm1_btnVecttoVectClick(Sender: TObject);
var
v1:vector;  v2:vector;
i,j:byte;
begin
j:=0;
for i:=1 to m do begin
  if v1[i]<0 then begin
    j:=j+1;
    v2[j]:=v1[i];
  end;
end;
for i:=1 to m do begin
  if v1[i]>=0 then begin
    j:=j+1;
    v2[j]:=v1[i];
  end;


end.

Ошибки такие:

[Error] Unit1.pas(55): Record, object or class type required
[Error] Unit1.pas(57): 'END' expected but end of file found
[Error] Unit1.pas(14): Unsatisfied forward or external declaration: 'TForm1.btnVecttoVectClick'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Гость






Ай-яй-яй ... А если вот так?
Код

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
  StringGrid1: TStringGrid;
  btnVector: TButton;
  StringGrid2: TStringGrid;
  btnVecttoVect: TButton;
  procedure btnVecttoVectClick(Sender: TObject);
private
  { Private declarations }
public
  { Public declarations }
end;

const
m=10;
type
vector=array [1..m] of integer;


var
Form1: TForm1;

implementation

{$R *.dfm}

procedure vect_2(v1:vector; var v2:vector);
var i,j:byte;
begin
j:=0;
for i:=1 to m do begin
  if v1[i]<0 then begin
    j:=j+1;
    v2[j]:=v1[i];
  end;
end;
for i:=1 to m do begin
  if v1[i]>=0 then begin
    j:=j+1;
    v2[j]:=v1[i];
  end;
end;
end;

procedure TForm1.btnVecttoVectClick(Sender: TObject); {**** Здесь ****}
var v1:vector;  v2:vector;
begin
 vect_2(v1, v2);
end;

end.


Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 

2 страниц V  1 2 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 15.05.2024 12:51
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name