교사의 임무는 실패에 대한 보장이 아니라 실패로 인한 실망을 방지하는 학생과 함께 이 길을 걷는 것입니다. 가능한 어려움. 아이들이 의미 있는 활동을 통해 스스로 새로운 것을 발견할 수 있도록 수업을 구성하는 것은 매우 중요합니다.
로봇은 컴퓨터 과학을 배우는 데 어떻게 도움이 되나요? 로봇 공학의 기반이 되는 정보학의 몇 가지 주제만 지적하겠습니다.
주제 "파일 및 파일 시스템".
학생은 교육용 키트에서 LEGO®NXT 마이크로컴퓨터를 받았습니다. 레고 마인드스톰 NXT 교육. 제어 파일 시스템표준 명령어로 발생하지만 메모리의 양이 많지 않기 때문에 필요한 것과 불필요한 것에 대한 통제를 지속적으로 모니터링해야 한다. 로봇의 행동을 말하고, 그림을 표시하고, 작업 프로그램 라이브러리를 보충하려면 파일, 파일 형식, 파일 경로, 메뉴, 폴더와 같은 컴퓨터 과학의 기본 개념으로 작동해야 합니다.
주제 "정보 프로세스", "정보 코딩".
로봇 키트에는 소리, 촉각 및 비디오 정보를 등록하는 센서가 장착되어 있습니다. 디지털화 후 정보를 디스플레이 화면에 표시할 수 있습니다. 마이크로컴퓨터의 특별한 기능은 바로 실행 가능한 프로그램을 사용하여 센서, 모터로 실험할 수 있게 합니다. 센서에 대한 일련의 실험을 수행한 후에는 초음파 거리 센서가 적외선 센서보다 느린 이유, 소리가 디지털 코드로 변환되는 방법 등을 이해하게 됩니다. 정보 프로세스 및 정보 코딩의 원리에 대한 연구는 정보 기술의 본질에 대한 더 깊은 이해를 제공합니다.

주제 "통신 기술".
LEGO®NXT 마이크로컴퓨터 지원 기술 무선 통신. 블루투스 기능을 사용하여 설정할 수 있습니다. 무선 통신 NXT 마이크로컴퓨터와 다른 NXT와 같이 Bluetooth 장치가 있는 다른 장치 사이에 휴대 전화또는 컴퓨터로. 설정하여 블루투스 연결, 아마도: 컴퓨터에서 원격으로 프로그램을 다운로드합니다. NXT를 포함한 다른 장치(컴퓨터가 아님)에서 프로그램 보내기 개별 NXT와 해당 그룹에 프로그램을 보냅니다. 이 기술을 사용하면 휴대폰을 사용하여 로봇을 제어할 수 있습니다.

주제 "알고리즘. 알고리즘 실행자", "프로그래밍 환경".
로봇에 대한 초기 소개를 위해 컴퓨터에 액세스하지 않고 NXT 장치를 직접 프로그래밍할 수 있습니다. 디스플레이 화면에서 직접 5가지 명령의 템플릿에 따라 구성할 수 있습니다. 간단한 프로그램그리고 그것을 루프. 그러나 기본 알고리즘 구조와 프로그래밍 환경 개발에 대한 지식 없이는 할 수 없습니다. 로봇을 다양한 작업을 해결할 수 있는 보편적인 수행자로 만드는 것은 로봇을 프로그래밍하는 능력입니다. 프로그래밍 기술을 마스터하기 시작하려면 시각적 프로그래밍 환경에서 시작해야 하며, 그 다음에는 보다 강력하고 현대적인 이벤트 중심 환경으로 이동해야 합니다.
따라서 로봇은 컴퓨터 과학에 대한 기본 지식이 필요하며 로봇을 "최고"로 만들고자 하는 학생의 지칠 줄 모르는 열망은 그를 새로운 지식을 습득하게 합니다.
로봇이 이상적인 학습 도구라고 할 수 있는 이유는 무엇입니까? 이 도구를 사용하면 또래와 놀고, 만들고, 의사소통하려는 어린이의 자연스러운 열망을 회복하는 학습 환경을 조성할 수 있기 때문입니다. 따라서 교육 수단으로서 로봇의 장점을 강조할 수 있습니다.
. 지식의 동화는 게임 중에 발생합니다.
. 로봇 제작은 창의적인 자유를 제공합니다.
. 자신의 작업을 개선하려는 열망은 대다수의 학생들입니다.

예를 들어, 과외 활동에서 "로봇 프로그래밍" 과정의 일환으로 6학년 학생이 만든 "무료 음식 배달 로봇"의 모델을 제공하고 싶습니다. 이 로봇은 표준 Alfarex 1.0 모델을 사용하여 LEGO MINDSTORMS NXT Education 9797 세트에서 제작되었으며 로봇의 상태를 나타내는 컬러 센서와 간식 트레이로 완성됩니다.
작업의 목적은 사용 가능한 리소스로 가능한 한 인간 보행 모델을 구현하는 것입니다. 각 다리의 움직임은 모터와 기어 및 레버의 기계적 조립으로 제어됩니다. 한 레버는 다리를 위아래로 움직이고 다른 레버는 앞으로 움직입니다. 이 경우 몸체가 지지하는 다리 쪽으로 편향되어 로봇이 균형을 유지합니다. 이 걸음걸이를 "셔플링"이라고 합니다.
별도의 모터가 거리 센서와 터치 센서와 컬러 센서를 고정하는 레버 암을 제어합니다. 간식용 트레이는 움직이지 않고 고정되어 있습니다.
로봇은 다음 행동 알고리즘에 따라 행상인의 역할(예: 무료 간식)을 수행하도록 프로그래밍됩니다. 로봇은 "나는 Alpharex 로봇입니다. 당신을 무료로 대합니다!"라는 문구와 함께 직선으로 움직임을 동반합니다. 로봇과 접촉하려는 사람은 제스처로 로봇을 멈출 수 있습니다. 정지 후 로봇은 "도와주세요 버튼을 눌러주세요!"라는 문구를 말합니다. 사탕을 받으면 감사의 표시로 버튼을 한 번 눌러야합니다. 정지 후 3초 후에 로봇은 계속 움직입니다. 간식이 끝나면(로봇은 트레이에 있는 특정 양의 과자에 대해 프로그래밍됨) 로봇이 작별 인사를 하고 빨간색 표시등이 켜지고 로봇이 멈춥니다.

