반응형

오늘은 C언어 프로그래밍에서 연속적인 자료형을 사용하는 방법에 대해서 알아보겠습니다.

C언어에서는 기본적으로 자료형을 사용할 경우 하나씩 선언해야 합니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{

	int class1 = 0;
	int class2 = 1;
	int class3 = 2;
	int class4 = 3;
	int class5 = 4;


	printf("\t class1 = %d입니다.\n", class1);
	printf("\n");
	printf("\t class2 = %d입니다.\n", class2);
	printf("\n");
	printf("\t class3 = %d입니다.\n", class3);
	printf("\n");
	printf("\t class4 = %d입니다.\n", class4);
	printf("\n");
	printf("\t class5 = %d입니다.\n", class5);
	printf("\n");

}

5개의 class 변수를 사용하기 위해서는 5번 자료형을 선언합니다.

출력도 동일하게 5번 함수를 사용해야 합니다.

자료형을 여러번 선언하게 되면 관리하기가 매우 힘들어지고 코드도 복잡하고 길어지게 됩니다.

수정을 할 경우 더욱더 힘들어지겠죠.

이런 문제를 해결하기 위해서 C언어에서는 배열이라는 자료형을 사용합니다.


배열 자료형은 어떤 자료형이라도 선언이 가능합니다.

선언 방법은 매우 간단합니다. 자료형 뒤에 '[개수]'로 정의하면 됩니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{

	int array1[10] = { 1,2,3,4,5,6,7,8,9,10 };

	for (int i = 0; i < 10; i++)
	{
		printf("\t %d 배열은 %d입니다.\n", i+1, array1[i]);
		printf("\n");
	}	
	return 0;
}

int 자료형 10개를 배열로 선언했습니다.

배열로 선언할 경우 초기화를 하기 위해서 선언부 뒤에 개수만큼 초기화해주세요.

초기화 값이 없을 경우는 0으로 초기화됩니다.

for 반복문을 사용해서 10개의 배열을 출력할 수 있습니다.

배열을 사용하면 이렇게 간단하게 코딩을 할 수 있습니다.

 

 

 

배열을 선언하게 되면 순차적으로 자료형 크기만큼 메모리에 연결됩니다.

배열 설정 값을 확인하기 위해서는 0번 주소부터 접근을 해야 합니다.

이유는 배열은 주소 번지로 위치를 찾기 때문에 주소가 앞쪽에 있습니다.

간단하게 자료형 앞쪽 주소부터 확인한다고 생각하시면 됩니다.

그럼 이번에는 배열 주소를 함께 확인해보겠습니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{

	int array1[10] = { 1,2,3,4,5,6,7,8,9,10};

	for (int i = 0; i < 10; i++)
	{
		printf("\t %d 배열 주소는 %p이고 값은 %d입니다.\n", i+1, array1[i], array1[i]);
		printf("\n");
	}	
	return 0;
}

"%p"를 사용해서 주소를 출력할 수 있습니다.

배열 주소가 순차적으로 출력되는 것을 알 수 있습니다.

배열은 다양한 구조로 사용이 가능합니다.


열과행을 별도 선언하게되면  다차원 배열을 생성할 수 있습니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{

	int array1[10][2];

	for (int i = 0; i < 10; i++)
	{
		for (int j = 0; j < 2; j++)
		{
			array1[i][j] = i + (j * 10);
		}
	}



	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 10; j++)
		{
			printf("\t %d",array1[j][i]);
		}
		printf("\n");
	}
	
		
	return 0;
}

자료형 [행][열]로 자료형을 선언하면 배열이 다중 배열로 변경됩니다.

다중배열은 for반복문을 사용해서 초기화해줍니다.

출력도 동일하게 for반복문을 사용합니다.

출력 결과 2행 10열로 정상적으로 출력되었습니다.

대중 배열은 행 개수가 증가하게 되면 계산이 점점 복잡해집니다.

대부분 2중 배열 정도를 많이 사용합니다.

 

 

 


for반복문 초기화가 힘들다면 바로 초기화도 가능합니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{

	int array1[3][3] = {
		{1,2,3},
		{4,5,6},
		{7,8,9} 
	};

	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			printf("\t %d", array1[i][j]);
		}
		printf("\n");
	}		
		
	return 0;
}

바로 초기화하기 위해서는 "{행 초기화}"를 사용해서 한 행씩 초기화하면 됩니다.

출력 결과도 3행 3열로 확인됩니다.

배열은 C언어 프로그래밍에서 매우 중요한 내용입니다.

다양한 배열을 사용해서 프로그래밍해보세요.

감사합니다.

반응형
반응형

오늘은 R프로그래밍은 퀀트 투자와 같은 통계 자료, 빅 데이터를 사용하기 편리한 개발 언어입니다.

인터 프린트 방식으로 결과를 바로 확인할 수 있습니다.

C언어에서는 어렵게 수학공식을 계산하지만 R프로그래밍에서 많은 함수를 지원하고 UI 적 출력이 매우 훌륭합니다.

오늘은 R프로그래밍 자료형에 대해서 알아보겠습니다.

R프로그래밍은 별도 컴파일 없이 입력과 동시에 출력을 바로 확인할 수 있습니다.

기본적으로 산술 연산은 바로 사용이 가능합니다.

+ , -, *, / 기본 4가지 산술 연산자와

^ 또는 ** 산술 연산자로 승수를 구할 수 있습니다.

