이번 실습은 PUTTY를 얼마나 능숙하게 사용하느냐를 연습하는 부분입니다.

일단 다운받은 PUTTY를 켭니다.

HOST_NAME에
http://computer.kpu.ac.kr
을 친 뒤 open 버튼을 누릅니다.
이때 connect type은 SSH에 맞춰주도록 합니다.

검은창에
login as :
라는 글이 보일 것입니다.
학교에서 받은 아이디를 입력합니다.

입력 후
아이디@computer.kpu.ac.kr's password :
라는 글이 보일 것입니다.
패스워드를 입력합니다.
(패스워드를 입력할 시에는 화면에 아무런 변화도 나타나지 않습니다.)

제대로 로그인이 되었다면
computer%
라는 문구가 보일 것입니다.

이 상태부터 실습을 시작합니다.

1. 현재의 자신의 폴더 위치를 확인합니다.
$ pwd
를 입력합니다. ($ 는 커멘드 상태라는것을 의미합니다. 실제 명령어는 'pwd'만 입력하면 됩니다.)

2. programing 폴더를 작성합니다.
$ mkdir programing

3. programing 폴더로 이동합니다.
$ cd programing

4. programing 폴더 안에 오늘 날자로 폴더를 만듭니다.
$ mkdir 081225

5. 오늘 날자로 만들어진 폴더로 이동합니다.
$ cd 081225

6. 현재 자신의 폴더 위치를 확인합니다. (실행 뒤 1번과 비교해 봅시다.)
$ pwd

7. 임의의 폴더 test를 작성합니다.
$ mkdir test

8. 현재 폴더에 test디렉토리가 생겼는지 확인해 봅시다.
$ ls

9. test폴더를 지워봅시다.
$ rmdir test

10. 현재 폴더에 test디렉토리가 남아있는지 확인해 봅시다.
$ ls

11. 임의의 프로그램 1.c를 작성해 봅시다.
$ vim 1.c

12. vim 에디터를 이용해 다음의 내용을 작성해 봅시다.
(vim 에디터 사용법은 유닉스 책을 보시고 공부하시기 바랍니다.)

#include <stdio.h>

int main(void)
{
printf("Hello World! \n");
return 0;
}

13. 작성한 1.c 파일의 내용을 확인해 봅시다.
$ cat 1.c

14. 작성한 1.c 파일을 코딩해 봅시다.
$ gcc 1.c

15. a.out 파일이 있나 확인해 봅시다.
$ ls

16. a.out 파일을 실행해 봅시다.
$ a.out
($ ./a.out 을 입력해야 하는 경우도 있습니다.)

17. a.out 파일을 삭제해 봅시다.
$ rm a.out

18. 현재 디렉토리 위치를 확인합니다.
$ pwd

19. 상위 디렉토리로 이동해 봅시다.
$ cd ..

20. 현재 디렉토리 위치를 확인합니다.
$ pwd

위의 20단계를 거치시면 유닉스의 아주 기본적인 사용법을 익히게 됩니다.
vim편집기의 사용법은 살자쿵 복잡하므로 생략하도록 하겠습니다.
vim편집기 사용법도 몇가지만 익히시면 쉽게 사용하실 수 있습니다.
Posted by 청음
프로그램을 작성하는 환경은 크게 2가지로 나눌 수 있습니다.

1. 윈도우에서 Visual Studio의 C/C++컴파일러를 이용한 VC기반 프로그래밍 작성 방법
2. 유닉스 및 리눅스를 이용한 gcc기반 프로그래밍 작성 방법

우리 강좌에서는 gcc를 기반으로 한 프로그래밍을 하게 될 것입니다. gcc가 C의 규정을 잘 지키고 있는데 반면 VC(Visual C++)의 경우 일반적인 C의 규칙에서 벗어난 기법들을 허용하고 있는 부분이 있기 때문입니다. 그러나 gcc에서 만들어진 소스의 경우 VC를 이용해 돌려도 같은 결과값을 가져오게 되므로 VS6.0을 이용하여 진행을 하셔도 거의 유사한 진행을 하실 수 있습니다.

