전체 글 116

[C/C++] ASCII 코드값을 이용하여 문자열 내 알파벳, 대소문자, 공백, 숫자 식별(분류)하기 + 대소문자 변환하기

[C/C++] ASCII 값을 이용하여 문자열 내 알파벳, 대소문자, 공백, 숫자 식별(분류)하기 + 대소문자 변환하기 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و C/C++에서 char 자료형의 문자 변수는 0에서 127 사이의 정수 값을 저장할 수 있습니다. 이는 미국 ANSI(American Standard Code for Information Interchange)에서 표준화한 정보교환용 7비트 부호체계인 ASCII 코드에 해당되며 영문 키보드로 입력할 수있는 모든 기호들이 할당되어 있어 있습니다. ※ ASCII 코드에 대한 자세한 설명은 위키백과를 참고해 주세요. 아래 표와 같이 ASCII 코드값에는 십진수(Dec.)기준으로 숫자(0~9)가 48번에서 57번에 할당되어 있고, 알파벳 대문자..

[여행] 세종 호수공원 자전거 타는 개구리와 봄꽃들

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 황사가 지난간 후 화창한 봄날이 계속 되고 있어서 정말 기분이 업 되었답니다. 여기 저기 피어 있는 꽃들도 코로나로 지친 마음을 달래주기도 하구요. 오며 가며 찍어 놓은 봄꽃들이 저만보기 아깝기도 해서 올립니다. 참! 글쓰는 중에 생각났는데 꽃이 아닌 것도 있어요. 일명 폭탄머리 머리 개구리, 아프로(Afro) 머리라고 하는데 글쎄 세종에 폭탄머리 개구리 조형물이 있더라구요 ㅎ 그것도 자전거를 타고 있는 개구리요 ㅎㅎ 짜잔~~ 위 사진은 가까운 거리에서 찍은 것인데 처음 약 60~70m 거리 멀리서 봤을 때는 특별한 헤어스타일을 한 것처럼 보였답니다. 멀리서 보고 저게 모야 ?하고 크게 웃었어요. 정말 참신하다고 생각했지 모예요. 대한민국의 행정 특별자치..

Daily Life 2021.04.11

[C/C++] C언어 수학 함수(round, ceil, floor) 직접 구현 하기(예제포함)

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 지난번에는 abs(), fabs(), sqrt(), pow() 수학 함수를 직접 구현하여 C/C++ 라이브러리 함수와 비교하는 자료를 포스팅하였습니다. 이번에는 추가적으로 다음 3개 수학 함수들을 직접 구현하여 컴파일러가 제공하는 라이브러리 함수와 비교하고자 합니다. o 반올림 값을 구하는 round() 함수 o 소수점 올림 값을 구하는 ceil() 함수 o 소수점 내림 값을 리턴하는 floor() 함수 구현한 사용자 함수가 올바른 결과 값이 구해지는지의 검증은 지난 번과 마찬가지로 동일한 실험 데이터를 가지고 C/C++ 라이브러리 함수와 비교하였습니다. double r[] = { 3.2, 3.7, -3.2, -3.7, 5.1, -6.6 }; double..

[C/C++] C언어 수학 함수(pow, sqrt, abs, fabs) 직접 구현 하기(예제포함)

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و C/C++ 언어는 기본적으로 많은 수학 관련 함수를 지원합니다. 수학 과련 함수들을 사용하기 위해서는 #include 를 소스코드에 추가하여 사용합니다. 이미 준비된 라이브러리 함수를 사용하면 아주 편리하지만 이런 라이브러리 함수들이 내부적으로 어떻게 구현되어 있을까?라는 호기심이 생깁니다. 그래서 C/C++ 언어가 제공하는 수학 함수 중에 비교적 많이 사용되는 함수를 컴파일러가 제공해 주는 라이브러리를 사용하지 않고 스터디 차원에서 직접 구현해 보았습니다. o 정수의 절대값을 계산하는 abs() 함수 o 실수의 절대값을 계산하는 fabs() 함수 o 제곱근을 계산하는 sqrt() 함수 o 거듭 제곱을 계산하는 pow() 함수 직접 구현한 사용자 정의 함..

[C/C++] 정수(int)와 문자열(string) 상호 변환하기(itoa, atoi, sprintf, snprintf function examples)

안녕하세요 JollyTree(•̀ᴗ•́)و입니다. 정수와 문자열을 서로 변경하는 방법에 대해 정리하려고 합니다. 자료형 간의 변환은 코딩시 많이 사용되는 경우로 이번 자료에서는 itoa, atoi, sprintf 함수 사용 예제 위주로 설명하고 snprintf()를 사용한 응용 예제를 공유합니다. 인터넷에 함수 원형(Prototype)을 설명한 자료들은 많기에 예제위주로 설명을 하려합니다. 예제를 보고 편리한 방법을 사용하면 되겠습니다. 정수(int)와 문자열(string) 상호 변환 예제(Example) - itoa, atoi, sprintf, snprintf 함수 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29..

