일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 | 31 |
- 네트워크 프로그래밍
- 소켓 통신
- 언제나휴일
- 무료 동영상 강의
- c언어
- C++
- 프로젝트
- 충남 천안
- 안드로이드 앱 개발
- 표준 입출력
- 강의
- 파이썬
- 소스 코드
- 언제나 휴일
- 알고리즘
- 동영상
- 동영상 강의
- 졸업 작품 소재
- 캡슐화
- Windows Forms
- 유튜브 동영상 강의
- 추천
- 클래스 다이어그램
- 표준 라이브러리 함수
- 원격 제어 프로그램
- 산책하기 좋은 곳
- 실습으로 다지는 c#
- 실습
- c#
- 독립기념관
- Today
- Total
목록2025/01 (72)
프로그래밍 언어 및 기술 [언제나휴일]
이번에는 ToggleButton을 사용하는 간단한 실습을 합시다.먼저 activity_main.xml 파일에 컨트롤을 배치합시다. 최상위 요소는 LinearLayout입니다. 그리고 자식으로 ToggleButton과 TextView를 배치하세요. 이제 MainActivity.java 파일을 편집합시다. MainActivity 클래스에 ToggleButton을 참조할 멤버 필드를 선언하세요. ToggleButton tb;onCreate 메서드에서는 먼저 findViewById 메서드를 호출하여 xml 파일에 배치한 ToggleButton을 참조합니다. tb = (ToggleButton)findViewById(R.id.tb);그리고 클릭 리스너를 설정합니다. 리스너에서는 xml..
이번에는 On, Off 상태를 설정할 때 사용하는 Switch 컨트롤을 이용하는 간단한 앱을 만들어 봅시다.먼저 activity_main.xml에 컨트롤을 배치합시다. 최상위 요소는 LinearLayout을 배치합니다. 그리고 자식으로 Switch와 TextView를 배치하세요. 이제 MainActivity.java 파일을 편집합시다. 먼저 Switch 형식의 멤버 필드를 선언하세요. Switch sw;onCreate 메서드에서 findViewById 메서드를 호출하여 xml에 배치한 Switch를 참조합니다. sw = (Switch)findViewById(R.id.sw);초기 Switch 상태에 따라 TextView를 설정하는 작업을 호출합시다. 이 부분은 별도의 메서드로..
이번에는 여러 개의 항목 중에서 하나를 선택할 때 사용하는 RadioButton을 사용하는 간단한 앱을 만들어 봅시다. 먼저 activity_main.xml 파일에 컨트롤을 배치합시다. 최상위 요소는 LinearLayout을 배치합니다.LinearLayout의 자식으로 두 개의 RadioGroup(혈액형, 성별)과 두 개의 TextView(혈액형, 성별)를 배치하세요.첫 번째 RadioGroup은 혈액형을 선택하기 위함입니다. A, B, O, AB 형을 선택할 수 있게 네 개의 RadioButton을 배치합니다. 초기에 A형을 선택한 상태로 표시하기 위해 checked 속성을 true로 설정하세요.두 번째 RadioGroup은 성별을 선택하기 위함입니다. 여성, 남성을 선택할 수 있게 두 개의 Radio..
이번에는 특정 항목을 선택 여부를 결정할 때 사용하는 CheckBox를 사용하는 간단한 앱을 만들어 봅시다. 여기서 실습할 내용은 두 개의 체크박스를 통해 TextView의 텍스트의 Bold와 Italic 속성을 설정 및 해제하는 것입니다.먼저 최상위 요소로 LinearLayout을 배치하고 두 개의 CheckBox(Bold, Italic)와 하나의 TextView(언제나 휴일)를 배치하세요. 그리고 Java 소스 파일에서 접근할 수 있게 id 속성을 지정하세요.다음은 activity_main.xml의 소스 내용입니다. MainActivity.java 소스 파일의 MainActivity 클래스에 소스 코드를 편집합시다.먼저, xml 파일에서 배치한 CheckBox 두 개와 TextV..
이번에는 사용자가 특정 기능을 수행하고자 할 때 사용하는 Button을 사용하는 간단한 실습을 해 봅시다.최상위 요소에 LinearLayout을 배치하세요. 그리고 EditText, TextView, Button을 자식으로 배치합니다.Button을 누르면 Java 소스 코드로 EditText에 입력한 값을 TextView의 text 속성으로 설정하게 할 것이므로 각 컨트롤에 id를 부여하세요. 먼저 MainActivity.java 파일의 onCreate 메서드에서 xml 파일에서 배치한 Button을 참조하기 위해 findViewById 메서드를 호출합니다.Button btn = (Button)findViewById(R.id.btn);그리고 해당 버튼을 클릭했을 때 수행할 이벤트 핸들..
이번에는 사용자가 문자열을 입력할 때 사용하는 EditText를 사용하는 간단한 실습을 해 봅시다.EditText 에 사용자가 어떤 값을 입력할 것인지 미리 정보를 주고자 한다면 hint 속성을 사용하세요.힌트의 글자색은 textColorHint 속성을 사용합니다.또한 EditText에 입력해야 할 형식이 수일 때는 inputType을 number로 지정합니다.만약 비밀번호를 입력하는 것이라면 inputType을 textPassword를 지정합니다. 언제나휴일 추천 여행 및 산책[눈길 산책] 충남 천안 신불당 아름드리공원
이번에는 기본 컨트롤(위젯) 중에서 텍스트 형태로 정보를 보여주는 TextView 실습을 해 봅시다.실습의 편의를 위해 최상위 요소는 LinearLayout으로 배치하세요.그리고 5개의 TextView를 자식으로 배치합시다.text 속성은 화면에 표시할 내용입니다. textSize, textStyle 등의 속성을 제공하고 있습니다.만약 java 소스 코드에서 접근하고자 한다면 id 속성을 “@+id/[원하는 이름]”형태로 지정하세요. MainActivity.java 소스 파일의 onCreate 메서드에서 activity_main.xml에 배치한 5번째 TextView를 멤버 필드에 참조한 후에 속성을 지정해 봅시다.먼저, findViewById 메서드를 이용하여 xml ..
이번에는 GridLayout을 실습하기로 합시다.GridLayout은 행과 열의 개수를 지정할 수 있습니다. 그리고 자식을 원하는 행과 열을 지정하여 배치할 수 있으며 필요에 의해 여러 개의 행과 여러 개의 열을 차지하게 배치할 수도 있습니다.최상위 요소로 LinearLayout을 배치하고 자식으로 TextView(GridLayout 실습)과 GridLayout을 배치합니다.GridLayout은 4행, 4열로 지정합니다. 이를 위해 columnCount와 rowCount 속성을 설정합니다.그리고 실습 실행화면처럼 8개의 버튼(0~6, GRIDLAYOUT)을 배치합니다. 원하는 행과 열에 배치하려면 layout_column, layout_row 속성을 이용하고 3, 4, 5, 6, GRIDLAYOUT 버튼..
이번에는 TableLayout을 실습을 통해 알아봅시다. TableLayout은 표 형태로 자식 컨트롤을 배치할 수 있습니다.최상위 요소는 LinearLayout이며 자식으로 TextView(TalbeLayout 실습)와 TableLayout으로 배치합니다.그리고 TableLayout의 자식으로 4개의 TableRow를 배치합니다.첫 번째 TableRow에는 TextView(숫자)를 배치합니다.두 번째 TableRow에는 5개의 TextView(0~4)를 배치합니다.세 번째 TableRow에는 5개의 TextView(5~9)를 배치합니다.네 번째 TableRow에는 Button을 배치합니다. ..
안드로이드 RelativeLayout이번에는 자식 컨트롤을 배치할 때 상, 하, 좌, 우, 중앙 등을 선택하여 배치할 수 있는 RelativeLayout을 이용하는 간단한 실습을 해 봅시다. 최상위 요소는 LinearLayout이며 TextView(RelativeLayout 실습)와 RelativeLayout을 자식으로 배치하세요. 그리고 RelativeLayout의 자식으로 5개의 TextView를 상, 하, 좌, 우, 중앙에 배치하세요.layout_alignParentTop, layout_alignParentBottom, layout_alignParentLeft, layout_alignParentRight 속성을 이용하여 상, 하, 좌, 우에 배치할 수 있으며 layout_centerInParent ..
안드로이드 LinearLayout이번에는 자식 컨트롤을 배치할 때 사용하는 Layout 중에 순차적으로 배치하는 LinearLayout을 사용하는 간단한 앱을 작성합시다. 먼저 Empty Activity 형태의 프로젝트를 생성하세요. 그리고 activity_main.xml 파일을 다음처럼 수정하세요. 여러분께서 목적에 따라 직접 입력을 하거나 자동 완성 기능을 사용하세요.LinearLayout에 자식을 배치할 때 위에서 아래로 배치할 때는 orientation 속성을 vertical로 설정합니다.언제나휴일 추천 여행 및 산책충남 천안 쌍용공원
첫 번째 앱 만들기 및 스마트폰에 개발자 옵션 설정하기Android Studio를 실행하여 Start a new Android Studio project를 선택합니다.앱 이름을 입력하고 프로젝트 위치를 설정합니다.자신에 맞는 Devices를 선택합니다.앱의 액티비티를 선택합니다.액티비티 이름을 결정하세요.처음 만들 때 오늘의 팁이 나옵니다. 필요 없으면 Show Tips on Startup 체크 박스를 선택 해제하세요.마법사에 의해 만들어진 주요 파일은 activity_main.xml과 MainActivity.java 파일입니다. xml 파일에는 컨텐츠 뷰에 자식 컨트롤을 배치하는 xml 코드를 작성할 수 있고 java 파일에는 수행할 작업을 작성할 수 있습니다.마법사에 의해 만들어진 MainActivi..
안드로이드 스튜디오 설치안드로이드 개발환경을 구축하는 순서는 다음과 같습니다.1. JDK 다운로드 및 설치2. 안드로이드 Studio 다운로드 및 설치3. 안드로이드 환경 설정4. 안드로이드 SDK 업데이트5. AVD(안드로이드 가상 장치) 만들기안드로이드 Studio는 Download Android Studio 사이트에서 다운로드 받을 수 있습니다.DOWNLOAD ANDROID STUDIO FOR WINDOWS 버튼을 클릭하세요.Download 전에 동의해야 합니다.동의 후에 DOWNLOAD ANDROID STUDIO FOR WINDOWS 버튼을 클릭하세요.다운로드 한 파일을 실행하여 Setup 창에서 Next 버튼을 클릭하세요.Choose Components 에서 Next 버튼을 클릭하세요.설치 항목..
JDK 설치 및 안드로이드 스튜디오 설치안드로이드 개발환경을 구축하는 순서는 다음과 같습니다.1. JDK 다운로드 및 설치2. 안드로이드 Studio 다운로드 및 설치3. 안드로이드 환경 설정4. 안드로이드 SDK 업데이트5. AVD(안드로이드 가상 장치) 만들기JDK는 오라클 기술 네트워크 사이트에서 다운로드 받을 수 있습니다.오라클 기술 네트워크 사이트에서 Java SE를 클릭합니다.JDK 다운로드 버튼을 클릭합니다.Accept License Agreement 를 체크하여 자신의 운영체제에 맞는 파일을 클릭하여 다운로드합니다.다운로드한 파일 실행하여 Next 버튼을 클릭합니다.Custom Setup 창에서 설치 경로를 기억해 두세요.설치 후에 설치 경로를 환경 설정에 추가해야 합니다.대상 폴더 창에서..
제어문, 정사각형, 삼각형, 역삼각형, 다이아몬드 출력 [C언어]알고리즘n:←정수 입력반복(line:0→n)반복(space:0→n-line-1)공백 출력반복(star:0→2*line+1)‘*’ 출력개행반복(line:n-2→n)반복(space:0→n-line-1)공백 출력 반복(star:0→2*line+1)‘*’ 출력개행소스코드//반복문 연습 - 다이아몬드 출력// 입력// 5 - n//출력// * 0- 공백 4, 별1, 개행// *** 1- 공백 3, 별3, 개행 // ***** 2- 공백2, 별5, 개행// ******* 3- 공백1, 별7, 개행 // ********* 4- 공백0,..
제어문, 정사각형, 삼각형, 역삼각형, 다이아몬드 출력 [C언어] 알고리즘n:←출력할 라인 수 입력 반복(line:0→n)—반복(space:0→line)——공백 출력—반복(star:0→2(n-line)-1)——‘*’ 출력—개행소스코드 //반복문 연습 - 역삼각형 출력//입력//5 - n //출력// ********* 0- 공백0, 별9, 개행// ******* 1- 공백1, 별7, 개행 // ***** 2- 공백2, 별5, 개행// *** 3- 공백 3, 별3, 개행// * 4- 공백 4, 별1, 개행 //공백 = line//별 = 2*(n-line)-1//개행=1 #include in..
제어문, 정사각형, 삼각형, 역삼각형, 다이아몬드 출력 [C언어]알고리즘n:←출력할 라인 수 입력 반복(line:0→n)—반복(space:0→(n-line))——공백 출력—반복(star:0→(2line+1))——‘*’ 출력—개행소스코드//반복문 연습 - 삼각형 출력//입력// 5 - n//출력// * 0- 공백 4, 별1, 개행// *** 1- 공백 3, 별3, 개행 // ***** 2- 공백2, 별5, 개행// ******* 3- 공백1, 별7, 개행 // ********* 4- 공백0, 별9, 개행//공백 = n-line//별 = 2*line +1//개행=1#include int..
제어문, 정사각형, 삼각형, 역삼각형, 다이아몬드 출력 [C언어]알고리즘n:←출력할 라인 수 입력반복(i:0→n)—반복(j:0→n)——‘*’출력—개행소스 코드//정사각형 출력// 입력// 5//출력// *****// *****// *****// *****// *****#include int main(void){ int n; int i, j; printf("출력할 라인 수:"); scanf_s("%d", &n);//입력 for (i = 0; i 언제나휴일 추천 여행 및 산책
안녕하세요. 언제나 휴일의 언휴예요.함수만들기 - 합계 구하기, 소수 판별, 소문자 판별, 대문자 판별, 소문자 변환, 대문자 변환자주 사용하는 알고리즘을 함수로 만들어 사용합니다.함수를 만들고 사용하는 것은 많은 연습을 필요합니다.이번에는 기초적인 함수들을 만들어 보는 실습을 해 볼게요.특정 범위 내의 정수 합계를 구하는 함수함수를 만들 때 제일 먼저 해야 할 일은 무엇을 만들어야 하는지 정확히 분석하는 거예요. 이러한 작업은 도메인 분석이라고도 부르죠.함수를 만들 때는 전달해야 할 인자가 무엇이고 어떠한 결과를 나와야 하는지 결정할 수 있어야 합니다.특정 범위 내의 정수 합계를 구하는 함수를 예를 든다면 입력 인자로 특정 범위를 전달해야 할 거예요. 범위의 시작과 범위의 끝을 전달하면 되겠죠. 그리고..
안녕하세요. 언제나휴일의 언휴예요.함수 선언, 함수 정의, 함수 호출 [C언어] 프로그램을 만들다 보면 자주 사용하는 알고리즘이 있어요.이러한 코드는 이름(함수 명), 알고리즘에 필요한 입력 인자(입력 매개변수), 원하는 결과(리턴 타입)를 정하여 알고리즘을 전개하여 함수로 만들 수 있습니다.함수를 만들면 필요할 때 함수를 호출하여 사용할 수 있어요.함수 개요우리는 초등학교부터 함수에 관한 교육을 받아왔어요.블랙 박스에 입력 값을 넣으면 출력 값이 나오는 형태, y = x+2 처럼 방정식 형태, 정의역과 공역의 요소를 매핑하는 형태와 f(x) = x+2 등 다양하게 다루었어요. 함수 정의문C언어의 함수 관련 문법은 크게 함수 정의문, 함수 호출문, 함수 선언문이 있어요.함수 정의문은 함수를 만드는 구문을..
안녕하세요. 언제나휴일의 언휴예요.제어문은 문법이 어려운 것은 아니죠.하지만 막상 문제를 표현하려고 할 때 어떠한 제어문을 어떻게 전개해야 할 지 막막합니다.이는 문법보다는 문제 해결 능력에 관한 것이죠.문제를 해결하기 위해 알고리즘, 자료구조를 비롯한 다양한 경험을 요구합니다.이번에는 다양한 제어문을 연습할 수 있는 다양한 문제를 제시할게요.여러분께서 먼저 해결해 본 후에 코드를 비교해 보길 권할게요.여기에서는 별도의 설명은 생략합니다.두 수를 입력받은 후 작은 수~큰 수 사이의 모든 수의 합을 구하는 프로그램을 작성하시오.#include int main(void){ int a, b; int sum; printf("두 개의 정수 입력:"); scanf_s("%d%d", &a, &b..
안녕하세요. 언제나휴일의 언휴예요.반복적인 작업은 while 혹은 for 문을 사용하세요. [C언어] C언어의 반복문C언어는 세 종류의 반복문을 제공하고 있어요.while(조건 표현) statement;do statement while(조건 표현);for(statement;statement;statement)statement;while 문C언어에서는 특정 조건이 참일 동안 반복하는 구문으로 while 문을 제공하고 있어요.while(표현) statement;while문 소괄호 표현은 참과 거짓을 판별할 수 있는 표현이어야 합니다. 다음은 0에서 10까지 정수의 합계를 계산하는 코드입니다.i를 0으로 초기화하였고 i가 10보다 작거나 같다면 블록({}) 에 있는 구문을 반복합니다.while문도 if 문처럼..
안녕하세요. 언제나 휴일의 언휴예요.값에 따라 수행할 구문을 선택하는 switch case 문 [C언어] 선택문C언어에서는 특정 표현의 값에 따라 구문을 선택하여 수행하는 switch 선택문을 제공하고 있어요.switch(표현){case 상수: [수행 구문] [break]case 상수: [수행 구문] [break]…[default:] [수행구문] [break] }switch 선택문에서 중괄호는 반드시 달아야 합니다. 물론 개발할 때 중괄호를 달지 않으면 문법 오류가 발생하기 때문에 개발할 때 실수할 확률은 지극히 낮겠죠.여러 조건에 따라 수행할 구문을 표현할 때 if 조건문을 사용하면 복잡할 때가 있습니다. 이 때 switch 선택문으로 해결할 수 있는지 고민해 보세요.학점 부여하기로 조건문과 선택문 비..
안녕하세요. 언제나휴일의 언휴예요.조건문 실습 문제 [C언어] 이전 글에서 제시했던 문제 솔루션이예요.1. 두 개의 정수를 입력받은 후에 큰 수를 출력하는 프로그램을 작성하시오.//[언제나 C언어] https://ehpub.co.kr//1. 두 개의 정수를 입력받은 후에 큰 수를 출력하는 프로그램을 작성하시오.#include int main(){ int a = 0, b = 0; printf("두 개의 정수:"); scanf_s("%d %d", &a, &b);//a,b에 두개의 정수를 입력 if (a > b)//조건 a가 b보다 크면 { printf("%d\n", a);//a를 출력 } else//그렇지 않..
안녕하세요. 언제나휴일의 언휴예요.조건문 if else [C언어] C언어에서는 프로그램의 수행 순서를 제어하는 제어문을 제공하고 있어요. 조건에 따라 수행을 결정하는 조건문, 값에 따라 수행할 구문을 선택하는 선택문, 특정 조건이 참일 때 반복하는 반복문과 원하는 영역으로 점핑하는 분기문이 있어요. 프로그래밍 언어에서 제어문은 문법을 이해하는 것은 어렵지 않아요.하지만 원하는 문제를 해결하기 위해 어떻게 제어문을 표현해야 할 지 판단하는 것은 많은 경험을 통해 얻어나가야 합니다.프로그래밍 언어를 학습하는 단계에서 제어문을 이용하여 문제를 해결하는 것이 어렵다고 두려워하지 마세요.경험을 통해 극복할 수 있으며 조금씩 해결할 때마다 희열을 느낄 수도 있을 거예요.C언어의 제어문 중에 조건문을 먼저 살펴봅시다..
안녕하세요. 언제나 휴일의 언휴예요.대입 연산의 왼쪽(좌항)에 오는 표현을 l-value [C언어]대입 연산자와 l-value복합 대입 연산자1. 대입 연산자와 l-value프로그래밍에서 변수에 원하는 값을 설정할 때 대입 연산자를 사용하죠.당연히 대입 연산자 왼쪽(좌항)에는 상수 표현은 올 수 없어요.정수형 변수 i가 있을 때 i+3=7; 표현은 문법적 오류가 발생해요.i+3의 연산 결과는 상수이며 l-value로 사용할 수 없어요.#include int main(){ int i = 0;//초기화 i = 7;//변수 i에 7을 설정 i + 3 = 7;//i+3에 7을 설정. i+3의 연산 결과는 상수 return 0;} 위 코드를 빌드하였을 때 나오는 결과를 보면 l-value로 ..
안녕하세요. 언제나 휴일에 언휴예요.비트 자리 이동 연산, 쉬프트 연산 [C언어] 이번 강의는 비트 자리 이동 연산, 쉬프트 연산을 알아볼게요.1. 왼쪽 쉬프트 >1. 왼쪽 쉬프트 왼쪽 쉬프트 연산은 1자리를 이동할 때 2로 곱한 결과와 같습니다. 다음의 소스 코드는 부호 없는 정수 3을 4자리 왼쪽으로 자리 이동 시키는 소스 코드입니다.그리고 부호 있는 정수 -3을 4자리 왼쪽으로 자리 이동 시키는 소스 코드입니다.#include int main(){ unsigned u1 = 3, u2; u2 = u1 실행 결과는 다음과 같습니다.16진수: 3 3010진수: 3 4816진수: FFFFFFFD FFFFFFD010진수: -3 -48결과를 보면 부호 없는 정수는 원래 값 3에 2의 4승인 16..
안녕하세요. 언제나 휴일에 언휴예요.mask를 이용한 암호화 및 이진수 출력[C언어]이번 강의는 비트 연산을 이용한 mask입니다.^ mask를 이용하여 암호화하는 것과 & mask를 이용하여 이진수를 출력하는 실습이예요.1.^mask를 이용한 암호화2.&mask를 이용한 이진수 출력1. ^mask를 이용한 암호화비트 연산 이용하면 간단한 대칭형 암호화를 할 수 있어요.대칭형 암호화는 암호화할 때와 복호화할 때 같은 키를 이용하는 암호화를 말합니다.다음의 코드는 ^연산을 이용하여 평문을 암호화하고 복호화하는 예제입니다.#include int main(){ int pd = 0x12345678; int key = 0x2345873a; int sec = pd ^ key; int data ..
안녕하세요. 언제나 휴일에 언휴예요.비트 연산 & | ^ ~ [C언어] 이번 강의는 비트 연산입니다. 비트 연산은 같은 자리의 비트끼리 논리 연산을 수행합니다.그리고 C언어의 비트 연산의 피 연산자는 정수 형식이예요.1. 비트 연산 & | ^ ~2. 비트 and mask1. 비트 연산 & | ^ ~예를 들어 정수 6과 5의 비트 연산을 알아봅시다.정수 6은 이진수로 0000 0000 0000 0110이고 5는 0000 0000 0000 0101 입니다.만약 비트&(and)를 수행하면 다음 그림처럼 끝에서 세 번째 자리만 모두 1입니다. 이진수로 0000 0000 0000 0100입니다.따라서 6&5의 결과는 4입니다.만약 비트|(or)를 수행하면 다음 그림처럼 끝에서 세 자리는 둘 중 하나는 1입니다.이..
안녕하세요. 언제나 휴일에 언휴예요.비교 연산 [C언어] 이번 강의는 비교 연산입니다.1. 비교 연산2. 비교 연산에서 주의할 점1. 비교 연산비교 연산은 연산 기호 및 하는 일이 직관적입니다. 기본적인 비교 연산은 어려움이 없다는 것이죠.#include //표준 입출력 헤더int main(){ printf("%d\n", 1 2); printf("%d\n", 1 >= 2); return 0;}비교 연산의 연산 결과도 참이면 1, 거짓이면 0입니다.1101002. 비교 연산에서 주의할 점비교 연산을 이용하여 세 가지 이상의 값을 비교할 때는 논리 연산을 이용하세요. 수학에서 2C언어에서는 연산을 하나씩 수행합니다.22결국 0#include //표준 입출력 헤더int main(){ ..