If문과 Select문의 비교

프로그래밍의 가장 기본 중의 하나가 If문에 의한 실행의 분기일 것이다.

단순한 분기에서부터 다중 분기까지 가능하다.

<문제>

성적 점수에 따라 평점(A, B, C, D, F 등으로 표시되는 것. 학점하고 구분)을 반환하는 함수를 작성하라.

1) If문을 이용한 함수 1

조건이 굉장히 복잡하게 보이지만, 계산 논리를 한번에 알아볼 수 있다.
이렇게 다중 분기하는 경우 다음과 같이 Select문을 생각해 볼 수 있다.

2)Select문을 이용한 함수

이 함수는 심각한 문제를 안고 있다. 즉, 85.5와 같은 점수에 대해서는 “F”를 줄 수 있기 때문이다.
Case 간에 비어있는 범위가 생길 수 있다는 점에서 유의해야 한다.

3)다시 If문을 이용한 함수

처음 If문을 간결하게 다시 작성하면 다음과 같이 할 수 있다.

여기서 중요하게 볼 것은 처음 조건문은 그 다음 조건문의 필터 역할을 한다는 것이다.

예를들어 85.5점은 처음 조건문부터해서 두번째 조건문까지 만족하지 않는다. 그러나, 세번째 조건문에서는 통과하여 평점을 받게 된다. 즉, 세번째 조건문에 ’90보다 작다’는 필터가 두번째의 조건문을 통해서 만들어진 것이다.

주의사항 : 제대로 된 필터 기능을 사용하고자 한다면, 점수가 고득점부터 저득점으로 내려오든, 저득점에서 고득점으로 올라가든, 일정한 순서로 조건문을 배열해야 한다는 점이다.

정령 Select문으로는 해결할 수 없는가?
이것을 Select문으로 바꾸면 다음과 같이 될 것이다.

4) 다시 Select문을 이용한 함수
Is라는 키워드를 사용하면 다음과 같이 작성할 수 있다.

이 방법도 Case 점수가 일정한 순서로 배치되어 가능하다는 점을 유의해야 한다.

Single.Parse()처럼 문자열을 객체로 만드는 방법

Single.Parse()는 문자열을 읽어서 그 값을 Single형 값으로 바꾸어준다.

myValue는 단정도 실수인 36.5가 된다.

이 방법은 파일에서 문자열을 읽어온 후에, 그 값을 전환하는데 있어서 매우 유용하다.

같은 방법으로 문자열을 읽어서 특정 객체를 생성시키려면 다음과 같이 하면 된다.

<작성하고자 하는 클래스>

1) String형 매개변수를 갖는 생성자를 선언한다.

그리고, 생성자 코드 안에 문자열을 해석할 InternalParse를 호출한다.

생성자 내용을 간단하게 하는 것이 좋다.

다른 함수(초기화메소드)를 이용하면, 인스턴스 변수에 대한 초기화를 생성자 이외에서도 할 수 있다.

2) InternalParse() 메소드를 작성한다.

3) Parse() 메소드를 작성한다.

이 때, 이 클래스의 인스턴스 없이 Parse()메소드를 호출하기 위해서는 Shared를 선언한다.

4)사용법

이름은 ‘김창선’이고 나이는 ‘4’인 mySon 인스턴스가 생긴다.

Visual Basic.NET의 구조

1. Visual Basic.NET의 소스파일에는 무엇이 들어있나?
– 확장자가 .vb인 소스코드 파일에서는 클래스를 정의

– 모듈(module) -> 암시적으로 공유되는 클래스의 특수 형태로 볼 수 있음

2. 클래스(class) 안에는 무엇이 들어 있나?
– 메소드(method)가 한 개 이상 들어 있음

3. 메소드 안에는 무엇이 들어 있나?
– 처리할 일을 지시하는 내용이 들어있음
-> 일련의 명령문이 들어 있음

4. 클래스를 해부한다면?
비베닷넷에서는 프로그램을 실행시키기 위한 Main함수, 클래스, 폼을 지정해야 함
시작 함수로서의 Main에 대한 정의는 어떻게 하는가?

콘솔프로그램을 작성하고자 한다면 다음과 같이 하면 된다.

5. Main함수를 가지고 윈도우 프로그램을 실행하려면?
1) Application.Run 메소드를 이용

프로그램을 끝낼 때는 Application.Exit()라고 하면 된다.
2) 폼의 ShowDialog메소드를 이용

3) 폼의 Show메소드를 이용

6. 메소드(method)란?
1) 뭔가를 하는 것
명령문 : 선언, 대입, 메소드 호출 등
2) 뭔가를 여러 번 반복하는 것
순환문 : For, While
For : 반복횟수를 알 때
While : 반복횟수를 모르며, 탈출조건은 알 때.
3) 조건에 따라 뭔가를 하는 것
분기문 : If/Else, Select Case

7. 그렇다면 클래스는 어떻게 설계해야 하는가?
– 클래스를 설계할 때믄 그 클래스 유형으로부터 생성되는 객체에 대해 생각한다.
객체에서 아는 것 -> 인스턴스 변수
객체에서 하는 것 -> 메소드
– 이 클래스가 무엇을 할 것인가(역할-> 메소드)를 먼저 생각한다.

– 클래스와 객체 사이에는 어떤 차이가 있는가?
클래스는 객체(인스턴스)를 만들기 위한 청사진 -> 그 유형의 객체를 만드는 방법을 알려주는 역할을 한다
클래스는 하나이나 객체는 여럿이 될 수 있다.

8. 점(.) 연산자
– 클래스 내부의 상태와 행동을 어떻게 참조/호출하는가?
– 점(.) 연산자는 객체의 상태(인스턴스 변수)와 행동(메소드)을 접근할 수 있게 해주는 역할을 한다.

9. 결국 비베닷넷의 프로그램은 무엇이라 할 수 있는가?
-클래스를 통해여 만들어진 객체들의 연극
– 비베닷넷 프로그램이란 객체가 다른 객체와 대화하는 것에 불과함
– 대화한다는 것은 객체에서 서로 다른 객체의 메소드를 호출하는 것을 의미함.

-> myDog에게 Bark하라고 말함
-> myDog에게 Bark하라는 메시지를 전함
-> myDog이라는 변수로 참조할 수 있는 객체를 이용하여 Bark()라는 메소드를 호출하라는 뜻

– 메시지 = 참조변수 + 점(.)연산자 + 메소드

[사이트]Object Mentor

객체지향 프로그램에 대한 많은 글들이 있는 사이트입니다.

http://www.objectmentor.com

이 사이트에 대한 자신의 설명은 다음과 같습니다.
    Object Mentor is the industryleader in transitioning enterprises, both large and small, to AgileSoftware Development. Our approach tackles the whole organizationincluding Executive Management, Project Management, Quality Assurance,Business Analysis, and Development. Our mentors have experience withall modern platforms and languages as well as embedded and legacysystems. We recognize and respect the different needs, challenges andconstraints of software organizations. Our experience allows us totailor our transitioning program to your organization’s needs.

Code Library 기능을 하는 DLL 만들기

Visual Basic 6.0에서 DLL만들기를 하려면, 다음과 같은 절차대로 실행한다.

1. VB에서 새 ActiveX DLL 프로젝트를 만든다

2. 프로젝트에서 클래스 모듈을 새로 만든다

3. 클래스 모듈의 Instancing 속성을 GlobalMultiUse로 설정한다. 그러면, 그 프로시저를 원하는 모든 프로젝트에 프로시저가 표시되며, 전역 프로시저처럼 실행된다.

4. 코드에서 필요한 모든 개체 라이브러리에 대해 참조를 설정한다.

5. 코드 라이브러리의 프로시저를 클래스 모듈에 Public Function 프로시저와 Sub 프로시저로 추가한다.

6. “프로젝트”메뉴의 속성을 클릭하고 Project Name속성에 대해 새 값을 입력하여 “프로젝트 이름”을 원하는 코드 라이브러리 이름으로 바꾼다.

7. DLL을 만든다. (compile)

 

DLL 사용하기

DLL에 참조를 설정하려면 “도구”메뉴의 “참조”를 클리하고 “찾아보기” 단추를 이용하여 DLL을 찾는다. 또는 declare문을 사용하여 DLL의 개별 프로시저에 대해 참조를 설정할 수도 있다.

 

Nero Burning Rom : 800M cd 오버 버닝

우선 님의 CD-RW가 800M cd 인식이 가능해야 합니다. 그러나 대부분 지원됩니다. 현재까지 800M cd를 직접인식하여구울수 있는 방법은 없으며 Overburn을 지원하는 Nero 5*** version이상에서 구우면 된다고 합니다. (오버번을지원하지 않는 easy cd 는 불가능합니다.)
700M를 약간 넘는 영화를 700M cd로 오버번 하는 것처럼 800M 시디를 넣어 오버번하면 된다고 하네요. 그러나 이렇게성공적으로 구워지더라도 구운 cd를 다른 cd-rom에서 잘 인식하는데는 또 문제가 있다고합니다. LG 48배속이상에서는 잘읽어진다는 이야기도 있네요. (어떤 사람은 20장 구워 6장만 읽을 수 있었다네요.)

네로오버버닝 라이팅 프로그램 세팅 방법
설정클릭–>
일반모드
  yellow maker 79 59 0 원래값 74 0 0
  red maker 85 59 73 원래값 74 40 73
전문가 모드
89 59 0 (오버버닝 레코딩 허가 체크) – 800M 용량 원래값 76 30 0

*위설정은 일반 레코딩때 그냥 나둬두 상관없음 단지 일반 레코딩시에는 오버버닝 레코딩 허가체크만 없애주면 됨

새작업 클릭—>
마법사가 뜨면 마법사 종료
멀티세션이 아님 체크
ISO모드: ISO레벨1, 포멧:모드1, 문자세트:ISO 9660, 졸리엣 체크,ISO제한 완화 둘다체크
볼륨기술어 : 줄리엣 선택 맨아래 Also use …..체크없앰
굽기 : 쓰기 체크 시디종료 체크 DISC-AT-ONCE 체크 이러고 쓰면 됩니다
구울때 오버버닝 하겠느냐는 메시지 나오면 예스

* 650, 700m 오버번 방법 먼저 700메가 짜리 공시디를 준비 합니다. 그리고 네로를 실행 시키고 멀티세션이 아님에 체크하시고.. 굽기에서 Disc-at-once 에 체크합니다 그리고 새작업 하시고..
파일에 설정에서 전문가 기능에서 오버버닝허가에 체크하시고.. 한 82분 정도로 맞춰 주시면
됩니다. 구으시면 메세지가 나올겁니다. 오버버닝 쓰기를 선택 하시면 될겁니다. 650메가 짜리는 최대 680메가까지 700메가 짜리는 최대 715메가 까지 가능한걸로 알고 있습니다. 가능용량은 각 시디마다 다릅니다 제가 이대로 해 본 결과 위의 800설정에서 모든 설정 대로 해 둔 다음에 그냥 600 이든 700 이든넣고 구운면 만약 용랴이 초과 되면 자동으로 오버 버닝 할 것인가 하고 묻더군요 그래서 자신의 구울려고 하는 영화 용량이 위에서 처럼 가능 용량이 되면 그냥 ok 하시고 구우면 되고 시디 용량 보다 적으면 묻지도 않고 바로 구우니 별 문제 없는 것 같군요.

홈페이지 자동 이동

주소가 바뀐 홈페이지들을 보면 몇초후..자동이동합니다 라는
자동이동 하는 것을 많이 봤을 것이다.
일반 웹 에디터에선 스크립트 마법사를 써서 할 수도 있고,
그냥 간단하게 <head></head>사이 아래 값만 넣어주면 된다.
<meta http-equiv="refresh" content="3;url=http://solarview.kunsan.ac.kr/lab">

3은 이동지연 되는 시간이다.
3초후에 이 홈페이지로 이동한다는 말이다

[사용팁]
– 홈페이지를 새 폴더로 업그레이드를 할 경우, 그 폴더로 이동시킬 수 있음