'IT'에 해당되는 글 57건

IT의 장점

* IT/Network






보통 IT의 장점을 말할 때 성취감이 노다는 이야기를 많이 하는데, 


필자의 생각은 조금 다르다.

다른 분야에서 일하는 친구들이라고 성취감이 없겠는가?

느끼는 때와 방식은 조금식 다르지만 각자 자신이 하고 있는 일에 대해

성취감을 느낀다고 생각한다. 때문에 성취감은 IT에만 국한된 장점이 아니다.

필자가 생각하는 IT의 가장 큰 장점은 "어울림"이다(아파트 선전 아님).

개발자들 중에서 정말로 일도 잘하고 똑똑한 친구들도 있지만,

필자를 포함하여 지극히 평범한 사람들이 유독 많이 모여서 일을 해나가는 분야가

IT분야라고 생각한다.

아주 똑똑한 세 명의 개발자보다 서로 믿고 잘 어울리는 평범한 개발자 세 명이 더

큰 일을 해내는 것이 이상한 일로 여겨지지 않고, 또 흔히 볼 수 있는 분야가 IT이다.

필자의 능력으로 다른 분야에서 일을 했다면, 일할 기회조차 얻지 못했을지도 모른다.

그러나 IT는 많은 기회를 제공한다.

때문에 다양한 기회를 접할 수 있었고, 그 과정에서 인정받을 수 있었다.

IT는 다양한 능력을 지닌 여러 사람들에게 정말로 많은 기회를 제공한다.

여러분의 능력은 최고인가?

그렇다면 다른 분야에서도 성공하고 인정받을 수 있을 것이다.

여러분은 평범한가?

그렇다 해도 노력이라는 무기 하나만으로 IT분야에서만큼은 성공하고 인정받을 수 있다.

이것이 IT가 지니고 있는 메리트 중 하나라고 생각한다.


상세보기


출처-
뇌를 자극하는 윈도우즈 시스템 프로그래밍 (윤성우)

'* IT > Network' 카테고리의 다른 글

자신의 ip 확인  (0) 2012.09.11
IP 추적  (0) 2012.08.30
IT의 장점  (1) 2011.12.02
TCP/IP 여러질문들의 답변  (0) 2011.11.21
서브넷 마스크 계산기  (0) 2011.11.20
:) 2012.12.09 18:37 URL EDIT REPLY
안녕하세요.
요즘 IT의 장점에 대해서 정보를 찾고 있는데요, 글을 보니 IT업계에서 일하시는 분 같아서요.
처음으로 IT업계를 지원하게 된 동기가 특별히 있으신가요?

Name
Password
Homepage
Secret

02.C언어의 기초

* 컴퓨터 언어 (Computer Language)/C/C++






Section01.C언어의 특징


C언어는 1970년대 초 Bell 연구소에서 UNIX 라는 새로운 운영체제를 만들기 위한 언어로 개발
1.범용적인 프로그래밍 언어
2.소문자를 사용하여 프로그래밍할 수 있다.
3.대소문자를 구분하며, 표현이 간결하다.
4.구조적 프로그래밍과 시스템 프로그래밍에 적합한 언어
5.다양한 연산자를 사용
6.포인터를 이용하여 저수준의 언어처럼 메모리를 직접 제어할 수 있다.
7.다양한 데이터형을 사용한다.
8.함수로 구성되어 모듈화가 가능하다.
9.프리프로세서를 사용한다.
10.입출력기능이 없이 입출력을 위한 외부 함수를 사용한다.
11.특수문자를 사용할 수 있다.
12.프로토타입을 선언할 수 있다.
13.이식성이 좋으며, 하향식 프로그래밍 기법에 적합하다.


Section02.C언어 프로그램의 작성과 실행방법


원시 프로그램의 작성:원시 프로그램은 텍스트 형식의 파일로서, 메모장과 같은 텍스트 편집기를 이용하여 작성한 후 텍스트 형식으로 저장한다. 파일을 저장할 때 확장자는 반드시 ".C"와 같이 "C"라는 확장자를 붙여주어야 한다. 
목적 프로그램으로 번역:작성된 텍스트 형식의 파일을 컴파일러를 이용하여 번역하여 기계어 형식의 목적 프로그램으로 번역한다.Turbo-C등으로 번역하면 목적 프로그램으로 번역 된 후 파일에".obj" 라는 확장자가 자동으로 붙는다.
실행 파일의 생성:컴파일러에 의하여 번역된 목적 프로그램은 링키지 에디터에 의하여 라이브로리, 서브 프로그램 등과 연계하여 재배열된 후 실행 파일로 만들어진다. 이렇게 만들어진 실행 파일은 일반적인 실행 파일과 마찬가지로 ".exe"라는 확장자를 자동으로 붙여준다.
실행 파일의 실행:프로그램의 작성 -> 원시 프로그램 -> 실행 프로그램 -> 결과


Section03.C언어의 기본 구조


main() 함수


main()
{
    printf("대한민국");
}
C언어로 작성된 간단한 프로그램으로 "대한민국"이라는 문자열을 화면에 보여준다.

Section04.표준 입출력 함수


표준 출력 함수
printf("나타내고자하는 메시지, 형식 지정 문자",데이터 또는 변수);

main()
{   int i=10;
    chat a= 'Y';
    printf("a에 들어있는 값은 %c이고,i에 들어있는 값은 %d이다.",a,i);
}
%c는 출혁할 내용이 문자형이라는 것을 알려주고, %d는 정수형이라는 것을 알려준다.

앞에서 작성한 프로그램을 다음과 같이 변경해보자.
main()
{
   int i=10;
  char a='Y';
   printf("a에 들어있는 값은 %c이고,",a);
   printf("i에 들어있는 값은 %d이다.",i);
}

동일한 결과를 얻을 수 있다.

C언어에서는 줄바꿀때 기호를 "\n"은 "\n"라고 표현한다.
main()
{
        int i=10;
        char a= 'Y';
        printf("a에 들어있는 값은 %c이고,\n",a);
        printf("i에 들어있는 값은 %d이다.",i);
}
위 프로그램을 실행하면 줄이 바뀌어 출력이 된다.

또한 인용 부호 안에 특수 문자를 넣을 경우에는 반드시 앞에 '\'기호를 붙여주어야 한다.
ex) 인용 부호(")나 '%'기호, '\'기호 등을 출력하고자 할 경우에는 다음과 같이 해당 문자의 앞에 '\'기호를 붙여준다.

main()
{
  printf("특수 문자 출력 연습\n");
  printf("인용 부호(\")를 출력할 때에는 \" 앞에 \\를 붙여 준다.\n");
  printf("퍼센트 기호(\%)를 출력할 때에는 앞에 \\를 붙여 준다.");
}

입출력을 위한 형식 지정 문자
%d:정수 변환
%f:실수 변환
%c:문자 변환
%s:문자열 변환
%x:16진 변환

제어 문자열의 종류
\n:커서를 다음 행의 선두로 이동
\f:커서를 다음 탭의 선두로 이동
\b:커서를 한 칸 앞으로 이동

표준 입력 함수
scanf("형식 지정 문자",&변수);

-문자열의 경우에는 '&' 기호를 붙이기 않는다.
Scanf("%c",&a) 문자의 경우
Scanf("%s",a)  문자열의 경우

main()
{
  int i;
  char c;
  printf("정수와 문자를 콤마(,)로 구분하여 입력하세요\n");
  scanf("%d,%c",&i,&c);
  printf("\n입력된 정수는 %d이고, 문자는 %c입니다.",i,c);
}

Section05.변수


변수의 정의:변수라는 것은 어떤 연산을 처리하기 위하여 필요한 값을 넣어두기 위한 방의 이름이다.

헝가리안 표기법

 접두어  데이터형
 c char 
 by  BYTE(unsigned integer)
 n  short
 l  int
 x,y  int(x좌표와 y좌표에서 사용)
 cx,cy  int(x 또는 y 길이로 사용, c는 count의 의미)
 b 또는 f  BOOL(int), f는 flag의 의미
 w  WORD(unsigned short)
 l  LONG(long)
 dw  DWORD(unsigned Short)
 fn  function(함수)
 s  string(문자열)
 sz  바이트 0으로 종료되는 문자열(string terminated by 0 byte)
 h  handle
 p  pointer

Section06.데이터형과 변수의 선언


정수형 자료
정수형 자료는 소수점이 없는 숫자로서, 일반적으로 16비트(2Byte)의 자리를 할당하는 int형을 사용한다.
그러나 정수의 크기가 클 경우에는 32비트(4Byte)의 자리가 할당되는 long형을 사용한다.
또한 부호가 있는 수와 부호가 없는 수로 할당할 수 있으며, 부호가 있는 수의 경우에는 최상위 비트를 부호 비트로 사용한다.
정수형 자료의 타입과 할당되는 비트 수가 있다.

정수형의 데이터 타입

 데이터 타입 할당되는 비트 수  값의 표현 범위 
 int  16  -2의 15승 ~2의15승-1(-32768~+32767)
 unsigned int  16  0~2의16승-1(0~65535)
 long  32  -2의31승~2의31승-1
(-2147483648~+2147483647)
 unsigned long  32 0~2의32승-1(0~4294967295) 




실수형 자료

[부호][10진수].[소수점 이하 숫자]E[지수부의 부호][지수]
ex)12.345->0.12345E+2
1234.567->0.1234567E+4
0.0012->0.12E-2
0.0000123->0.123E-4

