작업을 완료하기 위해 알아야 할 사항. 컴퓨터 과학의 OGE 문제에 대한 자세한 솔루션 날짜 표는 숫자에 대한 데이터를 나타냅니다.

데이터 처리:

  • 알고리즘, 알고리즘의 속성, 알고리즘 작성 방법. 흐름도. 프로그래밍 소개.
  • 알고리즘 디자인.

이는 컴퓨터 과학 분야 주요 주 시험(OGE)의 테스트 과제 10번이 생성되는 주제입니다.

10 (B) (파트 1, 고급 수준 - 과제는 수험자가 독립적으로 일련의 기호 형태로 답변을 공식화하고 기록하는 작업, 완료 시간 - 6분, 작업 완료를 위한 최대 점수 - 1)을 포함합니다. 이 작업에 답할 때 시험 중에 숙달 여부가 테스트되는 교육 수준 요구 사항: 정보 개체 및 프로세스의 수치 매개 변수, 수행 능력을 평가합니다. 라운드 로빈 알고리즘프로그래밍 언어 중 하나로 숫자 배열을 처리합니다.

작업을 완료하기 위해 알아야 할 사항:

  • 정렬- 이것은 배열에서 요소의 위치를 ​​결정하는 인덱스로 정렬된 동일한 유형의 요소 집합(컬렉션이라고 함)입니다.
  • 프로그램에서 이를 사용하기 전에 배열을 설명해야 합니다. 이름, 배열 요소 수 및 해당 유형을 지정해야 합니다.

var<имя_массива>:정렬[<мин_знач_индекса>. . <макс_знач_индекса> ] ~의<тип_элементов>;

예: 기록하다
var A: 정수 배열;
이는 10개의 정수 요소로 구성된 A라는 배열이 제공된다는 의미입니다.

  • 키보드에서 각 요소의 값을 입력하거나 요소에 일부 값을 할당하여 배열을 채울 수 있습니다.
  • 배열 요소를 참조하려면 대괄호, 표기법을 사용하세요. 일체 포함]숫자(인덱스) i를 갖는 배열 A의 요소를 나타냅니다.
  • 행렬(2차원 배열)은 동일한 유형의 요소로 구성된 직사각형 테이블입니다.
  • 행렬의 이름이 A인 경우 역 A는 i행과 k열의 교차점에 있는 요소를 나타냅니다.

​문제 해결의 예:
Dat 테이블에는 학급 학생 수에 대한 데이터가 저장됩니다(Dat - 1학년 학생 수, Dat - 2학년 학생 수 등). 다음 프로그램의 결과로 어떤 숫자가 인쇄될지 결정하십시오. 프로그램 텍스트는 세 가지 프로그래밍 언어로 제공됩니다.

알고리즘 언어 기초적인 파스칼

알그
시작
셀탭 Dat
정수 k, m
데이터 := 20; 데이터 := 25
데이터 := 19; 데이터 := 25
데이터 := 26; 날짜 := 22
데이터 := 24; 데이터 := 28
데이터 := 26; 날짜 := 21
날짜 := 27
m:= 0
1에서 11까지의 k에 대한 nc
Dat[k] > 22이면
m:= m + 1
모두
KT
출력 m
범죄자

DIM Dat(11) AS INTEGER
DIM k,m정수로
Dat(1) = 20: Dat(2) = 25
Dat(3) = 19: Dat(4) = 25
Dat(5) = 26: Dat(6) = 22
Dat(7) = 24: Dat(8) = 28
Dat(9) = 26: Dat(10) = 21
데이터(11) = 27
m = 0
k = 1 ~ 11의 경우
IF Dat(k) > 22 THEN
m = m + 1
종료 IF
다음k
인쇄 m

Var k, m: 정수; Dat: 정수 배열; 시작 날짜 := 20; 데이터 := 25; 데이터 := 19; 데이터 := 25; 데이터 := 26; 데이터 := 22; 데이터 := 24; 데이터 := 28; 데이터 := 26; 데이터 := 21; Dat > 22이면 시작 m:= m + 1 end; writeln(m) 종료합니다.

솔루션(1방향):

  1. 프로그램을 단계별로 살펴보겠습니다. 먼저, 사용될 변수(변수 k 및 m)와 11개 요소(요소 번호는 1부터 11까지 지정됨)를 포함하는 Dat 배열이 선언됩니다.

주의: 다음에 설명된 Dat 배열에서 기본 언어번호 매기기는 첫 번째 요소가 아닌 0부터 시작하므로 12개의 요소가 있습니다.

  1. 다음은 배열을 채우는 것입니다. 예를 들어, 인덱스 1의 배열 요소에는 값 20이 할당되고, 인덱스 2의 요소에는 25가 할당됩니다. 결과적으로 결과 배열은 다음과 같이 표현될 수 있습니다.

어레이 데이터

색인

의미

  1. 변수 m에는 값 0이 할당됩니다. 그 후 매개변수 k가 있는 루프가 시작되고 k는 1단계에서 1에서 11까지 변경됩니다.

루프 본문에서 조건이 확인됩니다.

  1. 인덱스 k에 있는 배열 요소의 값은 숫자 22와 비교됩니다. 배열 요소가 22보다 크면 변수 m은 1씩 증가합니다. 그렇지 않으면 아무 일도 일어나지 않습니다.
  2. 프로그램이 끝나면 변수 m의 값이 화면에 표시됩니다.
  3. 프로그램을 실행한 후 어떤 일이 일어나는지 살펴보겠습니다. 변수 m의 값은 루프에서 변경됩니다. 루프 이전에는 해당 값이 0입니다. 다음으로, 프로그램은 배열의 모든 요소를 ​​반복하여 숫자 22와 비교합니다. 그리고 배열 요소가 22보다 크면 변수 m은 1만큼 증가합니다. 따라서 우리는 배열의 모든 요소를 ​​계산해야 합니다. 22보다 큰 배열 - 그 수는 변수 m의 값과 같습니다. 이러한 요소는 7개가 있습니다. 이는 인덱스가 2, 4, 5, 7, 8, 9 및 11인 요소입니다.

주의: 요소 번호 6은 22와 같습니다. 하지만 이후... 비교가 엄격하기 때문에(">" 기호) 이를 고려하지 않습니다.

답: 7

솔루션(2방향 수동 스크롤):

결과 배열을 정신적으로 상상해보십시오.
어레이 데이터

색인

의미

