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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2008, 21:03   #1
Влада
Новичок
Джуниор
 
Аватар для Влада
 
Регистрация: 07.11.2008
Сообщений: 2
По умолчанию Шесть задач на "Бой программистов"

Я конечно понимаю, что следовало бы суть задач обозначить уже в названии, но их много и они длинные. Вот:
1. Даны натуральные числа n, a1, ..., an. Определите количество членов ak последовательности a1, ..., an, не меньших 150, кратных 11 и не оканчивающихся на 4.
2. Подсчитайте максимальное количество подряд идущих совпадающих элементов в целочисленном массиве длины 30.
3. Подсчитайте сумму отрицательных элементов массива, индексы которых кратны 3.
4. Подсчитайте сумму положительных элементоов, состоящих на чётных местах, и произведение отрицательных элементов, стоящих на нечётных местах.
5. Дан массив, состояий из чётного числа элементов. Найдите разность между суммой элементов первой половины массива и суммой элементов второй половины массива.
6. Посчитайте количество пар рядом стоящих равных элементов в однородном массиве.
Влада вне форума Ответить с цитированием
Старый 08.11.2008, 09:55   #2
OLEG'arh
Пользователь
 
Аватар для OLEG'arh
 
Регистрация: 23.11.2006
Сообщений: 42
По умолчанию

Код:
var
  a:array[1..30] of integer;
  i,k_1,max1_2,max2_2,sum_3,n_4,sum_4,sum1_5,sum2_5,k_5,max_6:integer;
  s_1:string;
begin
  for i:=1 to 30 do
    a[i]:=random(600)-300;

  {1}
  for i:=1 to 30 do
    begin
      str(a[i],s_1);
      if (a[i]>=150)and(a[i] mod 11 = 0) and (s_1[length(s_1)]='4') then inc(k_1);
    end;
  {2}
  for i:=2 to 30 do
    if a[i-1] = a[i] then inc(max1_2)
                       else if max1_2>max2_2 then
                                               begin
                                                 max2_2:=max1_2;
                                                 max1_2:=0;
                                               end;
  {3}
  for i:=1 to 30 do
    if (a[i]<0) and (a[i] mod 3=0) then inc(sum_3);
  {4}
  for i:=1 to 30 do
      if (a[i]>=0) and (i mod 2=0) then sum_4:=sum_4+a[i];

  n_4:=31;
  i:=2;
  while i<= 30 do
    begin
      if a[i]<0 then
                  begin
                    n_4:=i;
                    sum_4:=a[i];
                    break;
                  end;
      inc(i,2);
   end;
  for i:=n_4 to 30 do
      if (a[i]<0) and (i mod 2<>0) then sum_4:=sum_4*a[i];
  {5}
  for i:=1 to 30 do
    if i<30/2 then inc(sum1_5,a[i]) else inc(sum2_5,a[i]);
    k_5:=sum1_5-sum2_5;
  {6}
  for i:=2 to 30 do
    if a[i-1] = a[i] then inc(max_6);
end.

Использовал один массив для данных ВАМИ задач.
В задаче №6 возможно не правильно понял условие.
вывод на экран думаю не составит труда ВАМ доделать.

Последний раз редактировалось OLEG'arh; 08.11.2008 в 14:06.
OLEG'arh вне форума Ответить с цитированием
Старый 08.11.2008, 17:48   #3
Влада
Новичок
Джуниор
 
Аватар для Влада
 
Регистрация: 07.11.2008
Сообщений: 2
По умолчанию

Конечно-конечно, спасибо большое! Хотя бы намекнули (да практически всё и написали), спасибо большое! А то не знала даже как подступиться.
Влада вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CR-Team ищет программистов для проeкта "Дальний Свет" Ha3aP Фриланс 6 22.10.2009 19:28
Предопределить действия "Диспетчера задач" Air Общие вопросы Delphi 1 01.03.2008 08:44
"Морской бой" на "Турбе" Cezar Помощь студентам 10 15.05.2007 20:28