%%, %/% 산술 연산자를 나머지 값, 나누기의 결과를 정수로 표시할 수 있습니다.

원하는 내용을 입력하고 엔터를 클릭하면 바로 결과를 확인할 수 있습니다.

 

 

 

결과 값은 '>' 입력이 없는 상태에서 출력됩니다.

별도 출력 없이도 기본 계산을 바로 확인할 수 있어 매우 편리합니다.


논리 연산자는 C언어와 동일한 부분이 많습니다.

< : 왼쪽 피연산자 보다 크다.

<= : 왼 피연 사자보다 크거나 같다.

> : 왼쪽 피연산자 보다 작다.

>= : 왼쪽 피연산자 보다 크거나 작다

== : 같다

!= : 다르다

! : 부정

| : OR

& : AND

isTRUE(x) : 입력 내용 TRUE 판단

논리 연산을 사용해서 다양한 결과를 확인할 수 있습니다.

R프로그래밍은 변수 타입을 선언할 필요 없습니다.


변수 뒤에 '<-' 입력을 사용해서 자료형을 입력합니다.

자료형은 , 정수(integer), 실수(numeric), 복소수(complex), 문자열(character), NA 등을 사용합니다.

변수 선언 후 자료형을 입력하면 자동으로 할당됩니다.

자료형은 고정 형태가 아니기 때문에 선언한 변수를 자료형을 마음대로 변경할 수 있습니다.

단 산술 연산 시에는 같은 자료형만 산술을 할 수 있습니다.

만약 다른 경우 "이항 연산자에 수치가 아닌 인수입니다" 메시지를 확인할 수 있습니다.

변수 선언 후 어떤 내용을 추가했는지 알고 싶다면 별도 확인이 가능합니다.

 

 

 

R Studio에서는 오른쪽 상단에 입력된 자료형을 확인할 수 있습니다.


자료형을 확인하기 위해서는 class, typeof, mode 함수를 사용할 수 있습니다.

각 함수를 사용해서 아규먼트의 자료형을 출력해줍니다.

class는 R 객체지향 관점 자료형을 사용하고, typeof, mode는 원시 자료형을 사용합니다.

반대로 자료형이 맞는지 확인할 수 있는 함수가 있습니다.

is. 형태로  integer, character, numeric, complex, na 각 자료형 이름으로 확인이 가능합니다.

R프로그래밍은 간단하게 자료형을 선언하고 산술 연산을 통해서 빠른 계산이 가능합니다.

고급 언어에서 힘들게 사용하는 부분을 매우 간결하게 변경했습니다.

그만큼 코딩적인 부분보다는 통계적인 내용을 확인하기 위한 기본 방법이라고 생각됩니다.

오늘은 R프로그래밍 자료형에 대해서 알아봤습니다.

감사합니다.

반응형
반응형

오늘은 C언어에서 조건문과 함께 많이 사용되는 반복문에 대해서 알아보겠습니다.

반복문은 참, 거짓을 구분하면서 거짓일 경우 루프를 빠져나가는 형태를 말합니다.

C언어에서는 크게 for, while, do while 3가지가 있습니다.

첫번째 for에 대해서 알아보겠습니다.

for 문은 시작점, 종료점, 증가점 3개의 구문으로 구분됩니다.

시작점은 변수를 선언하고 초기합니다.

종료점은 '참,' '거짓'을 구분합니다.

마지막 증가점은 선언된 변수를 조건에 맞게 증가시킵니다.

 

 

 

fot 시퀀스는 사진 처럼 선언된 조건 식에 부합되지 않을 경우 루프를 빠져나갑니다.

즉 a < 10  조건식은 a가 10보다 클 경우 '거짓'으로 판단되는 겁니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{
	
	for (int a = 0; a < 10; a++)
	{
		printf("\t카운트 = %d\n",a);
		printf("\n");
	}	
}

코드 내용은 0 ~ 9까지 카운트를 출력할 수 있습니다.

출력 결과는 아래와 같습니다.

for 시작점은 0에서 부터 a가 10보다 작은 9까지 확인하고 루프를 빠져나왔습니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{
	
	for (int a = 0; a < 10; a++)
	{
		printf("\t카운트 = %d\n",a);
		for (int b = 0; b < 2; b++)
		{
			printf("\t카운트  친구 = %d\n", b + a);
		}
		printf("\n");
	}	
}

for 문 내부에 다시 for 문을 사용할 수 있습니다.

for 문은 연속으로 사용도 가능하지만 최대한 for 문 내부에서는 한번 정도만 사용해주세요.

for 문을 연속 3번 사용하게되면 연산 속도가 매우 느려지는 것을 확인할 수 있습니다.


두번째는 while문을 알아보겠습니다.

for문은 조건식을 확인하기 위해서 특정 개수 만큼만 동작을 합니다.

하지만, while문은 조건이 거짓일 때 까지 무한 반복합니다.

 

 

 

while문 다음에 오는 조건문이 '거짓'일 경우만 루프를 빠져 나갑니다.

조건문에 부합하지 않을 경우 무한으로 반복하기 때문에 메임 시퀀스에 많이 사용합니다.

처음 카운트 코드를 while문으로 변경해보겠습니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{
	
	int a = 0;
	while (a < 10)
	{
		printf("\t while 카운트 = %d\n", a++);
		printf("\n");
	}

	return 0;
}

for문 보다 조금더 간결하게 코딩을 할 수 있습니다.

