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

그래서, 주기란 무엇인가? 우리가 체육 수업에 있고 과제에 직면했다고 상상해보십시오. 스쿼트 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 오른쪽 무료

오른쪽

칠하다

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

퍼포머 로봇. 도우미 알고리즘(2시간)

표적: 주 및 보조 알고리즘의 개념을 소개합니다. 보조 알고리즘 사용 규칙을 설명합니다. 보조를 사용하여 알고리즘의 예를 구문 분석합니다. 순차적 정제 방법으로 알고리즘을 구성하는 실용적인 기술을 개발합니다.

강의 계획

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

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

3. 실무

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

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

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

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

작업 1:

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

해결책

보드에 대한 분석:

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

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

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

작업2 . 보조 도구를 사용하여 숫자 1212를 형성하는 셀 위에 그림을 그리는 알고리즘을 작성하십시오.

숙제 : 다음 이미지를 그리는 알고리즘을 생각해 보세요. 두 가지 보조 알고리즘을 적용하여 문제를 해결합니다.

정보학 교사를 위한 방법론적 가이드. Evgrafova Olga Vladimirovna, 체육관 8번 Kolomna, 2013 "컴퓨터 과학과 ICT" 과목을 공부하는 과정에서 학생들은 정보 문화(컴퓨터와의 유능한 커뮤니케이션, 서류 작업, 전자 커뮤니케이션의 문화)뿐만 아니라 프로그래밍의 기초를 습득합니다. 이 분야에서 가장 성공적인 국내 개발 중 하나는 Kumir 프로그래밍 시스템입니다. 여기에서 학생들은 Robot 및 Draftsman 공연자와 함께 작업하여 알고리즘을 만들고 디버깅하는 실용적인 기술을 습득할 수 있습니다. 이 시스템의 장점은 학교 알고리즘 언어로 러시아어로 명령을 작성할 수 있는 가능성과 알고리즘 실행 결과의 가시성입니다. KuMir 시스템은 필요에 따라 설계되었습니다. 러시아 시스템교육. 그것의 특징:      자유롭게 배포됨; 멀티플랫폼; 제로 리소스 요구 사항; 러시아 과학 아카데미의 지원; 개발자 중에는 정보학에 관한 많은 교과서와 매뉴얼의 저자가 있습니다.  무료 프로그램 셸 Kumir는 http://www.niisi.ru/kumir/에서 찾을 수 있습니다. 불행하게도, 새로운 컴퓨터 과학 교과서의 저자들은 충분한 주의를 기울이지 않거나 일반적으로 이러한 수행자를 무시합니다. 동시에 GIA의 개발자와 -1-

피. 2

USE는 시험지 과제물에 출연자의 데이터를 활용한 과제물을 포함합니다. 이 주제는 "알고리즘 및 프로그래밍" 섹션에서 9학년 때 공부합니다. 주제 연구에 9시간이 할당됩니다. 학생들은 다음을 알아야 합니다. SKI 로봇, 수요일 공연 로봇; 알고리즘이란 무엇입니까? 알고리즘의 주요 속성은 무엇입니까? 알고리즘 작성 방법: 순서도, 교육용 알고리즘 언어; 기본 알고리즘 구성: 다음, 분기, 루프; 보조 알고리즘 할당. 학생들은 다음을 할 수 있어야 합니다. 교육용 알고리즘 언어로 된 알고리즘 설명을 이해합니다. 알려진 수행자에 대한 알고리즘 추적을 수행합니다. 로봇 실행기를 위한 선형, 분기 및 순환 제어 알고리즘을 구성합니다. 하위 작업을 할당합니다. 보조 알고리즘을 정의하고 사용합니다. 주제별 수업 계획 : No. p / p 1. 2. 3. 4. 5. 테오아워 리야 퍼포머 로봇. 실행 명령 시스템. 구성1 0.5 선형 알고리즘. 순환 알고리즘. 3 1 실제 작업 №1. 순환 알고리즘의 컴파일 및 디버깅. 알고리즘의 분기 및 순차적 개선. 2 1 실제 작업 №2. 순환 및 분기 알고리즘의 컴파일 및 디버깅. 보조 알고리즘 및 서브루틴. 2 0.5 예. 노예. 3번. "보조 알고리즘의 사용". 테스트. "연주자 환경에서 알고리즘 만들기" 수업 주제 연습 0.5 2 1 1.5 1 "연주자 로봇 훈련" 주제에 대한 수업 자료: -2-

