С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
6 / 6 / 3
Регистрация: 04.10.2009
Сообщений: 202

Наибольшее число идущих подряд положительнных элементов в массиве

06.12.2009, 23:34. Показов 3891. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Плиз помогите только начинаю программировать!!! Нужно реализовать на Pascale
Определить наибольшее число идущих подряд положительнных элементов в массиве А.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.12.2009, 23:34
Ответы с готовыми решениями:

Подсчитать наибольшее число идущих в массиве подряд одинаковых элементов
4) Имя входного файла: z571.in Имя выходного файла: z571.out Дана целочисленная таблица A. Подсчитайте наибольшее число идущих в ней...

Целочисленный массив 1:100, подсчитать наибольшее число идущих в ней подряд одинаковых элементов
И еще одна...Упорядоченный по невозрастанию массив преобразовать в упорядоченный по возрастанию,оставив по одному в каждой группе...

наибольшее число нулей идущих подряд
100 чисел в массиве сколько чисел в последовательности где наибольшее число нулей идущих подряд Помогите пожалуйста решить!

9
localhost
 Аватар для Wassago
58 / 58 / 9
Регистрация: 02.09.2009
Сообщений: 170
07.12.2009, 00:38
Вот Ваше решение
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
Uses crt;
const n=20;
var a:array[1..n] of integer;
    i,temp,max:integer;
begin
  temp:=0;
  max:=0;
  for i:=1 to n-1 do
  begin
    a[i]:=random(10)-5;
    write(a[i],' ');
  end;
  
  for i:=1 to n do
  begin
    if a[i]>=0 then
      inc(temp);
    if temp>max then
      max:=temp;
    if a[i]<0 then
      temp:=0
  end;
  
writeln;
writeln('Result:=',max)
end.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
07.12.2009, 07:14
Wassago, Почему ты массив создаешь на 1 меньше?
Pascal
1
for i:=1 to n-1 do
И вообще абсолютно неправильная программа. Зачем такую чушь публиковать? Вы бы сначала прогнали ее и посмотрели, что она выдает и выдает ли вообще что-то.
0
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
07.12.2009, 07:26
Цитата Сообщение от Puporev Посмотреть сообщение
И вообще абсолютно неправильная программа. Зачем такую чушь публиковать? Вы бы сначала прогнали ее и посмотрели, что она выдает и выдает ли вообще что-то.
А я почему то кроме того что ввод элементов до n-1 больше ошибок не увидел, эффективность конечно хромает, но должно работать правильно
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
07.12.2009, 07:29
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

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
uses crt;
var a:array[1..100] of integer;
    n,i,k,j,max:integer;
begin
clrscr;
write('Размер массива n=');
readln(n);
writeln('Введите ',n,' элементов массива:');
for i:=1 to n do
 begin
  write('a[',i,']=');
  readln(a[i]);
 end;
clrscr;
writeln('Массив:');
for i:=1 to n do
write(a[i],' ');
writeln;
max:=0;
i:=1;
while i<=n do
if a[i]>0 then
  begin
   k:=0;j:=i;
   while (a[j]>0)and(j<=n) do
    begin
     k:=k+1;
     j:=j+1;
    end;
   if k>max then max:=k;
   i:=i+k+1;
  end
else i:=i+1;
writeln('Наибольшее число положительных подряд=',max);
readln
end.
0
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
07.12.2009, 07:34
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
while i<=n do
if a[i]>0 then
  begin
   k:=0;
   while (a[i]>0)and(i<=n) do
    begin
     k:=k+1;
     i:=i+1;
    end;
   if k>max then max:=k;
   i:=i+1;
  end
else i:=i+1;
можно сделать так без переменной j, на мой взгляд так проще, но кому как
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
07.12.2009, 07:36
mamedovvms, Я прогнал программу предыдущую, выдает неправильно, потом уже увидел, что на 1 элемент меньше введено, алгоритм нормальный, только ноли не являются положительными числами, их нужно убрать.

