Chapter 02 프로그램 개발 첫걸음.

Slides:



Advertisements
Similar presentations
Python Ch.06 RaspberryPi Sejin Oh. Raspberry Pi Python  IDLE(Integrated Development Environment)  라즈베리 파이 배포본들은 일반적으로 파이썬과 파이썬 3 의 IDLE 파 이썬 개발 도구를.
Advertisements

프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
01 C 프로그래밍 첫걸음 세종대학교 최옥경 교수. C 언어의 역사  B 언어에서 발전  C 언어는 켄 톰슨 (Ken Tompson) 이 개발한 B 언어에서 발전된 언 어  C 언어는 1972 년경, 시스템 PDP-11 에서 운용되는 운영체제 Unix 를 개발하기.
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
© 2012 생능출판사 All rights reserved 쉽게 풀어쓴 C 언어 Express C Express 제 2 장 프로그램 개발과정.
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
베플리-T 2.8 설치 매뉴얼 1. 윈도우 XP에서 설치하기 p.2
제2장 프로그램 개발과정 C Express.
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발 과정 C Express.
기초C언어 제1주 실습 강의 소개, C언어 개요, Cygwin/Eclipse 사용 컴퓨터시뮬레이션학과 2016년 봄학기
무료문자 보내기 62. 창업자께서 현재 스마트폰 무제한 약정 요금제를 사용하고 계시다면
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발과정 C Express Slide 1 (of 31)
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++로 프로그래밍한다는 것의 의미 세상에서 가장 간단한 C++ 프로그램
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++ 프로그래밍 기초 : 객체지향의 시작 C++로 프로그래밍한다는 것의 의미
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Database Laboratory, Hong Ik University
Power Java 제3장 이클립스 사용하기.
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발과정 C Express.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
Power Java 제2장 자바 개발 도구.
C 언어 1 1주차 C언어 시작하기 - 1차시 C 언어 특징 및 프로젝트 생성 Programming Language.
Visual Basic .NET 처음 사용하기.
Communication and Information Systems Lab. 황재철
1. C++ 시작하기.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
6장. printf와 scanf 함수에 대한 고찰
C++프로그래 밍 컴퓨터정보과 / 이기희교수.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
어서와 C언어는 처음이지 제14장.
영상처리 실습 인공지능연구실.
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
Nessus 4 설치 정보보호응용 조용준.
3D 프린팅 프로그래밍 01 – 기본 명령어 강사: 김영준 목원대학교 겸임교수.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
자바 5.0 프로그래밍.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
문자열 컴퓨터시뮬레이션학과 2015년 봄학기 담당교수 : 이형원 E304호,
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
컴퓨터 개론 및 실습 1주차 2015년 03월 05일.
빌드 성공.
( Windows Service Application Debugging )
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
청각장애인용 APP 구성 및 사용법.
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
STS 에서 웹 서버 설치 방법.
제 6 강 Getting started.
DK-128 개발환경 설정 아이티즌 기술연구소
수동 설치시는 설치 방법 1. 두번에 설치 CD 속에 fscommand 폴더 밑에 Osstem 이라는 폴더를
Homework #12 (1/2) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다.
05. General Linear List – Homework
Tensorboard in Windows
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
Chapter 10 데이터 검색1.
함수, 모듈.
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
무선랜 사용자 설명서 (Windows Vista 사용자).
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
Microsoft Word 2002 제1장 문자열의 삽입과 변경.
숙제 작성 및 제출 과정 김진하 2008/03/14.
프로그래밍 개론 Ⅰ 제 1장 . 서론 ②.
Docker Study 6~7.
SPL-Duino 블록 편집기 이용하기 전류센서 블록 만들기 SPL-Duino 블록 편집기를 실행합니다.
Presentation transcript:

Chapter 02 프로그램 개발 첫걸음

프로그래밍 컴퓨터 컴퓨터에서 특정 목적의 일을 수행하는 프로그램을 만드는 과정을 “프로그래밍한다”라고 표현 이러한 프로그램을 만드는 사람을 프로그램 개발자 (Developer) 또는 프로그래머(Programmer) 개발자란 그 정의가 상당히 넓을 수 있고, 프로그래머란 개발자 중에서도 프로그램 원시코드를 만드는 개발자

프로그래밍 과정 프로그램 언어와 개발 도구 컴파일링과 링킹 프로그램을 개발하기 위해서는 가장 먼저 프로그램 개발에 사용할 프로그램 언어를 하나 선정 그 다음에는 선정한 언어를 이용하여 프로그램을 개발하기 위한 환경인 개발 도구(Developing Tools)가 필요 컴파일링과 링킹 프로그램 컴파일러와 링커

통합개발환경 통합개발환경 Visual C++ 컴파일러, 디버거, 링커, 에디터 등을 통합적으로 제공하는 개발 환경을 통합 개발 환경(Integrated Development Environments) 통합 개발 환경의 대표적 제품이 MS의 비쥬얼 C++(MS Visual C++) Visual C++ 프로그램 언어 C와 C++를 이용하여 응용 프로그램을 개발할 수 있는 개발 도구 이용할 버전은 Microsoft Visual C++ 6.0 Professional Edition

개발도구 실행 비쥬얼 C++의 실행 바탕화면에 있는 비쥬얼 C++의 프로그램 실행 아이콘을 더블클릭 다음은 개발도구를 실행한 첫 화면

프로젝트 만들기 메뉴 File 의 New

콘솔 애플리케이션 종류 빈 프로젝트 만들기

소스 파일 만들기 폴더에 파일 추가

소스 파일 만들기 에디터에 파일 생성

준비완료 소스를 작성할 수 있는 모든 준비가 완료 개발 환경의 전체 윈도우 화면은 크게 세 부분 즉 작업 창, 결과 창, 파일 창으로 개발 환경 전체 윈도우의 오른쪽 부분의 파일 창에서, 주어진 C 언어 소스를 작성 습

프로그램 준비 프로젝트 만들기 복습

첫 프로그램 원하는 문장(문자열) 출력 소스 작성 나는 홍 길동이고 학번은 2004-2014입니다. 자신의 이름과 학번을 출력하는 프로그램을 만들어보자 이 프로그램은 myname을 프로젝트 이름으로 하고 소스 코드는 myname.c 파일에 작성 소스 작성 C 언어의 문법에서 영어의 대소문자는 구별하므로, 대소문자를 구분하여 신중히 작성 나는 홍 길동이고 학번은 2004-2014입니다.

소스 작성 시 주의점 대소문자를 정확히 구분하자. 특수 문자(#, {, }, (, ), <, >, /,\, ‘, “)를 정확히 구분하여 기술하자. 문장 뒤에는 세미콜론(;)을 반드시 기술하자. 되도록이면 처음에는 잘 작성된 코드의 모양을 그대로 모방하여, 공백과 라인을 구분하자. 한 단어의 중간에는 공백이 없어야 하며, 정확한 철자에 유의하자. 들여쓰기에 반드시 유의하자.

에디터의 글자 색상 메뉴 Tools 6가지 부류의 색상 지정 하부 Options… 선택 키워드(Keyword) 주석(Comment) 수(Number) 문자열(String) 연산자(Operator) 그 외 일반 텍스트

교재에서 색상 6가지 부류의 색상 지정 키워드(Keyword) 주석(Comment) 수(Number) 문자열(String) int, void, return은 파란색 주석(Comment) /* */ 부분은 녹색 수(Number) 분홍색 문자열(String) 붉은색 연산자(Operator) 고동색 그 외 일반 텍스트 main, printf는 검은색

프로그램의 이해 주석 소스의 첫 줄에 보이는 /* … */을 주석(Comments) 주석은 프로그램 언어의 문법과는 관계없는 프로그램 설명 문장을 표현하기 위한 방법 /* 기호와 */ 기호 사이에 입력되는 글자는 모두 프로그램 언어의 문법과는 관계없는 문장을 기술 주석의 길이는 아무리 길어도 프로그램과는 무관하므로 필요한 경우에는 충분히 이용 다음과 같이 여러 줄에 걸쳐 주석 이용이 가능 /* myname.c */

프로그램의 이해 전처리기 지사자(Preprocessor directives) 컴파일 하기 전에 먼저 처리해야 할 일을 수행하도록 명령을 내리는 문장 문장 #include는 다음에 나오는 헤더 파일(header file)을 이 문장이 있는 부분에 삽입하는 역할을 수행 즉 문장 #include 다음에는 헤더 파일의 이름을 <파일이름> 형식으로 반드시 기술 #include 문장은 반드시 한 줄에 모두 기술 #include <헤더파일이름>

프로그램의 이해 main 함수 함수 main()은 C 언어에서 프로그램이 시작되는 함수로, 프로그램이 실행되려면 프로그램은 반드시 main() 함수를 가져야 함 함수 main()에서 기술되는 단어인 int, main, void는 모두 소문자로 대소문자를 구분하여 정확히 기술 int 와 main 사이의 공백은 단어를 구별하는 중요한 의미가 있으므로, 하나 이상의 공백은 반드시 필요 main 이후의 6 번째 라인의 집합기호 {는 반드시 있어야 하며, 이는 main() 함수의 시작을 의미 마찬가지로 10 번째, 즉 마지막 줄에 있는 집합 기호 }는 main 함수의 끝을 의미하고 main() 함수의 마지막에 반드시 기술 함수 main(void) 이후의 문장에서 여러 줄에 걸쳐 문장이 있는 것을 볼 수 있는데, 이것은 프로그램 읽기(readability)를 쉽게 하기 위함 반드시 줄마다 하나의 문장을 기술해야 하는 것은 아님 /* myname.c */ #include <stdio.h> int main(void) { printf("나는 홍 길동이고 학번은 2004-2014입니다. \n"); return 0; }

프로그램의 이해 printf 함수 표준출력으로 출력을 하기 위한 함수 함수 이름 printf는 print formatted라는 의미에서 만들어진 이름으로, 정형화된 표준 출력을 위한 함수 함수 printf()를 이용한 마지막 부분의 세미콜론은 C 언어에서 문장의 마지막에 반드시 나와야 하는 문자

프로그램의 이해 문자열(String) 문자열에서의 \n 소스의 “나는 홍길동이고 …”와 같이 문자가 연결된 것을 문자열 C 언어에서는 문자열을 구성하려면 문자열을 큰 따옴표로 앞과 뒤를 둘러싸야 함 문자열에서의 \n 이 두 문자는 문자열을 구성하는 의미 있는 문자로 이 두 문자는 반드시 붙여 써야 함 \n 의 의미는 \n이 나타나는 이후에는 새로운 줄에 출력하라는 의미 /* myname.c */ #include <stdio.h> int main(void) { printf("나는 홍 길동이고 "); printf("학번은 2004-2014입니다.\n"); return 0; }

컴파일 목적파일을 생성 컴파일 메뉴는 Build 하부의 Compile myname.c를 선택하거나, 아이콘은 도구 아이콘에서 종이를 모아놓은 것과 같은 아이콘을 선택 또는 Ctrl + F7 키 이용

컴파일 결과 결과창 출력된 메시지는 myname.c 소스를 컴파일하여 목적 파일인 myname.obj 파일이 성공적으로 만들어진 것을 표현 여러분의 화면에서 0 error(s), 0 warning(s)가 아니면 에러나 경고가 발생한 것 이 경우 대부분 여러분의 소스 코딩에 문제가 있는 것으로 다시 한번 주의를 기울여 잘못된 부분을 찾아 수정하여 다시 컴파일 목적 파일은 소스파일 이름과 object의 obj를 확장자로, 그 이름을 명명

소스 파일에서 목적 파일 컴파일 목적파일의 생성

프로그램 실행 실행 파일 만들기 실행 메뉴 Build 하부의 build myname.exe를 선택 아이콘은 도구아이콘에서 종이 박스를 누르는 듯한 아이콘을 선택 또는 F7 키 실행 메뉴 Build 하부의 Execute myname.exe를 선택 아이콘은 도구아이콘에서 느낌표(!) 아이콘을 선택 또는 ctrl + F5 키 이 방법은 실행 파일을 만들지 않더라도 자동으로 실행 파일을 먼저 생성하고 실행

실행 결과 콘솔 프로그램의 결과 결과 화면 다음과 같은 도스창(콘솔)에서 실행 실행파일 myname.exe를 실행한 결과 실행화면은 새로운 창에서 출력하려는 문장(“나는 홍 길동이고 학번은 2004-2014입니다.”)이 나타나고, 그 다음 줄에 영문(Press any key to continue)은 비쥬얼 C++에서 프로그램을 실행하면 제일 마지막에 항상 나오는 것으로 아무 키나 누르면 실행 화면이 닫힌다는 의미를 사용자에게 알려주는 문장 이 문장은 프로그램 내용과는 무관하며, 이 문장이 나오면 프로그램이 정상적으로 실행되고 종료된 것을 의미

에러 수정 에러 디버깅 프로그램 과정에서 나타나는 문제를 에러(Error) 에러는 크게 컴파일 시간에 발생하는 에러와 실행 시간에 발생한 에러로 구분 컴파일 시간에 발생하는 에러를 “컴파일 (시간) 에러” 실행 시간에 발생한 에러는 “실행 (시간) 에러 실행 시간 에러는 넓은 의미로 링크 과정과 실행 과정에서 발생하는 에러로 볼 수 있음 디버깅 컴파일 에러나 실행 에러를 수정하는 과정을 디버깅(debugging) 디버깅이란 버그를 잡는다는 의미로 여기서 버그란 바로 에러를 의미

디버깅 예제 프로그램 목적 파일 구성 소스 디버깅 본인의 정보, 즉 이름, 나이, 생년월일을 세 줄에 출력하는 프로그램 프로그램 저장 장소 : D:\source 폴더 프로젝트 이름 : mybirth 소스 파일 이름 : mybirth.c 소스 아래와 같이 작성했다면 이 소스는 컴파일 시간에 에러가 발생 소스의 색상이 모두 녹색 디버깅 에러 메시지를 자세히 읽어 에러를 수정하는 디버깅 과정을 거쳐, 완벽한 프로그램을 만들어 보도록

에러 메시지 메시지의 이해 에러 수정 에러가 발생한 파일 이름과 줄 번호가 나타나고 이어서 에러 번호 C1071 13이 에러 발생을 의심하는 줄 이어서 에러 번호 C1071 그리고 에러 메시지 unexpected end of file found in comment 에러 수정 에러 발생 줄 번호인 13라인을 수정하는 것이 아니라, 1라인의 마지막 부분인 *와 /사이의 공백을 제거해야 함 에러 메시지는 13라인으로 나오는데, 실제로는 1라인을 수정 에러 메시지의 에러 라인 번호와 수정해야 할 위치가 일치하지 않을 수 있음

#include 잘못된 단어 입력 이번에는 3라인에서 에러번호 C1021이고 메시지는 invalid preprocessor command 'incude' 3라인에서 include의 철자가 잘못돼서 나는 에러 단어 include 에서 철자 l이 빠진 것

함수 printf() 또 다른 경고 수정 그러나 아직도 링크가 안됨 수정된 소스를 컴파일하면 에러는 없는데 다음과 같이 1 개의 경고(Warning)가 발생 경고는 경미한 에러라고 볼 수 있는데, 이러한 경고도 모두 제거하는 것이 좋음 위 소스에서는 경고로 나오지만 이 문제를 수정하지 않고는 프로그램을 실행할 수 없음 수정 위 경고 메시지는 다음 소스와 같이 7라인에서 print를 printf로 수정 그러나 아직도 링크가 안됨

함수 main() 링크 에러 메러 메시지 분석 컴파일은 가능하나 링크에서 다음과 같은 에러가 발생 두 개의 에러가 발생하는데 모두 함수 main을 Main으로 잘못 기술한 것에서 발생 메러 메시지 분석 에러 메시지는 외부 심볼 main을 해결할 수 없다고 하는데 소스에서 함수 main()이 없기 때문에 발생하는 에러 링크 과정은 여러 함수를 하나의 응용 프로그램으로 연결하는 과정으로 함수 main()이 있어야 응용 프로그램을 만들 수 있음

로직 에러 실행 로직 에러 위 소스를 컴파일하고 실행하면 다음과 같은 결과가 발생 실행에는 아무 문제가 없으나 처음에 의도한 결과와 다름 3줄에 본인의 정보가 나와야 하나 결과는 2줄에 나오고 있음 로직 에러 위와 같이 컴파일과 실행에는 문제가 없으나 원하는 결과가 나오지 않은 것도 하나의 에러 이러한 에러를 논리 에러(Logic Error) 이러한 논리 에러도 결국 소스 코딩을 잘못했기 때문

완전한 프로그램 로직 에러의 수정 소스 8줄에서 \t를 \n으로 수정 \t은 수평 탭 만큼의 이동을 의미

디버깅 과정 return 0; 프로그램 부분 5 가지 수정 /* mybirth.c */ #include <stdio.h> int main(void) { printf("나는 홍 길동이고\n"); printf("18살이며,\n"); printf("생년월일은 851010입니다.\n"); return 0; }

프로그램 연습 프로그램 목적 파일 구성 다음과 같은 문장을 출력하는 프로그램을 작성 프로그램 저장 장소 : D:\source 폴더 프로젝트 이름 : mylang 소스 파일 이름 : mylang.c

소스 5가지 수정 /* mylang.c */ #include <stdo.h> Int main(void) { printf("주요 프로그램 언어 :\n"); printf("\t\tC 언어\n"); printf("\t\tPascal 언어\n"); printf("\t\tJava 언어\n'); printf("\t\tC# 언어\n); printf("\t\C++ 언어\n"); return 0; }