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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2009, 16:59   #1
AnL
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 10
По умолчанию Одномерный массив(Паскаль). Упростить код

Помогите упростить написаный код программы

Задача:
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1. Сумму отрицательных элементов массива.
2. Произведение элементов массива, расположенных между максимальным
и минимальным элементами.
3. Упорядочить элементы массива по возрастанию.

Код:
program lab5;
const n1=100;
type massiv=array[1..n1] of integer;
var i,j,n,m,imax,imin,sort,h,p,sum:integer;
a,b:massiv;
begin
  writeln('vvedi kolichestvo elementov massiva');
  read(n);
  writeln('vvedite elementy massiva');
  for i:=1 to n do
    begin
     read(a[i]);
    end;
   sum:=0;
   imin:=1;
   imax:=1;
   p:=1;
   j:=1;
  for i:=1 to n do
  begin
     if a[i]<0 then
     sum:=sum+a[i];
     if a[imin]>a[i] then
     imin:=i;
     if a[imax]<a[i] then
     imax:=i
  end;
  for i:=1 to n  do
  begin
         if (imin<imax)and(i<imax)and(i>imin)then
                begin
                         b[j]:=a[i];
                         write(b[j]);
                      j:=j+1;
                 end;
         if (imin>imax)and(i>imax)and(i<imin)then
         begin
          b[j]:=a[i];
          write(b[j]);
          j:=j+1;
         end;
   end;
   for m:=1 to j-1 do
    begin
          p:=p*b[m];
    end;

 writeln('j ',j-1);
  writeln('summa ',sum);
  writeln('min ', a[imin]);
  writeln('max ',a[imax]);
  writeln('proizv ',p);
  i:=1;
for h:=1 to n*n do
for i:=1 to n-1 do
if a[i]>a[i+1] then
begin
sort:=a[i+1];
a[i+1]:=a[i];
a[i]:= sort;
end;
write('vporiadke-  ');
for i:=1 to n do
write(a[i],' ');
readln;
end.
AnL вне форума Ответить с цитированием
Старый 17.12.2009, 01:37   #2
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Держи
Код:
program zad1;
type mas=array[1..10] of integer;
var a:mas;
y,p,n,i,sum,min,max,proizv:integer;
begin
writeln('введите кол-во элементов');
readln(n);
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
for i:=1 to n do
if a[i]<0 then
sum:=sum+a[i];
max:=a[1];
min:=a[1];
for i:=2 to n do
begin
if min>a[i] then
min:=a[i];
if max<a[i] then
max:=a[i];
end;
proizv:=1;
for i:=max downto min+1 do
proizv:=proizv*a[i];
for y:=1 to n do
for i:=1 to n-1 do
if a[i]>a[i+1] then
begin
p:=a[i];
a[i]:=a[i+1];
a[i+1]:=p;
end;
for i:=1 to n do
write(a[i],'  ');
writeln('произведение между макс и мин элементами равно ',proizv);
if sum=0 then
writeln('отриц элементов нет')
else writeln('сумма отриц элементов равна  ',sum);
end.
Если это тебе как-то поможет буду рад
Базиля вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив, паскаль. ene21 Помощь студентам 1 02.10.2009 14:39
одномерный массив в Си ! Исправьте код! osichev Помощь студентам 3 04.06.2009 17:14
паскаль!одномерный массив игорек фролоff Помощь студентам 1 30.05.2009 18:28
Паскаль. Одномерный массив deceiver Помощь студентам 7 21.03.2009 15:12
ПАСКАЛЬ, одномерный массив (Kate) Помощь студентам 2 23.11.2008 15:06