실수형의 데이터 타입
 데이터 타입 할당되는 비트 수 값의 표현 범위 
 float  32   +-3.4E-38~+-3.4E+38 
 double 64  +-1.7E-308~+-1.7E+308
 long double 80   +-3.4E-4916~+-1.1E+4932

float로 선언한 경우와 double로 선언한 경우에 똑같은 숫자를 대입하였으나, 실행한 결과 float의 경우에 정확한 값이 나오지 않는 것을 알 수 있다. 즉, float형의 자료 범위를 넘을 경우에 정확한 값이 저장되지 않는다. 그러나 double형으로 선언한 경우에는 정확한 값을 처리할 수 있다.


문자형 자료

C언어에는 문자형 자료를 저장하기 위한 데이터형으로 char형을 사용한다.
char형은 8비트(1Byte)의 자리를 할당하는 것으로 하나의 문자만을 저장할 수 있다.
하나의 문자는 작은 따옴표('')로 묶어 주어야 한다.
C언어에서는 하나의 문자가 아닌 여러 개의 문자, 즉 문자열을 저장하기 위한 문자열 데이터형이 없고, 나중에 배울 배열이나 포인터를 이용한다. 문자열은 인용 부호("")로 묶어주어야 한다.

main()
{
      char a,b,*c;                    
      a=  'H';
      b=   'i';
      c= "Hello!";
      printf("%c%c %s" ,a,b,c,);
}

하나의 문자를 저장하기 위하여 변수 'a'와 'b', 그리고 문자열을 저장하기 위하여 변수 'c'앞에 포인터(*)를 붙인 후 문자형으로 선언한다.
문자형 변수에 문자 하나를 대입하여 초기화시킨다. 문자는 작은 따옴표('')로 묶어주었다.
문자열 변수에 문자열을 대입하여 초기화시킨다. 문자열은 인용 부호("")로 묶어주었다.
'%c'는 문자형으로 출력하라는 의미이고, '%s'는 문자열형으로 출력하라는 의미이다.


기호상수

#define 상수명 값

#difine PI 3.141592
main()
{
   printf("%If" ,PI);
}

위 프로그램을 실행하면 "PI"가 아닌 PI 의 값(3.141592)이 출력되는 것을 알 수 있다.


형식 지정 문자

printf() 함수나 scanf() 함수에서는 출력할 값이나, 입력할 값에 대한 형식을 지정하기 위한 문자를 사용한다.
이러한 문자를 정리하면 다음 표와 같다.

형식지정 문자의 종류와 기능
 형식 지정 문자 기능 
 %d  10진수 정수를 의미한다.
 %u  부호 없는 10진수를 의미한다.
 %o  부호 없는 8진수를 의미한다.(영문 소문자 o)
 %x  부호 없는 16진수를 의미한다. 영문자를 소문자로 나타낸다.
 %X  부호 없는 16진수를 의미한다.영문자를 대문자로 나타낸다.
 %c  단일 문자를 의미한다.
 %s  문자열을 의미한다.
 %e  부동소수점의 지수형을 의미한다.
 %f  부동소수점의 소수형((실수형)을 의미한다.

printf()함수를 이용하여 출력할 때 위와 같은 형식 지정 문자에 다음과 같은 포맷 옵션을 지정하면 보다 다양한 모양으로
출력 할 수 있다.

%[-][전체 자릿수][.][소수점 이하 자릿수]형식 지정 문자

- : 내용을 왼쪽에서부터 출력
전체 자릿수 : 출력할 값이 차지할 정수 부분의 자릿수를 의미한다.

main()
{
  float i= 12345;
  double j=123.4567;
  char a='A';
  char *b="대한민국";
  printf("\n%f%If%c %s\n",i,j,a,b);
  printf("\n%10.3f%10.4IF %10c%20s\n",i,j,a,b);
  printf("\n%10.3f%10.4IF %-10c%-20s\n\n",i,j,a,b);
}

첫번째 printf() 함수의 경우에 포맷 옵션을 주지 않아 변수의 선언된 데이터형에 따른 크기로 출력
두번째 포맷 옵션에 따라 지정된 자리수로 출력
세번째 문자형과 문자열형에 - 옵션을 지정함으로써 왼쪽부터 출력된 것이다.


참고문헌:C뿌려라!C언어 입문



상세보기






'* 컴퓨터 언어 (Computer Language) > C/C++' 카테고리의 다른 글

C언어 입출력  (0) 2012.03.16
수식과 연산자  (0) 2011.12.22
02.C언어의 기초  (7) 2011.11.19
01.프로그래밍의 기초  (0) 2011.11.17
C 뿌려라!  (0) 2011.11.17
BlogIcon Lessa 2011.12.20 16:58 신고 URL EDIT REPLY
어? 박정민교수님 책이넼ㅋㅋㅋㅋㅋ헐
BlogIcon Twodragon | 2011.12.20 17:34 신고 URL EDIT
그냥 C언어 관련 책 넣은거예요ㅋ
BlogIcon Lessa | 2011.12.24 13:11 신고 URL EDIT
ㅋㅋㅋ놀랫어 우리교수님일줄은
BlogIcon Twodragon | 2011.12.24 20:39 신고 URL EDIT
와우.. 저 책 많이 유명한데 엄청난교수님이네요ㅋ
BlogIcon Lessa | 2011.12.28 17:28 신고 URL EDIT
그런가? 아무튼 잘가르치심

개인적으로 팬이야 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
BlogIcon ㅁㅁ 2015.04.30 09:27 URL EDIT REPLY
잠시만 써볼게요
오타났다 2015.04.30 11:53 URL EDIT REPLY

#include<stdio.h>
#include<math.h>
#define PI 3.141592654 //파이상수
int main()
{
int i, j;//i,j 반복문을 위한 변수, count는 간격을 계산하기 위한 변수
int count;
for (i = 0; i <= 360; i += 15)//각도를 15도씩 올리면서 반복
{
printf("%d", i);
double a = i;
count = 15 + 15 * sin(a * (PI / 180));//15을 기점으로 간격값 계산
for (j = 0; j < count; j++)//간격 프린트 반복문
{
printf(" ";);
}
printf("*\n";);//줄바꾸기

}


}

Name
Password
Homepage
Secret

01.프로그래밍의 기초

* 컴퓨터 언어 (Computer Language)/C/C++



Section01.알고리즘


알고리즘이란?
-어떤 특정한 작업을 처리하기 위한 과정에서 사용되는 명령들의 집합
알고리즘 기본 조건
-입력
-명확성
-실제성
-출력
-종결성

Section02.순서도


순서도 기호
순서도는 국제표준화기구(ISO : International Organization for Standardization) 에서 정한 표준 기호



Section03.프로그래밍의 순서


 
문제분석 ->입출력 설계->순서도 작성->원시 프로그램 작성->번역->테스트->테스트->실행->문서화 및 유지보수
이런식이며 번역에서 문법오류가 생기면 디버깅에서 다시 원시 프로그램 작성을 하기도 하며,
모의 데이터를 삽입할수 있으며 테스트에서 논리오류가 생기면 디버깅에서 순서도 작성으로 다시 간다.
이렇게 여러 과정을 고친다.

Serction04.프로그래밍 기법


구조화 프로그래밍 기법
-순차제어 구조:
일을 단계적으로 차례로 처리하는 구조로서 하나의 처리를 마친 후에 바로 다음의 처리 과정이 시작된다.
-조건제어 구조:조건에 따라 서로 다른 처리 과정을 진행하도록 한 것으로, 어떤 조건을 비교한 후 조건을 만족하거나 만족하지 않는 경우에 서로 다른 처리를 실행하는 구조
-반복제어 구조:컴퓨터의 특징 중에 가장 중요한 점은 처리 과정을 반복적으로 수행할 수 있다는 것으로, 어떤 조건을
만족하는 동안(Do ~ While), 또는 만족할 때까지(Do ~ Until)같은 처리를 반복하여 실행하는 구조

모듈별 프로그래밍 기법:전체 프로그램을 기능별로 작은 단위의 모듈(module)로 분리하여 부분적으로 코딩한 후 전체 모듈을 결합하여 프로그램을 구성하는 방법을 사용한다.
       -장점:
               1.프로그램의 작성이쉽다.
               2.프로그램의 분석과 디버깅이 쉽다.
               3.기능별로 분할된 모듈을 다른 프로그램에 재사용할 수 있다.
       -단점:
               1.모듈별로 분할하기 위한 객관적인 기준이 없다.
               2.모듈간을 연결하여 전체 프로그램을 만들기 위한 기준을 세우기 어렵다.

하향식 프로그래밍 기법:모듈별 프로그래밍 기법의 하나로 프로그램을 상위의 모듈에서 하위 모듈 순으로 작성해 나가는 프로그래밍 기법이다.

개체지향 프로그래밍 기법:실제세계에서 나타나는 다양한 현상을 개체라는 단위로 실현함으로써 다양한 문제를 해결하기
위한 프로그래밍 기법이다.
-개체지향의 기본용어
              -개체:실제와 실체에 관련된 동작을 모두 포함하는 것
              -메소드:개체에 접근할 수 있는 수단을 제공하는 것으로 개체의 값을 변경하는 등의 기능을 한다. 함수와 비슷하다.
              -인스턴스:클래스에 속하는 각 개체
-개체의 특성
              -상속성:상위클래스와 하위 클래스 사이에 메소드와 데이터를 자동적으로 공유하는 특성
              -캡슐화:개체 고유의 메소드를 통해서만 데이터에 접근
              -추상화:클래스나 개체로부터 공통적인 질의나 특성을 추출하여 상위 클래스를 만들어 낼 수 있다.
              -다형성:동일한 메시지에 대한 수신측에 따라 다른 결과를 얻을 수 있는 특성
              -지속성:개체의 인스턴스는 대부분 프로그램이 실행될 때 만들어지고 실행이 끝나면 없어진다.

Section05.프로그래밍 언어

저급언어
-기계어: 번역 과정이 필요 없이 컴퓨터가 바로 실행 할 수 있으나, 프로그램을 작성하기 매우 어렵고 기종간의 호환성이 떨어져 거의 사용하지 않는다.
-어셈블리어: 기계어와 1:1로 대응되는 기호 형태의 단어로 구성된 프로그래밍 언어,프로그램 작성하기 어렵고 기종간의 호환성이 떨어진다.

고급언어
-컴파일러형 언어:원시 프로그램을 목적 프로그램으로 번역한 후 실행하는 방식으로 대부분의 프로그래밍 언어는 컴파일러형이다. 대화식 처리가 불가능하며 반드시 목적 프로그램을 만드는 것이 특징이다.
ex)FORTRAN,COBOL,PASCAL,C,C++,JAVA 등..

