Владимир
?>

Напишите программу, которая вычисляет разность суммы чётных и суммы нечётных чисел от a до b с суммы арифметической прогрессии. ввод: 3 6 вывод: 2 ввод: 3 7 вывод; -5

Информатика

Ответы

igor8809337

program ChetNechet;

var

 A, B, chet, nechet, otvet, i: Integer;

begin

 Write ('Введите А, В: ');

 ReadLn (A, B);

 chet := 0;

 nechet := 0;

 for i := A to B do begin

  if i mod 2 = 0 then

    chet := chet + i;

  else

    nechet := nechet + i;

 end;

 otvet := chet - nechet;

 WriteLn ('Сумма четных: ', chet);

 WriteLn ('Сумма нечетных: ', nechet);

 WriteLn ('ответ: ', otvet);

 ReadLn;

end.

Naumenkova-Ivanov

Объяснение:

1) Организуем ввод данных

3) Создадим функцию, которая вычисляет сумму чётных элементов

4) Создадим функцию, которая вычисляет сумму нечётных элементов

5) Выведем разность первой и второй функции

Пример реализации функций (для чётных, для нечётных аналогично)

1) Если А чётно, то начнём с неё, иначе с А+1 элемента

2) Если В чётно, то закончим им, иначе В-1

3) Количество элементов N - ((Верхняя граница - нижняя граница) целочисленно разделить на 2) + 1  

4) Прогрессия (Нижняя граница + Верхняя граница)*N/2

5) Присваиваем значение 4 функции

6) Аналогично организуем для нечётных элементов

treneva359
1) Все правильно, это и будет разность между максимумом и минимумом
program one;
var input,max,min:integer;
    i:integer;
begin
  readln(input);
  max:=input;
  min:=input;
  for i:=2 to 25 do begin
    readln(input);
    if input>max then max:=input;
    if input<min then min:=input;
  end;
  writeln(max-min);
end.

2) Гораздо проще не суммировать в цикле степени половины, а воспользоваться тем, что 1+\frac12+...+\frac1{2^n}=2-\frac1{2^n}.
program two;
var res:real;
    i,n:integer;
begin
  readln(n);
  res:=0.5;
  for i:=2 to n do res*=0.5;
  res:=2-res;
  writeln(res);
end.

3) Здесь существует несколько реализации; в частности, можно было просто считать число как строку и возвратить ее в перевернутом виде (ReverseString(s)), не заботясь о переполнении, однако я решил, что по логике задания нужно делать через числа. Впрочем, для выявления случаев переполнения все равно используется переворот строки
program three;
var a,b:int64; {можно использовать uint64, если в вашей среде Паскаля  этот тип поддерживается, тогда число в строке ниже надо заменить}
begin
  readln(a);
  if ReverseString(IntToStr(a))>'9223372036854775807' then writeln('Слишком много') else begin
    while a>0 do begin
      b:=10*b+a mod 10;
      a:=a div 10;
    end;
    writeln(b);
  end;
end.
olofinskayae
1) Все правильно, это и будет разность между максимумом и минимумом
program one;
var input,max,min:integer;
    i:integer;
begin
  readln(input);
  max:=input;
  min:=input;
  for i:=2 to 25 do begin
    readln(input);
    if input>max then max:=input;
    if input<min then min:=input;
  end;
  writeln(max-min);
end.

2) Гораздо проще не суммировать в цикле степени половины, а воспользоваться тем, что 1+\frac12+...+\frac1{2^n}=2-\frac1{2^n}.
program two;
var res:real;
    i,n:integer;
begin
  readln(n);
  res:=0.5;
  for i:=2 to n do res*=0.5;
  res:=2-res;
  writeln(res);
end.

3) Здесь существует несколько реализации; в частности, можно было просто считать число как строку и возвратить ее в перевернутом виде (ReverseString(s)), не заботясь о переполнении, однако я решил, что по логике задания нужно делать через числа. Впрочем, для выявления случаев переполнения все равно используется переворот строки
program three;
var a,b:int64; {можно использовать uint64, если в вашей среде Паскаля  этот тип поддерживается, тогда число в строке ниже надо заменить}
begin
  readln(a);
  if ReverseString(IntToStr(a))>'9223372036854775807' then writeln('Слишком много') else begin
    while a>0 do begin
      b:=10*b+a mod 10;
      a:=a div 10;
    end;
    writeln(b);
  end;
end.

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

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

Напишите программу, которая вычисляет разность суммы чётных и суммы нечётных чисел от a до b с суммы арифметической прогрессии. ввод: 3 6 вывод: 2 ввод: 3 7 вывод; -5
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

puchkovajulia
neblondinka19
Gennadievna bessonov
paninsv
T91610933073266
akustov55
vova00831
Cannabikh
Исакова-Александрович511
Sokolova-Shcherbakov
Gainalii1912
Абумислимовна_кооператив585
stolle16
tboychenko
jenn055