일단 gcc는 유닉스/리눅스 기반 컴파일러이기 때문에 컴파일러가 설치된 서버가 필요합니다.
우리학교의 경우 1학년 유닉스 강의때 유닉스 계정을 받게 되므로 그 계정을 이용합니다.
강좌에서는 SSH의 일종인 PUTTY를 사용하여 계정에 접근하여 프로그래밍을 하는것을
기본전제로 작성되어 있습니다.

(제 경우는 컴퓨터에 virtualbox를 이용하여 RHEL을 이용해 프로그래밍 합니다.
이 방법의 경우 컴퓨터에 약 10기가정도의 용량을 투자해야 하지만 쉽게 접할 수 없는
리눅스라는 OS를 다루어보게되어 추후 공부에 상당한 도움이 됩니다.)

다음 다운로드 경로를 통해 PUTTY를 다운로드 받아 서버에 접속한 뒤
아래의 유닉스 명령어들을 연습해 봅시다.
C언어 과제 폴더의 제 0장 실습을 따라해 봅시다.

PUTTY 다운로드 경로
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
(우리는 xp를 사용하기 때문에 xp를 선택해주시면 됩니다.)

프로그래밍을 하기 위해 알아야 할 유닉스의 간단한 명령어
cd [디렉토리명] : 디렉토리를 변경합니다.
ls : 디렉토리의 파일들을 보여줍니다. 도스의 dir과 유사한 명령어입니다.
mkdir [디렉토리명] : 디렉토리를 새로 만듭니다.
rmdir [디렉토리명] : 디렉토리를 삭제합니다.
vim [파일명] : vim편집기를 이용하여 파일을 엽니다. 파일이 없을 경우 새로 생성하여 엽니다.
rm [파일명] : 파일을 삭제합니다.
gcc [파일명] : 파일을 컴파일합니다. 디폴트값으로 a.out 이라는 이름으로 실행파일이 생성됩니다.
cat [파일명] : 파일의 내용을 확인합니다.
./[파일명] : 파일을 실행합니다.
Posted by 청음
 제가 처음 C언어를 배운것은 2007년 3월. 제가 한국산업기술대에 갓 입학한 이후입니다. 제가 학교를 들어올 시기인 2007년도에는 전국적으로 JAVA열풍이 불었습니다. 그래서인지 C언어에 대해 중요성을 빠뜨리기도 하고, 되지 않는 JAVA를 하겠다고 헛바람이 든 친구들이 C언어를 버리고 샛길로 새다가 2학기가 되니 딴학교로 새고 보이지 않게 되었습니다. 제가 이 강의를 작성하게 된 것은 결코 제가 남들보다 C언어를 특출나게 잘하거나 남을 가르칠 실력이 있다고 생각하기 때문은 아닙니다. 다만 후배 한분한분이 C언어에 조금 더 친숙하게 다가갔으면 하는 작은 바람에서 작성하게 되었습니다.

 이 강의는 제가 처음 공부한 C언어 교재인 열혈강의 C프로그래밍과 A Book on C라는 학교에서 사용하던 교재를 가지고 작성하게 될 것입니다. 물론 제가 공부해온 노하우대로 작성이 될 것이지만 프로그래밍 언어라는 것이 처음할때에는 누구나 다들 어려움을 격게 되는지라 그저 따라 익히는 수 밖에 없는 것 같습니다. 여러분도 이 스터디와 또 과제실에 올라갈 과제들을 따라하며 자신의 C언어 스킬을 끌어올리길 바랍니다.

 이 강의는 프로그래밍 언어를 처음 배우는 것을 가정하고 작성되어 있습니다. 컴퓨터 공학과를 들어와 자신이 생각했던것과는 다른... 프로그래밍 언어를 보고 한숨을 쉬고 있을 후배님들께 이 강의가 작은 도움이 되었으면 좋겠습니다.

2008년 12월 24일
청음

이 블로그에 올라간 C언어 스터디의 모든 게시물은 그 권리가 청음에게 있음을 알려드립니다.
스크랩, 펌등을 금지하고 있사오니 유의해 주시기 바랍니다.
Posted by 청음