출력 결과는 기존과 동일합니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{
	
	int a = 0;
	while (a < 10)
	{
		printf("\t while 카운트 = %d\n", ++a);
		printf("\n");
	}

	return 0;
}

위 코드는 내용은 동일하지만 a증가 "++"을 앞쪽에 사용했습니다.

 

 

 

출력 결과도 0이 아닌 1부터 출력이 됩니다.

여기서 확인해야할 내용은 "++" 증감연산자는 변수 앞에 올경우 변수를 확인 전 증감되어 계산됩니다.

"++" 증감연산자가 변수 뒤에 올 경우는 변수를 사용 후 증감 됩니다.

그래서 처음 출력 값이 0, 1로 변경되는 것을 알 수 있습니다.

"++" 증감 연산자는 중요한 연산자이기 때문에 꼭 기억해주세요.

반복문에서 루프를 그냥 빠져나오기 위해서는 'break'를 사용할 수 있습니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{
	
	int a = 0;
	while (a < 10)
	{
		printf("\t while 카운트 = %d\n", ++a);
		printf("\n");

		if (a == 5)
		{
			printf("\t while 중지 = %d\n", ++a);
			printf("\n");
			break;
		}
	}

	return 0;
}

while문 내부에 if문을 사용해서 5일 경우 빠져나오게 코드를 적용했습니다.

출력 결과는 5다음 중지 했기 때문에 증감 연산자로 증가한 6이 출력되고 중단되는 것을 알수 있습니다.


세번째 do while문에 대해서 알아보겠습니다.

do while문while문을 사용할 경우 바로 빠져나오게 하면 루푸를 확인하지 않는 단점을 보안하기 위해서 사용하는 반복문입니다.

처음 do문 내부에서 로직을 확인하고 while문에서 참, 거짓을 판단합니다.

즉 1번은 무조건 실행되는 반복문입니다.

a변수에 100을 입력하고 다음 while문에서 a를 확인할 경우 거짓으로 판단되어 루프를 빠져 나옵니다.

시퀀스도 do문 실행 이후 while문과 동일하게 동작합니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{
	
	int a = 100;
	do {
		printf("\t do 실행 카운트 = %d\n", a);
		printf("\n");
	} while (a < 10);
	printf("\t do while 종료 = %d\n", a);
	printf("\n");	

	return 0;
}

a 변수를 100으로 초기화 하면 while문에서는 거짓이지만 do문을 먼저 실행합니다.

출력 결과 한번만 출력하고 do while문을 빠져나오는 것을 확인할 수 있습니다.

정상적으로 모두 출력하기 위해서는 아래 코드 처럼해야 합니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{
	
	int a = 0;
	do {
		printf("\t do 실행 카운트 = %d\n", a);
		printf("\n");
		a++;
	} while (a < 10);
	printf("\t do while 종료 = %d\n", a);
	printf("\n");	

	return 0;
}

a 변수를 0으로 초기화 할 경우 참이기 때문에 while문이 정상적으로 동작합니다.

 

 

 

출력 결과 조금 다른 내용을 확이할 수 있습니다.

while문에서는 9까지만 출력되었는데 do while문에서는 10까지 한번 더 출력됩니다.

조건식을 확인 전에 출력하기 때문에 무조건 한번을 더 확인해서 결과 값이 다르게 출력되었습니다.

while문, do while문은 미묘하지만 복잡한 시퀀스를 동작하기 위해서는 반드시 두 특징을 알고 있어야 합니다.

오늘은 C언어 반복문에 대해서 알아봤습니다.

감사합니다.

반응형
반응형

R 프로그램밍은 1993년 뉴질랜드에 위치한 오클랜드 대학교에서 개발된 통계 및 그래프 작업을 위한 인터프린터 언어입니다.

퀀트 투자를 공부하기 위해서 통계 프로그램을 찾다가 R프로그래밍을 알게되었습니다.

투자에 필요한 다양한 크롤링 정보를 활용할 수 있어 많은 사람들이 찾는다고 합니다.

요즘은 Python도 많이 사용하는 분위기입니다.

그럼 오늘 주제인 Windows에서 R을 설치해보겠습니다.

R-Project 페이지로 이동해주세요.

www.r-project.org/

 

R: The R Project for Statistical Computing

 

www.r-project.org

 

이동하면 상단에 "download R"을 확인할 수 있습니다.

클린하면 연결된 URL을 확인할 수 있습니다.

 

 

 

원하시는 URL을 클릭해주세요.

전 최 상단을 클랙해서 이동했습니다.

URL 클릭하면 Install R 페이지로 이동합니다.

우린 Windows에 설치하기 위해서 3번째 항목인 "Download R for Windows"를 클릭해주세요.

그럼 버전을 확인할 수 있습니다.

가장 기본이되는 base를 선택해주세요.

최신 버전 R 4.0.3을 확인할 수 있습니다.

클릭하면 다운로드가 시작됩니다.

R을 설치할때는 경로가 한글을 포함하면 안됩니다.

또한 사용자 이름도 영문으로 되어 있어야 합니다.

꼭 기억해주세요.

설치를 클릭하면 R이 정상적으로 설치 완료됩니다.

마지막으로 R을 프로그래밍하기 위해서 IDE를 연결할 수 있는 프로그램을 설치하겠습니다.

다양한 프로그램이 있지만 많이 사용하는 RStudio를 설치하겠습니다.

 

 

 

rstudio.com/

 

