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

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

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

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


Новичок
*

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

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


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

aij=sin(i+j/2)


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


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

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

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


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


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


Новичок
*

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

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


Не пришла!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


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

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

Репутация: -  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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

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

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


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

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


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

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

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


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

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


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

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

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


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


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

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

Репутация: -  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

 



- Текстовая версия 18.04.2025 11:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name