# data[].attributes.body
import turtle

#커서 정의 하기

t=turtle.Turtle()#커서 정의

t.screen.bgcolor('black')#배경 색상 지정

t.color('green')#커서 색상 지정

t.shape('turtle')#커서 모양 지정

#펜으로 그리기

t.pendown()

t.forward(100)

t.left(90)

t.forward(100)

t.left(90)

#마우스 클릭 시 창 닫기

t.screen.exitonclick()

# data[].attributes.body
import turtle

t=turtle.Turtle()

t.screen.bgcolor('black')

t.color('white')

t.shape('turtle')

t.pendown()

t.forward(100)

t.left(45)

t.forward(100)

t.left(45)

t.forward(100)

t.left(45)

t.forward(100)

t.left(45)

t.forward(100)

t.left(45)

t.forward(100)

t.left(45)

t.forward(100)

t.left(45)

t.forward(100)

t.left(45)

t.forward(100)

t.left(60)

t.forward(100)

t.left(60)

t.forward(100)

t.left(60)

t.forward(100)

t.left(60)

t.forward(100)

t.left(60)

t.forward(100)

t.left(60)

t.forward(100)

t.left(60)

# data[].attributes.body
import turtle

t= turtle.Turtle()

t.shape('turtle')

radlus= int(input('원의 반지름을 입력하세요 : '))

color=input('원의 색깔을 입력하세요 : ')

t.color(color)

t.begin_fill()

circle(radlus)

t.end_fill()

turtle.exltoncllck()

# data[].attributes.body
import turtle

화면 만들기

screen = turtle.Screen()

터틀 생성

apple = turtle.Turtle()

apple.shape("turtle")

apple.speed(3)

사과 그리기

def draw_apple():

apple.penup()

apple.goto(0, -100)

apple.pendown()

apple.color("red")

apple.begin_fill()

apple.circle(100)

apple.end_fill()

사과 꼭지 그리기

def draw_stem():

apple.penup()

apple.goto(0, 100)

apple.setheading(90)

apple.pendown()

apple.color("brown")

apple.pensize(5)

apple.forward(30)

사과 잎파리 그리기

def draw_leaf():

apple.penup()

apple.goto(0, 130)

apple.setheading(45)

apple.pendown()

apple.color("green")

apple.begin_fill()

apple.circle(20, 90)

apple.end_fill()

사과 그리기 터틀 실행

draw_apple()

draw_stem()

draw_leaf()

창 닫

turtle.done()

식품영양학은 우리 몸에 필요한 영양소와 이를 공급하는 음식에 대해 학습하는 학문입니다. 올바른 식습관과 균형 잡힌 식단은 건강을 유지하는 데 중요한 역할을 하며, 영양소의 중요성과 그 영향을 이해시키는 학문입니다. 식품영양학과에서는 다양한 식품에 대한 연구를 통해 우리의 몸에 필요한 영양소를 파악하고, 이를 바탕으로 건강한 식습관을 형성하는 방법을 배웁니다.

이번 활동에서는 파이썬의 터틀을 활용하여 사과를 그렸습니다. 사과는 건강과 영양을 상징하는 대표적인 과일로, 이를 그리며 식품영양학적 개념을 시각적으로 표현했습니다.

# data[].attributes.body
#별 그리기

import turtle

t=turtle.Pen()

t.forward(100)

t.left(225)

t.forward(100)

t.left(225)

t.forward(100)

t.left(225)

t.forward(100)

t.left(225)

t.forward(100)

t.left(225)

t.forward(100)

t.left(225)

t.forward(100)

t.left(225)

t.forward(100)

t.left(225)

# data[].attributes.body
import turtle

t=turtle.Turtle()

def drawCircle(color, radius, x,y):

t.penup()

t.goto(x, y)

t.pendown()

t.color(color)

t.begin_fill()

t.circle(radius)

t.end_fill()

drawCircle('brown', 100, 0, 0)

drawCircle('white', 30, -40, 100)

drawCircle('black', 15, -40, 100)

drawCircle('white', 30, 40, 100)

drawCircle('black', 15, 40, 100)

drawCircle('black', 15, 40, 100)

drawCircle('pink', 15, 0, 20)

t.hideturtle()

이 활동을 통해서 느낀점은 파이썬이라는 앱은 엔트리 코딩과는 다르게 복잡하고 어려워서 무언가를 넣거나,함수,결과값 등등 한계가 있을거라고 생각 했는데 함수를 사용해서 그림을 그려보니까 한계없이 게임이나 모션 등 많은 것을 만들 수 있을거 같다는 생각이 들었고 명령어중에 하나라도 실수하면 프로그램이 실행이 되지 않아서 어려웠던 것 같다.

# data[].attributes.body
import turtle

# 화면 설정

screen = turtle.Screen()

screen.bgcolor("white")

# 터틀 객체 생성

pen = turtle.Turtle()

pen.shape("turtle")

pen.speed(5)

# 마이크 그리기

def draw_microphone():

# 마이크 본체 (길쭉한 원통형)

pen.penup()

pen.goto(-150, -100) # 기둥 위치

pen.pendown()

pen.color("gray")

pen.begin_fill()

for _ in range(2):

pen.forward(20) # 너비

pen.left(90)

pen.forward(100) # 길이

pen.left(90)

pen.end_fill()

# 마이크의 머리 부분 (원형) - 기둥과 정확히 맞물리도록 조정

pen.penup()

pen.goto(-140, -10) # 기둥의 중간에 맞도록 위치 조정

pen.pendown()

pen.color("black")

pen.begin_fill()

pen.circle(20) # 머리 부분 원

pen.end_fill()

# 마이크의 그릴 부분 (세부 디자인)

pen.penup()

pen.goto(-140, 20)

pen.pendown()

pen.color("silver")

pen.begin_fill()

pen.circle(5) # 작은 원으로 세부 디자인

pen.end_fill()

# 노트북 그리기

def draw_laptop():

# 노트북 본체 (모니터)

pen.penup()

pen.goto(50, -50)

pen.pendown()

pen.color("gray")

pen.begin_fill()

for _ in range(2):

pen.forward(150) # 가로 길이

pen.left(90)

pen.forward(100) # 세로 길이

pen.left(90)

pen.end_fill()

# 노트북 화면 (하얀색)

pen.penup()

pen.goto(60, -40)

pen.pendown()

pen.color("white")

pen.begin_fill()

for _ in range(2):

pen.forward(130) # 가로 길이

pen.left(90)

pen.forward(60) # 세로 길이

pen.left(90)

pen.end_fill()

# 키보드 부분 (하단)

pen.penup()

pen.goto(50, -50)

pen.pendown()

pen.color("black")

pen.begin_fill()

for _ in range(2):

pen.forward(150) # 가로 길이

pen.left(90)

pen.forward(20) # 세로 길이 (키보드 부분)

pen.left(90)

pen.end_fill()

# 만년필 그리기

def draw_fountain_pen():

# 만년필 본체 (세운 직사각형)

pen.penup()

pen.goto(300, -70) # 만년필 위치 조정

pen.pendown()

pen.color("black")

pen.begin_fill()

for _ in range(2):

pen.forward(10) # 너비

pen.left(90)

pen.forward(100) # 길이

pen.left(90)

pen.end_fill()

# 만년필의 금속 부분 (은색)

pen.penup()

pen.goto(300, 0)

pen.pendown()

pen.color("silver")

pen.begin_fill()

for _ in range(2):

pen.forward(10) # 너비

pen.left(90)

pen.forward(60) # 길이

pen.left(90)

pen.end_fill()

# 만년필 펜촉 (위쪽으로 향하는 뾰족한 세모)

pen.penup()

pen.goto(300, -80) # 펜촉 위치 조정

pen.pendown()

pen.color("gold")

pen.begin_fill()

pen.setheading(60) # 펜촉을 위쪽으로 기울임

for _ in range(3): # 세모 모양

pen.forward(20) # 길이

pen.left(120)

pen.end_fill()

# 마이크, 노트북, 만년필 그리기 함수 호출

draw_microphone()

draw_laptop()

draw_fountain_pen()

# 터틀 창을 종료할 때까지 대기

turtle.done()

# data[].attributes.body
import turtle

t = turtle.Turtle()

t.shape('turtle')

radlus= int(input('원의 반지름을 입력하세요 :'))

color=input('원의 색깔을 입력하세요:')

t.color(color)

t.begin_fill()

t.clrcle(radlus)

t.end_fill()

turtle.exltonclick()

왜 그림이 그려지지 않는지 궁금하다.그래서 철자나 띄어쓰기를 꼼꼼히 따져봤는데 그림이 잘그려지지않는다

# data[].attributes.body
*곰돌이 그리기

import turtle

t=turtle.Pen()

t.shape('turtle')

t.color('orange')

t.begin_fill()

t.circle(100)

t.end_fill()

t.left(90)

t.up()

t.forward(200)

t.left(110)

t.forward(44)

t.right(90)

t.begin_fill()

t.circle(25)

t.end_fill()

t.up()

t.right(110)

t.forward(90)

t.right(70)

t.forward(10)

t.begin_fill()

t.circle(25)

t.end_fill()

제일 큰 원을 채우고 나서 귀를 그리기 위해 거북이를 이동 시킬 때, 원 안에서 이동하다보니 거북이가 안보여서 어려움이 있었다. 거북이를 이동 시킬 때 색을 다르게 하면 잘 보일 것 같다. 오른쪽 귀도 살짝 수정하면 좋을 것 같다.

# data[].attributes.body
import turtle

t=turtle.Turtle()

t.screen.bgcolor('white')

t.color('red')

t.shape('turtle')

t.begin_fill()

t.left(50)

t.forward(133)

t.circle(50, 200)

t.right(140)

t.circle(50, 200)

t.forward(133)

t.color('white')

t.right(40)

t.forward(100)

t.color('purple')

for _ in range(6):

t.circle(100, 60)

t.left(120)

t.circle(100, 60)

t.left(60)

t.color('yellow')

t.circle(5)

t.screen.exitonclick()

하트와 꽃을 터틀로 표현했습니다.

# data[].attributes.body
import turtle

t=turtle.Turtle()

t.shape('turtle')

r=int(input('반지름 입력:'))

color=input('원 색깔 입력:')

t.color(color)

t.begin_fill()

t.circle(r)

t.end_fill()

t.screen.exitonclick()

동그라미를 그렸다. 터틀의 기본적인 사용법을 익히기 위하여 연습을 위해 그렸다.

# data[].attributes.body
import turtle

t=turtle.Turtle()

t.shape('turtle')

r=int(input('반지름 입력:'))

color=input('원 색깔 입력:')

t.color(color)

t.begin_fill()

t.circle(r)

t.end_fill()

t.screen.exitonclick()

# data[].attributes.body
import turtle

t=turtle.Pen()

t.forward(100)

t.left(225)

t.forward(100)

t.left(225)

t.forward(100)

t.left(225)

t.forward(100)

t.left(225)

t.forward(100)

t.left(225)

t.forward(100)

t.left(225)

t.forward(100)

t.left(225)

t.forward(100)

t.left(225)

t.left(60)

t.forward(100)

t.right(120)

t.forward(100)

이것을 만들 때 어떻게 할지 잘 모르겠어서 연습문제를 참고하여 거기에다가 선 두개를 더 추가하여 그림을 그렸다.

# data[].attributes.body
#임포트 세팅

from turtle import *

import math

#입력

a=int(input("x^2의 계수를 입력하세요: "))

b=int(input("x의 계수를 입력하세요: "))

c=int(input("상수항을 입력하세요: "))

#판별식

d=b**2-4*a*c

#판별식>0 - 서로 다른 두 실근

if (d>0):

x1=((-b+math.sqrt(d))/2*a)

x2=((-b-math.sqrt(d))/2*a)

print("첫번째 근 : ", x1)

print("두번째 근 : ", x2)

print("첫번째 근 ; ", "(", -b, "+", "√", d, ")","/", 2*a)

print("두번째 근 ; ", "(", -b, "-", "√", d, ")","/", 2*a)

#판별식=0 - 중근

if(d==0):

x1=(-b)/2*a

print("중근 : ", x1)

#판별식<0 - 허근

if(d<0):

x1r=((-b+math.sqrt(-d))/2*a)

x2r=((-b-math.sqrt(-d))/2*a)

print("첫번째 근 : ", x1r, "i")

print("두번째 근 : ", x2r, "i")

print("첫번째 근 ; ", "(", -b, "+", "√", -d, "i", ")", "/", 2*a)

print("두번째 근 ; ", "(", -b, "-", "√", -d, "i", ")", "/", 2*a)

#타이틀

title("이차함수 그리기")

#y축

y=Turtle()

y.goto(0,-200)

y.goto(0,200)

y.setheading(90)

y.write("y")

#x축

x=Turtle()

x.goto(-200,0)

x.goto(200,0)

x.write("x")

#원점

o=Turtle()

o.penup()

o.hideturtle()

o.goto(0,0)

o.write("0")

#그래프

pen=Turtle()

pen.penup()

pen.goto(-50,0)

pen.pensize(1)

#초기 x값 설정

xcor=-50

#그래프 그리기

while(xcor<=50):

ycor=(a*(xcor**2))+(b*xcor)+c

pen.goto(xcor,ycor)

pen.pendown()

xcor+=0.5

이차함수의 이차항의 계수와 일차항의 계수, 그리고 상수항의 계수만 적었음에도 그래프를 쉽게 그려내는 프로그램을 만들었다. 시행착오를 겪으며 나누는 기호를 괄호 안에서 빼기도 하고 판별식의 부호를 바꾸기도 하며 더욱 완성된 프로그램을 만들 수 있었다. 이렇게 컴퓨터로 만드는 것이 이런 것까지 하는게 신기했고 선생님께서 화학 분야 등의 과학에도 이런 것이 많이 사용된다고 하셨는데 내 진로의 방향인 과학에 적용되는만큼 열심히 배워야겠다. 처음부터 완성되진 않아서 어려웠지만 결과가 나와서 만족스러웠다.

# data[].attributes.body
from turtle import *

import math

a=int(input('x^2의 계수를 입력하세요 : '))

b=int(input('x의 계수를 입력하세요 : '))

c=int(input('상수항을 입력하세요 : '))

d=b^2-4*a*c

if d>0:

x1=((-b+math.sqrt(d))/2*a)

x2=((-b-math.sqrt(d))/2*a)

print('첫번째 근 : ', x1)

print('두번째 근 : ', x2)

print('첫번째 근 : ', '(', b, '+' , '√' , d, '/', ')' , 2*a)

print('두번째 근 : ', '(', b, '-' , '√' , d, '/', ')' , 2*a)

if d==0:

x1=(-b)/2*a

print('중근 : ' , x1)

if d<0:

x1r=((-b+math.sqrt(-d))/2*a)

x2r=((-b-math.sqrt(-d))/2*a)

print('첫번째 근 : ' , x1r , 'i')

print('두번째 근 : ' , x2r , 'i')

print('첫번째 근 : ', '(', -b, '+' , '√' , d, '/', ')' , 2*a)

print('두번째 근 : ', '(', -b, '-' , '√' , d, '/', ')' , 2*a)

title('이차함수 그리기')

y=Turtle()

y.goto(0,-200)

y.goto(0,200)

y.setheading(90)

y.write('y')

x=Turtle()

x.goto(-200,0)

x.goto(200,0)

x.write('x')

o=Turtle()

o.penup()

o.hideturtle()

o.goto(0,0)

o.write('0')

pen=Turtle()

pen.penup()

pen.goto(-50,0)

pen.pensize(1)

xcor=-50

while xcor<=50:

ycor=(a*(xcor**2)) + (b*xcor) + c

pen.goto(xcor,ycor)

pen.pendown()

xcor =0.5

함수를 이용해서 그래프를 그려보았는데

그래프가 y축으로 끊임없이 올라가는 오류가 생겼다. 코드를 작성하는 부분에서 문제가 있는 것 같은데 코드에서 계산 부분 또한 이해가 잘 되지 않았다. 하지만 turtle로 좌표를 이용해서 그림을 그리는 부분은 흥미로웠다. sqrt가 sort인줄 알았는데 새로운 명령어라는 사실을 알게 되었다. sqrt가 정확히 무슨 역할을 하는 명령어인지 추가로 탐구해보고 싶다

# data[].attributes.body
#임포트 세팅

from turtle import *

import math

#입력

a=int(input("x^2의 계수를 입력하세요 : "))

b=int(input("x의 계수를 입력하세요 : "))

c=int(input("상수항을 입력하세요 : "))

#판별식

d=b**2-4*a*c

#판별식>0 - 서로 다른 두 실근

if (d>0):

x1=((-b+math.sqrt(d))/2*a)

x2=((-b-math.sqrt(d))/2*a)

print("첫번째 근", x1)

print("두번째 근", x2)

print("첫번째 근 : ", "(", -b, "+", "√", d, ")","/", 2*a)

print("두번째 근 : ", "(", -b, "-", "√", d, ")","/", 2*a)

#판별식=0 - 중근

if (d==0):

x1=(-b)/2*a

print("중근 : ", x1)

#판별식<0 - 서로 다른 두 허근

if (d<0):

x1r=((-b+math.sqrt(-d))/2*a)

x2r=((-b-math.sqrt(-d))/2*a)

print("첫번째 근", x1r, "i")

print("두번째 근", x2r, "i")

print("첫번째 근 : ", "(", -b, "+", "√", -d, "i",")", "/", 2*a)

print("두번째 근 : ", "(", -b, "-", "√", -d, "i",")", "/", 2*a)

#타이틀

title("이차함수 그리기")

#y축

y = Turtle()

y.goto(0, -200)

y.goto(0, 200)

y.setheading(90)

y.write("y")

#x축

x = Turtle()

x.goto(-200, 0)

x.goto(200, 0)

x.write("x")

#원점

o = Turtle()

o.penup()

o.hideturtle()

o.goto(0, 0)

o.write("0")

#그래프

pen = Turtle()

pen.penup()

pen.goto(-50, 0)

pen.pensize(1)

#초기 x값 설정

xcor = -50

#그래프 그리기

while (xcor<=50):

ycor = (a*(xcor**2))+(b*xcor)+c

pen.goto(xcor, ycor)

pen.pendown()

xcor += 0.5

이차함수의 각 항의 계수와 상수항을 적어서 근의 공식을 활용하여 근을 알아내고 그래프의 개형을 그려내는 것이 신기했고 유익했다.

그러나 숫자가 작을 때 그래프에 너무 미미하게 변화가 생겨서 그래프를 알아보기 어려웠다. 그리고 2x^2+4x+2=0의 방정식의 해는 x=-1인데, 코드를 실행하면 x=-4라고하는 이유가 궁금했다.

선생님이 나눠주신 학습지의 내용 몇몇이 틀렸다는 것을 발견했다. "#판별식<0 - 서로 다른 두 허근" 이 부분에서 "/"와 ")"의 자리가 바뀌어야 하고(19, 20번 라인), "#판별식<0 - 서로 다른 두 허근" 이 부분에서 d가 -d로 바뀌어야 한다.(33, 34번 라인)

미래에 교사가 되고싶은데 이러한 코드들을 활용하여 학생들에게 더 쉽게 이해할 수 있도록 가르칠 수 있을 것 같다.

# data[].attributes.body
제작 이유

정보 프로그래밍 활용 활동에서 파이썬의 터틀 라이브러리를 이용해 다양한 그래픽 이미지를 만들어보는 연습문제를 하다가, 커서 모양이나 도형의 변화를 시도하면서 자연스럽게 나를 표현해보고 싶다는 생각이 들었다. 그래서 꿈을 꾸고 있는 나의 모습을 그려보게 되었다.

꿈을 꾸고 있는 모습을 선택한 이유는 단순한 도형에서 벗어나 내가 좋아하는 것들을 활용해 사물을 표현해보고 싶었기 때문이다. 선생님께서 색다르고 복잡한 것도 시도해보라고 하신 조언도 영향을 주었다. 기자와 교사(인문, 사회 계열)라는 나의 진로를 카메라, 노트, 키보드 같은 도형으로 최대한 구현하며 나의 열정과 목표를 담아보려고 했다.

어려웠던 점

사물을 단순화하는 건 비교적 쉬웠는데, 내 모습을 단순화하려니 예상보다 어려웠다. 나를 도형으로 표현하려면 특징을 더 세심하게 관찰해야 했고, 자연스럽게 내 자신을 돌아보는 시간도 필요했다. 키보드는 자판 배열을 처음에 표현하는 데 어려움을 느껴서 반복문을 계속 수정했다. 연필과 노트를 그릴 때는 펜촉을 표현하는 게 까다로워 펜 기둥만 단순화해 표현하게 되었다.

극복 방법:
사물을 단순화하는 방법과 관련된 자료를 찾아보며 도형으로 본질을 나타내는 방법을 연구했다. 반복문과 조건문을 활용해 키보드 배열을 구현하는 코드를 효율적으로 수정했고, 연필의 펜촉을 생략한 대신 다른 부분을 더 강조해 간결하면서도 의도를 전달할 수 있도록 표현했다.

배운 점 및 느낀점

이 활동을 통해 단순히 프로그래밍 기술뿐 아니라 나의 진로와 꿈을 시각적으로 구현하며 의미 있는 경험을 했다. 기자와 교사라는 나의 꿈과 연결해, 관련된 사물들을 도형으로 변환하며 창의적으로 사고하는 힘을 기를 수 있었다.

특히 기자와 관련해서는 자료를 시각화하고 체계적으로 정리하는 과정의 중요성을 느꼈다. 프로그래밍으로 그래픽을 그리는 작업은 기자로서 데이터를 전달하는 과정과 닮아 있었다. 또한, 교사의 꿈과 연결했을 때, 이렇게 시각적인 도구와 창의력을 활용해 더 재미있고 의미 있는 방식으로 학생들에게 가르칠 수 있다는 가능성도 보였다.

결국 이 활동을 통해 도전하고 새로운 방식을 시도하는 것이 얼마나 중요한지 깨달았다. 앞으로도 이런 열정과 창의력을 바탕으로 나의 꿈을 구체화하고 발전시키고 싶다.

IDEL

import turtle

# 화면 설정

screen = turtle.Screen()

screen.setup(width=600, height=600)

screen.title("Journalist Graphic")

screen.title("Student with Bun Hair, Glasses")

# 펜 설정

pen = turtle.Turtle()

pen.speed(5)

pen.penup()

# 머리(똥머리) 그리기

def draw_hair():

# 똥머리 부분

pen.goto(0, -150)

pen.pendown()

pen.begin_fill()

pen.fillcolor("black")

pen.circle(30) # 똥머리

pen.end_fill()

pen.penup()

# 얼굴 주위 머리카락

pen.goto(0, -220)

pen.setheading(0)

pen.pendown()

pen.begin_fill()

pen.circle(50) # 머리 전체 크기

pen.end_fill()

pen.penup()

# 얼굴 그리기

def draw_face():

# 얼굴

pen.goto(0, -220)

pen.setheading(0)

pen.begin_fill()

pen.fillcolor("peachpuff")

pen.circle(40) # 얼굴 크기

pen.end_fill()

pen.penup()

# 안경 그리기

def draw_glasses():

# 왼쪽 렌즈

pen.goto(-25, -190)

pen.pendown()

pen.begin_fill()

pen.fillcolor("black")

pen.circle(15)

pen.end_fill()

pen.penup()

# 오른쪽 렌즈

pen.goto(25, -190)

pen.pendown()

pen.begin_fill()

pen.fillcolor("black")

pen.circle(15)

pen.end_fill()

pen.penup()

# 입술

pen.goto(-10, -190)

pen.pendown()

pen.color("black")

pen.setheading(0)

pen.forward(20)

pen.penup()

# 교복 상의 그리기

def draw_uniform_top():

pen.goto(-30, -220)

pen.pendown()

pen.begin_fill()

pen.fillcolor("navy")

for _ in range(2):

pen.forward(60)

pen.right(90)

pen.forward(80)

pen.right(90)

pen.end_fill()

pen.penup()

# 키보드 그리기

def draw_keyboard():

pen.goto(100, 100) # 위치 설정

pen.pendown()

pen.begin_fill()

pen.fillcolor("black")

for _ in range(2): # 키보드 본체

pen.forward(100)

pen.left(90)

pen.forward(40)

pen.left(90)

pen.end_fill()

pen.penup()

pen.goto(10, -40)

pen.pendown()

pen.color("white")

for row in range(3): # 키 캡 배열

for col in range(8):

pen.penup()

pen.goto(110 + col 10, 125 - row 10)

pen.pendown()

pen.begin_fill()

pen.fillcolor("gray")

for _ in range(2):

pen.forward(8)

pen.left(90)

pen.forward(8)

pen.left(90)

pen.end_fill()

pen.penup()

# 카메라 그리기

def draw_camera():

# 본체

pen.goto(-100, 0)

pen.pendown()

pen.begin_fill()

pen.fillcolor("lightgray")

for _ in range(2): # 사각형 본체

pen.forward(150)

pen.left(90)

pen.forward(100)

pen.left(90)

pen.end_fill()

pen.penup()

# 렌즈

pen.goto(-70, 50)

pen.pendown()

pen.begin_fill()

pen.fillcolor("white")

pen.circle(35) # 렌즈 외부

pen.end_fill()

pen.penup()

pen.goto(-80, 60)

pen.pendown()

pen.begin_fill()

pen.fillcolor("black")

pen.circle(20) # 렌즈 내부

pen.end_fill()

pen.penup()

# 플래시

pen.goto(-80, 120)

pen.pendown()

pen.begin_fill()

pen.fillcolor("white")

for _ in range(2): # 플래시 사각형

pen.forward(40)

pen.left(90)

pen.forward(20)

pen.left(90)

pen.end_fill()

pen.penup()

# 버튼

pen.goto(-160, 83)

pen.pendown()

pen.begin_fill()

pen.fillcolor("black")

for _ in range(2): # 버튼 사각형

pen.forward(20)

pen.left(90)

pen.forward(10)

pen.left(90)

pen.end_fill()

pen.penup()

# 기자 메모장 그리기

def draw_notepad():

pen.goto(50, 50) # 메모장 위치

pen.pendown()

pen.begin_fill()

pen.fillcolor("white")

for _ in range(2): # 사각형 메모장

pen.forward(40)

pen.right(90)

pen.forward(60)

pen.right(90)

pen.end_fill()

pen.penup()

# 메모장 줄 추가

pen.goto(55, 40)

pen.pendown()

pen.color("black")

for i in range(5):

pen.forward(30)

pen.penup()

pen.goto(55, 40 - (i + 1) * 10)

pen.pendown()

pen.penup()

# 기자 펜 그리기

def draw_pen():

# 펜 몸체

pen.goto(60, -20) # 펜 위치

pen.pendown()

pen.begin_fill()

pen.fillcolor("gray")

pen.setheading(45)

for _ in range(2): # 펜 몸체 사각형

pen.forward(40)

pen.right(90)

pen.forward(10)

pen.right(90)

pen.end_fill()

pen.penup()

# 그림 그리기

draw_keyboard()

draw_notepad()

draw_pen()

draw_camera()

draw_hair()

draw_face()

draw_glasses()

draw_uniform_top()

draw_uniform_ribbon()

draw_uniform_skirt()

# 화면 유지

screen.mainloop()

# data[].attributes.body
이차함수를 그리는 과정에서 다양한 수학적 원리를 이해하며 그래프를 그리는 것이 흥미로웠다. 특히, 기자로서 사회 이슈나 데이터 분석에서 이러한 수학적 도구가 활용될 때의 유용함을 느꼈다.

처음에는 단순히 이차항의 계수와 일차항의 계수, 상수항만을 입력했을 때 어떻게 그래프를 그릴 수 있을까 고민했지만, 코드 작성 중에 여러 문제점을 수정하며 완성도를 높일 수 있었다. 이러한 과정을 통해 컴퓨터가 복잡한 수학적 계산을 정확하게 수행하는 것이 신기했고, 특히 이러한 기술이 과학 및 다양한 분야에 어떻게 활용되는지를 배워가고 있다.

한 가지 어려운 점은, 작은 수의 경우 그래프가 미미하게 변해서 해석이 어려울 수 있다는 점이었다. 또한, 코드 실행 중에 예상치 못한 값이 나오는 오류도 발견했으며, 학습지의 내용 중 일부가 잘못된 것을 확인했다. 미래의 사회 과학 분야에서 이러한 기술을 활용해 학생들에게 보다 쉽게 접근하고 이해할 수 있도록 지도할 수 있을 것 같아, 더욱 탐구하고 학습하고자 한다.

함수를 사용한 그래프 그리기가 어렵게 느껴졌지만, turtle 명령어를 통해 좌표를 활용해 그림을 그리는 과정은 흥미로웠고, 새로운 명령어인 sqrt가 가지는 의미와 역할에 대해서도 깊이 이해할 수 있었다. 나아가, 이러한 그래프 작성 능력은 복잡한 데이터를 더 쉽게 시각화하고, 독자들에게 전달하는 데 큰 도움이 될 것이다.

사회계열에서의 데이터 분석과 같은 분야에서 이러한 기술을 활용한다면, 보다 객관적이고 시각적으로 직관적인 정보를 제공할 수 있을 것이다. 미래의 사회 기사를 작성할 때도 이러한 수학적 요소가 유기적으로 통합될 수 있기를 기대한다.

IDEL

#임포트 세팅

from turtle import *

import math

#입력

a=int(input("x^2의 계수를 입력하세요: "))

b=int(input("x의 계수를 입력하세요: "))

c=int(input("상수항을 입력하세요: "))

#판별식

d=b**2-4*a*c

#판별식>0 - 서로 다른 두 실근

if (d>0):

x1=((-b+math.sqrt(d))/2*a)

x2=((-b-math.sqrt(d))/2*a)

print("첫번째 근 : ", x1)

print("두번째 근 : ", x2)

print("첫번째 근 ; ", "(", -b, "+", "√", d, ")","/", 2*a)

print("두번째 근 ; ", "(", -b, "-", "√", d, ")","/", 2*a)

#판별식=0 - 중근

if(d==0):

x1=(-b)/2*a

print("중근 : ", x1)

#판별식<0 - 허근

if(d<0):

x1r=((-b+math.sqrt(-d))/2*a)

x2r=((-b-math.sqrt(-d))/2*a)

print("첫번째 근 : ", x1r, "i")

print("두번째 근 : ", x2r, "i")

print("첫번째 근 ; ", "(", -b, "+", "√", -d, "i", ")", "/", 2*a)

print("두번째 근 ; ", "(", -b, "-", "√", -d, "i", ")", "/", 2*a)

#타이틀

title("이차함수 그리기")

#y축

y=Turtle()

y.goto(0,-200)

y.goto(0,200)

y.setheading(90)

y.write("y")

#x축

x=Turtle()

x.goto(-200,0)

x.goto(200,0)

x.write("x")

#원점

o=Turtle()

o.penup()

o.hideturtle()

o.goto(0,0)

o.write("0")

#그래프

pen=Turtle()

pen.penup()

pen.goto(-50,0)

pen.pensize(1)

#초기 x값 설정

xcor=-50

#그래프 그리기

while(xcor<=50):

ycor=(a*(xcor**2))+(b*xcor)+c

pen.goto(xcor,ycor)

pen.pendown()

xcor+=0.5