[IT, 컴퓨터] AVAST 백신 티스토리 블로그 URL:Blacklist 감염 알림 끄기(예외 추가)

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 체코의 Avast Software에서 개발한 무료 컴퓨터 백신 중 하나인 어베스트 백신(AVAST Antivirus)은 티스토리에 있는 글들을 보고 있으면 아래와 같이 URL:Blacklist에 감염됐다고 합니다. 블로그에 있는 그림도 제대로 출력되지 않고 말이죠. 읽고 있는 블로그에 그림이 많으면 경고창이 계속 여러 번 뜨게 됩니다. 화면을 가려서 제대로 글도 읽기가 어려워요. 그런대로 귀찮음에 실시간 탐지에서 "웹 감시"를 다음 시작 시까지 오프(Off) 시켜놓고 인터넷을 사용했는데, 컴퓨터를 켜서 사용할 때마다 여간 신경 쓰이는 게 아니더라고요. 사실 예외 옵션을 찾으려는데 어디 있는지 못 찾아서 "웹 감시"를 일시적으로 꺼 넣고 단순하게 사용했습니..

OS & Software 2021.04.07

[C/C++, SFML] 사이먼 게임(Simon Game) 만들기(Build a Simon Game)

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 오늘 주제는 그동안 SFML 관련 자료를 포스팅한 기본윈도우 출력, 타이머 구현, 캐릭터 및 배경 이미지, 폰트 출력 등의 내용들을 일부 종합 정리하고 처음 연재 시작할 때 계획했던 사이먼 게임의 개발 과정을 소개하려고 합니다. 게임이라고 할 정도로 거창하진 않고요. 3월 24일날 처음 SFML에 대한 연재를 시작하면서 사이먼 게임을 말씀드린 내용이 있어 정리하고자 합니다. 사이먼 게임은 1978년 처음 세계에 알려진 이래 지금까지 판매되고 있는 정말 오랜된 게임으로 초창기 버전은 전자기기 형태로 출시되었다고 합니다. 70년대와 80년대는 대중 문화의 상징일 정도였다고 하니 정말 대단했던것 같습니다. 알고리즘 구현에 사용된 언어는 어셈블리어였으며 코드 대..

[C/C++, SFML] 11. 개체(Shape, Sprite) 충돌(Collision) 감지하기

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و SFML의 sf:Rect 클래스 내 intersects() 메소드는 사각형 영역에 대한 충돌(Collision) 감지를 지원합니다. 2개의 Sprite나 Shape가 존재하면서 서로 영역이 겹친다면 이를 충돌로 인식할 수 있습니다.이번 포스팅은 1:n의 RectangleShape 개체를 화면에 출력하고 1을 플레이어로 가정하여 n개의 개체들과 충돌하는 것을 공유하려고 합니다. 기본 컨셉은 먼저 MAX_ENEMY_COUNT 20개 만큼 enemies 에 저장합니다. 20개의 적들은 1~25 x 1~25의 랜덤한 크기로 1~500의 랜덤한 위치에서 등장합니다. 사용자는 상/하/좌/우 방향키로 플레이어(rect_player)를 조정하여 위에서 아래로 박스들과의..

[C/C++, SFML] 10. 키보드 이벤트(Event) 및 상태(State) 처리하기

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و sf::Keyboard 클래스는 눌린 키, 키눌림, 키 떼임 등의 키보드 상태에 대한 인터페이스를 제공합니다. Event::KeyPressed, Event::KeyReleased 이벤트를 이용하여 키의 눌림과 떼임 상태를 알 수 있으며 어떤 키가 눌렸는지 event.key.code의 값을 통해 눌린 키의 값을 확인할 수 있습니다. 예제는 상, 하, 좌, 우 방향키가 입력되면 이벤트를 입력받아 화면의 빨간색 사각형을 입력된 키 방향에 맞춰 -10, +10 만큼씩 움직입니다. 스페이스(Space) 키를 누를 경우 파란색 테두리의 작은 사각형에 move() 메소드를 이용하여 소소한 애니메이션 효과를 주고 애니메이션 효과가 끝나면 빨간색 사각형의 중앙으로 작은 ..

[일상] 아이스크림 케잌은 이제 그만(?)!!

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 가족들이 아이스크림을 좋아해서 생일 때 아이스크림 케잌을 몇 번 샀드랬어요. 지인분들이 모바일 기프트 카드로 보내주시기도 해서 아이스크림 케잌을 먹게 되었지요. 근데, 매번 제대로 먹지도 못하고 불상사가 생겼지 모예요. 우리는 아이스크림 케잌과는 인연이 아닌가 보다 우리랑 안 맞나 보다 생각하고 한동안 아이스크림 케잌을 안 사먹었어요. 물건을 잘 떨어뜨리는 스타일이기도 하고요...ㅎㅎ 첫번째 불상사!예요. 철퍼덕! 하는 순간 아...하고 뇌정지가 몇초간 오더라구요. 그래도 이건 양호해요 케잌이 완전이 이탈 하지 않았으니까요. .... 그리고 얼마 뒤 생일이 있어서 다시 아이스크림 케잌으로 추카 파뤼!를 하기로 했어요. 더 높은 위치에서 철퍼덕!! 또 다시..

