학습 요약 셋째 주 2019-2020-1 학기 20192417 "사이버 보안 전문가, 소개"

네 번째 층 프로그래밍

제 6 장, 낮은 수준의 프로그래밍 언어와 의사 코드
하는 "컴퓨터 시스템 무엇입니까"에서 초점 "어떻게 컴퓨터 시스템을 사용하는가."

6.1 컴퓨터 조작
1. 컴퓨터 정의한다 : 컴퓨터는, 저장 및 검색하는 데이터를 처리하기위한 프로그램 가능 전자 장치 할 수있다.
2. 전용 명령을 변경할 필요가있는 데이터의 컴퓨터 처리를 변경한다.
3. 저장 장치는 컴퓨터의 검색 및 처리 동작이 데이터상에서 수행 될 수있다.
시스템 레벨 4. 프로세스 성능 연산부 및 데이터 값에 대한 논리 연산을 포함한다.

6.2 기계 언어
프로그래밍 (1) 컴퓨터 명령 실행은 진정으로 기계어 명령, 컴퓨터의 하드 디스크의 지시로 작성되었습니다.
2. 컴퓨터 언어 (기계어) 치화 언어를 구성하는 컴퓨터에 의해 실행되는 직접 사용될 수있다.
3. 너무 많은 시간이 같은 프로그램을 작성 주로하기 때문에, 기계 언어로 작성된 몇 가지 프로그램이 있습니다.

펩 / 8 : 가상 머신
가상 머신 1. (가상 컴퓨터 (기계)) : 실제 머신에 가상 머신 설계 중요한 기능을 시뮬레이션합니다.
2.Pep / 8 (39) 기계어 명령. 이것은 각 펩 / 8 프로그램 명령이 시퀀스의 조합에 의해 얻어 질 수 있어야한다는 것을 의미한다.
펩 / 8 중요한 기능을 반영
메모리 셀 1.Pep / 8 저장 공간의 65,536 바이트로 구성되어있다. 이 바이트 65535 (10 진수)로 0부터 번호가 매겨집니다. 워드 길이는 펩 / 8는 2 바이트 또는 16 비트이다. 산술 / 논리 유닛 (ALU) 또는 산술 / 논리 유닛 데이터로부터 흐르는 데이터의 이러한 흐름은 길이가 16 비트이다.
: / 8 3.Pep 일곱 메모리를 가지고, 우리는 그 중 세 가지에 초점을
실행하는 방법에 대한 다음 명령을 포함하는 프로그램 카운터 (PC)의 주소를 입력합니다.
명령의 사본을 포함 명령 레지스터 (IR)가 실행된다.
배터리 (레지스터)은 특정 저장 레지스터.

명령 포맷의
지시는 두 부분, 즉, 8 비트의 명령 및 지정 (선택)의 16 비트 피연산자 지정자 구성된다.
위치 명령 지정자는 무엇을하고 피연산자를 해석하는 방법을 설명했다. 피연산자 지정자 (두 번째 및 세 번째 바이트에 저장 명령) 오퍼랜드의 어드레스 또는 자체 피연산자. 일부 지침에는 운영자 지정이 없습니다.
3 비트 어드레싱 모드 지시자 :
직접 어드레싱 (I) (000) 명령어 피연산자 지정자 오퍼랜드에 저장된다.
직접 어드레싱 (d) (001) : 메모리 오퍼랜드 어드레스에 저장된 명령 이름 지정 조작이 위치한다.
아니 이러한 명령어 피연산자 지정자 즉 메타 - 인스트럭션 심볼 길이는 1 바이트이며, 동작하지 않고, 모나드 지시 함.

명령들의 일부 예
0000 : 실행 중지
1100 : 레지스터에 피연산자로드
1110 : 레지스터 (A)의 내용을 오퍼랜드 저장하는
오퍼랜드 레지스터 A가 첨가된다 : 0111
: 1000의 레지스터 A의 값은 감산을 로 동작 횟수의 값
01001은 : 문자 입력 피연산자
문자 출력 피연산자 : 01010을

