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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2011, 15:08   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

сперва программа просит ввести количество элментов.
Потом, после того, как Вы ввели число,
она ждет ввода N элементов (после ввода каждого элемента нажимайте клавишу Enter (ниже обозначена <Enter> )

например:
Цитата:
Введите количество элементов
4 <Enter>
2<Enter>
21<Enter>
12<Enter>
3<Enter>

Исходный:
2 21 12 3
Наибольшее чётное число массива:12
Перед последним end в программе, поставьте оператор readln
чтобы программа не закрывалась сразу, а ждала нажатия клавиши <Enter> для выхода..

вот так:
Код:
  writeln;
  writeln('Наибольшее чётное число массива:', m);
  readln;
end.

Последний раз редактировалось Serge_Bliznykov; 19.05.2011 в 15:11.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.05.2011, 15:16   #12
katya111
Новичок
Джуниор
 
Регистрация: 18.05.2011
Сообщений: 12
По умолчанию

почему при вводе пользователем всех нечётных чисел не выдаётся ошибка?
что для этого нужно дописать?

Последний раз редактировалось katya111; 19.05.2011 в 15:20.
katya111 вне форума Ответить с цитированием
Старый 19.05.2011, 15:59   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я Вам больше скажу. в программе есть ошибка!
если первое число НЕЧЁТНОЕ и ОЧЕНЬ БОЛЬШОЕ, тогда программа его ошибочно выдаст, хотя будут чётные.

Ну и если все числа нечётные, то программа выдаст первое число массива, как ответ.

чтобы этого избежать, прийдётся воспользоваться ещё одной переменной.
Например, так:
Код:
var
...
   BylChet : boolean;
...
begin
....
  writeln('Исходный:');
  for i:=1 to n do
  begin
    write(A[i]:7);
  end;
  BylChet := false; {устанавливаем переменную-"флажок" что пока не было чётных чисел}
  for i := 1 to n do
  begin
     if (A[i] mod 2 = 0) then {нашли чётное} 
       if  BylChet then {уже были чётные, значит сравниваем с максимумо}
           begin 
              if (A[i]>m) then  m:=A[i] {запомнили найденное }
           end
       else {значит нашли первое чётное в массиве} 
           begin
              m:=A[i]; {запомнили найденное }
              BylChet := true; {поставили признак, что нашлось чётное} 
           end;
  end;
  
  {вывод результатов поиска}
  WriteLn;
  if BylChet then
      writeln('Наибольшее чётное число массива:', m)
  else
      writeln('Нет в массиве чётных значений!');
   
  readln;

Последний раз редактировалось Serge_Bliznykov; 19.05.2011 в 16:02.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.05.2011, 16:24   #14
katya111
Новичок
Джуниор
 
Регистрация: 18.05.2011
Сообщений: 12
По умолчанию

Теперь вроде всё правильно работает!
Большущее спасибо!
katya111 вне форума Ответить с цитированием
Старый 19.05.2011, 18:43   #15
BalashovM
 
Аватар для BalashovM
 
Регистрация: 17.05.2011
Сообщений: 9
По умолчанию

Можно ввести дополнительную переменную, например s, обозначающую кол-во нечётных чисел.
Код:
var s:integer;
...
Для цикла ввода чисел прописать:
Код:
for i:=1 to 20 do
 begin
  writeln('A[',i,']= ');
  readln(A[i]);
   if A[i] div 2 <> 0 then inc(s); {если число нечётное, увеличиваем значение s на 1}
 end;
if s=20 then writeln('ERROR'); {сообщить об ошибке, если все числа - нечётные}
...
{завершить программу}
...

Последний раз редактировалось BalashovM; 20.05.2011 в 13:25.
BalashovM вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа находит наибольшее чётное число в данном одномерном массиве целых чисел katya111 Паскаль, Turbo Pascal, PascalABC.NET 4 18.05.2011 15:35
Ввести 3 числа и найти среднее из них kakawkin Помощь студентам 20 12.05.2011 21:11
Задание на типовой расчет: Какое наибольшее целое число без знака может быть записано в N двоич.разрядах? Бубликова Фриланс 10 06.12.2008 10:35
программа считывающая пять целых чисел и определяющая, печатающая наибольшее и наименьшее число из них Syber Общие вопросы C/C++ 3 30.06.2008 22:39