레이블이 프로그래밍인 게시물을 표시합니다. 모든 게시물 표시
레이블이 프로그래밍인 게시물을 표시합니다. 모든 게시물 표시

2009년 9월 2일 수요일

[C프로그래밍]본격적인 프로그래밍 수업

ㅈ 씀

 

오늘 두번째 프로그래밍 수업을 들었다.

뭐 이렇게 어려운 게 많은지...

그래도 프로그래밍에 대해 기초 상식을 많이 알게 되어 참 기뻤다.

이제 나도 프로그래밍 할 수 있는 거야? 헤헤

교수님이 이번 학기에 배울 프로그래밍은 구조적 프로그래밍(Structured Programming)이라고 했다.

최초의 프로그래밍은 바로 이 구조적 프로그래밍이었고 여기에 C가 해당된다고 한다.

그 후에 JAVA나 C++와 같은 객체지향적 프로그래밍이 나왔다고 한다.

 

교수님이 프로그래밍의 역사에 대해서 간략하게 알려줬다.

최초의 구조적 프로그램 언어는 ALGOL이라는 것이었다고 한다.

그 후로 점차 발전해 왔으며 우리가 배워야 하는 것은 ANSI/ISO C라는 것이라고 한다.

앞으로 이걸 배워야 한다고 한다..

 

오늘은 굉장히 의미있는 날이었다.. 바로 '실습'을 한 날이었으니까..!

프로그래밍 실습을 오늘 처음 했는데 그 강의실 컴퓨터에 Visual Studio C++라는 게 깔려 있었다.

처음에는 뭘 어떻게 눌러야 되는지 몰라서 스크린에 교수님이 컴퓨터로 하는 걸 똑같이 따라했다.

교수님이 반드시 ~.C로 파일을 저장하라고 했다.

 

오늘은 Hello World!라는 문장이 나타나는 프로그래밍을 했다..

프로그래밍을 할 때도 일정한 순서가 있다는 걸 처음 알았다.

 

1. 라이브러리에 있는 해당 파일을 불러온다.

 

#include <stdio.h>

 

위 문장에서 #은 '먼저 실행하세요' 라는 의미이고

include는 다음 '라이브러리'에 포함되어 있는 것을 불러오는 '키워드'라고 했다.

라이브러리는 프로그램 명령을 쉽게 할 수 있도록 미리 포함되어 있는 것이라고 한다.

또 '키워드'는 파란색으로 표시가 되는 단어들로, 어떤 특정한 의미가 정해져 있다고 한다.

void, include, printf...이런 게 다 키워드라고 했다.

 

즉 위 문장은 stdio.h 라이브러리에 포함된 것을 실행하겠다는 의미로,

이렇게 먼저 선언해줘야 한다고 한다.

stdio = standard input/output의 약자라고 하는데, 인풋과 아웃풋을 실행하는 명령은

이 라이브러리에서 꺼내오는가보다.

 

2. 변수를 선언한다.

변수를 선언해서 어떻게 저장할 것인지를 정해줘야 한다고 한다.

저장할 타입이나 이런 거를 여기에다 쓴다고 한다.

 

3. main으로 블록을 하고 그 안에 명령을 한다.

 

솔직히 무슨 말인지는 잘 모르겠지만 대충 따라하다 보니까 되긴 되는 것 같다..

프로그램 소스 모양도 대충 어떻게 생겼는지 알 것 같고...

그리고 컴파일이라는 것도 처음 알았다.

소스를 ~.C로 저장한 후에 Compile을 누르면 알아서 컴파일되어 exe가 생긴다고 한다.

그런데 나는 exe는 안 생겼는데 아마 잘못한 듯하다..

 

그리고 프로그램 소스에 //나 /* */를 쓰고 문장을 쓰면 그 문장은 컴파일되지 않는다고 한다.

그래서 간혹가다가

 

/* aewrhqah /* arhaerh */ jwyrjwrj */

 

이런 식으로 쓰는 사람이 있는데 이렇게 하면 에러가 생긴다고 한다.

컴퓨터는 /*가 나오면 무조건 */를 찾은 후 지나간다고...

 