예 6.3 프로그램
예 : 화면에 표시 "안녕하세요". 여섯 설명 : 5 표시 문자에 대한 최종 명령에 관한 것이다.
우리는 4 비트의 연산 코드로 구성되어 있으므로, 이진 연산자 지정자를 구성 지정자 및 어드레싱 모드 지시자 (3)의 구성을 등록했습니다.
우리는 같은 문자의 그룹을 참조 따옴표를 사용하여 "안녕하세요", 작은 따옴표를 사용하는 단일 문자를 나타냅니다.

6.3.1 수동 시뮬레이션

/ 8 시뮬레이터 6.3.2 펩
프로그램을 종료 바이트 16 진법 각 바이트 사이의 공간으로 구분 코드, ZZ에 의해 입력 바이트를 필요로하는 프로그램을 실행한다.
로더 (로더) : 기계 언어 부분을 읽고 메모리에로드 소프트웨어.

6.4 어셈블리 언어
어셈블리 언어 (어셈블리 언어) : 낮은 수준의 언어는 니모닉은 특정 컴퓨터의 기계어 명령을 나타냅니다.
어셈블러 (어셈블러) : 기계 코드 프로그램으로 어셈블리 언어 프로그램을 번역합니다.

6.4.1 펩 / 8 어셈블러 언어
펩 / 8 어셈블러 언어에서는, 각 레지스터는 편지 나 또는 D 설명 모드 지정 어드레스, 오퍼랜드는 16 진수, 설명 0X를 연산 코드를 갖는다.
펩 / 8 어셈블리 언어 니모닉은 우리 소수점 입력과 출력을 할 수 있습니다, DECI과 데코를 제공합니다.

6.4.2 어셈블러 명령은
명령 번역하고 프로그램에서 사용 지침의 번역 :이 개 명령의 유형이다.
어셈블러 설명서 (어셈블러 지시어) : 명령 인터프리터가 사용된다.

어셈블리 언어 버전 6.4.3 안녕하세요 프로그램
의견 (코멘트) : 독자의 프로그램에 대한 설명 텍스트입니다.
입력 어셈블러는 어셈블리 언어로 작성된 프로그램입니다, 기계 코드의 출력로 작성된 프로그램입니다.

새로운 프로그램을 6.4.4

6.4.5 프로그램 분기 갖는
프로그램 카운터가 프로그램 카운터를 변경할 수 다음에 실행해야하는 BR 명령 어드레스로 설정되어 있는지를 보여주고있다.

순환 프로그램 6.4.6
메모리 뱅크 0 중 하나로 카운터 (카운터). (해시 마크)

6.5 표현 알고리즘
알고리즘 (알고리즘) : 결제 계획이나 프로그램 또는 문제를 해결하기위한 단계의 논리적 순서의 요약.
의사 (의사) : 산술 식 언어입니다.

6.5.1 의사 코드 기능이
없는 특정 의사 코드 구문 규칙하지만,하지만, 다음과 같은 개념을 나타내야합니다 : 변수 할당, 입력 / 출력 선택 및 반복.
부울 식 (부울 표현식) : 참 또는 거짓 표현으로 평가했다.

6.5.2 의사 코드 알고리즘의 실행
6.5.3 쓰기 의사 코드 알고리즘
(책상 검사) 데스크탑 검사 : 종이에 전체 디자인을 확인 이동합니다.

6.5.4 번역 의사 코드 알고리즘을
의사 코드 알고리즘을 변환하는 방법은 언어의 종류로 변환합니다 알고리즘에 따라 달라집니다.
어셈블리 언어의 범위가 제한되어 있기 때문에, 그래서 의사 코드 문은 여러 펩 / 8 문이 필요합니다.

