• 검색 결과가 없습니다.

C 프로그래밍의 이해

N/A
N/A
Protected

Academic year: 2022

Share "C 프로그래밍의 이해"

Copied!
29
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

C 프로그래밍의 이해

프로그래밍 격언

(2)

2

포니2

(3)

3

자동차? 기계 + IT

(4)

4

1970-80년대 : 자동차에서 반도 체와 전자부품의 비율은 전체 가격 의 1% 미만임

2015년이 되면서 제조원가의 40%까지 증가함

최신 승용차 : 컴퓨터 47대와 반도 체 칩 1,000여개

소프트웨어가 12,700,000 라인 (국산화율 5%)

전장장치

(5)

5

(6)

6

TESLA

(7)

7

(8)

8

자율주행차 시대

(9)

9

자율주행차 시대

(10)

10

드론 시대

(11)

11

인공지능 시대

(12)

12

프로그램 배우기

우리는 왜 프로그램을 배우나?

많은 문제를 해결해야 한다

사람의 손으로 짧은 시간내에 다 해결하기 힘들다

컴퓨터의 손을 빌려야 한다

컴퓨터에게 명령을 내려야 한다

프로그래머가 되어야 하는 이유?

컴퓨터를 제어해야한다

(13)

13

(14)

14

프로그래머

(15)

15

“KISS (Keep It Simple, Stupid)”의 원칙 사용

10줄 미만의 간단한 프로그램을 짜서 테스 트하고 잘 작동되면 이 모듈을 끼워 넣어라

빨리 많은 코딩을 하는 프로그래머를 부러 워하면 안된다

모든 코딩은 자신이 100% 이해하고 있어야 한다

애매한 코딩은 반드시 문제가 생긴다

printf() 문은 여러분의 친구이다

항상 테스트하라

프로그래밍 원칙

(16)

16

경고문을 남겨두지 마라

컴파일러의 경고문은 “단순한 경고”가 아 니다

문제가 될 가능성이 있음을 암시한다

프로그래밍 원칙

(17)

17

구체적인 원칙

자신의 프로그램에 많은 주석을 두어라

부작용을 피하라.

++나 -- 연산자는 독립적으로 한 줄에 씀

애매한 코딩이 있으면 안된다

조건 내에 할당문을 두지 마라

If( a = 3 ) // 주의, 할당문…

=과 ==의 차이를 알고 있어야 함

아무 것도 하지 않은 상태로 두지 않음

// 다음과 같이 프로그래밍하지 마라

for (index = 0; data[index] < key; ++index);

// 세미콜론을 살펴보자

(18)

18

설 계

좋은 코딩 습관을 만들도록 함

빠르고 간단한 방법과 일반적이고 유연성 있는 방 법 사이에서 하나를 선택한다면

언제나 유연성 있는 방법을 사용

사용자가 정해진 형식대로 입력한다고 생각하지 마라

부호가 있는 것과 부호가 없는 것의 변환과 오버/

언더플로우 조건에 유의

(19)

19

선 언

라인마다 하나의 변수 선언을 하고 주석을 단다.

int numOfPerson = 10; // 입력할 인원

쉽게 이해할 수 있게 긴 이름을 사용한다.

하지만 너무 긴 이름은 입력하기가 힘들 수 있음

int tooLongVariableName = BAD;

기본 return 선언문을 사용하지 않는다.

함수가 정수를 리턴하면 int 타입으로 선언

(20)

20

스타일

{ }로 둘러싸인 블록 코드는 2페이지 이상 되어서 는 안됨

더 큰 블록은 여러 개의 작고 간단한 프로시저로 나눈 다.

코드가 바르게 동작하면 프로시저를 여러 개의 작 고 간결한 프로시저로 나눈다.

(21)

21

마지막 노트

언제든지 예상치 못한 결과가 나올 수 있다는 것 을 생각해야한다

[예제]

#include <stdio.h>

int main() {

int number;

printf(“Enter a number: “ );

scanf(“%d”, &number);

if (number =! 2)

printf( “Number is not two\n”);

else

printf( “Number is two\n”);

return (0);

}

(22)

22

프로그래밍 로드맵

C 프로그래밍

C/C++ 언어의 심화 학습과 객체지향 프로그래밍의 원리 프로그래밍 기법을 이해

자료구조론

효율적으로 자료를 다루기 위한 자료구조와 프로그래밍 작성 기법을 이해

1/2

2/1 기초 프로그래밍

C 언어의 기초 학습과 손쉬운

프로그래밍의 원리 프로그래밍 기법을 이해

1/1

(23)

23

프로그래밍 로드맵

기계학습(김병욱교수님)

멀티미디어 응용 모바일 소프트웨어 개발을 위한 프로그래밍

비주얼 프로그래밍

객체지향 프로그래밍과 다양한 고급 프로그래밍 작성 기법을 이해(자바, 유니티)

알고리즘

다양한 문제를 효율적으로 해결할 수 있는 절차와 순서, 시간복잡도 등을 익힌다

2/2

3/1

3/2

(24)

24

프로그래밍 로드맵

유닉스

유닉스 시스템 개발을 위한 프로그래밍 웹프로그래밍

홈페이지개발등 다양한 웹 콘텐츠 개발을 위한 프로그래밍

캡스톤 디자인

졸업작품 개발을 위한 설계

멀티미디어 프로그래밍 영상처리 압축등

다양한 멀티미디어 프로그래밍 기법을 익힘 4/1

3학년

2학년

(25)

프로그래밍 실력 향상 방학계획

▪ 교재의 모든 소스코드를 입력해서 실행해 본다

▪ 교재의 모든 연습문제를 스스로 풀어본다

▪ 이러한 과정을 즐긴다

▪ 프로그래밍 관련 온라인 강의를 수강한다

25

(26)

One more thing.

▪ 여행을 다닌다

▪ 다양한 도시와 숙소에 묶으며 사람들을 만나서 이야기 나누고 삶을 즐긴다

▪ 타인을 이해하는 아주 좋은 수단이다

▪ 자신의 외연을 확장하는 계기

▪ 독서를 한다

▪ 대학도서관은 대학의 심장이다

▪ 도서관에 틀어박혀 읽고 싶은 책을 실컷 읽는다

26

(27)

One more thing.

▪ 아르바이트를 통해 사회경험을 한다

▪ 경제활동을 통해 노동의 중요성을 이해한 다

▪ 부모님 손잡고 영화보고 데이트하기…

27

(28)

28

(29)

29

한학기 동안 수고하셨습니다

Q&A

참조

관련 문서

특수교육의

모든 삼각함수는 정의역에서 일대일 함수가

문자열 출력함수 • Status DrawStringconst WCHAR *string, INT length, cont Font *font, const PointF &origin, const Brush *brush • Status DrawStringconst WCHAR *string,

Rest, fresh air, sunshine and skillful nursing work miracles every

각자 젂공이 있지만 젂공과 관렦된 젂시․조사․연구만 하는 것이 아니라 때로는 젂공과 무관핚 읷을 해야 하는 경우도 많음. 이러핚 경우에

전주 한옥마을 역사문화자원 활용... 전주

공공부문 비정규직 근로자의 정규직 전환 정책으로 민간위탁 근로자의 정규직 전환에 따라 공무직근로자의 수행기능과 정수를

public abstract class Graph { //ADT method.. public