[마인드맵]C언어의 역사

생각로그 2012. 3. 5. 21:21




'생각로그' 카테고리의 다른 글

시간정리  (1) 2012.05.21
Ignite 분당에 참석하고 나서...  (4) 2012.05.19
[마인드맵]C언어의 역사  (0) 2012.03.05
성공하는 말하기  (0) 2012.03.01
호감주는 말하기  (0) 2012.03.01
건강한 심리  (0) 2012.02.19

과제 #2 제어문/선택문을 이용해 다양한 모양그리기

언어로그/C/C++ 2011. 6. 13. 23:08



#1. 윤년구하기 
사용자에게 년도를 입력받아 윤년인지 아닌지를 판단하는 프로그램을 작성.
단, 하나의 1f~else 문을 이용하여 작성.
        윤년의 조건
4로 나누어 떨어지는 해
그 중에서 100으로 나누어 떨어지는 해는 평년
하지만 400으로 나누어 떨어지는 해는 윤년

1_empty_year.c


#2. 삼각형과 역삼각형 출력
선택 및 반복문을 이용하여 작성
임의 숫자를 입력받아 삼각형과 역삼각형 출력

결과


2_triangles.c


#3. 다이아몬드  출력
선택 및 반복문을 이용하여 작성
임의 숫자를 입력받아 삼각형과 역삼각형 출력

결과


3_diamond.c


#4. 다이아몬드  테두리 출력
선택 및 반복문을 이용하여 작성
임의 숫자를 입력받아 삼각형과 역삼각형 출력

결과


4_diamond_border.c


#5. 알파벳 출력
메뉴번호를 입력하면,  각 문자열 도형 출력.
정수 65부터 90까지가 ASCII A-Z 임.

결과




5_alphabet_chars.c


과제 #1 입출력,연산자

언어로그/C/C++ 2011. 6. 13. 23:01



#1 온도변환 : 화씨, 섭씨
화씨 온도(F)를 입력 받은 후 섭씨 온도(C)로 계산하여 출력하는 프로그램
C = 5/ 9 * (F -32)

화씨 온도를 입력하세요 : 85
섭씨 온도는 29.4도 입니다.

1_temperature.c


#2 원의 넓이 구하기
사용자 입력으로 원의 반지르을 입력받고, 원의 넓이를 구하는 프로그램
원의 넓이 = 반지름 * 반지름 * 3.14159

원의 반지름을 입력하세요 : 10.5
원의 면적 346.36

2_circle_breadth.c


 
#3 신체질량지수(BMI)
몸무게와 키를 입력받고, 신체질량지수(BMI)를 구하는 프로그램 작성. BMI는 비만도를 측정하는 한가지 방법.
BMI = 몸무게(kg) / 키(m)의 제곱

몸무게를 입력하세요( kg) : 62
키를 입력하세요(m) : 1.75
당신의 BMI는 : 20.2입니다.

3_bmi.c


#4 거리 및 속력계산
거리(km)와 속력(km/h)을 입력받고, 해당 거리를 속력으로 달릴 때 걸리는 시간 출력 프로그램 작성.
거리, 속력은 실수. 시간은 시간, 분까지 계산 출력. 초는 소수점 이하 셋째 자리까지 출력

거리(km)을 입력하세요 : 100
속력(km/h)을 입력하세요 : 85

걸리는 시간은 : 1시간, 10분, 35.294초 입니다 

4_velocity.c


#5 자판기 잔돈계산
커피 자판기에 입력받은 돈으로 거스름돈 계산 하는 프로그램 작성
커피 값은 150원
지폐는 1000단위만 입력가능.
거스름 돈은 500원, 100원, 50원, 10원.
자판기가 내주는 동전의 종류와 수를 계산하시오

돈을 입력하세요 : 1000

잔돈 드릴게요 ..
500원짜리 동전 1개
100원짜리 동전 3개
 50원짜리 동전 1개
 10원짜리 동전 0개

5_vending_machine.c

라인 입출력 함수

언어로그/C/C++ 2011. 3. 27. 21:07



라인단위로 입출력을 다루는 함수들에 대해서 알아보자.  널문자를 삽입해주는지 여부와 버퍼에서 개행문자를
제거하는지 여부에 주목하여 보자. 


scanf(const char *TEMPLATE, ...)
scanf 함수를 사용하여, 한 라인의 문자열을 읽을 수 있지만, 개행문자를 표준입력버퍼에 남겨놓는다.  
연이은 읽기 동작에 오동작을 초래할 수 있기때문에, 입력버퍼에서 개행문자를 제거하는 것을 잊지 말자!



char* fgets(char *S, int COUNT, FILE *STREAM)
지정한 입력버퍼에서 최대 COUNT-1 개의 문자를 읽되, 엔터를 칠때까지  배열  S에 저장하는 함수이다. 
배열의 공간이 충분하다면, 개행문자와 함께 널문자를 삽입한다. (엔터에 의해 종료) 
하지만 공간이 충분하지 않다면,  COUNT-1개의 문자와 널문자를 삽입하고 종료한다. (사이즈 제약의 의해 종료)



int fputs(const char *S, FILE *STREAM)
버퍼 S의 내용을 지정한 출력버퍼에 출력하는 함수로, 널문자를 개행문자로 변환하지 않는다.  




fgets와 fputs 보다는 덜 사용되지만 라인단위로 입출력을 할 수 있는 다음과 같은 함수가 있다. 
char* gets(char *S)
표준 입력버퍼에서 개행문자를 만날 때까지 읽는 함수로,  개행문자는 S에 저장하지 않지만, 입력퍼버에서는 제거한다




int puts(const char *S)
S 문자열을 표준출력버퍼에 출력하는 함수로 널문자를 만나면 개행문자로 변환하여 출력한다. 