RStudio | Open source & professional software for data science teams

RStudio provides free and open source tools for R and enterprise-ready professional software for data science teams to develop and share their work at scale.

rstudio.com

상단에서 다운로드 메뉴를 클릭하면 다운로드 선택 페이지로 이동합니다.

기본인 프리버전을 클릭해주세요.

 

 

 

그럼 버전을 확인할 수 있습니다.

다운로드를 클릭해서 파일을 저장합니다.

다운로드된 셋업 파일을 실행하여 RStudio를 설치해주세요.

 

RStudio 실행 화면입니다.

아무 문제가 없었다면 RStudio를 바로 실행할 수 있습니다.

오늘은 Windows에서 R 설치 및 RStudio 설치에 대해서 알아봤습니다.

감사합니다.

 

반응형
반응형

C언어 프로그래밍 2번째 시간에는 자료형에 대해서 배웠습니다.

오늘은 자료형을 사용한 조건문을 알아보겠습니다.

조건문이란 자료형을 사용한 연산자에 참, 거짓을 확인하는 제어 로직입니다.

C언어는 <, <=, ==, !=, >, >= 6가지 기본 연산자를 사용합니다.

모든 기준은 외쪽 피연산자를 기준으로 생각하면 됩니다.

'<' 연산자는 오픈되어 있는 방향으로 큰 값을 의미합니다.

'<' 오른쪽이 큽니까?

'>' 왼쪽이 큽니까?

'<' 기본 연산자를 사용해보겠습니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{
	
	bool 정답 = 0;

	정답 = 9 < 7;

	printf("7은 9보다 큽니까? %d \n", 정답);
	printf("\n");

	return 0;
}

'정답'이란 변수를 bool 자료형을 사용해서 지정합니다.

'9 < 7' 조건문은 9보다 7이 급니까 입니다.

출력 결과 bool 자료형 '정답'에는 0이 지정됩니다.

bool 자료형은 1byte로 0, 1만 사용됩니다.

0은 거짓, 1은 참으로 생각하면 쉽습니다.

 

 

 

출력 결과 7은 9보다 작기 때문에 거짓을 출력합니다.

그럼 전체 조건문을 사용해서 테스트 해보겠습니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{
	
	bool 정답 = 0;

	int 왼쪽 = 9;
	int 오른쪽 = 7;
	
	정답 = 왼쪽 < 오른쪽;
	printf("9 < 7 =  %d \n", 정답 );
	printf("\n");

	정답 = 왼쪽 <= 오른쪽;
	printf("9 <= 7 =  %d \n", 정답);
	printf("\n");

	정답 = 왼쪽 == 오른쪽;
	printf("9 == 7 =  %d \n", 정답);
	printf("\n");

	정답 = 왼쪽 != 오른쪽;
	printf("9 != 7 =  %d \n", 정답);
	printf("\n");

	정답 = 왼쪽 > 오른쪽;
	printf("9 > 7 =  %d \n", 정답);
	printf("\n");

	정답 = 왼쪽 >= 오른쪽;
	printf("9 >= 7 =  %d \n", 정답);
	printf("\n");

	return 0;
}

6가지 연산자를 사용해서 출력했습니다.

결과는 아래와 같습니다.

왼쪽 기준으로 9는 7보다 크기 때문에 거짓 0이 출력되었습니다.

'>' 조건문에서는 왼쪽 피연산자가 큰 것을 의미하기 때문에 참 1이 출력되었습니다.

이처럼 연산자를 다양한 조건을 분리할 수 있습니다.

이번에는 거짓, 참을 구분할 수 있는 제어문을 알아보겠습니다.

' 9 < 7 ' 조건문에서 9가 7보다 클경우와 작을 경우 모두 필요할 경우가 있습니다.

이럴 경우 if, else if, else 제어문을 사용할 수 있습니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{
	
	bool 정답 = 0;

	int 왼쪽 = 9;
	int 오른쪽 = 7;
	
	if ( 왼쪽 < 오른쪽 )
		printf("왼쪽 보다 오른쪽이 큽니다. \n", 정답 );
	else
		printf("왼쪽 보다 오른쪽이 작습니다. \n", 정답);

	printf("\n");

	if (왼쪽 > 오른쪽)
		printf("왼쪽 보다 오른쪽이 큽니다. \n", 정답);
	else
		printf("왼쪽 보다 오른쪽이 작습니다. \n", 정답);

	printf("\n");

	
	return 0;
}

조건문을 '왼쪽 < 오른쪽', '왼쪽 > 오른쪽' 2가지로 실행했습니다.

첫번째 조건문에서는 왼쪽 보다 오른쪽이 작기 때문에 거짓이 적용되어 else 하단에 있는 출력이 실행됩니다.

두번째 조건문에서는 왼쪽 보다 오른쪽이 작기 때문에 참이 적용되어 if 하단에 있는 출력이 실행됩니다.

이처럼 if는 참인 경우 실행됩니다.

else는 거짓일 경우 실행됩니다.

 

 

 

 

