Microsoft PowerPoint - 2주차-1차시 (강의자료) ch01 - C Programming 기초 (part 2)

Similar documents
<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

쉽게 풀어쓴 C 프로그래밍

프로그램의실행화면 주석 (comment) 두수의합 : 300 /* 두개의숫자의합을계산하는프로그램 */ 주석은코드를설명하는글입니다. 주석 3 가지방법의주석 주석의예 /* 한줄로된주석 */ /* 저자 : 홍길동날짜 : 2013.

Microsoft PowerPoint - chap-03.pptx

Microsoft PowerPoint - Lesson2.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

C 언어의구성요소인상수, 변수, 입 출력함수에 대하여학습

PowerPoint Presentation

OCW_C언어 기초

쉽게

OCW_C언어 기초

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - [2009] 02.pptx

C 프로그램의 기본

Microsoft PowerPoint - ch07 - 포인터 pm0415

C 언어 프로그래밊 과제 풀이

금오공대 컴퓨터공학전공 강의자료

untitled

untitled

PowerPoint 프레젠테이션

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

중간고사

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드]

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

untitled

슬라이드 1

PowerPoint 프레젠테이션

Microsoft PowerPoint - Chapter_04.pptx

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor

PowerPoint 프레젠테이션

슬라이드 1

<4D F736F F F696E74202D204C BAB8C3E6BCB3B8ED202D20C7C1B7CEB1D7B7A1B9D6C0DBBCBAB0FAC1A42C C F>

Microsoft PowerPoint - c2.ppt

; struct point p[10] = {{1, 2, {5, -3, {-3, 5, {-6, -2, {2, 2, {-3, -3, {-9, 2, {7, 8, {-6, 4, {8, -5; for (i = 0; i < 10; i++){ if (p[i].x > 0 && p[i

Microsoft PowerPoint - chap08-1 [호환 모드]

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

11장 포인터

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - chap04-연산자.pptx

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

본 강의에 들어가기 전

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

슬라이드 1

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

C++-¿Ïº®Çؼ³10Àå

슬라이드 1

PowerPoint Presentation

1.1.1 컴퓨터의 구성 p.19

03 상수, 변수, 자료형

Microsoft PowerPoint - chap-02.pptx

untitled

C 언어와 프로그래밍 개요

Microsoft PowerPoint - chap-06.pptx

4.0 개요 p.116 수식 (expression) 연산자 (operator) 와피연산자 (operand) 로구성 수식은평가 (evaluate) 되어최종적으로 1 개의결과값이됨 피연산자 : 상수, 변수, 또다른수식 sum - 10 (a+b) / 2 연산자 2

ABC 2장

Microsoft PowerPoint - chap05-제어문.pptx

02장.배열과 클래스

Microsoft PowerPoint - ch01.ppt

윤성우의 열혈 TCP/IP 소켓 프로그래밍

PowerPoint 프레젠테이션

PowerPoint Presentation

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

PowerPoint Presentation

Microsoft PowerPoint - 제11장 포인터(강의)

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

PowerPoint 프레젠테이션

컴파일러

Microsoft PowerPoint - chap-05.pptx

Microsoft PowerPoint - chap-07.pptx

int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \

Microsoft PowerPoint - chap11-포인터의활용.pptx

Microsoft PowerPoint - CP_02_Convert_To_C_02_Step.pptx

PowerPoint 프레젠테이션

슬라이드 1

Microsoft PowerPoint - additional01.ppt [호환 모드]

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍

PowerPoint Template

Microsoft PowerPoint - 제11장 포인터

Microsoft PowerPoint - Chapter_02.pptx

쉽게 풀어쓴 C 프로그래밍

OCW_C언어 기초

歯9장.PDF

Microsoft PowerPoint - chap4_2013 [호환 모드]

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

Microsoft PowerPoint - Lesson6.pptx

Microsoft PowerPoint - chap12-고급기능.pptx

TEST BANK & SOLUTION

Microsoft PowerPoint - 2장 변수와 자료형 pptx

Microsoft PowerPoint - chap-02.pptx

금오공대 컴퓨터공학전공 강의자료

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

Transcription:

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

덧셈프로그램 #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; } 1-24

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

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

프로그래밍언어과목의표준주석표기 Standard comment at each source code file produced in this course /** * File Name: "???.c" or "xxx.h", or "yyy.cpp" * Description: * - This program is...... * * Programmed by Gil-Dong Hong (November 15, 2009), * Last updated: Version 2.0, September 1, 2012 (by Young-Chul Kim). * * ======================================================== * Version Control (Explain updates in detail) * ======================================================== * Name YYYY/MM/DD Version Remarks * Gil-Dong Hong 2009/11/15 v1.0 1:1 Chatting on UDP socket, 2 threads * John Doe 2010/05/01 v1.1 User interface has been updated with GUI * Young-Chul Kim 2012/09/01 v2.0 Major change in the program structure * ======================================================== */ 1-27

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

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

전처리기 (preprocessor) #include <stdio.h> # 기호로시작 헤더파일 stdio.h를소스코드안에포함 stdio.h는표준입출력에대한라이브러리함수의정의가들어있다. 1-30

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

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

함수의구조 1-33

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

함수 작업을수행하는문장 (statement) 들은함수안에들어가야함 1-35

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

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

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

return 문장 1-39

main() 은누가호출할까? 1-40

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

변수의종류 변수는데이터를담는상자로생각할수있다. 데이터 자료형 int x; 변수의이름 x 2 변수의이름 변수에는데이터의종류에따라여러가지타입이존재한다 : char ( 문자 ) int ( 정수 ) double ( 실수, 부동소숫점, double precision floating point) 1-42

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

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

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

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

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

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

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

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

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

정리 1-52

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

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

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

printf() 함수의형식지정자 형식지정자 : 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 1-56

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

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

scanf() scanf(): 표준입력장치 ( 키보드 ) 로부터입력을하기위한라이브러리함수 형식제어문자열 scanf( %d %f, &number, &height ); 23 45.7 형식지정자의개수와변수의개수와순서는같아야한다. 1-59

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

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); 1-61

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

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

원의면적계산프로그램 원의반지름이주어졌을때, 면적계산하기 원의면적 = 3.14159 x 반지름 x 반지름 Algorithm AreaOfCircle() 1: // input arguments: none 2: double radius; // local variable 3: double area; // local variable 4: input radius; 5: area = 3.14159 * radius * radius; 6: printout radius and area; 7: end 원의반지름 (radius) 원의면적 = r 2 1-64

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

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

사각형의둘레와면적계산 Pseudo code Algorithm PerimeterAndAreaOfRectangle() 1: // input arguments: none 2: double width; // local variable 3: double height; // local variable 4: double area; 5: double perimeter; 6: input width; 7: input height; 8: area = width * height; 9: perimeter = (width + height) * 2.0; 10: printout area and perimeter of rectangle with width and height; 11: end 1-67

사각형의둘레와면적계산 Source Coding /** Perimeter and Area of Rectangle */ #include <stdio.h> int main(void) { double width; double height; double area; double perimeter; } printf( 사각형의폭과높이를입력하시오 : ); scanf( lf, &width); scanf( lf, &height); area = width*height; perimeter = 2*(width+height); printf( 폭 (%lf), 높이 (%lf) 인사각형 : ); printf( 넓이 :%lf,",area); printf( 둘레 :%lf n", perimeter); return 0; 1-68

Homework 1 1.1 1부터 10까지를더하여합을구하고, 그평균을구하는알고리즘의 pseudo code를작성하라. 1.2 100명의학생들의성적을차례로입력하고, 가장우수한성적, 가장낮은성적, 평균성적을구하는알고리즘의 pseudo code를작성하라. 1.3 사용자로부터원기둥의반지름, 원기둥의높이를입력받고, 이원기둥의체적 (volume) 과표면적 (surface area) 를계산하는프로그램의 pseudo code를작성하라. 1.4 위1.3문제에서작성한 pseudo code에따라c 프로그램으로작성하고, 실행화면을 capture하여 source code와함께제출하라. 1-69