0% found this document useful (0 votes) Show
66 views 29 pages Copyright© © All Rights Reserved Share this documentDid you find this document useful?0% found this document useful (0 votes) 66 views29 pages Kĩ thuật lập trình - Chương 5 - Chia để trịJump to Page You are on page 1of 29 Bỷ tkuất iấp tré`k Zrafrceeg`f ]odk`gquos ]s. @fuyỏ` Ěủd ]kuẦ` HE KỆ tkồ`f ]ký`f ]g` Zcfo 8 FgỒg tkgỆu eý` kễd @ỗg mu`f eý`kad Dkƺƣ`f 3< Bỷtkuấttởdkủddkƺƣ`f tré`k Dkƺƣ`f 8< Iấp tré`kdô dắu trüd — Kêe`è`fdca Dkƺƣ`f 4< ĚỆ qug Dkƺƣ`f \=< ]kụ scgqucy iug — @kã`k dấ` Dkƺƣ`f ?< Dkgc ēỄtrỂ Dkƺƣ`f \>< Dkƺƣ`f 6< Zcfo 4 DKGC ĚỈ ]XỌ (Mgvgmo & Da`quor) Reward Your CuriosityEverything you want to read. Anytime. Anywhere. Any device. No Commitment. Cancel anytime. Viết một chương trình C để nhập hai ma trận và tính tích của hai ma trận đó được người dùng nhập vào. Người dùng sẽ nhập thứ tự của một ma trận và sau đó là các phần tử của nó và tương tự nhập vào ma trận thứ hai. Nếu các thứ tự của ma trận được thực hiện đúng như vậy mà chúng không thể được nhân với nhau, thì sau đó một thông báo lỗi được hiển thị. nhân 2 ma trận c++Danh Mục Bài Viết 1. Nhân ma trận trong C++ là gì?Một trong những chương trình rất phổ biến trong lập trình C là phép nhân ma trận. Phương pháp thủ công của phép nhân ma trận trong C liên quan đến một số lượng lớn các phép tính đặc biệt khi nói đến bậc cao hơn của ma trận, trong khi một chương trình trong C có thể thực hiện các phép toán với các mã ngắn, đơn giản và dễ hiểu. Phép nhân ma trận trong C có thể được thực hiện theo hai cách: không sử dụng hàm và bằng cách truyền ma trận vào các hàm. Trong bài này, chúng ta sẽ thảo luận về mã nguồn cho cả hai phương thức này với các kết quả đầu ra mẫu cho mỗi phương thức. Các mã nguồn của hai chương trình này cho phép nhân ma trận trong lập trình C sẽ được biên dịch trong Code :: Blocks . Chạy chúng trên Turbo C và các nền tảng khác có thể yêu cầu một vài sửa đổi đối với mã. Nhân 2 ma trận là một trong những nội dung căn bản trong khóa học lập trình C/C++ mà học viên cần nắm kiến thức thật vững. 2. Giới thiệu về nhân 2 ma trận c++Dưới đây tôi đã trình bày ba hình ảnh cho thấy cách nhân ma trận diễn ra. Ý tưởng tương tự như thể hiện trong những hình ảnh này đã được theo sau theo thứ tự trong mã nguồn chương trình cho phép nhân ma trận trong C. Xem xét hai ma trận A và B của đơn hàng 3 × 3 như hình dưới đây. Hãy biểu thị các phần tử của ma trận A bằng aij và các phần tử của ma trận B bằng bij như hình dưới đây. Các aij và bij này được yêu cầu làm đầu vào dưới dạng mảng trong chương trình C cho phép nhân Ma trận. Giới thiệu về phép nhân ma trận (1)Phép nhân ma trận trong C – hai ma trận A & B Hãy để ma trận kết quả khi nhân của A và B là X với các phần tử biểu thị bằng x ij như được hiển thị. Giới thiệu về phép nhân ma trận (2)Phép nhân ma trận trong ma trận kết quả C X Phép nhân ma trận diễn ra như hình dưới đây, và thủ tục tương tự này được sử dụng cho phép nhân các ma trận sử dụng C. Giới thiệu về phép nhân ma trận (3)Phép nhân ma trận trong phép nhân C – AxB Giải quyết thủ tục sẽ yêu cầu chín phép tính riêng biệt để thu được từng phần tử của ma trận cuối cùng X. Chín phép tính riêng biệt này đã được thực hiện bằng cách sử dụng rất ít dòng mã liên quan đến vòng lặp và chức năng trong chương trình C này cho phép nhân ma trận. 3. Lập trình nhân 2 ma trận trong C++Đề nhân 2 ma trận trong C++ có thể thực hiện bằng 2 cách: không sử dụng và truyền các mảng tới hàm. Dưới đây là 2 cách lập trình nhân 2 ma trận trong C++ Cách 1: Nhân 2 ma trận C++ mà không sử dụng hàm
include<stdio.h>int main() { }Chạy chương trình C++ trên sẽ cho kết quả như hình sau: Enter rows and columns of first matrix:3 3 Enter rows and columns of second matrix:3 3 Enter first matrix: 11 22 33 44 55 66 77 88 99 Enter second matrix: 11 22 33 44 55 66 77 88 99 The multiplied matrix result is: 3630 4356 5082 7986 9801 11616 12342 15246 18150 Cách 2: Nhân 2 ma trận C++ bằng cách dùng con trỏ và hàm
include<stdio.h>define ROW 3define COL 3int main() { }
//Get matrix data
void matrixInput(int mat[][COL])
{ }
//Function to multiply Matrices mat1 * mat2 = res
void matrixMultiply(int mat1[][COL], int mat2[][COL], int res[][COL])
{ }Chạy chương trình C++ trên sẽ cho kết quả như hình sau: Enter no of row and column for 1st matrix 3 3 Enter no of row and column for 2nd matrix 3 3 Enter First matrix 10 20 30 40 50 60 70 80 90 Enter Second matrix 10 20 30 40 50 60 70 80 90 Product of entered matrices : 3000 3600 4200 6600 8100 9600 10200 12600 15000 Các hoạt động liên quan đến vòng lặp và tính toán trong chương trình này là tương tự như cách nhân 2 ma trận không sử dụng hàm. Sự khác biệt duy nhất là chương trình phép nhân ma trận này trong C sử dụng các hàm để truyền các mảng ma trận. Có ba hàm do người dùng định nghĩa riêng biệt trong chương trình này để đọc dữ liệu, thao tác nhân ma trận phôi và hiển thị ma trận kết quả. Cả hai mã nguồn này đều không có lỗi và đã được thử nghiệm trên Code :: Blocks với các đầu vào như được hiển thị trong màn hình đầu ra. Các bạn nên lập trình nhân 2 ma trận sử dụng các hàm và con trỏ. |