MoNKinsN
31.01.2020 10:39

Здравствуйте с корректировкой TurboPascal
Изначальное задание:
Задать однотипные треугольные матрицы А и В размера 5*5 и программно показать, что А*В тоже треугольная матрица.
Решение:
uses crt;
const n=5;
var a,b,c:array[1..n,1..n]of integer;
i,j,k: integer;
begin
clrscr;
randomize;
//создадим 2 верхнетреугольных матрицы
writeln('Матрица А');
for i:=1 to n do
begin
for j:=1 to n do
begin
if j>=i then a[i,j]:=1+random(10)
else a[i,j]:=0;
write(a[i,j]:4);
end;
writeln;
end;
writeln('Матрица B');
for i:=1 to n do
begin
for j:=1 to n do
begin
if j>=i then b[i,j]:=1+random(10)
else b[i,j]:=0;
write(b[i,j]:4);
end;
writeln;
end;
//получаем третью матрицу
writeln('Матрица C=A*B');
for i:=1 to n do
begin
for j:=1 to n do
begin
c[i,j]:=0;
for k:=1 to n do
c[i,j]:=c[i,j]+a[i,k]*b[k,j];
write(c[i,j]:4);
end;
writeln;
end;
readln
end.
Изменённое условие задания:
В работе надо "программным" ( а не "визуальным" )
путём определить, что матрица C - треугольная.
То есть, программа должна определить ( рассчитать ),
что C - треугольная матрица и вывести соответствующее
сообщение.
Вообщем вывод матриц я убрал и добавил это условие но что то коряво пашет:
if (i=j) or (i then writeln('Треугольная матрица С');

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
tanechka21998
18.02.2022 00:43

5,25 Мб

Объяснение:

Поскольку разрешение состоит из двух сомножителей - ширины и высоты, то при уменьшении разрешения в 4 раза количество пикселей уменьшится в 4*4=16 раз.

Формула объема файла изображения

V = N*i, где N — общее количество пикселей, а i — глубина цвета (количество бит, выделенное на 1 пиксель)

Составим систему уравнений.

Для первого файла имеем

42=N*i

Для второго файла:

V = N/16 * 2i

Выражаем N в первом уравнении

N=42/i

Подставляем во второе уравнение:

V=42/i :16 *2i

V=42/16i *2i

V=42/8=5,25 Мб

0,0(0 оценок)
Ответ:
bogdankpro
30.01.2023 13:09

(см. объяснение)

Объяснение:

Решение на PascalABC.NET:

##

var a: BigInteger := BigInteger.Subtract(BigInteger.Subtract(BigInteger.Multiply(BigInteger.Parse('3'), BigInteger.Pow(BigInteger.Parse('2'), 32)), BigInteger.Pow(BigInteger.Parse('2'), 10)), BigInteger.Parse('3'));

var b: String;

while(a>0) do

begin

 b:= BigInteger.Remainder(a, 4).ToString+b;

 a:= BigInteger.Divide(a, 4);

end;

print(b.Count(x->x='3'));

Решение на Python3:

a = 3 * 2 ** 32 - 2 ** 10 - 3

b = ''

while a > 0:

   b = str(a % 4) + b

   a //= 4

print(b.count('3'))

Решение на Java:

import java.math.BigInteger;

public class Study

{

public static void main(String[] args)

{

System.out.println(BigInteger.valueOf(3L).multiply(BigInteger.valueOf(2L).pow(32)).subtract(BigInteger.valueOf(2L).pow(10)).subtract(BigInteger.valueOf(3L)).toString(4).chars().filter(x->x=='3').count());

}

}

Результатом работы программ во всех случаях будет одно число 14.

Задание выполнено!

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота