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

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

제1절 개요

1. 데이터 분석 도입의 성공요소

 - Question First 방식으로 접근

 - 선택과 집중

 - 자동화된 분석을 업무 프로세스에 내재화


제2절 분석기회 발굴

1. 비즈니스 모델 분석을 통한 톱다운 접근 방식

 1) 비즈니스 모델 이해

  - 비즈니스 파악

  - 고객니즈 파악 : 재무적가치, 기능적가치, 무형의가치, 감성의가치

  - 니즈 파악 : 경쟁사 선점 영역, 자사선점영역, 공통경쟁영역,미충족 고객니즈

  - 경쟁요인 선택 및 제공가치수준 설정

 2) 비즈니스 모델 상세화

  - 기업의 전략테마,실행활동 간 관계분석을 위한 도구로 Activity System Map를 사용하고 

    비즈니스 운영상세 시나리오는 Causal Loop Diagram을 사용

  - 선택 : 정책, 자산 ,거버넌스

  - 결과 : 민감한 결과 , 견고한 결과

 3) 분석유즈 케이스 정의

  - 분석유즈케이스 발굴 -> 분석유즈케이스 정의 -> 분석평가


2. 대상 프로세스 선점,분석을 통한 보텀업 경로 접근 방식

 1) 프로세스 분류

 2) 프로세스 흐름분석

 3) 분석요건 식별

 4) 분석요건 정의


3. 분석 유즈 케이스 벤치마킹을 통한 발굴

[출처] 3.1 분석 과제 정의|작성자 June




블로그 이미지

saylin

,
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

#include <stdio.h>

 

int main(void)

{

                  int num1=10, num2=20, num3=30;

 

                  int* arr[3]={&num1, &num2, &num3};

 


 

                  // 표현은 같은 표현

                  printf("%d \n", arr[0]);

                  printf("%d \n", *arr);

                 

                  //

                  printf("%d \n\n", arr);

                 

                  // 해당 주소들이 저장하고 있는 값을 출력

                  printf("%d \n", *arr[0]);

                  printf("%d \n", *(arr[1]));

                  printf("%d \n\n", *arr[2]);

                 

                  // 표현은 같은 표현

                  printf("%d \n", arr1[0]);

                  printf("%d \n", *arr1);

 

                  //

                  printf("%d \n\n", arr1);

                 

                  // 해당 주소들이 저장하고 있는 값을 출력, *arr1[0], 컴파일 되지만 실행 에러.

                  printf("%s \n", arr1[0]);          

                  printf("%s \n", arr1[1]);

                  printf("%s \n", arr1[2]);


 

                  // 

                  printf("%s \n", *arr1);

 


                  scanf("%d", &num1);


                  return 0;

}


#include <stdio.h>

 

int main(void)

{

                  int num1=10, num2=20, num3=30;

 

                  // 배열 이름 = 배열의  번째 요소 주소값

                  //---------------------------------------------------

                  // 포인터 (배열변수배열에 주소값을 저장

                  // arr이라는 배열 변수

 

                  // 포인터 배열.

                  int* arr[3]={&num1, &num2, &num3};


                  // 포인터 배열.

                      char a = 'A';

 

                      char* arr1[4] = {

                                                     "Fervent-lecture",

                                                     "TCP/IP",

                                                     "Socket Programming",

                                                     &a

                      };

 

                  //---------------------------------------------------

                  // 주소(arr[0]) 가리키는 값을 참조(*)

                  printf("%d \n", *arr[0]);

                  printf("%d \n", *arr[1]);

                  printf("%d \n\n", *arr[2]);

 

                  // *arr, arr[0] 동일한 표현  번째 요소 주소 

                  //---------------------------------------------------

                  printf("%d \n", *(*arr));

                  printf("%d \n", *arr);

                  printf("%d \n", &arr);

                  printf("%d \n\n", arr);

 

                  //---------------------------------------------------

                  printf("%d \n", &num1);

                  printf("%d \n", &num2);

                  printf("%d \n\n", &num3);

                 

                  printf("%d \n", arr[0]);

                  printf("%d \n", arr[1]);

                  printf("%d \n\n", arr[2]);

                  //---------------------------------------------------

 

                  //---------------------------------------------------

                  // *arr1[0], 컴파일 되지만 실행  에러.


                  // %d, %c  값을 받는 서식 문자이지만,


                  // %s  주소를 받는 서식 문자이므로,

                  // %s  값을 대입하면 에러가 발생한다.

 

                  printf("%s \n", arr1[0]);

                  printf("%s \n", arr1[1]);

                  printf("%s \n", arr1[2]);

                  printf("%s \n", *arr1);

                  //---------------------------------------------------


          // 즉, 올바른 서식 문자를 사용해야 제대로 출력된다.


          // 문자열이 아닌 문자 '값'의 경우, * 연산자를 사용해서 간접 참조한다는 것을 알려줘야 한다.


          printf("%s \n", arr1[3]);

          printf("%c \n\n", *arr1[3]);

                  //---------------------------------------------------

                  // C++의 system("pause");

                  scanf("%d", &num1);

                  return 0;

}




 





'language > C|C++' 카테고리의 다른 글

C언어 정리 2  (0) 2016.08.08
typedef  (0) 2016.08.06
FILE* fopen  (0) 2016.07.26
문자와 문자열 처리 함수  (0) 2016.07.25
데이터 상수화, 포인터 상수화  (0) 2016.07.21
블로그 이미지

saylin

,

C언어 정리 2

language/C|C++ 2016. 8. 8. 00:00
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

