Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
ovrsmk
-1 / 0 / 0
Регистрация: 04.01.2014
Сообщений: 72
1

Подсчитать количество всех, непрерывных последовательностей положительных чисел, длина которых больше 7

03.02.2014, 20:26. Просмотров 1377. Ответов 19
Метки нет (Все метки)

Подсчитать количество всех, непрерывных последовательностей положительных чисел, длина которых больше 7.
Дано:
-Размерность массива: 20.
-Диапазон значений: от -50 до 50.
Помогите, пожалуйста.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2014, 20:26
Ответы с готовыми решениями:

Подсчитать количество непрерывных последовательностей положительных чисел, длина которых больше 7
Подсчитать количество всех, непрерывных последовательностей(подряд идущих чисел, с возрастанием на...

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

Найти количество положительных чисел среди четырёх целых чисел. Если количество положительных чисел больше количества отрицательных,то найти максималь
Найти количество положительных чисел среди четырёх целых чисел. Если количество положительных чисел...

Дан одномерный массив вывести начальные индексы всех непрерывных последовательностей
Дан одномерный массив вывести начальные индексы всех непрерывных последовательностей...

Подсчитать количество пассажиров, у которых больше трех вещей общим весом больше 100 кг
Даны сведения о багаже пассажиров: фамилия, имя, отчество, количество вещей, общий вес. Выяснить,...

19
Cyborg Drone
Модератор
6909 / 3604 / 2615
Регистрация: 17.08.2012
Сообщений: 11,531
03.02.2014, 20:58 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var i, k, p: integer;
    a: array [1..20] of integer;
 
begin
  randomize;
  p := 0;
  k := 0;
  writeln('Array:');
  for i := 1 to 20 do
    begin
      a[i] := random(101) - 50;
      write(a[i]:4);
      if a[i] > 0
        then inc(p)
        else begin
          if p >= 7 then inc(k);
          p := 0
        end
    end;
  if p >= 7 then inc(k);
  writeln;
  writeln('Series of >= 7 positive elements: ', k);
  readln
end.

Не по теме:

Цитата Сообщение от ovrsmk Посмотреть сообщение
Помогите
= сделайте за меня.

0
ovrsmk
-1 / 0 / 0
Регистрация: 04.01.2014
Сообщений: 72
03.02.2014, 21:43  [ТС] 3
А где ты задаешь диапазон значений ( от -50 до 50 )?
0
Cyborg Drone
Модератор
6909 / 3604 / 2615
Регистрация: 17.08.2012
Сообщений: 11,531
04.02.2014, 11:01 4
Здесь.
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
Pascal
1
a[i] := random(101) - 50;
Добавлено через 13 часов 14 минут
Вот так это будет, если массив вводить вручную:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var i, k, p: integer;
    a: array [1..20] of integer;
 
begin
  p := 0;
  k := 0;
  writeln('Enter array:');
  for i := 1 to 20 do
    repeat
      write('a[', i:2, '] = ');
      readln(a[i]);
      if (a[i] < -50) or (a[i] > 50) then writeln('Out of range -50..50, reenter.')
    until (a[i] >= -50) and (a[i] <= 50);
  writeln('Source array:');
  for i := 1 to 20 do
    begin
      write(a[i]:4);
      if a[i] > 0
        then inc(p)
        else begin
          if p >= 7 then inc(k);
          p := 0
        end
    end;
  if p >= 7 then inc(k);
  writeln;
  writeln('Series of >= 7 positive elements: ', k);
  readln
end.
0
04.02.2014, 11:01
ovrsmk
-1 / 0 / 0
Регистрация: 04.01.2014
Сообщений: 72
04.02.2014, 11:20  [ТС] 5
Ты проверяешь числа на положительность, а про последовательности в программе и слова нет. Наставник сказал, что задание сделано неверно.

Добавлено через 16 минут
Последовательность должна состоять из семи положительных чисел. Т. е. 1-7, 7-1 и т. д.
0
Cyborg Drone
Модератор
6909 / 3604 / 2615
Регистрация: 17.08.2012
Сообщений: 11,531
04.02.2014, 11:53 6
Цитата Сообщение от ovrsmk Посмотреть сообщение
Ты проверяешь числа на положительность, а про последовательности в программе и слова нет.
Да ну? Правда, что ль?
Цитата Сообщение от ovrsmk Посмотреть сообщение
Подсчитать количество всех, непрерывных последовательностей положительных чисел, длина которых больше 7
Ну, подсчитывается это дело:
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
Pascal
1
2
3
4
5
6
7
8
if a[i] > 0
 then inc(p)
 else begin
   if p >= 7 then inc(k);
   p := 0
 end;
  //...
 if p >= 7 then inc(k);
p - счётчик длины последвательности, k - счётчик количества последовательностей. И что не так? И, кстати:
Цитата Сообщение от ovrsmk Посмотреть сообщение
Последовательность должна состоять из семи положительных чисел.
Не из семи, а более чем из семи.

Не по теме:

Складывается впечатление, что ни Вы, ни наставник Ваш избытком внимательности не страдаете.


Может быть, Вы неверно поняли наставника? К примеру, возражение в том, что последовательность нужно не генерировать, а вводить вручную? Или, может, что в непрерывной последовательности числа должны идти строго по убыванию или строго по возрастанию, а то и вовсе плюс к этому числа должны быть частью натурального ряда?
Цитата Сообщение от ovrsmk Посмотреть сообщение
Наставник сказал, что задание сделано неверно.
Готов поспорить, что это не так.

Не по теме:

Да, и что-то ко мне закралось одно подозрение... А наставник-то Ваш... Он точно живой человек, не программа?

0
ovrsmk
-1 / 0 / 0
Регистрация: 04.01.2014
Сообщений: 72
04.02.2014, 12:20  [ТС] 7
Числа должны идти подряд. 1 2 3 4 5 6 7 8 к примеру
Я задаю две такие последовательности, а выводит, чтоесть только одна.
0
Puporev
Модератор
58144 / 44230 / 30549
Регистрация: 18.05.2008
Сообщений: 105,907
04.02.2014, 12:32 8
Цитата Сообщение от ovrsmk Посмотреть сообщение
Я задаю две такие последовательности, а выводит, чтоесть только одна.
А между ними есть отрицательные числа?
0
Cyborg Drone
Модератор
6909 / 3604 / 2615
Регистрация: 17.08.2012
Сообщений: 11,531
04.02.2014, 12:38 9
Цитата Сообщение от ovrsmk Посмотреть сообщение
Числа должны идти подряд.
В задании об этом сказано не было.
Цитата Сообщение от ovrsmk Посмотреть сообщение
Я задаю две такие последовательности, а выводит, чтоесть только одна.
В задании указано использование массива... В связи с этим я предположил, что вводится одна последовательность, в которой подсчитывается количество последовательностей (или подпоследовательностей, если угодно) подряд идущих положительных элементов длиной более 7. Может быть, некорректно написано задание?

Не по теме:

Почему "может быть"? Оно и написано некорректно, например, я совсем недавно выяснил, что соседние числа должны отличаться на 1 или -1. Хотя, полной уверенности в том, что я выяснил, нет.


Уточните формат ввода: сколько последовательностей вводится, одна или несколько, если несколько, каков критерий окончания ввода последовательностей (например, какая-либо наперёд заданная последовательность). Ещё, являются ли, например, обе последовательности (2 3 4 5) и (8 7 6 5) правильными? А (1 3 4 6)?
0
Puporev
Модератор
58144 / 44230 / 30549
Регистрация: 18.05.2008
Сообщений: 105,907
04.02.2014, 13:14 10
Решал подобное такому же... здесь
Дан одномерный массив вывести начальные индексы всех непрерывных последовательностей

Добавлено через 17 минут
Кстати здесь нужны последовательности от 8 и больше
Цитата Сообщение от ovrsmk Посмотреть сообщение
длина которых больше 7.
1
Cyborg Drone
04.02.2014, 13:19
  #11

Не по теме:

Да, точно. Если честно, сообщение лениво править было.

0
ovrsmk
-1 / 0 / 0
Регистрация: 04.01.2014
Сообщений: 72
04.02.2014, 14:59  [ТС] 12
Так-с. Вводим массив чисел(20 чисел), среди них нужно найти и вывести кол-во последовательностей чисел(8 подряд идущих). Например:
Массив:
1 2 3 4 5 6 7 8 4 5 6 7 8 9 10 11 2 7 5 3. Тут 2 последовательность, т. е. 1-8 и 4-11. Думаю, что теперь понятно.
0
Puporev
Модератор
58144 / 44230 / 30549
Регистрация: 18.05.2008
Сообщений: 105,907
04.02.2014, 15:05 13
Цитата Сообщение от ovrsmk Посмотреть сообщение
Думаю, что теперь понятно
То что ты в этом не рубишь давно понятно.

Добавлено через 4 минуты
непрерывная последовательность положительных чисел это будет так
-1 5 2 12 6 8 9 3 1 -15 6 3 4 8 1 5 9 2 3 -21
Здесь 2 непрерывных последовательности положительных чисел, длиной более 7, кстати больше их и не может быть, дурацкое ограничение в 20 элементов.
0
ovrsmk
-1 / 0 / 0
Регистрация: 04.01.2014
Сообщений: 72
04.02.2014, 16:00  [ТС] 14
Нужно, что-бы числа шли подряд. мажератар, ты меня слышишь?
0
Puporev
Модератор
58144 / 44230 / 30549
Регистрация: 18.05.2008
Сообщений: 105,907
04.02.2014, 16:02 15
Цитата Сообщение от ovrsmk Посмотреть сообщение
Нужно, что-бы числа шли подряд
Это тебе нужно, а не по заданию.
Когда нужны цепочки идущих подряд, задание звучит по другому.
А за
Цитата Сообщение от ovrsmk Посмотреть сообщение
мажератар
ты получишь от меня по загривку.
0
Новичок
04.02.2014, 16:25
  #16

Не по теме:

Цитата Сообщение от ovrsmk Посмотреть сообщение
мажератар
Слушай тебе помочь люди хотели, не смотря на то что ты ничего не делаешь, а ты тут еще грубишь. Нет чтоб условие нормально написать.
Как запостить тему, чтобы не получить ответ

1
Cyborg Drone
Модератор
6909 / 3604 / 2615
Регистрация: 17.08.2012
Сообщений: 11,531
04.02.2014, 19:00 17
ovrsmk, вот, подрихтовал. Пусть не соответствует заданию, зато так, как Вам нужно.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
var i, k, p, s: integer;
    a: array [1..20] of integer;
 
begin
  writeln('Enter array:');
  for i := 1 to 20 do
    repeat
      write('a[', i:2, '] = ');
      readln(a[i]);
      if (a[i] < -50) or (a[i] > 50) then writeln('Out of range -50..50, reenter.')
    until (a[i] >= -50) and (a[i] <= 50);
  p := 0;
  k := 0;
  s := 0;
  writeln('Source array:');
  for i := 1 to 20 do
    begin
      write(a[i]:4);
      if (i >= 2) and (s = 0) and
         (a[i] > 0) and (a[i - 1] > 0) and
         (abs(a[i] - a[i - 1]) = 1)
        then begin
          s := a[i] - a[i - 1];
          p := 1
        end;
      if (s <> 0) and (a[i] > 0) and (a[i] - a[i - 1] = s)
        then inc(p)
        else begin
          if p >= 8 then inc(k);
          p := 0;
          s := 0
        end
    end;
  if p >= 8 then inc(k);
  writeln;
  writeln('Series of > 7 successive positive elements: ', k);
  readln
end.

Не по теме:

Пожалуйста, мысли свои старайтесь выражать так, чтобы было понятно любому необученному академику. Телепатии не существует. Никому ничего не должно быть понятно. У людей есть предел терпения. Это форум, и никто (может быть, за исключением модераторов) ничего делать не обязан, кроме выполнения правил форума. Будьте терпеливее, выкладывайте свои наработки, тогда и желания помогать Вам будет больше. Врагов здесь нет ввиду того, что за проявление враждебных отношений - снижение репутации с последующим баном. Вот, как-то так.

0
Puporev
Модератор
58144 / 44230 / 30549
Регистрация: 18.05.2008
Сообщений: 105,907
04.02.2014, 19:02 18
Он новую тему создал с измененным условием

Подсчитать количество непрерывных последовательностей положительных чисел, длина которых больше 7
0
ovrsmk
-1 / 0 / 0
Регистрация: 04.01.2014
Сообщений: 72
05.02.2014, 00:11  [ТС] 19
Pascal
1
 if (s <> 0) and (a[i] > 0) and (a[i] - a[i - 1] = s)
Error 79: Integer or real expression expected.
Исправьте пожалуйста.
P.S Полная программа выше.
0
Cyborg Drone
Модератор
6909 / 3604 / 2615
Регистрация: 17.08.2012
Сообщений: 11,531
05.02.2014, 00:35 20
File Edit Search Run Compile Debug Tools Options Window Help
╔═[■]══════════════════════════ \TP\BIN\TEST.PAS ════════════════════════1═[↕]═╗
║ begin ▲
║ write(a[i]:4); ▒
║ if (i >= 2) and (s = 0) and ▒
║ (a[i] > 0) and (a[i - 1] > 0) and ▒
║ (abs(a[i] - a[i - 1]) = 1) ▒
║ then begin ▒
║ s := a[i] - a[i - 1]; ▒
║ p := 1 ▒
║ end; ■
║ if (s <> 0) and (a[i] > 0) and (a[i] - a[i - 1] = s) ▒
║ then inc(p) ▒
║ else begin ▒
║ if p >= 8 then inc(k); ▒
║ p := 0; ▒
║ s := 0 ▒
║ end ▒
║ end; ▒
║ if p >= 8 then inc(k); ▒
║ writeln; ▒
║ writeln('Series of > 7 successive positive elements: ', k); ▒
║ readln ▼
╚══════ 22:39 ════◄■▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒►─┘
F1 Help F2 Save F3 Open Alt+F9 Compile F9 Make Alt+F10 Local menu

a[ 4] = 4
a[ 5] = 5
a[ 6] = 6
a[ 7] = 7
a[ 8] = 8
a[ 9] = 5
a[10] = 10
a[11] = 9
a[12] = 8
a[13] = 7
a[14] = 6
a[15] = 5
a[16] = 4
a[17] = 3
a[18] = 2
a[19] = 1
a[20] = 5
Source array:
1 2 3 4 5 6 7 8 5 10 9 8 7 6 5 4 3 2 1 5

Series of > 7 successive positive elements: 2


У меня всё работает.
0
05.02.2014, 00:35
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2014, 00:35

Найти сумму и количество всех положительных элементов массива, количество чисел = 0 и изменение знака всех чисел
спасибо всем сможет помочь

Нахождение всех последовательностей 3 чисел сумма которых равна n
Одним из этапов задачи является нахождение всех последовательностей 3 чисел сумма которых равна n....

Подсчитать количество последовательностей длины N, состоящих из 0 и 1, в которых никакие две единицы не стоят рядом
(Ссылка на сторонний ресурс удалена) Требуется подсчитать количество последовательностей длины N,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.