
Даны действительные числа а1, ..,а64;

Получить действительную квалратную матрицу порядка 8, элементами которой являются числа а1,...а64, расположенные по схеме:
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Kos |
![]()
Сообщение
#1
|
Гость ![]() |
Народ, помогите плиз, надо решить задачку, а в матрицах я нуб
![]() Даны действительные числа а1, ..,а64; ![]() Получить действительную квалратную матрицу порядка 8, элементами которой являются числа а1,...а64, расположенные по схеме: |
Kos |
![]()
Сообщение
#2
|
Гость ![]() |
по схеме:
............. :............ .............: :............ .............: :............> ![]() |
klem4 |
![]()
Сообщение
#3
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Схема у тебя конечно крутая ... может так ?
uses crt;
const
n=16;
var
a : array[1..n] of integer;
b : array[1..round(sqrt(n)), 1..round(sqrt(n))] of integer;
i,r,c : byte;
begin
clrscr;
r := 1;
c := 0;
for i := 1 to n do begin
readln(a[i]);
inc(c );
if c > (round(sqrt(n))) then begin
c := 1;
inc(r );
end;
b[r,c] := a[i];
end;
writeln;
for r := 1 to round(sqrt(n)) do begin
writeln;
for c := 1 to round(sqrt(n)) do write(b[r,c]:3,' ');
end;
readln
end.
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Kos |
![]()
Сообщение
#4
|
Гость ![]() |
|
Prime |
![]()
Сообщение
#5
|
Гость ![]() |
|
Negativka |
![]()
Сообщение
#6
|
Гость ![]() |
|
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Negativka, вот результат выполнения твоего цикла:
Цитата 1 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 Если бы автор (то есть ты же, судя по IP) не изгалялся в ответах типа "сам-себе", а привел нормально матрицу, которую он хочет видеть как результат, можно было бы даже сказать, устроит его какой-нибудь из приведенных вариантов, или нет... А так - гадание на кофейной гуще... |
Negativka |
![]()
Сообщение
#8
|
Гость ![]() |
Negativka, вот результат выполнения твоего цикла: Если бы автор (то есть ты же, судя по IP) не изгалялся в ответах типа "сам-себе", а привел нормально матрицу, которую он хочет видеть как результат, можно было бы даже сказать, устроит его какой-нибудь из приведенных вариантов, или нет... А так - гадание на кофейной гуще... Да, с одного и того же компа(админ. клуба), точнее с одного и того же клуба, где работает автор и я, помогать конкретно я ему не буду, потому что он когда-то мне не помог с мат.анализом, а потому я ему не помогу с информатикой ![]() ![]() |
Kos |
![]()
Сообщение
#9
|
Гость ![]() |
по схеме: ............. :............ .............: :............ .............: :............> ![]() точная схема: а8 а7 а6 а5 а4 а3 а2 а1 а9 а10 а11 а12 а13 а14 а15 а16 а24 а23 а22 а21 а20 а19 а18 а17 а25 а26 а27 а28 а29 а30 а31 а32 а40 а39 а38 а37 а36 а35 а34 а33 а41 а42 а43 а44 а45 а46 а47 а48 а56 а55 а54 а53 а52 а51 а50 а49 а57 а58 а59 а60 а61 а62 а63 а64 а72 а71 а70 а69 а68 а67 а66 а65 а73 а74 а75 а76 а77 а78 а79 а80 а88 а87 а86 а85 а84 а83 а82 а81 А Negativka, уже врядли сядит за это кресло , полез туда куда его не просили. |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
const
n = 8;
var
a: array[1 .. n, 1 .. n] of integer;
i, j, k, T, count: integer;
begin
T := 1;
count := 1;
for i := 1 to n do begin
T := - T;
if odd(i) then j := n else j := 1;
for k := 1 to n do begin
a[i, j] := count;
inc(count); j := j + T;
end;
end;
for i := 1 to n do begin
for j := 1 to n do
write(a[i, j]:4);
writeln;
end;
end.
|
Kos |
![]()
Сообщение
#11
|
Гость ![]() |
Volvo, ты гений, спасибо всем за помощь в зачётной работе
![]() ![]() ![]() |
klem4 |
![]()
Сообщение
#12
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
только тебе вроде надо было с массивом это все проделать ? Вот по примеру проги volvo сделал, можно мне кажется еще упростить .. попробуй сам сделать
uses crt;
const
n=16;
var
a : array[1..n] of integer;
b : array[1..round(sqrt(n)), 1..round(sqrt(n))] of integer;
i,r,c,T : shortint;
begin
clrscr;
for i := 1 to n do readln(a[i]);
r := 1;
c := round(sqrt(n));
T := -1;
for i := 1 to n do begin
if (c>round(sqrt(n))) or (c<1) then begin
inc( r );
T := -T;
inc(c,T);
end;
b[r,c] := a[i];
inc(c,T);
end;
writeln;
for r := 1 to round(sqrt(n)) do begin
writeln;
for c := 1 to round(sqrt(n)) do write(b[r,c]:3,' ');
end;
readln
end.
кстати, вот таже самая программа, но в ней есть отличие в одной строчке, прикотором правильно работать программа ну ни как не может и по идее должна вылелать с ошибкой, но отрабатывает на ура, компилятор соответственно FPC ;) uses crt;
const
n=16;
var
a : array[1..n] of integer;
b : array[1..round(sqrt(n)), 1..round(sqrt(n))] of integer;
i,r,c,T : byte;
begin
clrscr;
for i := 1 to n do readln(a[i]);
r := 1;
c := round(sqrt(n));
T := -1;
for i := 1 to n do begin
if (c>round(sqrt(n))) or (c<1) then begin
inc( r );
T := -T;
inc(c,T);
end;
b[r,c] := a[i];
inc(c,T);
end;
writeln;
for r := 1 to round(sqrt(n)) do begin
writeln;
for c := 1 to round(sqrt(n)) do write(b[r,c]:3,' ');
end;
readln
end.
Сообщение отредактировано: volvo - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#13
|
Гость ![]() |
klem4, с чего бы это
Цитата должна вылелать с ошибкой ? ![]() Цикличность байта сохраняется, так что все будет работать... А вот так - не будет (на Segmentation Fault нарвешься): var
a : array[1..n] of integer;
b : array[1..round(sqrt(n)), 1..round(sqrt(n))] of integer;
i,r,c: integer;
T : byte;
|
klem4 |
![]()
Сообщение
#14
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Volvo, а в чем же тут различие то ?!
![]() ![]() i,r,c,T : byte;
i,r,c: integer;
T : byte;
имею в виду T что там байт, что тут ... -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#15
|
Гость ![]() |
![]() Смотри, что происходит: 1) описание где ВСЕ переменные - Byte допустим, C = 6 и T = -1 (ну, то есть 255, если эту ячейку считать как Byte) C = C + T; { = 6 + 255 = 261, правда? Но ведь 261 состоит из 2-х байт = 256*1 + 5, старший байт потерялся, младший что содержит? C - T, как и положено } 2) описание, где C: Integer... А вот тут - проблемы... Старший байт-то не теряется, поэтому после первого же "вычитания" у тебя идет попытка обратиться к элементу, лежащему далеко за пределами массива... Результат я тебе привел выше: SF ![]() |
generic zithromax over the count |
![]()
Сообщение
#16
|
Гость ![]() |
Cialis Nez Bouche
|
![]() ![]() |
![]() |
Текстовая версия | 9.04.2025 1:00 |