Добавлено через 1 минуту
mamedovvms, Насчет переменной j ты прав. Это я фрагмент из другой программы выдернул, там это нужно было.
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
07.12.2009, 10:18
Цитата Сообщение от mamedovvms Посмотреть сообщение
эффективность конечно хромает
извините что так поздно спрашиваю, (спал кусочек), но вот вопрос следующий неужели то что написано (если убрать вполне очевидные описки), хромает на эффективность? Не придираюсь ни в коем случае, но все же интересно узнать что с эффективностью? (опять же если убрать вполне очевидные описки) Или же под хромотой Вы имели ввиду описки?
0
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
07.12.2009, 10:47
Цитата Сообщение от Inadequate Посмотреть сообщение
извините что так поздно спрашиваю, (спал кусочек), но вот вопрос следующий неужели то что написано (если убрать вполне очевидные описки), хромает на эффективность? Не придираюсь ни в коем случае, но все же интересно узнать что с эффективностью? (опять же если убрать вполне очевидные описки) Или же под хромотой Вы имели ввиду описки?
с удовольствием Вам отвечу, на мой взгляд вот в этом куске кода хромает эффективность
Pascal
1
2
3
4
5
6
 if a[i]>=0 then
      inc(temp);
    if temp>max then
      max:=temp;
    if a[i]<0 then
      temp:=0;
то есть не стоит каждый раз при положительном элементе делать вот это
Pascal
1
2
if temp>max then
      max:=temp;
то есть, по моему, было бы эффективнее написать так
Pascal
1
2
3
4
5
6
7
8
if a[i]>=0 then
      inc(temp);
    if a[i]<0 then
     begin
      if temp>max then
      max:=temp;    
      temp:=0;
     end;
1
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
07.12.2009, 20:49
mamedovvms, спасибо что так подробно ответили. Только вот всё делается еще проще и две проверки можно заменить else
Pascal
1
2
3
4
5
6
7
    if a[i]>=0 then
      inc(temp)
    else
    begin
      if temp>max then
        max:=temp;
      temp:=0;
спросил я потому что парню этот алгоритм объяснял я(правда на пальцах) но всё же... Но тем не менее думаю что вариант с переделанными описками будет здесь не лишним
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
uses
  crt;
const
  n=20;
var
  a:array[1..n] of integer;
  i,temp,max:integer;
begin
  temp:=0;
  max:=0;
  for i:=1 to n do
  begin
    a[i]:=random(10)-5;
    write(a[i],' ');
  end;
  writeln;
  for i:=1 to n do
    if a[i]>=0 then
      inc(temp)
    else
    begin
      if temp>max then
        max:=temp;
      temp:=0;
    end;
  writeln('Result:=',max)
end.

Не по теме:

Wassago, не надо обижаться на Puporev'a я думаю, что он просто немножко погарячился... Каждый здесь совершает время от времени ошибки, и я, и Puporev, и mamedovvms и любой другой участник форума. Важно делать выводы из этих ошибок и двигаться дальше.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.12.2009, 20:49
Помогаю со студенческими работами здесь

Подсчитать наибольшее число букв «а» идущих подряд в данной последовательности
Решите пожалуйста эти задачи . Очень нужны. 1. Дана последовательность из n символов. Известно, что в последовательности имеется хотя бы...

Определить какое наибольшее число подряд идущих купе полностью свободны
В плацкартном вагоне 54 места, пронумерованных числами от 1 до 54. Вагон разбит на 9 купе. Первые 36 мест расположены по левую сторону от...

В одномерном массиве вычислить максимальное число подряд идущих положительных чисел
1). В одномерном массиве вычислить максимальное число подряд идущих положительных чисел, не превышающих числа А и имеющих в своем составе...

Дан массив А, состоящий из n натуральных чисел. Определите максимальное число идущих подряд элементов, равных
Дан массив А, состоящий из n натуральных чисел. Определите максимальное число идущих подряд элементов, равных 1.

Найти наибольшее количество идущих подряд цифр
Дан текст . Найти наибольшее количество идущих подряд цыфр . Добавлено через 17 часов 15 минут Я думаю так. uses crt; var ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru