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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2012, 20:42   #1
lolwto
Пользователь
 
Регистрация: 02.12.2012
Сообщений: 50
По умолчанию Обработка одномерных массивов

• Нахождение в массиве минимального элемента среди положительных и его номера в массиве.
• Нахождение произведения элементов больших 1 но меньших 5.
• Нахождение среднего арифметического значения всех элементов массива.
• Расположить массив в порядке убывания.

помогите пожалуйста
lolwto вне форума Ответить с цитированием
Старый 02.12.2012, 21:43   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Первые три задания:

Код:
if (mas[1]>1) and (mas[1]<5) then pr:=mas[1] else pr:=1;
if mas[1]>0 then num:=1 else num:=0;
sum:=mas[1];
for i:=2 to n do begin
  if (num=0) or ((mas[i]>0) and (mas[i]<mas[num])) then num:=i;
  if (mas[i]>1) and (mas[i]<5) then pr:=pr*mas[i];
  sum:=sum+mas[i];
end;
sum:=sum/n;
WriteLn('минимальный элемент: ',mas[num]:2:2,' его номер: ',num);
WriteLn('Произведение элементов: ',pr:2:2);
WriteLn('Среднее: ',sum:2:2);
Четвертое - любая сортировка, какую найдете, хотя бы тот же пузырек.

UPDATE Немного подправил код, так как на свежую голову обнаружил мелкие ошибки
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 03.12.2012 в 09:36.
Sciv вне форума Ответить с цитированием
Старый 03.12.2012, 00:02   #3
isqoff
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 12
По умолчанию

4-я
Код:
uses Crt;
var
   i,j,buf,n:integer;
   a:array[1..10]of integer;
Begin
    n:=10;
    for i:=1 to n do
      begin
           a[i]:= i;
           write(a[i]:3);
      end;

    for i:= 1 to n div 2 do
    begin
        buf:=a[i];
        a[i]:=a[n-i+1];
        a[n-i+1]:=buf;
    end;
    
    writeln;

     for i:=1 to n do
      begin
           write(a[i]:3);
      end;
End.

Последний раз редактировалось isqoff; 03.12.2012 в 00:04.
isqoff вне форума Ответить с цитированием
Старый 03.12.2012, 09:14   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

isqoff, что это за кошмарный ужас?! Какое отношение Ваш код имеет к СОРТИРОВКЕ массива?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.12.2012, 09:38   #5
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
акое отношение Ваш код имеет к СОРТИРОВКЕ массива?!
И вообще интересно - на кой ляд она нужна после такого заполнения?

Код:
    for i:=1 to n do
      begin
           a[i]:= i;
           write(a[i]:3);
      end;
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 03.12.2012, 09:47   #6
MihalNik
МегаМодератор
СуперМодератор
 
Регистрация: 27.11.2012
Сообщений: 5,657
По умолчанию

Похоже это хитрый план обмана преподавателя
Благими намерениями устлана дорога на programmersforum.ru
MihalNik вне форума Ответить с цитированием
Старый 03.12.2012, 09:51   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Похоже это хитрый план обмана преподавателя
похоже на хитрый план подставы TC, прийдёт он сдавать работу, а тут такая засада! И всё, свободен!


Цитата:
И вообще интересно - на кой ляд она нужна после такого заполнения?

как раз после подобного упорядоченного заполнения эта перестановка порядка и будет работать. Во всех других случаях инвертирование порядка ничего не даст!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.12.2012, 09:55   #8
MihalNik
МегаМодератор
СуперМодератор
 
Регистрация: 27.11.2012
Сообщений: 5,657
По умолчанию

При большом таланте даже такое умудряются сдать
А что, ТС может предполагать, что ему не понадобится еще дополнительных телодвижений???
Благими намерениями устлана дорога на programmersforum.ru
MihalNik вне форума Ответить с цитированием
Старый 03.12.2012, 22:53   #9
isqoff
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 12
По умолчанию

в задании спрашивается :
расположить массив в порядке убывания, я привёл пример.

что не так? или я не правильно что-то понял?Объясните

подставте вместо a[i]:=i a[i]:= Random(10)+1;

инвертирование происходит код работает

Последний раз редактировалось isqoff; 03.12.2012 в 23:02.
isqoff вне форума Ответить с цитированием
Старый 03.12.2012, 23:14   #10
isqoff
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 12
По умолчанию

понял я расположил индексы массива в порядке убывания а не элементы
хотя там толком в задании и не написано
исправляюсь вот код:
Код:
   uses Crt;
var
   i,j,buf,n:integer;
   a:array[1..10]of integer;
Begin
    n:=10;
    for i:=1 to n do
      begin
           a[i]:= Random(10)+1;
           write(a[i]:3);
      end;
    for i:=2 to 10 do
      for j:= 1 to 9 do
          if a[i]>a[j]
             then begin
                      buf:= a[i];
                      a[i]:=a[j];
                      a[j]:= buf;
                  end;
                  
    writeln;
                  
    for i:=1 to n do
        write(a[i]:3);

End.
isqoff вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка одномерных массивов Катя369919407 Помощь студентам 2 20.01.2012 13:59
C++обработка одномерных массивов LepreconSTR Помощь студентам 0 08.11.2011 21:12
Обработка одномерных массивов vasya9 Помощь студентам 0 07.11.2011 22:02
Обработка одномерных массивов на Си/Си++ aka_Kiss Помощь студентам 1 23.11.2009 21:51