Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование в широком смысле слова > Алгоритмика

Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения

Ответ
 
Опции темы
Старый 14.10.2010, 18:56   #1
KingMaks
Знающий
 
Аватар для KingMaks
 
Регистрация: 26.11.2009
Сообщений: 313
Написано 35 полезных сообщений
(для 95 пользователей)
Массивы

Непредставляю как написать алгоритм для решения етих задач
может кто знает:

1. Дан массив ненулевых целых чисел размера N. Проверить, чередуются ли в нем положительные и
отрицательные числа. Если чередуются, то вывести 0, если нет, то вывести номер первого
элемента, нарушающего закономерность.

2. Дан массив A[1..N,1..N]. Составить программу, которая прибавила бы каждому элементу данной
строки элемент, принадлежащий этой строке и главной диагонали.
__________________
StimuL
Maks
(Offline)
 
Ответить с цитированием
Старый 14.10.2010, 19:58   #2
Reks888
Дэвелопер
 
Аватар для Reks888
 
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений
(для 1,985 пользователей)
Ответ: Массивы

1.
Цикол для i от 0 до N
    Если знак(a[i])=знак(a[i+1]) выводим i+1 и заканчиваем программу
Конец цикола
Выводим 0
Конец программы
2. Не понял условия.

Как ты игру написал если не можешь такие задачи решить?
Вот вам и blitz3d...
__________________
>type C:\MyProj\*
www.sypiac.weebly.com
>
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо Reks888 за это полезное сообщение:
ABTOMAT (14.10.2010), KingMaks (18.10.2010), Phantom (14.10.2010), Romanzes (16.10.2010)
Старый 14.10.2010, 22:40   #3
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Массивы

Насчёт второго, типа так что ли?
1 2 3 4 5 | +1
6 7 8 9 0 | +7
7 4 5 1 2 | +5
9 5 4 2 3 | +2
7 9 7 3 2 | +2
(Offline)
 
Ответить с цитированием
Старый 18.10.2010, 23:59   #4
KingMaks
Знающий
 
Аватар для KingMaks
 
Регистрация: 26.11.2009
Сообщений: 313
Написано 35 полезных сообщений
(для 95 пользователей)
Ответ: Массивы

Reks888 ахах так просто оказалось
а я начал перемножать a[i]*a[i+1] и если равно меньше нуля то продолжаем
а если больше нуля то выводим

И я сам чото не пойму второй задачи, ну написал алгоритм как я его понял
завтра папробую здать, надеюсь приймет
__________________
StimuL
Maks
(Offline)
 
Ответить с цитированием
Старый 19.10.2010, 20:03   #5
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Массивы

Reks888,
Такой массив не прокатит:
{1,2,3,5,6,..}
Нужно проверять на модулис (оператор % в си-подобных языках), в BlitzBasic это MOD.
Проверяешь на деление по модулю на 2, и если следующий по индексу такойже, значит либо это два чётных, либо два нечётных, в зависимости от результата при делении по модулю.
C# код (сори, я тупо забыл блиц):
// цикл для каждого эллемента исключая последний
for (int i=0;i<A.Length()-1,i++) {
  if(A[i] %2 == A[i+1] %2) {
     return A[i+1];
  }
}
return null;
код написан в броузере

В Блице условное выражение будет что-то типо:
If (A[i] MOD 2)=(A[i+1] MOD 2)
Таким образом подобный массив пройдёт:
{1,4,7,8,9,10,27}
Т.к. он подходит под условие что каждый следующий должен быть чётным если предыдущий не чётный, и в точности наоборот.
(Offline)
 
Ответить с цитированием
Старый 19.10.2010, 21:03   #6
Reks888
Дэвелопер
 
Аватар для Reks888
 
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений
(для 1,985 пользователей)
Ответ: Массивы

MoKa, посмотри условие первой задачи. В условии нет ничего про четные и нечетные числа, только про собственно знак.
__________________
>type C:\MyProj\*
www.sypiac.weebly.com
>
(Offline)
 
Ответить с цитированием
Старый 19.10.2010, 21:23   #7
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Массивы

Упс точно. Хе хе.
Тогда поправка:
{-5,4,2,-3,6,-7}
Такой массив не пройдёт учитывая тот код выше.
Тут же нужно проверять примерно таким образом:
Уже не помню, позволяет ли блиц получять результат логического выражения в скобках без привязки, если да то такой код прокатит:
If (Abs(A[i])=A[i])=(Abs(A[i+1])=A[i+1])
Выражение "(Abs(A[i])=A[i])" проверяет чётное или нет, если чётное то возвратит true, если не чётное то false, т.к. Abs получает модуль числа, который всегда положительный.
С таким выражением, массив приведённый сверху не пройдёт проверку.
(Offline)
 
Ответить с цитированием
Старый 19.10.2010, 21:32   #8
Reks888
Дэвелопер
 
Аватар для Reks888
 
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений
(для 1,985 пользователей)
Ответ: Массивы

такой массив по-любому не пройдет, хватит чушь нести.
If sgn(a[i])=sgn(a[i+1]) решает все проблемы
__________________
>type C:\MyProj\*
www.sypiac.weebly.com
>
(Offline)
 
Ответить с цитированием
Старый 19.10.2010, 21:51   #9
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Массивы

sgn, угу, не abs.
Нету у меня манеры править предыдущие сообщения..
Зы, сперва думал речь идёт о чётном не чётном, вот и из непонимания напостил..
Блин, блиц открыть что-ли, 2 года с лишним уже прошло..
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 22:33.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com