피. 삼

레슨 1 실행 명령 시스템. 로봇은 벽이 위치할 수 있는 셀 사이의 직사각형 체크 무늬 필드에서 프로그램을 실행하는 동안 이동합니다. 이 필드는 도구 모음에 있는 "로봇 창" 버튼에 의해 화면에서 호출됩니다. 로봇 코드 필드. 로봇은 명령 명령 및 명령 질문을 실행할 수 있습니다. 명령 명령: 오른쪽, 왼쪽, 위, 아래, 페인트 칠. 도중에 벽이 있으면 명령을 실행할 수 없습니다. 로봇을 직접 제어하려면 다음을 사용하십시오. 원격. 리모컨의 버튼을 누르면 사람이 적절한 명령을 내리고 로봇이 이를 실행합니다. 을 위한 프로그램 제어어떤 명령을 어떤 순서로 실행할지 아는 것만으로는 충분하지 않습니다. 또한 컴퓨터가 이해할 수 있는 형식으로 이러한 명령을 기록해야 합니다. 알고리즘의 형태로 넣어라. 가장 간단한 경우 로봇의 알고리즘은 다음과 같이 작성됩니다. 알고리즘의 이름은 공백으로 구분된 일련의 문자 또는 단어입니다. 이름의 첫 문자는 숫자로 시작하면 안 됩니다. 정확한 이름: g, sum, 닉네임 경계, 4월 12일, 4월 12일, number_11_cl. "올바른" 이름은 파란색으로 강조 표시됩니다. use Robot alg algorithm_name 명령의 시작 순서 end 프로그램 본문의 알고리즘을 더 잘 이해하기 위해 주석을 사용할 수 있습니다. 주석은 |로 시작합니다. 주석이 여러 줄에 걸쳐 있는 경우 각 줄 앞에 | 기호가 있어야 합니다. 코멘트는 알고리즘의 진행에 영향을 미치지 않습니다. 예 1. "Knight's move"를 프로그램하십시오(로봇을 A 지점에서 B 지점으로 이동). 초기 상태: 프로그램: 결과: 알고리즘 언어 규칙에 따라 세미콜론으로 구분된 한 줄에 여러 명령을 작성할 수 있습니다. -삼-

피. 네

Example 2. A 지점에서 B 지점으로 로봇을 이동해야 합니다. 로봇이 거쳐야 하는 경로는 동일한 다섯 부분으로 나눌 수 있습니다. 각 섹션을 전달하기 위한 명령을 한 줄로 그룹화하는 것이 편리합니다. 이렇게 하면 알고리즘 기록이 단축되고 이해하기 쉬워집니다. 환경의 변화 로봇. 로봇이 새 환경에서 작동하도록 하려면 다음 주 메뉴 명령을 사용하여 로드해야 합니다. "로봇" 요소 선택 "시작 환경 변경" 열기 원하는 폴더그리고 파일을 선택합니다. 새로운 환경을 만듭니다. 로봇에 대한 새 환경을 생성하려면 기본 메뉴 명령을 실행해야 합니다. "도구" "시작 환경 편집" 항목을 선택합니다. "설정" 창에서 "설정" 요소를 선택하십시오. "새 설정" 행과 열 수를 설정하십시오. 마우스 클릭으로 벽을 배치하고 로봇을 원하는 셀로 이동합니다. "Environment" "Save AS" 명령을 사용하여 환경을 저장합니다. 배치할 파일 이름과 폴더를 지정합니다. "저장" 버튼을 누릅니다. 벽 추가/제거 – 셀 사이의 경계를 클릭합니다. 색상화/셀 지우기 - 셀을 클릭합니다. 점 넣기/제거 - 누른 상태에서 셀 클릭 Ctrl 키. 방사선, 레이블 설정 - 마우스 오른쪽 버튼을 클릭합니다. 로봇 이동 - 마우스로 끕니다. "실행" 프로그램 실행. "계속 실행" 컴퓨터에서 독립적인 작업: 1. 새 환경을 로드하고 로봇을 "B" 지점으로 이동하고 "점" 기호로 표시된 지점을 따라 페인팅: "로봇을 위한 워크샵" 폴더 "1" 작업 " C”(K. Polyakov http://kpolyakov.narod.ru 사이트의 자료), 프로그램을 만들고 로봇 창을 열고 실행을 위해 프로그램을 실행합니다. "1_B"라는 이름으로 폴더에 프로그램을 저장합니다. 2. 새 설정을 만들고 폴더에 "Settings_1"이라는 이름으로 저장합니다. 새 환경을 위한 프로그램을 작성하고 "new_environment_1"이라는 이름으로 폴더에 저장합니다. 3. **워크샵의 폴더 #1에서 다른 문제를 풉니다. -4- 나

피. 5

수업 2. 순환 알고리즘. 사이클 N - 시간. 반복 과제: Petya는 Walk Robot을 위한 알고리즘을 만들었습니다. Kolya는 그 중 하나의 명령을 지웠습니다. 로봇이 초기 상태. 답: 오른쪽에 Robot alg Walk start를 사용하세요. 위로; 오른쪽으로. ? . 아래로; 왼쪽; left end nc N번 · 일련의 명령 kc 알고리즘을 컴파일할 때 특정 명령 시퀀스를 연속으로 여러 번 실행해야 하는 경우가 종종 있습니다. 예를 들어, 마지막 수업의 예제 번호 2입니다. 이러한 경우 알고리즘 작성을 단순화하기 위해 "Loop N-times" 명령을 사용할 수 있습니다. N은 반복 횟수를 지정하는 정수 표현식입니다. 알고리즘이 실행되면 일련의 명령이 지정된 횟수만큼 주기적으로 반복됩니다. 이 숫자는 0이거나 음수일 수 있습니다. 이러한 경우는 오류로 간주되지 않으며 루프의 본문만 한 번도 실행되지 않으며 컴퓨터는 kts 이후에 작성된 명령의 실행을 즉시 진행합니다. 예제 1. A 지점에서 B 지점으로 로봇을 이동해야 합니다. A B 예제 2. 16셀 행에 색칠합니다. 예 3. 5(행) x 6(열) 직사각형을 채우십시오. use Robot Alg Rectangle start nc 5회 kc end 루프를 다른 루프 안에 넣을 수 있습니다. 그런 다음 중첩이라고 합니다. -5-

피. 6

컴퓨터에서 독립적인 작업: 예제 4. 로봇을 초기 위치에서 별표로 표시된 지점으로 이동하고 도중에 미로의 셀 위에 페인트를 칠해 봅시다. 환경과 프로그램을 만듭니다. 폴더에 파일을 저장합니다. 예제 5. 로봇을 초기 위치에서 베이스로 옮기고 점이 표시된 셀 위에 페인트합니다. 환경과 프로그램을 만듭니다. 폴더에 파일을 저장합니다. Example 6. 초기 위치에서 A 지점까지 미로를 통해 로봇을 안내해야 합니다. Example 7. 각 측면 복도를 살펴보고 초기 위치에서 A 지점까지 복도를 따라 로봇을 안내해야 합니다. 예제 8. *로 표시된 필드의 셀을 그리는 프로그램을 작성하십시오. 로봇의 초기 위치는 ◊ 아이콘으로 표시됩니다. 실시예 9*. 연주자의 필드에 벽이 노출되어 있습니다. 수행자의 초기 최적 위치를 찾고 프로그램을 작성해야 합니다. 그 결과 셀이 채워집니다(그림 참조). **Workshop for Robot' 폴더를 이용하여 프로그램을 작성 _ 2번. -6-

피. 7

3과 로봇과 벽 사이의 거리, 벽의 길이에 의존하지 않는 보편적인 알고리즘을 만드는 방법을 배워야 합니다. 이를 위해 우리는 새로운 루프 연산자를 사용할 것입니다. nt while condition 일련의 명령 kts 주기를 실행하는 동안 컴퓨터는 다음 작업을 반복합니다.  조건을 확인합니다.  조건이 충족되면 루프 본문 명령을 실행하고 조건을 다시 확인하는 등  조건이 충족되지 않으면 자유 사이클의 왼쪽 벽의 실행이 완료되고 명령이 실행되며, 오른쪽 벽의 명령은 kts 이후에 자유롭게 기록됩니다. 하단 벽 하단 무료  사이클 조건(명령-질문): 상단 벽 상단 자유 셀 채워진 셀 청소 참고.  처음부터 조건이 충족되지 않으면 루프의 본문은 한 번도 실행되지 않습니다!  항상 조건이 충족되면 루프의 실행이 완료되지 않을 수 있습니다. 이 상황은 일반적으로 오른쪽에 있는 자유 컴파일 알고리즘의 NC BYA 오류로 인해 발생합니다. 오른쪽; 왼쪽 무한 알고리즘의 예(오른쪽에 벽이 없음): KC 조건은 단순하고 복합적일 수 있습니다. 단순 조건은 일반적으로 일종의 수표입니다. 로봇의 모든 명령 질문이 예가 될 수 있습니다. 복합 조건은 AND, OR, NOT 서비스 단어를 사용하여 몇 가지 간단한 조건으로 구성됩니다. 사이의 경우 간단한 용어 AND가 성립하면 복합 조건이 충족되기 위해서는 두 단순 조건이 모두 참이 되어야 합니다. 단순 조건 사이에 OR이 있는 경우 복합 조건이 충족되려면 최소한 하나의 단순 조건이 참이면 충분합니다. 예제 2. 로봇 예제 1. 봇이 가리키는 로켓을 베이스로 이동하려면 페인트를 칠해야 합니다. 이미지에. 벽의 길이와 벽까지의 거리는 알 수 없습니다. Robot alg To Base를 일찍 사용하십시오. nc 상단은 무료입니다. . 위로. kt. 벽이 위에 있는 동안 nts. . 오른쪽으로. kt. 위로 콘 -7-

피. 여덟

▪ 컴퓨터에 대한 독립적인 작업: 로봇 분야의 어딘가에는 크기를 알 수 없는 모서리 형태의 벽이 있습니다. 임의의 셀에서 벽 왼쪽에 있지만 항상 반대편에 있는 로봇은 그림과 같이 벽에 도달하여 벽 뒤의 벽을 따라 모든 셀을 페인트해야 합니다. ▪ 로봇을 초기 위치에서 A 지점으로 이동시키면서 필드의 지정된 셀에 페인팅을 해야 합니다. 벽의 치수와 벽 사이의 거리는 임의적일 수 있습니다. ▪ Robot Workshop 폴더  Folder_4_Tasks_А_С_D  Folder_5_Tasks_A_B_C_D Lesson 4. 실습 №1. 로봇을 위한 순환 알고리즘. 옵션 1 작업 1. 벽 왼쪽 또는 벽 상단에 있는 셀 위에 페인트합니다. 로봇에서 벽까지의 거리는 알 수 없습니다. 벽의 길이는 알 수 없습니다. 환경을 만들고 프로그램을 작성하십시오. 폴더에 파일을 저장합니다. R 작업 2. 수행자 로봇은 제한된 정사각형 영역 안에 어딘가에 있습니다. 정사각형의 한 변의 길이는 알 수 없습니다. 정사각형의 대각선에 있는 모든 셀을 왼쪽 상단에서 오른쪽 하단 모서리로 그리는 로봇 알고리즘을 작성하십시오. 환경을 만들고 프로그램을 작성하십시오. 폴더에 파일을 저장합니다. 작업 3. 표시된 셀 위에 페인팅하는 동안 셀 A에서 셀 B로 연주자를 옮깁니다. 벽의 길이와 벽 사이의 거리는 알려져 있지 않습니다. 환경을 만들고 프로그램을 작성하십시오. 폴더에 파일을 저장합니다. -여덟-

피. 9

Task 4. 로봇을 초기 위치(◊)에서 A 지점으로 이동시키면서 필드의 표시된 셀을 칠해야 합니다. 벽의 치수와 벽 사이의 거리는 임의적일 수 있습니다. 작업 5. 무한 필드에 사다리가 있습니다. 단계 수는 얼마든지 가능합니다. 아래쪽 수평 벽은 오른쪽으로 무한히 계속되고 위쪽 수평 벽은 왼쪽으로 무한히 확장됩니다. 로봇은 바닥 수평 벽 위 어딘가에 있습니다. 계단의 수직 부분을 따라 위치한 셀 위에 페인트합니다(그림 참조). 로봇의 최종 위치. 환경을 만들고 프로그램을 작성하십시오. 폴더에 파일을 저장합니다. 각 단계의 크기는 가로로 2셀, 세로로 2셀입니다. 옵션 2 작업 1. 직사각형의 왼쪽과 아래쪽 및 벽에 인접한 모든 셀 위에 페인트하는 알고리즘을 로봇을 위해 작성하십시오. 로봇에서 벽까지의 거리와 벽의 길이는 알려지지 않았습니다. 환경을 만들고 프로그램을 작성하십시오. 폴더에 파일을 저장합니다. 작업 2. 수행자 로봇은 제한된 정사각형 영역 안에 어딘가에 있습니다. 정사각형의 한 변의 길이는 알 수 없습니다. 오른쪽 상단에서 왼쪽 하단 모서리까지 정사각형의 대각선에 있는 모든 셀을 그리는 로봇 알고리즘을 작성하십시오. 환경을 만들고 프로그램을 작성하십시오. 폴더에 파일을 저장합니다. 작업 3. 표시된 셀 위에 페인팅하는 동안 셀 A에서 셀 B로 연주자를 옮깁니다. 벽의 길이와 벽 사이의 거리는 알려져 있지 않습니다. 환경을 만들고 프로그램을 작성하십시오. 폴더에 파일을 저장합니다. -9-

피. 십

Task 4. 로봇을 초기 위치(◊)에서 A 지점으로 이동시키면서 필드의 표시된 셀을 칠해야 합니다. 벽의 치수와 벽 사이의 거리는 임의적일 수 있습니다. 작업 5. 무한 필드에 사다리가 있습니다. 단계 수는 얼마든지 가능합니다. 아래쪽 수평 벽은 왼쪽으로 무한히 계속되고 위쪽 수평 벽은 오른쪽으로 무한히 확장됩니다. 로봇은 바닥 수평 벽 위 어딘가에 있습니다. 계단의 수직 부분을 따라 위치한 셀 위에 페인트합니다(그림 참조). 로봇의 최종 위치. 환경을 만들고 프로그램을 작성하십시오. 폴더에 파일을 저장합니다. 각 단계의 크기는 가로로 2셀, 세로로 2셀입니다. 5과 명령 "if _ then _ else _ all" 명령의 일반 보기: if condition then actions 1 else actions 2 all 명령 구조: 조건을 확인한 후 조건이 true이면 작업 1이 수행되고 그렇지 않으면 작업 2가 실행됩니다. After 즉, all이라는 단어 뒤에 쓰여진 명령입니다. 그렇지 않으면 분기가 누락될 수 있습니다(불완전한 분기). 이 경우 명령은 다음과 같은 형식을 갖습니다: 조건이면 모든 작업 조건이 충족되지 않으면 다음에 작성된 명령 관계모두. 예제 1. 임의의 길이의 복도를 통해 로봇을 안내하는 프로그램을 작성하십시오. 그 과정에서 로봇은 아래에 벽이 없는 모든 셀 위에 페인트를 칠해야 합니다. 구멍의 수는 알 수 없습니다. - 십 -

피. 열하나

예제 2. 로봇을 B 지점으로 이동하고 점이 표시된 셀 위에 페인트합니다. 벽의 길이와 "막다른 골목"의 수는 알려져 있지 않습니다. 사용 Robot alg To Base start nt 위쪽이 비어 있으면 오른쪽에서 오른쪽으로 자유 페인트 모든 kc 아래쪽 끝 예** 복도에 음영 처리된 셀이 몇 개 있는지 계산합니다(실행을 위해 추가 구성을 구문 분석해야 합니다. integer count | 정수형 변수의 설명 count:= count+1 | 변수를 1만큼 증가 출력 count | 변수의 값을 화면에 표시 컴퓨터에서 독립적인 작업: 환경을 만들고 문제 해결 Task 1. 알고리즘 만들기 로봇이 환경을 통과할 수 있도록 하기: Task 2. 로봇이 여러 장애물을 극복하고 벽에 도달하는 프로그램을 작성하십시오. 장애물은 어디든지 놓을 수 있습니다.-11-

피. 12

작업 3. 점으로 표시된 셀의 색상을 지정합니다. 작업 4. Robot alg To the Base를 사용하여 상단이 자유로워지면 오른쪽이 자유로워질 때까지 nc 위에 페인팅을 시작합니다. 페인트 칠하다; down 그렇지 않으면 모든 kc down con 위에 페인트 칠합니다. 작업 5. 벽 옆에 있는 셀 위에 페인트합니다. 두 벽 사이의 모든 셀을 채우는 알고리즘을 작성하십시오. 어느 벽이 왼쪽에 있는지 알 수 없습니다. 사용 Robot alg between_walls start nt until (위에서 자유롭지 않음) 또는 (아래에서 자유롭지 않음) right if (위에서 자유롭지 않음) 및 (아래에서 자유롭지 않음) 그런 다음 모든 kc를 페인트합니다. end use Robot alg uch5 start right nts until free 아래에서; 오른쪽에 페인트; 왼쪽이 자유롭게 칠해질 때까지 nts 아래로; 왼쪽이 자유롭게 칠해질 때까지 왼쪽으로 kts nts; 페인트 다운 kts; 왼쪽; 페인트 칠하다; 위로; 상단이 자유롭게 칠해질 때까지 nts; 위에서부터 자유롭게 칠할 수 있을 때까지 kts nts를 올립니다. 왼쪽 kts con Task 6**. 로봇은 복도의 시작 부분에 있습니다. 복도에는 길이를 알 수 없는 위와 아래에 막다른 골목이 있지만, 그 위치는 서로 마주하고 있지 않습니다. 복도의 길이도 불명. 모든 막다른 골목을 칠하고 복도를 나가는 알고리즘을 작성하십시오. - 12 -

피. 13

로봇 alg 퍼핀을 일찍 사용하십시오. 아직 (상단 벽) 또는 (하단 벽). . 오른쪽으로. . if (상단 무료) 및 (하단 벽) . . . 그 다음에. . . . nc 상단은 무료입니다. . . . . 위로; 칠하다. . . . kt. . . . nc 바닥이 비어 있는 동안. . . . . 아래로. . . . kt. . 모두. . if (하단 무료) 및 (상단 벽). . . 그 다음에. . . . nc 바닥이 비어 있는 동안. . . . . 아래로; 칠하다. . . . kt. . . . nc 상단은 무료입니다. . . . . 위로. . . . kt. . 모두; . kts; con 빨간색으로 강조 표시된 명령은 복도를 나갈 때 정지해야 합니다. 6과 로봇을 위한 순환 및 분기 알고리즘. KIM GIA를 사용하여 작업을 해결합니다. 논평. 알고리즘을 컴파일할 때 문제는 일반적인 형식으로 해결되어야 합니다. 그림의 모양은 정의되어 있지만 변의 길이, 계단 수 및 기타 매개 변수는 다를 수 있습니다. 이 프로그램은 비슷한 종류의 모든 인물에 대해 작동해야 합니다! 작업 1. 설정을 만들고 벽의 수직 섹션 오른쪽에 있는 모든 셀을 칠하는 알고리즘을 작성합니다. 로봇 alg 작업 1 시작을 사용하십시오. 오른쪽으로. nc 상단은 무료입니다. . 칠하다. kt. nc 상단이 자유로울 때까지. . 오른쪽으로. kt. 위로. nc 왼쪽이 자유로울 때까지. . 페인트 칠하다; 위로. kts 콘 - 13 -

피. 십사

로봇 alg 태스크 2 시작을 사용하십시오. 오른쪽에 있는 동안 nts는 무료입니다. . 오른쪽으로. kt. nc 오른쪽이 자유로울 때까지. . 위로. kt. 오른쪽으로. nc 오른쪽이 자유로울 때까지. . 칠하다; 오른쪽으로. kts con 각 단계의 높이는 1셀, 너비는 2셀입니다. 작업 2. 단계 위의 모든 셀을 채우는 알고리즘을 작성하십시오. 작업 3. 왼쪽에서 오른쪽으로 내려가는 계단 위에 있는 모든 셀 위에 페인트합니다. 로봇 alg 태스크 3 시작을 사용하십시오. nc 바닥이 비어 있는 동안. . 아래로; 왼쪽; 왼쪽으로. kt. nc 왼쪽이 자유로울 때까지. . 페인트 칠하다; 오른쪽으로. . 페인트 칠하다; 오른쪽으로. . 아래로. kts con Task 4. 미로의 세포에 색을 칠하십시오. Robot lg Labyrinth를 일찍 사용하십시오. 오른쪽으로. 오른쪽 벽에 있는 동안 nts. . 페인트 칠하다; 위로. . 페인트 칠하다; 위로. . 페인트 칠하다; 오른쪽으로. . 페인트 칠하다; 아래로. . 페인트 칠하다; 아래로. . 페인트 칠하다; 오른쪽으로. kts con Task 5** 연주자는 임의의 셀에 있지만 항상 벽 반대편에 있습니다(위 그림). 결과적으로 아래 그림과 같이 셀 위에 페인트를 칠해야 합니다. - 열네 -

피. 열 다섯

로봇 alg 종료 시작을 사용하십시오. nc 오른쪽에 있는 동안 오른쪽에 무료입니다. . kt. nc 오른쪽 벽이 내려갈 때까지; . kt. 오른쪽; 위로. nts yet(왼쪽에 벽이 있고 위쪽에 비어 있음) 또는 (오른쪽에 벽이 있고 오른쪽에 비어 있음) 또는 (오른쪽에 벽이 있고 아래쪽에 비어 있음) 또는 (아래에 벽이 있고 왼쪽에 비어 있음). . if (왼쪽 벽) 및 (상단 무료) . . . 그 다음에. 페인트 칠하다; 위로. . 모두. . if (상단 벽) 및 (오른쪽 무료) . . . 그 다음에. . 페인트 칠하다; 오른쪽으로. . 모두. . 오른쪽에 벽이 있고 바닥이 비어 있는 경우. . . 그 다음에. . 페인트 칠하다; 아래로; . . 모두. . 벽이 아래에 있고 왼쪽이 비어 있는 경우. . . 그 다음에. . . 페인트 칠하다; 왼쪽; . . 모두; . kts; con Lesson 7. 보조 알고리즘 어떤 문제를 풀 때, 그것들을 더 작은 하위 작업으로 나누는 것이 편리합니다. 각 하위 작업은 독립적인 알고리즘으로 공식화될 수 있습니다. 이 경우 보조 알고리즘에 대한 호출이 나중에 추가되는 하위 작업을 해결하는 데 사용되는 소위 기본 알고리즘이 먼저 컴파일됩니다. 이러한 해결 방법을 순차 미세 조정 방법이라고 합니다. 이를 통해 프로그래머 그룹이 프로젝트에서 작업하는 동안 각자가 자신의 하위 작업을 해결할 수 있습니다. 보조 알고리즘을 실행하는 명령을 호출이라고 하며 메인 알고리즘의 본문에 작성됩니다. 알고리즘 언어에서는 주 알고리즘이 먼저 작성되고 보조 알고리즘이 아래 행에 작성됩니다. 예 1 1과의 설정을 고려하십시오. 로봇은 점으로 표시된 셀로 이동해야 합니다. Robot alg 복도 시작 우회를 사용하십시오. 우회; 우회; 우회; 바이패스 연결 바이패스 시작; 위로; 오른쪽 아래로; 아래로; 오른쪽 콘 - 15 -