알고리즘 언어 및 프로그래밍. 알고리즘. 알고리즘화. 알고리즘 언어 알고리즘 언어의 기본 수학 함수

모든 프로그래밍 언어는 다양한 키워드, 기능 또는 클래스로 가득 차 있습니다. 원칙적으로 그들은 모두 방법이나 인수를 설명하는 영어를 사용합니다. 일부 환경에서는 단순히 기계 기능의 약어가 전혀 없습니다. 이것은 초기 단계에서 개발 개발을 크게 방해했습니다. 이해 속도를 높이기 위해 준비되지 않은 사람도 이해할 수 있고 접근 가능한 단어와 그 조합으로 구성된 일련의 특수 알고리즘 프로그래밍 언어가 만들어졌습니다.

약간의 역사

첫 번째 컴퓨터와 통신하기 위해 0과 1로 구성된 기계 코드에 최대한 가까운 프로그래밍 언어가 사용되었습니다. 당연히 많은 명령을 기억하는 것은 매우 어려운 작업이었습니다. 또한 프로그래밍 중 메모리를 할당하는 방법론은 전적으로 개발자의 어깨에 할당되었습니다. 그리고 작은 실수를 하면 모든 것을 처음부터 다시 해야 했다.

기계어에서 더 적합한 인간으로 전환하는 데 큰 역할을 한 것은 저수준 프로그래밍 언어 어셈블러였습니다. 니모닉 의미와 기호를 사용했습니다. 이로써 개발자는 제어 명령과 숫자 코드의 조합을 통해 보다 생산적으로 알고리즘을 구축할 수 있게 되었기 때문에 개발자의 작업이 간소화되었습니다. 그 모든 유연성과 힘에도 불구하고 그 언어는 여전히 배우기 어려웠습니다.

교육 기관에서 개발 및 알고리즘을 가르치기 위해 BASIC 프로그래밍 언어의 도입이 시작되었습니다. 이미 많은 명령과 학생이 이해할 수 있는 핵심 단어가 포함되어 있습니다. BASIC은 여전히 ​​프로그래밍의 기초를 배우는 데 사용됩니다.

최초의 알고리즘 프로그래밍 언어인 Algol의 생성으로 알고리즘 개발이 크게 가속화되었습니다.

알고리즘이란 무엇인가

건조한 이론과 정의에서 벗어나면 알고리즘은 주어진 문제를 해결하기 위한 일련의 작업입니다. 표현의 모든 화려함에도 불구하고 사람은 매일 이 개념에 직면합니다. 예를 들어 차를 마시려면 다음 순서를 따라야 합니다.

  1. 주전자를 스토브에 올려 놓으십시오.
  2. 끓을 때까지 기다리십시오.
  3. 끓는 물을 물에 붓습니다.
  4. 티백을 컵에 떨어뜨립니다.
  5. 필요한 양의 설탕, 우유 또는 꿀을 추가하십시오.

이 시퀀스는 매우 간단하지만 가장 간단한 알고리즘입니다.

사람과 마찬가지로 컴퓨터도 특정 작업 순서를 수행할 수 있습니다. 그러나 명확하게 이해하기 위해서는 컴퓨터의 경우 사람들에게 명백한 개념이 많지 않다는 점을 고려해야 합니다. 또한 알고리즘은 필요한 모든 작업을 정확하게 설명해야 합니다. 이를 위해 기계와 사람 사이에 일종의 다리를 만드는 알고리즘 언어가 사용됩니다.

알고리즘 언어의 속성과 특징

알고리즘은 컴퓨터에서 실행되어야 하는 알고리즘을 설명하는 공식 언어입니다. 일반적으로 어떤 머신 아키텍처에도 연결되어 있지 않습니다. 이것은 코딩을 크게 향상시키고 속도를 높이는 데 도움이 됩니다. 생생한 예 - 알고리즘 언어 BASIC. Pascal과 C 또한 간단한 구문과 학습 속도로 인해 인기를 얻었습니다.

구조는 코드에 설명된 절차가 차례로 실행되는 방식으로 구현됩니다. 즉, 하나의 알고리즘 - 하나의 작업입니다. 이는 C 및 Java에서 함수 또는 메서드를 생성하는 것과 유사합니다.

모든 코드는 이벤트 또는 변수를 설명하는 키워드로 구성됩니다.

기계 언어와 알고리즘 언어의 차이점

기계 의존형 언어의 두드러진 대표는 어셈블러입니다. 그것에 대한 프로그래밍은 번역가에게 무엇을 어디로 이동해야 하는지 또는 어떤 데이터 영역을 채울 것인지를 특수 레이블로 알려주는 것으로 귀결됩니다. 어셈블러 구문은 기계어에 가깝기 때문에 코드를 배우고 작성하기가 상당히 어렵습니다. 아래에서 다른 프로세서에 대한 지침이 어떻게 보이는지 확인할 수 있습니다.

따라서 사람이 읽을 수 있는 많은 수의 키워드와 이름으로 공식 언어 또는 알고리즘 언어가 만들어졌습니다.

키워드

알고리즘 언어는 동작 또는 변수의 전체 지정에 대한 약어인 키워드로 구성됩니다. 이를 통해 코드의 길이를 줄이면서 이해할 수 있는 상태로 유지할 수 있습니다.

  • 알그. 모든 알고리즘은 이 키워드로 시작합니다. 이름을 설명하고 평가에 필요한 인수와 결과를 괄호 안에 지정합니다.
  • 인수. 알고리즘의 인수를 나타냅니다. 코드에서 사용될 값의 유형과 이름을 반영합니다.
  • 레즈. 이 키워드는 계산 결과를 배치해야 하는 변수의 유형과 이름을 나타내는 데 사용됩니다.
  • 시작알고리즘 실행의 즉각적인 시작을 나타냅니다. 키워드 con까지 지속됩니다. "시작"에서 "끝"까지의 전체 간격을 현재 알고리즘의 본문이라고 합니다.
  • 범죄자.알고리즘 실행이 완료되었음을 나타냅니다.
  • 주어진. 알고리즘 사용의 일부 기능과 뉘앙스 또는 제한 사항에 대해 이야기합니다. 예를 들어 여기에서 비교되는 문자열의 길이가 동일해야 한다고 지정할 수 있습니다. "given" 키워드의 사용은 선택 사항입니다.
  • 필요한. 알고리즘의 결과에 대한 자세한 설명입니다. "given"과 마찬가지로 생략할 수 있지만 보다 명확하고 자세한 코드 작성을 위해 사용을 권장합니다.

주어진 키워드 목록은 알고리즘의 표제 및 본문 지정을 나타냅니다. 변수에 대한 토큰은 다음과 같습니다.

  • 표적. 정수 변수의 유형입니다. 범위는 -32768에서 32767까지 다양합니다.
  • 물건. 실수. 예를 들어, 지수 또는 소수 부분이 있습니다.
  • 통나무. 이 키워드는 "예" 또는 "아니오"만 허용할 수 있는 부울 유형 변수가 사용됨을 의미합니다.
  • 심.여기에는 "a", "3"과 같은 단일 문자로 된 값이 포함됩니다.
  • 문학. 전체 텍스트 문자열을 포함할 수 있는 문자열 변수입니다.
  • . 특정 유형의 데이터가 있는 테이블을 지정합니다. 다른 프로그래밍 언어의 배열과 유사합니다.

추가 서비스 단어

다음 단어 목록은 분기 및 루핑 메커니즘을 구성하는 데 사용됩니다.

  • 을 위한. 특정 범위의 모든 값을 반복하는 데 사용됩니다. 주기, 즉 데이터가 있는 모든 절차의 연속 실행에 사용됩니다.
  • 출발/도착. "for" 루프에서 반복할 값의 범위를 지정합니다.
  • 안녕. 또한 여러 값을 반복하는 역할을 합니다. 특정 조건이 충족될 때까지 실행하는 데 사용됩니다.
  • 국세청과 국세청. 알고리즘 언어의 "Нц"는 주기 본문의 시작을 의미하고 "кц"는 끝을 의미합니다. 이 두 키워드 사이에 계산에 필요한 절차가 내장되어 있습니다.
  • 만약에.이 단어의 도움으로 분기 구조가 구현됩니다. 따라서 주어진 조건에서 올바른 방향으로 프로그램의 과정을 결정할 수 있습니다.
  • 그렇지 않으면. "if"와 쌍을 이루는 두 단어. 또한 분기 메커니즘을 구축하십시오.
  • 선택. 동일한 유형의 여러 값에서 분기할 수 있는 편리한 도구입니다. "with" 및 "otherwise" 키워드와 함께 작동합니다.
  • 모두. 분기 메커니즘의 끝을 나타냅니다.
  • 입력. 이 키워드를 사용하면 프로그램 실행 중에 추가 처리를 위해 변수 값을 입력할 수 있습니다.
  • 결론.화면에 데이터 출력을 생성합니다.

언어의 기본 구조

알고리즘 프로그래밍 언어는 계산 기능을 편리한 형태로 생성하는 다양한 구조를 구축하는 데 도움이 됩니다. 일반적으로 모든 언어는 몇 가지 특정 메커니즘과 그 조합을 사용할 수 있습니다.

시퀀스 구조

이러한 종류의 구조를 설계할 때 코드는 한 줄씩 직접 실행됩니다. 일반적인 예는 다음과 같이 표현할 수 있습니다.

alg 두 숫자의 합(arg 정수 a, b, res 정수 S)

출력 "S = ", S

이 예에서는 사용자가 입력한 두 숫자의 합을 계산합니다. 처음에 "alg"라는 단어는 알고리즘이 시작되고 있음을 나타내며 정확히 무엇을 하는지 간략하게 설명합니다. 대괄호는 프로그램이 작동하는 데 필요한 인수와 결과를 저장하기 위한 컨테이너 역할을 할 변수를 정의합니다. 다음은 표현식 및 프로시저 실행의 즉각적인 시작을 나타내는 키워드 "begin"입니다. "시작" 옆에 몇 가지 중간 변수를 정의할 수 있습니다.

알고리즘 본문에서 "input" 키워드는 사용자의 입력을 받아 변수에 씁니다. 그런 다음 추가되고 합계가 S에 할당됩니다. 알고리즘이 끝나기 전에 프로그램 결과가 키워드 "output"을 사용하여 화면에 표시됩니다. 알고리즘 언어의 이 표기법은 다른 많은 프로그래밍 환경에서도 일반적입니다.

분기 구조

프로그램 흐름이 항상 한 줄씩 실행될 필요는 없습니다. 상황에 따라 특정 변수의 값을 정의하거나 변경해야 하는 경우가 있습니다. 예를 들어 x = 0이라고 가정하면 x로 나누지 마십시오.

알고리즘 프로그래밍 언어는 이를 수행하기 위해 "if", "then", "else" 또는 "choice"라는 키워드와 여러 구문을 사용합니다. "if" 다음에 다른 분기로 이동하는 기준을 결정하는 조건이 설정됩니다. 예를 들면 다음과 같습니다.

따라서 다른 요인에 따라 변수의 값을 변경할 수 있습니다. 이 예제는 가능한 모든 구현을 완전히 다루지는 않습니다. 따라서 구성 외에도 "그렇지 않으면"이라는 키워드가 사용됩니다. 조건이 선택한 기준과 일치하지 않는 경우 다른 분기로 이동할 수 있습니다.

그렇지 않으면 y = 0

즉, x가 0이 아닌 경우 이전 값과 상관없이 y도 0으로 재설정됩니다.

다중 선택을 위한 더 편리한 방법은 "선택" 구문입니다. 여러 조건을 반복할 수 있습니다. 그 중 하나가 트리거되면 지정된 작업이 수행됩니다.

x = 0에서: y = 0

x = 1에서: y = 1

x = 2에서: y = 2

이 예는 x에 대한 변수 y의 종속성을 보여줍니다. 프로그램은 모든 데이터를 실행하고 x의 현재 값을 조건에 지정된 값과 비교합니다. 일치하는 항목이 발견되면 다음 작업을 수행합니다. 어떤 조건도 작동하지 않는 경우 보다 유연한 솔루션을 위해 이 구문을 "그렇지 않으면" 키워드와 결합할 수도 있습니다.

주기

루프는 프로그래밍에서 매우 중요한 역할을 합니다. 이 디자인을 구현하지 않고는 개발이 거의 불가능합니다. 일반적으로 루프는 여러 변수를 사용하여 동일한 유형의 작업을 반복적으로 수행하는 문제를 해결합니다. 예를 들어 알려진 공식에 따라 배열을 데이터로 채우거나 정렬하거나 일부 값을 계산할 때 편리합니다.

"while" 키워드를 사용하면 특정 조건이 충족될 때까지 특정 작업이 반복되는 루프를 구성할 수 있습니다. 예를 들어:

nc 바이 엑스<= 3

이 예제에서 y는 x가 3보다 커질 때까지 증가합니다. 루프가 무한하지 않게 하려면 x가 각 패스에서 위쪽으로(예: 1씩) 변경되어야 합니다. 이것이 코드의 두 번째 줄이 수행하는 작업입니다.

"for" 키워드는 일련의 작업을 수행하면서 순차적으로 반복해야 하는 특정 범위의 숫자에 적용됩니다. 이 구조는 요소의 유한한 수를 알고 있을 때 사용됩니다.

구문은 다음과 같습니다.

1에서 3까지 x에 대한 nc

서비스 단어 "from" 및 "to"는 정렬해야 하는 값의 범위를 나타냅니다. 따라서 첫 번째 반복 x = 1에서 패스의 결과로 y도 값 1을 얻습니다. 그런 다음 제어가 다시 처음으로 이동하고 x는 이제 각각 2가 되고 y는 3이 됩니다.

루프와 분기의 공동 구성을 사용하여 쉬운 문제를 해결하고 프로그래밍 언어 작업에 대한 지식을 얻기 위한 가장 간단한 알고리즘을 구축할 수 있습니다.

표준 기능

