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

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

약간의 역사

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

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

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

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

알고리즘은 무엇입니까

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

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

이 시퀀스는 매우 단순화되어 있지만 가장 간단한 알고리즘을 나타냅니다.

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

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

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

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

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

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

기계 의존형 언어의 두드러진 대표자는 어셈블러입니다. 이에 대한 프로그래밍은 이동해야 할 항목과 채울 데이터 영역 또는 위치를 특수 표시로 번역자에게 알려주는 것입니다. 어셈블러 구문은 기계 구문과 더 유사하기 때문에 연구하고 코드를 작성하는 것이 매우 어렵습니다. 아래에서는 다양한 프로세서에 대한 명령의 모양을 확인할 수 있습니다.

따라서 인간이 이해할 수 있는 수많은 키워드와 이름을 사용하여 형식적 또는 알고리즘적 언어가 만들어졌습니다.

키워드

알고리즘 언어는 동작이나 변수의 완전한 지정을 위한 약어인 키워드로 구성됩니다. 이를 통해 코드 길이를 줄이면서 이해하기 쉽게 만들 수 있습니다.

  • 알그. 모든 알고리즘은 이 키워드로 시작됩니다. 이름을 설명하고 괄호 안에 계산에 필요한 인수와 결과가 무엇인지 설명합니다.
  • 인수. 알고리즘의 인수를 나타냅니다. 코드에 사용될 값의 유형과 이름을 반영합니다.
  • 해상도. 이 키워드는 계산 결과를 배치해야 하는 변수의 유형과 이름을 나타내는 역할을 합니다.
  • 시작알고리즘 실행의 즉각적인 시작을 나타냅니다. con 키워드까지 지속됩니다. "시작"부터 "끝"까지의 전체 간격을 현재 알고리즘의 본문이라고 합니다.
  • 범죄자.알고리즘 실행이 완료되었음을 나타냅니다.
  • 주어진. 알고리즘 사용의 일부 기능과 미묘한 차이 또는 제한 사항에 대해 설명합니다. 예를 들어, 여기에서 비교되는 문자열의 길이가 동일해야 함을 지정할 수 있습니다. "given"이라는 키워드의 사용은 선택 사항입니다.
  • 필요한. 알고리즘을 실행한 결과 무엇을 얻어야 하는지에 대한 자세한 설명입니다. 주어진 것처럼 생략 가능하지만, 좀 더 이해하기 쉽고 상세한 코드를 작성하려면 사용하는 것이 좋습니다.

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

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

추가 기능 단어

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

  • 을 위한. 특정 범위의 모든 값을 반복하는 데 사용됩니다. 주기, 즉 데이터가 있는 모든 프로시저의 연속 실행에 사용됩니다.
  • 에서 까지. "for" 루프에서 반복할 값의 범위를 지정합니다.
  • 안녕. 여러 값을 반복하는 데에도 사용됩니다. 특정 조건이 충족될 때까지 작동하는 데 사용됩니다.
  • Nts와 kts. 알고리즘 언어에서 "Nts"는 루프 본문의 시작을 의미하고 "kts"는 끝을 의미합니다. 이 두 키워드 사이에는 계산에 필요한 절차가 내장되어 있습니다.
  • 만약에.이 단어는 분기 구조를 구현합니다. 이런 방식으로 조건을 고려하여 원하는 방향으로 프로그램의 진행을 결정할 수 있습니다.
  • 어느 쪽이든. "if"와 함께 사용되는 두 단어입니다. 분기 메커니즘도 구축되었습니다.
  • 선택. 동일한 유형의 여러 값에서 분기하는 데 편리한 도구입니다. 키워드 "at" 및 "otherwise"와 함께 작동합니다.
  • 모두. 분기 메커니즘의 끝을 나타냅니다.
  • 입력하다. 이 키워드를 사용하면 사용자는 후속 처리를 위해 프로그램 작동 중에 변수 값을 입력할 수 있습니다.
  • 결론.화면에 데이터를 표시합니다.

기본 언어 구조

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

다음 구조

이러한 유형의 구조를 설계할 때 코드 실행은 한 줄씩 직접 발생합니다. 일반적인 예는 다음과 같이 표현될 수 있습니다.

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