로봇을 제어하기 위한 프로그램은 NXT 프로그래밍 2.0 환경에서 작성되었습니다.

프로그래밍의 기본을 마스터하는 Kumir 프로그램에 대해 알고 있습니다.

여기에서 학생들은 Robot, Draftsman, Aquarius, Grasshopper, Turtle과 같은 연주자와 함께 작업하여 알고리즘을 만들고 디버깅하는 실용적인 기술을 습득할 수 있습니다.

컴퓨터 과학의 가장 어려운 부분 중 하나인 "알고리즘과 프로그래밍"을 공부할 때.

개발 목적 :

다운로드:


시사:

정보학의 체계적인 개발.

주제: "정보학 수업에서 KuMir 프로그램의 로봇 수행자"

기술 교사 "정보 및 ICT"

설명

개발 목표: KUMIR 환경을 사용하는 특정 실행 로봇의 예에서 프로그래밍 가능성을 연구합니다. 연주자와 함께 작업할 수 있는 실용적인 기술을 제공합니다.

체계적인 개발정보학 수업을 위해 편집컴퓨터에서 연습: 알고리즘의 교육 집행자와 협력; 실행기를 관리하기 위한 선형, 분기 및 순환 알고리즘 작성; 복잡한 구조의 알고리즘 작성; 보조 알고리즘(절차, 서브루틴)의 사용.

학생들이 알아야 할 사항:

  • 연기자는 무엇입니까? SKI 로봇, 수요일 공연 로봇;
  • 알고리즘이란 무엇입니까?알고리즘의 주요 속성은 무엇입니까?
  • 알고리즘 작성 방법: 순서도, 교육용 알고리즘 언어;기본 알고리즘 구성: 다음, 분기, 루프; 구조
  • 알고리즘; ⇒ 보조 알고리즘 할당; 복잡한 알고리즘을 구축하기 위한 기술:

학생들은 다음을 할 수 있어야 합니다.

  • 커리큘럼의 알고리즘 설명 이해 알고리즘 언어;
  • 알려진 수행자에 대한 알고리즘 추적을 수행합니다.
  • 로봇 실행기를 위한 선형, 분기 및 순환 제어 알고리즘을 구성합니다. 하위 작업을 할당합니다. 보조 알고리즘을 정의하고 사용합니다.

세션 1(2시간) 레슨 1.

퍼포머 로봇.실행 명령 시스템.

강의 계획.

  1. 실행기의 환경인 실행기의 UCS에 대한 설명입니다.

2. 일반적인 로봇 알고리즘 분석.

수업 중.

수행자에 대한 설명을 고려하십시오.

실행자 환경: 출연자 로봇은 세포로 분할된 평면에 그려진 미로를 통해 이동할 수 있습니다.

스키로봇 : 간단한 명령: 위, 아래, 왼쪽, 오른쪽, 색상.

논리 명령: (상태 확인)

상단 무료 하단 무료

왼쪽 자유 오른쪽 무료.

논리적 연결: AND, NOT, OR:

예: (왼쪽이 비어 있지 않음) 또는 (오른쪽이 비어 있지 않음)

분기 명령: 순환 명령:

조건이라면 그런 다음 nts 동안 조건

일련의 명령 일련의 명령

모든 kts

(2009년 CIM에서는 로봇의 명령이 어린이에게 익숙한 명령과 달라서착란 :)

분기 명령: 순환 명령:

조건이라면 그런 다음 조건이 수행하는 동안 nts

일련의 명령 일련의 명령

끝 끝

Kumir 프로그램 창의 일반 보기. 로봇의 그래픽 환경:

KIM에서 데모 버전 2010 명령 형식이 다음으로 변경됨습관적인

알고리즘 생성 순서:

1.팀 도구 - 시작 환경 편집로봇 필드에 벽을 그리고 로봇을 초기 위치로 설정합니다.

2.명령어 로봇 - 시작 환경 변경새로운 환경을 저장합니다.

3.명령어 붙여넣기 - 로봇 사용아티스트를 지정합니다.

4. 문서 창에서 메뉴를 사용하여 알고리즘을 작성하십시오.끼워 넣다.

5. 명령 실행 - 알고리즘을 지속적으로(또는 단계별로) 실행합니다.

6. 알고리즘 실행 결과를 고려하고 필요한 경우 디버그합니다.

1과(2시간) 2과.

실무 "선형 알고리즘의 편집.