알고리즘 언어에는 이미 내장된 표준 기능이 있습니다. 그들은 숫자와 표현식을 사용하여 일부 일상적인 작업을 용이하게 할 수 있습니다. 알고리즘 언어의 일반 함수는 제곱근, 로그, 모듈, 사인, 코사인 등을 계산할 수 있습니다.

  • 절대 계수 - abs(x);
  • 제곱근 - sqrt(x);
  • 자연 및 십진 로그 - ln(x) 및 lg(x);
  • 두 숫자의 최소 및 최대 — min(x,y), max(x,y);
  • 사인, 코사인, 탄젠트, 코탄젠트 - 사인(엑스), 코사인(엑스), tg(엑스), ctg(엑스).

이러한 표준 기능을 사용하면 "자전거"를 만들지 않고 표준 도구로 가장 간단한 기능을 구현할 수 있습니다.

부울 표현식

부울 식은 작업이 조건을 충족하는지 여부를 반영합니다. 예를 들어 x > 0은 x가 1, 2, 25 또는 0보다 큰 숫자인 경우 참이 됩니다. 알고리즘 언어에는 표준 수학 연산 외에도 다음 키워드 및 연산자를 사용할 수 있는 논리식이 포함되어 있습니다.

  • 그리고.이는 키워드가 위치한 표현식이 특정 조건을 충족해야 함을 의미합니다: (x>0) 및 (y>0);
  • 또는. 식 중 하나가 조건을 충족하지 않을 수 있습니다(예: (x>0) 또는 (y>0)).
  • 아니다. 식의 부울 값을 "반전"합니다. 예를 들어, 그러한 건축 아니다(x>0)은 x가 최대 0이어야 함을 의미합니다.

비교 연산자도 있습니다.<, >, = , 보다 크거나 같음과 같은 표현식을 만들기 위해 결합될 수 있습니다.

알고리즘 언어를 위한 작은 프로그램

프로세스를 이해하기 위해 사용자와 상호 작용하는 프로그램을 구성할 수 있습니다. 그녀는 숫자를 요구할 것이고 기계는 그것을 제곱할 것입니다.

알고리즘 언어의 구성 요소에는 많은 키워드가 포함됩니다. 프로그램이 시작하는 첫 번째 것은 알고리즘 - alg의 발표입니다.

alg 숫자 제곱()

괄호 안에 사용자와 결과의 값이 될 인수를 지정해야 합니다. 또한 이러한 데이터의 유형 선언을 잊지 마십시오.

이제 기계는 정수 유형의 변수와 상호 작용해야 하며 작업 결과는 S임을 알게 됩니다.

가장 먼저 할 일은 데이터를 입력하는 것입니다. 이것은 "입력" 키워드를 사용하여 수행됩니다.

이제 알고리즘 본문에서 직접 숫자의 제곱을 계산하는 데 사용할 여러 명령을 설명해야 합니다.

출력 "S = ", S

명령을 통해 할당을 구현할 수 있는 알고리즘 언어는 다음과 같이 작성됩니다. =. 따라서 x와 그 자체의 곱 값이 변수 S에 들어갑니다. 출력 라인은 화면에 결과를 보여줍니다. 글쎄, 그것은 모두 "con"이라는 키워드로 끝납니다. 이제 전체 코드는 다음과 같습니다.

alg 숫자 제곱(arg int x, res int S)

출력 "S = ", S

이것은 입력 된 숫자의 제곱을 계산하는 알고리즘이 그렇게 간단한 방식으로 구현되는 방식입니다. 프로그램에 모든 작업의 ​​합을 추가하여 프로그램을 더 복잡하게 만들 수 있습니다. 그러면 다음과 같이 표시됩니다.

alg 숫자를 제곱하고 합계 계산(arg 정수 x, res 정수 S)

주어진 | 엑스 > 0

필요 | S = 1*1 + 2*2+ … + x*x

시작 대상

입력 x; 에스:=0

1에서 x까지의 nc

출력 "S = ", S

이 옵션은 루프, 중간 변수 a, "given" 및 "should" 섹션의 작업에 대한 간략한 표시를 사용합니다. 이제 프로그램에 숫자를 전달하면 숫자를 제곱하고 그 앞에 있는 모든 숫자의 제곱의 합을 인쇄합니다.

알고리즘 언어의 사용 및 개발

알고리즘 언어는 프로그래밍의 기본 규범과 규칙을 이해하기 위한 학습 환경에서 일반적입니다. 예를 들어 많은 학교에서 개최되는 BASIC이 있습니다. 모든 명령이 차례로 실행되는 명령형 프로그래밍 언어와 같은 용어의 모든 패러다임을 완벽하게 반영합니다.

설명된 구성 및 키워드가 인간 언어에 근접하기 때문에 완전한 기계 또는 기계 종속 모델보다 코드를 작성하는 것이 훨씬 쉬워졌습니다. Algol 프로그래밍 언어 제품군은 구문이 여러 지역화로 제공되었기 때문에 개발에서 가장 멀리 나아갔습니다. 러시아어로도 코드를 작성할 수 있었습니다.

일반적으로 알고리즘 언어의 발달은 프로그래밍 전반에 큰 영향을 미쳤고 많은 사람들이 개발자가 될 수 있게 해주었다. 최신 도구는 점점 더 접근하기 쉽고 이해하기 쉬워지고 있습니다. 고급 프로그래밍 언어에는 말하는 이름과 제목이 있는 기능이 점점 더 많이 포함되어 있습니다. 사용에 대한 제한이 점점 줄어들고 있습니다. 따라서 앞으로는 보다 이해하기 쉽고 자연스러운 개발 구현이 가능합니다.

알고리즘(공식) 언어로 알고리즘을 작성하는 것을 프로그램이라고 합니다. 때때로 알고리즘의 개념 자체가 표기법으로 식별되기 때문에 "알고리즘"과 "프로그램"이라는 단어는 거의 동의어입니다. 약간의 차이점은 알고리즘을 언급할 때 일반적으로 모든 알고리즘 언어에 공통적인 구성의 주요 아이디어를 의미한다는 사실에 있습니다. 프로그램은 항상 특정 공식 언어로 알고리즘을 작성하는 것과 관련이 있습니다.

예를 들어, 알고리즘의 아이디어를 제시할 때, 예를 들어 과학 기사에 발표할 때 관련 없는 세부 사항으로 프레젠테이션을 어지럽히지 않도록 특정 프로그래밍 언어를 사용하는 것이 항상 권장되는 것은 아닙니다. 그런 경우는 비공식 알고리즘 언어가 사용됩니다.최대한 자연에 가깝습니다. 이런 종류의 언어를 의사 코드. 전문가가 의사 코드에서 특정 프로그래밍 언어로 프로그램을 다시 작성하는 것은 어렵지 않습니다. 의사 코드로 알고리즘을 작성하는 것이 종종 더 명확하고 설명적입니다. 이를 통해 가장 일반적인 용어로 된 설명에서 시작하여 자세한 프레젠테이션으로 끝나는 세부 수준을 자유롭게 선택할 수 있습니다.

의사 코드알고리즘에 대한 반정형화된 설명입니다. 조건부 알고리즘 언어, 프로그래밍 언어 요소와 자연어 구문, 일반적인 수학 표기법 등을 모두 포함합니다.

의사 코드는 알고리즘을 균일하게 작성하도록 설계된 표기법 및 규칙 시스템입니다.

의사 코드는 자연어와 프로그래밍 언어 사이의 중간 위치를 차지합니다. 한편으로는 정상적이고 자연적인 언어에 가깝기 때문에 일반 텍스트처럼 알고리즘을 쓰고 읽을 수 있습니다. 반면에 일부 형식적 구성과 수학적 기호는 의사 코드에서 사용되며, 이는 일반적으로 허용되는 수학적 표기법에 더 가까운 알고리즘 표기법을 제공합니다.

의사 코드에는 일반적으로 프로그래밍 언어에 고유한 일부 구성이 포함되어 있습니다. 이는 의사 코드 작성에서 특정 컴퓨터용 프로그래밍 언어로 알고리즘 작성으로의 전환을 용이하게 합니다. 특히 의사 코드와 프로그래밍 언어에는 의미가 단번에 결정되는 보조 단어가 있습니다. 인쇄된 텍스트에는 굵게 표시되고 손으로 쓴 텍스트에는 밑줄이 그어져 있습니다.

알고리즘의 일반적인 관점:

조류 알고리즘 이름(인수 및 결과)

주어진 알고리즘 적용 조건

필요한 알고리즘의 목표

일찍 중간 값 설명

명령 시퀀스(알고리즘 본문)

단어에서 알고리즘의 일부 조류 말에 일찍 제목(heading)이라고 하고 단어 사이에 있는 부분을 일찍 그리고 범죄자 - 알고리즘 본문.

문장으로 조류 알고리즘 이름 뒤에 괄호 안에 모든 입력(인수) 및 출력(결과) 변수의 특성(arg, res) 및 값 유형(정수, 실수, sim, lit 또는 log)이 표시됩니다. 배열(테이블)을 설명할 때 서비스 단어를 사용합니다. , 각 배열 요소 인덱스에 대한 경계 쌍으로 채워집니다.

문장 예 조류 :

조류 실린더의 부피와 면적 (arg w R, H, res w V, S)

조류 KvUr 루트( 인수물건 a, b, c, 자르다항목 x1, x2, 해상도 t)

조류 제외 요소( 인수정수 N, 인수잘라내기 항목 탭 A)

조류 대각선( 인수정수 N, 인수전체 탭 A, 컷 라이트 답변)

제안 주어진 그리고 필요한 필요하지 않습니다. 알고리즘 실행기의 환경 상태를 설명하는 문을 작성하는 것이 좋습니다. 예를 들면 다음과 같습니다.

조류 교체(arg lit Str1, Str2, arg res lit Text)

주어진 | 하위 문자열 Str1과 Str2의 길이는 동일합니다.

필요 | Text 행의 모든 ​​하위 문자열 Str1은 Str2로 대체됩니다.

조류 최대 개수(인수 정수 N, 인수 실수 탭 A, 정수 K)

주어진 | N>0

필요 | K - 테이블 A의 최대 요소 수

조류 저항(실수 R1, R2 인수, 정수 N 인수, 실수 R)

주어진 | N>5, R1>0, R2>0

필요 | R - 회로 저항

여기 제안서에서 주어진 그리고 필요한 "|" 기호 뒤에 댓글이 기록됩니다. 주석은 모든 줄의 끝에 배치할 수 있습니다. 번역기에 의해 처리되지는 않지만 알고리즘을 훨씬 쉽게 이해할 수 있습니다.

알고리즘 언어의 주요 서비스 단어:

예를 나타내는 alg(알고리즘) sim(기호)

arg (인수) lit (리터럴) must from no

결과(result) log(boolean) if to at

시작(시작) 탭(테이블) 다음 값 선택

end(종료) nts(주기 시작) 그렇지 않으면 입력

정수(정수) kts(루프 끝) 모두 또는 출력

실제(real) 길이(length) 아직 승인되지 않음

기본 명령:

1. 할당 명령.표현식을 평가하고 값을 변수에 할당하는 데 사용됩니다. 일반 형식: A:= B, 기호 ":=" 왼쪽에 있는 변수의 이전 값을 오른쪽에 있는 식의 계산된 값으로 대체하라는 명령을 의미합니다.

예: a:= (b+c) * sin(Pi/4); i:= i+1.

입력 및 출력 명령.

입력 변수 이름(키보드 입력)

결론 변수 이름, 표현식, 텍스트. (화면으로 데이터 출력)

분기 명령.

이러한 명령은 조건 확인 결과(예 또는 아니오)에 따라 알고리즘의 대체 방법 중 하나를 선택합니다. 각 경로는 공통 출구로 이어지므로 어떤 경로를 선택하든 상관없이 알고리즘은 계속됩니다.

분기 구조는 네 가지 주요 변형으로 존재합니다.

1. 만약 - 그때;

만약에 상태

저것 행위

2. 만약 - 그렇다면 - 그렇지 않으면;

만약에상태

저것 행동 1

그렇지 않으면 행동 2

3. 선택;

선택

~에 조건 1: 작업 1

~에 조건 2: 행동 2

. . . . . . . . . . . .

~에 조건 N: 조치 N

4. 선택이 다릅니다.

선택

~에 조건 1: 작업 1

~에 조건 2: 행동 2

. . . . . . . . . . . .

~에 조건 N: 조치 N

그렇지 않으면 N+1 작업

주기 명령.

루프 본문이라고 하는 특정 작업 집합의 반복 실행을 제공합니다.

루핑을 위한 두 가지 명령이 있습니다.

1. 주기 유형 안녕 -단어 뒤에 쓰여진 조건이 충족될 때까지 루프의 본문을 실행하도록 지시합니다. 안녕.

체크 안함안녕상태

루프 본체

(시퀀싱)

kts

2. 주기 유형 을 위한 -지정된 범위의 일부 변수(루프 매개변수)의 모든 값에 대해 루프 본문을 실행하도록 지시합니다.

체크 안함을 위한~에서 i1 ~ 전에 i2

루프 본체

(시퀀싱)

kts

프로그래밍 언어

현재 전 세계에서 실제로 사용되는 프로그래밍 언어는 수백 가지가 있습니다. 각각은 자체 적용 영역이 있습니다.

우리가 알고 있는 모든 알고리즘은 일련의 명령이며, 이후에 초기 데이터에서 결과로 유한한 수의 단계로 전달할 수 있습니다. 처방의 세부 수준에 따라 일반적으로 프로그래밍 언어의 수준이 결정됩니다. 세부 사항이 적을수록 언어 수준이 높아집니다.

프로그래밍 언어(알고리즘 언어) - 프로그램을 구성하는 문자 시퀀스(구문 규칙)와 프로그램이 설명하는 계산(의미 규칙)을 결정하는 일련의 규칙.

프로그래밍 언어에는 다음과 같은 특징이 있습니다.

  • 언어 수준 - 이 언어의 도움으로 해결되는 작업의 복잡성이 특징입니다.
  • 언어의 힘 - 작업의 수와 다양성, 이 언어를 사용하여 작성할 수 있는 해결 알고리즘이 특징입니다.
  • 신뢰할 수 있음 - 언어는 프로그램을 작성할 때 최소한의 오류를 제공해야 합니다. 또한 잘못된 프로그램을 작성하기 어려운 언어여야 합니다.
  • 가독성 b-사람이 프로그램을 쉽게 인식합니다. 이 특성은 여러 사람이 동일한 프로그램 텍스트로 작업하는 팀 작업에서 중요합니다.
  • 완전성 - 특정 주제 영역에서 문제 클래스를 설명하는 능력을 특징으로 합니다.
  • 유연성 - 필요한 조치를 쉽게 표현하는 것이 특징입니다.

이 기준에 따라 다음과 같은 수준의 프로그래밍 언어를 구분할 수 있습니다.

  • 기계;
  • 기계 지향(어셈블러);
  • 기계 독립적(고급 언어).

기계어와 기계지향 언어는 데이터 처리 과정의 세세한 부분까지 명시해야 하는 저수준 언어입니다. 반면에 고급 언어는 일부 구어 단어와 일반적인 수학 기호를 사용하여 자연어를 모방합니다. 이 언어는 인간에게 더 친숙합니다.

고급 언어는 다음과 같이 나뉩니다.

  • 절차적(알고리즘)(Basic, Pascal, C 등) 알고리즘을 명확하게 설명하기 위한 것입니다. 문제를 해결하기 위해 절차적 언어는 문제를 해결하기 위한 절차를 어떤 형태로든 명시적으로 작성해야 합니다.
  • 브레인 티저 (프롤로그, 리스프 등 ) , 문제를 해결하기 위한 알고리즘의 개발에 초점을 맞추는 것이 아니라 컴파일된 설명에서 솔루션이 나오도록 문제에 대한 체계적이고 형식화된 설명에 중점을 둡니다.
  • 객체 지향(Object Pascal, C++, Java 등) 우리에 대한 데이터와 작업을 결합하는 개체의 개념을 기반으로 합니다. 특정 문제를 해결하는 객체 지향 언어의 프로그램은 본질적으로 이 문제와 관련된 세계의 일부를 설명합니다. 상호 작용하는 객체의 시스템 형태로 현실을 기술하는 것이 상호 작용하는 절차의 형태로 하는 것보다 더 자연스럽습니다.

컴퓨터 프로그램 생성에는 다음 단계가 포함됩니다.

§ 분석;

§ 설계;

§ 프로그래밍;

§ 테스트 및 디버깅

§ 착취.

현재까지 6세대의 프로그래밍 언어가 있습니다. 기능적 능력의 각 후속 세대는 이전 세대와 질적으로 다릅니다.

  • 첫 세대: 기계 언어. XX 세기의 40 대 중반에 나타났습니다.
  • 2세대: 어셈블러.사실, 이들은 동일한 기계어이지만 더 아름답게 "래핑"됩니다. 1950년대 후반 등장
  • 3세대: 절차적 언어 XX 세기의 60 년대 초반에 나타났습니다. 이 세대에는 모든 영역의 문제를 해결하는 데 사용할 수 있는 범용 고급 언어(예: Algol-60)가 포함됩니다.
  • 4세대: 복잡한 데이터 구조를 지원하는 언어(예: SQL). XX 세기의 60 년대 후반에 나타났습니다.
  • 5세대: 인공 지능 언어(예: 프롤로그). XX 세기의 70 년대 초반에 나타났습니다.
  • 6세대: 신경망 언어(자율 학습 언어). 이 분야에 대한 연구 작업은 1980년대 중반에 시작되었습니다.

결론

컴퓨터가 작업을 수행하려면 특정 프로그램을 실행해야 합니다. 프로그램은 컴퓨터에서 처리할 수 있는 형식으로 엄격한 규칙에 따라 작성되어야 하며 이러한 규칙 집합을 프로그래밍 언어 또는 알고리즘 언어라고 합니다. 컴퓨터에서 프로그램을 작성하고 작성하는 일반적인 원칙을 알면 데이터 정보 처리 작업에 필요한 거의 모든 작업을 해결할 수 있습니다.

알고리즘 언어 -그것은 알고리즘과 그 실행을 균일하고 정확하게 기록하기 위한 표기법과 규칙의 체계입니다. 알고리즘 언어는 자연(인간) 언어로 알고리즘을 작성하는 것과 컴퓨터 언어(프로그래밍 언어)로 작성하는 것 사이의 중간, 분석적 형태로 알고리즘을 작성하는 수단입니다.

"알고리즘 언어"와 "프로그래밍 언어"의 개념에는 차이가 있습니다. 우선, 알고리즘 언어로 작성된 프로그램이 반드시 컴퓨터를 위한 것은 아닙니다. 알고리즘 언어의 실질적인 구현은 각 특정 사례에서 별도의 문제입니다.

모든 언어와 마찬가지로 알고리즘 언어에는 고유한 어휘가 있습니다. 이 사전의 기본은 특정 알고리즘 실행기의 명령 시스템에 포함된 명령을 기록하는 데 사용되는 단어입니다. 이러한 명령을 단순 명령이라고 합니다. 알고리즘 언어에서는 의미와 사용 방법이 단번에 정해진 단어가 사용됩니다. 이 단어들은 공식적인.서비스 단어의 사용은 알고리즘의 기록을 더 시각적으로 만들고 다양한 알고리즘의 표현 형식이 균일합니다.

알고리즘 언어로 작성된 알고리즘에는 이름이 있어야 합니다. 주어진 알고리즘이 설명하는 솔루션이 무엇인지 명확하도록 이름을 선택하는 것이 바람직합니다. 알고리즘의 이름을 강조하기 위해 서비스 단어 ALG(ALGORITHM)가 그 앞에 쓰여 있습니다. 알고리즘 이름 뒤에(보통 새 줄에) 명령을 적습니다. 알고리즘의 시작과 끝을 나타내기 위해 해당 명령은 BEGIN(START) 및 KON(END) 서비스 단어 쌍으로 묶입니다. 명령은 순차적으로 작성됩니다.

ALG - 알고리즘의 이름

일련의 알고리즘 명령어

예를 들어 로봇 연기자의 움직임을 결정하는 알고리즘은 다음과 같을 수 있습니다.

ALG - to_warehouse

새로운 알고리즘을 구성할 때 이전에 컴파일된 알고리즘을 사용할 수 있습니다. 다른 알고리즘의 일부로 완전히 사용되는 알고리즘을 보조 알고리즘이라고 합니다. 보조는 이전에 컴파일된 알고리즘 중에서 임의의 알고리즘이 될 수 있습니다. 또한 특정 상황에서 보조 알고리즘 자체가 보조 알고리즘에 대한 링크를 포함하는 알고리즘일 수 있음을 배제하지 않습니다.

매우 자주 알고리즘을 컴파일할 때 동일한 알고리즘을 보조 알고리즘으로 사용해야 하므로 매우 복잡하고 번거로울 수 있습니다. 후속 사용을 위해 매번 그러한 알고리즘을 구성하고 암기하는 것은 비합리적이고 시작 작업이 될 것입니다. 따라서 실제로는 소위 내장(또는 표준) 보조 알고리즘이 널리 사용됩니다. 연주자가 지속적으로 사용할 수 있는 알고리즘입니다. 이러한 알고리즘에 대한 호소는 "일반적인" 보조 알고리즘과 동일한 방식으로 수행됩니다. 로봇 연기자는 작업장의 어느 곳에서나 창고로 이동하는 보조 알고리즘을 내장할 수 있습니다. BASIC 프로그래밍 언어 실행기의 경우 이것은 예를 들어 내장된 "SIN" 알고리즘입니다.

알고리즘은 자신을 도우미로 참조할 수 있으며, 이 경우 호출됩니다. 재귀.알고리즘을 자신에게 호출하는 명령이 알고리즘 자체에 있는 경우 이러한 재귀를 호출합니다. 똑바로.주어진 알고리즘에 대한 재귀 호출이 이 알고리즘에서 호출되는 보조 알고리즘에서 오는 경우가 있습니다. 이런 종류의 재귀를 호출합니다. 간접. 직접 재귀 예제:

ALG-이동

움직임

실행 중에 특정 조건을 확인한 결과에 따라 명령 순서가 결정되는 알고리즘을 호출합니다. 분기.알고리즘 언어로 설명하기 위해 특수 복합 명령이 사용됩니다. 분기.로봇 퍼포머와 관련하여 조건은 로봇이 작업 영역의 가장자리에 있는지 확인하는 것(edge ​​/not_edge) 일 수 있습니다. 현재 셀에 개체가 있는지 확인(예/아니요) 및 일부 기타:

IF 조건 IF 조건 IF 에지

TO 시리즈1 TO 시리즈 TO 우측

ELSE series2 EVERYTHING ELSE 앞으로

다음은 분기 명령의 개발인 select 명령에 대한 알고리즘 언어 항목입니다.

AT 조건 1: 시리즈 1

AT 조건 2: 시리즈 2

AT N 조건: N 시리즈

ELSE 시리즈 N+1

실행 중에 개별 명령 또는 일련의 명령이 반복적으로 실행되는 알고리즘을 순환이라고 합니다. 알고리즘 언어로 순환 알고리즘을 구성하기 위해 특수 복합 순환 명령이 사용됩니다. "반복" 유형의 순서도에 해당하며 다음 형식을 취할 수 있습니다.

BYA 조건 NC

시리즈 BEFORE 조건

알고리즘은 수행자가 문제 해결을 목표로 하는 일련의 작업을 수행하기 위한 정확하고 이해하기 쉬운 순서입니다.

"알고리즘"이라는 이름은 중앙 아시아 수학자 al-Khwarizmi - Algorithmi의 라틴어 형식에서 유래되었습니다. 알고리즘은 컴퓨터 과학 및 수학의 기본 개념 중 하나입니다.

알고리즘 실행자는 알고리즘에 의해 규정된 작업을 수행할 수 있는 추상 또는 실제(기술적, 생물학적 또는 생명 공학) 시스템입니다.

연주자의 특징은 다음과 같습니다.

기본 동작;

명령 시스템;

환경(또는 설정)은 공연자의 "거주지"입니다. 예를 들어, 학교 교과서에 나오는 연기자 로봇의 경우 환경은 무한 셀룰러 필드입니다. 벽과 음영 처리된 셀도 환경의 일부입니다. 그리고 그들의 위치와 로봇 자체의 위치는 환경의 특정 상태를 결정합니다.

각 실행기는 실행기의 명령 시스템과 같이 엄격하게 지정된 일부 목록에서만 명령을 실행할 수 있습니다. 각 명령에 대해 적용 가능성 조건(명령을 실행할 수 있는 환경 상태)을 지정하고 명령 실행 결과를 설명합니다. 예를 들어 로봇 위에 벽이 없으면 로봇의 "위로" 명령을 실행할 수 있습니다. 그 결과 로봇이 한 셀 위로 변위됩니다.

명령을 호출한 후 실행기는 해당 기본 작업을 수행합니다.

환경 상태가 유효하지 않을 때 명령이 호출되면 실행기 오류가 발생합니다.

일반적으로 수행자는 알고리즘의 목적에 대해 아무것도 모릅니다. "왜" 및 "왜"라는 질문을 하지 않고 수신된 모든 명령을 실행합니다.

컴퓨터 과학에서 알고리즘의 보편적 실행자는 컴퓨터입니다.

알고리즘의 주요 속성은 다음과 같습니다.

연주자에 대한 이해 가능성 - 즉 알고리즘 실행자는 알고리즘 실행 방법을 알아야 합니다.

불연속성(불연속성, 분리) - 즉 알고리즘은 문제를 해결하는 프로세스를 간단한(또는 이전에 정의된) 단계(단계)의 순차적 실행으로 나타내야 합니다.

확실성 -- 즉 알고리즘의 각 규칙은 명확하고 모호하지 않아야 하며 자의의 여지가 없어야 합니다. 이 속성으로 인해 알고리즘 실행은 본질적으로 기계적이며 해결 중인 문제에 대한 추가 지침이나 정보가 필요하지 않습니다.

효율성(또는 유한성). 이 속성은 알고리즘이 유한한 수의 단계로 문제를 해결해야 한다는 것입니다.

대량 문자. 이것은 문제를 해결하기 위한 알고리즘이 일반적인 형태로 개발되었음을 의미합니다. 초기 데이터에서만 다른 특정 종류의 문제에 적용할 수 있어야 합니다. 이 경우 초기 데이터는 특정 영역에서 선택할 수 있으며 이를 알고리즘 적용 영역이라고 합니다.

실제로 다음과 같은 형태의 알고리즘 표현이 가장 일반적입니다.

구두(자연어로 된 기록);

그래픽(그래픽 기호의 이미지);

의사 코드(프로그래밍 언어 요소와 자연어 구, 일반적으로 허용되는 수학적 표기법 등을 모두 포함하는 조건부 알고리즘 언어로 된 알고리즘의 반정형화된 설명);

프로그래밍 방식(프로그래밍 언어로 된 텍스트).

알고리즘을 작성하는 구두 방식은 데이터 처리의 연속 단계에 대한 설명입니다. 알고리즘은 자연어로 임의의 표현으로 제공됩니다.

예를 들어. 두 자연수의 최대 공약수(GCD)를 구하는 알고리즘을 작성하십시오.

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

두 개의 숫자를 설정하십시오.

숫자가 같으면 그 중 하나를 답으로 취하고 중지하고 그렇지 않으면 알고리즘을 계속합니다.

가장 큰 숫자를 결정하십시오.

더 큰 숫자를 더 큰 숫자와 더 작은 숫자의 차이로 바꿉니다.

2단계의 알고리즘을 반복합니다.

설명된 알고리즘은 모든 자연수에 적용 가능하며 문제 해결로 이어져야 합니다. 이 알고리즘을 사용하여 125와 75의 최대 공약수를 결정하여 직접 확인하십시오.

구두 방법은 다음과 같은 이유로 널리 사용되지 않습니다.

이러한 설명은 엄격하게 형식화할 수 없습니다.

기록의 장황함;

개별 처방의 모호한 해석을 허용합니다.

알고리즘을 표현하는 그래픽 방식은 구두 방식보다 더 간결하고 시각적입니다.

그래픽 표현에서 알고리즘은 상호 연결된 일련의 기능 블록으로 묘사되며 각 기능 블록은 하나 이상의 작업 실행에 해당합니다.

이러한 그래픽 표현을 순서도 또는 순서도라고 합니다.

순서도에서 각 동작(초기 데이터 입력, 표현값 계산, 조건 확인, 동작 반복 제어, 마무리 처리 등)은 블록 기호로 표현되는 기하 도형에 해당합니다. 블록 기호는 작업이 수행되는 순서를 결정하는 전환 선으로 연결됩니다.

표 1은 가장 일반적으로 사용되는 문자를 나열합니다.

"프로세스" 블록은 값, 프레젠테이션 형식 또는 데이터 배치를 변경하는 작업 또는 일련의 작업을 지정하는 데 사용됩니다. 다이어그램의 가시성을 향상시키기 위해 여러 개의 개별 처리 블록을 하나의 블록으로 결합할 수 있습니다. 개별 작업의 프레젠테이션은 매우 무료입니다.

"결정" 블록은 조건별로 제어 전환을 지정하는 데 사용됩니다. 각 "결정" 블록은 정의하는 질문, 조건 또는 비교를 지정해야 합니다.

"수정" 블록은 순환 구조를 구성하는 데 사용됩니다. (수정이라는 단어는 수정, 변형을 의미합니다). 블록 내부에는 초기 값, 경계 조건, 반복할 때마다 매개 변수 값을 변경하는 단계가 표시된 주기 매개 변수가 작성됩니다.

"미리 정의된 프로세스" 블록은 일부 독립 모듈의 형태로 자율적으로 존재하는 보조 알고리즘에 대한 호출과 라이브러리 서브루틴에 대한 호출을 나타내는 데 사용됩니다.

의사 코드는 알고리즘을 균일하게 작성하도록 설계된 표기법 및 규칙 시스템입니다.

자연어와 형식어 사이의 중간 위치를 차지합니다.

한편으로는 일반 자연어에 가깝기 때문에 일반 텍스트처럼 알고리즘을 쓰고 읽을 수 있습니다. 반면에 일부 형식적 구성과 수학적 기호는 의사 코드에서 사용되며, 이는 일반적으로 허용되는 수학적 표기법에 더 가까운 알고리즘 표기법을 제공합니다.

의사 코드는 공식 언어에 내재된 명령을 작성하기 위한 엄격한 구문 규칙을 채택하지 않으므로 설계 단계에서 알고리즘을 더 쉽게 작성하고 추상 실행기를 위해 설계된 더 광범위한 명령 세트를 사용할 수 있습니다. 그러나 의사 코드에는 일반적으로 의사 코드 작성에서 공식 언어로 알고리즘 작성으로의 전환을 용이하게 하는 형식 언어 고유의 일부 구조가 있습니다. 특히 의사 코드에는 공식 언어와 마찬가지로 보조 단어가 있으며 그 의미는 단번에 결정됩니다. 인쇄된 텍스트에는 굵게 표시되고 손으로 쓴 텍스트에는 밑줄이 그어져 있습니다. 의사 코드의 단일 또는 공식 정의가 없으므로 서비스 단어 및 기본 (기본) 구조 집합이 다른 다양한 의사 코드가 가능합니다.

의사 코드의 예는 A.G.의 교과서에 설명된 러시아어 표기법(학교 AL)의 학교 알고리즘 언어입니다. Kushnirenko et al. "Fundamentals of Informatics and Computer Engineering", 1991. 이 언어는 간단히 "알고리즘 언어"라고 합니다.

기본 서비스 단어

알고리즘의 일반 보기:

alg 알고리즘 이름(인수 및 결과)

알고리즘의 적용 가능성에 대한 조건이 주어짐

알고리즘의 목적이 필요하다

중간 값 설명 시작

| 명령 시퀀스(알고리즘 본체)

알고리즘에서 단어 alg에서 단어 시작까지의 부분을 표제라고 하고 단어 시작과 끝 사이에 있는 부분을 알고리즘의 본문이라고 합니다.

alg 절에서 알고리즘 이름 뒤에 괄호 안에 모든 입력(arguments) 및 출력(results) 변수의 특성(arg, res) 및 값 유형(integer, thing, sim, lit 또는 log)을 표시합니다. 배열(테이블)을 설명할 때 서비스 단어 탭이 사용되며 배열 요소의 각 인덱스에 대한 경계 쌍이 추가됩니다.

alg 문장의 예:

alg 실린더의 부피와 면적 (arg ref R, H, res ref V, S)

alg Roots QvUr(arg w, b, c, res w x1, x2, res lit t)

alg Exclude element(arg integer N, arg res item tab A)

alg Diagonal(arg integer N, arg integer tab A, res lit Otvet)

제안은 제공되며 구속력이 없어야 합니다. 알고리즘 실행기의 환경 상태를 설명하는 문을 작성하는 것이 좋습니다. 예를 들면 다음과 같습니다.

인수 대체(arg lit Str1, Str2, arg res lit Text)

주어진 | 하위 문자열 Str1과 Str2의 길이는 동일합니다.

필요 | Text 행의 모든 ​​하위 문자열 Str1은 Str2로 대체됩니다.

alg 최대값 수(인수 정수 N, 인수 실수 탭 A, res 정수 K)

주어진 | N>0

필요 | K - 테이블 A의 최대 요소 수

alg 저항(실수 R1, R2 인수, 정수 N 인수, 실수 R 인수)

주어진 | N>5, R1>0, R2>0

필요 | R - 회로 저항

여기 문장에서 "|"기호 다음에 필요합니다. 댓글이 기록됩니다. 주석은 모든 줄의 끝에 배치할 수 있습니다. 번역기에 의해 처리되지는 않지만 알고리즘을 훨씬 쉽게 이해할 수 있습니다.

알고리즘은 별도의 기본(즉, 기본) 요소로 구성된 일부 구조로 나타낼 수 있습니다.

당연히 알고리즘에 대한 이러한 접근 방식으로 구성의 기본 원리에 대한 연구는 이러한 기본 요소에 대한 연구에서 시작되어야 합니다.

이를 설명하기 위해 알고리즘 체계의 언어와 학교 알고리즘 언어를 사용합니다.

모든 알고리즘의 논리적 구조는 세 가지 기본 구조의 조합으로 나타낼 수 있습니다.

수행원,

분기,

기본 구조의 특징은 하나의 입력과 하나의 출력을 갖는다는 것입니다.

대부분의 경우 명령은 알고리즘 언어로 된 레코드 형식으로 작성됩니다. 모든 단계의 정확한 처방과 실행을 위해 필요합니다. 학교 알고리즘 언어와 프로그래밍 언어 사이에는 분명한 차이점이 있습니다. 일반적으로 컴퓨터는 첫 번째 버전에서 실행기 역할을 할 뿐만 아니라 작업을 수행할 수 있는 다른 장치도 수행합니다. 알고리즘 언어로 작성된 모든 프로그램은 기술에 의해 수행될 필요가 없습니다. 실제로 모든 지침을 구현하는 것은 완전히 별개의 문제입니다. 알고리즘 언어에서의 알고리즘에 대한 설명도 아래에서 고려될 것이다. 이 시스템의 장치를 이해하는 데 도움이 됩니다.

학교에서 공부

종종 학교에서는 학습 언어로 가장 일반적으로 알려진 알고리즘 언어를 가르칩니다. 모든 학생이 가장 이해하기 쉬운 단어를 사용한다는 사실로 인해 대규모 배포를 받았습니다. 러시아어 구문을 사용하는 유사한 언어는 오래 전, 즉 1980년대 중반에 도입되었습니다. 학생들에게 기초를 제공하고 컴퓨터 없이 컴퓨터 과학 과정을 가르치는 데 사용되었습니다. 이 언어는 교과서 중 하나에 1985년에 출판되었습니다. 또한 9학년과 10학년의 교육을 위한 특별 도서로 여러 번 재인쇄되었습니다. 출판물의 총 부수는 7백만 부에 달했습니다.

알고리즘 작성 순서

먼저 문자 조합 ALG를 적어야 합니다. 알고리즘의 이름은 다음과 같습니다. 그런 다음 START 후에 일련의 명령을 설명해야 합니다. KOH 연산자는 프로그램의 끝을 의미합니다.

알고리즘 언어로 된 알고리즘 설명:

알지컴퍼니

시작

왼쪽으로 90도 회전

핵심 단어는 밑줄이나 굵은 글씨로 작성해야 합니다. 논리 블록을 나타내기 위해서는 들여쓰기를 사용해야 하며, 시작과 끝의 쌍이 있으면 연결을 나타내는 세로 막대를 사용해야 합니다.

알고리즘 작성

이전 레코드를 사용하여 새 지침을 작성할 수 있습니다. 이러한 명령을 보조라고 합니다. 이러한 알고리즘은 이전에 설명되고 컴파일된 모든 것일 수 있습니다. 또한 이 시스템이 보조 시스템에 대한 참조를 받은 추가 알고리즘을 사용할 가능성도 있습니다.

종종 명령어를 만들 때 하나의 알고리즘만 추가 알고리즘으로 사용할 필요가 있습니다. 그렇기 때문에 기록이 종종 복잡하고 번거로울 수 있습니다. 그러나 추천하는 기능이 동일한 레코드를 여러 번 다시 쓰는 것보다 쉽다는 점은 주목할 가치가 있습니다.

이것이 실제로 사용자에게 지속적으로 종속되는 표준 보조 알고리즘이 자주 사용되는 이유입니다. 명령어는 자신과 다른 명령어 모두에 대한 참조를 가질 수 있습니다. 알고리즘 언어 명령은 이러한 작업을 위해 설계되었습니다. 이러한 명령을 재귀적이라고 합니다.

bind-to-self 명령은 시스템 자체에 상주합니다. 이러한 재귀는 직접적입니다. 간접 명령은 알고리즘이 다른 보조 명령에서 호출되는 것입니다.

특정 명령 시퀀스가 ​​있는 알고리즘은 프로그램의 특수 부분을 실행한 결과에 따라 지속적으로 변경될 수 있습니다. 이러한 시스템을 분기라고 합니다. 이를 생성하려면 특별한 분기 명령을 사용해야 합니다. 축약되고 완전한 철자 체계가 있습니다. 종종 특수 명령을 여러 번 실행하는 순환 알고리즘이 있습니다.

전자 워크숍

문법 언어 이론 연구를 개선하기 위해 1985 년 모스크바 주립 대학의 Mekhmat 전문가들은 특수 컴파일러를 만들었습니다. 그것은 "E- 워크샵"이라고 불 렸습니다. 그것으로 프로그램을 입력, 수정 및 실행할 수 있었습니다. 다음 해에 특정 공연자가 출시되었습니다. 우리는 "로봇", "Drafter", "Two-legged", "ATV"에 대해 이야기하고 있습니다. 이를 통해 알고리즘을 간단하고 쉽게 구현할 수 있었습니다. 이 컴파일러는 매우 대중화되었으며 일부 컴퓨터에서 사용되었습니다. 꽤 오랫동안 이 프로그래밍 언어는 다듬어지고 변경되었습니다. 1990년에 그 이후 버전이 교과서에 실렸습니다.

우상

이제 학교 알고리즘 언어는 Windows 및 Linux용 특수 패키지 "Kumir"가 개발된 후 두 번째 탄생을 경험하고 있습니다. 이 시스템은 여러 연주자와 함께 작동합니다. 그들 중 고전은 "로봇", "Drafter"입니다. 동일한 패키지가 Linux "School" 설치 파일에 포함되어 있습니다. 이 시스템은 러시아 과학 아카데미의 명령에 따라 특별히 개발되었습니다. 무료로 무료로 배포됩니다. 지난 몇 년 동안 설명된 언어는 USE에서 다음 중 하나로 사용되도록 적극적으로 제안되었습니다.

언어 할당

알고리즘 언어는 상당히 광범위한 문제를 해결하는 데 사용됩니다. 다른 과목의 수학 및 연습을 모두 마스터하는 데 적합합니다. 학생들이 비슷한 주제를 더 쉽게 공부할 수 있도록 하기 위해서도 사용된다는 점에 유의해야 합니다.

기계 언어와 알고리즘 언어의 차이점

기계 의존형 언어의 가장 유명한 대표자는 "어셈블러"입니다. 프로그래밍하는 동안 사람은 메모리 셀을 채우거나 전송해야 하는 특수 연산자 덕분에 번역가에게 명확하게 표시해야 합니다. "어셈블러"의 구문은 가능한 한 컴퓨터 쓰기 형식에 가깝기 때문에 연구하기가 다소 어렵습니다. 그렇기 때문에 고등 교육 첫해에 프로그래밍을 시작할 때뿐만 아니라 학교에서 알고리즘 언어를 가르치는 것입니다.

표준 기능

알고리즘 언어에는 "내장" 상태를 받은 특수 표준 기능이 있습니다. 일상적인 항목을 수행하지 않고도 숫자와 표현식으로 많은 작업을 쉽게 작성할 수 있기 때문입니다. 알고리즘 언어로 된 프로그램은 매우 간단합니다. 일반 함수를 사용하면 제곱근, 로그, 모듈러스 등을 계산할 수 있습니다. 가장 널리 사용되는 기본 제공 방법은 다음과 같습니다.

  • 절대 모듈 abs(X);
  • 제곱근 sqrt(X);
  • 천연 및 ln(X), lg(X);
  • 최소 및 최대 최소(X,Y), 최대(X, Y);
  • 삼각 함수 sin(X), cos(X), tg(X), ctg(X).

덕분에 모든 프로그래머 또는 알고리즘 언어로 작업하는 방법을 배우는 사람은 자전거를 발명하지 않고도 쉽게 수학 문제를 작성할 수 있습니다. 따라서 이 언어는 매우 편리하다는 점에 유의해야 합니다. 이해하기 쉽고 이해하기도 매우 쉽습니다. 그것이 학교 커리큘럼에 포함된 것은 당연합니다. 학생들은 그것을 배우는 것을 즐깁니다.



질문이 있으신가요?

오타 신고

편집자에게 보낼 텍스트: