Name Addr Content Lecture++; Lecture 3 2

Similar documents
OCW_C언어 기초

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

Microsoft PowerPoint - [2009] 02.pptx

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

Microsoft PowerPoint - Chapter_04.pptx

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

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

Microsoft PowerPoint - chap04-연산자.pptx

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

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

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

Microsoft PowerPoint - chap06-2pointer.ppt

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

중간고사

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - chap-03.pptx

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Chapter_06

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

PowerPoint 프레젠테이션

untitled

untitled

<4D F736F F F696E74202D204D41544C4142B0ADC0C7B7CF28B9E8C6F7BFEB295F3031C0E55FBDC3C0DBC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

쉽게 풀어쓴 C 프로그래밍

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

Microsoft PowerPoint - Lesson2.pptx

6.1 Addresses and Pointers Recall memory concepts from Ch2 ch6_testbasicpointer.c int x1=1, x2=7; double distance; int *p; int q=8; p = &q; name addre


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

untitled

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

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

PowerPoint Presentation

C 프로그램의 기본

歯7장.PDF

chap7.PDF

歯9장.PDF

Microsoft PowerPoint - chap05-제어문.pptx


OCW_C언어 기초

C++ Programming

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

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

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

슬라이드 1

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

PowerPoint Presentation

C 언어와 프로그래밍 개요

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

슬라이드 1

1.1.1 컴퓨터의 구성 p.19

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

PowerPoint Presentation

chap10.PDF

11장 포인터

Microsoft PowerPoint - ch01.ppt

컴파일러

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - CP_02_Convert_To_C_02_Step.pptx

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

JAVA PROGRAMMING 실습 02. 표준 입출력

PowerPoint Presentation

슬라이드 1

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

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

Microsoft PowerPoint - 제11장 포인터

Microsoft PowerPoint - chap-05.pptx

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

Microsoft PowerPoint - c2.ppt

untitled

Microsoft PowerPoint - chap10-함수의활용.pptx

11장 포인터

Infinity(∞) Strategy

Microsoft PowerPoint - Chapter8.pptx

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

ABC 3장

PowerPoint 프레젠테이션

chap8.PDF

쉽게

OCW_C언어 기초

쉽게 풀어쓴 C 프로그래밍

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 \

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

02장.배열과 클래스

Microsoft PowerPoint - 03_(C_Programming)_(Korean)_Pointers

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - 기계공학실험1-1MATLAB_개요2D.pptx

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

03 상수, 변수, 자료형

Microsoft PowerPoint - chap03.ppt

슬라이드 1

슬라이드 1

PowerPoint 프레젠테이션

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

Microsoft PowerPoint - Chapter_08.pptx

Microsoft PowerPoint - C++ 5 .pptx

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

KNK_C_05_Pointers_Arrays_structures_summary_v02

Transcription:

GEN1031 Computer Programming Chapter 2 Kichun Lee Department of Industrial Engineering Hanyang Univesity 1

Name Addr Content Lecture++; Lecture 3 2

2.1 프로그램구조 (Program Structure) 3

/*-----------------------------------------*/ /* Program chapter1_1 */ /* This program computes the */ /* distance between two points. */ #include <stdio.h> #include <math.h> int main(void) { /* Declare and initialize variables. */ double x1=1, y1=5, x2=4, y2=7, side_1, side_2, distance; /* Compute sides of a right triangle. */ side_1 = x2 - x1; side_2 = y2 - y1; distance=sqrt(side_1*side_1 + side_2*side_2); /* Print distance. */ printf("the distance between the two " "points is %5.2f \n", distance); return 0; /* Exit program. */ } /*-----------------------------------------*/ 주석 전처리기, standard C library 모든 C 프로그램은 main 함수를포함하며, 매개변수를이용하지않고, int 값으로반환한다. { 시작 변수선언, 초기값 ( 필요한경우 ) 문장 문장의끝에는 ; 들여쓰기 return 0 들여쓰기 들여쓰기 } 함수의끝 4

일반적형태 (General Form) preprocessing directives int main(void) { declarations statements } main 함수는두가지종류의명령을포함 : 선언과문장 함수내에존재하는각각의선언및문장의끝에는세미콜론 (;) 이필요하다. 전처리기지시자는끝에는세미콜론 (;) 이필요없다. 프로그램을종료하기위해서는, return 0; 문장을사용한다. 5

추가문제 /***************************************************/ /* Program chapter1 */ /* This program computes the sum of two numbers */ #include <stdio.h> int main(void) { /* Declare and initialize variables. */ double number1 = 473.91, number2 = 45.7, sum; /* Calculate sum. */ sum = number1 + number2; /* Print the sum. */ printf( The sum is %5.2f \n, sum); system("pause"); /* keep DOS window on the screen*/ return 0; /* Exit program. */ } /****************************************************/ 6

2.2 상수와변수 수학에서변수는무엇입니까? f(x) = x 2 +x+4 C언어에서는, 변수는어떠한값을가지고있는메모리의위치 식별자또는변수의이름은메모리의위치를참조하는데사용 7

메모리 double x1=1,x2=7,distance; name address Memory - content x1 x2 distance 11 12 13 14 15 1 = 00000001 7 = 00000111? = 01001101 당신의컴퓨터에얼마나많은메모리공간을가지고있습니까? 2Gbyte memory 입니까? 1K=10 3 or 2 10 = 1024 1M=10 6 or 2 20 = 1024 2 1G=10 9 or 2 30 = 1024 3 16 8

메모리스냅샷 (Memory Snapshot) Name Addr Content x1 1 y1 5 x2 4 y2 7 side_1? side_2? distance? 9

유효한식별자를구별하기위한규칙 ( 변수이름 ) 알파벳문자나밑줄표시로시작해야함 (e.g., abcabc_) 오직문자, 숫자, 밑줄표시로만구성 (no special characters ^%@) 대소문자구분 (AbC, abc are different) 식별자로서 C에서사용하는키워드를사용할수없음 (e.g., if, case, while) 10

C 언어의표준키워드? distance 1x x_1 rate% x_sum switch initial_time DisTaNce X&Y 11

C 수치형데이터형태 12

Example 데이터 - 형태의제한 13

C 문자데이터형태 : char char result = Y ; 메모리에서모든것은이진값으로저장되고, 그것은문자또는정수로해석될수있다. 예를들면, ASCII Codes 방식이있다. 14

메모리 어떻게 a 를나타내는가? char My_letter= a ; int My_number = 97 메모리에는항상 1 과 0 값을포함하고있다. 이것은우리가보는관점에따라달라진다. 예를들면, 01100001 는정수로보면은 97 이고문자로보면은 a 가된다. 3 과 3 은같지않다. 2.5 는어떻게처리하는가? name address My_letter My_number 0 1 2 3 4 5 6 Memory - content a = 01100001 97 = 01100001? = 01001101 15

Program to Print Values as Characters and Integers 16

상수 (Constants) 상수는우리의프로그램에서사용하는특정한값이다. 예를들면, 3.14, 97, a, or hello 프로그램에서는, int a = 97; char b = a ; double area, r=2.0; double circumference; area = 3.14 * r*r; circumference = 2 * 3.14 * r; 01100001 01100001?? 2.0 a b area circumf erence r 17

기호상수 (Symbolic Constants) 만약에더정확한 의추정값을사용하고싶다면? 예를들어, 3.14 대신에 3.141593 를사용하자하는경우 여러분은손으로모든것을고쳐야한다. 더좋은해결책을위해, 를기호상수로정의한다. #define PI 3.141593 area = PI * r * r; circumference = 2 * PI * r; 전처리지시자 (preprocessor directive) 로정의한다. 컴파일러는각각의지시식별자가나타났을때상수값으로변환시켜준다. 18

2.3 할당선언 (Assignment Statements) 변수에값을할당하는데사용되어짐 일반적형태 : 식별자 = 수식 ; /* = 는수식에식별자를할당한다는것을뜻함 */ 예 1 double sum = 0; 예 2 int x; x=5; 0 5 sum x 예 3 char ch; ch = a ; a ch 19

할당예제 ( 계속 ) 예 3 int x, y, z; x = y = 0; right to left! x y 0 0 2 5 Z = 1+1; z 2 예 4 y=z; y=5; 20

다른형태의할당예제 int a, b=5; double c=2.3; a=c; /* data loss */ c=b; /* no data loss */? 5 2.3 2 5.0 a b c long double, double, float, long integer, integer, short integer, char 데이터가손실될수도있습니다. 조심하세요 데이터손실이없습니다. 21

연습 : swap 변수 x 와 y 의할당된값을바꿔주는문장을작성합시다. x y 3 5 x y 5 3 Before After 22

연습 : swap 첫번째순서 x=y; y=x; x 3 x 5 x 5 y 5 y 5 y 5 Before After x=y After y=x 23

연습 : swap 솔루션 temp= x; x=y; y=temp; x y temp 3 5? x y temp 3 5 3 x y temp 5 5 3 x y temp 5 3 3 Before after temp=x after x=y after y = temp 다음솔루션도잘작동합니까? temp= y; y=x; x=temp; 두개의변수의값을바꿔주는 C 프로그램코드를작성하세요. 24

Name Addr Content Lecture++; Lecture 4 25

산술연산자 (Arithmetic Operators) 더하기 + sum = num1 + num2; 빼기 - age = 2007 my_birth_year; 곱하기 * area = side1 * side2; 나누기 / avg = total / number; 모듈러스 (moduls) % lastdigit = num % 10; 모듈러스는두개의정수를나눈나머지의값을반환 Example 5%2 는 1 값을반환 이항 vs. 단항연산 위의모든연산자는이항연산자이다. ( 이유 ) - 는단항연산자이다, e.g., a = -3 * -4 26

산술연산자 (Arithmetic Operators) id = exp 는 exp 의결과에 id 를할당한다. X=X+1 다음과같다. 첫째로 X+1 을수행 결과를 X 로할당 X 는 4 라고가정하고, X=X+1 을실행한다. 4 X 5 27

정수나누기 vs 실수나누기 두개의정수사이에서의나누기는결과가정수 결과값은잘려진형태이고, 소수점이생략 Example: int A=5/3; A 는값이 1 int B=3/6; B 는값이 0 소수점값을반환하기 : double A=5.0/3; A 는값이 1.666 double B=3.0/6.0; B 는값이 0.5 28

단순한산술연산을계산 / 출력하는프로그램실행하기 Declare a=2, b=5, c=7, d as int Declare x=5.0, y=3.0, z=7.0, w as double d = c%a Print d d = c/a Print d w = z/x Print w d = z/x Print d w = c/a Print w a=a+1 Print a 다른산술연산도시도해봅시다.. 29

복합연산과산술연산에서의우선순위 int a=4+6/3*2; a=? int b=(4+6)/3*2; b=? a= 4+2*2 = 4+4 = 8 b= 10/3*2 = 3*2= 6 5 assign = Right to left 30

복합산술연산을계산 / 출력하기위해이전의프로그램을확장 Declare a=2, b=5, c=7, d as int Declare x=5.0, y=3.0, z=7.0, w as double d = a+c%a Print d d = b*c/a Print d w = y*z/x+b Print w d = z/x/y*a Print d w = c/(a+c)/b Print w a=a+1+b/3 Print a 다른복합산술연산도시도해봅시다.. 31

증가및감소연산자 증가연산자 ++ 사후증가 x++; 사전증가 ++x; 감소연산자 -- 사후감소 x--; 사전감소 --x; } x=x+1; } x=x-1; 그러나, 다음예제에서차이가있다. X=10 이라고가정한다 ; A = x++ - 5; means A=x-5; x=x+1; so, A= 5 and x=11 B =++x - 5; means x=x+1; B=x-5; so, B=6 and x=11 32

복합대입연산자 (Abbreviated Assignment Operator) 연산자 예 동일연산 += x+=2; x=x+2; -= x-=2; x=x-2; *= x*=y; x=x*y; /= x/=y; x=x/y; %= x%=y; x=x%y;!!! x *= 4+2/3 x = x*4+2/3 거짓 x=x*(4+2/3) 참 33

복합대입연산자 (updated) 34

다음의수학공식을 C 언어로작성 Area of trapezoid base area ( height 1 height 2 * 2 ) area = base*(height1 + height2)/2; How about this Tension 2m1m2 m m 1 2 g 35

연습 Tension 2m1m m m 1 2 2 g Tension = 2*m1*m2 / m1 + m2 * g; wrong Tension = 2*m1*m2 / (m1 + m2) * g 다음을계산하기위해 C언어로작성 3 2 x 2x x 6.3 f 2 x 0.05x 3.14 f = (x*x*x-2*x*x+x-6.3)/(x*x+0.05*x+3.14); 36

연습 : 산술연산 다음의연산후에메모리스냅샷을나타내시오 (by hand). int a, b, c=5; double x, y; a = c * 2.5; b = a % c * 2-1; x = (5 + c) * 2.5; y = x (-3 * a) / 2;?? 5?? a b c x y a, b, c, x, y 의값이출력되도록 C 프로그램을작성하고, 직접계산한값과비교해보시오. a = 12 b = 3 c= 5 x = 25.0000 y = 43.0000 37

연습 : 산술연산자 C프로그램에서는다음의문장이어떻게작동하는지보여주세요. 그리고최종결과물은무엇입니까? int a = 6, b = -3, c = 2; c= a - b * (a + c * 2) + a / 2 * b; printf("value of c = %d \n", c); 38

단계별로 C 에서연산자가어떻게작동하는가 c = 6 - -3 * (6 + 2 * 2) + 6 / 2 * -3; c = 6 - -3 * (6 + 4) + 3 * -3 c = 6 - -3 *10 + -9 c = 6 - -30 + -9 c = 36 + -9 c = 27 output: Value of c = 27 39

단계별로 C 에서연산자가어떻게작동하는가 int a = 8, b = 10, c = 4; c = a % 5 / 2 + -b / (3 c) * 4 + a / 2 * b; printf("new value of c is %d n", c); 40

연습 : 숫자를뒤바꾸기 숫자가 [100 999] 범위내에서주어진다고가정한다. 이것을뒤바꾸는프로그램을작성한다. 예를들면, 숫자 258 을뒤바꾸면 852 d1 = num / 100; d3 = num % 10; reverse = num (d1*100+d3) + d3*100 + d1; int d1, d2, d3, num=258, reverse; d1 = num / 100; d2 = num % 100 / 10; d3 = num % 10; reverse = d3*100 + d2*10 + d1; printf( reverse is %d n, reverse); 41

Name Addr Content Lecture++; Lecture 5 42

2.4 표준입력과출력 출력 : printf 입력 : scanf 두점사이의거리를구하는프로그램을기억합시다! /* Declare and initialize variables. */ double x1=1, y1=5, x2=4, y2=7, side_1, side_2, distance; 우리는다른점사이의거리를어떻게계산할수있습니까? 사용자로부터두점을얻어서이용하면더좋을것입니다. 이것을위해서우리는 scanf 를사용할것입니다. 이함수를사용하기위해서, 우리는다음의문장이필요 #include <stdio.h> 43

표준출력 printf 함수 화면에정보를출력 필요한두가지인자 control string 전달인자, 서식문자 or 모두 출력을위한식별자 Example double angle = 45.5; printf( Angle = %.2f degrees \n, angle); Output: Angle = 45.50 degrees 서식문자 Control String 식별자 44

출력문장을위한 서식문자 (Conversion Specifiers) Frequently Used 45

표준출력 Output of -145 Output of 157.8926 Specifier 출력값 %i -145 %4d -145 %3i -145 %6i -145 %-6i -145 %8i -145 %-8i -145 Specifier 출력값 %f 157.892600 %6.2f 157.89 %7.3f 157.893 %7.4f 157.8926 %7.5f 157.89260 %e 1.578926e+02 %.3E 1.579E+02 46

연습 int sum = 65; double average = 12.368; char ch = b ; 다음의문장을통해나타나는출력물을보여주시오. printf("sum = %5i; Average = %7.1f \n", sum, average); printf("sum = %4i \n Average = %8.4f \n", sum, average); printf("sum and Average \n\n %d %.1f \n", sum, average); printf("character is %c; Sum is %c \n", ch, sum); printf("character is %i; Sum is %i \n", ch, sum); 47

연습 ( 계속 ) 솔루션 Sum = 65; Average = 12.4 Sum = 65 Average = 12.3680 Sum and Average 65 12.4 Character is b; Sum is A Character is 98; Sum is 65 48

표준출력 scanf 함수 키보드를통한입력값 필요한인자 control string control string에서서식문자와일치하는메모리위치 Example: double distance; char unit_length; scanf("%lf %c", &distance, &unit_length); 변수의데이터형태에대한적절한서식문자를사용하는것은매우중요하다. 49

입력문장을위한서식문자 Frequently Used 50

연습 float f; int i; scanf( %f %i, &f, &i); 만약에다음의값이입력되면, scanf 문장뒤에 f 와 i 에저장되는값은무엇입니까? 12.5 1 12 45 12 23.2 12.1 10 12 1 51

Good 실습 scanf 전에 printf 를사용할필요가없지만, 사용자에게무엇을입력할지알려주는것이좋습니다. : printf( Enter x y : ); scanf( %d %d, &x, &y); 그렇지않다면, 사용자는무엇을해야하는지모를것입니다. 만약에여러분이변수이름전에 & 입력을하지않았다면무슨일이발생할까요? 52

연습 : 프로그램을재 - 컴파일없이두개의점을입력하는방법 printf( enter x1 y1: ); scanf( %lf %lf, &x1, &y1); printf( enter x2 y2: ); scanf( %lf %lf, &x2, &y2); 53

프로그래밍연습 double 형변수 (a, b, c, d) 값을사용자가입력하도록요청하고다음의공식을계산하는프로그램을작성해라. 그리고결과 (res) 를소수점 3 자리까지출력시켜라. a b a c c b res c d a b a c 54

Name Addr Content Lecture++; Lecture 6 55

Library Functions 56

2.7 Math 함수 #include <math.h> fabs(x) x의절대값. sqrt(x) x 의제곱근, where x>=0. pow(x,y) 멱제곱, x y. 오류가발생한다면, x=0 이고 y<=0, 또는 x<0 이고 y 가정수가아닐때. ceil(x) 가장가까운정수로올림 ( 방향으로, infinity). Example, ceil(2.01) 는 3 과같다. floor(x) 가장가까운정수로올림 (- 방향으로, negative infinity). Example, floor(2.01) 는 2 와같다. exp(x) e x 을계산한다. log(x) x를밑이 e인로그값으로계산한다. 오류가발생한다면, x<=0. log10(x) x를밑이 10인로그값으로계산한다. 오류가발생한다면, x<=0. 57

삼각함수 sin(x) x의 sine 값계산 (x는라디안값 ) cos(x) x의 cosine 값계산 (x는라디안값 ) tan(x) x의 tangent 값계산 (x는라디안값 ) asin(x) x의 arcsine or sine의역수값계산 (x의범위는 [-1, 1]) [- /2, /2] 범위내이있는값을반환. acos(x) x의 arccosine or cosine의역수값계산 (x의범위는 [-1, 1]) [0, ] 범위내이있는값을반환. atan(x) x의 arctangent or tangent의역수값계산 [- /2, /2] 범위내이있는값을반환. atan2(y,x) x/y 의 arctangent or tangent 의역수값계산 [-, ] 범위내이있는값을반환. 58

함수의매개변수 or 인자 함수는인자를포함하지않을수도있고한개또는그이상의인자를포함할수도있다. 한개이상의인자를포함한다면, 정확한순서로인자를목록화한다. 인자가의미하는것에대하여주의한다. 예를들면, sin(x) 는 x 값이라디안값으로주어진다고가정한다. 그래서 sin 60 도를계산하기위해서는우선 60 도를라디안값으로변환후, sin 함수를사용하여야한다. #define PI 3.141593 theta = 60; theta_rad = theata * PI / 180; b = sin(theta_rad); /* is not the same as sin(theta); */ 59

연습 속도를구하기위해다음의등식을사용해서수식을작성하시오. 변수는선언되었다고가정한다. velocity vo 2 2a( x xo) velocity = sqrt(vo*vo+2*a*(x-xo)); velocity = sqrt(pow(vo,2)+2*a*(x-xo)); 60

연습 속도를구하기위해다음의등식을사용해서수식을작성하시오. 변수는선언되었다고가정한다. center 38.19( r 2 ( r 3 s )sin 2 s ) a 3 a a 값이라디안값인지확인한다 ; 그렇지않다면, 우선이값을라디안값으로변환 center = (38.19*(pow(r,3)-pow(s,3))*sin(a))/ ((pow(r,2)-pow(s,2))*a); center = (38.19*(r*r*r - s*s*s)*sin(a))/((r*r s*s)*a); 61

연습 : 부피계산 반지름이 r 이고, 높이가 h 인실린더의부피를계산하는프로그램을작성하시오. V r 2 h r h 62

솔루션 : 부피계산 문제해결방법 1. 문제설정 2. 입력 / 출력서술 3. 예제작성 4. 알고리즘개발 5. 테스트 63

솔루션 : 부피계산 ( 계속 ) 문제설정 반지름이 r 이고, 높이가 h 인실린더의부피를계산 입력 / 출력서술 radius r volume v height h 64

솔루션 : 부피계산 ( 계속 ) 예제작성 r=2, h =3, v=37.68 알고리즘개발 Read radius Read height Compute Volume Print volume 프로그램으로변환 ( 다음슬라이드..) V r 2 h 65

솔루션 : 부피계산 ( 계속 ) #include <stdio.h> #include <stdlib.h> #define PI 3.141593 int main(void) { /* Declare Variables */ double radius, height, volume; printf("enter radius: "); scanf("%lf",&radius); printf("enter height: "); scanf("%lf",&height); /* Compute Volune */ volume = PI*radius*radius*height; } /* Print volume */ printf("volume = %8.3f \n", volume); system("pause"); exit(0); 66

연습문제 넓이가주어진경우에, 원의반지름을찾는프로그램을작성하시오. 사용자로부터넓이를입력받은후, 반지름을계산하고그값을나타내시오. A r 2 r 67

연습 B c A a b C 사용자가 A의각도, a 와 b의길이 (cm) 를각각입력하도록하고다음을계산하는프로그램을작성하시오. B=? in degrees C=? in degrees c=? in cm area=? in cm 2 a sin A area b c sin B sin C 1 ab sin C 2 1 2 ac 예를들어, 다음과같이주어진다면 A=36 o, a=8 cm, b=5 cm: B=21.55 o, C=122.45 o, c=11.49 cm sin B 1 2 bc sin A 68

두선의교차점과두선사이의각도를구하는프로그램을작성하시오. 69

2.8 문자열함수 #include <ctype.h> putchar( a ); C= getchar(); toupper(ch) ch 가소문자인경우에, 이함수는일치하는대문자로반환 ; 그렇지않으면, ch 로반환 isdigit(ch) ch 가 10진수인경우에, 이함수는 0이아닌값으로반환 ; 그렇지않으면, 0 값으로반환 islower(ch) ch 가소문자인경우에, 이함수는 0이아닌값으로반환 ; 그렇지않으면, 0 값으로반환 isupper(ch) ch 가대문자인경우에, 이함수는 0이아닌값으로반환 ; 그렇지않으면, 0 값으로반환 isalpha(ch) ch 가대문자 or 소문자인경우에, 이함수는 0이아닌값으로반환 ; 그렇지않으면, 0 값으로반환 isalnum(ch) ch 가알파벳 or 숫자인경우에, 이함수는 0이아닌값으로반환 ; 그렇지않으면, 0 값으로반환 70

연습다음프로그램의출력물은무엇입니까? #include <stdio.h> #include <stdlib.h> #include <ctype.h> int main(void) { char ch1='a', ch2; char ch3='x', ch4; char ch5='8'; } ch2 = toupper(ch1); printf("%c %c \n",ch1,ch2); ch4 = tolower(ch3); printf("%c %c \n",ch3,ch4); printf("%d\n",isdigit(ch5)); printf("%d\n",islower(ch1)); printf("%d\n",isalpha(ch5)); system("pause"); return(0); 71