프로그래밍 605

koTeX 과 listings 패키지를 이용하여 (한글 문자 포함된) 프로그램 소스를 문서에 표현하기

아래의 소스는 koTeX 2012 이상이면 컴파일되는 TeX 소스이다. TeXworks 에서 XeLaTeX 으로 컴파일해도 되고, pdfLaTeX 으로 컴파일해도 된다. 한글이 정상적으로 출력되게 하려면, \begin{lstlisting}[frame=single,escapeinside=~~] 처럼 옵션 escapeinside=~~ 을 주고 ~아무개~ 하면 아무개가 출력된다. 만일 옵션 escapeinside=^$ 을 주었다면 ^아무개$ 해야 아무개가 출력된다. * 파일명: ex-listings=03.tex \documentclass{article} \usepackage{kotex} \usepackage[T1]{fontenc} \usepackage{listings} % Include the listings..

프로그래밍/TeX 2014.03.20

Go 1.2 설치 후 에러 메시지(pack: cannot open $WORK\command-line-arguments\_obj\_go_.8) 해결하기

* Go 1.2 내려받기 (윈도우즈 용으로는 zip 파일이든 msi 파일이든 아무거나 내려받아 설치해도 된다.) 아래에서는 32비트 윈도우 XP 용으로 내려받아 테스트하였다. Go 1.2 를 폴더 d:\go12 에 설치하였다. * 테스트에 사용된 예제 파일: hello.go package main import "fmt" func main() { fmt.Printf("hello, world\n") } * Go 1.0.2 를 사용할 때 처럼, 명령(cmd)창을 열고 환경변수 PATH 를 설정한다. 프롬프트> set PATH=d:\go12\bin;%PATH% * go run 멸형으로 hello.go 를 실행한다. 프롬프트> go run hello.go # command-line-arguments pack: c..

프로그래밍/Go 2014.03.02

pyqtgraph 를 이용한 그래프 그리기 예제

* pyqtgraph 내려받기 * 예제 소스 (극곡선 r = 2 cos(3 theta) 그리기) # -*- coding: utf-8 -*- # Filename: testPyQtGraph_03.py # Execute: python testPyQtGraph_03.py from pyqtgraph.Qt import QtGui, QtCore import numpy as np import pyqtgraph as pg app = QtGui.QApplication([]) win = pg.GraphicsWindow(title="Basic plotting examples") win.resize(400, 500) win.setWindowTitle('pyqtgraph example: Plotting') # Enable ant..

Qt 5.2.1 의 Qt Creater 3.0.1 을 이용한 Hello 예제 작성하기

* Qt 5.2.1 내려받기 (아래의 예는 Visual Studio 2010 용을 받아서 설치한 경우이다. Qt Creator 3.0.1 은 자동으로 함께 설치된다,) Qt Creator 를 시작한 후 메뉴에서 File --> New File or Project... 를 택한다. 그리고 New 창에서 다음 그림에서와 같이 Applications --> Qt Quick Application 을 택하고 "Choose..." 버튼을 클릭한다. 이어 나타나는 New Qt qUICK aPPLICATION 창에서 애플리케이션이 생성될 폴더와 이름을 정한다. 원하는 폴더거 없는 경우 그 우측의 "Browse" 버튼을 클릭하여 생성하거나 선택한다. 다음 창에서는 Qt Quick Componenet Set 을 정한다. ..

프로그래밍/C++ 2014.02.28

PySide 를 이용한 UI 예제

** PySide 설치하기 ** QtDesigner 내려받기 ** 윈도우즈 용 git 를 설치하기 * 다음 소스는 http://qt-project.org/wiki/PySideSimplicissimus_Module_2_CloseButton 에서 볼 수 있는 소스이다. #!/usr/bin/env python # quitter.py - provide a button to quit this "program" import sys from PySide.QtGui import QMainWindow, QPushButton, QApplication from ui_quitter import Ui_MainWindow class MainWindow(QMainWindow, Ui_MainWindow): def __init__(s..

PyQt4 를 이용한 GUI 예제: 두 자리 수 곱셈 쉽게 하기

전개 공식 (ax + b)(cx + d) = acx^2 + (ad + bc)x + bd 에 기반을 둔 쉬운 곱셉법(일명 카라슈바 곱셈법)이다. 여기서 특히 a == b or a == c or b == d or c == d 인 경우이면 ad + bc = s(c + d) or ad + bc = a(b + d) or ad + bc = b(s + c) or ad + bc = c(a + b) 로 더 쉬운 곱셈 계산이 가능하다. #!/usr/bin/python # -*- coding: utf-8 -*- # Filename: ezMult_02.py # # Execute: python ezMult_02.py # # See: http://zetcode.com/gui/pyqt4/widgets2/ # See: http://..

PyQt 와 Qt Designer 를 이용한 Python GUI 애플리케이션 작성하기

* PyQt 내려받기: http://www.riverbankcomputing.co.uk/software/pyqt/download (Qt Designer 의실행 파일은 %Python27_HOME%\Lib\site-packages\PyQt4\Designer.exe 이다.) Qt Designer 는 Visual Studio 의 Visual Basic 개발 환경과 비슷한 Python GUI 개발 도구이다. 다음은 책 Hello World! Second Edition: Computer Programming for Kids and Other Beginners 의 제 20 장에 소개되어 있는 예제를 한국어로 번안한 것이다. Qt Designer 를 실행하여 다음과 같이 "새 폼" 창에서 "Main Window" 를 ..

Octave 를 이용하여 정사각형 그리기

명령 프롬프트> octave -qi octave:1> x = [0, 1, 1, 0, 0]; octave:2> y = [0, 0, 1, 1, 0]; octave:3> plot(x, y), axis([-1,2, -1,2]) octave:4> axis equal octave:5> close octave:6> plot(x, y), axis equal, axis([-1,2, -1,2]) octave:7> close * 위의 3번 줄 명령으로 정사각형을 그렸지만, aspect ratio 가 맞지 않아 직사각형으로 보인다, * 그래프 창을 그대로 둔 채 위의 4번 줄 명령울 내리면, 그래프 창이 다시 열리면서 정사각형이 그려진다. (위의 3번과 4번 줄 대신 6번 줄 하나만 내려도 된다. close 는 그래프 창을 ..

Octave 로 구하는 이차방정식의 근

프롬프트> octave -qi octave:1> # Let's find roots of the equation x^2 - 5 = 0. octave:1> c = [1, 0, -5]; # 다항식의 계수들 octave:2> roots(c) ans = -2.2361 2.2361 octave:3> x = roots(c); octave:4> x(1) ans = -2.2361 octave:5> x(2) ans = 2.2361 octave:6> sqrt(5) ans = 2.2361 octave:7> format long octave:8> x x = -2.23606797749979 2.23606797749979 octave:9> x(1), x(2) ans = -2.23606797749979 ans = 2.23606797..

Octave 로 계산 하는 집합 연산 몇 가지

프롬프트> octave -qi octave:1> a = [1, 2, 3]; octave:2> b = [5, 3, 4, 3]; octave:3> union(a, b) # 합집합 ans = 1 2 3 4 5 octave:4> intersect(a, b) # 공통집합 ans = 3 octave:5> setdiff(a, b) # 차집합 ans = 1 2 octave:6> setdiff(b, a) # 차집합 ans = 4 5 octave:7> setxor(a, b) # 대칭차(symmetric difference) ans = 1 2 4 5 octave:8> unique(b) # 중복 허용 않는 집합 ans = 3 4 5 octave:9> ismember(a, b) # 원소 확인 ans = 0 0 1 octave:..