Александрович Василий
?>

Опишите подробно автомат получает на вход четырёхзначное десятичное число. по полученному числу строится новое десятичное число по следующим правилам: вычисляются два новых числа: сумма крайних цифр, а также сумма средних (не крайних) цифр полученные два числа записываются друг за другом в порядке неубывания (без разделителей определите, сколько из ниже чисел могут получиться в результате работы автомата: 101 20 312 1213 1312 1212 112 1012

Информатика

Ответы

koll23
Сумма средних цифр может быть равна числу от 0 до 18
сумма крайних цифр может быть равна числу от 1 до 18 (т.к. ерайняя левая цифра не может быть равна нулю, потому тто в противном случае это было бы уже не 4х значное число. Например: 0123)

Так же получившиеся 2 новых числа не могут начинаться с нуля.

Порядок не убывания, значит второе число больше или равно первому.

число 101 могло быть составлено только из 10 и 1, но 1 < 10, значит они расположены в порядке убывания, это нам не подойдёт

20 составлено из 2 и 0, тоже порядок убывания, не подходит

312 составлен либо (3 и 12), либо (31 и 2), но наши два числа не могут быть больше 18 (т.к десятичные цифры от 0 до 9) Значит 312 составлен из 3 и 12 - подходит

Аналогично 1312 состоит из 12 и 13, подходит, т.к 13 >= 12 (пример исходного числа 6766) 

А вот 1312 не подойдёт, т.к 12 < 13

1212 - подходит т.к. 12 >= 12 (пример исходного 6666)

112 - это либо 1 и 12, либо 11 и 2. Второй вариант отсекаем, первый подходит (например 1660)

1012 - подходит

ответ: может получиться 5 чисел из приведенных
hello
// PascalABC.NET 3.2, сборка 1425 от 22.04.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger('Количество строк в матрице:');
  var m:=ReadInteger('Количество столбцов в матрице:');
  Writeln('*** Исходная матрица [',n,',',m,'] ***');
  var a:=MatrRandom(n,m,-9,9);
  a.Println(3); Writeln(3*a.ColCount*'-');
  // 1. удалить строки с нулевыми элементами
  var v:=a.Rows.Select(x->x.All(y->y<>0)).ToArray;
  var q:=new integer[v.Where(r->r=true).Count,a.ColCount];
  var k:=0;
  for var i:=0 to v.Count-1 do
    if v[i] then begin
      q.SetRow(k,a.Row(i)); k+=1
      end;
  Writeln('Матрица, не содержащая строк с нулями');
  a:=Copy(q);
  a.Println(3);
  // 2. отсортировать элементы первого столбца по возрастанию
  a.SetCol(0,a.Col(0).OrderBy(x->x).ToArray);
  Writeln('Матрица с отсортированной колонкой 1');
  a.Println(3);
  // 3. игры с k и b
  var b:integer;
  Write('Введите значения b и 1<=k<=',a.RowCount,': '); Read(b,k);
  for var j:=k to a.RowCount-1 do a[j,m-1]+=b;
    Writeln('Матрица с модифицированной последней колонкой');
  a.Println(3)
end.

Пример
Количество строк в матрице: 5
Количество столбцов в матрице: 8
*** Исходная матрица [5,8] ***
 -4 -8  4 -4  8 -6  5 -2
  2 -7 -4  6  8  4  9 -8
  0 -8 -4 -7 -4 -7  6 -3
  6 -4 -8  9 -7 -5 -3 -2
 -9  7 -1 -2 -9  9  7  4

Матрица, не содержащая строк с нулями
 -4 -8  4 -4  8 -6  5 -2
  2 -7 -4  6  8  4  9 -8
  6 -4 -8  9 -7 -5 -3 -2
 -9  7 -1 -2 -9  9  7  4
Матрица с отсортированной колонкой 1
 -9 -8  4 -4  8 -6  5 -2
 -4 -7 -4  6  8  4  9 -8
  2 -4 -8  9 -7 -5 -3 -2
  6  7 -1 -2 -9  9  7  4
Введите значения b и 1<=k<=4: 5 2
Матрица с модифицированной последней колонкой
 -9 -8  4 -4  8 -6  5 -2
 -4 -7 -4  6  8  4  9 -8
  2 -4 -8  9 -7 -5 -3  3
  6  7 -1 -2 -9  9  7  9

Замечание: Под удалением без всяких условностей понимается именно удаление. Матрица после удаления просто содержит меньшее количество строк.
galinaobraz
Первая программа:

Var a,b:integer;
Begin
Write('a = ');ReadLn(a);
Write('b = ');ReadLn(b);
if a mod b = 0 then WriteLn(b,' - делитель ',a)
else WriteLn(b,' не является делителем ',a)
End.

Вторая программа:

Var
   a,b:real;
Begin
WriteLn('a и b - катеты прямоугольного треугольника');
Write('a = ');ReadLn(a);
Write('b = ');ReadLn(b);
WriteLn('S = ',a*b/2);
WriteLn('P = ',Sqrt(a*a+b*b)+a+b);
End.

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

a и b - катеты прямоугольного треугольника
a = 3
b = 4
S = 6
P = 12

Примечание: программа не проверяет, существует ли треугольник и является ли он прямоугольным.

Третья программа:

Var
   a,b,c,D:real;
Begin
WriteLn('ax^2 +bx +c = 0');
Write('a = ');ReadLn(a);
Write('b = ');ReadLn(b);
Write('c = ');ReadLn(c);
D:=b*b-4*a*c;
if D < 0 then Write('Действительных корней нет')
else
   Begin
   WriteLn('x1 = ',(-b-Sqrt(D))/(2*a));
   WriteLn('x2 = ',(-b+Sqrt(D))/(2*a));
   End
End.

Четвёртая программа:

Var a,b,c:real;
Begin
Write('Введите три числа: ');ReadLn(a,b,c);
a:=Abs(a-c);
b:=Abs(b-c);
if a < b then WriteLn('Первое число ближе к третьему')
else if a > b then WriteLn('Второе число ближе к третьему')
     else WriteLn('Первое и второе число - одинаково близки к третьему')
End.

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

Введите три числа: 1 2 3
Второе число ближе к третьему

Введите три числа: 1 1 3
Первое и второе число - одинаково близки к третьему

Введите три числа: 2 1 13
Первое число ближе к третьему

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

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

Опишите подробно автомат получает на вход четырёхзначное десятичное число. по полученному числу строится новое десятичное число по следующим правилам: вычисляются два новых числа: сумма крайних цифр, а также сумма средних (не крайних) цифр полученные два числа записываются друг за другом в порядке неубывания (без разделителей определите, сколько из ниже чисел могут получиться в результате работы автомата: 101 20 312 1213 1312 1212 112 1012
Ваше имя (никнейм)*
Email*
Комментарий*

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

predatorfishing608
alekbur
gorsimonyan4
Ионов202
olimov9
Borshchev1820
Ольга1520
Donleksa2016
nurtilekisakov
Galliardt Sergeevna1284
chizhenkovd9
nagas
Vetroff-11
ekaterinava90
westgti77105