실행 제어 로봇 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"로 표시됨).

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

키랴노프 티모페이 페도로비치

만약-그렇다면-모두

팀의 일반적인 견해:

조건이라면
그런 다음 시리즈 1
일명 시리즈 2
모두

시리즈 2공식 단어와 함께 그렇지 않으면누락될 수 있습니다. 이 경우 명령은 다음과 같습니다.

조건이라면
그런 다음 시리즈 1
모두

명령을 실행할 때 만약에 Kumir가 먼저 확인 상태사이에 기록 만약에그리고 그 다음에. 이 조건이 충족되면, 시리즈 1, 그렇지 않으면 - 시리즈 2(존재하는 경우), 그 후 Kumir는 단어 뒤에 기록된 명령을 실행합니다. 모두.
조건이 충족되지 않고 시리즈 2가 없는 경우 KuMir는 즉시 all이라는 단어 뒤에 기록된 명령을 실행합니다.

실시예 1

만약 그 다음에
b:=b-a
p:=p+q
그렇지 않으면
a:=a-b
q:=q+p
모두

실시예 2

x > m인 경우
그 다음에
m:= x
n:= n+1
모두

예 3(로봇 출연자)

권리가 무료라면
그 다음에
오른쪽
모두

그렇지 않으면 모두 선택

팀의 일반적인 견해:

선택
조건 1: 시리즈 1
조건 2: 시리즈 2

조건 n: 시리즈 n
그렇지 않으면 시리즈 n+1
모두

예어 그렇지 않으면해당하는 일련의 명령과 함께 누락될 수 있습니다.

선택
조건 1: 시리즈 1
조건 2: 시리즈 2

조건 n: 시리즈 n
모두

Kumir가 먼저 확인 조건 1. 그것이 관찰되면 KuMir는 다음에서 명령을 실행합니다. 시리즈 1, 그 후에 단어 뒤에 쓰여진 명령을 실행합니다. 모두. 그렇지 않으면 KuMir는 다음과 동일한 작업을 수행합니다. 조건 2및 팀 시리즈 2등.
단어 뒤에 쓰여진 명령 그렇지 않으면어떤 조건도 충족되지 않으면 실행됩니다.
선택 명령에서는 여러 조건이 참인 경우에도 항상 최대 하나의 명령 시리즈가 실행됩니다. 선택 명령의 실행은 값이 yes인 첫 번째(순서대로) 조건이 발견된 후 종료됩니다(및 해당하는 일련의 명령이 실행됨).

실시예 1

선택
a > 1의 경우: i:= i + 1
위해< 0: j:= j - 1
그렇지 않으면 t:= 나는; 나는:= j; j:= t
모두

나선을 그리는 알고리즘:

서랍 사용

일찍
. 지점으로 이동(3,3)
. 펜을 내리다
. 코일(1); 코일(3); 코일(5); 코일(7); 코일 (9)
. 펜을 들어
범죄자
알그 턴(arg w)
일찍
. 벡터로 이동(a, 0)
. 벡터로 이동(0, -a)
. 벡터로 이동(-a-1.0)
. 벡터로 이동(0, a+1)
범죄자

명령 블록에 주의하십시오.

코일(1); 코일(3); 코일(5); 코일(7); 코일 (9)

보조 알고리즘 "coil(arg thing a)"은 5번 호출되지만 "N times" 루프에서는 호출될 수 없습니다. 다른 값논쟁.

그러나 인수의 값이 1에서 9로 변경되고 매번 2씩 증가하는 것을 볼 수 있습니다. 그래서 우리가 도울 수 있습니다 카운터가 있는 루프. 또한 이러한 주기를 "for" 주기라고 합니다.

카운터가 있는 루프- 어떤 변수가 주어진 초기 값에서 어떤 단계를 거쳐 최종 값으로 값을 변경하는 루프이며, 이 변수의 각 값에 대해 루프의 본문이 한 번 실행됩니다.

일반적으로 이 루프는 일부 값을 반복하고 각각에 대해 일부 작업을 수행해야 하는 경우에 사용됩니다.

카운터가 있는 주기의 일반적인 보기:

에 대한 nc<счетчик>~에서<нач. знач.>~ 전에<кон. знач.>[단계<знач.>]
<тело цикла (последовательность команд)>
kts

단계를 표시할 필요는 없으며 지정하지 않으면 1과 동일한 것으로 간주됩니다.

이제 "나선형" 알고리즘을 다음과 같이 다시 작성할 수 있습니다.

서랍 사용

일찍
. 지점으로 이동(3,3)
. 펜을 내리다
. 전체 크기
. nc 사이즈 1 ~ 9 2단계
. . 코일(크기)
. kts
. 펜을 들어
범죄자
알그 턴(arg w)
일찍
. 벡터로 이동(a, 0)
. 벡터로 이동(0, -a)
. 벡터로 이동(-a-1.0)
. 벡터로 이동(0, a+1)
범죄자

이 예에서 카운터 변수 "size"는 1, 3, 5, 7, 9 값을 받습니다. 즉, 루프는 5번 실행됩니다. "size" 변수의 각 값에 대해 루프 본문은 한 번 실행됩니다. 이 예에서는 다음이 호출입니다. 보조 알고리즘"코일(인수 것)".

변수를 처음 사용하기 전에 변수가 어떤 유형인지 선언해야 합니다. 이것은 "정수 크기" 행에서 우리 프로그램에서 수행됩니다. 즉, "크기" 변수를 사용하여 정수를 저장하므로 이에 대한 메모리를 할당해야 함을 나타냅니다. 변수에 대해서는 잠시 후에 더 이야기하겠습니다.

이러한 알고리즘의 블록 다이어그램은 다음과 같습니다.

다른 예를 살펴보겠습니다.

먼저 점 (x, y)에 정사각형을 그리는 보조 알고리즘을 기억하고 작성해 보겠습니다. 도면을 변경하려면 다음 명령을 사용합니다. 벡터로 이동(이전 예에서는 포인트로 이동했습니다).

알고리즘은 다음과 같을 수 있습니다.

alg 정사각형(arg x, y, 측면)
일찍
. 지점으로 이동(x, y)
. 벡터로 이동(-측면/2, 측면/2)
. 펜을 내리다
. 벡터로 이동(측면, 0)
. 벡터로 이동(0, -측)
. 벡터로 이동(-측, 0)
. 벡터로 이동(0, 측면)
. 펜을 들어
범죄자

이러한 보조 알고리즘을 사용하여 다음 그림을 그립니다.

이를 위해 "for" 루프를 사용합니다. 샘플 프로그램 연구:

서랍 사용
그림 1
일찍
. 정수 z
. nc for z 2에서 10까지 2단계
. . 정사각형(0, 0, z)
. kts
범죄자
alg 정사각형(arg x, y, 측면)
일찍
. 지점으로 이동(x, y)
. 벡터로 이동(-측면/2, 측면/2)
. 펜을 내리다
. 벡터로 이동(측면, 0)
. 벡터로 이동(0, -측)
. 벡터로 이동(-측, 0)
. 벡터로 이동(0, 측면)
. 펜을 들어
범죄자

이 예에서 변수 "z"는 2, 4, 6, 8, 10 값을 받습니다. 즉, 루프는 5번 실행됩니다. 각 "z" 값에 대해 루프 본문이 한 번 실행됩니다. 이 예에서는 보조 제곱 알고리즘에 대한 호출입니다.

변수를 처음 사용하기 전에 변수가 어떤 유형인지 선언해야 합니다. 이것은 "integer z" 행에서 우리 프로그램에서 수행됩니다. 즉, 변수 "z"를 사용하여 정수를 저장하므로 이에 대한 메모리를 할당해야 함을 나타냅니다. 변수에 대해서는 잠시 후에 더 이야기하겠습니다.

알다시피 알고리즘은 숫자뿐만 아니라 대수식, 수식(예: "-side/2"). 컴퓨터 과학에서는 이러한 표현을 산수. 언어의 규칙은 알고리즘을 작성할 때 숫자를 쓸 수 있는 곳이면 어디든지 임의의 산술식을 쓸 수 있도록 합니다.

1. 소개

이 전자 버전의 교과서에서 소개할 시스템 "KuMir"(이름은 "Set of Educational Worlds"에서 따옴)입니다.
"KuMir" 언어의 개발자는 현대 프로그래밍 기술을 충족하고 프로덕션 사용을 허용하는 컴퓨터 과학의 초기 과정을 위한 간단한 언어를 만드는 목표를 추구했습니다. 학교 알고리즘 언어를 기초로 삼았습니다. 언어는 교육에서 생산으로 전환하는 몇 가지 기능으로 보완되었습니다. 언어에는 다음이 있습니다.
유형 전체, 사물, 조명; 이러한 유형의 데이터에 대한 기존 작업 집합(문자열 및 표준 세트수학 함수);
배열( ) 지정된 유형; 주기, 분기 등의 구조적 제어 구조
Kumir는 개방적입니다. 외부 실행기를 연결하면 데이터베이스 관리 및 기하학적 개체 작업에서 유효한 숫자 유형 세트 확장에 이르기까지 새로운 기능으로 언어가 풍부해집니다(이 경우 언어는 표현식에서 새 유형을 기존 숫자 유형과 혼합할 수 있음).
현대 기술프로그래밍은 프로그램을 하위 프로그램뿐만 아니라 더 큰 단위, 즉 공통 데이터에서 작동하는 프로그램 집합으로 나누는 방법을 가르쳐줍니다. 에 다른 언어들프로그래밍에서 이러한 단위는 다르게 호출되며 KuMir에서는 이러한 단위를 "Executor"라고 합니다. 수행자 개념은 실제 작업에서 매우 중요하며 훈련의 가능한 초기 단계에 도입되어야 합니다.
교육 및 교육 소프트웨어 개발에 KuMir를 사용한 경험은 언어가 배우기 쉬우면서도 동시에 광범위한 생산 작업을 확장하기에 충분히 강력하다는 것을 보여주었습니다.
KuMir는 E-workshop과 마찬가지로 다음을 포함하는 통합 시스템입니다. 텍스트 에디터, 응답 시간이 0인 증분 컴파일러와 간단하고 편리한 디버거. 좋은 이름이런 종류의 시스템 - "Editor-Compiler": 프로그램을 입력하는 동안 컴파일러는 이를 처리하고 언제든지 프로그램을 약간의 지연 없이 실행할 준비가 됩니다.

