|
Serwis Edukacyjny w I-LO w Tarnowie
Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy Wałaszek |
©2026 mgr Jerzy Wałaszek
|
ProblemNależy pomnożyć macierz Am×n przez skalar c. |
Operacja mnożenia macierzy Am×n przez skalar c polega na pomnożeniu przez liczbę c wszystkich elementów macierzy.
K01: Dla iw = 1, 2, …, m, wykonuj: krok K02
K02: Dla ik = 1, 2, …, n, wykonuj: A[iw, ik] ← A[iw, ik]×c
K04: Zakończ
|
Uwaga: Zanim uruchomisz program, przeczytaj wstęp do tego artykułu, w którym wyjaśniamy funkcje tych programów oraz sposób korzystania z nich. |
| Program generuje macierz o losowej liczbie wierszy (od 2 do 9) i losowej liczbie kolumn (od 2 do 9) oraz losowy skalar z zakresu od -10 do 10. Macierz zostaje wypełniona losowymi liczbami (od 0 do 99). Program wyświetla m, n, macierz wejściową oraz skalar c. Następnie mnoży macierz przez skalar i wyświetla macierz wynikową. |
Pascal// Mnożenie macierzy przez skalar
// Data: 6.01.2010
// (C)2020 mgr Jerzy Wałaszek
//-----------------------------
program mmulc;
type
NInt = array of integer; // typ tablic wierszy
MInt = array of NInt; // typ tablicy wskaźników
var
A : MInt;
c, n, m, iw, ik : integer;
begin
Randomize;
// losujemy wymiary macierzy
m := random(8)+2;
n := random(8)+2;
// tworzymy tablicę wskaźników
SetLength(A, m);
// tworzymy tablice wierszy
for iw := 0 to m-1 do
SetLength(A[iw], n);
// wypełniamy macierz losowymi liczbami
for iw := 0 to m-1 do
for ik := 0 to n-1 do
A[iw][ik] := random(100);
// losujemy skalar c
c := random(21)-10;
// wyświetlamy macierz
writeln('m = ', m);
writeln('n = ', n);
writeln;
for iw := 0 to m-1 do
begin
for ik := 0 to n-1 do
write(A[iw][ik]:5);
writeln;
end;
// wyświetlamy skalar
writeln;
writeln('c = ', c);
writeln;
// mnożymy macierz przez skalar
for iw := 0 to m-1 do
for ik := 0 to n-1 do
A[iw][ik] := c*A[iw][ik];
// wyświetlamy macierz wynikową
for iw := 0 to m-1 do
begin
for ik := 0 to n-1 do
write(A[iw][ik]:5);
writeln;
end;
// koniec, zwalniamy pamięć
// zajętą przez macierz
for iw := 0 to m-1 do
SetLength(A[iw], 0);
SetLength(A, 0)
end. |
C++// Mnożenie macierzy przez skalar
// Data: 6.01.2010
// (C)2020 mgr Jerzy Wałaszek
//-----------------------------
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
int ** A, c, n, m, iw, ik;
srand(time(NULL));
// losujemy wymiary macierzy
m = rand()%8+2;
n = rand()%8+2;
// tworzymy tablicę wskaźników
A = new int * [m];
// tworzymy tablice wierszy
for(iw = 0; iw < m; iw++)
A[iw] = new int [n];
// wypełniamy macierz losowymi liczbami
for(iw = 0; iw < m; iw++)
for(ik = 0; ik < n; ik++)
A[iw][ik] = rand()%100;
// losujemy skalar c
c = rand()%21-10;
// wyświetlamy macierz
cout << "m = " << m << endl
<< "n = " << n << endl << endl;
for(iw = 0; iw < m; iw++)
{
for(ik = 0; ik < n; ik++)
cout << setw(5) << A[iw][ik];
cout << endl;
}
// wyświetlamy skalar
cout << endl << "c = " << c << endl << endl;
// mnożymy macierz przez skalar
for(iw = 0; iw < m; iw++)
for(ik = 0; ik < n; ik++)
A[iw][ik] *= c;
// wyświetlamy macierz wynikową
for(iw = 0; iw < m; iw++)
{
for(ik = 0; ik < n; ik++)
cout << setw(5) << A[iw][ik];
cout << endl;
}
// koniec, zwalniamy pamięć zajętą przez macierz
for(iw = 0; iw < m; iw++)
delete [] A[iw];
delete [] A;
return 0;
} |
Basic' Mnożenie macierzy przez skalar
' Data: 6.01.2010
' (C)2020 mgr Jerzy Wałaszek
'-----------------------------
Dim As Integer c, n, m, iw, ik
Randomize
' losujemy wymiary macierzy
m = Int(Rnd(1)*8)+2
n = Int(Rnd(1)*8)+2
' tworzymy macierz dynamicznie
Dim As Integer A(1 To m, 1 To n)
' wypełniamy macierz losowymi liczbami
For iw = 1 To m
For ik = 1 To n
A(iw, ik) = Int(Rnd(1)*100)
Next
Next
' losujemy skalar c
c = Int(Rnd(1)*21)-10
' wyświetlamy macierz
Print "m = ";m
Print "n = ";n
Print
For iw = 1 To m
For ik = 1 To n
Print Using "#####";A(iw, ik);
Next
Print
Next
' wyświetlamy skalar
Print
Print "c = ";c
Print
' mnożymy macierz przez skalar
For iw = 1 To m
For ik = 1 To n
A(iw, ik) *= c
Next
Next
' wyświetlamy macierz wynikową
For iw = 1 To m
For ik = 1 To n
Print Using "#####";A(iw, ik);
Next
Print
Next
End |
Python
(dodatek)# Mnożenie macierzy przez skalar
# Data: 8.04.2024
# (C)2024 mgr Jerzy Wałaszek
#-----------------------------
import random
# wyświetla macierz
#------------------
def mprint(x):
for i in x:
for j in i:
print("%5d" % j, end="")
print()
print()
# losujemy wymiary macierzy
m = random.randrange(2, 10)
n = random.randrange(2, 10)
# tworzymy macierz z losowymi elementami
a = [[random.randrange(100) for j in range(n)] \
for i in range(m)]
# losujemy skalar c
c = random.randrange(-10, 11)
# wyświetlamy macierz
print("m =", m)
print("n =", n)
print()
mprint(a)
# wyświetlamy skalar
print("c =", c)
print()
# mnożymy macierz przez skalar
for iw in range(m):
for ik in range(n):
a[iw][ik] *= c
# wyświetlamy macierz wynikową
mprint(a)
|
| Wynik: |
m = 7
n = 4
7 3 27 19
45 87 1 85
57 44 94 10
47 4 46 73
99 49 79 5
3 79 15 36
39 82 92 35
c = -6
-42 -18 -162 -114
-270 -522 -6 -510
-342 -264 -564 -60
-282 -24 -276 -438
-594 -294 -474 -30
-18 -474 -90 -216
-234 -492 -552 -210
|
JavaScript<html>
<head>
<title>
Macierz
</title>
</head>
<body>
<div style="overflow-x: auto;"
align="center">
<table
border="0"
cellpadding="4"
style="border-collapse:
collapse">
<tr>
<td nowrap>
<form
name="frm"
style="text-align:
center;
background-color:
#E7E7DA">
<b>
Mnożenie macierzy
przez skalar
</b><br/>
(C)2026 mgr
Jerzy Wałaszek
<hr>
<input
type="button"
value="Wykonaj"
name="B1"
onclick="main()">
<hr>
<b>Wynik:</b>
<div id="out"
align="center">
.
</div>
</form>
</td>
</tr>
</table>
</div>
<script language=javascript
type=text/javascript>
// Mnożenie macierzy
// przez skalar
// Data: 6.01.2010
// (C)2010 mgr Jerzy Wałaszek
//---------------------------
function main()
{
var A = [];
var c, n, m, iw, ik, t;
// losujemy wymiary macierzy
m = Math.floor(
Math.random() * 8) + 2;
n = Math.floor(
Math.random() * 8) + 2;
// tworzymy tablice wierszy
for(iw = 0; iw < m; iw++)
A[iw] = new Array(n);
// wypełniamy macierz
// losowymi liczbami
for(iw = 0; iw < m; iw++)
for(ik = 0; ik < n; ik++)
A[iw][ik] = Math.floor(
Math.random() *
100);
// losujemy skalar c
c = Math.floor(
Math.random() * 21) - 10;
// wyświetlamy macierz
t = "<br/> m = " + m +
"<br/> n = " + n +
"<table border='1' " +
"cellspacing='0' " +
"cellpadding='2' " +
"style='border-collapse: " +
"collapse; " +
"margin: 8px 8px;' " +
"bordercolor='#000000'>";
for(iw = 0; iw < m; iw++)
{
t += "<tr>";
for(ik = 0; ik < n; ik++)
t += "<td style='" +
"text-align: right'>" +
A[iw][ik] + "</td>";
t += "</tr>";
}
// wyświetlamy skalar
t += "</table>c = " + c;
// mnożymy macierz przez skalar
for(iw = 0; iw < m; iw++)
for(ik = 0; ik < n; ik++)
A[iw][ik] *= c;
// wyświetlamy macierz wynikową
t +="<table border='1' " +
"cellspacing='0' " +
"cellpadding='2' " +
"style='border-collapse: " +
"collapse; " +
"margin: 8px;' " +
"bordercolor='#000000'>";
for(iw = 0; iw < m; iw++)
{
t += "<tr>";
for(ik = 0; ik < n; ik++)
t += "<td style='" +
"text-align: right'>" +
A[iw][ik] + "</td>";
t += "</tr>";
}
t += "</table><br/>";
document.getElementById("out")
.innerHTML = t;
}
</script>
</body>
</html>
|
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.