반응형
Recent Posts
Recent Comments
Link
관리 메뉴

공머씨의 블로그

내가 공부한 고급프로그래밍 첫번째 강의 본문

내가 공부한 3학기 전공/내가 공부한 C언어

내가 공부한 고급프로그래밍 첫번째 강의

공머씨 2020. 3. 19. 18:18
반응형

첫번째 강의 

프로그램은 컴퓨터에 명령을 내리는것이다.

따라서 프로그래밍을 잘 하려면 컴퓨터에 대해서 잘알아야 한다.

 

 

컴퓨터가 무엇이라고 생각하는지?

 

가장흔한 형태의데스크탑 컴퓨터

 

본체내부의 생김새

 

아래그림과 같은 보드를 살펴볼수가 있다.

 

 

 

마더보드라고 불리는 위 부품은 

컴퓨터의 뇌에 해당하는 cpu와 뇌의 다른 부분인 메모리를 꽂고 중요한 일을 할수있게 해주는 부분이다.

메인보드 =마더보드=논리보드(logic board)=주기판

모두 같은 말입니다.

서치해보다가

아래와 같은 포스팅을 발견했는데 cpu에 대해 더 알고 싶다면 아래 포스팅을 봐도 좋을것 같습니다.

https://blog.naver.com/lymj1234/221138940048

 

메인보드(Mainboard)

메인보드(Mainboard) 1. 메인보드의 기능과 역할 ① 시스템을 구성하는데 기반이 되는 부품으로 컴퓨터의 ...

blog.naver.com

데스크탑의 마더보드가 여러게 설치되 캐비넷>> 컴퓨터의 일종인 대형컴퓨터

 

우리가 잘 사용하는  휴대전화기도 왼쪽그림에 있는 마더 보드가 아주작은 형태로 들어있다.

 

 

컴퓨터란 cpu라는 중앙처리장치와 메모리로 구성된 기계입니다.

뭔가 좀 허전한데.....

위의 두가지는 컴퓨터의 하드웨어 일뿐이다.

소프트 웨어까지 갖춰져야 컴퓨터라고 불릴수있다.

 

컴퓨터는 범용적인 기계이다.

실행프로그램을 바꾸면 다른 작업을 할 수있는 기계이다.

 

컴퓨터에게 일을 시키려면??

컴퓨터는 모든것을 0과1로 표현한다는 사실을 알아두자.

 

매트릭스라는 영화를 본적이 있는가.

이 영화를 보면 화면속에 사물이있는데 이사물을 자세히 들여다 보면 연속된 1과 0이 있는것을 볼수가 있다.

 

이런 컴퓨터에게 일을 시키려면

컴퓨터 하드웨어에 0과 1로 만들어진 프로그램을 실행하면 된다.

 

초기에는 위와  같은 카드를 사용했다.

구멍을 뚫은 부분을 0

구멍을 뚫지않은 부분1

 

 

현재는 위 컴퓨터 언어로 프로그램을 작성하여 컴퓨터에 입력하면 컴퓨터가 2진수로 이해하여 실행하게 된다.

 

 

사진에 있는 사람의 얼굴을 인식하는것과 

자율주행자동차 등등을  구현 가능합니다.

 

프로그래밍을 다시 정의 해보겠습니다.

프로그래밍이란 컴퓨터에게 지시할 명령들을 "컴퓨터 언어"로 표현해서 작성하는 작업이다.

 

다른 여러분야에서 쓰이는 프로그램이라는 용어의 정의를 보고 알수있는것은

프로그램이라는 것이 특정한 목적을 수행하기위한 사전에 정해놓은 행위나 절차를 의미함을 알 수가 있다.

 

프로그래밍= 어떻게 지시할지에 대한 명령들을 준비하고 컴퓨터 언어로 표현하는 것 이다.

 

 

프로그래밍의 결과물을 곧 프로그램 = 소프트웨어= 작업지시서 

라고 생각하면 된다.

 

 