if 조건문은 여러개의 연산자를 사용해서 참, 거짓을 판단할 수 있습니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{
	
	bool 정답 = 0;

	int 왼쪽 = 9;
	int 오른쪽 = 7;
	bool 참 = 1;
	bool 거짓 = 0;
	
	if ( (왼쪽 < 오른쪽) && 참 )
		printf("왼쪽 보다 오른쪽이 큽니다. \n", 정답 );
	else
		printf("왼쪽 보다 오른쪽이 작습니다. \n", 정답);

	printf("\n");

	if ( (왼쪽 > 오른쪽) && 거짓 )
		printf("왼쪽 보다 오른쪽이 큽니다. \n", 정답);
	else
		printf("왼쪽 보다 오른쪽이 작습니다. \n", 정답);

	printf("\n");


	if ((왼쪽 < 오른쪽) || 참)
		printf("왼쪽 보다 오른쪽이 큽니다. \n", 정답);
	else
		printf("왼쪽 보다 오른쪽이 작습니다. \n", 정답);

	printf("\n");

	if ((왼쪽 > 오른쪽) || 거짓)
		printf("왼쪽 보다 오른쪽이 큽니다. \n", 정답);
	else
		printf("왼쪽 보다 오른쪽이 작습니다. \n", 정답);

	printf("\n");
	
	return 0;
}

기존 조건문에 '&&', "||' 연산자를 사용해서 연산자를 연결할 수 있습니다.

처음 실행과 다르게 '참' '거짓'을 추가하면 결과가 다르게 출력됩니다.

'&&' 연산자는 AND 연산자로 앞쪽 조건과 AND로 확인 시 모두 1일 경우만 참입니다.

'||' 연산자는 OR 연산자로 앞쪽 조건과 OR로 확인 시 둘 중 하나만 1일 경우 참입니다.

즉 '||' 연산자는 조건문 안에서 한개만 참이면 참으로 실행됩니다.


마지막으로 if문 사용을 최소화 하기 위한 swirch 제어문을 알아보겠습니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{
	
	int 요일을알려줘 = 1;

	switch (요일을알려줘)
	{
	case 1:
		printf("일요일\n");
		break;

	case 2:
		printf("월요일\n");
		break;
	case 3:
		printf("화요일\n");
		break;
	case 4:
		printf("수요일\n");
		break;
	case 5:
		printf("목요일\n");
		break;
	case 6:
		printf("금요일\n");
		break;
	case 7:
		printf("토요일\n");
		break;
	default:
		printf("1 ~ 7까지만 알아요 ㅠㅠ\n");
		break;
	}	
	return 0;
}

switch문은 case, dafault로 분기됩니다.

즉 swirch에서 case에 부합될 경우만 출력을 실행하고, 아닐 경우 dafault 내용을 실행합니다.

'요일을알려줘'에 1이 적용되었기 때문에 출력은 아래와 같습니다.

swirch문에 부합되는 case일 경우만 출력을 실행합니다.

이처럼 다양한 자료형 과 연산자를 사용해서 기본적인 제어 구조 프로그래밍을 적용할 수 있겠습니다.

C언어 조건문에 대해서 마치겠습니다.

감사합니다.

반응형
반응형

C 언어 프로그램밍 2번째 시간에는 자료형에대해서 알아보겠습니다.

컴퓨터는 메모리라는 공간을 사용해서 정보를 저장합니다.

이런 메모리 공간을 우리는 0,1로 구분할 수 있는 한개의 박스라고 생각할 수 있습니다.

즉 한개 박스안에 0 또는 1만 존재할 수 있는 겁니다.

이런 박스가 컴퓨터 내부에 엄청나게 많이 존재하는 겁니다.

이런 박스가 천개 있으면 킬로바이트(kliobytes)라고 합니다.

킬로바이트가 1024개 있으면 메가바이트(megabytes)라고 합니다.

다시 메가바이트가 1024개 있으면 기가바이트(gigabytes)라고 합니다.

우리가 모두 알고 있는 테라바이트(terabytes)는 기가바이트가 1024개 있어야 합니다.

 

이처럼 프로그래밍은 이러한 메모리를 사용해서 컴파일하고 EXE 실행파일을 생성합니다.

위표는 8bit 메모리를 사용하는 byte 메모리 표입니다.

1비트 기준을 0,1로 사용여부를 결정하고 1bit마다 2의승수가 적용되어 계산됩니다.

C언어는 이러한 바이트 집합을 자료형이라고 합니다.

이 자료형은 요즘같은 메모리가 많은 시대에서는 중요하지는 않지만 코드 상에서 정확한 계산을 하기 위해서는 반드시 필요한 내용입니다.

그럼 이런 자료형은 어떻게 C언어에서 사용하지 알아 보겠습니다.

#include <stdio.h>

int main(void)
{
	int 시급 = 1000;
	int 일한시간 = 7;
	int 월급 = 시급 * 일한시간;
	printf(" 오늘 월급은 %d 입니다. \n", 월급);
	printf("\n");
	return 0;
}

이해하기 쉽도록 변수를 한글을 사용했습니다.

변수를 한글로 사용해도 컴파일에는 아무 상관없습니다.

이유는 위에서 말씀드린것 처럼 컴퓨터는 박스에 0 , 1만 확인하기 때문에 문법만 맞다면은 문제가 안됩니다.

위내용 처럼 int 자료형을 선언하고 뒤에 문자열을 입력하면 4바이트를 사용하는 문자열로 인식하는 겁니다.

생성된 문자열 "시급"에 = 부호를 사용해서 1000 이라는 값을 입력했습니다.

int 자료형은 -2147489648 ~ 2147489647까지 포함하기 때문에 사용하는데 아무 문제가 없습니다.

그럼 C언어 프로그램은 "시급" 변수 bit트 배열을 1000으로 변경합니다.

"일한시간"도 동일하게 할당 됩니다.

