강의실/텍스트기반SW 10

별찍기 원리에 대해 알아 봅니다.

저희가 아이들과 공부를 하다 보면 별을 찍는 규칙을 많이 어려워 하더라구요. 별을 찍는 형태는 다음과 같은 형태가 나타납니다. -*****--***---* 이런 경우 프로그램은 다음과 같이 반복문을 구성해 주어야 합니다. 먼저 행이 3행이므로 한행 한행 진행하기 위해서는 3번 반복을 해 주어야 합니다. 다음과 같이1행2행3행이렇게 반복을 해야 되므로 for(int i=1;i

C언어에서 문자열이 한글인지 확인 하는 방법

오늘은 학생이 c언어에서 문자열이 입력 되었을때...영문자 이거나 한글에서 맨 앞의 한글자만 출력해야 하는데 어떻게 하는지 묻길래 C언어에서 한글인지 영문인지 체크하는 방법을 알아 볼까 합니다. 먼저 다음과 같이 char Kor[] = "한글";char Eng[]="English";과 같이 변수를 선언하면서 데이터를 입력하면먼저 strlen(Kor) 을 출력해 보면 4 또는 6이 나오는 것을 확인하실 수가 있는데요.이것은 컴파일러마다 조금씩 다르기는 하지만 한글 같은 경우 2byte 혹은 3바이트를 사용하기 때문입니다.그렇다면 Kor[0] 을 출력하면 당연히 "한" 이라는 글자는 출력 되지 않을 것입니다. 먼저 이러한 원리를 이해하기 위해서는 ASCII 코드를 이해 해야 되는데요.이미지 출처 - http..

코드블럭(Code Block) 자동완성 기능 설정

코드블럭(Code Block)을 사용하면 다음과 같이 철자를 몇개 입력하면 거기에 맞는 함수가 자동으로 나오게 됩니다.이렇게 나오면 거기에서 선택을 하거나 보면서 칠 수도 있는데... 저희 학생 중에 한명이 집에서 코드블럭을 설치했는데 이러한 자동완성 기능이 안된다고 물어 보네요.이러한 자동완성 기능이 안되면 무척이나 많이 불편한 부분이 있습니다.실제로 머리가 그렇게 썩 좋지 못한 저도 정말 많이 사용하는 함수들이나 그냥 사용하지 가끔가다 사용하는 함수는 철자도 정확하지 않아서 비슷한 단어를 써 보면서 그 함수를 찾는 경우가 많거든요. 사실 프로그래밍 하는 입장에서 이러한 함수들을 모두 다 외워야 하는 것은 정말 비효율적이지 않을까 생각 해 보게 되네요.이러한 함수들을 외우는 것 보다 좀더 좋은 알고리즘..

코드블럭에서 can't find compiler executable in your search path (GNU GCC compiler) 에러 발생시

저희 학생이 집에서 코드블럭 설치 후에 프로그램을 설치 했는데 다음과 같은 오류창이 뜨면서 실행이 안된다고 해서 오늘은 이 에러에 대해 대처 하는 방법에 대해 알아 보도록 하겠습니다. 일단 저희가 설치하는 코드블럭은 다음의 사이트에서 다운로드 받아 설치 합니다.코드블럭 다운로드 사이트 - http://www.codeblocks.org/ 사이트 접속하면 왼쪽에 Downloads-Binarise 라고 보이면 그곳을 선택하고요. 오른쪽 화면에 Windows 쪽에 보면 codebolocks-xx.xxmingw-setup.exe 위치의 download from 에서 Sourceforge.net 을 클릭하여 해당 설치 파일을 다운로드 받아 설치 하면 되는데요. 간혹 아래와 같이 설치는 되었는데 에러 코드를 만나는 ..

학생이 파이썬으로 만든 지뢰찾기 게임을 분석해 봅니다.

13차시 수업중 마지막 차시에 그동안 배운 파이썬으로 프로그램을 만드는 시간을 가져 보았습니다. 학생이 만든 지뢰찾기 게임이네요. 동작상태는 거의 윈도우에서 보았던 지뢰찾기와 거의 똑같이 오른쪽 버튼 클릭시 X 표시로 깃발을 세우고 오른쪽 버튼 클릭시 버튼 주변의 지뢰 갯수를 보여주는 형식을 취했습니다. 다음은 학생이 만든 소스코드입니다. 소스보기 #지뢰 게임 만들기from tkinter import * from tkinter import ttk from tkinter import messagebox from random import randint from random import * N = 20 #게임판의 갯수를 20*20 의 크기로 만든다. bomb = 40 # 지뢰 갯수를 40개로 만든다. cnt ..

파이썬의 터틀을 이용한 하트 만들기

요즘 파이썬 특강을 하고 있는데...저희 원에서 한 학생이 다음과 같이 하트를 그리더라구요...^^ 저는 하트 그리는게 대수롭지 않다고 생각하고 무심결에 "잘했네~~" 라고 얘기 해 주고 나서 집에 와서 곰곰히 생각하니... 그 각도를 맞추는게 쉽지 않을것 같다는 생각이 들더라구요.^^ 작은 아들한테 "파이썬으로 하트 그릴수 있어?" 하고 물어 보니 "먼저 삼각형 각도 체크 해서 올라가다가 그 위에 반원을 두개 그리고 다시 내려오면 되는거 아니야?" 하네요... 나중에 시간되면 한번 그려 보라고 이야기 해 보기는 했지만 이 학생이 이 하트를 어떻게 그렸는지 무척이나 궁금해 지더라구요... 그래서 그 학생의 소스를 살짝 훔쳐 보았네요.^^ 학생의 소스 import turtlet = turtle.Turtle..

파이썬의 매력에 흠뻑 빠지다.

요즘에 한참 파이썬의 매력에 흠뻑 빠져 있는데요... 1. 배우기 쉽습니다.- 배우기 쉽다고 하는데 저는 좀 헷갈렸습니다.^^ 기존 언어들과는 습성이 달라서 좀 많이 헷갈리는 문법들이 조금 있습니다. 변수의 타입을 선언을 하지 않아도 되고. 시작과 끝을 지정 하지 않고 그냥 줄 맞추는 것만으로 프로그래밍 하는것도 그렇구요. 기존 다른 프로그래밍 언어를 배우지 않은 사람들에게 접근하기는 좀더 쉬울것 같기는 합니다. - 하지만 저는 파이썬을 먼저 배우는 것은 비추 합니다. 제가 접해본 결과 C언어나 다른 언어를 배운 상태에서 파이썬을 접했을때 혼란이 온것 처럼... 파이썬을 접한 후에 다른 언어를 접하면 혼란이 올것인데요... 이 것이 아마 그 틀을 깨는 것이 수십배는 더 어려울 것으로 판단 됩니다. C나 ..

"이것이 자바다" 교재로 선택한 이유

하루강아지 범 무서운 줄 모르고 시작한 강의가 정말 산 넘어 산이네요.^^ 처음에는 막연하게 내가 아는 지식에 조금만 더 공부하면 아이들을 충분히 가르칠수 있을꺼야... 라는 자만심(?) 으로 아무것도 모르고 이 일에 뛰어 들었었네요. 하지만 학생들의 흡수력은 정말 저를 채찍질 하는 원동력이 됩니다. 한가지만도 흡수하기 어려운 저에게 학생들은 많은것을 요구 합니다. 이것이 부족해요... 저것도 배우고 싶어요... 제가 아는 지식이 정말 부족하다는 것을 매번 뼈저리게 느끼면서 시간만 나면 열공모드에 들어가지 않으면 아이들의 지식을 채워주기 너무 부족하다는것이 또하나의 삶의 원동력입니다... 이젠 학생들에게 자바과정도 넣어 주어야 할것 같습니다. 교재를 선택하기 위해서는 여러 교재를 필독해 보는것은 필수 입..

코드블럭 printf() 색상 바꾸기...

호기심 많은 학생이 질문합니다. "쌤~~~ printf() 문으로 출력할때 색상을 변경 할 수 있나요?" '헉~~ 이런건 해 본적이 없는데~~' 부랴부랴 인터넷 검색을 해 보았습니다. printf("%c[31m",27); 을 입력 하면 콘솔에서 화면 색깔을 바꾸어 준다고 나오네요... 얼른 학생에게 이렇게 하면 되는거야 라고 대답해 주고 나서... 코드블럭에서 테스트를 해 봅니다.아무리 바꾸어도 안됩니다... 다시 검색을 해 보니 리눅스에서 콘솔 특성을 이용해서ESC[색상코드m (ESC 의 ASCII값이 27) 을 입력하면 화면 콘솔의 색상을 바꿔 주는 것이었습니다. 따라서 우리가 이용하는 윈도우 환경에서는 아무리 해 봐도 안되더라구요... 그래서 다시 한번 검색을 했습니다. #include #inclu..

게임메이커가 되고 싶다는 우리 둘째 아들... 무엇을 배워야 할까?

이제 막 중학생 1학년이 된 둘째 아들이 학교에서 진로희망지를 가져와서는 "아빠 싸인 받아야 된데.." 합니다. "아들은 무엇이 되고 싶어?" 하고 물으니 "게임메이커!" 라고 단호하게 대답합니다. 초등학생때는 컴퓨터 가르치는 선생님이 되고 싶다던 아이였는데요...아직도 컴퓨터에 대한 미련은 버리지를 못했나 봅니다. 어느새 훌쩍 커서 이제는 "게임메이커"로 한단계 업그레이드 되었네요.^^ "게임메이커가 무언데?" 라고 물으니.."게임 만드는 사람이지..." 합니다."그럼 게임메이커가 되려면 무엇을 준비해야 하는데?" 라고 물으니...우물 우물 합니다. 그냥 게임메이커가 자신이 좋아하는 게임을 만드는 사람이니 그런 사람이 되고 싶었던 것인가 봅니다. "아들아! 게임메이커가 되려면 최소한 프로그래밍은 할줄 ..