어서와C언어는처음이지rts.gnu.ac.kr/class/2016fall/prog_intro/week9/gnu-w09-c... ·...
Transcript of 어서와C언어는처음이지rts.gnu.ac.kr/class/2016fall/prog_intro/week9/gnu-w09-c... ·...
© 2015 천인국 All rights reserved
어서와 C언어는 처음이지어서와 C언어는 처음이지
제1장
© 2015 천인국 All rights reserved
컴퓨터
컴퓨터는 생각만큼 똑똑한 물건이 아니다. 컴퓨터는 스스로 자신이 수행할 작업을 결정할 수 없다.
© 2015 천인국 All rights reserved
프로그램
우리가 컴퓨터에게 아주 자세한 명령어를 주어야 한다. 컴퓨터에게 특정한 작업을 수행하게 하는 자세한 명령어의 리스트를프로그램(program)이라고 한다.
1. 정수를읽는다.
2. 합을계산한다.
3. 합을화면에출력한다.
© 2015 천인국 All rights reserved
작성해야하는프로그램
일반적인 프로그램은 구입하거나 다운로드받을 수 있다. 하지만 사업상 특수한 프로그램이 필요한 경우에는 회사가 프로그래머를 고용해서 사업에 필요한 소프트웨어를 개발하도록 한다.
© 2015 천인국 All rights reserved
필요한것 컴파일러(compiler): C프로그램을 받아서 컴퓨터가 읽을 수 있도록변환하는 도구
Code::Blocks(www.codeblocks.org) Microsoft의 비주얼 스튜디오
© 2015 천인국 All rights reserved
Code::Blocks 컴파일러 IDE는 통합 개발 환경(integrated development environment)의 약자로서 하나의 소프트웨어에서 작성, 수정, 디버깅이 가능하다는 뜻이다.
Code::Blocks에서는 C 또는 C++ 프로그램을 작성할 수 있다.
© 2015 천인국 All rights reserved
Code::Blocks 설치
© 2015 천인국 All rights reserved
프로그래밍과정
① 프로그램이 정확히 무엇을 해야 하는지를 결정한다. ② 에디터를 사용하여 프로그래밍 언어 명령어들을 작성하고 저장한다
③ 프로그램을 컴파일한다. ④ 컴파일 오류를 체크한다. 만약 오류가 있으면 오류를 수정하고 단계
3으로 되돌아간다. ⑤ 프로그램을 실행한다.
© 2015 천인국 All rights reserved
컴파일러
컴파일러는 이런 원재료들을 최종 제품으로 바꾸어주는 기계와 같으며 최종 제품은 바로 컴퓨터가 이해할 수 있는 실행 가능한 프로그램이다.
© 2015 천인국 All rights reserved
또하나의통합개발환경
비주얼 스튜디오 마이크로소프트사의 제품 윈도우 기반의 거의 모든 형태의 응용 프로그램 제작 가능 우리가 사용할 버전: 비주얼 스튜디오 2013 http://www.microsoft.com/express/download
© 2015 천인국 All rights reserved
비주얼스튜디오설치
“Express 2013 for Windows Desktop“ 제품을 선택
© 2015 천인국 All rights reserved
학습정리
C 컴파일러를 다운로드하여 컴퓨터에 설치한다. C 프로그래밍 언어를 학습하기 위한 마음의 준비를 한다. C가너무 복잡하다고 걱정할 필요는 없다. 이 책은 C 언어를 쉽게 소화가 가능하도록 여러 조각으로 나누었다. 여러분은 그저 잘 따라오면서 맛보고 즐기면 된다!
© 2015 천인국 All rights reserved
Q & A
© 2015 천인국 All rights reserved
어서와 C언어는 처음이지어서와 C언어는 처음이지
제2장
© 2015 천인국 All rights reserved
첫번째프로그램
짧지만 완전한 C 프로그램을 살펴보자.
#include <stdio.h>
int main(){
printf("코더에게는작은한걸음이지만프로그래머에게는");printf(" 거대한도약이다!\n");return 0;
}
© 2015 천인국 All rights reserved
프로그램코드입력
프로그램을 생성하기 위하여 [File] 메뉴를 클릭하고 [New]를 선택한다. 다음 화면에서 [Empty File]을 선택하여 코드를 입력한다.
© 2015 천인국 All rights reserved
컴파일
파일에 위의 코드를 입력한 후에는 컴파일 해야 한다. 컴파일 해서 실행 파일을 생성하는 것을 빌드한다고 한다. 화면 왼쪽 상단의 노란색기어 모양의 [Build] 아이콘을 클릭한다.
[Build] 아이콘을 클릭하면 Code::Blocks은 방금 입력한 파일을 어떤이름으로 저장할 것인지를 먼저 물어보는데 이때 hello.c라는 이름으로 저장하자.
© 2015 천인국 All rights reserved
실행
[Build] 아이콘 오른쪽에 있는 녹색 화살표 아이콘을 클릭해서 프로그램을 실행
© 2015 천인국 All rights reserved
C프로그램관찰 많은 중괄호 { }, 소괄호 ( ), 백슬래시(\)의 사용
C는철자에 민감
C 프로그램에서는 단어와 단어 사이에 자유롭게 공백을 넣을 수 있다.
C에서 명령어와 함수를 입력할 때는 소문자만을 사용해야 한다.
© 2015 천인국 All rights reserved
함수는프로그램을이루는블록
C 프로그램은 여러 개의 함수로 이루어진다-> 함수는 다시 여러 개의문장들로 이루어진다->문장들은 순차적으로 실행되면서 작업을 수행한다.
함수
© 2015 천인국 All rights reserved
main() 함수 main()은 명령어가 아니라 함수이다. 함수는 하나의 작업을 수행하는 루틴이다. 모든 C 프로그램은 항상 main() 함수를 포함해야 한다.
#include <stdio.h>int main(){
printf("코더에게는작은한걸음이지만프로그래머에게는");printf(" 거대한도약이다!\n");return 0;
}
© 2015 천인국 All rights reserved
데이터의종류
문자 정수 부동소수점수(실수라고도 불린다.)
© 2015 천인국 All rights reserved
문자
문자는 컴퓨터가 표현할 수 있는 하나의 글자이다. C의모든 문자들은 작은따옴표로감싼다.
‘A’ ‘a’ ‘4’ ‘%’ ‘Q’ ‘!’ ‘ +’ ‘=‘ ‘ ]’
© 2015 천인국 All rights reserved
문자열
만약 한 문자 이상을 지정할 필요가 있다면 큰따옴표를 사용해서 문자들을 감싸면 된다.
이것은 문자열(string)이라고 불린다. 다음은 C 문자열이다.
“C is fun to learn.”
© 2015 천인국 All rights reserved
숫자
정수(integer)가 있다.
부동소수점수(floating-point number)
10 54 0 –121 –68 752
547.43 0.0 0.44384 9.1923 –168.470 .22
© 2015 천인국 All rights reserved
정수 vs 부동소수점수 정수를 사용할 것인가 아니면 부동소수점수를 사용할 것인가는 프로그램이 작업하는 데이터에 달려있다.
© 2015 천인국 All rights reserved
마무리예제
/*문자,정수,부동소수점수를사용하는프로그램 */#include <stdio.h>int main(){
printf("나는현재 %c프로그래밍언어를학습하고있다.", 'C');printf("나는지금막 %d장을끝냈다.", 2);printf("나는현재 %.1f퍼센트준비되어있다. ", 99.9);printf("다음챕터학습을위하여!");return 0;
}
© 2015 천인국 All rights reserved
출력결과
나는현재 C 프로그래밍언어를학습하고있다.나는지금막 2장을끝냈다.나는현재 99.9 퍼센트준비되어있다. 다음챕터학습을위하여!
© 2015 천인국 All rights reserved
Lab 다음과 같은 실행 결과를 출력하도록 프로그램을 작성하여 보자. 프로그램에서 각종 상수값들을 printf() 함수의 변환 문자를 사용하여서 출력해본다.
빛의속도는 0.000000km/s입니다.중력가속도는 9.800000m/s제곱입니다.나는 20살이고키는 175.500000입니다.나의이름은김철수입니다.나는현재 4장까지학습을끝냈습니다.계속하려면아무키나누르십시오 . . .
© 2015 천인국 All rights reserved
Hint 기본적인 형식 지정자는 다음과 같은 것들이 있다.
© 2015 천인국 All rights reserved
마무리예제
#include <stdio.h>
main(){
printf("빛의속도는 %fkm/s입니다. ", 300000);printf("중력가속도는 %fm/s제곱입니다. ", 9.8);
printf("나는 %d살이고키는 %f입니다. ", 20, 175.5);printf("나의이름은 %s입니다. ", "김철수");printf("나는현재 %d장까지학습을끝냈습니다. ", 4);
return 0;}
© 2015 천인국 All rights reserved
학습정리
C 함수 이름 다음에는 반드시 소괄호를 붙여야 한다. C 프로그램은여러 개의 함수로 이루어지는데 C 프로그램에서 main() 함수는 항상필요하다. C는다른 어떤 함수들보다 main()을 가장 먼저 실행한다.
가독성을 위하여 C 프로그램에는 여분의 공백을 넣어도 된다. 정수가 0이 아니면 앞에 0을 붙이지 말자. 문자는 반드시 작은따옴표로 둘러싸야 하고 문자열은 큰따옴표로 둘러싸야 한다. 정수는 소수점을 가지지 않는 수이고 부동소수점수는소수점을 가진다.
© 2015 천인국 All rights reserved
Q & A
© 2015 천인국 All rights reserved
어서와 C언어는 처음이지어서와 C언어는 처음이지
제3장
© 2015 천인국 All rights reserved
주석
주석(comment)은 프로그램에 흩어져 있는 설명글로서 프로그램에서 도대체 어떤 것이 지금 진행되고 있는지를 설명한다.
© 2015 천인국 All rights reserved
주석의종류
주석은 /*로 시작하여서 */로 종료한다. 주석은 여러 줄에 걸칠 수 있다. 주석은 프로그램 안에 어디든지 들어갈 수 있다.
/*이것은 2개의줄에걸치는주석이다. */
/*이것은한줄주석이다. */
for (i = 0; i < 25; i++) /* 0에서 25까지카운트한다. */
© 2015 천인국 All rights reserved
프로그램유지보수
프로그램 유지 보수(maintenance)는 숨겨진 버그를 찾아내어 없애고, 바뀌어가는 환경에 따라 거기에 맞춰서 프로그램을 바꾸어가는과정
이때 주석이 있다면, 프로그램을 빠르게 읽을 수 있고, 따라서 변경해야 하는 곳을 빠르게 찾을 수 있다.
© 2015 천인국 All rights reserved
주의사항
주석은 C 명령어가 아니다. 컴파일러는 프로그램 안의 모든 주석을 무시한다. 주석은 사람을 위한 것이고, 주석의 외부에 있는 프로그래밍 문장이컴퓨터를 위한 것이다.
© 2015 천인국 All rights reserved
주석을붙인예제
/* C 완전 초보자 가이드의첫 번째 코드 리스팅1994년부터 새로운 프로그래머들을 교육하고 있음! *//* 딘 밀러 *//* 파일 이름 Chapter3ex1.c */
/* 명절 선물에 들어가는 돈의 합계 */#include <stdio.h>
main(){
int gift1, gift2, gift3, gift4, gift5; /* 비용을 저장하는 변수들 */int total; /* 합계를 저장하는 변수 */
/* 각 선물의 비용을 묻는다. */printf("엄마를 위하여 얼마나 돈을 쓸 것인가요?");scanf(" %d", &gift1);
© 2015 천인국 All rights reserved
주석을붙인예제
scanf(" %d", &gift2);printf("동생을 위하여 얼마나 돈을 쓸 것인가요?");scanf(" %d", &gift3);printf("형을 위하여 얼마나 돈을 쓸 것인가요?");scanf(" %d", &gift4);printf("가장 좋아하는 C 프로그래밍 저자를 ");printf("위하여 얼마나 돈을 쓸 것인가요?");scanf(" %d", &gift5);
/* 선물에 쓰이는 비용의 합계를 계산한다. */total = gift1 + gift2 + gift3 + gift4 + gift5;
printf("선물 비용의 합계는 $%d입니다.", total);return 0; /* 프로그램을 종료한다. */
}
© 2015 천인국 All rights reserved
여백추가하기
여백(white space)은 화면상으로는 표시되지 않지만 가독성을 위해서는 소스 코드에 추가되는 스페이스나 빈 줄을 뜻한다.
여백을 이용하여서 가독성을 높이는 것이 중요하다.
#include <stdio.h>main() {
float a, b; printf("보너스를 얼마나 받았습니까?"); scanf(" %f",&a); b = .85 * a; printf("만약 15%를 자선단체에
기부하더라도 당신은 아직 %.2f를 가지고 있습니다.", b); return 0;}
© 2015 천인국 All rights reserved
여백추가하기
#include <stdio.h>main(){
float a, b;
printf("보너스를 얼마나 받았습니까? ");scanf(" %f", &a);
b = .85 * a;printf("만약 15%를 자선단체에 기부하더라도 당신은 ");printf("아직 %.2f을 가지고 있습니다.", b);return 0;
}
© 2015 천인국 All rights reserved
주석의두번째형태
// 새로운 주석을 가지고 있는 다른 예제#include <stdio.h>main(){
printf("나는 이 새로운 주석을 좋아합니다."); // 간단한 문장}
© 2015 천인국 All rights reserved
Lab: 주석을추가해보자#include <stdio.h>
main(){
printf("빛의 속도는 %fkm/s입니다. ", 300000);printf("중력 가속도는 %fm/s제곱입니다. ", 9.8);
printf("나는 %d살이고 키는 %f입니다. ", 20, 175.5);printf("나의 이름은 %s입니다. ", "김철수");printf("나는 현재 %d장까지 학습을 끝냈습니다. ", 4);
return 0;}
© 2015 천인국 All rights reserved
Solution/** 파일 이름: comment.c* 작성자: 김철수* 작성날짜: 2015.1.10*/
#include <stdio.h> // 해더 프로그램 포함
main() // 메인 프로그램
// 실수는 %f를 사용하여서 출력한다. 소수점 6자리까지 출력된다.printf("빛의 속도는 %fkm/s입니다. ", 300000);
// 실수는 %f를 사용하여서 출력한다. 소수점 6자리까지 출력된다.printf("중력 가속도는 %fm/s제곱입니다. ", 9.8);
// 정수는 %d를 사용하여서 출력한다.printf("나는 %d살이고 키는 %f입니다. ", 20, 175.5);
// 문자열은 %s를 사용하여서 출력한다.printf("나의 이름은 %s입니다. ", "김철수");
// 정수는 %d를 사용하여서 출력한다.printf("나는 현재 %d장까지 학습을 끝냈습니다. ", 4);
return 0;
© 2015 천인국 All rights reserved
학습정리
프로그래밍의 3가지 규칙은 주석, 주석, 주석이다. 많은 주석으로 코드를 명확히 하자.
여러 줄 주석에는 /*로 시작하여 */로 종료되는 주석을 사용한다. /*와 */ 사이의 모든 것은 주석으로 취급된다.
한 줄 주석에는 //을 사용할 수 있다. C는 그 지점부터 줄의 끝까지를주석으로 취급한다.
여백과 줄바꿈, 들여쓰기를 이용하여서 프로그램을 읽기 쉽게 만든다.
© 2015 천인국 All rights reserved
Q & A