본문 바로가기

컴퓨터 일반/프로그래밍언어론

프로그래밍(1) 순서도, C언어 기초

순서도

순서도는 프로그램을 코딩하기 전에 그걸 그림으로 표현한 것이다.

순서도를 보면 어디를 가도 이렇게 코딩하는 거구나, 하고 이해할 수 있다

https://www.youtube.com/watch?v=9MQfev_CE_U&list=PLpYNFXUfkvDomFmLaDEVtwDs7e9NhT_j2&index=67

  • 순서도는 항상 처음에 START, 마지막에 STOP이 나온다 (단자 기호)
  • 순서도나 프로그램은 별 말이 없으면 위에서부터 밑으로 진행이 된다 → FLOW 차트
  • START 다음에는 준비 기호가 있다 (i, j, k)
  • 준비기호가 나오면 우리가 할일은 습관적으로 이 기호들을 적어두는 것이다. 이런 변수들을 사용한다는 것을 알아둔다.
  • 그 다음에는 수동 입력 기호가 있다. 키보드로 입력 받는 것을 말하는 것 (키보드로 i와 j값을 받는다)
  • 순서도나 프로그램 코드를 읽을 때는 반드시 거기에 나오는 변수를 적어가면서 변하는 값을 계속 추적하는 과정을 반드시 거쳐야 한다(디버깅)
  • 그 다음의 k = i + j 는 처리 기호라고 말한다.i와 j는 변수라고 한다 (변하는 수) i + j 값을 더해서 k에 주라는 뜻
  • 처리 기호는 코딩할때 그대로 적어준다. 여기서 우변의 값을 정리해서 좌변으로 넣는다는 뜻이다
  • 마지막 k는 출력하라는 뜻이다

 

C언어는 반드시 어딘가에 main함수가 있고, main 함수로 시작해서 그 안에서 끝난다.

첫 줄의 #include <stdio.h> //헤더 파일을 포함시켜라 라는 뜻인데 입출력을 포함한다

scanf()와 printf()를 사용하기 위해 정의한다. 키보드 입출력은 항상 일어나기 때문에 위에 적어놓는다

C언어는 main을 만나면 무조건 시작된다. 메인 함수의 범위는 { } 블록 안이다. 이 두 가지는 항상 나온다.

scanf()는 두 부분으로 나뉘어진다. “” 안에는 형식(서식) 지정자가 들어간다. 뒤의 변수형과 매칭된다,

&는 주소를 나타내는 연산자인데, 메모리에 있는 번지로 가는 것이다.

아무튼 키보드로 입력 받을땐 scanf()를 쓰고, 변수형 앞에 &를 붙여준다.

문장의 끝에는 세미콜론을 붙여준다

printf()는 출력 하는 것으로 서식지 정자와 변수형을 써준다.

\n이란? new라는 뜻으로 한줄 띄우는 것을 의미

#include <stdio.h> //헤더 파일을 포함시켜라
main() { 
	int i,j,k; //준비 기호, 정수형
	scanf("%d %d", &i, &j); //수동 입력 받는 기호, 커서가 깜빡거리는 부분, 변수 앞에 &
	k = i + j; //우변을 정리해서 좌변에 할당한다
	printf("%d\n", k); //어떤 형식으로 출력하라, %d이므로 10진수로 k가 출력된다
	}

 

주요 순서도 기호 (외울 필요는 없고 뜻만 알면 된다)

https://www.youtube.com/watch?v=9MQfev_CE_U&list=PLpYNFXUfkvDomFmLaDEVtwDs7e9NhT_j2&index=67

 

 

C언어의 자료형

  • 1바이트 = 8비트
  • 문자는 ‘ ‘
  • 문자열은 “ “
  • 문자는 사실 숫자로 기억된다 (아스키코드)
  • A=65이다.
  • char ab[6] = “korea”; //ab라는 6개의 배열이 생기고 문자열은 길이가 일정하지 않아서 뒤에 null문자가 붙어다닌다 (korea\0 이다)
  • float은 실수형이며 숫자를 줄때 끝에 f를 준다
  • double은 실수형이며 더 많은 크기를 가진다

https://www.youtube.com/watch?v=9MQfev_CE_U&list=PLpYNFXUfkvDomFmLaDEVtwDs7e9NhT_j2&index=67

 

scanf() 함수

표준 입출력이란 키보드로 입력하고 화면에 출력하는 것이다

scanf() 함수를 쓸때는 scanf(서식 문자열, 변수의 주소) 를 사용한다

(%d, &i) //i를 10진수로 받을 것이다

서식 문자열은 받을때 형식을 정한다

%d 정수(10진수)
%o 8진수
%x 16진수
%c 문자
%s 문자열
%f 실수
%e 지수
%ld long d 긴 정수형

 

https://www.youtube.com/watch?v=9MQfev_CE_U&list=PLpYNFXUfkvDomFmLaDEVtwDs7e9NhT_j2&index=67

scanf() 함수만 사용하므로 읽기만 한다, 출력은 x

💫배열의 이름은 배열의 시작주소이다. 그래서 입력 받을때 배열을 쓸 땐 &를 적지 않는다

c에서 문자열을 받을땐 %s를 통해 받으며 &를 적지 않는다.

printf() 함수

https://www.youtube.com/watch?v=9MQfev_CE_U&list=PLpYNFXUfkvDomFmLaDEVtwDs7e9NhT_j2&index=67

형식은 printf(서식 문자열, 변수)

scanf()는 변수에 &를 적었는데 printf()는 적지 않는다

  1. 변수를 적으면서 추적한다 (디버깅)
  2. 한글자만 문자 ‘ ‘
  3. 한글자 이상은 무조건 문자열 “ “, 저장될땐 반드시 null문자가 따라다닌다
  4. printf() 의 “ “ 안에 있는 것들은 모두 다 서식문자열이다, %뒤만 보면 된다!
  5. printf(”a=%8.2f”, a); //8칸이고 소수점 두번째 자리의 실수라는 뜻
  6. printf(”%-10s, %10s”, dd, dd); //dd라는 문자열이 있는데, 10칸을 만들고 -가 붙으면 왼쪽부터 / 아니면 오른쪽부터
    • \n : 다음줄로
    • \t : 탭, 4칸 띄우는 것
    • \t : 커서를 그 줄의 처음으로