| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [Псевдокод] Задача на массивы |
| Автор: Mar 14.10.2006, 13:02 |
| Здравствуйте. Ай нид хэлп, ни магу решить задачу. Вобщем вот задание Сформировать и вывести на печать массив B(15), элементы которого принадлежат интервалу [-35;40]. Найти произведения отрицательных элементов и сумму элементов, кратных 3-м и имеющих нечетный индекс. Как задать интервал [-35;40] ? Если кому не сложно, напишите задачу в общем виде.. |
| Автор: Kuvaldis 14.10.2006, 13:09 | ||||
Mar,
const HIGH = 40; LOW = -35; Цикл по всем элементам. Для каждого элемента B[i] массива проверяешь: если B[i] >=LOW и B[i] <= HIGH, то печать |
| Автор: Kuvaldis 14.10.2006, 15:01 | ||
volvo877,
А если диапазон будет больше, чем размерность 1 байта (256 элементов для множества) ? Твой вариант, как всегда, красив, но на этот раз не для общего случая |
| Автор: volvo877 14.10.2006, 16:07 |
| Давай не будем заниматься предварительной оптимизацией "подо все случаи"... В задании явно указан интервал, зачем нужно рассматривать какие-то общие случаи? "Premature optimization is the root of all evil" © Д.Кнут... Кстати, для общей информации - твой вариант ошибочен в общем случае. Хочешь доказательство - в приват... Не будем засорять тему... |
| Автор: Oleg_Ci 14.10.2006, 17:04 | ||
|
| Автор: Ofer 15.10.2006, 00:11 |
| Вот код на Турбо Паскале (v 7.1) uses CRT; var B : array [-35..40] of Integer; i,P,S : Integer; begin ClrScr; P := 1; S := 0; Randomize; for i := 0 to 14 do begin B[i] := Random(10) - 5; Write(B[i]:3,' '); if B[i] < 0 then P := P * B[i]; if (B[i] mod 3 = 0) and (Odd(i)) then S := S + B[i]; end; WriteLn; WriteLn('Произведение отрицательных чисел = ',P); WriteLn('Сумма чисел равных трем с нечетным индексом = ',S); ReadLn; end. Удачи! Надеюсь помогло. |
| Автор: volvo877 15.10.2006, 00:17 | ||
Ofer, читаем внимательно:
|
| Автор: Ofer 15.10.2006, 19:13 |
| Ну да, натупил. Тогда достаточно изменить строку B : array [0..14] of Integer; А числа и так задаются в указаном диапозоне B[i] := Random(10) - 5; Но при желании можно тоже изменить: B[i] := Random(75) - 35; |