Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2011, 22:07   #1
sofiya
Новичок
Джуниор
 
Регистрация: 20.02.2011
Сообщений: 9
Восклицание Найти номер первой пары соседних элементов с разными знаками, сумма которых меньше заданного числа

if (m[i]*m[i+1]<0) and (m[i]+m[i+1]<заданное число) then writeln(i);
помогите где ошибка
sofiya вне форума Ответить с цитированием
Старый 20.02.2011, 22:13   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
for i:=1 to количество -1 do
if ((m[i]*m[i+1])<0) and ((m[i]+m[i+1])<заданное число) then writeln(i, ' & ' ,i+1);
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 20.02.2011, 22:20   #3
sofiya
Новичок
Джуниор
 
Регистрация: 20.02.2011
Сообщений: 9
По умолчанию

project1.exe raised exception class einouterror with message 'I/O error 105'.
Process stopped. use step or run to continue.
снова эта ошибка
sofiya вне форума Ответить с цитированием
Старый 20.02.2011, 22:43   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

проект консольный?
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 20.02.2011, 23:05   #5
Megabyter
Новичок
Джуниор
 
Аватар для Megabyter
 
Регистрация: 20.02.2011
Сообщений: 2
По умолчанию

возможно, происходит переполнение, когда ты умножаешь m[i] на m[i+1].
Есть два способа исправить: либо поставить явное длинное условие, либо использовать более крупный тип данных. Можно просто использовать приведение:
if (int64(m[i])*m[i+1]<0)and ...
Всё зависит от того, какие числа на входе.

И если тебе нужно вывести одну пару, то после then нужно написать
begin
write(i);
break;
end;
Megabyter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить программу нахождения числа строк матрицы А(N,N), сумма элементов у которых отрицательна. Irisk Помощь студентам 4 23.12.2010 16:41
Найти номер последней пары соседних элементов с разными знаками Albert341 Общие вопросы Delphi 2 23.12.2010 10:12
Сформировать вектор Х из тех элементов вектора А, сумма цифр которых в десятичной записи больше заданного Dimati87 Помощь студентам 1 06.03.2009 14:36
сумма всех начальных членов ряда, значение которых не меньше заданного числа e, 0<e<1 Арчи Помощь студентам 2 20.12.2008 12:39
Найти количество строк, среднее арифметическое элементов которых меньше заданной величины Sergeo_89 Паскаль, Turbo Pascal, PascalABC.NET 3 05.12.2008 21:25