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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2013, 11:17   #1
Vorobey333
 
Регистрация: 09.04.2013
Сообщений: 7
По умолчанию В заданном массиве A(N), найдите: (Pascal)

Оформление и подключение модуля.
В заданном массиве A(N), найдите:
а) наибольший элемент из отрицательных;
б) наименьший элемент из положительных;
в) второй по величине элемент.

Очень надеюсь на вашу помощь и заранее благодарю.
Vorobey333 вне форума Ответить с цитированием
Старый 09.04.2013, 11:34   #2
netpolice
Форумчанин
 
Аватар для netpolice
 
Регистрация: 14.02.2013
Сообщений: 222
По умолчанию

В чем конкретно проблема? Где ваши наработки?
netpolice вне форума Ответить с цитированием
Старый 09.04.2013, 12:03   #3
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
наибольший элемент из отрицательных;
Код:
maxotr:=0;
i:=1;
while (a[i]>=0) and (i<n) do
inc(i);
if a[i]<0 then maxotr:=a[i];
i:=i+1;
while i<n do begin 
if (a[i]<0) and (a[i]>maxotr) then maxotr:=a[i];
inc(i);
end;
if maxotr<>0 then writeln('Максимальное отрицательное: ',maxotr)
else writeln('Отрицательных в массиве нет');
Цитата:
наименьший элемент из положительных;
аналогично только знаки поменять
Цитата:
второй по величине элемент.
отсортируйте массив по убыванию и возьмите 2 элемент слева
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 09.04.2013, 13:06   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

наибольший элемент из отрицательных;
решение, наверняка, рабочее.

только я бы не стал несколько циклов крутить, в одном всё это можно легко закрутить:
Код:
   MaxOtricatIndex := -1; {ставим индекс МЕНЬШЕ, чем возможный индекс(номер) элемента в массиве }
   for i:=1 to n do
     if a[i]<0 then 
        if  MaxOtricatIndex = -1 then MaxOtricatIndex := i
        else
           if A[i]>A[MaxOtricatIndex] then MaxOtricatIndex := i;
   if MaxOtricatIndex = -1 
         then WriteLn('В массиве вообще нет отрицательных значений!')
         else WriteLn('Максимальное отрицательное равно ',A[MaxOtricatIndex]);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.04.2013, 09:45   #5
Vorobey333
 
Регистрация: 09.04.2013
Сообщений: 7
По умолчанию

Большое спасибо. А можно составить всю программу.
И надо оформить с помощью модуля.
Vorobey333 вне форума Ответить с цитированием
Старый 10.04.2013, 09:49   #6
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
А можно составить всю программу.
И надо оформить с помощью модуля.
можно, составляйте как надо, разрешаю
ну а если вам лень контакты в профиле welcome договоримся обязательно
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 15.04.2013, 10:09   #7
Vorobey333
 
Регистрация: 09.04.2013
Сообщений: 7
По умолчанию

Очень прошу помогите, практику сдавать, а мне ещё другую прогу делать

Вот программка, но она выдает не правильные значение. Помогите исправить!!!
Код:
uses crt;
const nmax=100;
var a:array[1..nmax] of integer;
    n,i,j,imx,imn:byte;
    mx,mx2:integer;
begin
clrscr;
randomize;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Массив:');
imx:=0;
imn:=0;
for i:=1 to n do
 begin
  a[i]:=random(20)-8;
  write(a[i]:4);
  if a[i]<0 then imx:=i;
  if a[i]>0 then imn:=i;
 end;
writeln;
writeln;
if imx=0 then writeln('В массиве нет отрицательных элементов');
if imn=0 then writeln('В массиве нет положительных элементов');
mx:=a[1];
for i:=1 to n do
 begin
  if imx<>0 then
   if (a[i]<0)and(a[i]>a[imx]) then imx:=i;
  if imn<>0 then
   if (a[i]>0)and(a[i]<a[imn]) then imn:=i;
  if a[i]>mx then
   begin
    mx2:=mx;
    mx:=a[i]
   end;
 end;
writeln('Максимальный из отрицательных=',a[imx]);
writeln('Минимальный  из положительных=',a[imn]);
writeln('Второй по величине=',mx2);
readln
end.

Последний раз редактировалось Stilet; 15.04.2013 в 14:34.
Vorobey333 вне форума Ответить с цитированием
Старый 15.04.2013, 13:48   #8
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

а хде модуль та?
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 16.04.2013, 11:10   #9
Vorobey333
 
Регистрация: 09.04.2013
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
а хде модуль та?
Написать бы программку, что бы работала правильно, а потом в модуль заключать.
Vorobey333 вне форума Ответить с цитированием
Старый 16.04.2013, 11:27   #10
netpolice
Форумчанин
 
Аватар для netpolice
 
Регистрация: 14.02.2013
Сообщений: 222
По умолчанию

Цитата:
Вот программка, но она выдает не правильные значение. Помогите исправить!!!
А Вы не могли бы, привести ответ (точнее все что выводит) программа... А то я не вижу ошибок...

Последний раз редактировалось netpolice; 16.04.2013 в 11:29.
netpolice вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ В заданном массиве с(8) переставить элементы basav1k Помощь студентам 2 26.05.2010 19:02
Найдите ошибку в массиве Nataly1992 Помощь студентам 1 20.12.2009 19:21
в заданном массиве вывести все четные числа leysan Помощь студентам 2 09.12.2009 22:08
В заданном массиве чисел упорядочить элементы dolya2007 Общие вопросы C/C++ 0 01.05.2009 02:44
В заданном целочисленном двумерном массиве найти среднее арифметическое в каждой строке Rise Паскаль, Turbo Pascal, PascalABC.NET 3 06.01.2009 00:55