6 / 6 / 3
Регистрация: 04.10.2009
Сообщений: 202
1

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

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

Author24 — интернет-сервис помощи студентам
Плиз помогите только начинаю программировать!!! Нужно реализовать на 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 чисел в массиве сколько чисел в последовательности где наибольшее число нулей идущих подряд ...

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

9
localhost
58 / 58 / 9
Регистрация: 02.09.2009
Сообщений: 170
07.12.2009, 00:38 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
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
Почетный модератор
64305 / 47602 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
07.12.2009, 07:14 3
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 4
Цитата Сообщение от Puporev Посмотреть сообщение
И вообще абсолютно неправильная программа. Зачем такую чушь публиковать? Вы бы сначала прогнали ее и посмотрели, что она выдает и выдает ли вообще что-то.
А я почему то кроме того что ввод элементов до n-1 больше ошибок не увидел, эффективность конечно хромает, но должно работать правильно
0
Почетный модератор
64305 / 47602 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
07.12.2009, 07:29 5
Лучший ответ Сообщение было отмечено 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 6
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
Почетный модератор
64305 / 47602 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
07.12.2009, 07:36 7
mamedovvms, Я прогнал программу предыдущую, выдает неправильно, потом уже увидел, что на 1 элемент меньше введено, алгоритм нормальный, только ноли не являются положительными числами, их нужно убрать.

Добавлено через 1 минуту
mamedovvms, Насчет переменной j ты прав. Это я фрагмент из другой программы выдернул, там это нужно было.
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
07.12.2009, 10:18 8
Цитата Сообщение от mamedovvms Посмотреть сообщение
эффективность конечно хромает
извините что так поздно спрашиваю, (спал кусочек), но вот вопрос следующий неужели то что написано (если убрать вполне очевидные описки), хромает на эффективность? Не придираюсь ни в коем случае, но все же интересно узнать что с эффективностью? (опять же если убрать вполне очевидные описки) Или же под хромотой Вы имели ввиду описки?
0
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
07.12.2009, 10:47 9
Цитата Сообщение от 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 10
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
07.12.2009, 20:49
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.12.2009, 20:49
Помогаю со студенческими работами здесь

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

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

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

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


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

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

Новые блоги и статьи
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru