2019. 12. 15. 13:27
728x90

1. Windows 기능 켜기/끄기에 진입한다.

 - 방법 1
   Windows 설정 > 앱 > (우상단) 프로그램 및 기능 클릭
   좌상단에 있는 Windows 기능 켜기/끄기 클릭


 - 방법 2
   실행 창에 OptionalFeatures.exe를 입력


2. '인터넷 정보 서비스'에서 아래 항목을 체크한다.

 - World Wide Web 서비스
 - 웹 관리 도구 > IIS 관리 콘솔


3. 응용 프로그램 개발 기능에서 자신에게 필요한 항목을 체크한다.
 - 인터넷 정보 서비스 > World Wide Web 서비스 > 응용 프로그램 개발 기능


4. 실행
 - 시작 > Windows 관리 도구 > IIS(인터넷 정보 서비스) 관리자 실행
 - 왼쪽 트리를 열어 Default Web Site 선택
 - 오른쪽 웹 사이트 관리에서 '시작' 클릭


728x90
Posted by 아야카
2019. 10. 1. 19:27
728x90

설치

0. syntaxhighlighter를 다운로드 한 뒤 압축을 푼다.

SyntaxHighlighter_v3.0.83.zip


1. 블로그 관리 화면에서 꾸미기 - 스킨 편집으로 진입한다.
※ 블로그주소/manage/design/skin/edit#/


2. 우측 상단에 html 편집 버튼 클릭


3. 우측 상단에서 파일업로드 클릭 - 화면 하단에 [+추가] 버튼 클릭


4. syntaxhighlighter 폴더에서 scripts 폴더, styles 폴더 안에 있는 파일을 모두 업로드 한다.


5. HTML 탭으로 이동한다.

6. </head> 위에 아래 태그를 입력한 후 오른쪽 상단 구석에 있는 [적용] 버튼을 누른다.

<!-- SyntaxHighlighter 설정 시작-->
<script type="text/javascript" src="./images/shCore.js"></script>
<script type="text/javascript" src="./images/shLegacy.js"></script>
<script type="text/javascript" src="./images/shBrushBash.js"></script>
<script type="text/javascript" src="./images/shBrushCpp.js"></script>
<script type="text/javascript" src="./images/shBrushCSharp.js"></script>
<script type="text/javascript" src="./images/shBrushCss.js"></script>
<script type="text/javascript" src="./images/shBrushDelphi.js"></script>
<script type="text/javascript" src="./images/shBrushDiff.js"></script>
<script type="text/javascript" src="./images/shBrushGroovy.js"></script>
<script type="text/javascript" src="./images/shBrushJava.js"></script>
<script type="text/javascript" src="./images/shBrushJScript.js"></script>
<script type="text/javascript" src="./images/shBrushPhp.js"></script>
<script type="text/javascript" src="./images/shBrushPlain.js"></script>
<script type="text/javascript" src="./images/shBrushPython.js"></script>
<script type="text/javascript" src="./images/shBrushRuby.js"></script>
<script type="text/javascript" src="./images/shBrushScala.js"></script>
<script type="text/javascript" src="./images/shBrushSql.js"></script>
<script type="text/javascript" src="./images/shBrushVb.js"></script>
<script type="text/javascript" src="./images/shBrushXml.js"></script>
<link type="text/css" rel="stylesheet" href="./images/shCore.css">
<link type="text/css" rel="stylesheet" href="./images/shThemeDefault.css">
<script type="text/javascript">
SyntaxHighlighter.all();
</script>
<!-- SyntaxHighlighter 설정 끝-->



사용 방법

코드를 삽입하고 싶은 구간에 아래 내용을 입력한다.

<pre class="brush:언어">
</pre>

위와 같이 작성하면 본문에 아래와 같은 회색박스가 생긴다.
회색박스가 위치한 공간에 코드를 작성한 후 발행하면 된다.

html 모드에서 직접 코드를 작성할 경우 <, > 같이 태그에서 사용하는 특수문자가 제대로 표기되지 않으므로 코드는 에디터 모드에서 입력하는 것을 권장한다.

