반응형
SMALL

'전체 글'에 해당되는 글 209건

반응형
LIST
반응형
SMALL

짝수, 홀수 구분하기 프로그램은 사실 몇줄 안될정도로 엄청 쉬운건데 처음 파이썬을 공부할때 return문이 엄청 헷갈릴 수 있다. local변수라던지 global변수라던지 이런거 구분하고 어떻게 받는건지 처음에 할때는 헷갈릴 수 있다. 물론 C언어를 어느정도 해봤으면 쉽게 이해할 수 있을 것이다. 내가 짠 코드는 다음과 같다.


def is_evenly_divisible(number):
return False if number % 2

else True


print(is_evenly_divisible(3))
print(is_evenly_divisible(7))
print(is_evenly_divisible(8))

만약에 출력되는 숫자가 짝수이면 True, 홀수이면 False를 출력하게 나타내는 프로그램이다. 나는 처음에 짤 때 저렇게도 한번 짜봤는데 모범답안과 똑같이 이렇게 나온다. 




그리고 또 다른 코드는 다음과 같다.


def is_evenly_divisible(number):

return number % 2 == 0;

print(is_evenly_divisible(3))
print(is_evenly_divisible(7))
print(is_evenly_divisible(8))

위 코드를 출력해봐도 결과는 위에 사진과 같이 나오게 된다. 어차피 Return문과 전역변수, 지역변수의 특성을 알기위해 엄청나게 간단한 프로그램을 만들어본 것이니 그냥 참고만 하면 된다. 컴퓨터 프로그램 공부하는 사람들은 저거 말고도 또 다른 방법들이 있을 것이니 한번 찾아보는 것도 좋을거 같다.

반응형
LIST

'프로그래밍언어 > PYTHON' 카테고리의 다른 글

피보나치 수열 프로그램  (0) 2017.07.11
학점계산기 프로그램  (0) 2017.07.10
거스름돈 계산 프로그램  (0) 2017.07.09
파이썬의 기초  (0) 2017.07.09
파이썬 프로그램의 설치  (0) 2017.07.09
블로그 이미지

만년필석사

,
반응형
SMALL

파이썬의 기초가 끝나면 어느정도 조금 감이 잡혔다 싶으면 한번 해보면 좋은 미니과제이다. 어려운건 아닌데 살짝 생각을 해봐야 한다.


거스름돈을 계산해주는 프로그램인데 내가 30000원짜리 이어폰을 샀다고 가정했을 때 5만원짜리 지폐를 냈다고 하면 50000, 10000, 5000, 1000원짜리 지폐들이 있을 것인데 거슬러 줄때 각각 지폐들이 몇개가 필요한지에 대해 계산하는 프로그램이다.  내가 파이썬으로 짠 프로그램은 다음과 같다.


fifty_thousand_count = 50000
ten_thousand_count = 10000
five_thousand_count = 5000
one_thousand_count = 1000


def calculate_change(payment, cost):
# 총 거스롬돈 계산 후, 50000원 짜리 몇 장이 필요한지 계산.
change = payment - cost
fifty_thousand_count = int(change / 50000)

# 50000원 짜리 지폐로 거슬러준 후 남은 거스롬돈 계산, 10000원 짜리 몇 장이 필요한지 계산.
change = change % 50000
ten_thousand_count = int(change / 10000)

# 10000원 짜리 지폐로 거슬러준 후 남은 거스롬돈 계산, 5000원 짜리 몇 장이 필요한지 계산.
change = change % 10000
five_thousand_count = int(change / 5000)

# 5000원 짜리 지폐로 거슬러준 후 남은 거스롬돈 계산, 1000원 짜리 몇 장이 필요한지 계산.
change = change % 5000
one_thousand_count = int(change / 1000)

print("50000원 지폐 : %s장" %(fifty_thousand_count))
print("10000원 지폐 : %s장" %(ten_thousand_count))
print("5000원 지폐 : %s장" %(five_thousand_count))
print("1000원 지폐 : %s장" %(one_thousand_count))

# 테스트
calculate_change(100000, 45000)

print()
calculate_change(500000, 352000)




45000원짜리 물건을 샀을때 내가 10만원 수표를 냈을시에 거스름돈이 55000원이 생기는데 이 거스름돈을 어떻게 해서

거슬러 줄 것인지에 대한 거스름돈 프로그램이었다. 겉보기엔 조금 복잡해 보일 수도 있는데 알고나면 재미있을것이다.

저 위에꺼 실행시키면 다음과 같이 나오게 된다.



이런식으로 해서 거스름돈 거슬러줄때 각각 지폐가 몇장이 필요한지에 대해 참 상세하게 알려주는 고마운

프로그램이다. 필자는 저렇게 만들어봤으니 다른분들도 조금 더 간결하고 이쁘게 코딩을 해보길 권장한다.




반응형
LIST

'프로그래밍언어 > PYTHON' 카테고리의 다른 글

피보나치 수열 프로그램  (0) 2017.07.11
학점계산기 프로그램  (0) 2017.07.10
짝수,홀수 구분하기 프로그램  (0) 2017.07.10
파이썬의 기초  (0) 2017.07.09
파이썬 프로그램의 설치  (0) 2017.07.09
블로그 이미지

만년필석사

,
반응형
SMALL

요즘 파이썬 언어에 푹 빠져서 지내고 있는데 정말 획기적인 언어라는 생각이 들었다. C언어 10줄이상으로 짤거 단 몇줄이면 짤정도로 진짜 엄청 간단한 언어였다. 물론 프로그래밍 언어자체가 쉽다는건 아니지만 파이썬 자체가 굳이 전공자가 아니어도 쉽게 배울 수 있고 언제 어디서든지 쓸 수 있겠다는 생각이 들었다.(물론 전공자면 더 빠르게 습득한다. C,JAVA언어의 기본기가 탄탄하면 술술 넘어갈 것이다.) 이번엔 간단히 자료형, 숫자형과 같은 기초적인 것들을 써보려고 한다.


1. 숫자형


말그대로 덧셈, 뺄셈과 같은 연산자들을 말한다. 파이썬에선 다음과 같이 실행된다. 



무지하게 간단하지 않은가? C언어는 초기값설정해주고 서식문자넣고 출력인데 이건 그냥 바로 print에다 넣기만 하면 바로 출력이다. 이래서 파이썬파이썬 하는구나를 알게되었다.


2. 문자형


문자형도 무지하게 간단하다. 그냥 print에다 ""하고 사이에 자신이 하고싶은 말 쓰면 된다.




어떤가? 진짜 무지하게 간단하다. 저건 아마 초등학생들도 쉽게 알 수 있다. (요즘 초등학생들도 프로그래밍 열풍이 분다고 해서 내 세대하곤 또 다르다라는 생각이 들었다..;)


3. 덧셈을 이용해 문자열 합치기


자바언어와 같이 +를 사용해서 출력을 할 수도있다. 해보면 다음과 같다.



이런식으로 변수명으로 변환해서 +해서 출력하는 방법도 있다. 중간에 + " "를 한것은 띄어쓰기 이니 참고하길 바란다. 너무 간단해서 공부하면서도 참 많이 놀랬다. 인간하고 소통할 수 있는 최고의 언어 중 하나였다. 괜히 고수준언어가 아니다.^^ 하나 더 시범을 보이자면 다음과 같다.



변수명 *2만 하면 바로 글자가 두번 반복된다. C언어에선 찾아볼 수 없을 정도로 간단하다.


이렇게 파이썬의 기초에 대해 포스팅해봤는데 나머지는 조금 더 구글링해서 찾아보면 될 것같다. 완전 기초적인 것이기 때문에 고수들은 지루할 수 있을 것이다. 하지만 이런 기초가 탄탄해야 나중에 더 어려운 코딩도 하지 않을까?


반응형
LIST

'프로그래밍언어 > PYTHON' 카테고리의 다른 글

피보나치 수열 프로그램  (0) 2017.07.11
학점계산기 프로그램  (0) 2017.07.10
짝수,홀수 구분하기 프로그램  (0) 2017.07.10
거스름돈 계산 프로그램  (0) 2017.07.09
파이썬 프로그램의 설치  (0) 2017.07.09
블로그 이미지

만년필석사

,
반응형
SMALL

파이썬 툴 설치하는건 의외로 간단하다. 하지만 맥하고 윈도우는 설치법이 차이가 좀 있다. 필자는 MAC 기준으로 포스팅해보려고 한다.


1. 파이썬 사이트에 들어가서 파일 다운로딩하기



파이썬 사이트에 들어가면 이런식으로 나오는데 노란색 버튼중 왼쪽꺼를 클릭해서 다운로딩 받아준다.


2. 다운로드 받은 파일을 설치하기



다운받은 파일을 열면 이런 화면이 뜨게 되는데 계속버튼을 눌러 자신의 비밀번호를 입력해주고 경로를 지정해주고 설치를 해준다.



설치가 완료되면 이런화면이 뜨게 되는데 이 화면이 뜨면 정상적으로 설치가 된것이다.


3. Pycharm 설치하기



이제 실행툴인 pycharm을 설치하는 과정인데 사이트에 들어가보면 저런식으로 화면이 뜨게 되는데 Community라는 아래쪽 다운로딩 버튼을 클릭해준다. 이때 macos쪽으로 클릭해서 설치해주어야 한다.




다운로드 받아지면 이런식으로 뜨게 되는데 오른쪽 폴더란에 드래그 해주면 설치가 끝난다.


4. 파이썬 프로그램 실행


command+스페이스바를 눌러 pycharm이라고 쳐주면 다음과 같은 화면이 나온다.



이렇게 해서 파이썬프로그램 설치는 완료되었다. 조금 더 추가해서 실행하는 방법을 소개하자면 다음과 같다. Create New Project를 클릭해서 어디다 파일들을 만들지 잘 설정해주고 ok를 클릭하면 다음과 같은 화면이 뜬다.



이렇게 화면이 뜨게 되는데 맨위에 오른쪽버튼을 클릭해서 New -> File을 클릭해 소스파일을 만들어줘야 하는데, 만들때 주의사항이 있다. 바로 파일명 뒤에 .py를 붙여야한다.(파이썬 툴 특성, 안붙여주면 text파일로 만들어져서 코딩안됨)




이런식으로 해서 파일을 만들어주면 기본적인 환경세팅은 다 끝난다. 생각보다 설치법이 간단하고 쉬우니 한번 해보길 권장한다.

반응형
LIST

'프로그래밍언어 > PYTHON' 카테고리의 다른 글

피보나치 수열 프로그램  (0) 2017.07.11
학점계산기 프로그램  (0) 2017.07.10
짝수,홀수 구분하기 프로그램  (0) 2017.07.10
거스름돈 계산 프로그램  (0) 2017.07.09
파이썬의 기초  (0) 2017.07.09
블로그 이미지

만년필석사

,
반응형
SMALL

오랜만에 자바 복습겸 완전간단한 프로그램 하나 짜봤다.. 요즘 웹프로그래밍 언어와 서버공부에 빠져있어서 그런지 자바공부를 좀 덜했나보다ㅠ 자바의 기억도 되살릴겸 나를 소개할 수 있는 무언가를 만들어보고 싶었다. 오늘 만들어본건 변수형, 자료형쪽이었는데 C와 참 비슷한 부분이 많아 다시 상기시키는 데에는 어려움이 없었다. 짠 코드는 아래와 같다.

 

솔직히 변수명 선언하는 건 전혀 어렵지 않았지만 출력하는 부분에서 좀 해멨던게 띄어쓰기를 하려하는데 오랜만에 하다보니 그게 생각이 갑자기 나지 않았던 것이었다 -_-;; 제일 쉬운걸 ㅋㅋ;; 2017년 7월 8일로 이렇게 띄어쓰기를 해서 출력을 하고 싶다 하면 저런식으로 뒤에 +'년' 이런식으로 해서 붙여줘야 올바른 결과값이 나온다. Boolean 함수의 경우도  true냐 False냐를 구별지어주는 함수이기 때문에 상황에 맞게 저런식으로 써주면 될 것 같다. 저거 실행시키면 결과는 이렇게 나온다.

 

 

 

이렇게 출력되긴 하는데 나는 일단 3가지만 한번 해봤다. 저거 참고해서 좀더 변수명 추가해서 꾸며보고 싶으면 그렇게 하면 될 것 같다. 자바 입문자들이 공부하기 좋은 코드일 것이다. 

반응형
LIST
블로그 이미지

만년필석사

,
반응형
SMALL

virtualBox에다 웹서버 만들어놓은거 맥OS로 원격접속을 시도할때의 오류때문에 구글찾다 1시간을 소모했던것같다

-_-;; 계속 안되서 지웠다도 깔아보고 했지만 결과는 그대로였다. 결국 구글링을 하다 찾았는데 RSA 공유키 충돌문제였다. 그래서 그 방법을 한번 포스팅해보려고 한다.


1. ssh로 접속을 시도했을시 RSA 공유키가 충돌하면 이런 에러가 발생하게 된다.



내 inet 포트에 맞게 접속을 하는데도 계속 이와같이 경고메시지가 뜨며 원격접속이 안되는 상황이 연출된다. 그래서 이런 상황이 발생할때는 다음과 같은 명령어를 치면된다.


2. sudo ssh-keygen -R 자신의 우분투 ip주소


맥 리눅스에 keygen 명령어를 치면 위 사진과 같은 결과가 나온다.


3. 그리고 sudo ssh 우분투접속아이디@자신의ip주소를 입력해준다. 


입력해주면 위 사진과 같은 화면이 나오게 되는데 계속 연결하겠느냐고 나오게 되는데 Yes를 입력해주고 계속 실행한다.


4. 


연결을 하게 되면 위와같은 화면이 나오는데 자신이 설정한 우분투 비밀번호를 입력해준다.


5. 저렇게 비밀번호를 입력하게 되면 다음과 같이 ssh 원격연결이 정상적으로 되게 된다.




이건 처음 겪어보는 일이라서 좀 당황스러웠지만 해결하고 나니 기분이 좋았다. 혹시나 이런 에러를 겪는 분들이라면 위와 같이 한번 해결해보면 될 것 같다.



반응형
LIST
블로그 이미지

만년필석사

,
반응형
SMALL

오늘은 프로세스에 대해 포스팅해보려고 한다. 이러저러 블로그 찾아보고 OS책 따로보고 알게된 것들을 간추려서 써보려고 한다.


1. 프로세스란?

말그대로 실행중인 프로그램을 말한다. 프로그램 카운터의 값과 처리기 레지스터 내용으로 대표되는 현재 활동을 포함하고 있다.


2. 메모리상의 프로세스 구조


- 프로세스 스택: 함수의 매개변수, 복귀 주소, 로컬 변수와 같은 임시적인 자료를 가지는 공간이다.

- 데이터 섹션: 전역변수들을 수록하는 공간이다.

- 힙: 프로세스 실행중에 동적으로 할당하는 메모리 공간이다.



                    <메모리 상의 프로세스>


하나 더 말하자면 프로그램과 프로세스는 엄연히 다른거다. 가끔 이게 같다고 하는 사람들도 존재하는데-_-;; 어떤차이인지 좀 제대로 알고 말했으면 좋겠다.. 프로그램은 명령어 리스트를 내용으로 가진 디스크에 저장된 파일, 즉 실행파일   이라고 불리는 수동적인 존재이다. 반면 프로세스는 그 프로그램을 실행중인 것이다. 좀더 이야기하면 다음에 실행할  명령어를 지정하는 프로그램 카운터 및 관련된 자원의 집합을 가진 능동적인 존재이다.



3. 프로세스 상태


 프로세스는 실행되면서 상태가 변하게 되는데 5가지 상태가 있다.


- 새로운(new): 프로세스가 생성중이다.

- 실행(running): 명령어들이 실행되고 있는 중이다.

- 대기(waiting): 프로세스가 어떤사건이 일어나길 기다리고 있는 상태이다.

- 준비완료(ready): 프로세스가 처리기에 할당되기를 기다린다.

- 종료(terminated): 프로세스가 실행을 종료한다.


대강 이정도 5가지 상태가 있지만 운영체제마다 조금씩 다르므로 그건 OS에 따라 공부해 보면 될 것 같다. 하지만 이름만 다를뿐 전체적인 큰 그림은 거의 유사하다. 아래 사진은 프로세스가 어떻게 실행되는지에 대해 자세히 나타낸 그림이니 한번 참고하길 바란다.



4. PCB(프로세스 제어 블록)


이건 내가 컨텍스트스위칭 공부했을때 한번 포스팅 해놓긴 한거 같았는데 그래도 한번 더 포스팅 해보려고 한다. 컴퓨터공학과 전공자고 운영체제를 한번이라도 해봤으면 알겠지만 프로세스 제어블록은 특정 프로세스하고 연관된 여러정보를 수록하는 공간을 의미한다. 프로세스 제어 블록의 구조에 대해 조금 더 알아보겠다.


- 프로세스 상태: 새로운, 준비완료, 실행, 대기, 정지 상태를 의미한다.

- 프로그램 카운터: 이 프로세스가 다음의 실행할 명령어의 주소를 가리킨다.(학부때 컴퓨터구조론시간에도 배웠을꺼다)

- CPU의 레지스터: 누산기, 인덱스 레지스터, 스택 레지스터, 범용레지스터들과 상태코드의 정보가 포함되는 곳이다. 추가적으로 상태정보에 대해 좀 더 이야기하자면 인터럽트 발생시에 프로그램 카운터와 함께 저장어야 하고 처리후에는 프로세스가 중단된 지점으로부터 올바르게 실행할 수 있게 해야 한다.

- CPU-스케줄링정보: 프로세스 우선순위, 스케줄 큐에 대한 포인터와 다른 스케줄 매개변수들을 포함하는 곳이다. 말대로 스케줄링에 관련된 정보들을 포함하는 곳이다.

- 메모리 관련 정보: 여기에는 메모리 시스템에 따라 기준레지스터, 한계레지스터값, 세그먼트들과 같은 정보를 포함한다.

- 회계정보: CPU가 사용한 양과 사용된 실제시간, 시간제한, 잡 등을 포함하고 있다.

- 입출력 상태 정보: 이 프로세스에 할당된 입출력장치들과 열린 파일의 목록 등을 포함한다.


<PCB의 구조>

<사진참조: google>



반응형
LIST

'운영체제 ' 카테고리의 다른 글

CPU 스케줄링  (0) 2017.08.05
명령해석기  (0) 2017.01.30
운영체제서비스  (0) 2017.01.30
이중동작모드(Dual-Mode operation)  (0) 2017.01.15
멀티프로세싱(Multi Processing)이란?  (0) 2016.09.20
블로그 이미지

만년필석사

,
반응형
SMALL

1. Telepresence: 공간적으로 떨어져 있는 장소 또는 가상의 장소를 신체적으로 경험하는 것. 가상현실 공간을 통해 신체적으로 가있지 않는 다른장소에 존재할 수 있게 하는것.

2. Widget: 컴퓨터에서 운영체제의 응용프로그램을 동작시키고 결과를 화면에 표시하는 작은 그래픽사용자 인터페이스 도구.

3. ICN: 통신을 기반으로 한 이전의 인터넷 통신 패러다임을 정보중심으로 재편성하려는 네트워킹. 절차보다는 목적에 집중하는 새로운 네트워킹 기술

4.OGSA: 웹서비스표준+그리드기술이 결합된 개방형 표준. 웹서비스를 그리드 상에서 제공하기 위한 서비스 중심의 상업적인 응용에 초점이 맞춰진 구조이다.

5. C4l: 지휘,통제,통신,컴퓨터,정보의 영문 머리글자를 딴 말.

6. Malware(멀웨어): 악의적인 목적으로 작성된 것으로 악성코드를 뜻한다.

7. SEO: 검색엔진에서 검색했을때 상위에 나타나도록 관리 하는 것.

8. Patent-Troll: 특허권을 비롯한 지적 재산권을 통해 로열티 수입만으로 이익을 창출하는 특허 관리 전문 기업.

9. LTE: 3GPP 진영에서 추진하고 있는 3세대 이동 통신 방식인 광대역 부호분할다중접속이 진화한 기술로 4세대 이동 통신 후보 기술이다. 패킷 데이터 전송에 기반을 둔 다양한 서비스 지원을 목표로 하는 기술.

10. Digital Forensics(디지털 포렌식): 컴퓨터의 법의학. 전자증거물을 사법기관에 제출하기 위해 휴대폰, 서버 등에서 데이터를 수집 분석하는 디지털 수사과정을 말한다. 대검찰청 같은 주요 수사기관에 포렌식센터가 있다.

11. Cyber Bullying(사이버불링): 특정인을 사이버상에서 집단적으로 따돌리거나 집요하게 괴롭히는 행위.

12. LBSNS(위치기반 소셜네트워크): 스마트폰에 내장된 GPS수신기를 통해 고객의 위치를 인식하고 이를 바탕으로 각종 이벤트의 정보공유, 의사소통까지 가능하게 하는 서비스를 말한다.

13. Digital Prosumer(디지털 프로슈머): 인터넷 커뮤니티에 참여해 콘텐츠를 즐기고 정보와 자료를 얻는 소비자 이면서 동시에 의견을 적극 개진해 생산에도 영향을 미치는 사람

14. BEMS(건물에너지관리시스템): 빌딩 내 에너지 관리 설비의 다양한 정보를 실시간 수집 분석해서 에너지 사용 효율을 개선하는 시스템

15. Femtocell Base Station(펨토셀 기지국): 사무실이나 집에 설치하는 초소형 이동 통신 기지국. 

16. NRI(네트워크 준비 지수): 기업의 정보통신기술발전도와 경쟁력을 국가별로 평가한 지수.

17. Space Club(우주클럽): 자국영토에서 자국기술로 인공위성 및 우주선 발사가 가능한 국가들의 모임


반응형
LIST
블로그 이미지

만년필석사

,