|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.11.2009, 20:06 | #1 |
Регистрация: 13.10.2009
Сообщений: 4
|
Одномерный массив в Паскале
Помогите, пожалуйста, с задачкой в Паскале. Мне ее нужно сдать в понедельник (9 ноября):
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1.максимальный по модулю элемент массива; 2.сумму элементов массива, расположенных между первым и вторым положительными элементами. Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных. У меня только нормально получилось сделать первый пункт, а второй пункт нормально не считается. Вот мой листинг: PROGRAM KR; uses crt; var n,i,j:integer;{i - scetchic chikla; n - ielementi massiva; j - poriadkovii nomer maximal'nogo po modyliy ielementa} max,sum,b:real;{max - maximal'nii ielement; sum - symma; b - vspomogatel'naia peremennaia} a:array [1..100] of real; begin clrscr; {vvod razmernosti massiva} writeln ('Vvedite razmernost massiva: '); readln (n); {Vvod massiva} begin writeln; writeln (' Vvedite ielementi massiva '); for i:=1 to n do readln (a[i]); end; writeln; {poisc maximal'nogo po modyliy ielementa massiva} max:=a[i]; j:=1; for i:=2 to n do begin if abs(a[i])>=abs(max) then begin max:=a[i]; j:=i; end; end; writeln; {vsyavka pystoi stroki} writeln ('maximalnii po moduliy ielement s poriadkovim nomerom ',j,' raven ',max:6:4); {Visxisleniie symmi ielementov mezdy pervim i vtorim polozitel'nimi ielementami massiva} sum:=0; j:=1; for i:=1 to n do begin if (a[i]>0) and (j=1) then begin while a[i+1]<=0 do begin i:=i+1; sum:=sum+a[i]; end; j:=j+1; end; end; writeln; writeln ('Symma ielementov mezdy pervim i vtorim polozitelnimi ielementami = ',sum:6:4); {peremechenie vsex 0 v konez massiva} writeln; writeln ('Otsortirovannii massiv, v kotorom ielementi, ravnie 0, naxodiatsia v konze:'); for i:=1 to n do begin j:=i; while (j<=n) do begin b:=a[i+1]; a[i+1]:=0; a[j]:=b; j:=j+1; end; end; {vivod polyshennogo massiva} writeln; for i:=1 to n do writeln (a[i]:6:2); repeat until keypressed; {ozidanie nazatiia na klawishy} end. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Одномерный массив (СИ) | ManInBlack | Помощь студентам | 8 | 08.06.2013 17:43 |
задачи на одномерный массив в Паскале | Enyasha | Помощь студентам | 2 | 25.05.2009 20:10 |
Одномерный массив | xxxPascalxxx | Помощь студентам | 3 | 18.01.2009 15:23 |
Одномерный массив | Sirega | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 27.11.2008 21:21 |