출력 "S = ", S

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

알고리즘 본문에서 "input" 키워드는 사용자로부터 데이터를 받아 변수에 씁니다. 그런 다음 그것들을 더하고 그 합을 S에 할당합니다. 알고리즘이 끝나기 전에 프로그램 결과는 "출력"이라는 키워드를 사용하여 화면에 표시됩니다. 알고리즘 언어의 이러한 표기법은 다른 많은 프로그래밍 환경에서 일반적입니다.

분기 구조

프로그램의 흐름이 항상 한 줄씩 실행될 필요는 없습니다. 상황에 따라 특정 변수의 값을 결정하거나 변경해야 하는 경우도 있습니다. 예를 들어, 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의 현재 값을 조건에 지정된 값과 비교합니다. 일치하는 항목이 발견되면 다음 작업을 수행합니다. 어떤 조건도 충족되지 않는 경우 보다 유연한 솔루션을 위해 이 구성을 "else" 키워드와 결합할 수도 있습니다.

사이클

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

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

안녕 x야<= 3

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

"for"라는 키워드는 순차적으로 반복하여 일부 작업을 수행해야 하는 특정 숫자 범위에 적용됩니다. 이 구성은 유한한 수의 요소가 알려진 경우에 사용됩니다.

구문은 다음과 같습니다.

x의 경우 nc는 1에서 3까지입니다.

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

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

표준 기능

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

  • 절대 모듈 - abs(x);
  • 제곱근 - sqrt(x);
  • 자연 및 십진 로그 - ln(x) 및 log(x);
  • 두 숫자의 최소 및 최대 - min(x,y), max(x,y);
  • 사인, 코사인, 탄젠트, 코탄젠트 - sin(x), cos(x), tan(x), ctg(x).

이러한 표준 기능을 사용하면 표준 도구를 사용하여 가장 간단한 기능을 구현하는 데 도움이 되므로 "자전거" 생성을 피할 수 있습니다.

부울 표현식

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

  • 그리고.키워드가 사이에 있는 표현식이 특정 조건((x>0) 및 (y>0))을 충족해야 함을 의미합니다.
  • 또는. 표현식 중 하나가 조건을 충족하지 않을 수 있습니다(예: (x>0) 또는 (y>0)).
  • 아니다. 표현식의 논리값을 "뒤집습니다". 예를 들어 이 디자인은 아니다(x>0)은 x가 여전히 0보다 크지 않아야 함을 의미합니다.

비교 연산자도 있습니다 -<, >, =를 결합하여 크거나 같음과 같은 표현식을 만들 수 있습니다.

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

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

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

alg 숫자를 제곱하세요 ()

괄호 안에는 사용자의 값과 결과를 나타내는 인수를 지정해야 합니다. 또한 이 데이터의 유형을 선언하는 것을 잊지 마세요.

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

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

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

출력 "S = ", S

할당을 구현할 수 있는 명령이 있는 알고리즘 언어는 다음 형식으로 작성됩니다. 따라서 변수 S에는 x와 자신의 곱의 값이 포함됩니다. 출력 라인은 결과를 화면에 표시합니다. 글쎄요, 이 모든 것은 "con"이라는 키워드로 끝납니다. 이제 전체 코드는 다음과 같습니다.

alg 숫자를 제곱합니다(arg 정수 x, res 정수 S)

출력 "S = ", S

입력된 숫자의 제곱을 계산하는 알고리즘을 간단한 방법으로 구현하는 방법입니다. 모든 작업의 ​​합계를 추가하면 프로그램이 복잡해질 수 있습니다. 그러면 다음과 같이 보일 것입니다:

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

주어진 | x > 0

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

전체를 시작하다

입력 x; S:=0

1에서 x까지의 경우 nc

출력 "S = ", S

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

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

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

설명된 구성 및 키워드가 인간 언어에 근접하기 때문에 완전히 기계 또는 기계 종속 모델을 사용하는 것보다 코드 작성이 훨씬 쉬워졌습니다. ALGOL 프로그래밍 언어 제품군은 구문이 여러 지역화로 제공되었기 때문에 개발에서 가장 발전했습니다. 러시아어로도 코드 작성이 가능했습니다.

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

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

예를 들어 알고리즘에 대한 아이디어를 과학 기사에 게시할 때 중요하지 않은 세부 사항으로 프레젠테이션을 복잡하게 만들지 않도록 특정 프로그래밍 언어를 사용하는 것이 항상 권장되는 것은 아닙니다. 그런 경우는 비공식적인 알고리즘 언어가 사용됩니다., 최대한 자연에 가깝습니다. 이러한 유형의 언어를 언어라고 합니다. 의사코드. 전문가가 의사 코드의 프로그램을 특정 프로그래밍 언어로 다시 작성하는 것은 어렵지 않습니다. 의사코드로 알고리즘을 작성하는 것이 더 명확하고 시각적인 경우가 많습니다. 매우 일반적인 용어의 설명부터 자세한 프레젠테이션까지 세부 수준을 자유롭게 선택할 수 있습니다.

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

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

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

의사 코드에는 일반적으로 프로그래밍 언어에 고유한 일부 구문이 포함되어 있습니다. 이는 의사 코드 작성에서 특정 컴퓨터용 프로그래밍 언어로 알고리즘 작성으로의 전환을 촉진합니다. 특히 의사코드와 프로그래밍 언어에는 기능어가 있는데, 그 의미는 완전히 결정됩니다. 인쇄된 텍스트에서는 굵은 글씨로 표시되고 손으로 쓴 텍스트에서는 밑줄이 그어져 있습니다.

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

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

주어진 알고리즘 적용 조건

필요한 알고리즘의 목적

시작 중간 수량 설명

명령의 순서(알고리즘 본문)

단어의 알고리즘의 일부 알그 단어에 시작 제목이라고 하고, 단어 사이의 부분을 시작 그리고 범죄자 - 알고리즘의 본문.

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

예문 알그 :

알그 원통의 부피와 면적(인수 항목 R, H, res 항목 V, S)

알그 루트 KvUr( 인수 a, b, c, 입술사물 x1, x2, res lit t)

알그 요소 제외( 인수정수 N, 인수 res things 탭 A)

알그 대각선( 인수정수 N, 인수전체 탭 A, 다시 켜짐 답변)

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

알그 교체(arg lit Str1, Str2, arg res lit Text)

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

필요 | 텍스트 줄의 모든 부분에서 하위 문자열 Str1이 Str2로 대체됩니다.

알그 최대값 수(arg int N, arg thing tab A, res int K)

주어진 | 아니>0

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

알그 저항(args 사물 R1, R2, args int N, res 사물 R)

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

필요 | R - 회로 저항

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

알고리즘 언어의 기본 기능어:

alg(알고리즘) sim(기호)이 yes로 제공됨

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

rez(결과) log(논리) if before when

시작(시작) 탭(테이블) 후 값 선택

end (end) nc (사이클 시작) 그렇지 않으면 입력

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

아직 승인되지 않은 것(실제) 길이(길이)

기본 명령:

1. 할당 명령.표현식을 평가하고 해당 값을 변수에 할당하는 데 사용됩니다. 일반 형식: A:= B, 표지판은 어디에 있나요? ":=" 왼쪽 변수의 이전 값을 오른쪽 표현식의 계산된 값으로 바꾸는 명령을 의미합니다.

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

입력 및 출력 명령.

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

결론 변수 이름, 표현식, 텍스트. (화면에 데이터 표시)

분기 명령.

이러한 명령은 조건 확인 결과(예 또는 아니요)에 따라 알고리즘을 작동하는 대체 방법 중 하나를 선택하도록 보장합니다. 각 경로는 공통 출력으로 이어지므로 어떤 경로를 선택하든 알고리즘은 계속 실행됩니다.

분기 구조에는 네 가지 주요 변형이 있습니다.

1. 그렇다면 - 그렇다면;

만약에 상태

저것 행위

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

만약에상태

저것 행동 1

그렇지 않으면 행동 2

3. 선택;

선택

~에 조건 1: 작업 1

~에 조건 2: 작업 2

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

~에 조건 N: 작업 N

4. 선택이 다릅니다.

선택

~에 조건 1: 작업 1

~에 조건 2: 작업 2

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

~에 조건 N: 작업 N

