![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
RastamaN |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 13 Пол: Мужской Репутация: ![]() ![]() ![]() |
Дано натуральное число n. Выяснить, сколько положительных элементов содержит матрица A размерности nxn, если:
aij=sin(i+j/2) Опять, наверное, очень легкая задача, но, все же, помогите, если не сложно... :smile: |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Может конечно и можно как-то одной формулой вывести ... но не ужели тебе в голову не пришла идея хотябы полного перебора :smile: ?
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
RastamaN |
![]()
Сообщение
#3
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 13 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не пришла!
|
klem4 |
![]()
Сообщение
#4
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
count := 0;
for i := 1 to n do
for j := 1 to m do begin
a[i,j] := sin(i+j/2);
if a[i,j]>0 then inc(count);
end;
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Altair |
![]()
Сообщение
#5
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
ээээ клем... так не пойдет. Во-первых, тебе же сказали что размерность n*n, зачем ты m используешь ?
И потом, зачем тебе матрица? А если n=10000 ? хы... Вот смотри-ка.. ![]() (это вот это отработало ![]()
{$mode delphi}
uses wincrt,graph;
var
i,j,count,n:longint;
c:char;
d,gd,gm:smallint;
ir,jr:extended;
s:string;
begin
d:=d8bit;
gm:=m800x600;
initgraph(gd,gm,'');
count := 0;
n:=100;
for i := 1 to n do
for j := 1 to n do begin
ir:=i; jr:=j;
if sin(ir+jr/2)>0 then c:='+' else c:='-';
outtextxy(i*20,j*20,c);
if c='+' then inc(count);
end;
str(count,s);
readln
end.
Видишь закономерность ? Это трехдиагональная матрица, только у не диагонали не по главной диагонали а по побочной... Используя это можно похимичить и вывести формулу для получения ответа вообще без перебеора... а за перебор сразу неут надо ставить... Только я бы проверил насчет элемента (1,3) и таки-же.. имхо там 1 тоже должно быть и это просто погрешность вычислений... думаем дальше. вопрсо открыт -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
RastamaN |
![]()
Сообщение
#6
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 13 Пол: Мужской Репутация: ![]() ![]() ![]() |
2 Altair, Блин, это загон какой-то получается
![]() ![]() И мне вполне даже с перебором пойдет!!! Кстати, нам по-моему так и сказали делать.. Мы таких загонов еще просто не проходили |
Altair |
![]()
Сообщение
#7
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
RastamaN, можешь брать перебор, дальше это уже не твоя задача а наша
![]() ![]() p.s. да, прошу прощения, марица не трехдиагональная. У нее каждый 2 столбец плюсов снизу на 2 позиции меньше. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
klem4 |
![]()
Сообщение
#8
|
|||
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Цитата(Altair) Во-первых, тебе же сказали что размерность n*n, зачем ты m используешь ? Не придерайся ... Цитата(Altair) И потом, зачем тебе матрица? Цитата(klem4) Может конечно и можно как-то одной формулой вывести ... Я и не утверждал что без нее никак ...
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
|||
RastamaN |
![]()
Сообщение
#9
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 13 Пол: Мужской Репутация: ![]() ![]() ![]() |
Блин, решите ее как-нибудь просто что-ли... А то у меня, во-первых, вот это "uses wincrt,graph" не работае, а во-вторых, меня засрут за такое решение, потому-что я б до такого не допер бы сам...
|
Altair |
![]()
Сообщение
#10
|
|||
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
не работает потому что у тебя нет FPC.
ВОт тебе решение тупое. Клем предложил ![]() var
count,n,i,j:integer;
c:real;
begin
readln(n);
count := 0;
for i := 1 to n do for j := 1 to n do
if sin(i+j/2)>0 then inc(count);
writeln(count);
end;
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
|||
![]() ![]() |
![]() |
Текстовая версия | 18.04.2025 11:46 |