문자열 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,

Slides:



Advertisements
Similar presentations
2014 가을학기 계산 입문 연습 #4 지도교수 : 박성우 조교 : 이다훈. Python 을 설치합시다.
Advertisements

Chapter 12. 배열. 배열  동일한 항목들이 동일한 크기로 연속적으로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는 자료 구조.
1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
출석수업 과제 – 총 5문제, 10월 25일 제출 정보통계학과 장영재 교수.
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
Part 03 상수, 변수, 자료형 ©우균, 창병모 © 우균, 창병모.
기초C언어 제1주 실습 강의 소개, C언어 개요, Cygwin/Eclipse 사용 컴퓨터시뮬레이션학과 2016년 봄학기
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Report #5 - due: 4/13 다음 10*5의 희소 행렬 A, B를 고려하라.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
제15장 파일 입출력 문자열을 출력하는 여러가지 방법 (15-2쪽) 문자열만 처리하는 입출력 함수
1. C++ 시작하기.
Heesang kim PL/SQL 3 Heesang kim.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Javascript Basic Sample Programs
메시지 큐[5] – test1.c 메시지 제어: msgctl(2) #include <sys/msg.h>
2007 1학기 11 프로젝트 기초 실습.
11장. 1차원 배열.
C#.
13. 연산자 오버로딩.
C 프로그래밍 C언어 (CSE2035) (Chap11. Derived types-enumerated, structure, and union) (1-1) Sungwook Kim Sogang University Seoul, Korea Tel:
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
프로그래밍 개요
어서와 C언어는 처음이지 제14장.
이름 : 황 상 두 전화번호 : 이메일 : PinTool 이름 : 황 상 두 전화번호 : 이메일 :
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
에어 조건문.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
3D 프린팅 프로그래밍 05 – 반복패턴 만들기 강사: 김영준 목원대학교 겸임교수.
보고서 (due 5/8) 다음과 같은 방식으로 문제를 해결하시오. 문제 분석 알고리즘 작성 프로그램 작성 테스트 및 검증
C언어 응용 제7주 실습 해보기 제6장.
김선균 컴퓨터 프로그래밍 기초 - 7th : 함수 - 김선균
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
Chapter 08. 함수.
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
문자열 컴퓨터시뮬레이션학과 2015년 봄학기 담당교수 : 이형원 E304호,
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
강의 소개 컴퓨터시뮬레이션학과 2017년 봄학기 담당교수 : 이형원 E304호,
C언어 응용 제1주 실습 해보기.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문
[ 단원 04 ] 반복과 배열.
2nd day Indexing and Slicing
제 15 강 문자와 코드 shcho.pe.kr.
에어 PHP 입문.
기초 C언어 제14주 실습 전처리 및 비트필드, 스트림과 파일 입출력, 동적메모리와 연결 리스트
Homework #12 (1/2) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다.
Flow Diagram IV While.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
함수, 모듈.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
TVM ver 최종보고서
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
동적메모리와 연결 리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
프로그래밍 개론 Ⅰ-실습 2장 데이터와 식①.
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
어서와 C언어는 처음이지 제21장.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
Report #2 (기한: 3/16) 데이터 구조 과목의 수강생이 50명이라고 가정한다. 이 학생(학번은 2016????으로 표현됨)들의 중간 시험(0~100), 기말 시험(0~100) 성적을 성적 파일에 작성하라(프로그램을 통해서 또는 수작업으로). 성적 파일을 읽어들여서.
6 객체.
제 10 강 문자 입출력.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

문자열 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호, hwlee@inje.ac.kr

다음과 같이 동작하는 행맨(hangman) 프로그램을 작성하시오. 사용자가 주어진 문장을 알아 맞히도록 하시오. 사용자는 한 문자 또는 문장을 입력할 수 있도록 하시오. 사용자가 입력한 문자가 정답에 있는지를 판단하고 있으면 찾은 문자열에 추가하는 함수 check를 만들어 사용하시오.

알고리즘 : main 문장을 다 맞출 때 까지 다음을 반복한다. 최종 정답을 출력한다. 현재까지 찾은 정답 문장을 출력한다. 문자 또는 문장을 입력하도록 출력한다. 표준출력 버퍼를 비운다. 다음을 무한히 반복한다. 문자를 하나 받아들인다. 현재 입력한 문자가 ‘\r’(carriage return) 이면 표준입력버퍼를 비우고 반복을 종료한다. 문장을 다 맞추었으면(check) 다 맞추었다는 표시를 하고 반복을 종료한다. 최종 정답을 출력한다.

필요한 변수 : main 임의로 정한 문장을 저장할 문자열 변수(solution) 사용자가 맞춘 문자열을 저장할 문자열 변수(answer) 사용자가 입력한 문자를 저장할 문자 변수(ch) 다 맞추었다는 표시를 저장할 정수형 변수(done)

알고리즘 : main ch와 done을 0으로 초기화 한다. done 이 0이면 다음을 반복한다. 최종 정답을 출력한다. 현재까지 찾은 정답 문장(answer[])을 출력한다. 문자 또는 문장을 입력하도록 출력한다. 표준출력 버퍼를 비운다. 다음을 무한히 반복한다. 문자를 하나 받아들인다. 현재 입력한 문자가 ‘\r’(carriage return) 이면 표준입력버퍼를 비우고 반복을 종료한다. Check함수의 결과가 1이면 done에 1을 대입하고 반복을 종료한다. 최종 정답을 출력한다.

알고리즘 : check 매개변수 리턴 값 정답문자열을 저장하는 문자배열(s[]) 사용자가 현재 찾은 문자열을 저장하는 문자배열(a[]) 현재 사용자가 추측한 문자를 저장하는 문자 변수(ch) 리턴 값 정수( 0 : 정답과 일치하지 않음, 1: 정답과 일치함)

알고리즘 : check i를 0부터 s[i]가 NULL 까지 1씩 증가 시키면서 다음을 반복한다. s[i] 가 ch와 같으면 ch를 a[i]에 대입한다. s와 a가 일치하면 1을 리턴하고 아니면 0을 리턴한다.

프로젝트 생성 프로젝트명 입력 : hangman Empty Project 선택 Cygwin GCC 콤파일러 선택 생성된 빈 프로젝트

소스 작성(1) main 함수 소스파일명 입력 : hangman.c

소스 작성(2) main 함수 소스수정 생성된 빈 소스 파일 실행프로그램이 되기 위한 최소 내용이 추가된 소스 파일 hangman.c hangman.c hangman.c 소스수정 생성된 빈 소스 파일 실행프로그램이 되기 위한 최소 내용이 추가된 소스 파일

소스작성(3) main 함수 배열의 크기를 지정하는 매크로 상수 SIZE 정의 main 함수에서 호출할 함수의 원형 선언 맞추어야할 문자열을 저장하는 배열 변수 선언 맞춘 문자열을 저장하는 배열 변수 선언 받아들인 문자와 종료 판단 변수 맞추었는지를 체크하는 함수 호출 결과를 출력 main함수의 알고리즘과 사용할 함수의 원형을 추가 한 소스

소스작성(4) check 함수 맞추어야할 문자배열 매개변수 현재까지 맞춘 문자배열 매개변수 현재 추측한 문자 매개변수 반복문을 위한 지역 변수 선언 추측한 문자가 존재하면 해당하는 문자를 대체한다. 모든 문자에 대해서 추측한 문자가 있는지를 확인하는 반복문 앞에서 작성한 main함수에 이어서 작성한 check 함수 이 함수는 사용자가 문장을 다 맞추었는지를 체크한다.

소스작성(6) 전체 소스

실행 하기 프로그램 실행예 소스 저장 프로젝트 빌드 프로그램 실행

제12장 Programming 문제 2번 문자열을 입력으로 받아서 문자열에 포함된 모든 공백 문자를 삭제하는 함수를 작 성하고 테스트하라. 문자열을 받아들이는 함수를 작성하시오.(get_string) 문자열을 받아들일 때는 getchar() 함수를 사용하시오. 공백문자를 삭제하는 함수를 작성하시오.(delete_space)

알고리즘 : main 문자열을 받아들여서 문자 배열에 저장한다.(get_string) 받아들인 문자열에서 모든 공백 문자를 삭제한다.(delete_space) 결과를 출력한다.

필요한 변수 : main 받아들인 문자열을 저장할 배열 변수(sentence[]) 공백을 삭제한 문자열을 저장할 배열 변수(nospace[])

알고리즘 : get_string 매개변수 리턴 값 받아들인 문자열을 저장하는 문자배열(s[]) 없음

알고리즘 : get_string i를 0으로 초기화 한다. 공백이 있는 문자열을 입력하라는 메시지를 출력한다. 표준 출력버퍼를 비운다. i가 N-1 보다 작으면 i를 1씩 증가 시키면서 다음을 반복한다. 문자를 받아들여서 ch에 저장한다. ch 가 ‘\r’(CR) 이면 표준입력버퍼를 비우고 반복을 종료 한다. 아니면 s[i]에 ch를 대입한다. 마지막 문자에 ‘\0’을 대입한다.

알고리즘 : delete_space 매개변수 리턴 값 받아들인 문자열을 저장하는 문자배열(s[]) 공백을 지운 문자열을 저장하는 문자배열(no[]) 리턴 값 없음

알고리즘 : delete_space i, j를 0으로 초기화 한다. s[i] 가 ‘\0’ 이 아니면 i를 1씩 증가 시키면서 다음을 반복한다. s[i] 가 빈칸이면 반복을 계속한다. no[j]에 s[i]를 대입한다. j를 1 증가 시킨다. No[j]에 ‘\0’을 대입한다.

프로젝트 생성 프로젝트명 입력 : ch12ex02 Empty Project 선택 Cygwin GCC 콤파일러 선택 생성된 빈 프로젝트

소스 작성(1) main 함수 소스파일명 입력 : main.c

소스 작성(2) main 함수 소스수정 생성된 빈 소스 파일 실행프로그램이 되기 위한 최소 내용이 추가된 소스 파일 main.c main.c main.c 소스수정 생성된 빈 소스 파일 실행프로그램이 되기 위한 최소 내용이 추가된 소스 파일

소스작성(3) main 함수 배열의 크기를 지정하는 매크로 상수 MAX_SIZE 정의 문자열을 받아들이는 함수와 공백을 제거하는 함수의 원형 선언 받아들인 문자열과 공백을 제거한 문자열을 저장할 변수 선언 공백을 포함하는 문자열을 받아들이는 함수 호출 문자열에서 공백문자 제거하는 함수 호출 결과를 출력 main함수의 알고리즘과 사용할 함수의 원형을 추가 한 소스

소스작성(4) get_string 함수 받아들이는 문장의 최대 길이를 저장한 매개변수 받아들인 문장을 저장할 문자배열 매개변수 반복문을 위한 지역 변수와 문자를 저장할 지역 선언 문장을 입력하라는 메시지를 출력한다. 표준출력버퍼를 비운다. 문자를 표준입력버퍼에서 읽어들인다. 문자가 ‘\r’ 이면 표준입력버퍼를 비우고 반복을 종료한다. 아니면 문자를 배열에 할당한다. 사용자가 엔터키를 입력할 때까지의 문자열을 받아서 배열에 저장하는 반복문 앞에서 작성한 main함수에 이어서 작성한 get_string 함수 이 함수는 사용자가 입력한 문장을 받아서 문자배열에 저장한다.

소스작성(5) delete_space 함수 공백을 제거한 문자열을 저장할 문자배열 매개변수 받아들인 문장을 저장할 문자배열 매개변수 반복문을 위한 지역 변수 선언 i=0, j=0으로 시작하여 NULL문자가 나올 때까지 i를 1씩 증가 시키면서 다음을 만복한다. s[i]가 공백이면 반복을 계속한다. 아니면 s[i]를 no[j]에 할당한다. j를 1증가 시킨다. 입력한 문장의 끝까지 검색하여 공백을 제거하는 반복문 앞에서 작성한 get_string함수에 이어서 작성한 delete_space 함수 이 함수는 매개변수로 넘어온 문자열에서 공백을 제외한 문자열을 구한다.

소스작성(6) 전체 소스

프로그램 실행예 실행 하기 소스 저장 프로젝트 빌드 프로그램 실행

스크린 샷 예제 511쪽 7, 9번 512쪽 13, 14번 513쪽 16번 5월 19일 오후 1시 30분까지 제출