쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.

Slides:



Advertisements
Similar presentations
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
Advertisements

1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
Part 03 상수, 변수, 자료형 ©우균, 창병모 © 우균, 창병모.
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express Slide 1 (of 27)
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
Chapter 7. 조건문.
#include <stdio.h> int main(void) { float radius; // 원의 반지름
컴퓨터 프로그래밍 기초 [Final] 기말고사
-Part2- 제3장 포인터란 무엇인가.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
개정판 누구나 즐기는 C언어 콘서트 제9장 포인터 출처: pixabay.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
기초C언어 제3주 C프로그램 구성요소, 변수와 자료형 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
누구나 즐기는 C언어 콘서트 제2장 기초 사항.
C 프로그래밍.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Power Java 제4장 자바 프로그래밍 기초.
C언어 콘서트 제2장 기초 사항.
2주차: 변수, 수식, Control Flow.
6장. printf와 scanf 함수에 대한 고찰
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 03. 변수와 연산자.
14장. 포인터와 함수에 대한 이해.
11장. 1차원 배열.
Chapter 2 기 초 사 항.
C 2장. C 프로그램 시작하기 #include <stdio.h> int main(void) { int num;
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
JA A V W. 03.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
어서와 C언어는 처음이지 제14장.
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
상수와 기본 자료형.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
연산자 (Operator).
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
컴퓨터 프로그래밍 기초 - 5th : 조건문(if, else if, else, switch-case) -
자바 5.0 프로그래밍.
김선균 컴퓨터 프로그래밍 기초 - 7th : 함수 - 김선균
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
Chapter 08. 함수.
문자열 컴퓨터시뮬레이션학과 2015년 봄학기 담당교수 : 이형원 E304호,
Choi Seong Yun 컴퓨터 프로그래밍 기초 #03 : 변수와 자료형 Choi Seong Yun
Fucntion 요약.
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express Slide 1 (of 25)
제 15 강 문자와 코드 shcho.pe.kr.
에어 PHP 입문.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
Homework #12 (1/2) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다.
Chapter 10 데이터 검색1.
함수, 모듈.
컴퓨터 프로그래밍 기초 - 9th : 배열 / 포인터 -
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
프로그래밍 개론 Ⅰ-실습 2장 데이터와 식①.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
어서와 C언어는 처음이지 제21장.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
수업 내용 수업 목표 강의 내용 강의 계획서 교과서 및 참고도서 평가 방법 수강생의 학습 방법 제안 강의자료 사이트
13. 포인터와 배열! 함께 이해하기.
실 습 2.
Presentation transcript:

쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express

이번 장에서는 C프로그램을 이루는 구성요소들을 살펴봅니다. 이번 장에서 학습할 내용 이번 장에서는 C프로그램을 이루는 구성요소들을 살펴봅니다. * 주석 * 변수, 상수 * 함수 * 문장 * 출력 함수 printf() * 입력 함수 scanf() * 산술 연산 * 대입 연산

일반적인 프로그램의 형태 데이터를 받아서(입력단계), 데이터를 처리한 후에(처리단계), 결과를 화면에 출력(출력단계)한다. 결과출력 데이터입력 데이터처리

덧셈 프로그램 #1 주석 변수선언 함수 문장 연산 /* 두개의 숫자의 합을 계산하는 프로그램*/ 전처리기 지시어 #include <stdio.h> int main(void) { } 변수선언 int x; // 첫번째 정수를 저장할 변수 int y; // 두번째 정수를 저장할 변수 int sum; // 두 정수의 합을 저장하는 변수 함수 x = 100; y = 200; sum = x + y; printf("두수의합: %d", sum); return 0; 문장 연산

프로그램의 실행 화면 두수의 합: 300

주석(comment) /* 두개의 숫자의 합을 계산하는 프로그램 */ #include <stdio.h> 주석은 코드를 설명하는 글입니다. /* 두개의 숫자의 합을 계산하는 프로그램 */ #include <stdio.h> int main(void) { ... } 주석

3가지 방법의 주석 /* 한줄로 된 주석 */ /* 여러 줄로 된 주석 */ // 여기서부터 줄의 끝까지 주석

들여쓰기 들여쓰기(indentation): 같은 수준에 있는 문장들을 왼쪽 끝에서 몇 자 안으로 들여쓰는 것

주석과 들여 쓰기가 없다면.. #include <stdio.h> 실행은 되지만 무슨 처리를 하고 있는 프로그램인지 알기가 힘들고 또한 들여쓰기가 안 되어 있어서 같은 수준에 있는 문장들을 구분하기 힘듭니다. #include <stdio.h> int main(void) { int x; int y; int sum; x = 100; y = 200; sum = x + y; printf("두수의 합: %d", sum); return 0; }

중간 점검 주석은 /* /* ...... */ */와 같이 중첩할 수 있을까? 주석은 한줄 이상이 될 수 있는가? 주석에는 어떤 내용을 쓰면 좋은가? 주석은 프로그램의 동작에 어떤 영향을 끼치는가?

전처리기 #include <stdio.h> #기호로 시작 헤더 파일 stdio.h를 소스 코드 안에 포함

전처리기 /* 첫번째 프로그램 */ // stdio.h … int printf(char *,…); int main(void) { printf("Hello World!"); return 0; } // stdio.h … int printf(char *,…); #include <stdio.h> stdio.h hello.c

중간 점검 printf()를 사용하기 위하여 포함시켜야 하는 헤더 파일은 무엇인가? 전처리기 #include의 의미는 무엇인가?

함수 함수(function): 특정 기능을 수행하는 처리 단계들을 괄호로 묶어서 이름을 붙인 것 함수는 프로그램을 구성하는 기본적인 단위(부품) 입력 함수 출력

함수의 구조

함수안에 들어 있는 것 Q) 그렇다면 함수 안에 들어 있는 것은 무엇인가? 입력 출력 문장 1; 문장 2; 문장 3; ... 위에서 아래로 순차적으로 실행된다. Q) 그렇다면 함수 안에 들어 있는 것은 무엇인가? A) 함수 안에는 함수가 처리하는 처리 단계(문장)들이 중괄호 안에 나열

함수 작업을 수행하는 문장은 함수 안에 들어가야 함

함수 호출 Q) 함수 안에 있는 문장들은 언제 실행되는가? A) 함수가 호출되면 실행된다. Q) 함수 호출은 어떻게 하는가? 함수B(); 함수A 문장 1; 문장 2; 문장 3; ... 함수C 문장 1; 문장 2; 문장 3; ... 함수B 문장 1; 문장 2; 문장 3; ... 프로그램

함수 호출 Q) 많은 함수 중에서 가장 먼저 실행되는 것은? A) main() 함수이다. 다른 함수들은 main()으로부터 직간접적으로 호출된다. input() 문장 1; 문장 2; 문장 3; ... output() process() main() input(); process(); output();

문장 함수는 여러 개의 문장으로 이루어진다. 문장들은 순차적으로 실행된다. 문장은 ;(세미콜른)으로 끝나야 한다.

return 문장

main()은 누가 호출할까?

중간 점검 모든 C 프로그램에 반드시 있어야 되는 함수는 무엇인가? 함수의 시작과 끝을 나타내는 기호는 무엇인가? 모든 문장은 어떤 기호로 끝나는가?

변수 Q) 변수란 무엇인가? int x; // 첫번째 정수를 저장하는 변수 int y; // 두번째 정수를 저장하는 변수 int sum; // 두 정수의 합을 저장하는 변수 Q) 변수란 무엇인가? 프로그램이 사용하는 데이터를 일시적으로 저장할 목적으로 사용하는 메모리 공간

변수의 종류 2 int x; x 변수는 데이터를 담는 상자로 생각할 수 있다. 자료형 변수의 이름 변수의 이름 변수에는 데이터의 종류에 따라 여러 가지 타입이 존재한다.

변수의 이름 식별자(identifier): 변수나 함수의 이름 식별자를 만드는 규칙 식별자는 영어의 대소문자, 숫자, 밑줄 문자 _로 이루어진다. 식별자는 숫자로 시작할 수 없다. 대문자와 소문자를 구별하며 C 언어의 키워드와 똑같은 이름은 허용되지 않는다. 식별자의 예: s, s1, student_number: 올바른 식별자 $s, 2nd_student , int: 잘못된 식별자

변수 선언 변수 선언: 컴파일러에게 어떤 타입의 변수가 사용되는지를 미리 알리는 것 int x; 자료형 변수의 이름

자료형 자료형(data type): 변수가 저장할 데이터가 정수인지 실수인지, 아니면 또 다른 어떤 데이터인지를 지정하는 것

변수 선언 int x; // 첫번째 정수를 저장하는 변수 int y; // 두번째 정수를 저장하는 변수 int sum; // 두 정수의 합을 저장하는 변수 각 변수는 정수를 저장 할 수 있다. x y sum 메모리 공간에 변수 가 만들어지고 이름이 붙여진다.

값을 변경할 수 있으나 상수는 한번 값이 정해지면 변경이 불가능합니다. x = 100; y = 200; 상수 상수(constant): 그 값이 프로그램이 실행하는 동안 변하지 않는 수 변수는 실행도중에 값을 변경할 수 있으나 상수는 한번 값이 정해지면 변경이 불가능합니다. 12 12 변수 상수

중간 점검 int형 변수 i를 선언하는 문장을 작성하여 보자. double형 변수 f를 선언하는 문장을 작성하여 보자. 변수 선언은 함수의 어떤 위치에서 하여야 하는가?

수식 수식(expression): 피연산자와 연산자로 구성된 식 수식은 결과값을 가진다. sum = x + y; x2 - 5x + 6의 값을 계산하라. int x, y; x = 3; y = x * x - 5 * x + 6; printf(“%d\n”, y);

산술 연산 연산 연산자 C 수식 수학에서의 기호 덧셈 + x + y 뺄셈 - x - y 곱셈 * x * y xy 나눗셈 / 나머지 % x % y x mod y

산술 연산 sum = x + y; 5 2 3 = + sum x y

= ; 대입 연산 100 100 대입 연산(assignment operation): 변수에 값을 저장하는 연산 x = 100; 대입 연산(assignment operation): 변수에 값을 저장하는 연산 대입 연산 = 배정 연산 = 할당 연산 = 연산자는 변수에 값을 저장합니다. = ; 100 100 x

정리

중간 점검 변수a와 변수 b의 곱을 변수 product에 저장하는 문장을 작성하여 보자. 변수a를 변수 b로 나눈 값을 변수 quotient에 저장하는 문장을 작성하여 보자.

printf() printf(): 모니터에 출력을 하기 위한 표준 출력 라이브러리 함수

문자열 출력 문자열(string): “Hello World!\n”와 같이 문자들을 여러 개 나열한 것 printf("Hello World!\n"); 문자열(string): “Hello World!\n”와 같이 문자들을 여러 개 나열한 것 Hello World! H e l l o W o 실행결과 printf()

변수값 출력 printf("두수의 합: %d", sum); 형식 지정자 의 개수와 변수의 개수와 순서는 같아야 한다. 두수의 합: 30

형식 지정자 형식 지정자: printf()에서 값을 출력하는 형식을 지정한다. 형식 지정자 의미 예 실행 결과 %d 10진 정수로 출력 printf(“%d \n”, 10); 10 %f 실수로 출력 printf(“%f \n”, 3.14); 3.14 %c 문자로 출력 printf(“%c \n”, ‘a’); a %s 문자열로 출력 printf(“%s \n”, “Hello”); Hello

여러 개의 변수값 출력 printf( , number , height ); “학번 %d 의 성적은 %f \n” 형식 제어 문자열 printf( , number , height ); “학번 %d 의 성적은 %f \n” 형식 지정자 의 개수와 변수의 개수와 순서는 같아야 한다. 학번 23의 성적은 3.99

주의!

중간 점검 printf()에서 변수의 값을 실수 형태로 출력할 때 사용하는 형식 지정자는 무엇인가? printf()를 사용하여서 정수형 변수 k의 값을 출력하는 문장을 작성하여 보자.

덧셈 프로그램 #2 사용자로부터 입력을 받아보자. 시 작 입력단계 처리단계 출력단계 종 료 두 정수를 더하여 합을 구한다. 두 정수를 읽음 입력단계 두 정수를 더하여 합을 구한다. 처리단계 합을 출력 출력단계 결과출력 데이터입력 데이터처리 종 료

두번째 덧셈 프로그램 2 5 + 3 x y // 사용자로부터 입력받은 2개의 정수의 합을 계산하여 출력 #include <stdio.h> int main(void) { int x; // 첫번째 정수를 저장할 변수 int y; // 두번째 정수를 저장할 변수 int sum; // 2개의 정수의 합을 저장할 변수 printf("첫번째 숫자를 입력하시오:"); // 입력 안내 메시지 출력 scanf("%d", &x); // 하나의 정수를 받아서 x에 저장 printf("두번째 숫자를 입력하시오:"); // 입력 안내 메시지 출력 scanf("%d", &y); // 하나의 정수를 받아서 x에 저장 sum = x + y; // 변수 2개를 더한다. printf("두수의 합: %d", sum); // sum의 값을 10진수 형태로 출력 return 0; // 0을 외부로 반환 } 2 x 5 sum + 3 y 첫번째 숫자를 입력하시오: 2 두번째 숫자를 입력하시오: 3 두수의 합: 5

scanf(“ %d %f ” , &number , &height ); 형식 제어 문자열 scanf(“ %d %f ” , &number , &height ); 형식 지정자의 개수와 변수의 개수와 순서는 같아야 한다. 23 45.7

scanf()의 동작 키보드로부터 값을 받아서 변수에 저장한다. 변수의 주소를 필요로 한다.

형식지정자 형식 지정자 의미 예 %d 정수를 10진수로 입력한다 scanf(“%d”, &i); %f float 형의 실수로 입력한다. scanf(“%f”, &f); %lf double 형의 실수로 입력한다. scanf(“%lf”, &d); %c 문자 형태로 입력한다. scanf(“%c”, &ch); %s 문자열 형태로 입력한다. char s[10]; scanf(“%s”, &s);

scanf() 형식 지정자와 변수의 자료형은 일치하여야 함

실수 입력 float ratio = 0.0; scanf("%f", &ratio); double scale = 0.0; scanf("%lf", &scale); 주의!!!

중간 점검 scanf()를 시용하여서 사용자로부터 실수값을 받아서 double형의 변수 value에 저장하는 문장을 작성하여 보자.

= 연봉 계산 프로그램 * * 200 10 12 24000 salary deposit /* 저축액을 계산하는 프로그램 */ #include <stdio.h> int main(void) { int salary; // 월급 int deposit; // 저축액 printf("월급을 입력하시오: "); scanf("%d", &salary); deposit = 10 * 12 * salary; printf("10년 동안의 저축액: %d\n", deposit); return 0; } 10 * 12 * salary = 24000 deposit 월급을 입력하시오: 200 10년 동안의 저축액 : 24000

원의 면적 프로그램 5.0 5.0 5.0 = 3.14 * * radius area /* 원의 면적을 계산하는 프로그램*/ #include <stdio.h> int main(void) { float radius; // 원의 반지름 float area; // 면적 printf("반지름을 입력하시오: "); scanf("%f", &radius); area = 3.14 * radius * radius; printf("원의 면적: %f\n", area); return 0; } 5.0 5.0 3.14 78.500000 * * = 5.0 radius area 반지름을 입력하시오: 5.0 원의 면적:78.500000

= 환율 계산 프로그램 928.78 rate 1076. 681204 / usd 1000000 krw /* 환율을 계산하는 프로그램*/ #include <stdio.h> int main(void) {         float rate;  // 원/달러 환율         float usd;   // 달러화         int krw;     // 원화                  printf("달러에 대한 원화 환율을 입력하시오: ");         scanf("%f", &rate);                            printf("원화 금액을 입력하시오: ");            scanf("%d", &krw);                            usd = krw / rate;                                           printf("원화 %d원은 %f달러입니다.\n", krw, usd);      return 0;                                      } 928.78 rate 1076. 681204 = usd / 1000000 krw 달러에 대한 원화 환율을 입력하시오: 928.78 원화 금액을 입력하시오: 1000000 원화 1000000원은 1076.681204달러입니다.

실습: 사각형의 둘레와 면적 필요한 변수는 w, h, area, perimeter라고 하자. 변수의 자료형은 실수를 저장할 수 있는 double형으로 하자. area = w*h; perimeter = 2*(w+h);

프로그램의 실행 화면 사각형의 넓이: 50.000000 사각형의 둘레: 30.000000

코딩 #include <stdio.h> int main(void) { double w; double h; double area; double perimeter; w = 10.0; h = 5.0; area = w*h; perimeter = 2*(w+h); printf("사각형의 넓이: %lf", area); printf("사각형의 둘레: %lf", perimeter); return 0; } 사각형의 넓이: 50.000000 사각형의 둘레: 30.000000

도전문제 한번의 printf() 호출로 변수 perimeter와 area의 값이 동시에 출력되도록 변경하라. w와 h의 값을 사용자로부터 받도록 변경하여 보자. %lf를 사용한다.

실습문제 정수 하나를 입력 받아 구구단을 출력하는 프로그램을 작성하시오. 세 개의 숫자(실수형)를 입력하면 이 수들의 합과 평균을 출력하는 프로그램을 작성하시오. 어떤 정수 나눗셈의 몫과 나머지를 출력하는 프로그램을 작성하시오. 사용자 입력 : 두 개의 정수 프로그램 출력 : 몫과 나머지

Q & A