쉽게 풀어쓴 C 프로그래밍

Similar documents
8장 문자열

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

Microsoft PowerPoint - Java7.pptx

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

17장 클래스와 메소드

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

A Review of C Programming

중간고사

10장 리스트

14장 파일

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

C 언어 프로그래밊 과제 풀이

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

쉽게

목차도비라

슬라이드 1

Microsoft PowerPoint 웹 연동 기술.pptx

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍

프로그램의실행화면 주석 (comment) 두수의합 : 300 /* 두개의숫자의합을계산하는프로그램 */ 주석은코드를설명하는글입니다. 주석 3 가지방법의주석 주석의예 /* 한줄로된주석 */ /* 저자 : 홍길동날짜 : 2013.

adfasdfasfdasfasfadf

슬라이드 1

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

May 2014 BROWN Education Webzine vol.3 감사합니다. 그리고 고맙습니다. 목차 From Editor 당신에게 소중한 사람은 누구인가요? Guidance 우리 아이 좋은 점 칭찬하기 고맙다고 말해주세요 Homeschool [TIP] Famil

PowerPoint Template

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

BMP 파일 처리

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

歯처리.PDF

3장 함수

02장.배열과 클래스

DIY 챗봇 - LangCon

Modern Javascript

14장 파일

PowerPoint 프레젠테이션

112초등정답3-수학(01~16)ok

Microsoft PowerPoint - 27.pptx

Java ...

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

단순 베이즈 분류기

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Week5

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

11장 포인터

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

자연언어처리

윈도우즈프로그래밍(1)

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

PowerPoint Presentation

Polly_with_Serverless_HOL_hyouk

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

Chapter 4. LISTS

Microsoft PowerPoint - chap-03.pptx

PowerPoint Presentation

c

3항사가 되기 위해 매일매일이 시험일인 듯 싶다. 방선객으로 와서 배에서 하루 남짓 지내며 지내며 답답함에 몸서리쳤던 내가 이제는 8개월간의 승선기간도 8시간같이 느낄 수 있을 만큼 항해사로써 체질마저 변해가는 듯해 신기하기도 하고 한편으론 내가 생각했던 목표를 향해

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - 2주차-1차시 (강의자료) ch01 - C Programming 기초 (part 2)

Stage 2 First Phonics

Unit 2. Spring Is Here Spring Is Here Spring is (here / in). The snow is melting. Spring is here. The (flowers / bees) are blooming. Spring is here. T

Page 2 of 5 아니다 means to not be, and is therefore the opposite of 이다. While English simply turns words like to be or to exist negative by adding not,

Chapter 4. LISTS

; struct point p[10] = {{1, 2, {5, -3, {-3, 5, {-6, -2, {2, 2, {-3, -3, {-9, 2, {7, 8, {-6, 4, {8, -5; for (i = 0; i < 10; i++){ if (p[i].x > 0 && p[i

?춎?숏

(Microsoft Word - \301\337\260\243\260\355\273\347.docx)

Absolute Blue 태양의 위세 앞에서도 당당한 여자의 자존 심을 닮은 컬러. 바람을 닮아 유연한, 물을 닮아 자유롭게, 거칠 것 없이 여름의 클라 이맥스에 올라서서 세상을 물들이는 소리 없는 지배자, 블루


<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - 26.pptx

Microsoft PowerPoint - Lesson2.pptx

4장.문장

12-file.key

강의 개요

컴파일러

PowerPoint 프레젠테이션

T100MD+

USER GUIDE

<C3CA3520B0FAC7D0B1B3BBE7BFEB202E687770>

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

Javascript.pages

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

Tcl의 문법

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

PowerPoint 프레젠테이션

untitled

Cluster management software

( )전국네트워크

( )업계소식


( )업계소식

Transcription:

프로그램에서자료들을저장하는여러가지구조들이있다. 이를자료구조 (data structure) 라부른다.

시퀀스에속하는자료구조들은동일한연산을지원한다. 인덱싱 (indexing), 슬라이싱 (slicing), 덧셈연산 (adding), 곱셈연산 (multiplying) 리스트는앞에서자세하게살펴본바있다. 여기서는나머지시퀀스들을탐구해보자.

튜플 (tuple) 은변경될수없는리스트 >>> colors = ("red", "green", "blue") >>> colors ('red', 'green', 'blue') >>> numbers = (1, 2, 3, 4, 5 ) >>> numbers (1, 2, 3, 4, 5)

>>> t1 = (1, 2, 3, 4, 5); >>> t1[0] = 100; Traceback (most recent call last): File "<pyshell#11>", line 1, in <module> t1[0]=100 TypeError: 'tuple' object does not support item assignment >>> numbers = ( 1, 2, 3, 4, 5 ) >>> colors = ("red", "green", "blue") >>> t = numbers + colors >>> t (1, 2, 3, 4, 5, 'red', 'green', 'blue')

>>> student1 = (" 철수 ", 19, "CS") >>> (name, age, major) = student1 >>> name ' 철수 ' >>> age 19 >>> major 'CS

원의넓이와둘레를동시에반환하는함수를작성, 테스트해보자. 원의반지름을입력하시오 : 10 원의넓이는 314.1592653589793 이고원의둘레는 62.83185307179586 이다.

import math def calcircle(r): # 반지름이 r 인원의넓이와둘레를동시에반환하는함수 (area, circum) area = math.pi * r * r circum = 2 * math.pi * r return (area, circum) radius = float(input(" 원의반지름을입력하시오 : ")) (a, c) = calcircle(radius) print(" 원의넓이는 "+str(a)+" 이고원의둘레는 "+str(c)+" 이다.")

세트 (set) 는우리가수학에서배웠던집합이다. 세트는중복되지않은항목들이모인것 세트의항목간에는순서가없다.

>>> numbers = {2, 1, 3} >>> numbers {1, 2, 3} >>> len(numbers) 3 >>> fruits = { "Apple", "Banana", "Pineapple" } >>> myset = { 1.0, 2.0, "Hello World", (1, 2, 3) }

>>> numbers = {2, 1, 3} >>> if 1 in numbers: print(" 집합안에 1 이있습니다.") 집합안에 1 이있습니다. >>> numbers = {2, 1, 3} >>> for x in numbers: print(x, end=" ") 1 2 3

>>> numbers = { 2, 1, 3 } >>> numbers[0]... TypeError: 'set' object does not support indexing >>> numbers.add(4) >>> numbers {1, 2, 3, 4}

>>> A = {1, 2, 3} >>> B = {1, 2, 3} >>> A == B True >>> A = {1, 2, 3, 4, 5} >>> B = {1, 2, 3} >>> B < A True >>> A = {1, 2, 3, 4, 5} >>> B = {1, 2, 3} >>> B.issubset(A) True

>>> A = {1, 2, 3} >>> B = {3, 4, 5} >>> A B {1, 2, 3, 4, 5} >>> A & B {3} >>> A - B {1, 2}

파티에참석한사람들의명단이세트 A 와 B 에각각저장되어있다. 2 개파티에모두참석한사람들의명단을출력하려면어떻게해야할까? 2 개의파티에모두참석한사람은다음과같습니다. {'Park'}

partya = set(["park", "Kim", "Lee"]) partyb = set(["park", "Choi"]) print("2 개의파티에모두참석한사람은다음과같습니다. ") print ( partya.intersection(partyb))

텍스트파일을읽어서단어를얼마나다양하게사용하여문서를작성하였는지를계산하는프로그램을작성해보자. 입력파일이름 : proverbs.txt 사용된단어의개수 = 18 {'travels', 'half', 'that', 'news', 'alls', 'well', 'fast', 'feather', 'flock', 'bad', 'together', 'ends', 'is', 'a', 'done', 'begun', 'birds', 'of'}

# 단어에서구두점을제거하고소문자로만든다. def process(w): output ="" for ch in w: if( ch.isalpha() ): output += ch return output.lower() words = set() # 파일을연다. fname = input(" 입력파일이름 : ") file = open(fname, "r") # 파일의모든줄에대하여반복한다. for line in file: linewords = line.split() for word in linewords: words.add(process(word)) # 단어를세트에추가한다. print(" 사용된단어의개수 =", len(words)) print(words)

딕셔너리는키 (key) 와값 (value) 의쌍을저장할수있는객체

>>> contacts = {'Kim':'01012345678', 'Park':'01012345679', 'Lee':'01012345680' } >>> contacts {'Kim': '01012345678', 'Lee': '01012345680', 'Park': '01012345679'}

>>> contacts = {'Kim':'01012345678', 'Park':'01012345679', 'Lee':'01012345680' } >>> contacts['kim'] '01012345678 >>> contacts.get('kim') '01012345678' >>> if "Kim" in contacts: print(" 키가딕셔너리에있음 ")

>>> contacts['choi'] = '01056781234' >>> contacts {'Kim': '01012345678', 'Choi': '01056781234', 'Lee': '01012345680', 'Park': '01012345679'} >>> contacts = {'Kim':'01012345678', 'Park':'01012345679', 'Lee':'01012345680' } >>> contacts.pop("kim") '01012345678' >>> contacts {'Lee': '01012345680', 'Park': '01012345679'}

>>> scores = { 'Korean': 80, 'Math': 90, 'English': 80} >>> for item in scores.items(): print(item) ('Math', 90) ('English', 80) ('Korean', 80) >>>

우리는영한사전을구현하여보자. 어떻게하면좋은가? 공백딕셔너리를생성하고여기에영어단어를키로하고설명을값으로하여저장하면될것이다. 단어를입력하시오 : one 하나 단어를입력하시오 : python 없음

english_dict = dict() english_dict['one'] = ' 하나 ' english_dict['two'] = ' 둘 ' english_dict['three'] = ' 셋 ' word = input(" 단어를입력하시오 : "); print (english_dict.get(word, " 없음 "))

사용자가지정하는파일을읽어서파일에저장된각각의단어가몇번이나나오는지를계산하는프로그램을작성하여보자. 파일이름 : proverbs.txt {'a': 1, 'done.': 1, 'that': 1, 'well.': 1, 'ends': 1, 'Well': 1, 'flock': 1, 'feather': 1, "All's": 1, 'Birds': 1, 'together.': 1, 'of': 1, 'fast.': 1, 'begun': 1, 'half': 1, 'well': 1, 'travels': 1, 'news': 1, 'is': 1, 'Bad': 1}

fname = input(" 파일이름 : ") file = open(fname, "r") table = dict() for line in file: words = line.split() for word in words: if word not in table: table[word] = 1 else: table[word] += 1 print(table)

현대인들은축약어를많이사용한다. 예를들어서 "B4(Before)" "TX(Thanks)" "BBL(Be Back Later)" "BCNU(Be Seeing You)" "HAND(Have A Nice Day)" 와같은축약어들이있다. 축약어를풀어서일반적인문장으로변환하는프로그램을작성하여보자. 번역할문장을입력하시오 : TX Mr. Park! Thanks Mr.Park!

table = { "B4": "Before", "TX": "Thanks", "BBL": "Be Back Later", "BCNU":"Be Seeing You", "HAND":"Have A Nice Day" } message = input(' 번역할문장을입력하시오 : ') words = message.split() result = "" for word in words: if word in table: result += table[word] + " " else: result += word print(result)

문자열은문자들의시퀀스로정의된다. 글자들이실 (string) 로묶여있는것이문자열이라고생각하면된다.

s1 = str("hello") s2 = "Hello s1 = "Hello" s2 = "World" s3 = "Hello"+"World"

>>> word = 'abcdef' >>> word[0] 'a' >>> word[5] 'f'

>>> word = 'Python' >>> word[0:2] 'Py' >>> word[2:5] 'tho

>>> word = 'Python' >>> word[0:2] 'Py' >>> word[2:5] 'tho

>>> s="love will find a way." >>> "Love" in s True >>> "love" in s False s = input(" 문자열을입력하시오 ") if 'c' in s: print('c 가포함되어있음 ') else: print('c 가포함되어있지않음 ')

a = input(" 문자열을입력하시오 : ") b = input(" 문자열을입력하시오 : ") if( a < b ): print(a, " 가앞에있음 ") else: print(b, " 가앞에있음 ") 문자열을입력하시오 : apple 문자열을입력하시오 : orange apple 가앞에있음

>>> s = 'Never put off till tomorrow what you can do today.' >>> s.split() ['Never', 'put', 'off', 'till', 'tomorrow', 'what', 'you', 'can', 'do', 'today.']

회문 (palindrome) 은앞으로읽으나뒤로읽으나동일한문장이다. 예를들어서 "mom", "civic", "dad" 등이회문의예이다. 사용자로부터문자열을입력받고회문인지를검사하는프로그램을작성하여보자. 문자열을입력하시오 : dad 회문입니다.

def check_pal(s): low = 0 high = len(s) - 1 while True: if low > high: return True; a = s[low] b = s[high] if a!= b: return False low += 1 high -= 1 s = input(" 문자열을입력하시오 : ") s = s.replace(" ", "") if( check_pal(s)==true): print(" 회문입니다.") else: print(" 회문이아닙니다.")

머리글자어 (acronym) 은 NATO(North Atlantic Treaty Organization) 처럼각단어의첫글자를모아서만든문자열이다. 사용자가문장을입력하면해당되는머리글자어를출력하는프로그램을작성하여보자. 문자열을입력하시오 : North Atlantic Treaty Organization NATO

phrase = input(" 문자열을입력하시오 : ") acronym = "" for word in phrase.upper().split(): acronym += word[0] print( acronym )

CSV 파일은 split() 메소드를이용하여파싱될수있다. open(), readlines(), strip() 메소드를사용하여서다음과같은 CSV 파일에서데이터를읽는프로그램을작성하여보자. 홍길동,2018, 생활관 A,312,3.18 홍길동 2018 생활관 A 312 3.18 김철수,2017, 생활관 B,102,3.25 김철수 2017 생활관 B 102 3.25

# 파일을오픈한다. f = open("e:\\students.txt", "r") # 파일의각줄에대하여반복한다. for line in f.readlines(): # 공백문자를제거한다. line = line.strip() # 줄을출력한다. print(line) # 줄을단어로분리한다. words = line.split(",") # 줄의단어를출력한다. for word in words: print(" ", word)

문자열안에있는문자의개수, 숫자의개수, 공백의개수를계산하는프로그램을작성하여보자. 문자열을입력하시오 : A picture is worth a thousand words. {'digits': 0, 'spaces': 6, 'alphas': 29}

sentence = input(" 문자열을입력하시오 : ") table = { "alphas": 0, "digits":0, "spaces": 0 } for i in sentence: if i.isalpha(): table["alphas"] += 1 if i.isdigit(): table["digits"] += 1 if i.isspace(): table["spaces"] += 1 print(table)

튜플은리스트와유사하지만변경할수없는객체이다. 세트는집합으로요소들은중복되지않아야한다. 딕셔너리는사전으로키와값의쌍으로저장된다. 키를이용하여값을찾을수있다.