우리가 어떻게 프로그래밍 할 수 있는지 프로그램하는 방법에 대해서 이야기 해본다.

 

순서도(flow chart)

란? : 컴퓨터에게 지시할 작업들을 순서대로 맞추어 그림으로 표현한것.

단순한 그림이 아니라 약속한 도형을 사용한다

문제를 해결하기 위한 절차들을 알고리즘 이라고 하는데

순서도는 알고리즘을 시각적으로 보여준다.

 

연결점에서는 아무일도 하지않음 다시 다음칸으로 간다.

 

 

지금까지 나온것 총정리 인데

 

 

 

지시할 명령을 준비하는것은 알고리즘을 준비하는것

어떤 컴퓨터 언어들이 있고 우리는 어떤것을 사용하는것이 좋은가.

 

 

컴퓨터 언어는 다음의 3가지 종류로 분류를 할 수가있다.

하드웨어에 가장 가까운 기계어,

사람들이 읽을 수 있는 어셈블리어,

사람들이 사용하는 자연어에 좀더 가 까운언어들(c,java,c++) 이 있습니다.

 

c언어의 보기

사람들이 사용하는 말과 비슷해보이지는 않지만 이정도만 되어도 자연어와 가깝다고 표현한다.

가운데에 있는것은 왼쪾에 있는 언어를 간단한 문자로 표현한 어셈블리어이다. 

맨오른쪽에 있는 0과1로 구성된 2진수로 구성되어야 cpu가 이해하고 동작할 수가 있게된다.

 

이런한 변환작업은 상당히 규칙적이고 단순하기 때문에 컴파일러에서 해준다.

 

 

 

고급 프로그래밍언어라는 것은 written langyages이다.

글로 적힌 언어라는 뜻이다.

프로그래밍언어도 일종의 언어이기때문에 언어로서의 특징이있다.

 

 

 

 

 

오류가 나는것은 3가지 경우이다.

맞춤법이 틀린경우

문법이 틀린경우

>> (프로그래밍 언어의)문법오류

뜻이 틀린경우(앞뒤가 다른경우,일맥상통하지않는 문장.)

>> 실행오류

 

단어: keyword

문법:syntax

뜻: semantics

 

왜 c언어를 배우는지?

 

로드맵

 

 

 

 

 

 

 

 

 

크게 두가지 이유가 있는데

 

1.c언어가 다른언어에 영향을 많이 미쳤기 떄문에 c언어를 배우면 다른언어를 배우는 것이 수월해진다.

 

2.다양한 분야에 사용되는 효율적,보편적인 언어이다.

효율적이기 때문에 속도가 중요한 분야에서 많이 사용된다. (임베디드 시스템)

 

마이크로소프트에서 사용하는 c#

애플에서 사용하고있는 objective c

 

의 기본이 되기 때문에

 

컴퓨터,xbox게임,애플컴퓨터,아이폰용 프로그램을 짜고 싶다면 반드시 배워야 한다.

안드로이드 어플을 개발하고 싶다면 자바를 배우면 된다.

요즘 유행하는 데이터 사이언스, 인공지능 관련된 프로그램을 짜고 싶다면 파이썬을 선택하는것도 좋다.

 

 

 

여러가지언어를 반지의 제왕에 나오는 캐릭터에 비유해서

나타낸것

c언어는 반지에 해당하고

 

c언어를 배우면 c# C++ objective c를 배우는 데 많은 도움이 된다.

 

 

최종적인 정리그림

컴퓨터란 무엇인지 이야기했고 

컴퓨터에게 일을 시키기위해서 프로그래밍이라는것을 해야하는데

프로그래밍이 무엇인지

프로그래밍이라는것은 어떤 명령들을 준비하고 이것을 컴퓨터 언어

 

명령을 준비하는것은 작업지시서를 준비하는것

이것은 알고리즘을 준비하는것

순서도를 이용해 직관적으로 표현할수있다.

 

반응형
Comments