Статистика
Всего в нашей базе более 4 327 664 вопросов и 6 445 979 ответов!

Задан массив натуральных чисел размером 30 элементов.Элементы массива могут принимать значения от 1 до 1000.Напишите программу в паскале нахождения и

5-9 класс

вывода на экран суммы элементов самой длинной последовательности подряд идущих нечетных элементов массива.Если такой последовательности не существует, то программа должна вывести об этом сообщение.Если таких последовательностей несколько, то суммировать можно элементы любой из них.Входные данные:
program rabota_s_massivom;
const N=30;
var M: array[1..N] of integer;
i,k,s,kmax,reserve:integer;
begin
for i:=1 to N do
readln(M[i]);
......
end.

Rjhyim 24 нояб. 2016 г., 4:07:39 (7 лет назад)
Рейтинг
+ 0 -
0 Жалоба
+ 0 -
Artyriskandaria
24 нояб. 2016 г., 5:11:31 (7 лет назад)

program rabota_s_massivom;
const  
  N = 10;
var
  M : array[1..N] of integer; 
  i, max, nowMax, maxIndex, index, summ : integer;
begin 
  for i := 1 to N do   
    readln(M[i]); 
  for i := 1 to N do 
  begin   
    if M[i] mod 2 > 0 then
    begin
      if nowMax = 0 then
        index := i;
      nowMax := nowMax + 1;
      if (i = N) and (nowMax > max) then
      begin
        max := nowMax;
        maxIndex := index;
      end;
    end
    else
      if nowMax > max then
      begin
        max := nowMax;
        maxIndex := index;
        nowMax := 0;
      end;
  end;
  if max = 0 then
    writeln('Не существует')
  else
  begin
    summ := 0;
    for i := maxIndex to maxIndex + max - 1 do
      summ := summ + M[i];
    writeln('Сумма: ', summ);
  end;
end.

Как-то так

+ 0 -
Daha641735
24 нояб. 2016 г., 8:01:58 (7 лет назад)

Проверено, работает на Паскаль АВС:


Program rabota_s_massivom;
uses crt;
label metka;
const N=30;
var M: array[1..N] of integer;
i,k,s,kmax,reserve:integer;
begin
  for i:=1 to N do
    begin
      write('Введите ',i,'-й элемент: '); readln(M[i]);
    end;
  writeln('Массив:');
  for i:=1 to N do
    begin
      write(M[i],' ');
    end;
  k:=1; {Число элементов в текущей последовательности. Изначально считаем, что последовательность состоит из одного (первого) элемента}
{Ищем первый нечётный элемент:}
  repeat
    reserve:=reserve+1;
  until (m[reserve] mod 2 = 1) or (reserve = 30);
  writeln(reserve);
  if (m[reserve] mod 2 = 0) and (reserve = 30) then
  begin
    writeln('Все числа чётные. Искомая последовательность не существует');
    goto metka;
  end;
  s:=M[reserve]; {Сумма элементов текущей последовательности пока что равна первому нечётному элементу}
  kmax:=0; {Наибольшая длина последовательности}
  for i:=reserve+1 to n do {Перебираем все элементы, начиная с первого нечётного}
    begin
      if (m[i] mod 2 = 1)
        then {Если текущее число всё ещё нечетно}
          begin
            s:=s+m[i]; {Увеличиваем сумму последовательности}
            k:=k+1 {Увеличиваем счётчик длины последовательности}
          end
        else {Если встретилось четное число}
          begin
            if k>kmax then {Проверяем, не является ли полученная последовательность длиннее нашего максимума}
              begin {Если да:}
                kmax:=k; {Запоминаем новую длину последовательности}
                reserve:=s {Запоминаем сумму её элементов}
              end;
            k:=0; {Устанавливаем длину новой последовательности равной 0}
            s:=0  {Сумма элементов этой последовательности тоже пока что = 0}
          end;
    end;
  if k>kmax then  {Если самая длинная последовательность находится в конце массива, проверим ещё раз текущий максимум}
    begin
      kmax:=k;
      reserve:=s
    end;
  writeln('самая длинная последовательность нечётных чисел состоит из ',kmax,' элементов');
  writeln('и сумма этой последовательности равна ',reserve);
metka: end.


Ответить

Другие вопросы из категории

Однажды 5 ребят(Юра, Толя, Алеша,Коля и Витя) из Москвы,Питера,Новгорода,Перми и Томска собрались за круглым столом.Москвич сидел между Томичем и

Витей, Питеровец между Юрой и Толей,напротив Питеровца сидели Пермк и Алеша. Коля не был никогда в Питере.Юра не был в Москве и Томске.А Томич с Толей регулярно переписываются.В каком городе живет каждый из мальчиков?

КАК В QBasic обозначается корень

Вот в степень возвести ^ этот знак, а корень?
Мне говориле что писать:sqr,qsrt,exp, и все 3 варианта неподходят, может пишу что то нетак, привидите примеры , а запишу проверю позязя :)

Компьютерный вирус А заполняет 1 Гбайт за один месяц,вирус В заполняет 1 Гбайт за два месяца,вирус С заполняет 1 Гбайт за три месяца,вирус D заполняет 1

Гбайт за шесть месяцев.На компьютере одновременно обнаружены сразу все четыре вируса.Сколько Гбайт они заполнят за один месяц?

Читайте также

1) Дан

целочисленный массив из 30 элементов. Элементы массива могут принимать значения
от

0 до 1000. Опишите на русском языке или на одном из языков программирования
алгоритм, который находит и выводит среднее арифметическое всех элементов
массива, имеющих нечётное значение. Гарантируется, что хотя бы один такое
элемент в массиве есть.

помогите плиз)

Дан целочисленный массив из 31 элемента, в котором записаны значения температуры воздуха в марте. Элементы массива могут принимать значения от (-20) до 20. Опишите на русском языке и на языке Паскаля алгоритм, который подсчитывает и выводит среднюю температуру почетным дням месяца.

Напишите программу, которая подсчитывает количество двузначных чисел в заданной последовательности натуральных чисел.Программа получает на вхо

д количество чисел в последовательности, а затем сами числа.Количество чисел не превышает 1000. Введённые числа не превышают 30 000.Программа должна вывести одно число – количество двузначных чисел в заданной последовательности натуральных чисел.

Дан целочисленный массив из 30 элементов. Элементы могут принимать значения от 160 до 200 ­– рост учащихся выпускного класса. В баскетбольную команду бе

рут тех, чей рост не менее 180 см. Опишите на русском языке или на одном из языков программирования алгоритм, который подсчитывает и выводит минимальный рост игрока баскетбольной команды. Гарантируется, что хотя бы один ученик играет в баскетбольной команде.Нужно паскаль

Дан целочисленный массив из 30 элементов. Элементы могут принимать значения от 0 до 100 – баллы, полученные на ЕГЭ. Опишите на русском языке или

на одном из языков программирования алгоритм, который подсчитывает и выводит средний балл учащихся, сдавших экзамен (получивших оценку более 20 баллов). Гарантируется, что хотя бы один ученик в классе успешно сдал экзамен.



Вы находитесь на странице вопроса "Задан массив натуральных чисел размером 30 элементов.Элементы массива могут принимать значения от 1 до 1000.Напишите программу в паскале нахождения и", категории "информатика". Данный вопрос относится к разделу "5-9" классов. Здесь вы сможете получить ответ, а также обсудить вопрос с посетителями сайта. Автоматический умный поиск поможет найти похожие вопросы в категории "информатика". Если ваш вопрос отличается или ответы не подходят, вы можете задать новый вопрос, воспользовавшись кнопкой в верхней части сайта.