6.6 테스트
테스트 계획 (시험 계획) : 문서 프로세스를 테스트하는 방법에 대해 설명합니다.
코드 커버리지 (라이트 박스) 시험 방법 (코드 커버리지 (투명 박스 ) 테스트) : 코드를 실행하는 시험 방법 절차 또는 서브 루틴에서 테스트 모든 내용.
데이터 오버레이 (블랙 박스) 분석 (데이터 범위 (블랙 박스 ) 시험) : 프로그램 또는 서브 루틴에 기초하여 모든 가능한 입력 데이터를 테스트하는 블랙 박스 테스트 방법으로서 코드.
여부 프로그램 예상 결과를 확인하기 위해 테스트 케이스에 규정 된 테스트 계획 : 테스트 (테스트 계획 구현)을 달성 할 계획이다.

제 7 장, 문제 해결 및 알고리즘 설계

문제를 해결하는 방법 7.1

7.1.1가 질문에 대한 질문
일반적인 문제 :
나는이 문제에 대해 알고 하시나요?
해결책은 무엇인가?
어떤 예외가 존재 하는가?
어떻게 해결책을 발견 알 수 있습니까?
폴리 -A 목록 "그것을 해결하는 방법":
첫 번째 단계 : 우리는 문제를 이해해야합니다.
두 단계 : 정보와 솔루션 사이의 링크를 찾을 수 있습니다. 당신이 직접 링크를 찾을 수없는 경우 보조 문제를 고려할 수 있습니다. 궁극적으로,이 솔루션은 있어야한다.
세 번째 단계 : 프로그램 실행.
4 단계 : 분석 솔루션을 얻을.

7.1.2 익숙한 상황을 찾아

7.1.3 분할 및 정복
보통, 우리는 여러 개의 작은 단위로 큰 문제는이 원칙 컴퓨팅에 특히 적합하다, 해결 될 수있는 것 : 혼자 해결할 수있는 작은 문제가 큰 문제를 분리하십시오.
작업은 하위 작업으로 나눌 수 계속 그렇게 될 수있는 여러 하위 작업 및 하위 작업으로 나눌 수 있습니다. 각 하위 작업이 지금까지 얻을 수 있습니다 때까지, 분할 및 정복을 재사용 할 수 있습니다.

7.1.4 알고리즘
알고리즘 (알고리즘) 제한된 시간 동안 명령들의 명확한 제한 데이터에 문제 또는 서브 문제를 해결한다.

프로세스 해결 7.1.5 컴퓨터 문제
컴퓨터 문제 해결 과정은 네 단계, 즉 분석 및 해석 단계, 알고리즘 개발 단계, 구현 단계 및 유지 보수 단계로 구성되어 있습니다.

分析和说明阶段
       分析                    理解(定义)问题
       说明                    说明程序要解决的问题
算法开发阶段
       开发算法             开发用于解决问题的逻辑步骤序列
       测试算法             执行列出的步骤,看它们能否真正地解决问题
实现阶段
       编码                    用程序语言翻译算法(通用解决方案)
       测试                    让计算机执行指令序列。检查结果,修改程序,知道的得到正确答案
维护阶段
       使用                    使用程序
       维护                    修改程序,使它满足改变了的要求,或者纠正其中的错误

7.1.6 방법
하향식 접근 방식은 약 4 단계로 나눌 수 있습니다.
1. 문제 분석
2. 목록에게 주요 업무
나머지 모듈 3. 준비
4. 구조 조정을하고 필요에 따라 재 작성

7.1.7 테스트 알고리즘을
수학적 문제 해결의 목표는 문제에 대한 구체적인 답을 생성하는 것입니다 따라서, 검사 결과는 대답의 출시를 테스트하는 과정과 동일합니다. 그러나 목표를 해결 컴퓨터 문제는 적절한 절차를 만드는 것입니다.

7.2 파라미터 간단한 알고리즘은
간단한 (원자) 변수가 분리 될 수없는 것과, 하나 개의 장소에 기억 된 값이되어있다.

의 선택과 7.2.1 알고리즘

사이클과 7.2.2 알고리즘
회수 제어 루프는 :
반복 횟수를 세는 공정 제어 루프가 지정 될 수있다 1.이 메커니즘은 단순한 기록 공정 루프는 다시 회수를 반복주기가 종료되었는지 아닌지를 검출 개시 전에 반복된다.
루프 제어 변수라는 특별한 변수를 사용하여 세 개의 상이한 부분 2. 이러한 사이클. 첫번째 부분은 초기화된다 : 루프 제어 변수의 초기 값으로 초기화된다. 두 번째 부분은 테스트는 다음 루프 제어 변수가 특정 값에 도달했는지? 1 루프 제어 변수를 증가 : 세 번째 부분은 증가한다.
3.while 사이클 시험주기 전에 호출된다.
4. 끝이 없을주기는 무한 루프라고합니다.
이벤트 제어 루프
1. 정의 : 루프의 반복 수는 순환 루프 자체 내에서 이벤트에 의해 제어됩니다.
이벤트가, 이벤트가 테스트해야, 이벤트가 업데이트해야합니다 초기화해야합니다 2. 문은 이벤트 제어 사이클을 구현하는 동안 사용이 프로세스는 여전히 세 부분으로 나누어 져 있습니다.

중첩 구조 (중첩 구조) 또 다른 제어 구조의 구조는 중첩 로직 (중첩 로직)로 알려진 제어 구조를 포함한다.

또 다른 예 : 디지털의 제곱근 찾기
알고리즘의 세부 단계는 확실하지 않다 : 레벨 단계 (추상 단계).
특정 단계 (콘크리트 단계) : 완전히 명확한 알고리즘 단계의 세부 사항.

7.3 복잡한 변수
편지에 인용 된 문자열을했다.

7.3.1 배열
1. 배열 : 균일 항목의 유명한 수집.
2.이 프로젝트는 수집 위치의 인덱스라고합니다.
검색, 분류 및 처리 : 관련 알고리즘의 배열 3. 세 가지 카테고리로 나누어진다.

7.3.2 기록
레코드 이름으로 각각의 항목에 액세스 할 수 이종 프로젝트의 공지의 집합이다.
이는 정수, 실수, 문자열, 또는 다른 유형의 데이터의 세트를 포함 할 수있다.

7.4 검색 알고리즘
7.4.1 순차 탐색
정렬 된 배열의 검색 순서는 7.4.2
7.4.3 이진 검색
이진 검색은 배열 순서의 처음부터 앞으로 시작했지만, 배열의 중간에서 시작되지 않습니다.
이진 검색 (이진 검색) : 정렬 된 목록에서 조회 작업 프로젝트는, 비교하여 검색 범위의 대부분을 제외 할 수 있습니다.

7.5 주문
이 부분은 여러 가지 다른 정렬 알고리즘을 설명합니다.
7.5.1 선택 정렬
정렬 알고리즘의 선택은 두 개의 풀리스트 (어레이)에 대한 공간을 필요로 간단하지만, 결함이있다. 심지어 분명히 매우 비싼 공간을 메모리 공간 할당을 고려하지 않고.
7.5.2 버블 정렬
1. 버블 정렬 방법을 분류하는 것은 옵션이지만 다른 방법으로 최소를 찾을 때. 그것은 요소의 인접 쌍을 비교하여, 배열의 마지막 요소로부터 시작 이하 상기 원소보다 다음 요소하면, 두 요소의 위치를 교환했다.
2. 거품 종류의 방법의 매우 느린 종류입니다.
7.5.3 정렬은 삽입
정렬 기포 거품의 처리와 동일한 순서로 부품 소자. 위치가 발견되면, 소자 어레이보다이 위치의 작은 요소를 삽입,이 위치에 새로운 요소가 될 것이다.
현재의 구성 요소는 정렬 부에 소자이다.