2. 가치의 이름과 유형. 쿠미르 오퍼레이션

숫자뿐만 아니라 러시아어 및 라틴 알파벳의 모든 문자를 변수 이름 작성에 사용할 수 있습니다. 이름은 숫자로 시작하면 안 됩니다. KuMir 시스템의 이름 길이에 대한 엄격한 제한은 없지만 편집의 용이성과 라인 오버플로를 방지하기 위해 변수 및 알고리즘에 너무 긴 이름을 지정해서는 안 됩니다. 일반적으로 알고리즘의 용도를 이해할 수 있도록 이름이 선택됩니다. 프로그램을 편집할 때 철자가 유사한 러시아어와 라틴 문자는 컴퓨터로 구별된다는 점도 기억해야 합니다. 예를 들어, A라는 이름의 변수를 설명할 때 사용자가 라틴 알파벳으로 "A"를 입력하고 알고리즘 텍스트에서 러시아 알파벳으로 이름을 입력하여 이 변수에 액세스하려고 하면 이 줄에서 " name is not defined" 메시지가 "fields"에 나타납니다.
알고리즘 언어 KuMir 프로그래밍 시스템은 세 가지 유형의 값을 사용합니다. 정수( 전부의), 진짜 ( 물건) 및 문자( 리타스).
값 유형- 값이 취할 수 있는 값 집합과 이 값으로 수행할 수 있는 작업 집합을 정의합니다.
이름, 값 및 유형이 있는 단일 정보 개체입니다.

상수 값(상수)은 알고리즘 실행 중에 값을 변경하지 않습니다.
변수는 알고리즘 실행 중에 값을 변경할 수 있습니다.
표현- 값에 대한 일련의 작업을 정의하는 레코드입니다. 표현식에는 상수, 변수, 연산 기호, 함수가 포함될 수 있습니다.
다음 기호는 Kumir에서 표현식을 작성하는 데 사용됩니다.

징후를 나타내기 위해 논리 연산기호가 사용됩니다.
= 같음;
< >같지 않다;
< меньше;
> 더;
< = меньше или равно;
> = 크거나 같음;
기록을 위해 어려운 조건다음과 같은 작업: 그리고, 또는 아니요.
그리고 -
위 조건의 동시 충족(Х > 0 및 Х< = 2);
또는- 조건(X > 0 또는 Y > 0) 중 적어도 하나의 충족
아니다- 거부.

3. KuMir 언어의 내장 기능

다음은 내장 함수의 예입니다.

항소

기능

유형

논쟁

기능

죄(엑스) 코사인(엑스) T.G.(엑스) 경험치(엑스) LN(엑스) ABS(엑스) SQRT(엑스) 모드(ㅏ,비) 정수(엑스) 파이

사인 x 코사인 x 접선 x
지수 x(예시) 자연. 로그 x
모듈 x
제곱근 x
나눗셈의 나머지(A에서 B)
숫자의 정수 부분
숫자 "파이" - 3.14159

물건
물건
물건
물건
물건
물건
물건
물건, 대상
물건
물건

물건
물건
물건
물건
물건
물건
물건
전부의
전부의
인수 없음

알고리즘 언어로 산술 표현식을 작성하는 예:

4. INPUT / OUTPUT 명령

알고리즘을 실행하는 과정에서 사람과 컴퓨터 사이의 정보 교환("대화")을 구성하는 것이 종종 필요합니다. 이를 위해 알고리즘 언어에는 컴퓨터 메모리에서 화면으로의 OUTPUT 정보와 키보드에서 (사람에서) 컴퓨터 메모리로의 INPUT 정보에 대한 특수 명령이 있습니다.
Enter 명령 -입력 장치(키보드)를 통해 변수의 값을 설정하는 명령.
출력 명령- 값의 값이 컴퓨터의 출력 장치(모니터 화면)에 반영되는 명령.
값은 정보를 저장하기 위해 알고리즘 언어로 사용되기 때문에 입력/출력 명령은 값을 표시(화면에 표시)하거나 입력(컴퓨터 메모리에 기억)해야 하는 수량의 이름을 나타냅니다.
예시:

관계 NS (새로운 라인) 정보가 새 줄에 출력되어야 함을 컴퓨터에 알립니다.

5. 할당 명령. 선형 구조 프로그램 작성 및 편집

수량의 값을 기억하거나 변경하기 위해 알고리즘 언어에 특별한 명령이 있습니다. 과제 지시, 다음과 같이 작성됩니다.

값 이름: = 표현식

기호 ":="(콜론 다음에 등호)를 기호라고 합니다. 과제 "할당"으로 읽습니다(예: "n:=e" 명령은 "n 할당 e"로 읽음). 할당 명령을 실행할 때 컴퓨터는 먼저 오른쪽에 쓰여진 식을 계산한 다음(수량의 이름을 값으로 대체), 식의 결과 값을 메모리에 씁니다.

단순한 일련의 동작인 알고리즘을 선형 구조 알고리즘이라고 합니다.
생성 과정을 고려하십시오 선형 알고리즘표현식 계산의 예 :
1. 두 숫자의 합 계산
2. 두 다리가 주어진 직각삼각형의 빗변을 구하는 프로그램을 작성하십시오.
3. 정육면체의 면을 알면 부피 구하기