그렇지 않으면 행동 N+1

사이클 명령.

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

루프를 구성하는 데는 두 가지 명령이 있습니다.

1. 루프형 안녕 -단어 뒤에 적힌 조건이 만족되는 한 루프 본문이 실행되도록 명령합니다. 안녕.

체크 안함안녕상태

루프 본체

(시퀀싱)

KT

2. 루프형 을 위한 -주어진 범위에 있는 특정 변수(루프 매개변수)의 모든 값에 대해 루프 본문이 실행되도록 명령합니다.

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

루프 본체

(시퀀싱)

KT

프로그래밍 언어

현재 전 세계적으로 실제로 사용되는 프로그래밍 언어는 수백 가지가 있습니다. 각각 고유한 적용 영역이 있습니다.

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

프로그래밍 언어(알고리즘 언어) - 프로그램을 구성하는 기호 시퀀스(구문 규칙)와 프로그램이 설명하는 계산(의미 규칙)을 결정하는 규칙 집합입니다.

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

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

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

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

기계어와 기계지향 언어는 데이터 처리 과정의 세밀한 세부 사항을 지정해야 하는 저수준 언어입니다. 반면 고급 언어는 일부 음성 언어 단어와 일반적인 수학 기호를 사용하여 자연어를 모방합니다. 이러한 언어는 인간 친화적입니다.

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

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

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

§ 분석;

§ 설계;

§ 프로그래밍;

§ 테스트 및 디버깅;

§ 착취.

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

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

결론

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

알고리즘 언어 –이는 알고리즘과 그 실행을 균일하고 정확하게 기록하기 위한 표기법 및 규칙 시스템입니다. 알고리즘 언어는 알고리즘을 자연(인간) 언어로 작성하는 것과 컴퓨터 언어(프로그래밍 언어)로 작성하는 것의 중간인 분석 형식으로 알고리즘을 작성하는 수단입니다.

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

모든 언어와 마찬가지로 알고리즘 언어에도 고유한 어휘가 있습니다. 이 사전의 기본은 특정 알고리즘 실행자의 명령 체계에 포함된 명령을 작성하는 데 사용되는 단어로 구성됩니다. 이러한 명령을 단순 명령이라고 합니다. 알고리즘 언어에서는 단어가 사용되며, 그 의미와 사용 방법은 단번에 지정됩니다. 이런 단어들이 불려요 공식적인.기능어를 사용하면 알고리즘의 기록이 더욱 시각적으로 나타나며, 다양한 알고리즘을 표현하는 형태가 더욱 획일화됩니다.

알고리즘 언어로 작성된 알고리즘에는 이름이 있어야 합니다. 주어진 알고리즘이 어떤 문제를 해결하는지 명확하게 알 수 있도록 이름을 선택하는 것이 좋습니다. 알고리즘 이름을 강조하려면 앞에 서비스 단어 ALG(ALGORITHM)를 쓰십시오. 알고리즘 이름 뒤에(보통 새 줄에) 해당 명령이 표시됩니다. 알고리즘의 시작과 끝을 나타내기 위해 해당 명령은 서비스 단어 START(START) 및 CON(END) 쌍으로 묶입니다. 명령은 순차적으로 작성됩니다.

ALG - 알고리즘 이름

일련의 알고리즘 명령

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

ALG – to_창고

새로운 알고리즘을 구성할 때 이전에 컴파일된 알고리즘을 사용할 수 있습니다. 완전히 다른 알고리즘의 일부로 사용되는 알고리즘을 보조 알고리즘이라고 합니다. 이전에 컴파일된 여러 알고리즘의 모든 알고리즘은 보조일 수 있습니다. 특정 상황에서는 보조 알고리즘이 보조 알고리즘에 대한 링크를 포함하는 알고리즘으로 판명될 수도 있습니다.

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

알고리즘은 자신에 대한 참조를 보조로 포함할 수 있으며, 이 경우 이를 알고리즘이라고 합니다. 재귀적.알고리즘이 자신을 참조하도록 하는 명령이 알고리즘 자체에 있는 경우 이러한 재귀를 호출합니다. 똑바로.해당 알고리즘에서 호출되는 보조 알고리즘에서 해당 알고리즘의 재귀 호출이 발생하는 경우가 있을 수 있습니다. 이 재귀를 호출합니다. 간접적. 직접 재귀의 예:

ALG – 움직임

움직임

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

IF 조건 IF 조건 IF 에지

TO 시리즈1 TO 시리즈 TO 오른쪽

OTHERWISE 에피소드 2 EVERYTHING ELSE 앞으로

다음은 분기 명령을 발전시킨 select 명령에 대한 알고리즘 언어 항목입니다.

WITH 조건 1: 계열 1

조건 2 하: 시리즈 2

WITH 조건 N: 계열 N

ELSE 시리즈 N+1

개별 명령이나 일련의 명령이 반복적으로 실행되는 알고리즘을 순환이라고 합니다. 순환 알고리즘을 알고리즘 언어로 구성하려면 특수 복합 루프 명령이 사용됩니다. 이는 "반복" 유형의 블록 다이어그램에 해당하며 다음 형식을 취할 수 있습니다.

BYE 상태 NC

시리즈 BEFORE 조건

알고리즘은 수행자가 주어진 문제를 해결하기 위해 일련의 작업을 수행하도록 정확하고 이해하기 쉬운 지침입니다.

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

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

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

기본 행동;

명령 시스템;

환경(또는 설정)은 공연자의 "거처"입니다. 예를 들어, 학교 교과서에 나오는 연기자 로봇의 경우 환경은 무한한 세포 장입니다. 벽과 칠해진 세포도 환경의 일부입니다. 그리고 로봇의 위치와 로봇 자체의 위치가 환경의 특정 상태를 결정합니다.

각 실행기는 엄격하게 지정된 특정 목록, 즉 실행기 명령 시스템에서만 명령을 실행할 수 있습니다. 각 명령마다 적용 가능 조건(명령이 실행될 수 있는 환경 상태)을 지정하고 명령을 실행한 결과를 기술해야 합니다. 예를 들어, 작업 위에 벽이 없으면 작업 명령 "up"을 실행할 수 있습니다. 그 결과 로봇이 한 셀 위로 변위됩니다.

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

명령이 허용되지 않는 환경 상태에서 호출되면 실행자 오류가 발생합니다.

일반적으로 수행자는 알고리즘의 목적에 대해 아무것도 모릅니다. 그는 왜, 왜인지 묻지 않고 자신이 받은 모든 명령을 수행합니다.

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

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

수행자의 이해 가능성 - 즉 알고리즘 실행자는 이를 실행하는 방법을 알아야 합니다.

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

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

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

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

실제로 알고리즘을 제시하는 가장 일반적인 형태는 다음과 같습니다.

구두(자연어로 녹음);

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

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

소프트웨어(프로그래밍 언어로 된 텍스트).

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

예를 들어. 두 자연수의 최대 공약수(GCD)를 찾는 알고리즘을 작성하세요.

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

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

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

가장 큰 숫자를 결정합니다.

더 큰 숫자를 더 큰 숫자와 더 작은 숫자의 차이로 대체합니다.

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

설명된 알고리즘은 모든 자연수에 적용 가능하며 문제에 대한 해결책으로 이어져야 합니다. 이 알고리즘을 사용하여 숫자 125와 75의 최대 공약수를 결정함으로써 이를 확신해 보세요.

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

그러한 설명은 엄격하게 공식화되지 않습니다.

항목의 장황함으로 인해 어려움을 겪습니다.

개별 지침을 해석할 때 모호함을 허용합니다.

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

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

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

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

표 1은 가장 일반적으로 사용되는 기호를 보여줍니다.

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

"결정" 블록은 조건부 제어 전환을 나타내는 데 사용됩니다. 각 "해결책" 블록은 그것이 정의하는 질문, 조건 또는 비교를 식별해야 합니다.

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

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

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

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

한편으로는 일반적인 자연어에 가깝기 때문에 일반 텍스트처럼 알고리즘을 쓰고 읽을 수 있습니다. 반면 의사코드는 일부 형식적 구성과 수학적 기호를 사용하여 알고리즘 표기법을 일반적으로 허용되는 수학적 표기법에 더 가깝게 만듭니다.