작업: 1. 필드의 임의 지점에서 로봇. 시작 위치의 위, 아래, 오른쪽에 있는 셀에 색을 지정합니다.

  1. 필드의 임의 지점에 있는 로봇. 로봇 4칸을 오른쪽으로 이동하고 그 위에 그림을 그립니다.
  2. 보드에 4칸 정사각형을 그려 새로운 시작 환경을 만듭니다. 환경을 시작으로 저장하십시오.
  3. 필드의 벽에 통로가 있는 복도를 그려 새로운 시작 환경을 만듭니다. 환경을 obst2.fil로 저장합니다. 시작 환경을 새로 생성된 환경으로 변경합니다.

세션 2(2시간) 레슨 1.

주제 : 알고리즘의 분기 및 순차적 개선.

로봇 실행기를 사용한 CIM 작업 분석.

로봇을 사용

알그 김 2009

일찍

바닥이 느슨하지 않다면

그럼 오른쪽으로

모두

바닥이 느슨하지 않다면

그럼 오른쪽으로

모두

바닥이 느슨하지 않다면

그럼 오른쪽으로

모두

범죄자

로봇을 사용

알그 킴 2010

일찍

바닥이 느슨하지 않다면

그럼 오른쪽으로

모두

바닥이 느슨하지 않다면

그럼 오른쪽으로

모두

바닥이 느슨하지 않다면

그럼 오른쪽으로

모두

범죄자

등. 노예. 14번. 분기 알고리즘의 컴파일 및 디버깅

작업. 첨부 파일을 참조.

수업 3. 순환 알고리즘. 1-2과

표적: 알고리즘에서 주기 개념의 본질을 밝히고, 알고리즘에서 쓰기 주기의 형태를 보여주고, 순환 알고리즘을 만들고 작성하는 기술을 제공합니다.

등. 노예. 15번. 순환 알고리즘의 컴파일 및 디버깅

1. 벽에 인접한 모든 내부 셀을 그리는 알고리즘을 만듭니다.

로봇을 사용

일찍

nc 오른쪽 무료

페인트 칠하다; 오른쪽

kts

nc 바닥이 비어 있는 동안

페인트 칠하다; 아래로

kts

nc 바닥이 느슨해질 때까지

페인트 칠하다; 왼쪽으로

kts

범죄자

2. 로봇과 벽 사이의 모든 셀을 채우는 알고리즘을 만듭니다. 벽까지의 거리는 불명.

로봇을 사용

일찍

nc 오른쪽 무료

오른쪽; 칠하다

kts

범죄자

3. 두 벽 사이의 모든 셀을 칠하는 알고리즘을 만듭니다.

로봇을 사용

알 uch3

일찍

nc 아직(상단이 느슨하지 않음) 또는 (하단이 느슨하지 않음)

오른쪽

if (상단 무료 아님) 및 (하단 무료 아님)

그 다음에

칠하다

모두

kts

범죄자

4. 직사각형 벽 주위의 모든 셀을 채우는 알고리즘을 만듭니다.

알 uch4

일찍

페인트

오른쪽 느슨해질 때까지 nc

페인트;업;

kts

페인트; 오른쪽

nc 바닥이 느슨해질 때까지

페인트; 오른쪽;

kts

칠하다;아래로

느슨하게 남을 때까지 nc

페인트;다운;

kts

페인트; 왼쪽

nc 상단이 느슨해질 때까지

페인트 칠하다; 왼쪽;

kts

범죄자

로봇을 사용

알 uch5

일찍

오른쪽

nc 바닥이 느슨해질 때까지

페인트 칠하다; 오른쪽

kts

페인트 칠하다; 아래로

무료로 남아있는 동안 nc

페인트 칠하다; 왼쪽으로

kts

느슨하게 남을 때까지 nc

페인트 칠하다; 아래로

kts

페인트; 왼쪽; 페인트; 위로;

nc 동안 최고 무료

페인트 칠하다; 위로

kts

nc 상단이 느슨해질 때까지

페인트 칠하다; 왼쪽으로

kts

범죄자

활동 4 1과

도우미 알고리즘.

표적: 주 및 보조 알고리즘의 개념을 소개합니다. 보조 알고리즘 사용 규칙을 설명합니다. 보조 도구를 사용하여 알고리즘의 예를 구문 분석합니다.

강의 계획

1.신규 용어 소개(주 및 보조 알고리즘, 호출) 및 신개념 설명.

2. 보조 알고리즘을 사용하여 문제를 해결하는 예 분석.

일부 문제를 해결할 때 각 하위 작업을 독립적인 알고리즘으로 설계할 수 있는 더 작은 하위 작업으로 나누는 것이 편리합니다. 이 경우 보조 알고리즘에 대한 호출이 나중에 추가되는 하위 작업을 해결하는 데 사용되는 소위 기본 알고리즘이 먼저 컴파일됩니다. 이러한 종류의 솔루션을순차적 정제 방법.이를 통해 프로그래머 그룹이 프로젝트에서 작업하는 동안 각자가 자신의 하위 작업을 해결할 수 있습니다.

문제를 해결하는 과정에서 각 보조 알고리즘은 필요한 경우 더 작은 보조 알고리즘으로 나눌 수 있습니다.

보조 알고리즘을 실행하는 명령이 호출됩니다.도전 메인 알고리즘의 본문에 작성됩니다.

하나의 동일한 알고리즘이 다른 알고리즘과 관련하여 주 및 보조로 간주될 수 있습니다. 알고리즘 언어에서는 주 알고리즘이 먼저 작성되고 보조 알고리즘이 아래 행에 작성됩니다.

작업 1:

로봇은 필드의 왼쪽 상단 모서리에 있습니다. 벽이나 음영 셀이 없습니다. 보조 알고리즘을 사용하여 하나의 수평선에 4개의 십자가를 그리는 알고리즘을 구성합니다. 로봇의 최종 위치는 임의적일 수 있습니다.

해결책

보드에 대한 분석:

작업2. 로봇은 필드의 왼쪽 상단 모서리에 있습니다. 벽이나 음영 셀이 없습니다. 바둑판 패턴으로 8 x 8 정사각형을 그리는 알고리즘을 작성하십시오. 로봇의 최종 위치는 임의적일 수 있습니다.

활동 4 2과

PC에서 실제 작업 "보조 알고리즘을 사용한 문제 해결".

표적 : 순차적인 정제 방법으로 알고리즘을 구성하는 실무 능력을 함양한다.

강의 계획

1. PC에서 작업을 완전히 완료합니다. 학생들은 과제를 받고 Kumir 소프트웨어 환경에서 완료합니다. 작업 결과는 추후 확인을 위해 파일로 저장됩니다.

작업1 . 로봇은 필드의 왼쪽 하단 모서리에 있습니다. 벽이나 음영 셀이 없습니다. 6개의 셀에 같은 길이의 세로 줄무늬 6개를 그리는 알고리즘을 작성하십시오. 로봇의 최종 위치는 임의적일 수 있습니다.

작업2 .보조를 사용하여 숫자 1212를 형성하는 셀 위에 그림을 그리는 알고리즘을 만듭니다.

숙제: 다음 이미지를 그리는 알고리즘을 생각해 보세요. 문제를 해결하려면 두 가지를 적용하십시오. 보조 알고리즘.

활동 5 1-2과

테스트

"실행 로봇의 환경에서 알고리즘 컴파일".

표적: Kumir 소프트웨어 환경에서 알고리즘을 생성하고 분석하는 능력에 대해 습득한 지식을 테스트합니다.

에 대한 작업 제어 작업난이도별로 나누어져 있으며 실행 로봇과 함께 3가지 작업을 포함합니다(작업 1 및 2 - 분기 및 루프용, 작업 3 - 보조 알고리즘 사용). 작업 텍스트는 부록에 나와 있습니다.

초기 및 최종 조건과 생성된 알고리즘은 파일로 기록됩니다.

과제의 난이도에 따라 등급이 결정됩니다. 학생은 과제 유형을 선택할 권리가 있습니다.

오늘은 주기에 대해 알아보겠습니다. 주기가 무엇인지, 그리고 순환 알고리즘을 수행하도록 로봇을 가르치는 방법을 알아보겠습니다.

그래서, 주기란 무엇인가? 우리가 체육 수업에 있고 과제에 직면했다고 상상해보십시오. 스쿼트 7개 하기. 이 작업은 선형 알고리즘으로 공식화될 수 있으며 다음과 같이 보일 것입니다.

스쿼트를 하다

스쿼트를 하다

스쿼트를 하다

스쿼트를 하다

스쿼트를 하다

스쿼트를 하다

스쿼트를 하다

즉, 스쿼트를 하라는 명령을 7번 반복했습니다. 7개의 동일한 명령을 작성하는 것이 의미가 있습니까? 명령을 내리는 것이 더 쉬울 수 있습니다. 스쿼트 7개 하기? 확실히 더 쉽고 정확합니다. 이것이 주기다.. 당신은 삶의주기의 예를 스스로 기억할 수 있습니다. 그 중 상당수가 있습니다.

이런 식으로 선형 알고리즘 , 동일한 명령이 반복되는 경우 다음을 실행할 수 있습니다. ~처럼 순환 알고리즘 - 다음과 같이 다소:

7번 반복

스쿼트를 하다

주기의 끝

그래서 우리가 발명한 언어로 주기를 설계했습니다. 로봇 연주자는 주기를 기록할 수도 있습니다. 더구나, 주기가 다릅니다.. 방금 고려한 옵션은 카운터가 있는 루프또는 매개변수가 있는 루프.

주기의 종류.

카운터로 순환합니다.

카운터가 있는 루프몇 번을 반복해야 하는지 미리 알고 있을 때 사용합니다. 스쿼트가 있는 위의 예에서 이것이 바로 그 경우입니다.

실행자에 대한 카운터가 있는 루프를 작성하려면 해당 구문을 알아야 합니다. 그리고 그는 다음과 같습니다.

체크 안함<반복 횟수> 시간

<команда 1>

<команда 2>

<команда n>

여기서 반복 횟수(숫자)와 반복될 명령을 지정해야 합니다. 주기에서 반복되는 명령을 호출 루프 바디.

이를 예를 들어 살펴보겠습니다.

처음에 로봇은 왼쪽 상단 셀에 있었습니다.

먼저 선형적으로 문제를 해결합시다. 이 경우 현재 셀 위에 페인트를 칠하고 한 셀을 오른쪽으로 이동하면 프로그램이 다음과 같이 표시됩니다.
로봇을 사용

일찍

칠하다

오른쪽

칠하다

오른쪽

칠하다

오른쪽

칠하다

오른쪽

칠하다

오른쪽

칠하다

오른쪽

칠하다

오른쪽

보시다시피, 오른쪽으로 칠하라는 명령이 7번 반복됩니다. 이제 루프를 사용하여 프로그램을 다시 작성해 보겠습니다. 그건 그렇고, 프로그램에 루프를 삽입하려면 메뉴를 사용할 수 있습니다 끼워 넣다물품을 고르시 오 nc-time-kc또는 키보드 단축키 중 하나를 누르십시오. 이스케이프, 피(러시아 문자 Р) 또는 ESC, H(라틴 문자 H). 그리고 키를 순차적으로 눌러야 합니다.- 먼저 Esc, 해제한 다음 P 또는 H만 해제합니다.