단 한글로 사용할 경우는 영문과 동일하게 스페이스(간격)이 들어가면 안됩니다.

 

 

 

이렇게 입력된 내용은 "%d"를 사용해서 printf에서 출력할 수 있습니다.

출력 내용은 "시급"  *  "일한시간"이니까 7000을 확인 할 수 있습니다.

자료형은 다양하게 선언해서 사용이 가능합니다.

#include <stdio.h>

int main(void)
{
	int 인트 = 1000;
	char 문자열 = 'a';
	float 소수점 = 1.2;
	printf(" 인트 4바이트 = %d \n", 인트);
	printf("\n");
	printf(" 문자열 1바이트 = %c \n", 문자열);
	printf("\n");
	printf(" 소수점 4바이트 = %f \n", 소수점);
	printf("\n");
	return 0;
}

각 자료형에 입력 내용을 넣고 printf() 함수를 사용해서 출력했습니다.

printf() 함수는 ""가 끝나는 지점에 %d를 사용한 개수 만큼 ','를 사용해서 변수를 정의할 수 있습니다.

컴파일 출력 결과는 다음과 같습니다.

설정한 자료형에 따라서 출력 내용이 상이합니다.

자료형 범위안에 포함만 된다면 모든 자료형을 조합할 수 있습니다.

하지만 기본적으로 프로그래밍을 할 때는 가독성과 메모리를 유연하게 사용하기 위해서 같은 자료형 끼리 사용합니다.

즉 int, float는 같은 4바이트 정수와 소수점을 구분해서 사용하는 것이 좋은 방법입니다.

#include <stdio.h>

int main(void)
{
	int 인트 = 1.2;
	char 문자열 = 'a';
	float 소수점 = 1000;
	printf(" 인트 4바이트 = %d \n", 인트);
	printf("\n");
	printf(" 문자열 1바이트 = %c \n", 문자열);
	printf("\n");
	printf(" 소수점 4바이트 = %f \n", 소수점);
	printf("\n");
	return 0;
}

위 코드는 "인트", "소수점"을 반대로 사용했습니다.

그럼 출력은 어떻게 될까요

이 처럼 원하는 값을 얻지 못했습니다.

"인트"에 소수점을 넣으면 인트형태로 인식하기 때문에 소수점을 확인할 수 없습니다.

 

 

 

자료형은 +, -, *, /, %를 사용해서 연산할 수 있습니다.

출력에 사용하는 필수 스트링은 아래와 같습니다.

정확한 자료형 크기는 limits.h에 정의되어 있습니다.

limits.h에 자료형 크기가 #define 되어 있습니다.

 

#include <stdio.h>
#include <limits.h>

int main(void)
{
	printf("char 자료형 크기는 = %d to %d\n", CHAR_MIN, CHAR_MAX);
	printf("\n");
	printf("unsigned char 자료형 크기는 = 0 to %u\n", UCHAR_MAX);
	printf("\n");
	printf("short 자료형 크기는 = %d to %d\n", SHRT_MIN, SHRT_MAX);
	printf("\n");
	printf("unsigned short 자료형 크기는 = 0 to %u\n", USHRT_MAX);
	printf("\n");
	printf("int  자료형 크기는 = %d to %d\n", INT_MIN, INT_MAX);
	printf("\n");
	printf("unsigned int 자료형 크기는 = 0 to %u\n", UINT_MAX);
	printf("\n");
	printf("long 자료형 크기는 = %ld to %ld\n", LONG_MIN, LONG_MAX);
	printf("\n");
	printf("unsigned long 자료형 크기는 = 0 to %lu\n", ULONG_MAX);
	printf("\n");
	printf("long long 자료형 크기는 = %lld to %lld\n", LLONG_MIN, LLONG_MAX);
	printf("\n");
	printf("unsigned long long 자료형 크기는 = 0 to %llu\n", ULLONG_MAX);
	printf("\n");
	printf("double  자료형 크기는 =  %u \n", DBL_DIG);
	printf("\n");
	printf("long double  자료형 크기는 =%u \n",	LDBL_DIG);
	printf("\n");
	return 0;
}

Printf() 함수를 사용해서 자료형 크기를 출력하겠습니다.

마지막으로 sizeof() 함수를 사용해서 자료형이 차지하는 byte 크기를 알아보겠습니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{
	printf("char 크기= %u bytes\n", sizeof(char));
	printf("\n");
	printf("short 크기= %u bytes\n", sizeof(short));
	printf("\n");
	printf("int 크기= %u bytes\n", sizeof(int));
	printf("\n");
	printf("long 크기= %u bytes\n", sizeof(long));
	printf("\n");
	printf("long long 크기= %u bytes\n", sizeof(long long));
	printf("\n");
	printf("float 크기= %u bytes\n", sizeof(float));
	printf("\n");
	printf("double 크기= %u bytes\n", sizeof(double));
	printf("\n");
	printf("long double 크기= %u bytes\n", sizeof(long double));
	printf("\n");
	return 0;
}

sizeof() 함수는 자료형 크기를 확인할 수 있습니다.

출력 결과 각 자료형이 차지하는 byte크기를 확인할 수 있습니다.

sizeof()는 통신과 같은 사이즈를 확인해야하는 코드에 많이 사용합니다.

오늘은 C언어 프로그래밍 자료형에 대해서 알아봤습니다.

이번 내용을 확인하고 다양한 연산 프로그램을 공부해보세요.

