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

Решите : заданы две целочисленные матрицы a и b. матрица a состоит из n строк и m столбцов, матрица b состоит из m строк и p столбцов. требуется вычислить произведение данных матриц a*b.язык паскаль

👇
Ответ:
JelliTD
JelliTD
15.04.2022
// PascalABC.NET 3.1, сборка 1219 от 16.04.2016
type
  Matrix=array[,] of integer;

procedure MatPrint(a:Matrix; w:integer);
begin
  for var i:=0 to Length(a,0)-1 do begin
    for var j:=0 to Length(a,1)-1 do Write(a[i,j]:w);
    Writeln
    end
end;

procedure MatProd(a,b,c:Matrix);
begin
  for var i:=0 to Length(a,0)-1 do
    for var j:=0 to Length(b,1)-1 do begin
      var s:=0;
      for var k:=0 to Length(a,1)-1 do s+=a[i,k]*b[k,j];
      c[i,j]:=s
      end
end;

begin
  var a,b,c:Matrix;
  var m,n,p:integer;
  Write('Число строк матрицы А: '); Read(n);
  Write('Число столбцов матрицы А и строк матрицы В: '); Read(m);
  Write('Число столбцов матрицы В: '); Read(p);
  a:=MatrixRandom(n,m,-50,50);
  Writeln('Матрица А'); MatPrint(a,4);
  b:=MatrixRandom(m,p,-50,50);
  Writeln('Матрица B'); MatPrint(b,4);
  SetLength(c,n,p);
  Writeln('Матрица C');
  MatProd(a,b,c);
  MatPrint(c,7)
end.

Тестовое решение:
Число строк матрицы А: 4
Число столбцов матрицы А и строк матрицы В: 8
Число столбцов матрицы В: 7
Матрица А
  33 -30  20   7   1   5  10 -47
  -6  -1 -22   6 -33  41   4  -1
 -10 -45 -16   6 -13   9   1  37
   5  37  15 -48  42 -19   1  26
Матрица B
 -19  42 -14 -36  38 -18 -41
 -24 -20  26 -50 -36  -5 -32
  -1   5 -43  15  11  49   0
 -44 -35 -27  20  33 -49  14
  40   7 -38 -37  48   2 -26
 -24   5 -11  12 -43  47 -42
 -24  11   8 -13  -9 -13 -12
 -41  46 -24  20   3 -25 -25
Матрица C
   1372   -179  -1176   -295   2387   1475    524
  -2463   -580   1701   1697  -3622    575   -525
  -1255   1857   -989   3806    353  -1214    957
   2160   2631   -460  -4040    341   1340  -3017
4,4(89 оценок)
Открыть все ответы
Ответ:
SHEVENIST
SHEVENIST
15.04.2022

from tkinter import *

class Main(Frame):

   def __init__(self, root):

       super(Main, self).__init__(root)

       self.build()

   def build(self):

       self.formula = "0"

       self.lbl = Label(text=self.formula, font=("Times New Roman", 21, "bold"), bg="#000", foreground="#FFF")

       self.lbl.place(x=11, y=50)

       btns = [

           "C", "DEL", "*", "=",

           "1", "2", "3", "/",

           "4", "5", "6", "+",

           "7", "8", "9", "-",

           "(", "0", ")", "X^2"

       ]

       x = 10

       y = 140

       for bt in btns:

           com = lambda x=bt: self.logicalc(x)

           Button(text=bt, bg="#FFF",

                  font=("Times New Roman", 15),

                  command=com).place(x=x, y=y,

                                     width=115,

                                     height=79)

           x += 117

           if x > 400:

               x = 10

               y += 81

   def logicalc(self, operation):

       if operation == "C":

           self.formula = ""

       elif operation == "DEL":

           self.formula = self.formula[0:-1]

       elif operation == "X^2":

           self.formula = str((eval(self.formula))**2)

       elif operation == "=":

           self.formula = str(eval(self.formula))

       else:

           if self.formula == "0":

               self.formula = ""

           self.formula += operation

       self.update()

   def update(self):

       if self.formula == "":

           self.formula = "0"

       self.lbl.configure(text=self.formula)