그래서 여기 우리 사이클 프로그램다음과 같이 보일 것입니다:

로봇을 사용

NC 7번

칠하다

오른쪽

실행하면 결과가 동일하다는 것을 알 수 있습니다. 7개의 채워진 셀입니다. 그러나 프로그램은 알고리즘적 관점에서 더 짧아지고 훨씬 더 지능화되었습니다!

워밍업 및 통합으로 로봇용 프로그램을 독립적으로 작성할 것을 제안합니다. 이 프로그램은 측면이 7개인 정사각형을 그립니다. 당연히 사이클을 사용합니다. 댓글에서 해결책을 기다립니다.

조건부 루프.

로봇을 사용하여 정보학에서 GIA의 문제 19를 해결할 때 카운터가 있는 루프를 사용하는 것은 작동하지 않습니다. 거기에서 필드는 일반적으로 무한하고 벽에는 특정 길이가 없습니다. 따라서 카운터가 있는 루프의 반복 횟수를 결정할 수 없습니다. 하지만 그것은 중요하지 않습니다 - 그것은 우리를 도울 것입니다 조건이 있는 루프.

체육으로 돌아가서 과제를 바꾸자. 결국 누군가는 7개의 스쿼트를 하지 않을 수 있고 다른 누군가는 27개의 스쿼트를 할 수 있습니다. 사이클을 만들 때 이것을 고려할 수 있습니까? 물론. 이제 우리는 카운터(반복 횟수)가 아니라 조건을 사용할 것입니다. 예를 들어, 피곤하기 전에 스쿼트를 하십시오. 이 경우 사람은 특정 횟수의 스쿼트를하지 않고 지칠 때까지 쪼그리고 앉습니다. 그리고 추상 언어의 루프는 다음과 같습니다.

안녕 피곤하지 않다

스쿼트를 하다

주기의 끝

우리의 경우 단어가 피곤하지 않습니다. 이것이 조건입니다. true이면 루프가 실행됩니다. false(피로)이면 루프 본문이 실행되지 않습니다. 로봇 수행자는 몇 가지 조건이 있습니다.

탑 느슨한

바닥 느슨한

무료로 남겨둔

바로 무료

상단 벽

바닥 벽

왼쪽 벽

오른쪽 벽

그러나 GIA의 문제 19의 조건에서는 처음 4개만 표시되어 있으므로 우리는 그것들만 사용할 것이다.

이제 로봇의 다음 작업인 그리기를 해결해 보겠습니다. 수직선필드의 왼쪽에서 오른쪽 테두리로 조건이 있는 루프를 사용합니다. 처음에 로봇은 왼쪽 상단 모서리에 있습니다.

먼저 정의하자 언어 알고리즘- 즉, 로봇이 해야 할 일을 말로 설명합니다. 이 알고리즘은 다음과 같이 들릴 것입니다.

« 오른쪽에 있는 동안 오른쪽으로 자유롭게 이동하여 셀 위에 페인트 »

결과적으로 로봇은 오른쪽에 있는 모든 셀을 통과하고 벽이 오른쪽에 올 때까지 셀 위에 페인트합니다.

로봇 프로그램의 소스 코드는 다음과 같습니다.

로봇을 사용

nc 오른쪽 무료

오른쪽

칠하다

이 프로그램을 실행한 결과 다음 그림을 볼 수 있습니다.

그들은 추가 작업을 위해 그것을 설정하는 법을 배웠습니다. 이제 간단한 명령을 사용하여 로봇에 대한 알고리즘을 컴파일하는 과정으로 직접 이동해 보겠습니다.

비디오 자습서 형식의 정보를 선호하는 경우 사이트에 비디오 자습서가 있습니다.

모든 연주자는 명령 시스템( 스키집행자의 명령 시스템). 실행자 명령 시스템- 수행자가 실행할 수 있는 모든 명령의 집합입니다. 예를 들어 훈련된 개를 생각해 보십시오. 그녀는 "앉아", "눕기", "다음" 등과 같은 몇 가지 명령을 실행하는 방법을 알고 있습니다. 이것이 그녀의 명령 시스템입니다.

간단한 로봇 명령

우리 로봇에는 명령 시스템도 있습니다. 오늘 우리가 살펴볼 간단한 로봇 명령. 총 5가지가 있습니다:

  • 위로
  • 왼쪽으로
  • 오른쪽
  • 칠하다

이러한 명령을 실행한 결과는 이름에서 명확합니다.

  1. 위로— 로봇을 한 칸 위로 이동
  2. 아래로— 로봇을 한 셀 아래로 이동
  3. 왼쪽으로— 로봇을 왼쪽으로 한 셀 이동
  4. 오른쪽— 로봇을 오른쪽으로 한 칸 이동
  5. 칠하다— 현재 셀(로봇이 있는 셀) 위에 페인트합니다.

이 명령은 키보드에서 작성하거나 바로 가기 키를 사용할 수 있습니다(키를 누르면 명령이 자동으로 삽입됨).

  • 위쪽 - 탈출, 위쪽(위쪽 화살표)
  • 아래쪽 - 탈출, 아래쪽(아래쪽 화살표)
  • 왼쪽 - 탈출, 왼쪽(왼쪽 화살표)
  • 오른쪽 - 탈출, 오른쪽(오른쪽 화살표)
  • 페인트 위에 - 탈출, 공간 (공간)

원하는 단축키 조합을 눌러야 합니다. 일반적인 방법이 아닙니다!우리는 동시에 키를 누르는 데 익숙하지만 여기에는 필요합니다. 순차적으로 누르다. 예를 들어 위쪽 명령을 입력하려면 Esc 키를 눌렀다가 놓은 다음 위쪽 화살표를 눌러야 합니다. 이것은 기억해야 합니다.

이제 로봇을 위한 첫 번째 알고리즘을 작성할 준비가 되었습니다. 나는 간단한 것으로 시작하는 것을 제안합니다 - 3개의 셀의 측면이 있는 정사각형을 그립니다. 가다!

아이돌, 잇을 런칭합니다. 프로그램 작성을 시작할 수 있습니까? 당연히 아니지! 우리는하지 않습니다! 해보자 나는 이것을 사용하는 것이 좋습니다:

이제 모든 것이 준비되었습니다. 프로그램 작성을 시작해 보겠습니다. 그녀가 이렇게 보이는 한

기호 "|" 삭제 알고리즘을 "Square"라고 부릅니다.

나는 시계 방향으로 움직이는 사각형을 그릴 것을 제안합니다. 먼저 다음 명령을 실행하여 현재 셀 위에 페인트합니다. 칠하다. 그런 다음 오른쪽으로 한 걸음 나아가 다시 셀 위에 페인트를 칠합니다. 그리고 다시 오른쪽으로 가서 페인트칠을 합니다.

프로그램을 실행하고 어떤 일이 일어나는지 봅시다. 눌러 실행 F9또는 도구 모음의 버튼

결과적으로 다음과 같이 표시되어야 합니다.

그러한 로봇 창이 없으면 도구 모음에서 " 로봇 창 표시" 또는 로봇 메뉴에서 " 로봇 창 표시". 우리는 더 계속합니다.

이제 아래로 이동하여 사각형의 오른쪽을 칠합니다.

아래로

칠하다

아래로

칠하다

그런 다음 왼쪽으로 이동하여 사각형의 아래쪽 테두리를 칠합니다.

왼쪽으로

칠하다

왼쪽으로

칠하다

도색되지 않은 셀이 하나 남아 있습니다. 그 위에 칠하자

위로

칠하다

모든 준비가 완료되었습니다! 결과적으로 우리 프로그램은 다음과 같습니다.

로봇을 사용

정사각형

일찍

칠하다

오른쪽

칠하다

오른쪽

칠하다

아래로

칠하다

아래로

칠하다

실행 제어 로봇 KUMIR 시스템에서

로봇은 특정 환경(직사각형 체크 필드)에 존재합니다. 벽은 필드의 일부 셀 사이에 위치할 수 있습니다. 일부 셀은 음영 처리될 수 있습니다(그림 3.11).

로봇은 필드의 정확히 한 셀을 차지합니다.

상,하,좌,우 명령에 따라 로봇은 지정된 방향으로 다음 셀로 이동합니다. 도중에 벽이 있으면 실패가 발생합니다. 다음 명령을 실행할 수 없다는 메시지가 표시됩니다.

페인트 칠하라는 명령에 따라 로봇은 자신이 서 있는 셀 위에 페인트를 칠합니다. 셀이 이미 칠해진 경우 눈에 보이는 변경 사항이 발생하지 않더라도 다시 칠해집니다.

로봇은 올바르게 작성된 명령만 실행할 수 있습니다. down 명령 대신 적어두면 로봇은 이 항목을 이해하지 못하고 즉시 오류를 보고합니다.

영형
오류: 1 구문; 2. 논리적

장면 설명은 다음 위치에 저장됩니다. 텍스트 파일특수 형식(.fil 형식).

현재의- 로봇이 있는 환경 이 순간(로봇의 위치에 대한 정보 포함).

- 로봇을 이용한 프로그램 실행 초기에 로봇이 강제로 배치되는 환경.

운영 절차:


  1. 묻다 시작 환경작업에 따라:
메뉴 도구 → 로봇 시작 환경 변경 (작업 조건에 따라 환경 그리기, 이름 지정, 개인 폴더에 저장)

2. 계약자 지정:

메뉴 삽입 → 로봇 사용

3. 문제 해결을 위한 알고리즘을 작성하십시오.

4. 알고리즘 실행 (메뉴 실행 → 연속 실행 / F9)

KUMIR 시스템에서 실행 로봇의 명령 시스템




동작

위로

로봇이 1칸 위로 이동합니다.

아래로

로봇이 1칸 아래로 이동합니다.

왼쪽으로

로봇이 왼쪽으로 1칸 이동

오른쪽

로봇이 오른쪽으로 1칸 이동

칠하다

로봇은 자신이 있는 셀을 페인트합니다.

바로 무료

로봇은 해당 실행을 확인합니다. 단순한자귀

무료로 남겨둔



탑 느슨한



바닥 느슨한



셀이 음영 처리됨



케이지 청소



순환 알고리즘

주기특정 조건이 참이 될 때까지 행동을 반복하는 조직 .

루프 본체 -반복 가능한 일련의 작업.

상태 -부울 표현식(단순 또는 복합(복합))
주기 유형:

1."n번 반복" 반복 2. "안녕" 반복
nc n 번 안녕
. . 루프 바디. . 루프 본체
kts kts

예시: 안녕바로 무료


주기의 일반 보기 "n번 반복:

n번 반복


kts

while 루프의 일반적인 보기:

할 일


복합 조건하나 또는 그 이상으로 형성 간단한 용어및 서비스 단어 그리고, 또는, 아닙니다.


복합 조건 A와 B(여기서 A, B는 단순조건) 그 안에 포함된 2개의 단순조건이 각각 만족될 때 만족된다.

하자 - 위에 무료- 오른쪽에 무료그런 다음 복합 조건 A와 B- 상단이 무료이고 오른쪽이 무료입니다.


복합 조건 A 또는 B 포함된 두 가지 단순 조건 중 하나 이상이 충족되면 충족됩니다. 상단 무료 또는 오른쪽 무료
복합 조건 아니다- 조건 A가 충족되지 않을 때 충족됨.

예시: A를 음영 처리된 셀이라고 하자(단순 조건).

A가 아닌 복합 상태 확인:

a) A - 완료, NOT A(음영 처리되지 않음) - 완료되지 않음.

b) A - 완료되지 않음, NOT A(음영 처리되지 않음) - 완료됨.


분기 명령

분기 -특정 조건의 충족 여부에 따라 하나 또는 다른 일련의 작업이 수행되는 작업 구성의 한 형태.

IF 명령의 일반 보기:

만약에 그 다음에 그렇지 않으면

KUMIR 언어:

전체 분기: 부분 분기:
만약에 그 다음에 만약에 그 다음에

그렇지 않으면

모두

도우미 알고리즘- 주요 문제의 일부 하위 문제를 해결하는 알고리즘.

KUMIR 시스템에서 보조 알고리즘은 메인 프로그램의 끝 부분에 작성됩니다. 관계 범죄자)는 이름으로 메인 프로그램에서 실행을 위해 호출됩니다.

설문조사 및 과제

1. 로봇을 원래 위치에서 셀 B로 이동시키는 세 가지 명령의 모든 알고리즘을 제공하십시오.

로봇이 다음을 수행하는 동안 이 작업에 대한 알고리즘이 있습니까?

가) 두 단계 b) 4단계 c) 5단계 d) 일곱 단계?


  1. Petya는 로봇을 A 셀에서 B 셀로 옮기는 알고리즘을 만들었습니다. 로봇을 B에서 A로 이동하고 동일한 셀을 채우는 알고리즘을 얻기 위해 Kolya는 이 알고리즘으로 무엇을 해야 합니까?


7. 두 개의 보조 로봇 알고리즘이 알려져 있습니다.

로봇이 다음 기본 알고리즘을 수행할 때 어떤 일이 발생하는지 그립니다.


ㅏ)

NC 5번


패턴_1

오른쪽; 오른쪽;


비)

NC 7번


패턴_2

오른쪽; 오른쪽


안에)
오른쪽; 오른쪽; 오른쪽

위로; 위로

오른쪽; 오른쪽; 오른쪽

내려가는 길; 아래로


G)
오른쪽; 오른쪽
오른쪽; 오른쪽

8. 로봇이 지정된 셀을 칠할 알고리즘을 만듭니다.



9. 로봇의 오른쪽 어딘가에 벽이 있는 것으로 알려져 있다. 로봇이 여러 셀을 벽까지 칠하고 원래 위치로 돌아가는 제어 하에 알고리즘을 구성합니다.

10. 로봇의 오른쪽 어딘가에 음영 처리된 셀이 있는 것으로 알려져 있습니다.

에서 로봇이 음영 처리된 셀까지 여러 셀을 칠하고 원래 위치로 돌아가는 알고리즘을 그대로 두십시오.

11. 로봇은 수평 복도의 왼쪽 입구 부근에 위치하는 것으로 알려져 있다.

12. 로봇은 수평 복도 어딘가에 있는 것으로 알려져 있다. 복도의 어떤 세포도 칠해지지 않았습니다.

로봇이 이 복도의 모든 셀에 페인트를 칠하고 원래 위치로 돌아가는 제어 하에 알고리즘을 구성합니다.


13. 로봇 오른쪽에 있는 10개의 셀 행에서 일부 셀은 음영 처리됩니다.

에서 셀을 그리는 알고리즘을 그대로 두십시오.

a) 각 음영 셀 아래;

b) 각 음영 셀 위와 아래.


14. 다음 알고리즘 조각의 정확성에 대해 무엇을 말할 수 있습니까?

안녕셀이 음영 처리됨

만약에바로 무료 그 다음에

오른쪽; 칠하다

에게

15. 로봇이 세 개의 미로에서 B 셀에 도달할 수 있는 프로그램을 작성하십시오.


16. 로봇이 필드의 왼쪽 하단 모서리에서 오른쪽 상단으로 복도를 따라 갈 수 있는 프로그램을 작성하십시오. 복도는 한 칸의 너비를 가지며 왼쪽-아래-오른쪽-위 방향으로 뻗어 있습니다. 가능한 복도의 예가 그림에 나와 있습니다.



아다치 GIA


  1. 복도1. 로봇은 수직 복도 어딘가에 있습니다. 복도의 어떤 세포도 칠해지지 않았습니다. 로봇이 이 복도의 모든 셀을 칠하고 원래 위치로 돌아가는 알고리즘을 만듭니다.

  1. 에게
    필요한

    주어진
    복도2. 로봇은 좁은 수직 복도의 위쪽 셀에 있습니다. 복도의 너비는 하나의 셀이며 복도의 길이는 임의적일 수 있습니다.

로봇의 초기 위치의 가능한 변형이 그림에 표시됩니다(로봇은 문자 "P"로 표시됨)