감사합니다.

반응형
반응형

파워 포인트 작업을 하다가 위, 아래 첨자를 넣는 법을 몰라서 검색하다 글을 남깁니다.

파워포인트에서 첨자를 넣는 방법은 "삽입" 메뉴에서 "수식"을 사용하는 방법이 있습니다.

하지만 이 수식에는 위/아래 첨자가 고정되어 있어 필요한 내용을 추가할 수 없었습니다.

위 표와 같은 내용을 만들려고 첨자가 필요했습니다.

그래서 검색해보니 파워포인트에서는 첨자를 변경할 수 있는 단축 키가 있습니다.

위 첨자는 첨자를 만들기 위한 글자를 선택하고 Shift + Control + = 버튼을 클릭하면 선택한 글자가 위 첨자로 변경됩니다.

다시 원래 글자로 변경하려면 SHift + Control + = 버튼을 다시 한번 눌러주면 됩니다.

 

 

 

 

아래 첨자는 글자를 선택하고 Control + = 버튼을 클릭하면 아래 첨자로 변경됩니다.

쉽게 첨자를 만들 수 있기 때문에 다양한 문서를 만들기 위해서 매우 편리한 단축 키 입니다.

상기 단축키 기능은 Excel에서는 안됩니다.

하지만 Word에서는 동일하게 사용이 가능합니다.

간단하면서 매우 유용한 단축키 입니다.

감사합니다.

반응형
반응형

오늘 부터 오랜 시간동안 일하던 내용을 정리하면서

공부도 할 겸 C언어 프로그래밍을 정리해보겠습니다.

C언어는 다양한 디바이스에서 사용할 수 있는 조금 복잡한 언어이지만

모든 언어의 기본이기 때문에 한번 쯤 공부하는 것을 추천합니다.

C언어에 설치 및 컴파일에 대해서는 많은 블로그가 있으니 참고해주시고요. 

바로 프로그래밍으로 들어가겠습니다.

C언어는 기본적으로 Main이란 함수에서 부터 시작합니다.

#include <stdio.h>
int main(void)
{
	return 0;
}

상단에는 #include를 사용해서 .h 파일을 선택해야 합니다.

기본적으로 stdio.h를 포함하고 처음 컴파일을 진행하면 됩니다.

이제 main 함수 내부에서 가장 기본인 출력을 해보겠습니다.

컴파일 내용을 확이하기 위해서는 꼭 필요한 내용입니다.

출력을 하기 위해서는 printf() 함수를 사용합니다.

#include <stdio.h>

int main(void)
{
	printf("Hello world^^\n");	
	return 0;
}

printf() 함수를 사용해서 "Hello world"를 출력해보겠습니다.

전 컴파일을 하기 위해서 Visual Studio 2019 무료 버전을 사용합니다.

Visual Studio 2019는 기본적으로 C언을 포함하고 있어 설정 필요 없이 바로 컴파일 됩니다.

Control + F5를 눌러주면 컴파일을 진행합니다.

결과는 cmd 창에 "Hello world"를 확인 할 수 있습니다.

조금 더 출력을 해보겠습니다.

 

 

 

#include <stdio.h>

int main(void)
{
	printf("Hello world^^\n");
	printf("\n");
	printf("\"C언어 프로그램을 시작합니다 모두 화이팅^^\"\n");
	printf("\n");
	printf("다양한 방법으로 C언를 출력할 수 있습니다.");
	printf("\n");
	return 0;
}

printf 함수를 사용하면 다양한 문장을 출력할 수 있어 컴파일 실행 시 가독성을 높일 수 있습니다.

다시 복습해보겠습니다. C언어는 main 함수 시작 점에서 내부 코드를 실행하고 함수를 종료하는 구조입니다.

가장 기본적인 구조이기 때문에 반드시 숙지하셔야 합니다.

main 함수 외부에 코드를 넣으면 컴파일 오류가 발생합니다.

printf() 함수는 특수 문자열은 바로 출력할 수 없는 단점이 있습니다.

무슨 말이냐면 컴파일에 필요한 특수 문자는 바로 출력이 불가능합니다.

출력하기 하기 위해서는 이스케이프 시퀀스(Escape Sequence)를 사용해야 합니다.

 

 

 

이스케이프 시퀀스(Escape Sequence)를 사용해서 print() 함수를 출력 했습니다.

#include <stdio.h>

int main(void)
{
	printf("줄바꿈 \n");
	printf("\n");
	printf("캐리지리턴 \r \n");
	printf("\n");
	printf("백스페이스\b백스페이스 \n");
	printf("\n");
	printf("폼피드\f 폼피드 \n");
	printf("\n");
	printf("수평탭 \t 수평탭 \n");
	printf("\n");
	printf("수직탭 \v 수직탭 \n");
	printf("\n");
	printf("비프음 \a \n");	
	printf("\n");
	printf("문자열 \?출력 \n");
	printf("\n");
	printf("문자열 \"출력 \n");
	printf("\n");
	printf("문자열 \'출력 \n");
	printf("\n");
	printf("문자열 \\출력 \n");
	printf("\n");
	return 0;
}

컴파일 결과는 아래와 같습니다.

이처럼 이스케이프 시퀀스를 사용하면 다양한 출력을 할 수 있습니다.

printf 함수를 사용해서 다양한 출력 프로그램밍을 시작해보세요.

오늘은 C언어 main 함수와 출력에 대해서 알아봤습니다.