Daily Life 2021.04.03

[C/C++, SFML] 9. 엔티티(Sprite, Text, Share 등) 위치, 로테이션, 스케일 등 모양 바꾸기

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و Sprite, Text, Shape의 클래스들은 동일한 sf::Transformable 인터페이스를 통해 Sprite, Text, Shape들의 크기 변경, 회전, 이동 등을 지원합니다. 동일한 유형의 간단한 API를 통해 move, rotate, scale 변경이 가능한데 예를 들어 Text의 위치를 변경한다고 하면 아래와 같이 setPosition()를 통해 절대 위치를 정하고 move()를 통해 상대 위치로 엔티티를 이동 시킬 수 있습니다. 이 같은 절차는 Sprite, Shape들도 동일하게 적용됩니다. 아래 예에서 text.getPosition()의 결과는 setPosition(), move()에서 설정한 위치가 누적 반영되어 x는 110, y는..

[C/C++, SFML] 8. 마우스 이벤트(Event) 및 상태(State) 처리하기

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 오늘 다룰 내용은 SFML에서 sf::Mouse 클래스와 마우스 이벤트 처리에 대한 내용입니다. sf::Mouse 클래스는 마우스의 이동(Moved), 키눌림(Pressed), 키 떼임(Released) 등 상태에 대한 인터페이스를 제공합니다. event.type과 event.key.code의 상태에 따라 Event::MouseButtonPressed, Event::MouseButtonReleased, Event::MouseMoved, Event::MouseWheelMoved:, Event::MouseWheelScrolled: 등에 따라 마우스의 상태를 파악할 수 있습니다. 다음 실행 화면은 마우스 상태를 콘솔에 출력하고 마우스 이동과 버튼 클릭에 따라 ..

[과학] 식물과 에너지 - 식물의 증산작용 실험

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 동생 과학 실험 중 식물의 증산작용 실험 위해 부랴부랴 준비물을 준비하고 실험을 했습니다. 조금이나마 도움이 되었으면 해서 과정을 공유합니다. 준비물들을 어떻게 구할까 고민하다가 메스실리더 또는 삼각플라스크를 인터넷 구매하기에는 시간이 걸리고 오프라인에서 구하기는 쉽지 않고 해서 PET 재활용 물병, 비닐, 고무밴드 등 주변에서 구할 수 있는 물건들로 실험을 진행하기로 했습니다. 좀 있으면 "지구의 날"이기도 해서 최대한 있는 것 활용하기로 했답니다. 준비한 준비물입니다. 준비물 : PET 물병 2개, 식물 2개, 테이프, 자, 가위, 펜, 고무밴드 2개, 거즈 또는 솜 2개 준비 과정 먼저 되도록이면 준비 과정 중에 식물이 시들지 않도록 뿌리를 물에 잘..

Daily Life 2021.03.31

[일상] 구글 애드센스(Google AdSense) 1차 낙방 ㅠㅠ

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 첨엔 무심(?)하게 시작했던 구글 애드센스가 마음을 들었다 놨다 하네요. 오늘 새벽 승인 거부 났어요 ㅠㅠ 애드센스 신청하고 7일정도 후에 "계정을 활성화하여 수익을 창출하세요"라는 메일 받고 벌써 ? 라는 생각과 들뜬 마음으로 메일을 읽었어요 ^^ 이게 어떤 의미일까? 라는 생각으로 구글링을 해보니 다른 승인 거절되신 분들도 많이 받으셨던 메일이더군요 ㅎ 덕분에 애드고시라는 유행어도 알게되었답니다. 처음 블로그할 때는 애드센스가 뭐가 중한디?라고 생각했다가 나도 해볼까 ?로 생각이 바뀌면서 신청하고 은근히 기대했는데 결과는 떡하니 거부 났어요. 메일로는 다른 분들처럼 이렇게 왔구요. 애드센스(www.google.com/adsense) 로그인 해서 거부 ..

Daily Life 2021.03.31

[여행] 고창 상하목장(상하농원)

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 계획에 없던 갈 곳이 있어서 아침 일곱시에 일어나서 부랴부랴 준비했어요. 당일치긴줄 알고 짐도 별로 안챙겼죠,, 톨게이트를 지나면서 당일치기 계획이 바뀌게 되어 '어서와! 한국은 처음이지'라는 프로그램에 나왔던 상하목장을 지나는 길에 잠시 들렀습니다. 내부가 궁금하기도 해서 산책도 할겸 잠시 방문했습니다. 들어 가보니 이국적인 건물들이있었고, 그 뒤로는 향긋하게 냄새(?)나는 동물들이 보였습니다😅 그 대각선으로는 무한 당근 공급으로 몸이 아주 불어난 양들을 봤어요,, 이렇게 뒤룩뒤룩(?)한 양들은 처음봤어요 ㅎㅎ 큰 기대는 안했었는데 테마공원 답게 이국적 건물들도 볼만했고, 체험교실과 직접 농사지은 특산물들, 기념품들을 살 수 있었어요. 둘레길도 잘 되어..

Daily Life 2021.03.31