연방 교육학 측정 연구소 / OGE 2015 - 2019의 데모 버전, 사양, 코드화 // 컴퓨터 과학 및 ICT - (http://fipi.ru)

  • Dracheva E. R., Grishina I. A. 컴퓨터 과학 GIA 준비 / E. R. Dracheva, I. A. Grishina // 파트 B - (http://giainformatika.ru/)
  • 케이 데이터[k](BASIC Dat(k)의 경우) 상태 확인데이터[k] > 22(BASIC Dat(k) > 22의 경우)
    0
    1 20 아니요
    2 25 1
    3 19 아니요
    4 25 2
    5 26 3
    6 22 아니요
    7 24 4

    Dat 테이블에는 민요 연주자 10명의 투표 수에 대한 데이터가 표시됩니다(Dat - 첫 번째 연주자에 대한 투표 수, Dat - 두 번째 연주자 등). 다음 프로그램의 결과로 어떤 숫자가 인쇄될지 결정하십시오. 프로그램 텍스트는 세 가지 프로그래밍 언어로 제공됩니다. 알고리즘 언어 BASIC Pascal alg nach celtab Dat 정수 k, m Dat := 16 Dat := 20 Dat := 20 Dat := 41 Dat := 14 Dat := 21 Dat := 28 Dat := 12 Dat := 15 Dat : = 35 m:= 0 nc for 1 ~ 10 if Dat[k]gt;m then m:= Dat[k] 모든 cc 출력 m con DIM Dat(10) AS INTEGER DIM k,m AS INTEGER Dat(1 ) = 16: Dat(2) = 20 Dat(3) = 20: Dat(4) = 41 Dat(5) = 14: Dat(6) = 21 Dat(7) = 28: Dat(8) = 12 Dat (9) = 15:Dat(10) = 35 m = 0 FOR k = 1 TO 10 IF Dat(k)gt;m THEN m = Dat(k) ENDIF NEXT k PRINT m Var k, m: 정수; Dat: 정수 배열; 시작 날짜 := 16; 데이터 := 20; 데이터 := 20; 데이터 := 41; 데이터 := 14; 데이터 := 21; 데이터 := 28; 데이터 := 12; 데이터 := 15; 데이터 := 35; m:= 0; k:= 1 ~ 10 do if Dat[k]gt;m then start m:= Dat[k] end; writeln(m); 끝.

    유제

    • 빈칸을 채우세요. 도와주세요, 제발:)
    • 프로메테우스를 구출한 영웅
    • 문제를 작성하고, 문제를 해결하고, 해결책을 적으세요.
    • 여러분, 도와주세요: (lg(x+√3)+lg(x-√3)=0
    • 결정을 도와주세요. 한 변의 길이가 12cm인 정사각형의 면적보다 9배 작은 경우 삼각형의 면적을 계산합니다.
    • 방정식 풀기 (8 5/27 - x) - 2 25/27 = 1 25/27
    • 팔린 농민의 이름은 무엇입니까?
    • 소녀는 새끼 고양이에게 먹이를 주기 시작했습니다. 그녀는 오트밀을 가져 왔고 그는 컵에서 돌아섰습니다. 그는 무를 받았을 때 그릇에서 돌아섰습니다. 베이컨 한 조각을 가져왔는데 새끼 고양이가 부족하다고 하네요. 텍스트에서 철자가 "강세 없는 모음..."인 단어를 찾으세요.

    데모 버전 프로젝트의 컴퓨터 과학 분야 OGE-2016 작업 10에 대한 솔루션을 제시합니다. 2015 데모와 비교하여 작업 10은 변경되지 않았습니다. 이는 알고리즘 언어(알고리즘, 알고리즘의 속성, 알고리즘 작성 방법, 순서도, 프로그래밍 소개, 알고리즘 구성)로 작성된 숫자 배열을 처리하기 위한 순환 알고리즘을 실행하는 능력에 대한 작업입니다. 이는 복잡성 수준이 높아진 작업이며 이에 대한 답변은 답변 필드에 작성해야 하는 정수입니다.

    작업 10의 스크린샷.

    운동:

    Dat 테이블에는 민요 연주자 10명의 투표 수에 대한 데이터가 표시됩니다(Dat - 첫 번째 연주자에 대한 투표 수, Dat - 두 번째 연주자 등). 다음 프로그램의 결과로 어떤 숫자가 인쇄될지 결정하십시오. 프로그램 텍스트는 세 가지 프로그래밍 언어로 제공됩니다.

    파스칼의 예

    Var k, m: 정수;
    Dat: 정수 배열;
    시작하다
    데이터 := 16; 데이터 := 20;
    데이터 := 20; 데이터 := 41;
    데이터 := 14; 데이터 := 21;
    데이터 := 28; 데이터 := 12;
    데이터 := 15; 데이터 := 35;
    m:= 0;
    k:= 1 ~ 10의 경우
    Dat[k]>m이면
    시작하다
    m:=날짜[k]
    끝;
    writeln(m);
    끝.

    이 프로그램은 10개의 숫자 배열을 만듭니다. 1부터 10까지의 루프에서 배열 요소의 값은 변수 m의 값과 비교됩니다. 배열 요소의 값이 변수 m의 값보다 엄격하게 큰 것으로 밝혀지면 변수 m에 배열 요소의 값이 할당됩니다(처음에는 루프 이전에 변수 m의 값이 0이었습니다).

    다른 말로 표현하자면, 우리는 다음을 얻습니다. 1부터 10까지의 각 민요 연주자에 대해 투표 수는 m 값과 비교됩니다. 투표 수가 m보다 크면 변수 m에 투표 수와 동일한 값이 할당됩니다. 주기를 실행한 결과, 참가자 중 한 사람에게 주어진 최대 투표 수를 나타내는 숫자 m을 얻습니다. m=41.

    우리가 이해하는 배열은 일반적인 테이블입니다. 테이블의 값은 정수, 실수, 문자열, 부울 값 등 동일한 유형이어야 합니다. 일반적으로 학교 과정에서는 정수 테이블의 문제가 고려됩니다. 테이블 요소는 메모리 근처에 위치하며 테이블의 일련 번호(인덱스)를 통해 액세스할 수 있습니다.

    1 2 3 4 5
    55 36 134 75 100

    A를 5개 요소로 구성된 테이블로 설정합니다. 그러면 A = 55, A = 36, A = 134, A = 75, A = 100

    Idol에서 테이블 작업을 하려면 테이블을 저장하기 위한 메모리를 할당해야 합니다.

    알그 나흐 셀타브 A

    테이블은 수동으로 채울 수 있습니다.

    A := 55 A := 36 A := 134 A := 75 A := 100

    요소가 많으면 루프( 루프 변수 프로그램 시작 부분에 선언해야 함):

    nc for i 1 ~ 5 입력 A[i] cc

    모든 테이블 요소의 값을 변경해야 하는 경우(예: 2배 증가) 루프를 사용하는 것이 더 좋습니다.

    1 ~ 5의 i에 대한 NC A[i] := A[i]*2 kc

    또한 루프에서 모든 테이블 요소 값의 출력을 수행합니다.

    1 ~ 5핀 A[i],ns cc의 경우 nc

    테이블에서 최대 요소의 값과 해당 번호 찾기

    참고: 최소 요소를 찾는 작업은 비교 기호에서만 다릅니다.

    작업은 여러 단계로 나뉩니다.

    1. 초기 최대값을 얻으려면 해당 번호를 기억하면서 테이블의 첫 번째 요소를 가져옵니다.

    아이맥스:= 1

    2. 다른 모든 요소를 ​​(두 번째부터 마지막까지) 확인합니다. 확인 중인 현재 요소가 최대값보다 크면 imax의 현재 요소 수를 기억합니다.

    A[i] > A이면 imax:= i 모든 kts인 경우 i에 대한 Nts는 2에서 5입니다.

    3. 발견된 최대 요소 수를 사용하여 최대값 자체를 표시합니다.

    핀 A

    프로그램의 전체 텍스트는 다음과 같습니다.

    Alg SearchMax start celtab A int imax, i nc for i from 1 to 5 input A[i] kts imax:= 1 nts for i from 2 to 5 if A[i] > A then imax:= i all kts 출력 A kts

    합계 찾기 및 평균값모든 테이블 요소

    먼저 금액의 초기 값을 설정해야 합니다.

    그런 다음 루프에서 요소의 값을 합계에 추가합니다.

    1에서 5까지의 i에 대한 nc:= s + A[i] cc

    모든 테이블 요소의 평균값을 요소 수에 대한 합계의 비율로 찾습니다.

    Sr:= s/5

    프로그램의 전체 텍스트는 다음과 같습니다.

    Alg SumAvg 시작 셀탭 A 전체 i, s things sr | 평균 숫자는 실수입니다 nc for i for 1 to 5 input A[i] kc s:= 0 nc for i for 1 to 5 s:= s + A[i] kc sr:= s/5 출력 “Sum of 모든 요소: ",s,ns 출력 "모든 요소의 평균값:",sr kts

    문제 해결의 예

    예시 1.

    Dat 테이블에는 민요 연주자 10명의 투표 수에 대한 데이터가 표시됩니다(Dat – 첫 번째 연주자에 대한 투표 수, Dat – 두 번째 연주자 등). 다음 프로그램의 결과로 어떤 숫자가 인쇄될지 결정하십시오.

    Alg start celtab Dat int k, m Dat := 16 Dat := 20 Dat := 20 Dat := 41 Dat := 14 Dat := 21 Dat := 28 Dat := 12 Dat := 15 Dat := 35 m: = 0 nc for 1 to 10 if Dat[k]>m then m:= Dat[k] 모든 kc 출력 m end

    프로그램이 시작될 때 출연자에 대한 투표 수가 테이블 셀에 기록됩니다.

    다음 프로그램 부분을 고려하십시오.

    M:= 0 nc(1부터 10까지의 k) Dat[k]>m이면 m:= Dat[k] 모두 kc

    루프에서 각 요소는 루프 이전에 0이었던 변수 m과 비교되는 것을 볼 수 있습니다. 확인 중인 현재 요소가 m보다 큰 경우 현재 요소의 값이 변수 m에 기록됩니다. 루프가 실행된 후 변수 m은 가장 큰 요소의 값을 저장합니다.

    즉, 프로그램은 모든 테이블 셀 중에서 최대값을 찾습니다. 이 요소 값은 Dat = 41입니다.

    답변: 41

    예 2:

    Alg start celtab Dat int k, m Dat := 7; Dat := 9 Dat := 10;Dat := 5 Dat := 6; Dat := 7 Dat := 9; Dat := 8 Dat := 6; Dat:= 9 m:= 0 nc(k의 경우 1부터 10까지) Dat[k]인 경우< 7 то m:= m + 1 все кц вывод m кон

    프로그램 시작 시 완료된 작업 수가 포함된 테이블이 채워집니다.
    그 후 변수가 도입됩니다. 값이 0입니다.

    루프에서 에게 1부터 10까지 선택: 학생이 완료한 과제의 수가 번호가 매겨져 있는 경우 에게 7보다 작으면 그러한 학생이 한 명 더 있습니다(m:= m +1).

    즉, 프로그램은 7개 미만의 과제를 완료한 학생 수를 계산합니다.

    우리에게는 Dat, Dat, Dat라는 세 명의 학생이 있습니다.

    답변: 3

    예시 3:

    Dat 테이블은 학생이 완료한 작업 수에 대한 데이터를 저장합니다(Dat 작업은 첫 번째 학생이 완료, Dat는 두 번째 학생이 완료 등). 다음 프로그램의 결과로 어떤 숫자가 인쇄될지 결정하십시오.

    Alg start celtab Dat int k, m Dat := 20; Dat := 25 Dat := 19; Dat := 25 Dat := 26; Dat := 22 Dat := 24; Dat := 28 Dat := 26; Dat := 21 Dat := 27 m:= 0 nc for 1 to 11 if k > 9이면 m:= m + Dat[k] 모든 kc 출력 m end

    요소 번호에 대한 루프 내부 에게 1부터 11까지(모든 학생에 대해)가 확인됩니다. 요소(학생)의 수가 9보다 크면 변수에 완료된 학생 과제 수가 추가됩니다.

    10번 학생(Dat)과 11번 학생(Dat)만이 조건을 통과한 것을 알 수 있다. 이에 따라 변수 이 학생들이 완료한 작업 수의 합계(0+21+27=48)를 저장합니다.

    답변: 48

    예시 4:

    Dat 테이블은 학생이 완료한 작업 수에 대한 데이터를 저장합니다(Dat 작업은 첫 번째 학생이 완료, Dat는 두 번째 학생이 완료 등). 다음 프로그램의 결과로 어떤 숫자가 인쇄될지 결정하십시오.

    Alg start celtab Dat int k, m, n Dat := 7; Dat := 9 Dat := 10; Dat := 5 Dat := 6; Dat := 7 Dat := 5; Dat := 8 Dat := 6; 데이터 := 9m:= 10; n:= 0 nc(k의 경우 1부터 10까지) Dat[k]인 경우<= m то m:= Dat[k] n:= k все кц вывод n кон

    요소 값은 10을 초과하지 않습니다.

    1부터 10까지의 k에 대한 nts는 배열의 모든 요소가 반복됨을 의미합니다(그 중 10개가 있습니다).

    상태 만약에 데이터[k]<= m 현재 요소의 값이 다음보다 작거나 같을 때 참이 됩니다. 중. 이 조건이 true이면 변수에 현재 요소의 값이 기록되고 변수 N- 그 사람 전화번호요.

    문제의 핵심은 찾는 것이다. 숫자최소한의 요소! (프로그램은 마지막에 값을 인쇄합니다. N).

    조건이 까다롭지 않아서 데이터[k]<= m, то будет найден 최신최소 요소 및 해당 번호(Dat).

    조건이 엄격한 경우 동일한 최소값 중 첫 번째(Dat)