-인터프리터형 언어:번역기를 이용하여 프로그램을 한 줄씩 받아들여 해석하고 번역한 후 번역과 동시에 즉시 실행시키는 방식의 언어이다. 줄 단위로 처리되기 때문에 대화식 처리가 가능하고 목적 프로그램을 만들지 않는 것이 특징이다.
ex)BASIC,LISP,APL,JSP,ASP 등..

컴파일러형 언어와 인터프리터형 언어의 비교
 컴파일러형 언어  인터프리터형 언어
 목적 프로그램을 만든다.  목적 프로그램을 만들지 않는다.
 번역 속도가 느리다.  번역 속도가 빠르다.
 메모리를 많이 차지한다.  메모리를 적게 차지한다.
 프로그램 단위로 번역한다.  줄 단위로 번역한다.
 실행 속도가 빠르다.  실행 속도가 느리다.


Section06.프로그램의 번역과 실행


-인터프리터형 언어의 번역과 실행:BASIC 등은 전용 에디터나 툴을 이용하여 프로그램을 작성한 후 실행하면 줄단위로 번역한 후 이상이 없으면 실행, 실행 도중에 이상이 있으면, 에러 메시지와 함께 디버깅을 할 수 있다.

-컴파일러형 언어의 번역과 실행:C언어 등의 컴파일러형 언어는 원시 프로그램을 목적 프로그램으로 번역한 후 링커를 이용하여 로드 모듈로 만든 다음 로더를 이용하여 주 기억장치에 적재한 후 실행한다.
  -링커:실행 가능한 프로그램을 만들기 위해서 컴파일된 목적 모듈들을 서로 연결시키는 기능을 하는 서비스 프로그램
  -로더:목적 프로그램을 읽어들여 주기억 장치에 적재시킨 후에 실행시키는 서비스 프로그램으로, 목적 프로그램의 재배치, 주기억 장치 내에 프로그램을 적재시킬 공간의 확보, 여러 개의 목적 프로그램이나 라이브러리 루틴과의 링크 작업, 또는 실제 프로그램을 보조기억 장치에서 읽어들이는 기능을 한다.


참고문헌:C뿌려라!C언어 입문



상세보기
 

'* 컴퓨터 언어 (Computer Language) > C/C++' 카테고리의 다른 글

C언어 입출력  (0) 2012.03.16
수식과 연산자  (0) 2011.12.22
02.C언어의 기초  (7) 2011.11.19
01.프로그래밍의 기초  (0) 2011.11.17
C 뿌려라!  (0) 2011.11.17
Name
Password
Homepage
Secret