본문 바로가기

개발

컴퓨터 프로그래밍 설계 과제#4_HW01 #include #include #include int main(void) { char **name; char *temp; int test_case, i, j; int check_flag=0; // 1이면 동일한 문자열이 있음, 0이면 없음 scanf("%d", &test_case); fflush(stdin); name = (char **)malloc((test_case)*4); // String의 주소값 배열 할당 //문자 배열 5개씩 동적할당 for (i=0 ; i 더보기
자바스크립트(JavaScript)란? 자바스크립트를 공부하기에 앞서 자바스크립트라는 언어는 어떤 언어이며, 다룰 수 있다면 어떠한 이점이 있는지 정리해보겠다. 소개 자바스크립트는 웹 브라우저에서 동작하는 스크립트 언어이다. 이전 까지는 웹페이지 제작에 있어 동적인 구동 예를들어 로그인 알림이나 에러표현 메세지 박스 같은 부분을 위하여 사용된 다소 보조적인 기능을 수행하기 위한 용도로 사용된 언어였다. 하지만 시간이 지나면서 웹 아키텍처에도 여러가지 크고 작은 변화가 일어났다. 과거에 서버에서 담당하던 역할들의 상당 부분이 웹 브라우저로 이동하였고, 이 변화의 중심에는 자바스크립트라는 언어가 축이 되었다. 이러한 동향의 맞게 개발자들은 자바스크립트에 대한 관심이 높아졌으며 Stack Overflow에서는 2013년부터 2016년까지 진행한 설.. 더보기
JAVA 기반 TCP/IP 다중 채팅 프로그램 자바(JAVA)로 작성한 콘솔 기반 TCP/IP 다중 채팅 프로그램 프로젝트 구조 소스코드 ChatClient.javaimport java.net.*; import java.io.*; import java.util.*; public class ChatClient { String ipAddress; static final int port=6000; Socket client=null; BufferedReader read; PrintWriter oos; BufferedReader ois; String sendData; String receiveData; String user_id; ReceiveDataThread rt; boolean endflag=false; public ChatClient(String id.. 더보기
메모리의 동적 할당 ◇ 메모리의 동적 할당 함수의 반환형은 void형 포인터고 인자는 정수가 들어간다. 예시로 int main(void){void * ptr1 = malloc(4); // 4바이트가 힙 영역에 할당void * ptr2 = malloc(12); // 12바이트가 힙 영역에 할당 . . . . free(ptr1); // ptr1이 가리키는 4바이트 메모리 공간 해제free(ptr2); // ptr2이 가리키는 4바이트 메모리 공간 해제 . . . . } 다음과 같은 소스코드에서 malloc함수의 활용을 확인해보자. malloc(4);malloc(12); 함수는 힙 영역위의 메모리 공간에 4바이트 만큼의 공간을 확보하고 확보된 메모리 공간의 주소값을 반환한다. 힙 영역위의 메모리 공간에 12바이트 만큼의 공간을 .. 더보기
함수 포인터 ◇ 함수 포인터의 이해 변수만 메모리 공간에 저장되는 것이 아니다. 프로그램의 실행의 흐름을 구성하는 함수들도 바이너리 형태로 메모리 공간에 저장되어서 호출 시 실행이된다. 이렇게 메모리상에 저장된 함수의 주소 값을 저장하는 포인터 변수가 '함수 포인터 변수'이다. 배열의 이름이 배열의 시작 주소값을 의미하듯, 함수의 이름도 함수가 저장된 메모리 공간의 주소값을 의미한다. 이러한 함수의 주소 값 저장을 위한 포인터 변수를 별도로 선언할 수 있으며, 이러한 용도로 선언된 포인터 변수를 가리켜 '함수 포인터 변수'라 한다. ◇ 함수 포인터 변수의 선언 함수 int SimpleFunc(int num) { . . . . } 위 함수의 반환형과 매개변수 선언은 각각 다음과 같다. · 반환형 int · 매개변수 선.. 더보기
컴퓨터 프로그래밍 설계 과제#3_HW03 #include #include #include int main(void) { float f_num = 0.0f; int arr[4]; int binary_arr[32] = {0,}; //배열을 0으로 초기화한다. int test_num = 0; unsigned char *ucp; int iCnt; int i=0; int j=0; while(1) { for(i=0 ; i 더보기
컴퓨터 프로그래밍 설계 과제#3_HW02 #include #include int main(void){ int sign = 0; double decimal_num = 0.0; double abs_decimal_num = 0.0; while(1){ //printf("Enter a fixed-point decimal number (0 for exit) : "); scanf("%lf", &decimal_num); fflush(stdin); //버퍼 비우기 sign = (decimal_num >= 0.0 ? 0 : 1); //0이면 양수, 1이면 음수 abs_decimal_num = (decimal_num > 0.0 ? decimal_num : -decimal_num); if(decimal_num==0.0){ break; } if( abs_decimal.. 더보기
컴퓨터 프로그래밍 설계 과제#3_HW01 #include #include #include double getAngle(int hour, int min); void getStraightTime(int hour); int main(void){ int hour = 0, minute = 0; while(1){ printf("Enter two integer numbers (hour[0~11] & minute[0~59]): "); scanf("%d %d", &hour, &minute); fflush(stdin); //버퍼 비우기 if( hour==0 && minute==0){ break; } if( !((0 더보기