의사 코드에서는 형식 언어에 내재된 명령 작성에 대한 엄격한 구문 규칙을 채택하지 않으므로 설계 단계에서 알고리즘을 작성하기가 더 쉽고 추상 실행기를 위해 설계된 더 넓은 명령 집합을 사용할 수 있습니다. 그러나 의사코드에는 일반적으로 형식 언어에 내재된 일부 구성이 포함되어 있어 의사 코드 작성에서 형식 언어 알고리즘 작성으로 더 쉽게 이동할 수 있습니다. 특히 의사코드와 형식언어에는 기능어가 있는데, 그 의미는 최종적으로 결정된다. 인쇄된 텍스트에서는 굵은 글씨로 표시되고 손으로 쓴 텍스트에서는 밑줄이 그어져 있습니다. 의사코드에 대한 단일 또는 형식적 정의가 없으므로 기능어 집합과 기본(기본) 구성이 다른 다양한 의사코드가 가능합니다.

의사 코드의 예는 A.G.의 교과서에 설명된 러시아어 표기법(학교 AYA)의 학교 알고리즘 언어입니다. Kushnirenko et al. "Fundamentals of Informatics and Computer Science", 1991. 앞으로는 이 언어를 간단히 "알고리즘 언어"라고 부르겠습니다.

기본 기능어

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

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

알고리즘 적용을 위한 조건이 제공됩니다.

알고리즘을 실행한다는 목표가 필요합니다.

중간 수량의 초기 설명

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

alg라는 단어에서 beg라는 단어까지의 알고리즘 부분을 헤더라고 하며, beg와 end라는 단어 사이에 포함된 부분은 알고리즘의 본문입니다.

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

예문:

alg 원통의 부피와 면적 (arg는 R, H, res는 V, S)

alg 루트 KvUr(arg things a, b, c, res things x1, x2, res lit t)

alg 요소 제외(arg int N, arg res stuff tab A)

alg Diagonal(arg int N, arg int tab A, res lit Answer)

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

alg 교체(arg lit Str1, Str2, arg res lit Text)

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

필요 | 텍스트 줄의 모든 부분에서 하위 문자열 Str1이 Str2로 대체됩니다.

alg 최대값 수(arg int N, arg thing tab A, res int K)

주어진 | 아니>0

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

alg 저항(args 사물 R1, R2, args int N, res 사물 R)

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

필요 | R - 회로 저항

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

알고리즘은 개별 기본(즉, 기본) 요소로 구성된 특정 구조로 생각할 수 있습니다.

당연히 알고리즘에 대한 이러한 접근 방식을 통해 설계의 기본 원리에 대한 연구는 이러한 기본 요소에 대한 연구부터 시작되어야 합니다.

이를 설명하기 위해 우리는 알고리즘 다이어그램의 언어와 학교 알고리즘 언어를 사용할 것입니다.

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

수행원,

분기,

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

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

학교에서 공부하다

종종 학교에서는 학습 언어로 가장 잘 알려진 알고리즘 언어를 가르칩니다. 가능한 한 모든 학생이 이해할 수 있는 단어를 사용한다는 사실로 인해 널리 보급되었습니다. 러시아어 구문을 갖춘 유사한 언어는 오래 전, 즉 1980년대 중반에 소개되었습니다. 학생들에게 기초를 제공하고 컴퓨터 없이 컴퓨터 과학 과정을 가르치는 데 사용되었습니다. 이 언어는 1985년 교과서 중 하나에 출판되었습니다. 또한 9학년과 10학년을 대상으로 한 특별 도서용으로 여러 차례 재인쇄되었습니다. 출판물의 총 발행 부수는 700만 부였습니다.

알고리즘 기록 순서

먼저 문자 조합 ALG를 적어야 합니다. 다음은 알고리즘의 이름입니다. 그런 다음 NAC 후에 일련의 명령을 설명해야 합니다. CON문은 프로그램의 종료를 의미합니다.

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

ALG 회사

시작

왼쪽으로 90도 회전

범죄자

글을 작성할 때 키워드에는 밑줄을 그거나 굵은 글씨로 표시해야 합니다. 들여쓰기를 사용하여 논리 블록을 표시해야 하며, 시작 단어와 끝 단어 쌍이 있는 경우 세로 막대를 사용하여 연결을 표시해야 합니다.

