Корнеплодович1930
?>

1.Напишите программу . Ввести с клавиатуры 2 числа (a и b Если а>b то а увеличить в 2 раза. Вывести на экран значение а 2.Напишите программу. Которая определяет введенное число с клавиатуры четное. На экране вывести надпись "число четное" или "число не четное

Информатика

Ответы

ykolkova76

Задача

Из двух чисел с разной четностью вывести на экран нечетное число.

Решение

Описание переменных:  

a, b - данные числа

Алгоритм решения задачи:  

Пользователь вводит четное и нечетное число. Последовательность их ввода может быть любой. Таким образом, неизвестно какая из двух переменных (a или b) содержит нечетное число. Чтобы выяснить это, используется конструкция условного ветвления (if-else), а также операция нахождения остатка от целочисленного деления (mod).

Если результат нахождения остатка от деления значения переменной a на 2 равен нулю, значит, эта переменная содержит четное число. Тогда нечетное число находится в переменной b и его следует вывести на экран. Если же результат нахождения остатка не равен нулю, значит, a содержит нечетное число. Оно выводится в ветке else.

Программа на языке Паскаль:  

var a, b: integer;

begin

writeln('Введите одно четное и одно нечетное числа');

readln(a, b);

if a mod 2 = 0 then

 writeln(b,' - нечетное число')

else

 writeln(a,' - нечетное число');

end.

Примеры работы программы:

Введите одно четное и одно нечетное числа

4 5

5 - нечетное число

Введите одно четное и одно нечетное числа

5 4

5 - нечетное число

Примечания:  

В данном случае предполагается, что пользователь осуществляет ввод правильно, т. е. всегда вводит одно четное и одно нечетное число. Если же ввод был некорректный (два четных или два нечетных числа), то программа будет работать неправильно. В случае двух четных чисел программа выведет второе. В случае двух нечетных - первое введенное. Чтобы избежать подобных недоразумений, программу можно усовершенствовать следующим образом:

var a, b: integer;

begin

writeln('Введите одно четное и одно нечетное числа');

readln(a, b);

if (a mod 2 = 0) and (b mod 2 <> 0) then

 writeln(b,' - нечетное число')

else

 if (a mod 2 <> 0) and (b mod 2 = 0) then

  writeln(a,' - нечетное число')

 else

  writeln('Некорректный ввод');

end.

В данном случае в заголовках условного оператора проверяются оба числа: одно - на четность, другое - на нечетность. Если оба будут четные, или оба будут нечетные, то сработает тело вложенного оператора else.

fiorire731
1. Современное решение, когда можно решить "в одну строку"

// PascalABC.NET 3.2, сборка 1439 от 09.05.2017
// Внимание! Если программа не работает, обновите версию!

begin
  Writeln('S=',ReadSeqInteger(3).Select(n->n.ToString
    .Where(d->Pos(d,'13579')>0)).SelectMany(c->c)
    .Select(c->c.ToDigit).Sum)
end.

Пример
252 337 105
S=24

2. А примерно вот так учат писать в школе - долго и длинно (да и не особо понятно)

var
  m,i,j,s,d:integer;
begin
  s:=0;
  for i:=1 to 3 do begin
    Read(m);
    for j:=1 to 3 do begin
      d:=m mod 10;
      if d mod 2<>0 then s:=s+d;
      m:=m div 10
      end
    end;
  Writeln('S=',s)
end.
Batishcheva
ВАРИАНТ 1
begin 
var a:=ArrRandom(20,1,100); 
a.Println; 
var tri:=a.Where(x->(x mod 10)=3); 
writeln(tri.Max);
end.

Ввод -     9 13 22 49 68 67 98 11 28 12 69 73 20 91 63 69 81 93 99 66
Вывод - 93

ВАРИАНТ 2
const  m = 20;

var  a, b: array [1..m] of integer;  
i, max_num: integer;

begin 
for i := 1 to m do    
Read(a[i]);  
for i := 1 to m do    
if (a[i] mod 10 = 3) then begin     
b[i] := a[i];   
end; 
max_num := b[1]; 
for i := 2 to m do   
if (b[i] > max_num) then      
max_num := b[i]; 
writeln('Max = ', max_num);
end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

1.Напишите программу . Ввести с клавиатуры 2 числа (a и b Если а>b то а увеличить в 2 раза. Вывести на экран значение а 2.Напишите программу. Которая определяет введенное число с клавиатуры четное. На экране вывести надпись "число четное" или "число не четное
Ваше имя (никнейм)*
Email*
Комментарий*