[C#] 행렬 계산기 (4) - 이차원 배열로 더 간단하게 표현

2020. 10. 20. 22:30·제작/기타 프로그램
반응형

코드 :

using System;

namespace matrixNamespace {
	class Matrix {
		int row;
		int column;
		
		static int[][] matrix;
		
		public Matrix() {
			Console.WriteLine("Matrix Create...");
			
			Console.Write("input the Row, Column (ex. 3 3) : ");
			string input = Console.ReadLine();
			string[] row_column = input.Split(' ');
			
			
			this.row = Convert.ToInt32(row_column[0]);
			this.column = Convert.ToInt32(row_column[1]);
			
			matrix = new int[row][];
			
			makeMatrix();
			
			printMatrix();
		}
		
		public Matrix(int row, int column) {
			this.row = row;
			this.column = column;
			
			Array.Resize<int>(ref matrix[0], row);	
		}
		
		static public void makeMatrix() {
			
			for(int i = 0; i < matrix.Length; i++) {
				Console.Write("input the columns (ex.1 2 3) : ");
				string line = Console.ReadLine();
				string[] columns = line.Split(' ');
				
				int[] columnsInt = new int[columns.Length];
				
				for (int j = 0; j < columns.Length; j++) {
					columnsInt[j] = Convert.ToInt32(columns[j]);
				}
				matrix[i] = columnsInt;
			}
		}
		
		static public void printMatrix() {
			for(int i = 0; i < matrix.Length; i++) {
				for(int j = 0; j < matrix[i].Length; j++) {
					Console.Write($"{matrix[i][j]} ");
				}
				Console.Write("\n");
			}
		}
		
	}
	class matrixCode {
		static void Main() {
			Matrix m1 = new Matrix();
		}
	}
}

 

메소드 하나하나 봐보자

 

public Matrix() {
	Console.WriteLine("Matrix Create...");
	
	Console.Write("input the Row, Column (ex. 3 3) : ");
	string input = Console.ReadLine();
	string[] row_column = input.Split(' ');
	
	
	this.row = Convert.ToInt32(row_column[0]);
	this.column = Convert.ToInt32(row_column[1]);
	
	matrix = new int[row][];
	
	makeMatrix();
	
	printMatrix();
}

1. 생성자

행과 열을 입력하고자 한다.

Console.Write(...)

string input = Console.ReadLine();

으로 행과 열을 입력받는다.

 

그러고 Split 메서드를 사용하여 분할하여 row_column 배열에 할당한다.

 

그러고 Matrix 클래스 내의 인스턴스인 row와 column에 할당한다.

this.row = Convert.ToInt32(row_column[0]);

this.column = Convert.ToInt32(row_column[1]);

부분이 다음과 같다.

 

그러고 row만큼의 matrix를 생성한다.

그러고 matrix, 행렬을 만들기 위한 메소드인 makeMatrix를 실행한다.

 

static public void makeMatrix() {
	
	for(int i = 0; i < matrix.Length; i++) {
		Console.Write("input the columns (ex.1 2 3) : ");
		string line = Console.ReadLine();
		string[] columns = line.Split(' ');
		
		int[] columnsInt = new int[columns.Length];
		
		for (int j = 0; j < columns.Length; j++) {
			columnsInt[j] = Convert.ToInt32(columns[j]);
		}
		matrix[i] = columnsInt;
	}
}

 

2. makeMatrix 메서드

위 생성자에서 만들어둔 matrix의 일차원 배열, row 값만큼 For문을 이용해 반복한다.

그 반복문 안에서는 열, column 값을 받는다.

columnsInt라는 배열 변수를 새로 만들고 이를 matrix[i]에 할당하면서 열의 값들을 matrix에 할당한다.

 

static public void printMatrix() {
	for(int i = 0; i < matrix.Length; i++) {
		for(int j = 0; j < matrix[i].Length; j++) {
			Console.Write($"{matrix[i][j]} ");
		}
		Console.Write("\n");
	}
}

 

3. printMatrix 메서드 (출력 함수)

이중 반복문(for문)을 사용하여 출력한다. 이는 나중에 곱셉에서도 비슷하게 활용될 것이다.

 

이상으로 마치겠다. 다음에는 더하기, 빼기, 곱하기까지 되는 계산기를 만들어 볼 것이다.

많이들 기대바랍니다!

반응형
저작자표시 (새창열림)

'제작 > 기타 프로그램' 카테고리의 다른 글

[C#] 행렬 계산기 (6) - 전체 코드  (0) 2020.10.21
[C#] 행렬 계산기 (5) - 곱셈 계산  (0) 2020.10.21
[C#] 행렬 계산기 (3) - 대리 연산자를 활용하여 함축화  (0) 2020.10.15
[C#] 행렬 계산기(2) - 더하기, 빼기 메소드  (0) 2020.10.11
[C#] 행렬 계산기 (1) - 행렬 생성 및 입력 출력  (0) 2020.10.09
'제작/기타 프로그램' 카테고리의 다른 글
  • [C#] 행렬 계산기 (6) - 전체 코드
  • [C#] 행렬 계산기 (5) - 곱셈 계산
  • [C#] 행렬 계산기 (3) - 대리 연산자를 활용하여 함축화
  • [C#] 행렬 계산기(2) - 더하기, 빼기 메소드
Dev.Poinguinie
Dev.Poinguinie
게임, 코딩 블로그 입니다. 여러 일상적인 글도 올려요! 많이 봐주세요! 감사합니다.
  • Dev.Poinguinie
    펭귄교수
    Dev.Poinguinie
    • 분류 전체보기
      • 새티스팩토리
        • 정보
        • 모드
        • 리뷰
      • 펠월드
        • 정보
        • 패치노트
      • 게임
        • 스팀 세일
        • 테라리아
        • 디펜서바이버
      • App
        • Kotlin
        • Flutter
      • Front End
        • HTML
        • JavaScript
        • React
      • Back End
        • Node.js
      • Docker
        • Docker 강의
        • Docker Project
      • 프로그래밍
        • AI
        • Chrome Extension
        • Markdown
        • Python
        • C++
        • Linux
        • Error
        • Tool
      • Computer Science
        • Algorithm
        • Network
      • 게임 프로그래밍
        • 유니티
      • 제작
        • 웹사이트
        • 기타 프로그램
      • 일상
        • 자작시
        • 노래 추천 및 정보
        • 블로그 운영
        • 내일의 모든 것
        • 오블완 챌린지
      • 리뷰
        • 식당 리뷰
        • IT 리뷰
  • 최근 글

  • 링크

    • 새티스 팩토리 모드
    • 깃허브 블로그
    • 깃허브 프로필
  • 공지사항

    • 티스토리 스킨 변경
    • 파이썬 코딩 강의 공지사항
  • hELLO· Designed By정상우.v4.10.3
Dev.Poinguinie
[C#] 행렬 계산기 (4) - 이차원 배열로 더 간단하게 표현
상단으로

티스토리툴바