일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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#
- 언제나 휴일
- 안드로이드 앱 개발
- 충남 천안
- 캡슐화
- c#
- 소스 코드
- 알고리즘
- 강의
- 표준 입출력
- 동영상 강의
- 독립기념관
- 동영상
- Windows Forms
- 클래스 다이어그램
- c언어
- 산책하기 좋은 곳
- 파이썬
- Today
- Total
목록2025/01/08 (20)
프로그래밍 언어 및 기술 [언제나휴일]
[C언어 소스] 문자열 길이를 계산하는 함수 만들기알고리즘문자열 길이 구하기(str:문자열 시작 위치)cnt:=0반복(str[cnt]가 참인 문자) cnt 1 증가cnt 반환 소스 코드//문자열 길이 구하는 함수 만들기//참고 에 strlen 함수가 있습니다.#include int mystrlen(const char *str);int main(void){ char name[100] = "Hello World"; printf("%s\n", name); printf("길이: %d\n", mystrlen(name)); return 0;}int mystrlen(const char *str){ int cnt; //str[cnt]가 거짓 문자(종료 문자, '\0')가 나올 때까..
n 개의 정수를 표현하기 가장 적합한 자료 형식은 정수 형식을 원소로 하는 배열이겠죠.n을 10으로 하드 코딩한다면 다음과 같습니다.int arr[10];제일 먼저 함수 이름을 결정합시다.홀수 합계를 구하는 것이므로 GetOddSum 이라고 정할게요.n개의 정수 중에 홀수의 합계를 구하는 함수의 함수 원형을 정해봅시다.C언어에서 배열 이름은 할당한 메모리 주소입니다. 해당 주소에 원소 형식을 사용할 것이므로 원소 형식 포인터로 생각할 수 있어요.그리고 배열의 크기를 전달해야겠죠.따라서 입력 매개변수는 2개로 int *base, int size 정도면 적당하겠네요.*원소 개수가 음수가 올 수 없다는 것을 고려한다면 unsigned 은 size_t로 표현할 수도 있어요.*함수에서는 결과로 홀수의 합계를 반환..
알고리즘n:←높이 입력반복(space:1→(n-1)) 공백 출력‘*’출력개행 출력반복(line:1→n-2) 반복(space:1→n-line-1) 공백 출력 ‘*’출력 반복(space:1→2line-1) 공백 출력 ‘*’ 출력 개행반복(star:1→(2n-1)) ‘*’출력개행소스코드//반복문 연습 - 속이 빈 삼각형//입력//5 - n//출력// * 공백 4, 별1, 개행// * * 1- 공백 3, 별1, 공백1,별1, 개행 // * * 2- 공백 2, 별1, 공백3,별1, 개행// * * 3- 공백 1, 별1, 공백5,별..
알고리즘n:←산의 높이 입력반복(line:1→2n) 조건(line 반복(space:1→4n-1-line) 공백 출력 반복(star:1→2line-1) ‘*’ 출력 개행아니면 반복(space:1→2n-line) 공백 출력 반복(start:1→2(line-n)) ‘*’ 출력 반복(space:1→2(2n-line)) 공백 출력 반복(star:1→(2n-line-1)) ‘*’ 출력 반복(space:1→2(2n-line)) 공백 출력 반복(start:1→2(line-n)) ‘*’ 출력 개행소스코드//반복문 연습 - 산봉우..
[C언어 소스] 숫자 피라미드다음처럼 출력할 라인 수를 입력하여 정수 피라미드를 출력하시오. 라인 수 입력Loop(i:1->line) Loop(space:0->line-1) printf space Loop(num:1->i) print num Loop(num:i-1->1) print num#include int main(){ int line = 0; int num = 0, i = 0, space = 0; printf("정수:"); scanf_s("%d", &line); for (i = 1; i 0; num--) { printf("%d", num); } putchar('..
Queue를 이용한 스케쥴러 시뮬레이션 [C++]안녕하세요. 언제나 휴일에 언휴예요.이번 실습은 Queue를 이용한 스케쥴러 시뮬레이션입니다.스케쥴러는 운영체제의 핵심 개체로 누가 CPU를 점유하여 사용할 것인지를 판단하는 역할을 수행합니다.여기에서는 대기 큐를 이용하는 라운드 로빈 방식의 스케쥴러를 코드로 표현해 볼게요.보다 자세한 사항은 자료구조와 알조리즘 C++ 3.5 큐를 이용한 스케쥴러 시뮬레이션을 참고하세요.EHProcess.H#include using namespace std;class EHProcess{ string pname; //프로그램 이름 const int tjob; //전체 작업량 const int cjob; //cpu 점유 시 수행가능 최대 작업량 int n..
파서 트리를 이용한 계산기 [C++] Part1 파서 트리를 이용한 계산기 [C++] Part2안녕하세요. 언제나 휴일에 언휴예요.이번에는 파서 트리를 이용한 계산기를 구현하는 실습이예요.23+8*9-7 과 같은 수식을 계산하면 8*9를 먼저 계산하고 23+(8*9)-7 순으로 계산합니다.이처럼 수식을 연산자 우선 순위에 맞게 계산하기 위해 여기에서는 파서 트리를 이용할 거예요.파서 트리를 이용한 계산기에 관한 이론적인 내용은 자료구조와 알고리즘 C++ 9.3 수식 파서 트리를 참고하세요.#include #include using namespace std;class Calculator{ string expr;public: Calculator(string expr) { ..
함수 개체, 회원 및 회원 컬렉션 구현[C++]안녕하세요. 언제나 휴일에 언휴예요.이번에는 함수 개체 실습이예요.함수 개체는 특정 형식 개체를 함수처럼 호출 가능한 개체를 말합니다.이를 위해 해당 형식에는 함수 호출 연산자를 중복 정의합니다.이 외에도 이번 실습에는 개체 출력자, 인덱스 연산자 중복 정의를 구현하는 부분도 있습니다.다음은 함수 호출 연산자를 중복 정의한 간단한 예제입니다.class FunObject{public: int operator()(int a, int b) { return a + b; }};int main(){ FunObject fobj; int re = fobj(3,4); cout 위 예에서 FunObject 클래스에는 함수 호출 연산..
개체 출력자 실습 – 회원 클래스 및 쉬프트 연산자 중복 정의 [C++]안녕하세요. 언제나 휴일에 언휴예요.이번 실습에서는 개체 출력자를 구현합니다.C++에서 출력을 위해 ostream 형식을 정의하고 있어요. cout이 대표적인 ostream 형식 개체죠.개체 출력자는 ostream 형식 개체를 이용하여 개체 정보를 출력할 수 있게 정의하는 코드 집합을 개체 출력자라 부릅니다.이번 실습에서는 회원 클래스를 정의하고 개체 출력자를 정의할 거예요.기본 형식처럼 회원 개체 정보를 ostream 형식 개체로 출력할 수 있게 구현하는 실습입니다./* https://ehpub.co.kr C++ 예제 - 언제나 휴일 개체 출력자 - 회원 클래스*/#include #include using namespace..
다형성 실습 – 오케스트라, 음악가, 피아니스트, 드러머 [C++]안녕하세요. 언제나 휴일에 언휴예요.이번에는 다형성 실습이예요.다형성은 하나의 이름으로 보여도 실제 형태는 다양할 수 있는 성질입니다.기반 형식 포인터 변수로 파생 형식 개체를 사용할 수 있는 특징을 형식의 다형성이라고 부릅니다.기반 형식의 가상 메서드를 파생 형식에서 재정의할 수 있습니다.이 때 기반 형식 포인터 변수로 해당 메서드를 호출하면 실제 개체 형식에 정의한 메서드가 동작합니다.이러한 특징을 메서드의 다형성이라고 부릅니다.이러한 다형성에 관한 실습을 오케스트라(음악가, 피아니스트, 드러머) 소재로 진행합니다./* https://ehpub.co.kr C++ 예제 - 언제나 휴일 다형성 실습*/#include using na..
상품과 할인 상품 – 상속 실습 [C++] 안녕하세요. 언제나 휴일에 언휴예요.이번에는 상속 실습을 해 볼 거예요.실습 소재는 상품과 할인 상품 클래스를 정의합니다.클래스 다이어그램에서 삼각형과 실선으로 표현하는 관계를 일반화 관계라고 불러요.일반화 관계는 기반 형식(Product)과 파생 형식(Discount Product) 사이의 관계입니다.일반화 관계에서 파생 형식은 기반 형식의 멤버를 상속받는 특징을 갖습니다./* https://ehpub.co.kr C++ 예제 - 언제나 휴일 상속 실습 - 상품과 할인 상품 클래스 정의하기*/#include #include using namespace std;class Product{ string name; int price;public: ..
회원 클래스 정의 – 정적 멤버 캡슐화 [C++]안녕하세요. 언제나 휴일에 언휴예요.이번 예제는 정적 멤버 캡슐화를 다룰 거예요.실습은 회원 클래스를 정의합니다.클래스 다이어그램에서 밑줄로 표시한 멤버가 정적 멤버입니다.가장 최근에 부여한 회원 번호(lastnum)과 현재까지 생성한 회원 수를 반환하는 메세드(GetMemberCount)를 캡슐화할 거예요.이 두 개의 멤버는 개체의 멤버가 아닌 형식의 멤버로 형식 이름으로 접근할 수 있어요./* https://ehpub.co.kr C++ 예제 - 언제나 휴일 회원 클래스 정의 - 정적 멤버 필드 캡슐화*/#include #include using namespace std;class Member{ static int last_num; co..
복소수 클래스 정의 – 캡슐화 실습 [C++]안녕하세요. 언제나 휴일에 언휴예요.이번 강의는 캡슐화 실습으로 복소수 클래스를 정의할 거예요. 실수부와 허수부를 멤버 필드로 갖고 있습니다. 그리고 실수부와 허수부의 값을 접근하는 접근자 메서드와 설정하는 설정자 메서드를 갖습니다. 마지막으로 복소수 개체 정보를 문자열로 반환하는 메서드를 멤버로 갖습니다. #include #include using namespace std;class Complex{ double image; double real;public: Complex(double real = 0, double image = 0) { SetReal(real); SetImage(image); } vo..
CSV 파일 입출력 – StreamReader 클래스 및 StreamWriter 클래스 사용안녕하세요. 언제나 휴일에 언휴예요.이번 강의에서는 데이터 분석에서 많이 사용하는 “CSV” 포멧의 파일 입출력을 알아볼게요.CSV 파일은 데이터를 콤마를 기준으로 열거합니다.이를 엑셀 등의 프로그램으로 보면 테이블 형태로 확인할 수가 있죠.여러분들이 CSV 파일 포멧으로 데이터를 기록할 때 주의할 점은 데이터 내용에 콤마가 있다면 다른 문자로 변경한 후에 저장하세요. 만약 이를 유지하길 원한다면 다른 포멧의 파일 입출력을 선택하세요.실습은 동영상 강의와 소스 코드를 참고하세요.이번 실습에서는 StreamReader 클래스와 StreamWtirer 클래스를 이용하여 입출력합니다.Book.csnamespace Str..
런타임에 라이브러리 로딩하여 사용하기 – .NET 리플렉션안녕하세요. 언제나 휴일에 언휴예요.1. 런타임에 라이브러리 로딩? 리플렉션! 이번 실습은 프로그램이 동작하는 런타임에 라이브러리를 로딩하여 사용하는 것을 해 볼 거예요..NET에서는 리플렉션이라는 기술을 제공하고 있으며 이를 이용하여 런타임에 라이브러리를 로딩하여 사용합니다.런타임에 라이브러리를 로딩하여 사용한다는 것은 무슨 의미일까요?예를 들어 미디어 플레이어 응용과 코덱 라이브러리는 배포자가 다를 수 있습니다.미디어 플레이어 응용에서 미디어를 선택하여 재생 버튼을 누르면 미디어의 압축 형태에 맞는 코덱 라이브러리를 로딩하여 재생합니다.만약 코덱 라이브러리가 없으면 코덱이 없다고 메시지 창을 띄워줍니다.이처럼 동작하려면 미디어 플레이어 응용은 ..
[실습으로 다지는 C#] 학생 키우기 – 학생 구현 및 제어 안녕하세요. 언제나 휴일, 언휴예요.이번 실습할 시나리오는 학생 개체 1명을 생성한 후에 메뉴를 통해 제어하는 프로그램입니다.다음은 실습 시나리오입니다.초기화(Init) 학생 개체 생성(1명)사용자와 상호작용(Run) F1: 공부하기 F2: 강의받기 F3: 잠자기 F4: 휴식하기 F5: 음료마시기 F6: 노래하기 F7: 학생 상태 출력 다음은 정의할 학생 클래스 다이어그램입니다.학생 형식의 멤버 필드입니다.pn: 주민번호(순차부여)name: 이름(생성 시 전달)iq: 아이큐(0~200, 초기 100)hp: 체력(0~200, 초기 100)stress: 스트레스(0~100, 초기 0)scnt: 연속으로 공..
이번 강의에서는 콘솔 응용에서 메뉴를 통해 프로그램의 흐름을 제어하는 실습을 해 볼 거예요.콘솔 응용에서 사용자와 상호 작용을 담당하는 형식을 Application이라고 정의할게요.class Application{}Application 형식 개체는 하나만 존재하는 것이 맞겠죠. 단일체 패턴을 적용하기로 할게요. 생성자의 접근 지정을 디폴트 값(private)으로 정하여 클래스 외부에서 개체 생성을 하지 못하게 막습니다. 그리고 정적 멤버로 클래스 외부에서 정적 개체를 참조할 수 있게 가져오기 속성을 제공합니다. 단일체는 정적 생성자에서 만드는 것을 추천합니다. 정적 생성자는 해당 형식을 사용하기 전에 수행하고 단 한 번만 수행하는 것을 보장하기 때문에 단일체를 생성하는 위치로 적당합니다. class..
이번 강의는 콘솔 글자 색을 바꾸는 실습입니다. 별다른 알고리즘은 없고 필요한 몇 개의 기술을 사용할 거예요. 기술 사용 노하우를 들여다 보고 따라해 보는 것이라 크게 고민을 하실 필요는 없어요. 콘솔의 글자 색을 바꾸기 위해 Windows API 함수를 사용할 수 있어요.- 콘솔의 글자 색을 바꾸는 함수WINBASEAPI BOOL WINAPI SetConsoleTextAttribute(_In_ HANDLE hConsoleOutput,_In_ WORD wAttributes); - 표준 핸들을 얻어오는 함수 WINBASEAPI HANDLE WINAPI GetStdHandle(_In_ DWORD nStdHandle); - 표준 출력 핸들 상수 #define STD_OUTPUT_HANDL..
[실습으로 다지는 C#]택배 요금 계산 시뮬레이션 이번 강의에서는 택배 요금을 계산하는 시뮬레이션을 만들어 봅시다. City, Parcel, Application 세 개의 클래스로 구성하고 있습니다. City 클래스는 도시 이름과 (기준 도시에서) 상대적 거리를 멤버로 갖습니다. 그리고 다른 도시와의 거리를 계산하는 메서드를 제공합니다. Parcel 클래스는 기준 요금과 무게를 멤버로 갖고 요금을 계산하는 메서드를 제공합니다. Application은 택배 시스템 시뮬레이션으로 하나의 개체만 허용하는 단일체 패턴을 적용할게요. 단일체로 표현하기 위해 정적 멤버로 단일체를 참조하는 멤버 필드를 추가합니다. 그리고 정적 생성자에서 단일체를 생성합니다. 정적 생성자는 해당 형식을 사용하기 전에 동작하는 ..
[실습으로 다지는 C#] 실현 관계(Realization) 실습 이번 강의는 실현(Realization) 관계 실습입니다. 실현 관계는 기능을 약속한 형식과 이를 구체적으로 구현한 형식 사이의 관계입니다. 결국 인터페이스와 인터페이스에 약속한 기능을 구현한 형식 사이의 관계입니다.기능을 약속한 형식과 약속한 기능을 구체적으로 구현한 형식 사이의 관계 이러한 실현 관계로 표현하였을 때 가장 큰 장점은 같은 방법으로 사용할 수 있다는 것입니다. 다음은 이번 실습에서 표현할 클래스 다이어그램입니다. 클래스 다이어그램에서 IStudy 인터페이스와 Student는 실현 관계입니다. 클래스 다이어그램에서 IStudy 인터페이스와 Gorillar도 실현 관계입니다. 클래스 다이어그램을 보면서 코드로 표현해 보세요. ..