profile
Размещено 4 года назад по предмету Информатика от Астрa

Паскаль. Данная программа работает, но только при некоторых значениях a[i]. Я думаю, что дело в этом условии (a[j])>(a[i]). Если a[j] примет отрицательное значение, то в ответе выйдет "не найдено", так же будет выведено не найдено если первое число в массиве не удовлетворяет условию(a[i] mod 2=0) and (a[i]>0), но является самым маленьким. Я понимаю почему, помогите исправить.


const
n=8;
var a:array[1..n] of integer;
j,i:integer;
begin
for i:=1 to n do
read(a[i]);
j:=1;
for i:=1 to n do
begin
if ((a[j])>(a[i])) and (a[i] mod 2=0) and (a[i]>0) then
j:=i
end;
if (a[j] mod 2=0) and (a[j]>0) then
write(a[j])
else
write('не найдено');
end.

  1. Ответ на вопрос
    Ответ на вопрос дан Аккаунт удален
    const
      n = 8;
      nmax = 32767;

    var
      a: array[1..n] of integer;
      i, t, min: integer;

    begin
      min := nmax;
      for i := 1 to n do
      begin
        Read(t); a[i] := t;
        if (t > 0) and (t mod 2 = 0) then
          if min > t then min := t
      end;
      if min <> nmax then
        Writeln('Минимальный положительный четный элемент равен ', min)
      else
        Writeln('В массиве нет четных положительных элементов')
    end.

    Тестовое решение:
    353 638 -1000 -452 320 -18 19 0
    Минимальный положительный четный элемент равен 320


    1. Ответ на вопрос
      Ответ на вопрос дан Астрa
      Можете мне в сообщениях еще про if min <> nmax then пояснить?
    2. Ответ на вопрос
      Ответ на вопрос дан Астрa
      я не поняла
    3. Ответ на вопрос
      Ответ на вопрос дан Астрa
      а программа теперь получилась, спасибо)
    4. Ответ на вопрос
      Ответ на вопрос дан Астрa
      const
      n=8;
      var a:array[1..n] of integer;
      j,k,i:integer;
      begin
      for i:=1 to n do
      read(a[i]);
      k:=1001;
      j:=1;
      for i:=1 to n do
      begin
      if (a[i]>0) and (a[i] mod 2=0) then
      if a[j]<k then
      j:=i
      end;
      if (a[j])<>k then
      write(a[j])
      else
      write('не найдено');
      end.
    5. Ответ на вопрос
      Ответ на вопрос дан Аккаунт удален
      Первоначально min := nmax; Проверка if min <> nmax then ... делается, чтобы узнать, было ли изменено первоначальное значение min. Если было - то минимум найден.
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.