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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.12.2009, 00:23   #1
uropb992
Пользователь
 
Регистрация: 30.12.2009
Сообщений: 33
Вопрос Одномерный массив..

Решается судьба зачета(((

Дан одномерный массив, необходимо составить программу обработки массива
Нужно вычислить:
1) максимальный отрицательный элемент массива
2) сумму элементов массива после последнего отрицательного элемента
Изменить порядок следования элементов так, чтобы вначале стояли положительные элементы, а затем отрицательные.

Помогите пожалуйста!!!!!
uropb992 вне форума Ответить с цитированием
Старый 07.01.2010, 12:14   #2
uropb992
Пользователь
 
Регистрация: 30.12.2009
Сообщений: 33
По умолчанию

uses crt;
const n=15;
var a:array[1..50] of integer;
i,j,k:byte;
x:integer;
s,b:real;
begin
clrscr;
randomize;
For i:=1 to n do begin;
a[i]:=random(100)-50;
writeln(a[i]);
end;
writeln;
For i:=1 to n do
if a[i]<0 then b:=a[i];
For i:=1 to n do
if a[i]<0 then
begin
if a[i]>b then
b:=a[i];
end;
writeln(b);
for i:=n downto 1 do
begin
if (a[i]<0) then
s:=s+a[i];
if(a[i]>0) then break;
end;
writeln;
for i:=1 to n do
if a[i]>0 then
begin
k:=k+1;
x:=a[i];
for j:=i downto k+1 do
a[j]:=a[j-1];
a[k]:=x;
end;
Writeln('Наименьший эл-нт= ',b);
writeln('сумма= ',s );
writeln('coptirovka:');
for i:=1 to n do
write(a[i]:3);
end.
uropb992 вне форума Ответить с цитированием
Старый 07.01.2010, 12:15   #3
uropb992
Пользователь
 
Регистрация: 30.12.2009
Сообщений: 33
По умолчанию

Не правильно находит сумму(( помогите найти ошибку!!
uropb992 вне форума Ответить с цитированием
Старый 07.01.2010, 12:47   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Код:
s:=0;
for i:=n downto 1 do
begin
//if (a[i]<0) then
//s:=s+a[i];
if(a[i]>=0) then break
else 
s:=s+a[j];
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 07.01.2010, 12:48   #5
Fantazerishka
Пользователь
 
Регистрация: 23.09.2009
Сообщений: 62
По умолчанию

Код:
For i:=1 to n do begin
a[i]:=random(100)-50;
end;
min:=0;
For i:=1 to n do begin
if (a[i]<0) and (a[i]<min) then begin
min:=a[i];
end; end;
s:=0;
for i:=n downto 1 do begin
if a[i]<0 then begin
j:=i+1;
exit; end; end;
For i:=j to n do begin
s:=s+a[i];
end;
Хм вообщем вот проверь, правда щас без компилятора поэтому возможно где-то ендом ошибся или ещё где. Твой код мой мозг отказался воспринимать много лишнего и непонятного, в частности с типами косяк и если объявляешь массив в 50 элементов то было бы неплохо использовать их все, а ты юзаешь только 15 и т.п...
Fantazerishka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив (СИ) ManInBlack Помощь студентам 8 08.06.2013 17:43
Одномерный массив forl Помощь студентам 3 11.05.2011 12:06
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
одномерный массив Sjava Помощь студентам 7 02.11.2009 10:01
Одномерный массив xxxPascalxxx Помощь студентам 3 18.01.2009 15:23