[linux/gcc]계산기를 제작하였습니다.(+,-,*)

익명 사용자의 이미지

과제로 매우 큰 숫자를 입력해도 계산이 되도록 계산기를 만들었는데
문제는 계산 결과가 맞는지 안 맞는지 확인 할 수가 없다는 겁니다..
그래서 혹시 다른 계산기 프로그램 만드신분 있으시다면 평가좀 해 주셨으면 합니다
https://github.com/Choi-Jongin/Calculator

특이한 점은 숫자열을 만드는데 숫자열의 노드 하나가 10^n진수 라는 겁니다
------------------------
NS1: 10진수 계산기
NS1: 10억진수 계산기
inf_calc:과제 제출용
>실행방법
ex1) ./NS1 //키보드로 직접 수식 입력
ex2)./NS1 infile // 파일을 읽어서 수식입력 및 re.txt에 저장
ex3)./NS1 infile outfile //infile을 읽어서 계산 후 outfile에 저장
ex4)./NS1 infile outfile f. //강제 실행모드, ex4번과 같지만 파일안에 수식이 비정상적인 수정이여도 계산가능 수식으로 자동 변환 후 계산을 수행함
------------------------
cmp: 두개의 파일 비교
ex) ./cmp re1 re2
------------------------
Gen: 임의의 수식 생성
ex) ./Gen gen1 1000 10 //1000자리 숫자 10개 임의 생성
------------------------
SettingNS: 몇 진수 계산기를 만들지 설정하고 자동 컴파일
ex) ./SettingNS 100 //100진수 계산기를 만들고 inf_calc이라는 실행 파일을 만듬
------------------------
evaluation.sh : 조교님이 평가하실 방법의 샘플

대충 1만자리 여러개 곱하는것도 되긴 됩니다만
그 결과가 맞는지를 확신하지 못하고 있습니다.

직접 평가하시기 번거로우시다면
매우큰숫자 혹은 매우 작은 숫자(소숫점) 혹은 매우 복잡한 수식(괄고 다중 중첩) 혹은 비 정상적인 수식(예외처리도 평가 기준임)을
다른 계산기(직접 만드신 것도 괜찮습니다.)로 계산하시고
입력하신 수식과 수식 결과를 댓글에 달아 주셔도 매우 감사하겠습니다.

참고로 덧셈 뺄셈 곱셈만 되고 나눗셈은 안됩니다.

swish95의 이미지

자릿수 제한이 없는 python 으로 비교해보시면 되지 않을까요?

------------------------------------------------------------
ProgrammingHolic

ekejaqutmqk의 이미지

제가 파이썬을 할줄 모릅니다 ㅜㅜ

swish95의 이미지

계산만 할건데 알필요 있나요 ^^
python -c 'print 1200000000000000000000000000000000000000000000000000+1'

------------------------------------------------------------
ProgrammingHolic

익명 사용자의 이미지

ekejaqutmqk의 이미지

와.. 이런 라이브러리가 있었군요
큰 도움되었습니다.
감사합니다

익명 사용자의 이미지

LGPL, GPL 라이선스는 회사에서 사용하기에는 위험한 라이선스입니다. 개발자를 직업으로 삼고 계신 학생분들은 GPL 계열의 소프트웨어를 멀리할 필요가 있습니다.

jick의 이미지

풉 그럼 리눅스도 쓰지 말아야겠네요.

물론 라이선스를 잘 모르고 허용되지 않은 방식으로 쓰면 문제지만, 그건 당연히 어느 (상용을 포함해) 어떤 라이선스나 마찬가지입니다.

익명 사용자의 이미지

GPL 전염성 때문에 그렇죠.
회사에서 일반에 배포하는 제품을 만들 때 GPL 잘 안 쓰잖아요.
그걸 쓰면 GPL로 제품의 소스코드를 공개해야 하기 때문이죠.
그걸 얘기하는거에요. LGPL의 경우 그대로 사용하면 별 문제는 없는데, 그걸 수정하면 마찬가지로 소스코드를 공개해야 하니까... 회사에서는 permissive 라이선스, BSD 계열을 선호하죠.
학교에서 프로그램 공부하면서 개발자를 꿈꾸는 사람도 있을텐데 (L)GPL류는 피하세요.
(L)GPL 류 소프트웨어 소스코드를 공부하다보면 자기도 모르게 무심코 그 코드가 회사 제품에 들어갈지도 몰라요.
Big number 라이브러리는 permissive 라이선스류로 공부하세요.
리눅스 사용 여부랑은 관점이 다릅니다.

김정균의 이미지

회사에서는 permissive 라이선스, BSD 계열을 선호하죠.

그건.. copy & paste 를 하고 싶으니까 그런거죠. 자기도 모르는 사이에 GPL 코드를 집어 넣는다와는 완전히 다른 개념 아닌가요? 회사에서 BSD를 라이센스 library는 프로그램을 선호한다는 말은.. 생으로 만들기 싫고 비용을 줄이겠다는 개념의 접근이지 license 방어의 목적이 아니라고 봅니다.

그리고 님이 걱정하시는 바는 "표절에 걸릴 수 있으니 다른 노래는 듣지 말아라" 와 동일한 표현일 것 같습니다. 다른 노래를 듣지 않고 순수하게 창작만 한다는 것은 굉장히 제한된 노래만 만들게 될 것이고 결국에는 비슷한 노래만 만들게 될 것 같군요.

익명 사용자의 이미지

해외 프로젝트 홈페이지 첫화면에 돈 얘기가 떡 하니 나오네요. 역시 해외랑 국내랑은 환경이 다르네요.
제가 저러면 사람들이 오픈소스 자세가 안 됐네.. 욕하던데 ㅎㅎ

We don't have the time to keep up with the bugs nor the financial resources to purchase safe(r) AMD server hardware.

익명 사용자의 이미지

예전 생각 나네요.

https://entertain.v.daum.net/v/20191215235554111?f=m

여기 보니까
이날 김정민 김장훈은 악플러들을 실제로 만나 대화를 나눴다. 한 악플러는 "나는 무플보다 악플이 낫다고 생각한다. (연예인은) 잊히면 끝이다"라며 "잘못을 했을 때 비난을 받을 멘탈이 없다면 연예인 될 건 아니라고 생각이든다"라고 했다.

이런 얘기가 나오는데.. ㅎㅎ
전에 어떤 분이 저한테 그러더라고요.
멘탈이 안 되면 오픈소스 때려지고 하지 말라고 ㅎㅎ
아직까지도 하두 억울하고 분통 터져서 글 남김니다.
학생이시면 (L)GPL 라이선스의 라이브러리는 웬만하면 사용하지 마세요. (L)GPL 라이선스는 특유의 전염성 때문에 개발자를 직업으로 할 사람들은 피해야 하는 라이선스입니다.

Stephen Kyoungwon Kim@Google의 이미지

별로 이해가 안 되는 댓글이네요. 나쁜 경험을 하셨던 것 같은데, 보통 건전한 회사라면 라이센스 리뷰 팀이 따로 있거나 최소한 말단 개발자가 책임을 뒤집어 쓰는 경우도 나와서는 안 되겠죠. 한국에 나쁜 회사가 많다고 주장하신다면 저야 현실을 모르니 말씀드리기 어렵겠습니다.

다만 첫째, 오픈 소스는 소스를 공부하는 것은 물론 사용하는 것으로도 도움이 되는 경우가 많습니다. 둘째, 그렇게 사용하고 공부한 많은 사람들이 이를테면 실리콘 밸리에서 아무 문제 없이 개발자로 잘 지내고 있습니다. 대개는 그렇게 사용/공부한 경력이 긍정적으로 평가됩니다.

"개발자를 직업으로 할 사람들은 피해야 하는 라이선스"라는 건 분명히 과한 주장입니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.