|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
![]() |
|
Опции темы | Опции просмотра |
![]() |
#1 (permalink) |
Banned
Регистрация: 18.11.2012
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]() |
![]() |
![]() |
![]() |
|
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Возможно такое, что проблема уже решена в одной из аналогичных тем Нужна помощь в решении задачи Pascal Прошу помощи в решении задач в Pascal Помогите найти ошибку в решении задачи с массивом |
![]() |
#2 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,750
Записей в дневнике: 71
Сказал(а) спасибо: 162
Поблагодарили 200 раз(а) в 84 сообщениях
Репутация: 74843
|
![]()
Так как вы не указали язык программирования, даю алгоритм решения в общем виде:
Сначала заполняем массив значениями Потом определяем, отсортирован ли массив по возрастанию, для этого в цикле сравниваем попарно рядом стоящие элементы массива. Тут же можно подсчитывать и сумму всех элементов. Если в парах все последующие элементы больше всех предыдущих - переходим к поиску первого положительного элемента и следующему за ним присваиваем значение подсчитанной суммы; если же хоть одна пара элементов массива не соответствует критерию "по возрастанию" - переходим к сортировке массива по возрастанию. Так как вы не указали метод сортировки, то можно воспользоваться наиболее популярным - "пузырьковой сортировкой". |
![]() |
![]() |
![]() |
#3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]()
Да уж - сдерживаюсь из последних сил, чтобы не начать попросту удалять запросы без указания языка программирования. До чего надоело! Потому что воспринимаю подобные сообщения прежде всего, как свидетельство неуважения, если не сказать наплевательского отношения к нам.
Но пока держусь. |
![]() |
![]() |
![]() |
#5 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,750
Записей в дневнике: 71
Сказал(а) спасибо: 162
Поблагодарили 200 раз(а) в 84 сообщениях
Репутация: 74843
|
![]()
Не вижу вашего прощения на паскале
![]() |
![]() |
![]() |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
#7 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]()
Тогда, прошу прощения, но, например, так:
Код:
Const N=24; Type Ar=Array[1..N+1] of Integer; Var A:Ar; i:Integer; b:boolean; Procedure Work_with_Array(B:Ar;var B1:Ar; Var Bb:boolean); var bb1:boolean; Ib,Jb:Byte; Sum,D:Integer; begin Sum:=0; bb1:=true; Jb:=0; For Ib:=1 to N-1 do begin Inc(Sum,B[Ib]); If B[Ib]>B[Ib+1] then bb1:=false; If (B[Ib]>0) and (Jb=0) then Jb:=Ib; end; If bb1 then begin Inc(Sum,B[N]); For Ib:=N downto Jb+1 do B[Ib+1]:=B[Ib]; B[Jb+1]:=Sum; end else For Ib:=1 to N-1 do For Jb:=1 to N-Ib do If B[Jb]>B[Jb+1] then begin D:=B[Jb]; B[Jb]:=B[Jb+1]; B[Jb+1]:=D; end; B1:=B; bb:=bb1; end; Begin Randomize; Writeln('Var_1 (ordered array)'); Writeln; Writeln('Initial array:'); For i:=1 to N do begin A[i]:=i-(N div 4); Write(A[i]:4); end; Writeln; Writeln('Array after processing:'); Work_with_Array(A,A,b); If b then For i:=1 to N+1 do Write(A[i]:4); Writeln; Writeln; Writeln; Writeln('Var_2 (disordered array)'); Writeln; Writeln('Initial array:'); For i:=1 to N do begin A[i]:=-(N div 4)+Random(N); Write(A[i]:4); end; Writeln; Writeln('Array after processing:'); Work_with_Array(A,A,b); If not(b) then For i:=1 to N do Write(A[i]:4); Readln; End. |
![]() |
![]() |
![]() |
#8 (permalink) |
Banned
Регистрация: 18.11.2012
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]()
Спасибо большое за помощь, но дело в том, что операцию Procedure я не проходил, а наш преподаватель очень придирчив к тому что если я решу задачу с помощью операций, которые мы не проходили она не зачтёт работу к сожалению=(
|
![]() |
![]() |
![]() |
#10 (permalink) |
Banned
Регистрация: 18.11.2012
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]()
Если что я ещё зелёный в этом так что пока не могу решать без помощи задачи такой сложности( как и вся моя группа)(((
|
![]() |
![]() |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
Опции темы | |
Опции просмотра | |
|
|