알고리즘 작성

이전 기록을 사용하여 새로운 지침을 만들 수 있습니다. 이러한 명령어를 보조 명령어라고 합니다. 유사한 알고리즘은 앞서 설명하고 컴파일한 모든 알고리즘이 될 수 있습니다. 또한 이 시스템은 보조 시스템에 대한 참조를 자체적으로 받은 알고리즘을 추가로 사용할 가능성도 있습니다.

명령어를 생성할 때 추가 알고리즘으로 하나의 알고리즘만 사용해야 하는 경우가 많습니다. 이것이 바로 기록이 종종 복잡하고 성가신 이유입니다. 그러나 링크를 보내는 기능은 동일한 항목을 여러 번 다시 작성하는 것보다 더 간단하다는 점은 주목할 가치가 있습니다.

이것이 실제로 사용자에게 지속적으로 종속되는 표준 보조 알고리즘이 자주 사용되는 이유입니다. 지침에는 본인이나 다른 사람에 대한 참조가 포함될 수 있습니다. 알고리즘 언어 명령은 이러한 작업을 위해 설계되었습니다. 재귀라고 불리는 것은 이러한 명령입니다.

자신을 바인딩하는 명령은 시스템 자체 내에 있습니다. 이 재귀는 직접적입니다. 간접은 알고리즘이 다른 보조 명령에서 호출되는 것으로 간주됩니다.

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

전자 워크숍

문법 언어 이론 연구를 향상시키기 위해 모스크바 주립 대학 기계 및 수학 학부의 전문가들은 1985년에 특수 컴파일러를 만들었습니다. 그것은 "E-워크샵"이라고 불렸습니다. 그것의 도움으로 프로그램의 입력, 변경, 실행이 가능해졌습니다. 다음 해에는 특정 공연자 세트가 출시되었습니다. 우리는 "로봇", "기안자", "두 다리", "모든 지형 차량"에 대해 이야기하고 있습니다. 이를 통해 간단하고 쉽게 알고리즘을 구현할 수 있게 되었습니다. 이 컴파일러는 매우 유명해졌으며 일부 컴퓨터에서 사용되었습니다. 꽤 오랫동안 이 프로그래밍 언어는 개선되고 변경되었습니다. 1990년에는 이후 버전이 교과서에 등장했습니다.

우상

이제 Windows 및 Linux용 특수 패키지 "Idol"이 개발된 후 학교 알고리즘 언어가 재탄생하고 있습니다. 시스템은 여러 실행자와 함께 작동합니다. 그중 고전적인 것은 "Robot", "Draftsman"입니다. Linux “School” 설치 파일에도 동일한 패키지가 포함되어 있습니다. 이 시스템은 러시아 과학 아카데미를 위해 특별히 개발되었습니다. 자유롭고 자유롭게 배포됩니다. 지난 몇 년 동안 설명된 언어는 통합 국가 시험에서 다음 중 하나로 사용되도록 적극적으로 제안되었습니다.

언어 목적

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

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

기계 의존 언어의 가장 유명한 대표자는 "어셈블러"입니다. 프로그래밍하는 동안 특수 연산자 덕분에 어떤 메모리 셀을 채우거나 전송해야 하는지 번역가에게 명확하게 표시해야 합니다. "Assembler"의 구문은 컴퓨터 표기법에 최대한 가깝기 때문에 연구하기가 매우 어렵습니다. 이것이 바로 학교에서 알고리즘 언어를 가르치는 이유이며, 고등 교육 1학년의 프로그래밍 훈련 초기에도 마찬가지입니다.

표준 기능

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

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

덕분에 모든 프로그래머나 알고리즘 언어를 사용하는 방법을 배우는 사람은 바퀴를 다시 만들 필요 없이 쉽게 수학 문제를 작성할 수 있습니다. 따라서 이 언어는 매우 편리하다는 점에 유의해야 합니다. 이해하기 쉽고 최대한 이해하기 쉽습니다. 그것이 학교 커리큘럼에 포함된 것도 당연합니다. 학생들은 그것을 공부하는 것을 좋아합니다.



질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: