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

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

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

> Программа завершает работу при выполнении
сообщение
Сообщение #1





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

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


В этой задаче при вводе всех одинаковых элементов она завершается. Что не верно? Помогите?
Код

const
 MaxSize=100;
var
 A: array[1..MaxSize] of integer; {Массив элементов}
 I,
 MinElem,  {Минимальный искомый элемент}
 MinElemN,    {Сколько раз встретился этот элемент}
 GranElem,    {Граничный минимальный элемент.
 Требуется в случае если в первом поиске ElemN>1}
 MaxN: integer;  {Количество элементов в массиве A}

begin
{Ввод массива}
writeln('Найти минимальный элемент, встречающийся в массиве один раз');
repeat
 write('Задайте число элементов в массиве <1..',MaxSize,') ');
 readln(MaxN);
 if (MaxN <= 0) or (MaxN > MaxSize) then
 writeln('Вы ошиблись! Повторите!');
until (MaxN > 0) and (MaxN <= MaxSize);
for  I := 1 to MaxN do
 begin
 writeln('Введите числа:');
 for i := 1 to MaxN do
  begin
   write(i:4,': ');
   readln(A[i]);
  end;
    {Первоначальный поиск находит минимальный элемент MinElem. Здесь же проверка,
    однократно ли он встречается в массиве.
    Если элемент встречается неоднократно, повторный поиск.
    Теперь в поиске участвуют только элементы большие, чем GranElem с учетом знака}
    MinElem:=A[1];
    for i:=2 to MaxN do
    if A[i]<MinElem then
    MinElem:=A[i];
    for i:=1 to MaxN do
 if A[i]=MinElem then
 MinElemN:=MinElemN+1;
    {Вывод результата если минимальный элемент только однажды}
    if MinElemN>1 then
 begin {если с первого раза не нашли}
 {Пока "как бы минимальный" элемент встречается более одного раза, повторяем.}
 while MinElemN > 1  do
  begin
   writeln('Отбрасываем промежутчный минимальный элемент ',MinElem);
   MinElemN:=0;
   GranElem:=MinElem;
   MinElem:=MAXINT;
   {"Двойные" элементы не участвуют в поиск, они отсекаются условием  A[i]>GranElem }
   for i:=1 to MaxN do
   if (A[i]<MinElem) and (A[i]>GranElem) then
   MinElem:=A[i];
   for i:=1 to MaxN do
   if A[i]=MinElem then
   MinElemN:=MinElemN+1;
  end; {while}
    end; {Для условия "если с первого раза не нашли"}
    writeln('Минимальный элемент равен ',MinElem);
    readln;
 end;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2





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

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


Большое спасибо за ответ!
Объясните почему при вводе всех одинаковых чисел выводится 32767. Какова теория этого ывода на экран (ну типа для тех кто в танке smile.gif )
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 





- Текстовая версия 23.11.2025 6:38
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name