В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Senenadasha2017
Senenadasha2017
14.09.2020 03:21 •  Информатика

Шахматный ферзь ходит по диагонали, горизонтали или вертикали. даны две различные клетки шахматной доски, определите, может ли ферзь попасть с первой клетки на вторую одним ходом.

формат входных данных
программа получает на вход четыре числа от 1 до 8 каждое, номер столбца и номер строки сначала для первой клетки, потом для второй клетки.
формат выходных данных
программа должна вывести yes, если из первой клетки ходом ферзя можно попасть во вторую или no в противном случае.
sample input 1:

1
1
2
2
sample output 1:

yes
sample input 2:

1
1
2
3
sample output 2:

no

решите на c++

Показать ответ
Ответ:
nikitabars7
nikitabars7
20.04.2020 13:54
Program primer;
procedure random(c,x,y:integer; var r:integer);
    begin
        case c of
                1 : r:=Random(ABS(Y)+ABS(x)+1)+x;
                2 : r:=Random(ABS(Y)+ABS(x)+1)+y;
                3 : r:=Random(Y-x+1)+x;
                4 : r:=Random(x-y+1)+y;
                5 : r:=Random(x+y);
                6 : r:=Random(ABS(x+y))-ABS(x+y);
                7 : r:=x;
                8 : r:=Random(ABS(ABS(x)-ABS(y)))-ABS(x);
                9 : r:=Random(ABS(ABS(x)-ABS(y)))-ABS(y);
        end;
   end;
var
  a: array of array of integer;
  i,j,x,y,m,p,pro,c:integer;  begin
Randomize;
pro:=1;
writeln('Кол-во строк и столбцов массива? //X,Y\\  ');
read(i,j); //Размерность массива
writeln('Диапазон чисел //от X,до Y\\ '); 
read(x,y); //и диапазон генерации вводятся с клавиатуры.
if (x=y) then
c:=7
else
if(x<0) and (y<0) then 
if (x<y) then 
c:=8
else
c:=9
else
if (x=0) or (y=0) then 
if(x<0) or (y<0) then 
c:=6
else
c:=5
else
if(x<0) or (y<0) then 
if (x<y) then 
c:=1
else 
c:=2
else
if (x<y) then 
c:=3
else 
c:=4;
SetLength(a,i);
for  m:=0 to i-1 do
  SetLength(a[m],j);  
for  m:=0 to i-1 do begin  
writeln();
     for  p:=0 to j-1 do   begin                     
     random(c,x,y,a[m,p]);    {Заполнить матрицу случайными числами}         
 if (m<>p) then pro:=pro*a[m,p]; {Вычислить произведение элементов массива, лежащих вне главной диагонали.}
          write (a[m,p]:3,' ':3);
           end; 
         end;  

 writeln('pro=',pro);        
  a:=NIL;            
end.
// ABC Pascal
0,0(0 оценок)
Ответ:
SuperGirl1111468
SuperGirl1111468
01.06.2020 09:53
Dev С++
#include <iostream>
using namespace std;

int main() {
    int i,n;
    cout<<"Введите число элементов в массиве: ";
    cin>>n;
    int a[n-1], j=0, amin=32767;
    for (i=0; i<n; i++){
        cout<<"Введите "<<i+1<<"-й элемент: ";
        cin>>a[i];
        if (amin>a[i] && a[i]>0) { amin=a[i]; j=i; }
    }
    i=n/2;
    while ((i<n) and a[i]>=0) i++;
    if (i>=n)
       if (a[n-1]<0) i=n-1;
       else cout<<"Нет подходящего элемента";
    if (i<=n-1) {
       int s=0, k=0, t;
       if (i>j) { t=i; i=j; j=t; }
       for (i=i; i<=j; i++) {
           s+=a[i]; k++;
       }
       cout<<"Cумма "<<s<<", количество "<<k<<"\n";
    }  
    system("PAUSE");
    return 0;
}

Тестовое решение:
Введите число элементов в массиве: 10
Введите 1-й элемент: 8
Введите 2-й элемент: 5
Введите 3-й элемент: -3
Введите 4-й элемент: 0
Введите 5-й элемент: 4
Введите 6-й элемент: 7
Введите 7-й элемент: -5
Введите 8-й элемент: 11
Введите 9-й элемент: 2
Введите 10-й элемент: -6
Cумма 8, количество 3
Для продолжения нажмите любую клавишу . . .
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота