728x90

예제 1-1. 다음은 C 프로그램의 설명문의 용도를 잘 나타내는 프로그램이다.

/* 예제 : Hello 출력하기
파일 이름 : Source.c
수정일자 : 2022년 5월 18일
작성자 : LaughingMan
*/
#include <stdio.h>         //헤더 파일 추가
void main()                   //main 함수 시작
{
printf("Hello ~ \n");       //모니터에 문자열 출력
}                                //main 함수 끝

 

예제 1-2 다음은 C프로그램의 기본 구조인 도입부, main () 함수, 호출된 함수()를 살펴보기 위한 프로그램으로 두 수를 입력받아 곱한 겂을 출력하는 프로그램이다.

/* 이 프로그램은 두 수를 키보드로 입력받아 곱의 결과를 출력하는 프로그램이다.*/
/* 도입부 */
#include <stdio.h>                       // printf()와 scanf()를 사용하기 위한 헤더 파일 포함
#pragma warning(disable:4996)
                                               // 권장하지 않는 함수 사용에 대한 경고 메시지 무시

int a, b, c;                                  // 정수를 저장하는 변수 선언
int product(int x, int y);                 // 사용자 함수 선언

/* main() 함수 */
void main()
{
/* 첫 번째 수를 입력 */
printf("Enter a number between 1 and 100 : ");
scanf("%d", &a);

/* 두 번째 수를 입력 */
printf("Enter a number between 1 and 100 : ");
scanf("%d", &b);
c = product(a, b);
printf("%d * %d = %d \n", a, b, c);
}

/* 두 수의 곱을 계산하여 돌려주는 사용자 함수 */
int product(int x, int y) {
return (x * y);
}

연습문제

1. 다음 중 C 프로그램 완성 과정의 순서로 올바른 것은?

ⓐ 코딩 -> 실행 -> 링킹 -> 컴파일

ⓑ 코딩 -> 링킹 -> 실행 -> 컴파일

ⓒ 코딩 -> 컴파일 -> 링킹 -> 실행

ⓓ 코딩 -> 컹파일 -> 실행 -> 링킹

2. C 프로그램 작성시 반드시 작성해야 하는 함수는?

ⓐ scanf( )                    ⓑ printf( )

ⓒ malloc ( )                 ⓓ main( )

3. 다음 중 C 프로그램 언어의 예약어 (reserved word)가 아닌 것은?

ⓐ for          ⓑ switch          ⓒ standard           ⓓ define

4. 다음 중 사용자 정의 명칭으로 올바른 것은?

ⓐ For          ⓑ 2knou          ⓒ int           ⓓ OUN TV

5.  다음 중 C언어에 대한 일반적인 설명으로 잘못된 것은?

ⓐ 시스템 프로그램을 작성하기에 적합한 언어

ⓑ 구조적으로 함축된 프로그램을 쉽게 작성할 수 있는 언어

ⓒ 하드웨어 제어는 쉬우나 프로그램의 이식성이 낮은 언어

ⓓ 저급 언어 특성의 논리적 구조를 갖는 고급 언어

6. 다음 프로그램 중 잘못된 문장은?

#include <stdio.h>
void main () {
          printf("This is a program with a");
          do_it("problem!");
          return;
}

 

7. 다음 프로그램 중 잘못된 문장은?

#include <stdio.h>;
void main()
{
          printf("Keep looking!");
          printf("You\'ll fint it! \n");
}

8. 다음 중 원시 프로그램이 번역되어 실행될 때의 파일 확장자로서 올바른 것은?

ⓐ example.exe          ⓑ example.obj          ⓒ 3user          ⓓ user 100

9. 다음 중 변수 선언 형식으로 올바른 것은?

ⓐ _user          ⓑuser@1          ⓒ example.doc          ⓓ example.c

10. 다음 중 escape 문자에 대한 설명이 잘못된 것은?

ⓐ \n : 출력시 줄을 바꿈

ⓑ \t : 프린터의 form feed

ⓒ \a : '삑' 소리를 냄

ⓓ \r : 커서를 행의 마지막 위치로 이동

11. 다음중 C 프로그램 작성시 고려하는 일반적인 규칙이라고 할 수 없는 것은?

ⓐ C프로그램은 반드시 하나 이상의 함수를 포함해야 한다.

ⓑ 함수의 시작과 끝을 알리는 중괄호 ({ })를 사용해야 한다.

ⓒ 프로그램에 main( ) 함수가 반드시 존재할 필요는 없다.

ⓓ 중괄호 안에는 변수 선언문, 치환문, 함수 등을 기입한다.

728x90
728x90

프로그램의 기본 구조

도입부

  • 프로그램 설명
  • 선행 처리를 위한 다름 파일 포함이나 매크로(macro) 정의
  • 프로그램 전체에 사용되는 전역변수 선언
  • 사용자 함수 원형 선언

 

함수

  • C 프로그램은 반드시 하나 이상의 main 함수를 포함해야 한다.
  • main 함수가 반드시 존재해야 한다.
  • 함수의 시작과 끝을 알리는 중괄호 ({ })를 사용해야 한다.
  • 중괄호 안에는 변수 선언문, 치환문, 연산문, 함수 등의 명령을 기입한다.
  • 선행처리기 (preprocessor)를 제외하고 문장의 끝에는 세미콜론 (;)을 붙인다.

 

C프로그램의 구성요소

예약어

C 언어에서 미리 정의되어 있는 의미 있는 단어, 프로그램에서 특정한 의미를 가지고 있기 때문에 함부로 사용해서는 안된다.

  • 자료형 관련 예약어 : char, int, float, short, long, double, unsigned, union, enum, void 
  • 기억 관련 예약어 : auto, static, extern, register
  • 제어 관련 예약어 : if ~ else, for, while, do ~ while, switch ~ case, break, continue, return
  • 기타 예약어 : main, sizeof, include, ........

명칭

  • 영문자와 숫자의 조합으로 만든다.
  • 명칭의 첫 문자는 영문자나 밑줄 (_)이어야 한다.
  • 특수문자를 사용해서는 안된다. (단, 밑줄은 사용 가능)
  • 문자 사이에 공백이 있어서는 안된다.
  • 예약어를 사용할 수 없다.
  • 영문자 대문자와 소문자는 서로 구별하여 사용한다.

상수

수치 상수, 문자 상수, 문자열 상수를 사용

연산자

연산자 (operator)를 이용하여 각종 연산을 수행하며, 다른 언어에 비해 많은 연산자가 준비되어 있다.

설명문

  • 여러 줄에 걸친 설명문을 넣으려면 /* 와 */ 를 사용한다.
  • 한 줄짜리 설명문을 넣으려면 보통 //를 사용한다.
  • 프로그램의 어느 부분에도 위치할 수 있다.
  • 2개 이상의 라인으로 계속될 수 있다.

에러

C언어의 문법상 명백하게 잘못된 점이 있어 컴파일을 할 수 없는 경우.

가장 흔한 경우는 오탈자 및 C언어의 문법에 맞지 않는 형식의 사용, 반디스 필요한 저정이 빠진 경우이다.

경고

코드의 내용이 의심스러워 보이기는 하지만 일단 컴파일이 가능한 경우 발생.

현재는 큰문제가 없어 보이지만 이식성에 불리하거나  C언어 문법에서 권장하지 않는 방법으로 소스 프로그램을 작성하였을 때도 발생한다.

 

 

 

 

 

728x90
728x90

 

소스 코드 작성시 [새 프로젝트 만들기]를 선택한다.

'새 프로젝트 만들기' 창에서 [Windows 데스크톱 마법사]를 선택하고 '새 프로젝트 구성' 창에서 프로젝트 이름을 입력하면, 솔루션 이름은 프로젝트 이름과 동일하게 자동으로 입력된다.

애플리케이션 종류는 실행파일 즉 콘솔 애플리케이션을 선택하고 빈프로젝트를 선택한다.

[솔루션 탐색기] 창의 [소스 파일] 폴더에서 마우스 우클릭을 누른 다음 [추가] - [새 항목]을 선택한다.

C++ 파일 (.cpp)를 선택하고 파일명을 작성 후 확장자는 .c를 입력해야 한다.

소스를 코딩한다.

[빌드] - [솔루션 빌드]라는 메뉴에서 컴파일과 링크를 동시에 진행하는데 정상적인 컴파일과 링크 과정이 끝나면 하단부 메세지 창에 위 그림과 같은 메시지가 나타난다.

정상적으로 빌드가 되었다면 [디버그] - [디버그하지않고 시작] 또는 단축키 [Ctril + F5]를 눌러 실행시키면 위와 같은 결과가 출력된다.

728x90
728x90

Dev-C++ 컴파일러의 에디터 화면에서 [파일(F)] - [새로 만들기(N)] - [소스 파일(S) Ctrl+N] 을 이용하여 새 편집창을 열고 소스 코드를 입력한다.

파일을 저장한다.

파일을 저장할 때에는 파일명.c로 확장자(.c)까지 입력하고 저장한다.

[실행(Z)] - [컴파일(C) F9] 메뉴를 이용하여 컴파일을 하면 실행 파일 (.EXE)이 생성된다.

[실행(Z)] - [실행(R) F10] 메뉴를 이용하면 파일을 실행한 결과가 타나난다.

 

728x90
728x90

https://sourceforge.net/projects/orwelldevcpp/

 

Dev-C++

Download Dev-C++ for free. A free, portable, fast and simple C/C++ IDE. A new and improved fork of Bloodshed Dev-C++

sourceforge.net

Dev-C++ 프로그램은 위의 링크에서 다운로드를 할 수 있다.

설치

다운로드 받은 Setup 파일을 더블 클릭하여 실행한다.

설치 언어를 선택하고 'OK' 버튼을 클릭한다.

라이선스 관련되어 동의 여부를 확인하는 순서로 '동의함' 버튼을 클릭한다.

설치할 구성 요소를 선택하는 창으로 그냥 '다음' 버튼을 클릭한다.

설치 위치를 묻는 창으로 원하는 드라이브, 폴더를 선택하고 '설치' 버튼을 클릭한다.

설치 진행 중 ~~~~~

설치 완료 창. '마침' 버튼을 크릭하면 Dev-C++가 실행된다.

Dev-C++ 가 실행되면 Configuration 창이 나타나는데 언어를 설정한다.

폰트 및 Icon 설정.

설정 완료.

 

728x90
728x90

C언어는 프로그래밍 언어로써, 프로그래밍 언어란 인간과 컴퓨터의 대화에 사용되는 의사소통의 수단이다.

인간은 인간의 언어를 사용하고, 컴퓨터는 0, 1로 구성된 기계어만 이해할 수 있어서 두 개체 간의 의사소통을 위해 컴파일러라는 통역가가 필요하다.

인간이 컴파일러와 약속된 언어 (즉, 프로그래밍 언어)를 사용하여 프로그램을 작성하면 컴파일러는 컴퓨터가 이해할 수 있도록 기계어로 번역하는 역할을 수행한다.

  • 어셈블러 (Assembler) : 기호로 표현된 어셈블리 코드를 기계어로 번역
  • 인터프리터 (Interpreter) : 프로그램을 한 단계씩 기계어로 해석하여 실행하는 언어처리 프로그램

 

C 언어의 역사 및 특징

1972년 미국 벨 연구소의 데니스 리치 (Dennis Ritchie)가 개발산 시스템 기술용 언어로, 유닉스 운영체제 개발에 사용할 목적으로 만들어졌다. 

특징

  1. 논리적이며 구조적인 시스템 프로그래밍 언어이다.
  2. 하드웨어 제어가 가능하다
  3. 프로그램 이식성이 높다
  4. 간략한 문법 표현으로 함축적인 프로그램 작성이 용이하다.
  5. 저급 언어 특성을 가진 고급 언어이다.

 

C 프로그램의 작성과 준비

프로그램 개발 단계

C프로그램의 완성 과정

  • 코딩 : 주어진 문제에 대한 설계를 바탕으로 소스 코드를 작성하여 소스 파일을 생성하는 과정
  • 컴파일 : 소스 파일이 목적 파일로 변환되는 과정
  • 링킹 : 목적 파일을 실행 파일로 변환하는 과정

728x90
728x90

유비쿼터스환경
언제, 어디서나, 어떠한 통신 단말기를 가지고, 어느 정보통신망을 통해서든, 원하는 정보통신 서비스를 받을 수 있는환경

유비쿼터스혁명
서로 이질적인 물리공간(제1공간)과 전자공간(제2공간)이 제3의 가치공간인 유비쿼터스공간으로 통합/진화되는 것

유비쿼터스컴퓨팅 개념을 토대로 하는 접근 방법
① 물리공간의 사물 이지미를 해석하여 사용자의 주변을 분석하고 주위의 특정 사물의 존재를 컴퓨터가 인식할 수 있도록 함

② 다양한 컴퓨터(칩, 센서, 태그, 구동체등)를 사물 속에 심고 이들을 네트워크로 연결하여 물리공간의 상황을 사물과 사물, 사물과 컴퓨터, 컴퓨터와 사물 간의 상호작용을 통해 유비쿼터스공간(전자공간-물리공간)으로 인식함

유비쿼터스공간
만지지 않아도 공간에 존재하거나 공간에 관한 정보를 사용자가 알 수 있는 ‘현실체가지능적으로 증강된 공간’으로인식함

 

 

더보기

연습문제 1. 물리공간과 전자공간을 유기적으로 융합한 것을 무엇이라고 하는가 ?

 

ⓐ 전자공간

ⓑ 유비쿼터스 공간

ⓒ 사이버 공간

ⓓ 초현실 공간

 

연습문제 2. 물리공간과 전자공간의 연계를 위한 관점에 포함되지 않는 것은 무엇인가 ?

ⓐ 사물 - 컴퓨터 - 사람의 네트워크 연결
 
ⓑ 사물의 인식
 
ⓒ 물리적 속성과 전자적 특성간의 연계
 
ⓓ 인공지능 기반의 전자공간
 
 
연습문제 3. 다음 빈칸에 알맞은 것은 무엇인가 ?
 
전자공간과 물리공간의 연계는 “물리공간의 (가), 전자공간의 (나), 양쪽에 존재하는 (다)간의 제한 없는 통신 네트워크를 기반으로 하며, 물리공간에 존재하는 장소, 사물, 사람의 물리적 속성에 대한 인식이 가능하고, 이러한 물리적 속성과 전자공간상의 전자적 속성이 양방향으로 상호작용할 수 있는 기능 중심의 환경”이라고 정의할 수 있으며, 이러한 환경을 유비쿼터스 환경이라고 한다.

 ⓐ 사물 (센서, 칩, 태그), 사람, 컴퓨터

ⓑ 사람, 사물 (센서, 칩, 태그), 컴퓨터

ⓒ 사람, 컴퓨터, 사물 (센서, 칩, 태그)

ⓓ 사물 (센서, 칩, 태그), 컴퓨터, 사람

 

정답 : ⓑ / ⓓ / ⓓ

728x90
728x90

1. 데이터 정의

관찰이나 측정을 통해 얻는 수치, 문자와 같은 변할수 있는 질적 또는 양적 값

2. 정보의 정의

'관찰이나 측정을 통하여 얻은 데이터를 처리하여 실제 문제해결에 도움이 되는 결과물'을 의미

3. 데이터에서 정보 추출하기

현상으로부터 정보를 추출하는 과정

예를 들면 중간고사라는 현상을 통해 관찰 측정을 하면 점수라는 데이터가 생성된다.

이것을 가공하면 해당 과목의 석차 및 등급 등의 정보를 만들 수 있다.

 

연습문제

1. 다음은 무엇에 대한 설명인가?

데이터를 처리하여 문제를 해결하는 데 직접적인 도움을 줄 수 있는 결과물

① 자료          ② 정보          ③ 지식          ④ 지혜   

2. ‘KTX 기차는 빠르다’라고 할 때, ‘빠르다’ 라는 설명은 어떤 유형의 데이터에 속하는가?

① 연속적 데이터         ② 범주적 데이터          ③ 양적 데이터          ④ 질적 데이터

3. 데이터는 어떠한 과정을 통해 정보로 변환되는가?

① 관찰과 측정          ② 처리와 가공          ③ 발견 또는 발명          ④ 실험

2019년도 1학기 기출문제

36. 다음은 무엇에 대한 정의인가? (4점)

1. 관찰이나 측정을 통하여 수집한 자료를 실제 문제에 도움이 될 수 있도록 정리한 지식
2. 어떤 데이터나 소식을 통하여 얻은 지식이나 상태의 총량

① 양심          ② 선견          ③ 추측          ④ 정보   

37. 2019년 5월 1일부터 2019년 5월 31일까지 서울의 미세먼지량을 측정하여 5월 평균대기오염 수준을 구하였다. 평균대기오염 수준은 다음 중 어떤 유형에 속하는가? (3점)

① 지식          ② 지혜          ③ 정보          ④ 예측 

2019년도 1학기 출석수업대체 시험

1. 다음은 무엇에 대한 정의인가?

1. 이론을 세우는 데 기초가 되는 사실
2. 관찰이나 실험, 조사로 얻은 사실

① 설명          ② 평가          ③ 데이터          ④ 의견  

2. '2019년 6월 16일 서울 종로구의 미세먼지 수치는 73ug/m3이다.' 라고 할때, 73ug/m3는 어떤 데이터에 포함되는가?

① 질적 데이터          ② 양적 데이터          ③ 통계적 데이터          ④ 범주적 데이터  

3. 다음 빈칸 (가)에 들어갈 말로 알맞은 것은?

① 기억 저장          ② 추측 예상          ③ 입력 출력          ④ 처리 가공

더 알아보기

DIKW 계층 (DIKW Hierarchy)

데이터를 처리 가공하면 더 높은 가치를 갖는 정보를 추출할 수 있다. 정보 또한 가공을 통해 더 높은 가치를 갖는 지식생성에 이용될 수 있다. DIKW 계층은 데이터(data)와 데이터 가공을 통해 생성되는 정보(information), 지식(knowledge), 지혜(wisdom)의 관계를 피리미드 형태로 정립해 높은 것을 뜻한다.

지식은 여러 정보를 분석하여 얻을 수 있는 가치 있는 정보를 뜻한다. 피라미드의 가장 상위에 위치하는 지혜는 축적된 지식에 대한 통찰과 활용을 총칭하는 개념이다.

728x90
728x90

리눅스 USB를 만들기 위해서는 먼저 리눅스 설치파일을 구해야 합니다.

다음 사이트에서 리눅스 설치 파일을 손쉽게 다운로드 받으시면 됩니다.

우분투 https://ubuntu.com/download/desktop

 

Download Ubuntu Desktop | Download | Ubuntu

Ubuntu is an open source software operating system that runs from the desktop, to the cloud, to all your internet connected things.

ubuntu.com

 

주분투 https://xubuntu.org/download/

 

Download Xubuntu « Xubuntu

Latest LTS release: 20.04, Focal Fossa The 20.04 release, codenamed Focal Fossa, is a Long Term Support release and has support for 3 years. To learn more about the release, please refer to the release announcement, which has links to complete release note

xubuntu.org

주분투에서는 기본적으로 torrent 파일을 다운로드하기 때문에 torrent 파운로드 밑에 Mirror 서버에서 다운로드 받으셔도 됩니다. 

ISO파일을 다운로드 받으셨으면 USB 부팅 디스크를 만들 Rufus 라는 프로그램을 다운로드 받습니다.

Rufus 다운로드 : https://rufus.ie/ko/

 

Rufus - 간편하게 부팅 가능한 USB 드라이브 만들기

간편하게 부팅 가능한 USB 드라이브 만들기 Rufus는 USB 메모리 및 플래시 드라이브를 포맷하고 부팅할 수 있도록 만드는 도구입니다. 이 프로그램은 다음 상황에서 유용하게 사용할 수 있습니다:

rufus.ie

 

설치를 하면 다음과 같은 프로그램이 실행됩니다.

장치에서 OS를 설치할 USB를 선택합니다. 일반적으로 8GB를 사용하시면 충분합니다.

부트 선택은 다운로드 받은 리눅스 ISO 파일을 선택합니다.

