IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Максимальный и минимальный элемент массива
PORTUGAL
сообщение 30.12.2005 16:59
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +


Программа нкоректно находит макс и мин, не могу понять в чем проблема!?
Код

VAR  i,maxi,mini,dob,kol:integer;
       a:array[1..4] of integer;
BEGIN
for i:= 1 to 4 do
begin
write('Vvedite chislo N',i,': ');
readln(a[i]);
end;
  maxi:=1;
  mini:=1;
  dob:=1;
  for i:=1 to 4 do
  begin
           if maxi < a[i] then maxi:=i;
           if mini > a[i] then mini:=i;
  end;
       if maxi<mini then
        begin
            i:=maxi; maxi:=mini; mini:=i;
        end;
  for i:=mini  to maxi do
     dob:=dob*a[i];
  Writeln('Dobutok = ',dob);
  readln;
END.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 30.12.2005 17:09
Сообщение #2


Гость






Цитата
не могу понять в чем проблема!?
Ты должен или работать с индексами:
  maxi:=1; mini:=1;
for i:=1 to 4 do begin
if a[maxi] < a[i] then maxi:=i;
if a[mini] > a[i] then mini:=i;
end;

или с элементами:
  maxi:= -maxint; mini:= maxint; { <--- Смотри чему равно в начале !!! }
for i:=1 to 4 do begin
if maxi < a[i] then maxi:=i;
if mini > a[i] then mini:=i;
end;
 К началу страницы 
+ Ответить 
PORTUGAL
сообщение 30.12.2005 17:28
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +


Поменял! всеравно не хочет работать!



VAR i,maxi,mini,dob,kol:integer;
a:array[1..4] of integer;
BEGIN
for i:= 1 to 4 do
begin
write('Vvedite chislo N',i,': ');
readln(a[i]);
end;
maxi:=1;
mini:=1;
dob:=1;
for i:=1 to 4 do
begin
if a[maxi] < a[i] then maxi:=i;
if a[mini] > a[i] then mini:=i;
end;
if maxi<mini then
begin
i:=maxi; maxi:=mini; mini:=i;
end;
for i:=mini to maxi do
dob:=dob*a[i];
Writeln('Dobutok = ',dob);
readln;

END.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 30.12.2005 17:38
Сообщение #4


Гость






А я не телепат, чтобы понять, ЧТО именно ты пытаешься сделать, и какой результат тебе нужно получить... Задание ты не привел, так что...
 К началу страницы 
+ Ответить 
PORTUGAL
сообщение 30.12.2005 17:50
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +


Короче задача такая: нужно найти произведение элементов массива которые находятся между максимальным и минимальным элементами этого массива. Но программа выдает неверный результат!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 30.12.2005 18:05
Сообщение #6


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


При нахождении min и max запоминать также и их индексы
Код
   if a[maxi] < a[i] then maxi:=i;
    if a[mini] > a[i] then mini:=i;

if mini > maxi then
{ поменять их местами }
А затем подсчитать произведение
Код
p:=1;
for i:=mini to maxi
  p:=p*a[i];


Сообщение отредактировано: Ozzя - 30.12.2005 18:06
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
PORTUGAL
сообщение 30.12.2005 18:10
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +


Так я это и делаю! Но прога не работает, вернее работает только выдает неверный результат!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 30.12.2005 18:14
Сообщение #8


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Ты будешь сметяься sad.gif
Но она у тебя прекрасно работает, только что проверил
На каких числах ты проверяшь?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
PORTUGAL
сообщение 30.12.2005 18:40
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +


Точно! Это я торможу а не прога! Просто я проверял результат не включая максимальный и минимальные элементы!
Все спасибо! good.gif

Сообщение отредактировано: PORTUGAL - 30.12.2005 18:42
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 29.04.2024 14:15
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"