7.6 재귀 알고리즘
재귀 알고리즘 : 한 알고리즘 수시로 자신의 알고리즘을 사용하여.
재귀 (재귀) : 자신의 알고리즘을 호출하는 기능.
기본 상황 (답 알려진 경우) 및 일반 (자신을 호출 솔루션의 작은 버전의 문제를 해결하기 위해) : 각 재귀 알고리즘은 적어도 두 개의 사례를 가지고있다.

7.6.1 서브 루틴 문
코드라는 곳이라는 단위를 호출하는 것으로 보인다.
서브 루틴 두 가지 형태, 공칭 코드 실행 만 특정 작업을 위해, 하나는 작업을 수행 할뿐만 아니라 장치라고합니다 (서브 루틴에 의해 반환되는 값)에 값을 반환하지 않습니다.

7.6.2 계승 재귀 적으로
0과 자신의 수와 모든 숫자의 제품 : 수의 정의 계승. N! N = (N - 1)!
1. 0 계승 사이즈 요소 수의 계승을 계산하는 것이다.
기본적인 상황이다
. (0) = 1 팩토리얼
일반적인 상황이다
계승 (N) = NFactorial (N - 1).

7.6.3 재귀 이진 검색

7.6.4 빠른 정렬
빠른 정렬 알고리즘의 기본 개념 : 두 개의 작은 종류의 목록 빠르고 큰 목록이 정렬되는 것보다 쉽다.
이 알고리즘은 일반적으로 기본 전략이며, 상대적으로 빠르게 정렬 할 수있는 데이터 요소의 목록에서 이름을 파생 "분할 및 정복."
데이터가 무작위로 배열하는 경우, 그것은 좋은 빠른 정렬 정렬 방법이다.

7.7 몇 가지 중요한 아이디어

7.7.1 정보 숨기기
정보 숨기기를 (정보 은닉) : 이러한 세부 사항에 대한 액세스를 제어하는 은폐 모듈의 실행의 세부 사항.
7.7.2 추상적 인
정보는 추상화의 비밀 연습의 숨겨진 세부 사항 숨겨진 세부 사항의 결과입니다.
추상 (추상) : 모델 복잡한 시스템, 관찰자에 필요한 경우에만 세부 사항을 포함하는 것을 특징으로하는 방법.
추상 데이터 (데이터 추상화) 논리 데이터의 조회 및 구현으로부터 분리된다.
추상적 프로세스 (절차 추상화) 연산의 논리적 뷰와 구현을 분리.
추상화 (제어 추상화) 논리 제어 구조의보기 구현으로부터 분리된다.
제어 구조 (제어 구조) : 정상 유량 제어 명령의 순서를 변경하기 위해 사용.

일 이름 7.7.3
데이터와 이름을 처리 할 수는,이 이름은 식별자라고합니다.

7.7.4 시험
테스트 프로그램의 모든 단계에서 매우 중요하다, 거기에 두 가지 기본 테스트 분류 : 화이트 박스 테스트, 코드 자체를 기반으로, 블랙 박스 테스트, 테스트에 따라 모든 가능한 입력 값.

문제 : 꽤 종류에 대해 이해하지,
제곱근 알고리즘, 엡실론의 초기 값은에 0.001 세트보다 크지? 4로 나눈 제곱 원래의 추측 이외에 더 나은 무엇입니까?
추상 의미는 컴퓨터 알고리즘의 분야 그것은 수를 확인하는 것입니다? P154 마지막 단락은 확실히 이해하지, 조금 모순 된 느낌을 넣어.
P148 최고 "대신 루프 알고리즘을 실행 사용"을 위해 무엇을 의미합니까?

추천

출처www.cnblogs.com/zjh6/p/11723216.html