U E D R , A S I H C RSS

새싹교실/2012/개차반 (rev. 1.27)

새싹교실/2012/개차반



1. 참여자


강사 윤종하
학생 경진

2. 개요

  • 카톡 회의 결과 초안으로 월 15~16/화 16~17시 진행 예정
  • High-level의 programming skill보단 low-level의 HW적인 구조를 설명하여 low-level에서 접근하는 독특한(...) 코딩 스타일 전수
  • 참고 자료: 손봉수 교수님 수업자료: http://cau.ac.kr/~bongbong/c10/

2.1. 1회차(2012 - 03 - 27)

  • 전원 참석
  • C언어를 low-level의 관점에서부터 접근하기 위해 폰노이만 아키텍쳐부터 수업
    • C언어는 UNIX 개발을 목적으로 만들어진 언어이기 때문에 OS의 기초가 되는 기초적인 컴퓨터시스템은 이해할 필요가 있다고 판단
    • 포인터 개념이나 scanf에서 &가 쓰이는 이유 등 여러가지 keyword에 대해 설명하기 위함
    • binary digit를 비롯한 컴퓨터 시스템의 기초적인 개념 또한 설명
  • 즉석에서 코드를 작성해가며, Compile error, logical error, debug error의 개념에 대해 설명
    • 추후 프로그래밍시 에러 이유와 대처방법 부연 설명
  • C언어의 특징 설명
  • variable 및 main function의 역할 설명
  • #include가 무엇인지 header file이 무엇인지 설명
  • 컴파일러의 역할과 compile -> link -> build 과정 설명

2.1.1. 과제: 이 항목에 오늘 배운 내용을 정리하시오.

  • c 언어의 특징
    • High-Level 언어의 특징과 Low-Level 언어의 특징을 모두 지니고 있다
      • High-Level 언어에 가까울수록 사람이 이해하기 쉬워진다 (Human Friendly)
      • Low-Level 언어에 가까울수록 기계가 이해하기 쉬워진다 (Machine Friendly)

  • 컴파일러 (complier)
    • High-Level 언어를 Low-Level 언어로 변환해주는 역할을 한다

  • 폰 노이만 아키텍쳐
    • 현재 사용되는 모든 컴퓨터에 적용되는 범용 컴퓨터 구조
      • 제어장치와 연산장치, 메모리, 입출력장치로 구성

    • bit
    • 이진법으로 나타낼 수 있는 자릿수를 나타낸다
      • 1bit=0,1 / 2bit=00,01,10,11 / 3bit=000,001,010,011,100 ...

  • 헤더 파일
    • 함수 (Function) 들의 집합
      • 이미 존재하는 함수를 가져다 쓰려 할 때 헤더파일을 불러와서 사용한다

    • 변수 (variable)
    • int, float, char 등
      • int는 정수를 나타내고자 할 때 사용하며 출력시 %d를 사용
      • float는 소수점 아래의 숫자까지 표현하고자 할 때 사용하며 출력시 %f를 사용
      • char는 문자를 나타내고자 할 때 사용하며 출력시 %c를 사용


  • 과제 제출내용에서 빼먹는 수업 내용 추가!
    • int: integer type, 4 bytes
    • char: It used to express a character, but also used to express a integer. 1 byte
    • float: 4 byte, floating type number. Specification in IEEE 754-2008

    • function: input -> output

    • Main function
      • real part of program
      • It has start and end point of a program.
      • return 0; : 0 is a flag noticing OS that program is ended.

2.2. 2회차(2012 - 04 -05)

  • 수업내용: Variables, Data Types, Standard I/O
    • Variables
      • identifier -> 이름 짓기에도 규칙이 있다.
      • keyword
      • overflow
      • escape sequence
    • Data Type
      • Integer type: int(4 bytes), char(1 byte, be often used to express a character)
      • float type: float, double (double is more correct than float)
      • unsigned - MSB를 통해서 2배의 수를 더 많이 나타낼 수 있다는 개념 설명
      • Maximum, minimum value of int(경우의 수 이용)
    • Standard I/O
      • format specifications
      • printf, scanf
      • scanf에서 왜 & 이 놈이 등장할까?
    • preprocessor(전처리기)
      • #define
    • automatic type conversion
    • Example Problem: Write a program that converts meter-type height into feet(integer),inch(float)-type height. Your program should get one float typed height value as an input and prints integer typed feet value and the rest of the height is represented as inch type. (1m=3.2808ft=39.37inch) (출처: 손봉수 교수님 ppt)


2.2.1. 과제

  • 배운 수업 내용 정리
  • 2진법, 명제, 삼단논법 공부해오기
  • 오늘 못 짠거 마저 다 짜오기
  • 고1 수학 과정 제대로 공부해보기




* 변수의 이름 (identifier)
  • 변수의 이름은 반드시 문자나 underscore (_) 로 시작해야 한다
  • 변수의 이름은 대소문자를 구분한다

* 키워드 (Keyword)
  • 컴파일러에 의해 이미 정해져 있는 이름 (identifier)
  • 변수의 이름으로 사용할 수 없다
  • C 언어에는 29 개의 키워드가 존재

* 오버플로우 (overflow)
  • 변수에 저장할 수 있는 값보다 더 큰 값이 저장되었을 때 발생한다
  • 2진법으로 수가 처리되는 과정에서 발생 (?)
  • 입력한 것과 전혀 다른 값이 생겨나게 된다

* 역슬래시 (\, Escape sequence)
  • 특정한 기능을 수행하기 위한 알림으로써 \ (back slash) 로 표시
  • 줄바꿈 (\n), 탭 (\t), 큰따옴표 (\"), 작은 따옴표 (\'), 역슬래시 (\\) 등.


* 데이터 타입
  • int : 4 byte. 정수를 표현. 소수점 아래로는 버린다
  • char: 1 byte. 글자를 표현 (character).
  • float, double: 4 byte, 8 byte. 실수를 표현하므로 소수점 아래 숫자까지 나타낼 수 있다
    • double이 float보다 더 정확하게 수를 표현할 수 있다
    • float => -1.0E+38 ~ 1.0E+38 / double => -1.0E+308 ~ 1.0E+308
    • 1.0E?
  • unsigned ~ : 양수 부분만 표현함으로써 더 큰 범위의 수를 나타낼 수 있지만 음수를 표현할 수 없다
    • 수를 이진법으로 표현 시 양수/음수를 구분하기 위해 사용되는 맨 앞자리 0을 수를 표현하는 데에 사용하여 두 배 많은 수를 표현
  • int의 표현 범위=4byte=32bit=2^32 에서 맨 앞자리 0을 제외한 나머지가 사용되므로 -2^31 ~ 2^31-1 개의 숫자를 표현할 수 있다
    • 2^31-1=???

* Standard I/O
  • 기본적인 입력 (Input) / 출력 (Output)
  • 헤더 파일 <stdio.h>
  • printf ("내용", argument);
  • scanf("format specifier(s)", &argument);
  • format specifications
    • 배운 것 - %d (int), %f (float), %c (char)
  • scanf의 & : 입력받는 값을 &뒤에 위치한 변수에 저장하기 위해 메모리에 존재하는 변수의 위치를 알리는 역할을 한다

* 전처리기
  • #define 으로 사용
  • 자신이 지정하는 문자열에 특정한 값 등을 지정해두고 사용할 수 있다
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:29:45
Processing time 0.0403 sec