Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2009, 20:06   #1
Masha_
 
Регистрация: 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.
Masha_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив (СИ) 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