if __name__ == '__main__':

   root = Tk()

   root["bg"] = "#000"

   root.geometry("485x550+200+200")

   root.title("Калькулятор")

   root.resizable(False, False)

   app = Main(root)

   app.pack()

   root.mainloop()

Объяснение:

1.Создаём окно 485 на 550. Размеры не важны, мне понравились такие. Так же указываем, что окно не будет изменяться.

class Main(Frame):

   def __init__(self, root):

       super(Main, self).__init__(root)

       self.build()

   def build(self):

       pass

 

   def logicalc(self, operation):

       pass

   def update():

      pass

if __name__ == '__main__':

   root = Tk()

   root["bg"] = "#000"

   root.geometry("485x550+200+200")

   root.title("Калькулятор")

   root.resizable(False, False)

   app = Main(root)

   app.pack()

   root.mainloop()

2.Делаем кнопочки

В методе build создаём такой список:

btns = [

           "C", "DEL", "*", "=",

           "1", "2", "3", "/",

           "4", "5", "6", "+",

           "7", "8", "9", "-",

           "+/-", "0", "%", "X^2"

       ]

Он отвечает за все кнопки, отображающиеся у нас в окне.

3.Мы создали список, теперь проходимся циклом и отображаем эти кнопки. Для этого в том же методе пишем следующее:

x = 10

       y = 140

       for bt in btns:

           com = lambda x=bt: self.logicalc(x)

           Button(text=bt, bg="#FFF",

                  font=("Times New Roman", 15),

                  command=com).place(x=x, y=y,

                                     width=115,

                                     height=79)

           x += 117

           if x > 400:

               x = 10

               y += 81

4.Замечательно, у нас есть кнопочки. Добавляем надпись с выводом результата. Я хочу что бы текст был слева, следовательно, атрибутов выравнивания текста писать не нужно.

self.formula = "0"

self.lbl = Label(text=self.formula, font=("Times New Roman", 21, "bold"),

                bg="#000", foreground="#FFF")

self.lbl.place(x=11, y=50)

5.Пишем логику

def logicalc(self, operation):

   if operation == "C":

       self.formula = ""

   elif operation == "DEL":

       self.formula = self.formula[0:-1]

   elif operation == "X^2":

       self.formula = str((eval(self.formula))**2)

   elif operation == "=":

       self.formula = str(eval(self.formula))

   else:

       if self.formula == "0":

           self.formula = ""

       self.formula += operation

   self.update()

def update(self):

   if self.formula == "":

       self.formula = "0"

   self.lbl.configure(text=self.formula)

Так, как у нас нет ввода с клавиатуры, мы можем позволить себе сделать так, просто проверить на спец. кнопки (C, DEL, =) и в остальных случаях просто добавить это к формуле.

за внимание!)

4,7(31 оценок)
Ответ:
Дано:
Палитра 256 цветов.
Размер 10x10 пикселей.

Найти:
Каков информационный объём этого файла?

Решение:
Вначале определяем глубину цвета по формуле
2^i = N. 2^i = 256 по условию, отсюда i = 8 бит.

Вычисляем общее количество пикселей в картинке:
10*10 = 100 пикселей

Информационный объём равен
100 пикселей * 8 бит = 800 бит.



Дано:
разрешающая экрана 1440*900 точек
глубина цвета 32 бит

Найти:
объём графического изображения

Решение:
Вначале вычисляем общее количество пикселей в картинке:
1440 * 900 = 1 296 000 пикселей.

Информационный объем вычисляется по формуле
Объем = количество пикселей * глубина цвета
Объем = 1 296 000 * 32 бит = 41 472 000 бит
Делим на 8 бит в байте, 41 472 000 / 8 = 5 184 000 байт
4,7(60 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