코드작성공간

참고로 일반 붙여넣기를 하거나 직접 작성하는 경우 <pre> 태그 사이에 <p> 태그가 추가되어 위에 출력되는 예제처럼 실제 출력 시에 <p></p> 태그가 출력된다. 글 작성 시 이 부분에 대해 체크할 필요가 있다.




참고 - 티스토리 코드블럭

티스토리의 새로운 글쓰기에는 코드블럭을 삽입할 수 있는 자체 기능이 있다.
티스토리에서 공식적으로 지원하는 기능인만큼 별도의 설치가 필요 없고 사용하기 쉽다는 장점이 있지만
새로운 글쓰기에서만 지원되는 기능이고, 별도의 커스터마이징을 할 수 없다.

사용 방법은 아래와 같다.

0. 블로그 설정에서 콘텐츠 - 설정으로 진입한 후 새로운 글쓰기를 [사용합니다]를 선택 후 [변경사항 저장]을 클릭한다.


1. 글쓰기 화면에 진입하면 상단 메뉴 중 […] 버튼을 클릭한 후 [<> 코드블럭]을 클릭한다.

2. 코드블럭 화면이 출력된다.
코드블럭 삽입에서 작성하고자 하는 언어선택한 뒤 본문에 코드를 작성한 후 확인을 클릭하면 본문에 코드가 삽입된다.

지원 언어: HTML, CSS, Javascript, Python, Java, C++, Kotlin, Swift, PHP, Go


본문에 삽입됐을 때의 모습 (C++ 기준)

포스팅 한 후의 모습 (C++ 기준)

728x90
Posted by 아야카
2018. 7. 25. 02:06
728x90

다음 소스 수행 결과로 예상되는 변수들의 구조를 그림으로 그리시오.


int int_value_A = 100;

int int_value_B = 200;

int *ptr_int1 = &int_value_A;

int *ptr_int2 = &int_value_B;


*ptr_int1 = *ptr_int2;

ptr_int1 = ptr_int2;


*ptr_int1 = *ptr_int2;에 의해 int_value_A의 값이 200이 된다. 

ptr_int1 = ptr_int2;에 의해 ptr_int1은 int_value_B를 가리키게 된다. 

따라서 소스에 의한 수행 결과는 아래와 같다. 



728x90
Posted by 아야카
2018. 7. 25. 01:28
728x90

구조체를 이용해 5명의 국영수의 평균을 구하시오

struct student
{
	char	name[30];
	float	korean;
	float	english;
	float	math;
	float	avg;
};

int main()
{
	struct student *ptr_student_new = NULL;
	int students = 5;

	ptr_student_new = (struct student*) malloc(sizeof(struct student) * students);

	*(ptr_student_new + 0) = { "Lee", 81, 79, 99, 0 };
	*(ptr_student_new + 1) = { "Kim", 80, 82, 78, 0 };
	*(ptr_student_new + 2) = { "Park", 79, 85, 75, 0 };
	*(ptr_student_new + 3) = { "Hong", 75, 87, 82, 0 };
	*(ptr_student_new + 4) = { "Jung", 90, 89, 65, 0 };

	struct student average = { 0, };

	for (int i = 0; i < students; i++) 
	{
		average.korean = average.korean + (ptr_student_new + i)->korean;
		average.english = average.english + (ptr_student_new + i)->english;
		average.math = average.math + (ptr_student_new + i)->math;
	}

	average.korean = average.korean / 5;
	average.english = average.english / 5;
	average.math = average.math / 5;

	cout << "국어 평균: " << average.korean << "\n";
	cout << "영어 평균: " << average.english << "\n";
	cout << "수학 평균: " << average.math << "\n";

	free(ptr_student_new);

	return 0;
}

 malloc으로 동적할당할 한 후의 활용에 대한 연습문제. 문제를 푸는 것 자체는 어렵지 않았으나 malloc의 크기를 따로 구해서 for문을 돌리려는 삽질을 하느라 시간이 조금 걸렸다. 생각해보면 동적할당은 애초에 어느정도로 할당할지에 대한 값이 있을테니 해당 값을 별도로 저장해서 관리하면 될 일이었다. _msize(void)라는 함수를 알아내긴 했지만 비표준이라 사용하기도 곤란한 함수였다. 애초에 동적할당은 변수를 이용해서 하거나 특정 값을 이용해서 할테니 그 값만 따로 관리해주면 될 일이어서 결과적으로 삽질을 한게 되었다. 