문자열 변수의 특징과 null 문자에 대한 이해


배열을 이용한 문자열 변수의 생성


char str[6] = "Hello";


문자열 길이보다 하나 더 길게 배열을 할당하는 이유는 문자열의 끝에 null 문자가 자동으로 삽입되기 때문이다.


null 문자는 문자열의 끝을 의미하고, '\0'은 null 문자를 의미한다. 

null 문자는 아스키 코드값 0에 해당한다.


null 문자가 포함되어 있지 않은 문자열은 문자열이 아니라 단순히 문자 배열이다.


char arr1[] = {'a', 'b', 'c'};           (이는 문자 배열)

char arr2[] = {'a', 'b', 'c', '\0'};    (이는 문자열)



포인터에 대한 이해


포인터는 메모리의 주소 값을 저장하기 위한 변수.


직접 접근(Direct Access) 과 간접 접근(Indirect Access)


포인터 변수 pA 앞에 * 연산자를 붙이면 포인터가 가리키는 메모리 공간에 존재하는 값을 참조한다는 뜻.

즉, pA가 변수 a의 주소값을 가리키고 있다면 a==*pA


포인터는 가급적 선언과 동시에 초기화를 시켜주는 것이 좋다.



포인터와 배열의 관계


배열의 이름도 포인터다. 단, 배열은 포인터 변수와는 달리 주소 값을 바꿀 수 없는 상수다.

따라서 배열 이름을 '상수 포인터'라고 한다.


배열 이름은 첫 번째 요소의 주소 값을 나타낸다.



포인터 연산


포인터는 제한된 형태의 연산이 가능하다. 즉, 포인터 연산은 포인터 값을 증가 혹은 감소시키는 연산만 가능하다.


*int 타입 포인터 변수 값을 1 증가시키면(++pA 혹은 pA++) 4 증가함과 동시에 증가된 위치의 주소값이 저장된다.

*char 타입 포인터 변수 값을 1 증가시키면(위와 마찬가지로) 1이 증가함과 동시에 증가된 위치의 주소값이 저장된다.


즉, 포인터 값을 1 증가 혹은 감소시키면 데이터의 자료형 크기만큼 증가 혹은 감소하며, 변경된 위치의 주소값이 저장된다.



arr[i] == *(arr+i)


포인터 arr이 가리키는 곳에서 i칸 건너편에 있는 요소의 값을 참조하라는 의미. 이 때, arr이 가리키는 곳은 고정되어 있다.

따라서, *(arr+i)는 arr[i]와 같이 사용할 수 있다.



#include <stdio.h>

 

int main(void)

{

                  int arr[3]={11, 22, 33};


      // int * ptr=&arr[0];  같은 문장

                  int * ptr=arr;

 

                  printf("%d %d %d \n", *ptr, *(ptr+1), *(ptr+2));

      

// ptr

                  printf("%d ", *ptr);  ptr++;

                  printf("%d ", *ptr);  ptr++;


                  printf("%d ", *ptr);  ptr--;

                  printf("%d ", *ptr);  ptr--;

                  printf("%d ", *ptr);  printf("\n");           

                  return 0;

}



문자열 상수를 가리키는 포인터


char str1[5] = "abcd";

char *str2 = "ABCD";


배열 str1이 저장하고 있는 문자열은 변수가 된다.

포인터 str2는 문자열 상수 "ABCD"를 가리킨다.


문자열 상수는 메모리 공간에 저장이 되면 그 순간에 문자열 상수의 주소 값을 반환한다.

따라서, char *str2 = "ABCD";의 경우와 같이 주소 값이 아닌 문자열 상수를 전달해도 이 문장은 성립한다.


똑같은 문자열을 선언하면 (문자열 상수는) 한번만 메모리 공간에 할당된다.


char *str1 = "ABCD";

char *str2 = "ABCD";


문자열 상수 "ABCD"는 동일한 메모리 공간에 할당되고, 따라서 str1, str2는 동일한 주소 값을 가리키게 된다.

이는 컴파일러가 메모리를 효율적으로 사용하기 위해 최적화(optimization) 과정을 거치기 때문이다.



포인터 배열


포인터 배열은 메모리 주소값을 저장할 수 있는, 즉 포인터를 요소로 지니는 배열이다.


int *arr1[10];


char* arr[3] = {

"Fervent-lecture", 

"TCP/IP",

"Socket Programming"

};


문자열 상수가 메모리 공간에 할당되고, 포인터 배열 arr은 문자열 상수의 주소 값을 받아 초기화된다.

이를 문자열 배열(char형 포인터 배열)이라고 표현하고, 여러 개의 문자열을 저장할 수 있는 특징을 갖는다.






'language > C|C++' 카테고리의 다른 글

포인터 배열과 문자열 배열  (0) 2016.08.08
typedef  (0) 2016.08.06
FILE* fopen  (0) 2016.07.26
문자와 문자열 처리 함수  (0) 2016.07.25
데이터 상수화, 포인터 상수화  (0) 2016.07.21
블로그 이미지

saylin

,
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


각각의 node에 대해서 위와 같은 기준을 적용해서 균형 인수 값을 모두 구할 수 있다.


AVL 트리는 균형 인수(Balance Factor)를 기준으로 트리의 균형을 잡기 위한 재조정의 진행 시기를 결정한다.

즉, 균형 인수의 절대값이 2 이상인 경우 re-balancing을 진행한다.



'language > 자료구조' 카테고리의 다른 글

연결리스트와 포인터 멤버 연산자(->)  (0) 2016.07.28
블로그 이미지

saylin

,