복도 내부의 모든 셀을 채우고 로봇을 원래 위치로 되돌리는 로봇 알고리즘을 작성하십시오. 예를 들어 위 그림의 경우 로봇은 다음 셀 위에 페인트해야 합니다(그림 참조).


  1. 끝없이 펼쳐진 들판에는 긴 수평 벽이 있다. 벽의 길이는 알 수 없습니다. 로봇은 벽 바로 위의 케이지 중 하나에 있습니다. 로봇의 초기 위치도 불명. 가능한 위치 중 하나:
시간


필요한

주어진
벽의 크기와 로봇의 초기 위치에 관계없이 벽 위와 인접한 모든 셀을 그리는 로봇 알고리즘을 작성하십시오. 예를 들어, 주어진 도면에 대해 로봇은 다음 셀을 페인트해야 합니다.

로봇의 최종 위치는 임의적일 수 있습니다. 알고리즘을 실행할 때 로봇이 파괴되어서는 안됩니다.



  1. 끝없는 들판에 긴 수직 벽이 있습니다. 벽의 길이는 알 수 없습니다. 로봇은 벽 바로 오른쪽에 위치한 케이지 중 하나에 있습니다. 로봇의 초기 위치도 불명. 로봇의 가능한 위치 중 하나가 그림에 표시됩니다(로봇은 문자 "P"로 표시됨): 벽에 인접한 모든 셀 위에 페인트하는 작업 알고리즘 작성: 왼쪽, 위에서 시작 도색되지 않은 하나를 통해; 오른쪽에 음영이 있는 아래쪽에서 시작하여 하나를 통과합니다. 로봇은 다음을 만족하는 셀에만 페인트를 칠해야 합니다. 이 조건. 예를 들어 위 그림의 경우 로봇은 다음 셀을 채워야 합니다(그림 참조). 로봇의 최종 위치는 임의적일 수 있습니다. 알고리즘은 임의의 벽 크기와 로봇의 유효한 초기 위치에 대한 문제를 해결해야 합니다. 알고리즘을 실행할 때 로봇이 무너지지 않아야 합니다.


수직 벽의 왼쪽과 수평 벽 위에 있고 인접하는 모든 셀을 그리는 로봇용 알고리즘을 작성하십시오. 로봇은 이 조건을 충족하는 셀에만 페인트를 칠해야 합니다. 예를 들어, 위 그림의 경우 로봇은 다음 셀을 페인트해야 합니다(그림 참조).


시간 벽에 인접한 셀을 왼쪽에서 시작하여 하나를 통해 위와 아래로 그리는 로봇 알고리즘을 작성하십시오. 로봇은 이 조건을 충족하는 셀에만 페인트를 칠해야 합니다. 예를 들어, 주어진 그림 a)에 대해 로봇은 다음 셀을 페인트해야 합니다(그림 b 참조).

로봇의 최종 위치는 임의적일 수 있습니다. 알고리즘은 임의의 벽 크기와 로봇의 유효한 초기 위치에 대한 문제를 해결해야 합니다.



아르 자형

  1. 끝없는 들판에 긴 수직 벽이 있습니다. 벽의 길이는 알 수 없습니다. 로봇은 벽 바로 왼쪽에 위치한 케이지 중 하나에 있습니다. 로봇의 초기 위치도 불명. 로봇의 가능한 위치 중 하나가 그림에 표시됩니다(로봇은 문자 "P"로 표시됨).
벽에 인접한 모든 셀을 칠하는 알고리즘을 작성하십시오.

  • 왼쪽에 모두;

  • 오른쪽, 도색되지 않은 상단에서 시작하여 하나를 통과합니다.
로봇은 이 조건을 충족하는 셀에만 페인트를 칠해야 합니다.


1102_GIA2011

무한 필드에는 두 개의 수평 벽이 있습니다. 벽의 길이는 알 수 없습니다. 벽 사이의 거리는 알 수 없습니다. 로봇은 왼쪽 가장자리에 있는 케이지의 하단 벽 위에 있습니다. 맨 아래 벽 위와 맨 위 벽 아래에 있으며 인접한 모든 셀을 그리는 로봇용 알고리즘을 작성하십시오. 로봇은 이 조건을 충족하는 셀에만 페인트를 칠해야 합니다. 예를 들어 위 그림의 경우 로봇은 다음 셀을 채워야 합니다(그림 참조).

로봇의 최종 위치는 임의적일 수 있습니다. 알고리즘은 임의의 필드 크기와 직사각형 필드 내부의 허용 가능한 벽 위치에 대한 문제를 해결해야 합니다. 알고리즘을 실행할 때 로봇이 무너지지 않아야 합니다.



1103_GIA_2011


무한의 장에는 수평의 벽이 있다. 벽의 길이는 알 수 없습니다. 벽의 오른쪽 끝에서 수직 벽이 아래쪽으로 뻗어 있으며 길이도 알 수 없습니다. 로봇은 왼쪽 가장자리에 있는 케이지의 수평 벽 위에 있습니다. 그림은 다음 중 하나를 보여줍니다. 가능한 방법벽과 로봇의 위치(로봇은 문자 "P"로 표시됨).

수평 벽 위에 있고 수직 벽의 오른쪽에 인접하고 있는 모든 셀을 그리는 로봇용 알고리즘을 작성하십시오. 로봇은 이 조건을 충족하는 셀에만 페인트를 칠해야 합니다. 예를 들어, 위 그림의 경우 로봇은 다음 셀을 페인트해야 합니다(그림 참조).