6. 분기 구조 프로그램 생성 및 편집

문제 해결이 항상 선형 알고리즘으로 표현될 수는 없습니다. 조건에 따라 일련의 작업을 수행하는 선택을 구성해야 하는 작업이 있습니다. 이러한 알고리즘을 분기 구조 알고리즘. KuMir 프로그래밍 시스템에서 분기 구조에 대한 알고리즘을 생성하기 위해 "IF - THEN - ELSE - ALL" 및 "CHOICE - IF - ALL" 구성이 제공됩니다.

분기 명령: IF - THEN - ELSE - 모두

분기 명령 - 일부 조건에 따라 알고리즘을 두 개의 경로로 분할합니다. 그런 다음 알고리즘의 실행은 공통 연속으로 진행됩니다. 분기는 완전하고 불완전합니다.

건설의 그래픽 구성표 " 만약에"

서비스 단어 "만약에", "그 다음에", "그렇지 않으면"는 일반적인 의미를 가지고 있습니다. 단어 " 모두"는 공사의 끝을 의미합니다. 사이 " 그 다음에" 그리고 " 그렇지 않으면" - 하나 이상의 라인에서 - 알고리즘 언어의 명령 시퀀스가 ​​작성됩니다(시리즈 1). " 사이 그렇지 않으면" 그리고 " 모두"다른 일련의 명령이 기록됩니다(시리즈 2). 서비스 단어와 함께 시리즈 2" 그렇지 않으면"가 누락되었을 수 있습니다. "를 실행할 때 만약에"컴퓨터는 먼저 " 사이에 쓰여진 조건을 확인합니다. 만약에" 그리고 " 그 다음에". 확인 결과, , 또는 아니.가능하다면 예,그런 다음 SERIES 1이 실행되고 아니, -그런 다음 시리즈 2(있는 경우) .
조건이 충족되지 않으면( 아니) 및 시리즈 2"와 함께 그렇지 않으면"가 없으면 컴퓨터는 즉시 "라는 단어 뒤에 쓰여진 명령을 실행합니다. 모두".

7. KuMir 프로그래밍 시스템의 사이클 유형

개별 동작이 여러 번 반복되는 알고리즘을 순환 구조의 알고리즘이라고 합니다. 반복과 관련된 알고리즘의 일련의 동작을 주기라고 합니다.
루프 명령어떤 조건에 따라 일련의 명령(루프 본문)의 반복 실행을 제공합니다.
KuMir 프로그래밍 시스템에서 순환 구조의 프로그래밍 알고리즘을 위해 두 가지 유형의 루프가 제공됩니다. 즉, 전제 조건이 있는 루프( while 루프)와 매개변수가 있는 루프(for 루프)입니다.

전제 조건이 있는 루프(while 루프)

전제 조건이 있는 루프(while 루프)는 루프 조건이 true인 동안 실행이 반복되는 루프입니다. 서비스 단어 체크 안함(주기 시작) 및 KC(주기의 끝) 엄격하게 하나 아래에 작성되고 연결됩니다. 수직 막대. 이 줄의 오른쪽에는 반복되는 명령 시퀀스(루프 본문)가 기록됩니다.

실행될 때 컴퓨터는 주기적으로 다음 작업을 반복합니다.
a) 단어 뒤에 쓰여진 수표 안녕상태;
b) 조건이 충족되지 않으면(조건이 false임) 사이클 실행이 종료되고 컴퓨터가 다음에 작성된 명령을 실행하기 시작합니다. KC. 조건이 충족되면(조건이 참) 컴퓨터는 루프 본문을 실행하고 조건을 다시 확인하는 등의 작업을 수행합니다.
루프의 조건이 안녕처음부터 관찰되지 않으면 루프 본문이 실행되지 않습니다.
논평. 루프 실행 안녕조건이 항상 참이면 종료되지 않을 수 있습니다(이 상황을 루프라고 함). 따라서 이러한 상황을 피하기 위해 루프의 본문에는 조건을 변경하는 명령이 포함되어야 합니다.

양의 정수가 주어졌을 때 N. 이 숫자의 계승을 계산합니다. N! = 1 * 2 * 3 * ... * N.

매개변수가 있는 루프(loop for)

매개변수가 있는 루프(loop for) - 정수 매개변수가 초기(i1)에서 최종(in)까지의 모든 값 세트를 실행하는 동안 루프 본문의 반복 실행:

여기서 i는 루프 매개변수라고 하는 정수 유형의 변수입니다. i1, in은 루프 매개변수의 초기 및 최종 값으로, 임의의 정수 또는 정수 값이 있는 표현식으로 지정할 수 있습니다. h - 사이클 매개변수 값을 변경하는 단계, 단계 값은 정수(양수 및 음수 모두)일 수 있습니다. 첫 번째 줄의 "단계 h" 항목이 아예 없을 수도 있지만 단계의 기본값은 1입니다.
루프를 실행할 때 을 위한,그 본체는 i = i1, i = i1 + h, i = i1 + 2*h, 에 대해 실행됩니다. . . , 나는 = 안으로. 알고리즘 언어의 규칙에 따라 정수 i1, in, h를 지정할 수 있습니다. 특히, in은 i1보다 작을 수 있습니다. 또한, h의 값이< 0, то цикл выполняется нужное количество раз, а если h имеет положительное значение, то этот случай не считается ошибочным - просто тело цикла не будет выполнено ни разу, а ЭВМ сразу перейдет к выполнению команд, записанных после KC. h = 0인 경우 루핑이 발생합니다.