이번 숙제는 야구게임 입니다.

오랜만에 내는 숙제이기 때문에 간단한걸 만들어 보았습니다.
아마 여러분 강의시간에 직접 짜봤을지도 모르겠습니다 ㅋ.
설령 안 짜봐도 rand()만 잘 다루면 쉽게 만들 수 있습니다.

실행 파일입니다.

이번엔 여느때와는 다르게 어마어마한 힌트를 드립니다.
바로 소스파일의 일부입니다 ㅋㅋㅋ.

... 열어 보셨으면 당연히 깜놀랐겠죠 ㅎㅎ?
제일 중요한 함수 하나가 텅텅 비어있으니 말에요 -_-;;;;
이 소스를 드리는건 노가다(설명서 쓰기)를 좀 줄여줄까 해서 드린겁니다 ㅎㅎ;;

아 그리고 실행파일에 보면 버그처리가 안되있는 부분이 있습니다.
바로 숫자 입력부분입니다.(0~4의 숫자가 아닌걸 누르면 버그)
저는 귀찮아서 처리 안했지만!!! 여러분은 해주세요!!! (우왕ㅋ. 이런 착한 선배님을 봤나 ㅋㅋ)
(결코 블로그 글을 2번이나 날려먹어서 짜증나서 내주는거 아님 진짜임 ㅇㅇ!!!)

이번 숙제의 중요한 부분은 긴 파일을 짜보며 몸풀기(?) 하는것과
사용자 인터페이스 (눈에 보기 좋게) 만드는걸 생각해 보자는 취지입니다.
뭐 그래봐야 c가 c죠... 라면 할말 없지만 말입니다...;;;

기한은...
8/30일 정오까지 받겠습니다.
그럼 짜이찌엔~
(엄훠엄훠 베이징 올림픽에 물들었음)
Posted by 청음


C 언어의 배열을 이용한 스택 구조


1. 스택 구조란?
스택 구조는 (First In Last Out)형식의 프로그램으로 데이터를 저장했다 출력할대 사용합니다.
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
10개의 칸이 있다고 할 때

1개의 데이터를 인풋해줄 때마다 앞에칸부터 데이터가 차 갑니다.
[a][ ][ ][ ][ ][ ][ ][ ][ ][ ] <- 빈 스택에 a를 입력한 후의 모습
[a][b][ ][ ][ ][ ][ ][ ][ ][ ] <- a가 입력된 스택에 b를 입력한 후의 모습
(a,b를 차례대로 입력할때의 스택이 차는 모습)

반면 1개의 데이터를 인풋해 줄 때에는 뒤에칸부터 데이터가 출력됩니다.
[a][ ][ ][ ][ ][ ][ ][ ][ ][ ] .... 출력 b <- a,b가 입력되 있던 스택을 1회 출력한 모습
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ] .... 출력 a <- a가 입력되어 있던 스택을 1회 출력한 모습
(a,b가 채워져 있는 스택을 차례대로 출력할때 스택이 비워지는 모습. 출력값은 b,a가 된다)

이러한 구조는 함수의 재귀호출에서 가장 마지막에 호출된 함수가
가장 먼저 처리되는 것과 매우 유사한 모습을 보입니다.


2. 과제
C언어와 배열을 이용하여 스택 구조를 만들어라.

제한 : 단 1개의 변수만을 전역 변수로 사용할 수 있음
         input은 char형 인자 하나를 변수로 받아 배열에 집어 넣어야함
         pop은 char형 인자 하나를 반환받아 화면에 출력해야 함.
         스택구조에 대한 책을 참조하지 않고 작성할것

힌트 : 함수는 main, input, pop 세개면 충분함
         첨부 파일을 보고 최대한 모방할것. (미리 작성해 놓은 것이라 윈도우 버전임)


3. 제출할 목록
 - c로짠 원본 소스
 - gcc로 코딩한 실행파일

4. 제출기한
 7월 6일 정오까지

5. 제출장소
 이메일 (sjm8824 네이버)
Posted by 청음
이전버튼 1 2 이전버튼