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

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Матрица, Еще одна к аттестации...
RastamaN
сообщение 30.10.2005 14:03
Сообщение #1


Новичок
*

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

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


Дано натуральное число n. Выяснить, сколько положительных элементов содержит матрица A размерности nxn, если:

aij=sin(i+j/2)


Опять, наверное, очень легкая задача, но, все же, помогите, если не сложно... :smile:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 30.10.2005 14:10
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Может конечно и можно как-то одной формулой вывести ... но не ужели тебе в голову не пришла идея хотябы полного перебора :smile: ?


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
RastamaN
сообщение 30.10.2005 17:46
Сообщение #3


Новичок
*

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

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


Не пришла!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 30.10.2005 17:49
Сообщение #4


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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



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";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 30.10.2005 19:36
Сообщение #5


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

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


ээээ клем... так не пойдет. Во-первых, тебе же сказали что размерность n*n, зачем ты m используешь ?
И потом, зачем тебе матрица? А если n=10000 ?
хы...

Вот смотри-ка..
Прикрепленное изображение
(это вот это отработалоsmile.gif

{$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 тоже должно быть и это просто погрешность вычислений...

думаем дальше. вопрсо открыт


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
RastamaN
сообщение 30.10.2005 19:49
Сообщение #6


Новичок
*

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

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


2 Altair, Блин, это загон какой-то получается blink.gif , легче застрелиться! mega_chok.gif

И мне вполне даже с перебором пойдет!!! Кстати, нам по-моему так и сказали делать.. Мы таких загонов еще просто не проходили
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 30.10.2005 19:53
Сообщение #7


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

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


RastamaN, можешь брать перебор, дальше это уже не твоя задача а наша smile.gif blum.gif

p.s.
да, прошу прощения, марица не трехдиагональная.
У нее каждый 2 столбец плюсов снизу на 2 позиции меньше.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 30.10.2005 20:17
Сообщение #8


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Цитата(Altair)
Во-первых, тебе же сказали что размерность n*n, зачем ты m используешь ?


Не придерайся ...

Цитата(Altair)
И потом, зачем тебе матрица?


Цитата(klem4)
Может конечно и можно как-то одной формулой вывести ...


Я и не утверждал что без нее никак ...

М
Дык задача администрации (в твоем лице) дать как можно более точный ответ smile.gif А ты торопишься smile.gif не торопись и все будет пучком blum.gif
Altair



--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
RastamaN
сообщение 30.10.2005 21:55
Сообщение #9


Новичок
*

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

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


Блин, решите ее как-нибудь просто что-ли... А то у меня, во-первых, вот это "uses wincrt,graph" не работае, а во-вторых, меня засрут за такое решение, потому-что я б до такого не допер бы сам...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 30.10.2005 21:59
Сообщение #10


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

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


не работает потому что у тебя нет FPC.
ВОт тебе решение тупое. Клем предложил blum.gif

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;


М
А твое ну оооочень умное ?! абсолютно такойже полные перебор, только без матрицы yes2.gif

c:real - зачем ? unsure.gif
klem4



--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 19.07.2025 20:57
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"