/* aewrhqah /* arhaerh */ jwyrjwrj */

 

그래서 사이에 또 집어넣으면 오류가 난다고 한다.

하여튼 컴퓨터가 자기가 알아서 못하고 내가 꼭 해줘야 돼..ㅉㅉ

 

교수님은 "프로그래밍은 Real World에 있는 데이타를 컴퓨터로 표현해서 요리하는 것"이라고 정의했다.

데이타를 표현해서 '요리한다'.... 그럼 난 요리사?

이렇게 성적과 같은 어떤 데이타를 컴퓨터로 가져와서 요리를 하는데

컴퓨터에서는 데이타를 'Variable'로 바꾼다고 한다.

Variable은 3가지로 구성된다.

 

메모리(공간) ---- 저장할 때 주소가 필요함

변별자 ---- 데이타에 이름을 구별해서 부여

값 ---- 데이타의 값 (성적의 경우 90점, 100점, 이런 것..)

 

음.... 어렵다...

너무 어렵다.. 이해 안 되는 것도 많았고..

그리고 수업 듣다 보니까 강의 듣는 학생들 태도가 너무 나태한 것 같았다.

다들 프로그래밍쯤이야 잘 알아서 그런 건지도 모르겠다..

인터넷이 되니까 그런가?

그래도 강의실에 인터넷이 되는 게 얼마나 좋은지 모른다.

강의 자료도 인터넷으로 그냥 보고...

앞앞앞에 앉은 어떤 사람은 수강 정정도 했는데 꽤 성공한 듯 보였다.^^

게다가 나는 전혀 모르는 내용인데 다들 실습할 때 보니까 타자도 엄청 빨리 치고 많이 해 본 솜씨였다.

학점 잘 받으려고 잘 하는 사람들이 기초반 듣는 거 아닌가 싶었다.

어쨌든 한 번 공부하기로 했으면 끝까지 해야지!!

 

 

2009년 8월 31일 월요일

[C프로그래밍]프로그래밍 오리엔테이션

ㅈ 씀

 

나는 프로그래밍에 대해 정말 아무것도 모른다.

심지어 어디다 언어를 쓰는 것인지조차 검색해보기 전까지는 몰랐다.

이런 내가 C프로그래밍을 배우다니..

그래도 어차피 한번은 겪어야 할 것이라면 지금 해버리는 게 나을지도 모른다는 생각으로 수강해버리고 말았다.

이 과목에서는 C언어로 기초적인 프로그래밍을 배운다고 한다.

그러나 말이 기초지 실상은 전혀 기초가 아닌 고난이도 과목이라고 한다..

과연 좋은 점수를 받을 수 있을까?

C언어에 대해 아무것도 모르는 내가 한 학기가 끝난 다음에는 어느 정도 프로그래밍에 대한 개념을 갖추게 될까?

 

프로그래밍 오리엔테이션에서는 프로그래밍의 역사와 기초 컴퓨터 상식을 공부했다.

프로그래밍을 하는 코드에는 C 뿐만 아니라 다양하게 여러가지가 있다고 한다. (나는 처음 알았다)

그리고 C언어는 사람이 이해하기 쉽도록 만들어진 High-Level 언어라고 한다.

이것을 기계가 이해할 수 있도록 컴파일러(Compliler)라는 것이 기계어로 바꾸어준다고 한다.

 

참 신기하고 신기한 세상이다.

다음 내용이 궁금해져서 얼른 빨리 또 듣고 싶다.

이 과목은 특이하게 컴퓨터가 있는 강의실에서 배우고 있는데 정말 좋다.

강의자료도 인터넷으로 볼 수 있고 직접 실습할 수 있으니까...

이 과목이 이론 과목이라고 하지만 실습도 많이 했으면 좋겠다.

그렇지만 나중에 해야 할 프로그래밍 과제 생각만 하면 한숨만 나온다.

지난 학기처럼 공부해도 안 되는 과목인 것은 아닐까 하고 괜히 수강신청했나 싶기도 하고..

에잉 몰라 일단 해보자