본문 바로가기
스크래치/스크래치 COS시험

스크래치COS-리스트-성적관리

by flycoding 2022. 7. 17.
반응형

스크래치 COS -리스트-성적관리

 

스크래치COS 코딩시험에서 알고리즘의 가장 핵심적인 부분이 변수, 반복문, 조건, 함수이다.

변수는 한번에 하나의 값만 저장이 가능하지만, 리스트 변수는 여러 개의 값을 쉽게 관리하는 자료구조이다.

리스트 예제로 학생들의 성적관리를 하는 프로그램을 작성해보자.

 

예로 한 반의 학생이 10명이라고 하면 이를 변수로 학생들의 성적을 관리하려면, 10개의 학생이름 변수, 10개의 국어점수 변수, 10개의 수학점수, 10개의 영어점수 10개의 평균 등 대략 50개의 변수가 필요하다.

그러나 이를 리스트로 관리하면 5개의 리스트 변수를 통해 학생들을 관리할 수 있다.

 

 

요구사항

* 학생은 5명으로 한다. 

  - 이름 : 홍길동, 김철수, 이영희, 홍순실, 박철순

 

* 성적입력

 . 학생들의 성적을 구축한다.

    - 원래는 하나씩 입력해야 하는데, 너무 복잡하니까 프로그램으로 자동으로 성적을 입력할 것이다.

    - 난수를 발생시켜 입력할 것이다.

 

* 성적조회

. 컴퓨터 스프라이트를 클릭하면,

  - 학생의 이름을 입력한다.

   - 학생의 이름과 평균을 알려준다. 

 

분석 및 설계

이름과 성적을 구축한다.

이름은 홍길동, 김철수, 이영희, 홍순실, 박철순 5명으로 고정한다.

- 추후에는 동적으로 입력받을 수 있도록 만들어보자.

- 이름 리스트변수를 만들자

 

성적 리스트 : 국어, 영어, 수학 리스트를 만들자

- 하나씩 입력할 수 있지만, 여기서는 랜덤값으로 국어, 영어, 수학 점수를 입력할 것이다.

 

. 평균계산

  - 평균 리스트를 만든다.

  - 국어, 영어, 수학 점수의 평균을 계산한다.

 

. 조회

  . 이름을 입력받는다.

  . 이름 리스트에서 입력받은 이름과 비교해서 같은 이름을 찾는다.

    - 여기서 중요한 것은 리스트의 위치값 i 이다.

    - i를 통해 국어, 영어, 수학, 평균 리스트의 위치를 조회해서 값을 가져올 것이기 때문이다.

 

. 변수 만들기

  - 어떤 변수가 필요할까? 생각해보기

     - 이름 리스트 변수

     - 국어, 영어, 수학 리스트 변수 

     - 평균 리스트 변수

     - i : 리스트의 위치를 저장하는 변수

     - 이름 변수 : 조회하고자 하는 이름을 입력을 저장하는 변수

     - 평균 : 각 리스트의 국어, 영어, 수학 점수의 평균을 계산하여 저장하는 변수

 

블럭코딩

 

. 초기화
  . 이름, 국어, 영어, 수학 리스트의 항목 모두 삭제하기
  . 이름 리스트 : 홍길동, 김철수, 이영희, 홍순실, 박철순 입력

 

 

스크래치COS-리스트-성적관리 변수 초기화

 

스크래치COS-리스트 리스트변수 초기값

 

 

 

. 성적계산해서 입력하기
  - 성적입력 함수를 정의한다.
  - 5명의 학생의 국어, 영어, 수학 리스트 변수에 난수값을 활용하여 리스트에 추가한다.

. 50~100사이의 난수 연산을 통해 난수값을 국어, 영어, 수학에 추가한다.

 

스크래치COS-리스트 성적입력함수 호출

 

스크래치COS-리스트 성적입력함수

 