'언어로그 > C/C++' 카테고리의 다른 글

음수의 표현  (0) 2011.06.13
문자열 조작함수 직접 구현하기  (2) 2011.04.29
라인 입출력 함수  (0) 2011.03.27
배열의 이해  (0) 2011.03.27
기억부류(Storage Class) / 변수  (0) 2011.03.27
전역변수와 지역변수  (0) 2011.03.27

C 프로그램 실행과정

언어로그/C/C++ 2011. 2. 22. 11:17



C프로그램 컴파일 - 실행

C언어로 작성된 프로그램은 .c 라는 확장자를 갖는다. 이를 소스파일이라 부르며 이 소스파일이

실행파일로 최종적으로 변환이 된다.  소스파일은 먼저 전처리기(preprocess)에 의해 읽혀지어, 컴파일 전에

특정한 작업이 수행된다. (소스 일부분이 삽입되거나 대체되는 것 같은...) 전처리기에 의해 읽혀진 컴파일러에 의해

머신에 맞는 기계어 (혹은 어셈블리어)로 변환이 되어 목적파일을 생성하게 된다. 이 목적파일은 링커에 의해

 해당 프로그램에서 참조하고 있는 파일들을 삽입하여 완전한 실행파일을 생성하게 된다. 
실행파일은  사용자가 실행을 하는 순간 운영체제에서 지원하는 Loader(적재기)에 의해 메모리가 올라가 실행되게 된다.

 

소스파일(.c)  > [Preprocessor, Translator] > 목적파일 (.o) > [Linker] > 실행파일(.exe) > [Loader]

 

이와 같이 C 프로그램이 생성되는 코딩, 디버깅, 컴파일, 배포 과정을 통일된 하나의 툴에서 제공해주는

프로그램이 IDE(통합개발환경)이다. 대표적인 IDE로 Visual Studio 가 있다.


Visual Studio6.0 단축키

컴파일 : Ctrl + F7

실    행:  Ctrl + F5

코드정렬 : Alt + F8

에러메시지 : F4

 

다음은 컨솔에 "Hello world!" 라는 문구를 출려가는 프로그램이다

#include <stdio.h>    // 표준 입출력 라이브러리를 사용하겠음
 
int main() // 프로그램 시작점 
{
    printf("Hello world!\n");  // 표준 출력에 문자열 출력 
    return 0;
}


#이 붙어 있는 명령을 전처리 지시자 라고 한다. 컴파일전에 전처리기에 의해 소스파일에 특정한 작업을

수행하는 명령이다. 위에서는 표준입출력 라이브러리를 사용하겠다고 알리고,  표준출력(컨솔)에 출력하는

printf 라는 함수를 사용하였다.  main은 C  프로그램에서 항상 시작점이 되는 함수로,  운영체제에 의해 처음으로

읽혀질 메모리 주소를 나타낸다.   

'언어로그 > C/C++' 카테고리의 다른 글

음수의 표현  (0) 2011.02.22
C 언어 학습에 핵심. 변수와 상수  (0) 2011.02.22
C 프로그램 실행과정  (0) 2011.02.22
C 언어란?  (0) 2011.02.22
비트필드  (0) 2010.12.10
함수의 이해 / 데이터 전달  (0) 2010.12.10

C 언어란?

언어로그/C/C++ 2011. 2. 22. 11:17



컴퓨터를 동작시키기 위해서는 컴퓨터가 이해할 수 있는 언어로 프로그램을 작성해야 한다.

컴퓨터가 이해할 수 있는  언어가 0과 1의 조합으로 이루어진 기계어이다.  하지만 기계어는  

컴퓨터가 잘 이해할 수 있을지는 몰라도, 결국 프로그램을 작성하는 사람이 이해하기에는 너무

어렸다는 단점을 가지고 있다. 특정 기계어 명령에 심볼로 대체하여 좀더 가독성이 좋은 형태로 만든것이 

어셈블리어이다. 하지만 이 이 어셈블리어는  Intel,  AMD 등 컴퓨터 CPU 머신마다 서로 달라, 각 머신맞게

프로그램을 재작성해야 하는 문제가 생기게 된다. 이러한 문제점을 극복하고자 탄생한 언어가  C 언어이다.
C 언어는 Bell 연구소에서 B언어를 기반으로 데니스 리치에 의해 생겨났다.  

C언어가 생겨남으로 소스수준에서의 독립성을 가지게 되었다.  C언어를 사용하여 프로그램을 작성하면,

다른 머신에서도 (컴파일러에 의해) 각 머신에 맞는 실행파일을 생성할 수 있게  되었다.

 

C언어가 널리쓰이게 되면서, 다양한 버전들이 생겨나게 됐다. 호환성 문제가 대두되어, C언어를 표준화하고자

하는 움직임이 생기게 되었다.  1989년  미국 규격협회(ANSI) 에서 표준화된를 승인하게 됐다.(ANSI C라고 함 : C89)

90년에는 국제 표준화 기구(ISO)에 의해 ANSI C가 표준으로 채택되었다. (ISO C 또는 표준C : C90)

이후 C++와 유니코드의 발전 등을 수용하기 위한 C99 등이 생겨나게 되었다.

(이 블로그에서는 표준C 를 기초로 함)



'언어로그 > C/C++' 카테고리의 다른 글

C 언어 학습에 핵심. 변수와 상수  (0) 2011.02.22
C 프로그램 실행과정  (0) 2011.02.22
C 언어란?  (0) 2011.02.22
비트필드  (0) 2010.12.10
함수의 이해 / 데이터 전달  (0) 2010.12.10
과제 #3 함수, 포인터의 사용  (0) 2010.12.10