다음 시간에 뵙겠습니다.

감사합니다.

반응형

'IT 나라 > C언어' 카테고리의 다른 글

C언어 프로그래밍 배열  (0) 2021.01.25
C언어 프로그래밍 반복문  (0) 2021.01.21
C언어 프로그래밍 조건문 알아보기  (0) 2021.01.18
C언어 프로그래밍 자료형 알아보기  (0) 2021.01.16
ZTE nubia Z11  (0) 2016.08.11
반응형

지난 시간에 게임 저작권에 대해서 글을 올렸습니다.

이번에 사이트를 확인하다 정책이 변경된 내용이 있어 공유합니다.

내용은 캡콤에서 새로운 게임 스트리밍 정책을 2021년 1월 6일 발표했습니다.

www.capcom.co.jp/site/privacy_06.html

 

株式会社カプコン:カプコン動画ガイドライン

カプコン動画ガイドライン(個人向け) 最終更新日 2021年1月6日 カプコンは、当社タイトルのゲーム映像を使用した魅力的な動画を作成したいと考えるお客様に感謝するとともに、動画の創

www.capcom.co.jp

캡콤 사이트 캡쳐

일본어로 되어 있지만 크롬을 사용해서 번역하면 한글로 확인이 가능합니다.

정책 변경 내용은 개인 사용자는 영리 목적으로 게임 스트리밍을 허용하는 부분과

법인 사업자는 허용하지 않는 부분을 확인할 수 있습니다.

게시 가능한 동영상은 Youtube, Twitch, Twitter, Facebook 이며

게임 공략, 소개, 실황, 해설 동영상을 게시할 수 있습니다.

단 사용자가 만든 콘텐츠를 회사의 공식 동영상으로 홍보할 수 없습니다.



또한 지난 글에 말씀 드린것 처럼 음악은 저작권이 별도 있을 수 있다는 것을 명시했습니다.

스포일러와 부정한 정보 공개는 허용하지 않습니다.

캠콤 사이트 캡쳐

이번 정책에서 가장 크게 변경 된 부분은 법인(프로덕션 소속의 개인 포함)일 경우 동영상 전송을 허용하지 않습니다.

즉 수익을 창출할 수 있는 케이스에서 법인 또는 프로덕션 소속의 개임일 경우 게임 스트림밍을 할 수 없다는 내용입니다.

캡콤은 리메이크와 몬스터 헌터로 많은 인기를 끌면서 정책적으로 법인에서 스트리밍 하는 것을 막으려는 것으로 판단됩니다.

스위치 버전 몬스터 헌트 발매전에 정책을 발표하는 것을 보니 몬스터 헌터 인기를 다시 한번 확인할 수 있겠네요.

모두 변경된 저작권 다시 확인하시고 영상을 업로드 해주세요.

감사합니다.

반응형
반응형

오늘은 코틀린에서 가변 인자를 사용하고 싶을 경우 어떻게 사용해야 하는지 알아보겠습니다.

함수를 사용할 경우 고정된 파라미터를 사용하기도 하지만 가변적인 배열을 사용하고 싶은 경우도 있습니다.

코틀린에서는 이런 경우 vararg를 사용해서 배열을 정의합니다.

    fun IntMax(vararg numbers:Int):String
    {
        val sum = numbers.max()
        return sum.toString()
    }
    
    val rString = IntMax(2,4,7,9,10,15)
    Toast.makeText(this, rString, Toast.LENGTH_SHORT).show()

vararg 를 선언하게 되면 파라미터가 배열러 인식됩니다.

아규먼트(argument) 2, 4, 7, 9, 10, 15를 입력하면 MAX 항목인 15를 리턴합니다.

출력시 15를 확인할 수 있습니다.

INT 형태 배열을 사용해서 INT 가변 인자를 확인 할 수 있습니다.

그럼 이번에는 String을 사용해보겠습니다.

    fun StringAll( vararg StringList:String):String{
        val rText = StringList.joinToString()
        return rText
    }
    
    val rString = StringAll("A","S","D", "H", "I")
    Toast.makeText(this.application, rString, Toast.LENGTH_SHORT).show()

StringAll 함수는 파라미터(parameter) StringList를 vararg로 선언했습니다.

함수 내부에서 String 배열을 확인해서 입력된 아규먼트를 확인할 수 있습니다.

StringAll 함수는 입력된 String를 연결해서 리턴하게 되어 있습니다.

출력 결과 "A,S.D.H.I"를 확인 할 수 있습니다.

vararg는 다른 파라미터와 함께 사용이 가능합니다.

 

 

 

fun AllValue( Value1:Int, Value2:String, vararg StringList:String):String{
        val rText = StringList.joinToString()
        val AllText = Value1.toString() + Value2 + rText
        return AllText
    }

val rString = AllValue(123,"더하기","D", "H", "I")
Toast.makeText(this.application, rString, Toast.LENGTH_SHORT).show()

AllValue 함수는 파라미터 INT, String, vararg String를 사용합니다.

아규먼트 123, "더하기", "D", "H", "I"를 입력합니다.

결과는 "123더하기D,H,J" 입니다.

vararg는 다양한 가변 인자를 사용해서 함수를 유연하게 생성할 수 있습니다.

함수에 한개의 vararg만 사용이 가능합니다.

오늘은 코틀린(Kotlin) vararg에 대해서 알아보았습니다.

감사합니다.

반응형

+ Recent posts