스크래치COS-리스트 성적입력 리스트값

 

 

. 평균계산하기
  - 평균리스트 모두항목 삭제하기(평균리스트를 초기화한다.)
  - i 변수를 1로 초기화한다.
  - 5회 반복하기
    - 평균 = (국어 + 영어 + 수학) / 3 (각리스트의 i번째 항목의 국어, 영어, 수학점수 항목을 가져와서 평균을 계산한다.
    - 평균리스트에 계산한 평균값을 추가한다.
    - i 변수를 1만큼 증가한다. (리스트에 순서대로 하나씩 평균을 계산하기 위해 i번째 위치값을 1씩 증가시키며 계산한다.

성적입력을 완료한 후에, 평균계산을 호출한다.

그러면 입력된 국어, 영어, 수학 리스트로부터 항목을 하나씩 가져와서 평균을 계산한다.

평균계산 호출

 

스크래치COS-리스트 평균계산

 

스크래치 평균계산 리스트값

 

 

. 컴퓨터 스프라이트를 클릭했을때
  - 이름을 입력하기 위해 묻고 기다린다. 
  - 이름을 입력받으면 이름 변수에 '대답'을 저장한다.
  - 검색 함수를 호출한다.

 

스크래치COS-리스트 조회

 

 

. 검색 함수
  - 입력받은 '이름'을 통해 이름 리스트와 같은 값이 있는지 비교하고, 같은 이름이 있으면 해당 위치값 i를 가지고 평균을 말한다.

. 결과 변수에 "찾는 이름이 없습니다." 저장한다.

. i 변수를 1로 정한다.

. 조건 반복문

  - 이름이 이름 리스트 변수에 같은 값이 있으면 반복문 종료된다.

  - 또는 이름 리스트에서 찾는 값이 없으면=> i값이 이름 리스트 항목 갯수 5보다 크면 (1~5까지 검색 완료) 반복문 종료된다.

   => 이름과 같지 않다면 반복문 몸체에는 i변수만 1 증가시킨다.

 

. 결과값을 말해보자

  - i값이 6보다 작으면(이름 리스트에서 이름을 찾았다는 것이다.)

    - 이러면 평균값을 결과 변수에 저장한다.

 

스크래치COS-리스트 이름 검색 함수

 

 

* 실행 결과물

이름을 '박철순'이라고 입력하면 결과값으로 이름과 평균값을 말한다.

 

 

스크래치COS-리스트 성적관리

 

스크래치COS-성적조회 실행화면

 

이름을 '가자'라는 항목에 없는 이름을 입력하면

 

스크래치COS-리스트 성적조회 실행화면

 

스크래치COS에서 리스트를 처리하는 예제를 만들어보았다. 학생들과 국어, 영어, 수학 점수를 리스트로 관리하는 프로그램을 작성해보았다. 여기서는 리스트에 입력과 검색 정도의 기능을 확인하였다. 추후에는 성적을 수정하거나 삭제하는 프로그램을 더 추가해보자. 리스트에서는 리스트에 들어있는 항목을 관리하는 i 변수(항목위치변수)를 처리하고 관리하는 매우 중요하다. 변수값이 어떻게 변화하는지 프로그램을 하나씩 실행하면서 추적해보자.

 

다시 한번 강조해서 말하지만, 변수의 값이 각 프로그램 단계별 순차적으로 어떻게 변화하는지 추척하는 것이 매우 중요하다. 블럭을 하나씩 쌓으면서 변수 볼륨 값의 변화를 살펴보자. 코딩은 눈으로 보면서 이해하고 학습하지만 직접 블럭을 쌓으며 이해하고 학습하는 것이 더 효과적이며 창의와 이해의 개념이 ~쑥 늘어납니다. 

앞으로의 여러분의 모습을 기대합니다.

 

Just Do it!!!

Just Drag&Drop!!!

 

MagneticFieldSen

 

반응형

댓글