예: 양의 정수 N이 주어졌을 때 이 숫자의 계승을 계산하십시오: N! = 1 * 2 * 3 * ... * N.

8. 반복 표현식을 위한 알고리즘

수학 및 컴퓨터 과학에는 종종 각 후속 항이 이전 항을 통해 계산되는 시퀀스가 ​​있습니다.
산술 진행, 예를 들어 다음 각 항은 이전 항과 같으며 진행의 차이만큼 증가합니다.

아이 =AI-1+

순서대로 1, 1, 2, 3, 5, 8, 13, ... ( 그것을 피보나치 수열이라고 한다) 각 다음 항은 이전 두 항의 합과 같습니다. 이 시퀀스의 경우

ai = ai-1 + ai-2 , a1 = a2 =1

하나 이상의 이전 요소로 시퀀스의 다음 요소를 표현하는 공식 반복 관계.

9. 테이블 값 및 작업

많은 양의 정보로 작동하는 알고리즘을 기록하기 위해 알고리즘 언어에는 테이블(배열)이라는 특수한 테이블 형식 값이 있습니다.
테이블 값은 요소라고 하는 다른 값, 일반적으로 정수 또는 실수 값으로 구성됩니다. 테이블의 요소는 다양한 방식으로 정렬할 수 있습니다. KuMir 프로그래밍 시스템의 알고리즘 언어는 가장 일반적인 두 가지 유형의 테이블인 선형 및 직사각형 테이블을 사용합니다.

선형 테이블 작업(1차원 배열)

어떤 가치처럼 선형 테이블컴퓨터 메모리의 한 장소를 차지하고 이름, 값 및 유형이 있습니다. KuMir는 정수(celtab) 및 실수(vehtab) 유형의 테이블을 사용합니다. 예를 들어:

celtab A [ 1:5 ] 레코드는 값 A가 정수(정수)로 구성된 테이블(탭)이며 이 테이블의 요소에는 1(하한)에서 5(상한)까지의 인덱스가 있음을 의미합니다. A의 값은 5개의 정수(3, 15, 0, -10.101)입니다.
테이블 요소에는 별도의 이름이 없습니다. 테이블 A의 i 번째 요소를 지정하기 위해 레코드 A [ i ]가 사용됩니다. 예를 들어, 명령 A [ 3 ] : = A [ 2 ] + A [ 4 ]를 실행할 때 컴퓨터는 A [ 2 ] 및 A [ 4 ] 대신 테이블 A의 두 번째 및 네 번째 요소 값을 대체합니다. , 즉 숫자 15와 -10을 더하고 결과 값을 세 번째 요소에 할당하므로 테이블의 세 번째 요소 자리에 0 대신 값 5가 나타납니다.
0뿐만 아니라 모든(양수 및 음수) 정수를 테이블 경계 값으로 사용할 수 있습니다. 하위 경계의 값은 상위 경계의 값보다 작아야 합니다. 같으면 테이블은 구성된 것으로 간주됩니다. 한 요소의. 표 설명에서 오타로 인해 하한이 상한보다 큰 것으로 판명되면(예: celtab [ 3:1]) 이는 오류로 간주되지 않으며 알고리즘을 입력할 때 , "필드"에 메시지가 표시되지 않습니다. 이 경우 이 테이블에는 단일 요소가 없는 것으로 간주되며 이 테이블에 처음 액세스할 때 "bad index"라는 메시지가 나타납니다.

작업.

직사각형 테이블 작업(행렬)

선형 테이블과 마찬가지로 행렬은 컴퓨터 메모리의 공간을 차지하며 이름, 값 및 유형이 있습니다. KuMir는 정수(celtab) 및 실수(vehtab) 유형의 테이블을 사용합니다.

celtab A [ 1:5, 1:2 ] 표기법은 값 A가 정수(정수) 숫자로 구성된 테이블(탭)임을 의미하며, 이 테이블의 요소는 (첫 번째 열, 첫 번째 행)에서 (마지막 열, 마지막 줄). A의 값은 10개의 정수입니다: 3, 15, 0, -10, 101, 200, -45, 50, 10, 222.
테이블 요소에는 별도의 이름이 없습니다. 테이블 A의 i 번째 요소를 지정하기 위해 레코드 A [ i, j ]가 사용됩니다. 예를 들어, A [ 3, 1 ] : = A [ 2, 1 ] + A [ 4, 1 ] 명령을 실행할 때 컴퓨터는 A [ 2, 1 ] 및 A [ 4, 1 ] 값 대신 ​테이블 A의 첫 번째 열의 두 번째 및 네 번째 요소, 즉 숫자 15와 -10을 더하고 첫 번째 행의 세 번째 요소에 결과 값을 할당하여 0 대신 값 5가 되도록 합니다. 표에서 첫 번째 행의 세 번째 요소 대신 가 나타납니다.
0뿐만 아니라 모든(양수 및 음수) 정수를 테이블 경계 값으로 사용할 수 있습니다. 하위 경계의 값은 상위 경계의 값보다 작아야 합니다. 같으면 테이블은 구성된 것으로 간주됩니다. 한 요소의. 표 설명에서 오타로 인해 하한이 상한보다 큰 것으로 판명되면(예: celtab [ 3:1, 5:2]) 이는 오류로 간주되지 않으며 알고리즘을 입력할 때 "필드"에 메시지가 표시되지 않습니다. 이 경우 이 테이블에 단일 요소가 없는 것으로 간주되며 이 테이블에 처음 액세스할 때 "bad index"라는 메시지가 나타납니다.

