Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

새싹교실/2017/C언어가르쳐조/3월27일: Difference between revisions

From ZeroWiki
No edit summary
(Repair batch-0006 pages from live compare)
 
(7 intermediate revisions by one other user not shown)
Line 2: Line 2:
= 예정 =
= 예정 =
* 첫 시간은 2시간 강의
* 첫 시간은 2시간 강의
* [[Front Page|Zeropage Wiki]] 사용법 소개 ~~근데 저도 잘 몰라요~~
* Front Page|Zeropage Wiki 사용법 소개 ~~근데 저도 잘 몰라요~~
* 기초 지식 확인
* 기초 지식 확인
* 개발 도구 소개
* 개발 도구 소개
Line 36: Line 36:
* 이 내용이 (거의) 앞으로 배울 내용입니다.
* 이 내용이 (거의) 앞으로 배울 내용입니다.
= 진행 =
= 진행 =
이미 배운 내용에 대해 어디까지 알고 있는지 간단한 질문을 통해 알아봄.
이미 배운 내용에 대해 어디까지 알고 있는지 간단한 질문을 통해 알아봄.


* 개발 도구 소개
* 개발 도구 소개
* IDE  
** IDE  
VisualStudio c++ : 완벽하게 c를 포함하지는 않는다.
  VisualStudio c++ : 완벽하게 c를 포함하지는 않는다.
text editor : 기타등등...(emacs..)
  text editor : 기타등등...(emacs..)
 
* Computer
* Computer
* C language를 배우기 전에 computer를 알아야 한다.
** C language를 배우기 전에 computer를 알아야 한다.
* 계산기 :  
** 계산기 :  
[[기계식]] 주판->라이프니치->해석기관(최초의 컴퓨터)->Ada Lovelace(최초의 프로그래머, 최초로 구조문을 이용)
  (기계식) 주판->라이프니치->해석기관(최초의 컴퓨터)->Ada Lovelace(최초의 프로그래머, 최초로 구조문을 이용)
[[진공관]] ->진공관(에디슨)->트렌지스터->IC회로->논리 회로->Boolean Algebra
  (진공관) ->진공관(에디슨)->트렌지스터->IC회로->논리 회로->Boolean Algebra
 
* Boolean Algebra
* Boolean Algebra
* 다이오드의 전류가 한방향으로 흐르는 성질, 0 아니면 1
** 다이오드의 전류가 한방향으로 흐르는 성질, 0 아니면 1
* A에는 0과 1이 포함되었을 때 AND, OR, NOT, NAND, NOR, XOR논리
** A에는 0과 1이 포함되었을 때 AND, OR, NOT, NAND, NOR, XOR논리
* ALU : 산술논리장치, CPU내에 탑재됨(ALU+Memory=컴퓨터)
** ALU : 산술논리장치, CPU내에 탑재됨(ALU+Memory=컴퓨터)
* CPU는 덧셈만 한다. Memory에는 program, instruction~~이때 인서형 출현~~, variable등이 저장됨
** CPU는 덧셈만 한다. Memory에는 program, instruction~~이때 인서형 출현~~, variable등이 저장됨
 
* 기계어
* 기계어
* 기계어는 0과 1밖에 없다. 알아듣기 힘듦
** 기계어는 0과 1밖에 없다. 알아듣기 힘듦
 
* Assembly Language
* Assembly Language
* 알아듣기 힘든 기계어를 단어에 일대일 대응시켜서 만듦, 여전히 어려움
** 알아듣기 힘든 기계어를 단어에 일대일 대응시켜서 만듦, 여전히 어려움
 
* High-Level-Language
* High-Level-Language
* Portran, Pascal 등등
** Portran, Pascal 등등
 
* Operation System
* Operation System
* CPU에서는 여전히 0과 1로 연산이 이루어진다. 그래서 컴퓨터를 더 잘 쓸 수 있게 해주는 것이 OS
** CPU에서는 여전히 0과 1로 연산이 이루어진다. 그래서 컴퓨터를 더 잘 쓸 수 있게 해주는 것이 OS
* Windows, Unix(C언어로 만들어짐), Linux, Mac, Android, iOS
** Windows, Unix(C언어로 만들어짐), Linux, Mac, Android, iOS
* 여전히 프로그램이기 때문에 언어가 필요하다.
** 여전히 프로그램이기 때문에 언어가 필요하다.


--10분 쉬기--
--10분 쉬기--
* C언어
** (위키 참고) : 범용 언어(특정 목적에 국한되지 않는다), 순차적이다(순차적으로 이루어진다, 선언적과 반대), 구조적이다(함수를 지원한다)
** 그렇게 고급 언어는 아님(운영체제를 만들기 위해 만들어졌기 때문), 메모리에 직접 접근할 수 있기 때문에 ~~악명높은~~포인터가 나옴
** 속도가 빠르다, 이식성이 높다(JAVA만큼은 아니지만)
** main함수 내에서
** a+b등을 expression, ;이 찍히는 부분을 statement, 제어문, 선언문 (중괄호로 묶여있는 것들)등을 block 라고 지칭한다.
** 어떤 함수 안에서 scope가 ~~경비아저씨 출현~~ ~~인서형 다시 출현~~
** 어떤 함수 안에서 변수가 지정되면 local, ~~잘 못들었어요 죄송합니다~~...
** 연산자
** 변수 : Data Type(int, long, long long, float, double, void, struct, union, ...)(모든 타입이 포인터와 배열을 가지고 있고, 상수 타입일 수도 있다), type of variable(automatic, static, ...), const(*와 엮이면 무시무시해짐)
** automatic(+, -, *, /, %), logic(&&, ||, !), comparison(>, >=, <, <=, ==), ~~compositional assign, bit logic, shift~~
** 다항연산자(++a, a++), 단항연산자(-a, +a), 삼항연산자
** &a, *a, a&#91;5&#93;
** sizeof(int)
** (int), (double)
** 기타 자잘한 것들...
** 제어문, 제어흐름
** if-else, switch, while, dowhile, goto, break, continue, for
** 함수
** 그때 자세히 얘기하기로
** 배열과 포인터
** 포인터는 주소의 값이 저장된 '''변수이다''' 배열은 어떤 주소의 값이다.
** 구조체
** struct, union, 열거형
이게 다 끝나면
** 전처리기 : #include, #define, macro function, #if, ...
** 표준 입출력(Standard I/O) : printf, scanf, putchar, getchar, ...
** file I/O
** 표준 스트링 함수
여기까지 하면 괜찮을 듯
= 실습 =
= 실습 =
* 실습이 없을 예정입니다.
* 실습이 없을 예정입니다.
Line 79: Line 104:
[[새싹교실/2017/C언어가르쳐조]]
[[새싹교실/2017/C언어가르쳐조]]
[[새싹교실/2017]]
[[새싹교실/2017]]

Latest revision as of 01:08, 27 March 2026

예정

  • 첫 시간은 2시간 강의
  • Front Page|Zeropage Wiki 사용법 소개 ~~근데 저도 잘 몰라요~~
  • 기초 지식 확인
  • 개발 도구 소개
    • IDE(Integrated development environment)란?
    • Microsoft Visual Studio 사용법과 주의사항
    • 텍스트 에디터 소개 : Notepad++, Sublime Text, ... ~~아 emacs 안사요 안사~~
  • 프로그래밍 개요
    • 컴퓨터란?
    • 컴퓨터의 (간단한) 역사
    • 컴퓨터의 (간단한) 구조
    • 컴퓨터의 수 체계 / 부울 대수
    • 프로그래밍 언어란?
    • 구조적 프로그래밍(간단히)
    • 프로그래밍 개발 과정(간단히)

여기까지 1시간

  • C 언어 개요
    • C 언어란?
    • C 언어의 특징
    • C 프로그램의 구조
    • 전처리기, 함수, 선언과 정의
    • 표현식(expression), 문장(statement), 블록 구조
    • 변수, 상수, 자료형
    • 변수 영역(scope)
    • 연산자
    • 산술, 논리, 비교, 대입
    • 제어문
    • 조건, 선택, 반복~~, goto~~
    • 함수
    • 배열, 포인터
    • 구조체 등등
  • 이 내용이 (거의) 앞으로 배울 내용입니다.

