프로그래밍 605

0.3 - 0.1 == 0.2 ?

C# 언어로 부동소수점수 계산할 때 실수할 수 있는 경우이다. 반복문의 탈출 조건에 저런 것을 이용하다 자칫하면 무한 반복의 늪에 빠질 수 있다. 금액 계산의 경우에 정확한 계산이 요구되기 때문에 float 타입이니 double 타입 보다는 decimal 타입을 사용하는것이 더 바람직할 것이다. 정확한 소수점수 계산을 위해 decimal 타입을 사용한 다음 C# 소스의 실행 결과를 보자. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CalcDecimalConsoleApp { class Program { static void M..

프로그래밍/C# 2020.12.14

PHP 8 정식 릴리즈 출시 (2020년 11월 26일)

최근에 PHP 8 릴리즈가 발표되었다. 변한 것은 여러가지 있지만, 사소한 변화 한 가지만 소개한다. PHP 8에서는 부동소수점수 나눗셈 함수 fdiv($a, $b) 가 추가되었다. 기존의 나눗셈 $a / $b 는 나누는 수 $b 가 0일 경우 에외가 발생하지만, IEEE 754 의 권고에 따라 0으로 나누는 경우 나누어지는 수가 양수냐 움수냐 0이냐에 따라 나눈 결과가 각각 +INF, -INF, NAN 로 된다. PHP 7,xx 까지에는 fmod($a, $b) 함수와 intdiv($a, $b) 함수가 이미 있었는데. 여기에 보조를 맞추어 fdiv($a, $b) 가 PHP 8에 새롭게 추가되었다고 한다. intdiv() 와 대비되는 이름 floatdiv() 으=로 할까도 고려해보았지만, fmod() 와 ..

프로그래밍/PHP 2020.12.03

wxPython을 이용한 간단한 웹 브라우저 소스 몇 가지

wx,html 모듈을 이용하는 첫째 소스는 http 프로토콜만 지원하고 https 프로토콜은 지원하지 않습니다. 그러나, wx,html2 모듈을 이용하는 둘째 소스는 http 프로토콜과 https 프로토콜 모두를 지원합니다. 셋째 소스는 둘째 소스에 네비게이터(뒤로 가기, 앞으로 가기) 가능을 추가한 소스입니다. [1] wx.html 모듈을 이용한 소스: simple_html_browser.py # -*- coding: utf-8 -*- #!/usr/bin/env python # Filename: simple_html_browser.py # Execute: python simple_html_browser.py # or # Execute: ./simple_html.browser.py import wx im..

wxPython 4.1.1 (현재 최신 버전) 설치하기

최근(2020년 11월 21일)에 릴리즈 4.1.1이 발표되었습니다. C++ 언어로 작성된 wxPython은 Python2 와 Python3 모두에 사용가능한 Python의 GUI 래퍼(wrapper)입니다. [1] wxPython 홈페이지 [2] wxPython 4.1.1 설치하기 처음 설치 명령: pippip install wxPython==4.1.1 업그레이드 명령: pippip install --upgrade wxPython==4.1.1 [3] 설치 후 버전 확인하기 >>> import wx >>> wx.version() '4.1.1 msw (phoenix) wxWidgets 3.1.5' >>> wx.__version__ '4.1.1' [4] 설치된 wxPython의 버전을 확인하는 GUI 소스 ..

Visual Studio 2019 에서 유닛 테스트 작성하는 예

아래의 글은 MS의 유닛 테스트 적성하기 문서에 오류가 있어 바로 잡기 위한 글입니다. 유닛 테스트하는 도구로는 MSTest, NUnit, xUnit 등 몇 가지가 있는데 이 중에 MSTest를 이용하여 유닛 테스트하는 예를 작성해 보고자 한다. 컨솔 창에 Hello World! 라는 문구가 정상적으로 출력되는지 알아보는 유닛 테스트이다. Visual Studio 2019 의 메뉴에서 "파일(F)" -> "새로 만들기" -> "프로젝트(P)"를 선택하고, "새 프로젝트 만들기" 창에서아래와 같이 선택하고 "다음(N)" 버큰을 클릭한다. 다음에 프로젝트 이름과 폴토를 선택하는 창에서 아래와 같이 "프로젝트 이름(N)" 입력 난에 HelloWorldTests 라고 입력하고, 그 아래 항목 "위치(L)" 난에..

프로그래밍/C# 2020.04.21

윈도우 10의 PowerShell 에서 행렬 곱셈 계산하기

VisualStudio 2019 의 메뉴에서 "도구(T)" -> "명령줄(L)" -> "개발자 PowerShell(P)" 을 선택하거나 윈도우 10에서 '윈도우 키' + 'R' 을 누른 다음 명령어 입력 난에 powershell 을 입력하여 나타난 PowerShell 창에서 다음을 입력한다. function multarrays($a, $b) { $n,$m,$p = ($a.Count - 1), ($b.Count - 1), ($b[0].Count - 1) if ($a[0].Count -ne $b.Count) {throw "Multiplication impossible"} $c = @(0)*($a[0].Count) foreach ($i in 0..$n) { $c[$i] = foreach ($j in 0..$p..

C# 의 세제곱근 구하는 함수 Cbrt()

C 언어나 C++ 언어에는 세제곱근을 구하는 함수 cbrt() 가 기본적으로 제공되어 있다. 소스에서 단지 #include 또는 #include 를 추가하기만 된다. 그러나 C# 언어에는 이런 함수가 기본적으로 제공되지 있지 않다. (Framework 의 경우) 그런데 Core 3.0 이상의 경우에는 C# 언어에서도 제곱근 함수 Sqrt() 와 세제곱근 함수 Cbrt() 를 기본적으로 사용할 수 있다. using System.Math; 구문이 없더라도 쓸 수 있다. Visual Studion 2019에서 "새 프로젝트 만들기" -> "콘솔 앱(.NET Core)" 하고 프로젝트 이름을 적당히 써 주고 C# 소스 Progam.cs 를 편집하는 창에서 Main() 함수 부분을 다음과 같이 수정하고 빌드하여 ..

프로그래밍/C# 2020.03.25

원시 피타고라스 삼조를 생성하는 C# 소스

원시 피타고라스 삼조(primitive pythagorea triplet)를 생성하는 명령줄 어플(Command Line Application) C# 소스 C# 소스: // Filename: GeneratePrimitivePythagoreanTriplets.cs // // Compile: csc GeneratePrimitivePythagoreanTriplets.cs // // Execute: GeneratePrimitivePythagoreanTriplets 7 using System; using System.Collections.Generic; namespace GeneralCommandLineApp { class Program { public static Int64 GetGCD(Int64 xa, Int..

프로그래밍/C# 2020.03.01

32bit 윈도우 10에 최신 JDK 1.8 Update 221 설치하기

/** * Filename: HelloHangulUTF8.java * * File Encoding: UTF8 * * Compile: javac HelloHangulUTF8.java * * Execute: java HelloHangulUTF8] * * Output: * Hello. world! * 안녕하세요? * * Version * Prompt> java -version * java version "1.8.0_221" * Java(TM) SE Runtime Environment (build 1.8.0_221-b11) * Java HotSpot(TM) Client VM (build 25.221-b11, mixed mode, sharing) * * os EnvironmenT: 32but Window 10 *..