작업.주어진 테이블 B에서 최대 요소의 인덱스와 값을 결정하십시오.

부록: 작업

선형 알고리즘

작업 #1

두 숫자의 합 찾기 - 및 b
해결책:

합집합
일찍 물건 에이, ㄴ, ㄷ
결론 "2 숫자의 값을 입력하십시오"
입력 에이, ㄴ
c:= a + b
결론 ns , "숫자의 합",a,"및",b,"같음",c
범죄자

작업 #2

두 숫자의 차이 찾기
해결책:

차이점
일찍 물건 에이, ㄴ, ㄷ
결론 "변수 값을 입력하십시오."
입력 에이, ㄴ
c:= a - b
출력 ns, "숫자의 차이",a,"그리고",b,"같음",c
범죄자

작업 #3

임의의 두 자연수의 곱 찾기
해결책:

전부의 에이, ㄴ, ㄷ

일하다
일찍
결론
" 두 개의 숫자를 입력하세요"
입력
ㅏ,c:=+
출력 ns,
"
숫자의 곱",a,"및",b"같음",c
범죄자

작업 #4

두 자연수의 몫 구하기
해결책:

물건 에이, ㄴ, ㄷ

사적인
일찍
결론 "
배당금과 제수 입력"
입력
에이, ㄴ
c:= a / b
출력 ns,
"몫",a,"및",b,"같음",c
범죄자

작업 #5

임의의 5개 숫자의 산술 평균 찾기
해결책:

물건 a, b, c, d, e, f

산수
시작하다 a, b, c, d, e, f
결론 "5개의 숫자를 입력하세요"
입력 에이 비 씨 디이
f:=(a + b + c + d + e)/ 5
결론 ns ," 5개의 숫자의 산술 평균은", f
범죄자

분기

작업 #1

3개의 정수 중 가장 큰 정수 찾기 (숫자는 임의)

최고
조기 목표 a BC
결론 "난수 3개 입력"
입력 a BC
만약에 > b > c
그러면 결론은 ns , "최대 수는"이고
모두
만약에 ㅏ<б>와 함께
그러면 결론은 ns ," 최대 수는 ", b
모두
만약에 ㅏ<б<с
그러면 결론은 ns , "최대 수는",
모두
범죄자

작업 #2

두 개의 임의의 숫자가 제공됩니다. 첫 번째 숫자가 두 번째 숫자보다 크면 합을 두 번째 숫자에 할당하고 곱을 두 번째 숫자에 할당합니다. 두 번째 숫자가 첫 번째 숫자보다 크면 첫 번째 숫자에 곱을 할당하고 두 번째 숫자에 합을 할당합니다.

상태
시작하다 에이, ㄴ
결론 "숫자 2개 입력"
입력 에이, ㄴ
만약에 > 나
그 다음에 a:= a + b
b := a * b
그렇지 않으면 a:= a * b
b := a + b
결론 ns , 에이, ㄴ
범죄자

작업 #3:

4개의 임의의 숫자 중에서 최소값 찾기
해결책:

최저한의
시작하다 b, c, e
결론 "4개의 난수를 입력하세요"
입력 에이, ㄴ, 에. 이자형
만약에 > b > c > e
그러면 결론은 ns ," 최대 수-" 및
모두
만약에 ㅏ<б>c>e
그러면 결론은 ns ,"최대 수 -",b
모두
만약에
ㅏ<б<с>이자형
그러면 결론은 ns ," 최대 수 -", s
모두
만약에
ㅏ<б<с<е
그러면 결론은 ns , "최대 수 -", e
모두
범죄자

작업 #4

이등변 삼각형의 다리 2개(2cm와 2cm)와 밑변(2.82cm)이 주어집니다. 삼각형이 직각 삼각형인지 확인하십시오.
해결책:

삼각형
시작하다 나,에,에스
나는:= 2
시간:= 2
c:= 2.82
만약에 c**2= (i**2)+(h**2)
그런 다음 출력 "진실"
그렇지 않으면 출력 " 거짓"
모두
범죄자

작업 #5

두 음수의 곱이 0보다 크면 메시지 "true"를 인쇄하고, 그렇지 않으면 메시지 "false"를 인쇄합니다.
해결책:

부정적인
시작하다 나, 시, 에스, 엠
결론 "음수 두 개 입력"
입력 나는 h
c:=0
m := i*h
만약에 m>s
그러면 결론은 ns , "진실"
그렇지 않으면 출력 ns ,"거짓"
모두
범죄자

루프 "for"

작업 #1

찾다 계승자연수N ( 자연수의 계승 n은 1과 1 사이의 모든 자연수의 곱입니다. N ) 해결책:

계승
시작하다
ㅏ. 비
전부의
n, 그리고
결론

입력
N
:= 1
에 대한 nc
그리고 ~에서 1 ~ 전에 N
결론 ns,
"번호를 입력하세요"
입력

a:= a * b
kts
결론 ns
,
"factorial",n,"정수는"이고
범죄자

작업 #2

중에서 최대값을 구합니다.n - 정수
해결책:

최고
시작하다
에이, ㄴ
전부의
안에
결론
"비교할 정수의 수를 입력하십시오"
입력
N
a:=0
에 대한 nc
그리고 ~에서 1 ~ 전에 N
결론 ns,
"번호를 입력하세요"
입력

만약에
ㄴ>아
그 다음에
a:=b
모두
kts
결론 ns,
"데이터 중 최대 개수는 숫자"이며,
범죄자

작업 #3

중에서 찾기음수의 n-정수
해결책:

우연의 일치
시작하다
에이, ㄴ, ㄷ
전부의
n, 나, s
결론 "
자연수의 수를 입력하십시오"
입력
N
결론 ns,
"번호를 입력하세요"
입력

n:= n - 1
시간:= 0
에 대한 nc
그리고 ~에서 1 ~ 전에 N
결론 ns,"
번호를 입력하세요"
입력
와 함께
만약에
c = b
그 다음에
s:= s + 1
모두
kts
결론 ns
,

범죄자

작업 #4

n-정수를 순차적으로 입력합니다. 첫 번째 숫자와 일치하는 수 찾기
해결책:

시작하다 에이, ㄴ, ㄷ
전부의
n, 나, s
결론
"자연수의 수를 입력하십시오"
입력
N
결론 ns,
"번호를 입력하세요"
입력

n:= n - 1
시간:= 0
에 대한 nc
그리고 ~에서 1 ~ 전에 N
결론 ns,
"번호를 입력하세요"
입력
와 함께
만약에
c = b
그 다음에 s:= s + 1
모두
kts
결론 ns
,
"첫 번째 숫자와 일치하는 수는", z
범죄자

작업 #5

n-정수를 순차적으로 입력합니다. 최대값과 최대값의 차이를 찾으십시오. 최소값주어진 숫자
해결책:

차이점
시작하다
ㅏ. b, s, d
전부의
n, 그리고
결론
"숫자 입력"
입력
N
:= 0
c:=0
에 대한 nc
그리고 ~에서 1 ~ 전에 N
결론 ns,
"번호를 입력하세요"
입력

만약에
전자>
그 다음에
c:=d
모두
만약에
디<а
그 다음에
에이:= d
모두
kts
b:= c - a
결론 ns,
"최소값과 최대값의 차이는 같음", b
범죄자

동안 루프

작업 #1

1과 5 사이의 모든 숫자의 합 구하기
해결책:

번호
시작하다 에이, ㄴ
결론 "두 번째 숫자가 첫 번째 숫자보다 크도록 두 개의 숫자를 입력하세요."
입력 에이, ㄴ
안녕 ㅏ<б
a:= a + 1
kts
결론 ns
, ㅏ
범죄자

작업 #2

두 번째 숫자가 첫 번째 숫자보다 크도록 두 개의 숫자가 주어집니다. 첫 번째 숫자에 1을 더하여 두 번째 숫자와 같아질 때까지 모니터에 표시해야 합니다.
해결책:

합집합
시작하다 에이, ㄴ, ㄷ
결론 "합계 간격 입력"
입력 에이, ㄴ
c:=
안녕 ㅏ< б
a:= a + 1
c:= c + a
kts
결론 ns
, "주어진 간격의 숫자의 합은",
범죄자

작업 #3

두 개의 임의의 숫자가 제공됩니다. 그들의 곱이 100보다 작으면 각 숫자를 2씩 늘리고 모니터에 최종 숫자를 표시합니다.
해결책:

일하다
시작하다 에이, ㄴ, ㄷ
결론 "난수 두 개 입력"
입력 에이, ㄴ
c:= 100
안녕 ㄱ*ㄴ< с
a:= a + 2
b := b + 2
kts
결론 ns
, 에이, ㄴ
범죄자

1차원 배열

작업 #1

배열을 난수로 채우고 해당 요소를 출력합니다. 솔루션:

어레이 2
조기 목표
엔, 나는
물건
b, 최대
옷걸이
[ 1:n ]
결론
"배열 채우기"
입력
N
최대:= 0
에 대한 nc
~에서 1 ~ 전에 N
결론 ns,
"배열 요소 입력"
입력

만약에
b > 최대
그 다음에 최대:=b
모두
kts
결론 ns
,

범죄자

작업 #2

어레이의 최대 요소를 찾아 모니터에 표시합니다. 솔루션:

어레이 2
일찍
전부의엔, 나는
물건
b, 최대
옷걸이 [ 1:n ]
결론
"배열 채우기"
입력
N
최대:= 0
에 대한 nc
~에서 1 ~ 전에 N
결론 ns,
"배열 요소 입력"
입력

