М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
nfskarbon2
nfskarbon2
12.12.2022 22:57 •  Информатика

Нужно написать программу шахматная доска состоит из n х m клеток, покрашенных в черный и белый цвет в«шахматном» порядке. при этом клетка в левом нижнем углу доски покрашена в черный цвет определите, сколько всего на доске черных клето. программа получает на вход два числа n и m, залисанных в отдельных строю bсе натуральные, не превосходящие 30 000 числа программа должна вывести одно целое число количество черных клеток на доске.

👇
Ответ:
ksenia5051
ksenia5051
12.12.2022
Рассмотрим случай, когда число клеток по вертикали n четное. В этом случае каждая пара горизонталей доски содержит ровно m клеток (m - число клеток доски по горизонтали). Тогда общее число черных клеток равно m*n/2.
При нечетном n к рассмотренным горизонтальным строкам добавляется еще одна - нечетная, конфигурация которой совпадает с первой (нечетной) горизонталью.
Если клетка в левом нижнем углу первой горизонтали черная, то количество черных клеток в ней можно определить как сумму результата целочисленного деления количества клеток по горизонтали на два и остатка от этого деления. В результате приходим к следующей формуле:
k=\begin {cases} \frac{mn}{2}, \ n \, mod \, 2=0 \\ \frac{m(n-1)}{2}+ (m \, div \, 2)+(m \, mod \, 2), \ n \, mod \, 2=1 \end {cases}

Ниже представлен текст программы на языке Pascal.ABC.NET

var
  m, n: integer;

begin
  Write('Введите количество горизонталей на доске: ');
  Readln(n);
  Write('Введите количество вертикалей на доске: ');
  Readln(m);
  if (n mod 2) = 0 then Writeln('Черных клеток на доске- ', m * n / 2)
  else Writeln('Черных клеток на доске- ', m * (n-1) / 2 + (m div 2) + (m mod 2))
end.

Тестовое решение:

Введите количество горизонталей на доске: 8
Введите количество вертикалей на доске: 7
Черных клеток на доске- 28
4,8(52 оценок)
Открыть все ответы
Ответ:
srySyutoduofyi
srySyutoduofyi
12.12.2022

1.y=m1*m2/Sqr(r)

2. Program my;

var S,a,b,h:real;

begin

write('Введите длины оснований и высоты');

readln(a,b,h);

S:=(a+b)*h/2;

readln(S);

end.

3. Program my;

var a:integer;

begin

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

readln(a);

If (a mod 10=7) then write('Данное число заканчивается на 7');

else write('Данное число не заканчивается на 7');

end.

4.Program my;

var a,b,:integer;

begin

readln(a,b);

If (a>b) then writeln(Sqr(a), b+10);

If (a=b) then writeln('Числа равны');

If (a<b) then writeln(Sqr(b), a+10);

end.

5. 

Program my;
var a,b,c:integer;
begin
Readln(a,b);
For c:=a to b do
if (c mod 10=0) then
writeln (c);
end.

 

4,7(66 оценок)
Ответ:
shadow909
shadow909
12.12.2022
1) а) на Java
class example{
    public static void main (String[] args){
        int k = 0, j = 0;
        for (int i = 0; i < 10; i++){
            k = k + 5;
            j = j + k;
            if (i == 9)
            System.out.print(k);
            else
            System.out.print(k + " + ");
        }
        System.out.print(" = " + j);
    }
}
б) на Pascal
var a,b,c:integer;
begin
for a:=1 to 10 do
begin
b:=b+5;
c:=c+b;
if (a = 10) then write(b)
else write(b, ' + ')
end;
write(' = ', c);
end.
2) а) на Java
class example{
    public static void main(String args[]){
        for (int x = 50; x >= 40; x--){
        double y = (5 * x) + (Math.pow(x, 2));
        int i = (int) y;
        System.out.println(i);
        }
    }
}
б) на Pascal
var y:real;
x:integer;
begin
for x:=50 downto 40 do
begin
y:=(5*x)+sqr(x);
writeln(y:0:0);
end;
end.
4,8(2 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