![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Wert |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
Я посмотрел в ФАКе, ничего такого не нашел, может кто знает как это сделать, помогите?
Все нужно сделать в делфе с интерфейсом. 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. Над первым думаю сейчас, но пока мало что получается... |
![]() ![]() |
Jahnerus |
![]()
Сообщение
#2
|
![]() Уникальный ![]() ![]() Группа: Пользователи Сообщений: 64 Пол: Мужской Репутация: ![]() ![]() ![]() |
Слушай а ти случайно не Британец ... судя по коду ... в конце концов ведь циклы есть ...
![]() -------------------- Век живи, век учи С © by Jahnerus
|
GoodWind |
![]()
Сообщение
#3
|
![]() Автооответчик ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
Цитата случайно не Британец ... судя по коду проясни ситуацию, а ? -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
Jahnerus |
![]()
Сообщение
#4
|
![]() Уникальный ![]() ![]() Группа: Пользователи Сообщений: 64 Пол: Мужской Репутация: ![]() ![]() ![]() |
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 это извращение ![]() -------------------- Век живи, век учи С © by Jahnerus
|
GoodWind |
![]()
Сообщение
#5
|
![]() Автооответчик ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
Цитата Британец" значит кодит не так как все ! ![]() ![]() ![]() -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
Wert |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
Да мне вобщем-то не важна оптимизированность кода, главное чтобы все работало...
|
Jahnerus |
![]()
Сообщение
#7
|
![]() Уникальный ![]() ![]() Группа: Пользователи Сообщений: 64 Пол: Мужской Репутация: ![]() ![]() ![]() |
Wert
Цитата Да мне вобщем-то не важна оптимизированность кода, главное чтобы все работало... Не хочу конешно тебя обежать ... уверен ти только начинаешь ... и у тебя всё впереди ... но дело здесь даже не в оптимизации, а в экономии хотябы личного времени ... Я бы поленился копировать и вставлять 20 раз одну и ту же строку заменяя в каждой из них только один параметр ... А еслиб размерность была не 10 а 1000... я бы на тебя тогда посмотрел ! :D :D :D Сообщение отредактировано: Jahnerus - 3.12.2004 19:50 -------------------- Век живи, век учи С © by Jahnerus
|
Wert |
![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
Я действительно только начинаю...
И я не совсем понял: функция, что ты написал стоит отдельно?, или это действие при клике на кнопку?? Вобщем я что-то написал а он ругается на многие строки... ![]() Код 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. Вобщем, помогите пжлста, без вас я пропаду... ![]() |
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
Wert
Ты забыл слово Type (3-я строка) Код const m=10; type vector=array [1..m] of integer; Попробуй исправить. |
Wert |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
не работает, все те же ошибки остались
|
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
Wert
Я только что откомпилировал приведенный выше код - никаких ошибок в нем нет. Ты добавил слово Type? |
Wert |
![]()
Сообщение
#12
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
да
А этот код на паскале? У меня на Делфе. В принципе разницы никакой... |
volvo |
![]()
Сообщение
#13
|
Гость ![]() |
Так я на Дельфи и компилировал...
|
Wert |
![]()
Сообщение
#14
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
А хотя нет, осталась только одна ошибка
const m=10; [Error] Unit1.pas(23): Identifier redeclared: 'm' Добавлено (3.12.04 22:02): Только что она значит я не понимаю... Добавлено (3.12.04 22:05): О, все, и эту ошибку убрал... Спасибо, только как мне написать процедуру к кнопке, ту, что я написал подойдет? Или ты и так ее написал? Прошу прощения за тупой вопрос |
volvo |
![]()
Сообщение
#15
|
Гость ![]() |
А значит она, что у тебя где-то выше по тексту уже определена переменная (или константа) с именем "m", и ты ее пытаешься переопределить...
Проверь, может ты просто эту строчку 2 раза поставил? |
Wert |
![]()
Сообщение
#16
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
Да, я уже убрал...
Но объясните вот это: Код 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; это процедура к кнопке или что? ![]() |
volvo |
![]()
Сообщение
#17
|
Гость ![]() |
Вообще-то, это процедура, которая по содержимому одного массива вычисляет второй. А уж как ее вызывать - твое дело. Хочешь - можешь вызывать по нажатию кнопки... :yes:
|
Wert |
![]()
Сообщение
#18
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо
|
Wert |
![]()
Сообщение
#19
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
Опять я что-то сделал не так, подскажите, кто знает пжлста:
Код 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' |
volvo |
![]()
Сообщение
#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 - 3.12.2004 23:40 |
![]() ![]() |
![]() |
Текстовая версия | 25.06.2025 13:21 |