파일을 선택하면 포맷 옵션은 자동으로 선택이 됩니다.

볼륨 레이블만 수정이 가능하고 시작 버튼을 누르면 USB 만들기가 시작됩니다.

이제 상태 부분에서 초록색으로 진행상태를 확인할 수 있습니다. 완료시까지 기다리시면 끝입니다.

728x90
728x90

1. 컴퓨터란?

  • 프로그램이 가능한 데이터 처리기 : 프로그램의 지시에 따라 데이터를 입력받아 처리하고 결과를 출력하는 기계
  • 프로그램은 데이터 처리기에서 처리 가능한 작업의 유형과 연산의 집합 등을 결정하는 일련의 명령어 집합

2. 컴퓨터 과학?

  • 데이터의 획득, 표현, 처리, 저장, 통신, 접근을 위한 방법들의 실행 가능성, 구조화, 표현, 기계화에 관련된 내용을 다루는 학문
  • 컴퓨터 자체, 데이터, 프로그램, 알고리즘의 연구를 통해 효율적인 데이터 처리를 위한 제반 기술과 방법들을 제공하는 분야
  • 알고리즘과 관련된 이슈를 다루는 학문
  • 컴퓨터를 사용해서 주어진 문제를 해결하는 학문

3. 컴퓨터 시스템의 구성요소

  • 하드웨어는 컴퓨터를 구성하는 물리적인 기계 장치
  • 소프트웨어는 컴퓨터가 데이터를 처리하기 위해 규정하는 명령어들의 나열로 된 프로그램을 총체적으로 표현하는 것이며, 크게 시스템 소프트웨어와 응용 소프트웨어로 구분
  • 데이터는 컴퓨터가 처리하는 대상. 컴퓨터 내부에서는 비트 패턴으로 표현
  • 사용자는 컴퓨터가 데이터를 처리하는 전반적인 과정에 다양하고 적극적인 형태로 개입

4. 폰 노이만 모델

  • 컴퓨터의 내부 구조와 처리 과정을 정의한 모델
  • 컴퓨터는 4개의 서브시스템인 기억장치, 산술논리연산장치, 제어장치, 입출력장치로 구성
  • 실행될 프로그램은 데이터처럼 메모리에 적재되어야 함. -> 내장 프로그램 방식
  • 프로그램은 기본 명령어들의 유한개의 조합으로 구성

5. 데이터 vs 정보

  • 데이터는 현실 세계로부터 관찰이나 측정을 통해 단순히 얻어지는 사실이나 값
  • 정보는 데이터의 가공 또는 변환 등의 처리 과정을 거쳐서 얻어진 결과
  • 데이터 처리(정보 처리)는 데이터로부터 정보를 얻는 일련의 과정

6. 데이터의 표현 단위

  • 비트(bit) : 0 또는 1의 두가지 상태 중 하나를 표시하는 논리적인 최소 단위
  • 바이트(byte) : 길이가 8인 비티의 나열로서, 2^{8} = 256 가지의 서로 다른 경우를 표현
  • 워드 (Word) : 컴퓨터 연산의 기본단위가 되는 정보의 양. 시스템에 따라 달라짐.
  • 바이트로 구성되는 물리적인 단위 : KB, MB, GB, TB, PB, EB, ZB, YB

7. 정수 표현 방법

  • 부호 비트의 사용 여부에 따라 부호 없는 정수와 부호 있는 정수로 구분
  • 부호 있는 정수는 부호 비트를 사용하며, 다시 부호화-크기방식, 1의 보수 방식, 2의 보수 방식으로 나뉨
  • 부호 없는 정수는 주어진 n비트 전체로 정수를 표현
  • 부호화-크기 방식은 음의 정수는 음수에 대해 절대값을 취해서 표현
  • 1의 보수 방식은 음의 정수는 양의 정수 표현에 대해 보수 (0->1, 1->0)를 취해서 표현
  • 2의 보수 방식은 음의 정수는 1의 보수 표현에 1을 더해서 표현

 

출처 : 컴퓨터과학개론 (저자 : 이관용, 정광식), 한국방송통신대학교출판문화원

 

728x90

+ Recent posts