만약에
b > 최대
그 다음에 최대:=b
모두
kts
결론 ns
,
"이 배열의 최대 요소는", 최대
범죄자

작업 #3

1차원 배열의 요소 합 찾기 솔루션:

합집합
일찍 전부의
엔, 나는
옷걸이
[ 1:n ]
물건
ㄴ, z
결론
" 배열 요소의 수를 입력하십시오 "
입력
N
z:= 0
에 대한 nc ~에서 1 ~ 전에 N
결론 ns,
"배열 요소 입력"
입력

z:= z + b
kts
결론 ns
,
"합",n,"배열 요소가 같음", z
범죄자

작업 #4

1차원 배열 솔루션의 요소 곱 찾기:

일하다
조기 목표
안에
물건
에스, 디
옷걸이
[ 1:n ]
결론
"배열 요소의 수를 입력하십시오"
입력
N
d:= 1
에 대한 nc
~에서 1 ~ 전에 N
결론 ns,
"번호를 입력하세요"
입력
에스
d:= d*s
kts
결론 ns
,"
제품", n, " 요소가 같음", d
범죄자

배열

작업 #1


난수로 행렬 채우기 솔루션:

배열은 2차원
전부의
n, j, h, v
옷걸이 시작

결론
"테이블의 요소 수를 입력하십시오"
입력
N
시간:= 0
v:= 0
결론 ns,
"배열 채우기"
입력

에 대한 nc
제이 ~에서 1 ~ 전에 N
만약에 a > 0
그 다음에
h:= h + 1
그렇지 않으면
v:= v + 1
kts
결론 ns,

범죄자


작업 #2


행렬 솔루션의 첫 번째 행에 있는 양수 및 음수 요소의 수를 계산합니다.

어레이 2
일찍
물건 b, x, z
전부의
안에
결론

입력
N x:=0
z:= 0
에 대한 nc
~에서 1 ~ 전에 N
결론
ns, "번호를 입력하세요"
입력

만약에
b > 0
그 다음에
x:= x + 1
그렇지 않으면
z:= z + 1
모두
kts
결론 ns
,

결론 ns,

범죄자


작업 #3


각 행의 요소 합을 계산합니다. 솔루션:

어레이 3
시작하다
b, x, z, y
전부의
안에
옷걸이
에이[ 1:n, 1:n]
결론
"열 수 입력"
입력
N x:=0
z:= 0
에 대한 nc
~에서 1 ~ 전에 N
결론 ns,
"배열 채우기"
입력
에이[ 1:n, 1:n]
b:= a[ 1,i ]+a[ n, i ]
kts
결론 ns
,
"양수의 개수는",x
결론 ns,
"음수의 개수는", z
범죄자


작업 #4


3x3 행렬 솔루션의 두 번째 행에 있는 세 숫자의 합을 계산합니다.

행렬
일찍 전부의
안에
옷걸이 에이[1:3, 1:3]
결론 "배열 채우기"
입력 에이[1:3, 1:3]
n:=0
체크 안함 ~을 위한 ~에서 1 ~ 전에 3
n:= n + a[ 2,i]
kts
결론 ns,
"배열의 두 번째 행에 있는 숫자의 합은 다음과 같습니다.", n
범죄자

작업 카드

    키보드에서 입력한 n - 정수 중에서 음수를 찾습니다.

    두 개의 임의의 숫자가 제공됩니다. 그들의 곱이 100보다 작으면 각 숫자를 2씩 늘리고 모니터에 최종 숫자를 표시합니다.

    n - 정수를 순차적으로 입력합니다. 시퀀스에서 5의 수를 찾으십시오.

    n - 정수를 순차적으로 입력합니다. 주어진 숫자의 최대값과 최소값의 차이 찾기

    키보드에서 입력한 n - 정수 중에서 음수를 찾습니다.

    두 개의 임의의 숫자가 제공됩니다. 그들의 곱이 100보다 작으면 각 숫자를 2씩 늘리고 모니터에 최종 숫자를 표시합니다.

    n - 정수를 순차적으로 입력합니다. 시퀀스에서 5의 수를 찾으십시오.

    n - 정수를 순차적으로 입력합니다. 주어진 숫자의 최대값과 최소값의 차이 찾기

    키보드에서 입력한 n - 정수 중에서 음수를 찾습니다.

    두 개의 임의의 숫자가 제공됩니다. 그들의 곱이 100보다 작으면 각 숫자를 2씩 늘리고 모니터에 최종 숫자를 표시합니다.

    n - 정수를 순차적으로 입력합니다. 시퀀스에서 5의 수를 찾으십시오.

    n - 정수를 순차적으로 입력합니다. 주어진 숫자의 최대값과 최소값의 차이 찾기

    키보드에서 입력한 n - 정수 중에서 음수를 찾습니다.

    두 개의 임의의 숫자가 제공됩니다. 그들의 곱이 100보다 작으면 각 숫자를 2씩 늘리고 모니터에 최종 숫자를 표시합니다.

    n - 정수를 순차적으로 입력합니다. 시퀀스에서 5의 수를 찾으십시오.

    n - 정수를 순차적으로 입력합니다. 주어진 숫자의 최대값과 최소값의 차이 찾기