728x90
Posted by 아야카
2018. 3. 20. 02:30
728x90

변수와 변수의 값을 바꿀 때 보통은 아래와 같이 한다.

void swap(int& a, int& b)
{
	if (a != b)
	{
		int temp = a;
		a = b;
		b = temp;
	{
}


XOR 연산자를 이용해서 연산할 경우에는 temp 변수를 생성하지 않고 할 수 있다. 방법은 아래와 같다.

void swap(int& a, int& b)
{
	if(a != b)
	{
		a = a ^ b
		b = b ^ a
		a = a ^ b
	}
}

XOR 연산은 교환법칙과 결합법칙이 성립한다.

이 법칙들을 이용해서 계산 과정을 살펴보면 아래와 같다.

c = a ^ b

d = b ^ c = b ^ (a ^ b) = b ^ a ^ b = a ^ b ^ b = a ^ 0 = a

e = c ^ d = (a ^ b) ^ a = a ^ b ^ a = a ^ a ^ b = 0 ^ b = b


따라서 XOR 연산을 위와 같이 진행하면 두 값은 swap 된다.

728x90
Posted by 아야카
2017. 11. 5. 22:58
728x90

ROUND(값, 자리 수) - 지정한 자리수에서 반올림한다.

ROUNDUP(값, 자리 수) - 지정한 자리수에서 올림한다.

ROUNDDOWN(값, 자리 수) - 지정한 자리수에서 내림한다.


※ 자리 수는 0으로 할 경우 정수로 출력되며, , 양수는 소수 자리에서, 음수는 정수 자리에서 처리를 한다.


예시)

=ROUND(12.25, 1) >> 12.3

=ROUND(12.25, 0) >> 12

=ROUND(12.25, -1) >> 10

728x90
Posted by 아야카
2017. 11. 1. 00:48
728x90

sumproduct(배열1, 배열2, 배열3...)

각 배열에 대응하는 순서끼리 곱한 것을 합한다.
예를 들어 sumproduct(A1:A3, B1:B3, C1:C3)로 설정할 경우 각 배열은 아래와 같다.
배열1 - A1, A2, A3
배열2 - B1, B2, B3
배열3 - C1, C2, C2
이 때 sumproduct의 계산은 ((A1*B1*C1)+(A2*B2*C2)+(A3*B3*C3))이 된다.
범위가 하나라도 다른 경우가 있을 경우 곱하기를 진행하는 과정에서 에러가 나와 #VALUE가 뜬다.
따라서 각 배열의 크기와 형태가 모두 동일해야 한다.

단순히 이런 형태이기만 해서는 활용이 어렵지만 배열1의 위치에 범위 조건을 걸어주는 방식을 응용하면 좀 더 활용도를 높일 수 있다.

오른쪽 자산에 있는 값들은 왼쪽에 있는 각 브랜드의 가격*수량의 총합이다.
A의 자산에는 sumproduct((B3:B8=F3)*1, C3:C8, D3:D8)이 작성되어 있다.
(B3:B8=F3)*1을 이용해서 범위를 설정하고, 나머지 배열 인자들은 조건문이 설정한 범위를 따라간다.
조건문은 *로 연결하는 것으로 여러개를 설정할 수 있다.
sumproduct((B3:B8=F3)*(C3:C8>100)*1, C3:C8, D3:D8)으로 설정하면
브랜드가 A이면서 가격이 100보다 비싼 곳을 범위로 설정하여 결과가 나온다.
이와 같은 형태로 특정 조건에 해당하는 범위의 합계를 구할 수 있다.

728x90
Posted by 아야카