디지털 기술의 현대 세계에서프로그래밍은 다양한 컴퓨터, 가제트 및 기타 전자 장비의 작동을위한 기초입니다. 그리고 알고리즘의 블록 다이어그램을 빠르고 정확하게 작성하는 능력은이 과학의 기초가됩니다. 이러한 체계는 장비가 수행해야하는 프로세스의 그래픽 모델입니다. 다양한 목적 (시작 / 종료, 입력 / 출력, 함수 호출 등)을 수행하는 개별 기능 블록으로 구성됩니다.
본질적으로 알고리즘은소스 데이터를 원하는 결과로 처리 할 때 특정 조치를 수행해야하는 순서의 볼륨. 이 용어와 함께 알고리즘 개념이 종종 사용됩니다. 특정 문제를 해결하기 위해 시퀀스를 컴파일하기위한 일련의 방법 및 기술이 이해된다.
알고리즘은 종종 다음과 같이 사용되지 않습니다컴퓨터에 대한 지침이지만 모든 작업의 구현 다이어그램. 이를 통해이 솔루션 방법의 효과와 효율성을 확인하고 가능한 오류를 수정하며 컴퓨터에 들어가기 전에도 다른 유사한 솔루션과 비교할 수 있습니다. 또한, 알고리즘은 PC에서 정보 처리 프로세스를 추가로 구현하기 위해 프로그래밍 언어로 작성되어야하는 프로그램을 컴파일하기위한 기초를 제공한다. 현재까지, 이러한 서열을 구성하는 두 가지 실용적인 방법이 명성을 얻고있다. 첫 번째는 단계별 구두 설명이고 두 번째는 문제 알고리즘의 블록 다이어그램입니다. 그들 중 첫 번째는 훨씬 적은 분포를 받았습니다. 이것은 명확성과 상세 성이 부족하기 때문입니다. 반대로 두 번째 방법은 매우 편리한 이미지 시퀀스 수단입니다. 교육 및 과학 문헌 모두에 널리 배포됩니다.
프로그램 알고리즘의 블록 다이어그램은특정 작업의 성능과 이들 간의 관계를 규정하는 일련의 그래픽 심볼. 이러한 각각의 이미지 내에, 수행 될 작업에 대한 정보가 표시된다. 시퀀스 디자인 시퀀스뿐만 아니라 그래픽 심볼의 크기와 구성은 GOST 19003-80 및 GOST 19002-80에 의해 규제됩니다.
알고리즘 순서도의 주요 요소를 고려하십시오 (사진은 개요의 예를 제공합니다).
1. 프로세스는 계산 작업 또는 일련의 작업입니다.
2. 해결책-주어진 상태의 검증.
3. 수정-주기의 제목.
4. 사전 정의 된 프로세스는 절차에 대한 호소입니다.
5. 문서-인쇄 및 데이터 출력.
6. 펀치 카드-정보 입력.
7. 입력 / 출력-데이터의 입력 / 출력.
8. 커넥터-흐름 라인이 끊어졌습니다.
9. 시작 / 종료-시작, 종료, 중지, 시작, 진입 및 종료는 보조 알고리즘에서 사용됩니다.
10. 주석-설명 레이블을 배치하는 데 사용됩니다.
11. 수직 및 수평 흐름-시퀀스 방향, 블록 간 통신 라인.
12. 병합-스트림 결합.
13. 삽입 커넥터-다른 시트로의 전환을 상징하는 표시.
알고리즘의 블록 다이어그램 구성은 다음에 따라 수행됩니다.GOST에서 규정 한 특정 요구 사항. 예를 들어, 그래픽 심볼을 연결할 때 수평선 또는 수직선 만 사용됩니다. 오른쪽에서 왼쪽으로, 아래에서 위로 향하는 스트림은 반드시 화살표로 표시됩니다. 다른 라인은 표시되지 않을 수 있습니다. 병렬 스트림 사이의 거리는 3mm 이상이어야하고 나머지 요소 사이는 최소 5mm 이상이어야합니다. 블록 크기는 5의 배수 여야합니다. 그래픽 심볼의 가로 대 세로 비율은 1.5입니다. 때로는 두 개가 허용됩니다. 설명의 편의를 위해 그래픽 기호에 번호를 매겨 야합니다. 링크의 특성에 따라 선형, 순환 및 분기 구조 알고리즘의 블록 다이어그램 유형이 구별됩니다.
알고리즘의 원리를 더 잘 이해하기 위해가장 단순한 자동화 장치를 고려할 수 있습니다. 그것은 세포로 구성된 기억을 포함합니다; 쓰기 / 읽기 헤드; CPU. 그러한 장치의 원리는 무엇입니까? 프로세서로부터 주문을받은 헤드는 데이터를 셀에 쓰거나 상수를 읽습니다. 가장 간단한 경우에는 산술 숫자가됩니다. 또한 상수는 데이터 구조, 문자열 등이 될 수 있습니다. 변수는 정보가 저장되는 메모리 셀입니다. 알고리즘을 실행하는 동안 다양한 데이터가 이러한 셀에 기록 될 수 있습니다. 개인용 컴퓨터 및 기타 전자 제품은이 원리를 기반으로합니다. 작업을 수행하는 알고리즘은 이러한 메모리 셀에 정보를 읽거나 쓰는 명령 집합입니다.
배열은 또 다른 변형입니다.인덱싱 된 변수. 사실, 그것은 공통 지정으로 통합 된 세포 모음입니다. 배열은 2D, 3D 등을 구분하며 가장 간단한 것은 일련의 순차적 셀입니다. 이러한 배열에는 자체 이름이 있습니다. 각 요소에는 자체 번호-색인이 있습니다. 셀에 기록 된 상수를 배열 요소라고합니다.
요소 배열에 따른 2 차원 유형행렬과 비슷합니다. 이러한 배열의 셀은 두 개의 인덱스가 특징입니다 (셀 번호가있는 체스 판과 유사 함). 같은 원리로 입체적이고 더 많은 구조가 실현됩니다.
이 유형의 순서도 순서알고리즘 (이 기사에서는 예제가 제공됨)은 처음부터 끝까지 위에서 아래로 실행하는 것이 특징입니다. 이 경우 자동화 장치는 지정된 작업을 단계적으로 수행합니다. 모든 작업은 프로세서에 의해 처리됩니다. 계산 외에도 필요한 경우 읽기 / 쓰기 헤드를 어디에, 무엇을 써야하고, 어디에서 읽어야하는지 순서를 지정합니다. 최종 결과는 메모리 셀에 기록되며 각 셀에는 자체 인덱스가 있고 자체 상수를 저장합니다.
실제로 선형 유형은 매우 드뭅니다. 주어진 조건에 따라 한 가지 또는 다른 가지를 따라 흐르는 시퀀스를 구성하는 것이 종종 필요합니다. 분기 유형 알고리즘의 블록 다이어그램에는 특정 조건이 확인되는 "솔루션"요소가 포함되어 있으며 더 많은 분기가있을수록 시퀀스에 더 많은 분기가 있습니다.
방법을 고려하십시오분기 알고리즘. 함수를 예로 들어 봅시다 : z = y / x. 이 방정식에는 하나의 제한이 있다는 조건에서 볼 수 있습니다. 0으로 나눌 수 없습니다. 따라서이 솔루션을 제외하고 발생한 오류에 대해 사용자에게 경고해야합니다. 먼저 알고리즘의 블록 다이어그램이 작성됩니다. 7 개의 블록으로 구성됩니다. 첫 번째 그래픽 기호는 "Start"이고 두 번째는 "Enter"입니다. 여기서는 X 및 Y 값을 설정해야합니다. 그런 다음 "Decision"블록이 이어지며 조건이 확인됩니다. X = 0. 이 경우 자동 장치는 상수로 셀을 확인하고 입력 된 값이 일치하면 알고리즘의 결정은 "예"분기를 따라 진행됩니다. 이 경우 제어는 네 번째 블록으로 전달되고 기계는 "오류"를 발행하고 작업은 일곱 번째 기호 "종료"에서 종료됩니다. 테스트 결과가 음성이면 다섯 번째 그래픽 심볼에서 분할 과정을 수행하고 Z의 값을 결정하고 여섯 번째 블록에서는 결과를 화면에 표시합니다.
종종 문제를 해결할 때 반복해야합니다.변수의 다른 값에 대해 동일한 종속성에 따라 모든 작업을 수행하고 회로의 동일한 섹션을 여러 번 통과합니다. 이러한 섹션을 일반적으로주기라고하며 알고리즘을 순환이라고합니다. 이 방법을 사용하면 시퀀스 자체가 크게 단축됩니다. 순환 알고리즘은 일반적으로 이전에 알려지지 않은 패스와 알려진 횟수의 두 가지 유형으로 나뉩니다.
블록 다이어그램을 제공하는 예를 고려하십시오.미리 알 수없는 수의 패스가있는 알고리즘. 이렇게하려면 문제를 해결해야합니다. 일련의 자연수 중 가장 작은 구성원 수를 나타내며 그 합계는 수 K를 초과합니다. 알고리즘의 블록 다이어그램은 8 개의 기호로 구성됩니다. 먼저 숫자 K (No. 2)의 값을 입력합니다. 그런 다음 블록 3에서 변수 P는 "1"값을 수신합니다. 이는 자연수 계산이 시작됨을 의미합니다. 그리고 처음의 누적 합계 C는 "0"값을 얻습니다. 또한 제어는 명령이 실행되는 다섯 번째 블록으로 전송됩니다 : С = С + П. 즉, 셀 C와 P의 값이 합산되고 결과가 C로 덮어 씁니다. 블록 6 에서이 시퀀스의 첫 번째 항을 추가 한 후 조건이 확인됩니다. 합계가 지정된 수 K를 초과합니까? 조건이 충족되지 않으면 제어가 네 번째 블록으로 전송되어 변수 P에 하나가 추가되고 블록 # 5로 다시 전환됩니다. 이 절차는 조건이 충족 될 때까지 계속됩니다. C> K, 즉 누적 금액이 지정된 값을 초과합니다. 변수 P는 루프 카운터입니다. 그런 다음 작업 결과가 인쇄되는 블록 7로 전환됩니다.
종종 세트에 대한 알고리즘 솔루션으로작업을 수행하려면 본문에 다른주기를 포함하는주기를 만들어야합니다. 이것은 표준으로 간주됩니다. 이러한 요소를 중첩 루프 구조라고합니다. 그들의 순서는 상당히 클 수 있습니다. 필요한 문제를 해결하는 방법에 의해 결정됩니다. 예를 들어, 1 차원 배열을 처리 할 때 일반적으로 알고리즘의 블록 다이어그램이 중첩 루프없이 구축됩니다. 그럼에도 불구하고 많은 경우 이러한 문제를 해결할 때 그러한 솔루션을 선택하는 것이 필요합니다. 첫 번째 (외부) 루프를 포함하여 모든 중첩 루프는 이름이 다른 카운터를 포함해야합니다. 루프 외부에서는 일반 변수로 사용할 수 있습니다.
이 유형의 시퀀스는 다음과 유사합니다.언어 루틴. 보조 알고리즘에는 형식이라고하는 이름과 매개 변수가 있습니다. 이름은 다른 많은 것과 구별하기 위해 주어지며 매개 변수는 출력 및 입력 수학 함수로 사용됩니다. 필요한 값의 전체 범위가 고갈되는 방식으로 선택됩니다. 종종 하나의 동일한 형식 매개 변수가 입력이자 출력입니다. 예를 들어, 이러한 알고리즘에서 처리를위한 배열을 입력으로 제공 할 수 있습니다. 그리고 결과 부분에서 수정 된 형식으로 출력 매개 변수로 표시 될 수 있습니다. 보조 유형의 알고리즘 중에서 기능과 절차가 구별됩니다.
이 용어는 일반적인 계획의 분해로 이해됩니다.보조 (기능 및 절차) 및 머리에 대한 알고리즘. 이 방법은 알고리즘이 블록 다이어그램으로 제공 될 때 매우 간단합니다. 먼저 주요 작업을 담당하는 섹션이 여기에서 분리됩니다. 가장 어려운 단계는 최상위 기능 및 절차로 공식화됩니다. 그런 다음 기본 하위 수준 섹션으로 나뉩니다. "복잡한 것에서 간단한 것으로"원칙이 여기에서 작동합니다. 이것은 알고리즘이 가장 간단한 요소로 구문 분석 될 때까지 수행됩니다. 일반적으로 시퀀스 분해 솔루션은 데이터 입력, 배열 정렬 및 정렬 된 배열의 출력의 세 가지 주요 단계로 구성됩니다. 첫 번째 단계와 마지막 단계는 기본 특성으로 인해 분해 할 필요가 없으므로 헤드 알고리즘에서 수행됩니다. 그러나 두 번째는 매우 복잡한 독립적 인 계산 조각이므로 일반적으로 별도의 블록에 표시됩니다. 순서대로 정렬 단계는 두 부분으로 나뉩니다. 절차 수행 필요성 결정 (N – 1)-주어진 배열을 여러 번 통과하고 해당 배열의 고려 된 조각에서 가장 작은 요소를 찾고 섹션의 초기 요소를 사용하여 후속 재배치합니다. 마지막 단계는 여러 번 반복되므로 별도의 절차로 공식화됩니다.