Обсуждение Программирование на Delphi/Pascal

XoD

Самец :)
Награды
6
Снова требуется помощь :)

Задача:
Напечатать элементы заданной матрицы размером 10х10 в следующем порядке (см. вложения).

Как ввести матрицу я знаю, как вывести тоже, но как вывести именно в таком порядке понятия вообще не имею :( Растолкуйте, пожалуйста :idontno:

напишу алгоритм, если объяснишь мне, втупляющему, как это так должны числа располагаться, и как именно изначальная последовательность поменяется. По рисунку вообще не догоняю :D
 
R

RIB

напишу алгоритм, если объяснишь мне, втупляющему, как это так должны числа располагаться, и как именно изначальная последовательность поменяется. По рисунку вообще не догоняю :D

Ну вот, допустим, ввожу я матрицу:
Код:
1  2  3  4  5  6  7  8  9  10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100

И мне нужно вывести её в таком порядке:
Код:
1 2 11 21 12 3 4 13 22 31 41 32 23 14 5 и т.д.
 

Krezol

Самец :)
Помогите плз...с первой частью вопроса справился,а вот как с нечетными индексами...я чет не втыкаю,направте на путь истинный))...
Организовать файл целых чисел из N компонент. Определить сумму компонент файла имеющих нечётные индексы.
 
Награды
7
Снова требуется помощь :)

Задача:
Напечатать элементы заданной матрицы размером 10х10 в следующем порядке (см. вложения).

Как ввести матрицу я знаю, как вывести тоже, но как вывести именно в таком порядке понятия вообще не имею :( Растолкуйте, пожалуйста :idontno:
Подсказываю. Надо работать с диагоналями. Для каждой диагонали можно вычислить стартовую и конечную точку диагонали, а так-же шаг. Зависить это будет от номера диагонали и от того четная она или нечетная. Например третья диагональ: старт (3, 0), стоп (0, 3), шаг (-1, -1). Четвертая диагональ: старт (0, 4), стоп (4, 0), шаг (1, 1). Т.е. будет первая итерация - по диагоналям от 0 до 9, внутри неё итерация по элементам диагонали от стартового до конечного с вычисленным шагом. Это для первой половины матрицы (левый верхний угол). Аналогично для второй половины (правый нижний угол).
 
R

RIB

Подсказываю. Надо работать с диагоналями. Для каждой диагонали можно вычислить стартовую и конечную точку диагонали, а так-же шаг. Зависить это будет от номера диагонали и от того четная она или нечетная. Например третья диагональ: старт (3, 0), стоп (0, 3), шаг (-1, -1). Четвертая диагональ: старт (0, 4), стоп (4, 0), шаг (1, 1). Т.е. будет первая итерация - по диагоналям от 0 до 9, внутри неё итерация по элементам диагонали от стартового до конечного с вычисленным шагом. Это для первой половины матрицы (левый верхний угол). Аналогично для второй половины (правый нижний угол).
Спасибо, в принцепе я понял как это делается, но реализовать не знаю как :sorry:

i:=3;
j:=1;
while (i<=3) and (i>=1) and (j<=3) and (i:>=1) do
B[k]:=A[i;j];
i:=i-1;
j:=j+1;
 
Награды
7
Спасибо, в принцепе я понял как это делается, но реализовать не знаю как :sorry:

i:=3;
j:=1;
while (i<=3) and (i>=1) and (j<=3) and (i:>=1) do
B[k]:=A[i;j];
i:=i-1;
j:=j+1;

Где-то так. Для одной половины.
Код:
function GetStartPoint... сам пиши.

GetEndPoint можно не писать, цикл прохода по диагонали заканчивается выходом за границы массива.

// в предыдущем месте попутал как считать шаги
function GetStep(const ADiagonalIndex:Integet):TPoint;
begin
  if Odd(ADiagonalIndex) then
    Result:=Point(-1, 1)
  else
    Result:=Point(1, -1);
end;

for idxDiagonal:=0 to DiagonalCount-1 do
begin
  StartPoint:=GetStartPoint(idxDiagonal);
  //EndPoint:=GetEndPoint(idxDiagonal);
  Step:=GetStep(idxDiagonal);
  CurrentPoint:=StartPoint;
  repeat
    WriteLn(Matix[CurrentPoint.Y, CurrentPoint.X]) // или наоборот?
    Inc(CurrentPoint.X, Step.X);
    Inc(CurrentPoint.Y, Step.Y);
  until (CurrentPoint.X<0) or (CurrentPoint.Y<0);
end;
 

byterus

Ословед
Награды
4
Подскажите пожалуйста, нужна любая реализация хинта(THintWindow) с активными контролами. Например:

Текст подсказки. ссылка

Чтобы у пользователя была возможность во время отображения хинта кликнуть по ссылке.
 
Награды
7
Ну епть, адрес, C:\Windows\Корзина
Это не адрес. Это путь к каталогу в котором размещены файлы отправленные в корзину. В корневом каталоге диска есть скрытый каталог RECYCLER или $RECYCLE короче как-то так. Это оно и есть.

Адрес - это адрес веб странички, почтовый адрес, адрес в памяти, почтовый адрес и т.п.

Позвольте полюбопытствовать, а зачем знать путь к "корзине"?
 
Награды
7
Подскажите пожалуйста, нужна любая реализация хинта(THintWindow) с активными контролами. Например:
Текст подсказки. ссылка
Чтобы у пользователя была возможность во время отображения хинта кликнуть по ссылке.
Может это поможет?
http://www.delphisources.ru/pages/faq/base/any_shape_of_hint.html
 

byterus

Ословед
Награды
4
Награды
7
Спасибо, я попробовал, стала падать сразу:( Возможно из-за того что у меня Delphi7? Однако, судя по коду там нет нужной мне функциональности. Вопрос остается актуальным.
Я к тому что коли это наследник от TComponent, может быть соорудить его в рантайме? Т.е. накласть нужные контролы в него. А вообще у меня есть сильное подозрение что подобные окна в других программных продуктах реализуются путем показа обычных форм со всеми контролами и без рамочек, которые закрываются когда пользователь тычет мимо формы.
 

byterus

Ословед
Награды
4
Я к тому что коли это наследник от TComponent, может быть соорудить его в рантайме? Т.е. накласть нужные контролы в него. А вообще у меня есть сильное подозрение что подобные окна в других программных продуктах реализуются путем показа обычных форм со всеми контролами и без рамочек, которые закрываются когда пользователь тычет мимо формы.

Согласен, просто хочется поиметь исходники готовой реализации, чтобы самому время на разбирательства не тратить:)
 
Награды
7
Согласен, просто хочется поиметь исходники готовой реализации, чтобы самому время на разбирательства не тратить:)
Узнаю подход. :) Слушай, а чо ты парисся на семёрке? Ужо 2010 на дворе. Гораздо гораздее по ощущениям. Хотя сам я застрял на 2006, 2010 ишшо не купили.
 

byterus

Ословед
Награды
4
Узнаю подход. :) Слушай, а чо ты парисся на семёрке? Ужо 2010 на дворе. Гораздо гораздее по ощущениям. Хотя сам я застрял на 2006, 2010 ишшо не купили.
Я этот... ортодокс:) На самом деле ты прав, похоже пора:)

>2010 ишшо не купили
Я пожалуй скачаю, дешевле выйдет, она же дороже автомобиля стоит!!!
 

Dant

Ословед
Добрый день!ав подкиньте ктонибудь какую нибудь литературу по построению графиков на дельфи!я слышал что у рханьгельского есть какае то неплохая книга на эту тему!но я не нашёл её((
 
Сверху