진행

이미 배운 내용에 대해 어디까지 알고 있는지 간단한 질문을 통해 알아봄.

  • 개발 도구 소개
    • IDE
 VisualStudio c++ : 완벽하게 c를 포함하지는 않는다.
 text editor : 기타등등...(emacs..)
  • Computer
    • C language를 배우기 전에 computer를 알아야 한다.
    • 계산기 :
 (기계식) 주판->라이프니치->해석기관(최초의 컴퓨터)->Ada Lovelace(최초의 프로그래머, 최초로 구조문을 이용)
 (진공관) ->진공관(에디슨)->트렌지스터->IC회로->논리 회로->Boolean Algebra
  • Boolean Algebra
    • 다이오드의 전류가 한방향으로 흐르는 성질, 0 아니면 1
    • A에는 0과 1이 포함되었을 때 AND, OR, NOT, NAND, NOR, XOR논리
    • ALU : 산술논리장치, CPU내에 탑재됨(ALU+Memory=컴퓨터)
    • CPU는 덧셈만 한다. Memory에는 program, instruction~~이때 인서형 출현~~, variable등이 저장됨
  • 기계어
    • 기계어는 0과 1밖에 없다. 알아듣기 힘듦
  • Assembly Language
    • 알아듣기 힘든 기계어를 단어에 일대일 대응시켜서 만듦, 여전히 어려움
  • High-Level-Language
    • Portran, Pascal 등등
  • Operation System
    • CPU에서는 여전히 0과 1로 연산이 이루어진다. 그래서 컴퓨터를 더 잘 쓸 수 있게 해주는 것이 OS
    • Windows, Unix(C언어로 만들어짐), Linux, Mac, Android, iOS
    • 여전히 프로그램이기 때문에 언어가 필요하다.

--10분 쉬기--

  • C언어
    • (위키 참고) : 범용 언어(특정 목적에 국한되지 않는다), 순차적이다(순차적으로 이루어진다, 선언적과 반대), 구조적이다(함수를 지원한다)
    • 그렇게 고급 언어는 아님(운영체제를 만들기 위해 만들어졌기 때문), 메모리에 직접 접근할 수 있기 때문에 ~~악명높은~~포인터가 나옴
    • 속도가 빠르다, 이식성이 높다(JAVA만큼은 아니지만)
    • main함수 내에서
    • a+b등을 expression, ;이 찍히는 부분을 statement, 제어문, 선언문 (중괄호로 묶여있는 것들)등을 block 라고 지칭한다.
    • 어떤 함수 안에서 scope가 ~~경비아저씨 출현~~ ~~인서형 다시 출현~~
    • 어떤 함수 안에서 변수가 지정되면 local, ~~잘 못들었어요 죄송합니다~~...
    • 연산자
    • 변수 : Data Type(int, long, long long, float, double, void, struct, union, ...)(모든 타입이 포인터와 배열을 가지고 있고, 상수 타입일 수도 있다), type of variable(automatic, static, ...), const(*와 엮이면 무시무시해짐)
    • automatic(+, -, *, /, %), logic(&&, ||, !), comparison(>, >=, <, <=, ==), ~~compositional assign, bit logic, shift~~
    • 다항연산자(++a, a++), 단항연산자(-a, +a), 삼항연산자
    • &a, *a, a[5]
    • sizeof(int)
    • (int), (double)
    • 기타 자잘한 것들...
    • 제어문, 제어흐름
    • if-else, switch, while, dowhile, goto, break, continue, for
    • 함수
    • 그때 자세히 얘기하기로
    • 배열과 포인터
    • 포인터는 주소의 값이 저장된 변수이다 배열은 어떤 주소의 값이다.
    • 구조체
    • struct, union, 열거형

이게 다 끝나면

    • 전처리기 : #include, #define, macro function, #if, ...
    • 표준 입출력(Standard I/O) : printf, scanf, putchar, getchar, ...
    • file I/O
    • 표준 스트링 함수

여기까지 하면 괜찮을 듯

실습

  • 실습이 없을 예정입니다.

기타 / 후기 / 방명록


새싹교실/2017/C언어가르쳐조 새싹교실/2017