07/24

이우석·2023년 8월 6일
0

SBS 국기수업

목록 보기
4/120

다차원 배열의 개념
다차원 배열이 실제 메모리에 저장되는 방식

  • 주소는 일반 배열과 동일하게 스택에 저장, 힙에서는 총 공간을 할당한 뒤, 첫번째 크기로 묶고 나누어 인덱스(0, 1, 2)를 할당, 나누어진 공간에서 각각의 공간에 인덱스를 할당
    다차원 배열의 관리를 위한 .GetLength()
  • Array.Lenght 는 다차원 배열일 시 배열의 총 사이즈를 반환하므로 .GetLength() 를 써야할 지 .Length를 써야할 지 판단에 주의

과제1
몇 명의 정보를 입력할 지 정하세요 :
1번째 사람의 키를 입력하세요(cm) :
1번째 사람의 몸무게를 입력하세요(kg) :
2번째 사람의 키를 입력하세요(cm) :
2번째 사람의 몸무게를 입력하세요(kg) :
...
...
n번째 사람의 키를 입력하세요(cm) :
n번째 사람의 몸무게를 입력하세요(kg) :

1번째 사람의 BMI 지수는 ##.##으로 (비만/정상/저체중)입니다
2번째 사람의 BMI 지수는 ##.##으로 (비만/정상/저체중)입니다
...
n번째 사람의 BMI 지수는 ##.##으로 (비만/정상/저체중)입니다
(단 정보를 2차원 배열로 저장할 것)

비만 인원 : #명
과체중 인원 #명
저체중 인원 : #명
정상 인원 : #명

가변 길이 배열
코드 참조

NCS 단위 시험 7월 31일

함수

#region [함수 개요]
// 함수는 코드의 재활용을 위해 사용한다.
// 함수는 어떠한 기능 수행하기 위한 여러 명령어들의 모음이다.
// 함수는 실행할 때 메모리 할당을 받고, 실행이 끝나면 메모리를 해지한다.
// 함수는 스택 메모리에 저장된다.
// 큰 의미에서 함수는 2가지 종류로 나눌 수 있다. 하나는 [표준 함수]이고 다른 하나는 [사용자 정의 함수]이다.
// 일반적으로 함수라고 하면 [사용자 정의 함수]를 의미한다.
// 사용자 정의 함수를 만들 때 주의 사항
// 1. C#에서, 함수는 함수 안에 만들 수 없으며, 클래스 밖에서 만들 수 없다.
// 2. 함수는 한정자 중 접근 지정 한정자를 꼭 지정해야 한다. 지정하지 않으면 private로 설정된다.
// 함수의 문법
// {한정자} {반환형} {함수명}({매개변수 자료형} {매개변수명}, ....)
// {
//     명령;
//     또 다른 명령;
//     ..
// }
// 접근 한정자 : public, protected, private 이 있다. 지정하지 않으면 기본적으로 private로 설정된다.
// 반환형 : 함수가 모든 실행을 마치고 외부에 반환 시킬 값의 형태(자료형)를 지정하는 부분
// 함수명 : 함수의 이름을 부여하는 부분이며, 함수를 사용할 때 이 이름으로 호출하게 됨.
//			함수명은 자유롭게 지을 수 있으나, 함수의 기능에 맞게 정하는 것이 권장된다.
// 매개변수자료형 매개변수명 : 함수 밖에서 값을 받아와 함수 안에서 사용 할 수 있게 해준다.
//                                                                필요한 만큼 만들 수 있으며, 생략할 수도 있다.
#endregion

접근 지정 한정자
public : class 밖의 다른 곳에서도 쓸 수 있음
private : class 안에서만 쓸 수 있음
protected : class 안과 해당 class를 상속한 클래스에서 쓸 수 있음

static 한정자
일반적으로 class 안의 함수들은 모두 동적이며 new 키워드를 통해 클래스를 생성해야만 사용할 수 있다
하지만 static 한정자를 사용한 함수는 정적 함수가 되어 new로 생성하지 않고도 사용할 수 있다. 대신 static 함수는 여러 제약이 따르며 대표적인 제약이 멤버 변수(class 안의 변수)를 사용할 수 없다는 것이다.

// 반환값과 매개변수가 없는 함수
static void test1()
{
	Console.WriteLine("Hello World!");
}

static void main()
{
	test1(); // test1 이 정적(static) 함수가 아니면 실행할 수 없음
}

매개변수
함수 밖에서 값을 받아와 함수 안에서 사용 할 수 있게 해준다.
필요한 만큼 만들 수 있으며, 생략할 수도 있다.

// 반환값과 매개변수가 없는 함수
static void test1()
{
	Console.WriteLine("Hello World!");
}

// 반환값은 있고 매개 변수가 없는 함수
static float test2()
{
	return (float)rd.NextDouble() * 10000;
}

// 반환 값은 없고 매개 변수가 있는 함수
static void test3(string myText)
{
	Console.WriteLine(myText);
}

// 반환값과 매개 변수가 있는 함수
static int test4(int myInt)
{
	return myInt * myInt;
}

함수에 대한 주석 달기 (비주얼 스튜디오와 연동되어 함수에 마우스 올리면 메시지 보이게됨)
함수 위에 커서를 두고 "/"키를 3번 연속 누르면

/// "/" 키를 3번 연속 눌러 아래 양식 자동 생성 가능
/// <summary>
/// 시작숫자부터 끝 숫자까지 플래그에 따라 전체, 홀수, 짝수를 출력함
/// </summary>
/// <param name="start">시작 숫자</param>
/// <param name="end">마지막 숫자</param>
/// <param name="flag">플래그. 0:전체, 1: 홀수, 2: 짝수</param>
/// <returns></returns>

위와 같이 생성되며 여기에 함수에 대한 설명을 넣을 수 있다

[과제2]
(화면에 숫자를 출력하는 함수를 만듭니다.
외부에서 출력할 숫자의 시작 숫자와 마지막 숫자를 받아서 사용합니다.
여기에 하나의 플래그를 둬서 플래그에 따라 전체숫자 출력(0), 홀수만 출력(1), 짝수만 출력(2)을 할 수 있도록 만들어주세요.
그리고 총 몇 개의 숫자를 출력했는지 반환해야합니다.)

출력 시작 숫자를 입력하세요:
출력 마지막 숫자를 입력하세요 :
출력 플래그를 선택하세요 (1. 전체, 2.홀수, 3.짝수) :

profile
게임 개발자 지망생, 유니티 공부중!

0개의 댓글