Ваш регион: Москва
ЕГЭ-пробный

Задача №25. Написание фрагмента программы.

Автор материалов - Лада Борисовна Есакова.

В задачах этого типа встречаются следующие основные алгоритмические (программные) блоки:

Перебор элементов массива

Для одномерного массива запускается цикл по всем его элементам.

Для двумерного массива – цикл в цикле по строкам и столбцам.

Для n-мерного массива – n вложенных циклов.

Перебор элементов массива, удовлетворяющих условию

Для перебора элементов массива, удовлетворяющих условию (например, только четных), в начале цикла устанавливается условие. Тогда все дальнейшие действия выполняются только при выполнении этого условия. Если же условие не выполняется, цикл переходит к следующему элементу массива.

Обмен местами элементов массива

Производится аналогично обмену значениями переменных. Если нужно поменять местами n-й и k-й элементы массива, то n-й элемент сохраняется в буферную переменную, затем значение k-го элемента копируется в n-й, а значение буферной переменной копируется в k-й элемент.

Поиск максимального (минимального) элемента массива

При поиске максимального элемента массива за предполагаемый максимум берется первый элемент массива или число, заведомо меньшее любого элемента массива. Затем каждый следующий элемент массива сравнивается с предполагаемым максимумом, и если значение этого элемента больше, то оно становится новым предполагаемым максимумом.

Аналогично, при поиске минимального элемента массива за предполагаемый минимум берется первый элемент массива или число, заведомо большее любого элемента массива. Затем каждый следующий элемент массива сравнивается с предполагаемым минимумом, и если значение этого элемента меньше, то оно становится новым предполагаемым минимумом.

Вычисление суммы элементов массива

Сначала переменной, выделенной под хранение суммы, присваивается значение 0. Затем, при последовательном переборе элементов массива, значение суммы складывается со значением  текущего элемента массива и становится новым значением суммы.

Вычисление произведения элементов массива

Сначала переменной, выделенной под хранение произведения, присваивается значение 1. Затем, при последовательном переборе элементов массива, значение произведения умножается на значение  текущего элемента массива и становится новым значением произведения.

Вычисление среднего значения

При вычислении среднего значения выполняется вычисление суммы, а затем сумма делится на количество элементов массива.

Необходимо учитывать, что если в используемом языке программирования есть готовые функции для обработки массивов, то их использовать при решении задачи нельзя.

Пример 1.

Дан це­ло­чис­лен­ный мас­сив из 20 эле­мен­тов. Эле­мен­ты мас­си­ва могут при­ни­мать целые зна­че­ния от –10 000 до 10 000 вклю­чи­тель­но. Опи­ши­те на есте­ствен­ном языке или на одном из язы­ков про­грам­ми­ро­ва­ния ал­го­ритм, поз­во­ля­ю­щий найти и вы­ве­сти ко­ли­че­ство пар эле­мен­тов мас­си­ва, в ко­то­рых хотя бы одно число де­лит­ся на 3. В дан­ной за­да­че под парой под­ра­зу­ме­ва­ет­ся два под­ряд иду­щих эле­мен­та мас­си­ва. На­при­мер, для мас­си­ва из пяти эле­мен­тов: 6; 2; 9; –3; 6 – ответ: 4.

Ис­ход­ные дан­ные объ­яв­ле­ны так, как по­ка­за­но ниже на при­ме­рах для не­ко­то­рых язы­ков про­грам­ми­ро­ва­ния и есте­ствен­но­го языка. За­пре­ща­ет­ся ис­поль­зо­вать пе­ре­мен­ные, не опи­сан­ные ниже, но раз­ре­ша­ет­ся не ис­поль­зо­вать не­ко­то­рые из опи­сан­ных пе­ре­мен­ных.

 

Бей­сик

Python

CONST N AS INTEGER = 20

DIM A (1 TO N) AS INTEGER

DIM I AS INTEGER,

J AS INTEGER,

K AS INTEGER

 

FOR I = 1 TO N

INPUT A(I)

NEXT I

...

END

# до­пус­ка­ет­ся также

# ис­поль­зо­вать две

# це­ло­чис­лен­ные пе­ре­мен­ные j и k

a = []

n = 20

for i in range(0, n):

a.append(int(input()))

...

Пас­каль

Ал­го­рит­ми­че­ский язык

const

N = 20;

var

a: array [1..N] of integer;

i, j, k: integer;

begin

for i := 1 to N do

readln(a[i]);

...

end.

алг

нач

цел N = 20

цел­таб a[1:N]

цел i, j, k

нц для i от 1 до N

ввод a[i]

кц

...

кон

Си

Есте­ствен­ный язык

#include

#define N 20

int main() {

int a[N];

int i, j, k;

for (i = 0; i < N; i++)

scanf("%d", &a[i]);

...

return 0;

}

Объ­яв­ля­ем мас­сив A из 20 эле­мен­тов.

Объ­яв­ля­ем це­ло­чис­лен­ные пе­ре­мен­ные I, J, K.

В цикле от 1 до 20 вво­дим эле­мен­ты мас­си­ва A с 1-го по 20-й.

 

В ка­че­стве от­ве­та Вам не­об­хо­ди­мо при­ве­сти фраг­мент про­грам­мы (или опи­са­ние ал­го­рит­ма на есте­ствен­ном языке), ко­то­рый дол­жен на­хо­дить­ся на месте мно­го­то­чия. Вы мо­же­те за­пи­сать ре­ше­ние также на дру­гом языке про­грам­ми­ро­ва­ния (ука­жи­те на­зва­ние и ис­поль­зу­е­мую вер­сию языка про­грам­ми­ро­ва­ния, на­при­мер Free Pascal 2.6) или в виде блок-схемы. В этом слу­чае Вы долж­ны ис­поль­зо­вать те же самые ис­ход­ные дан­ные и пе­ре­мен­ные, какие были пред­ло­же­ны в усло­вии (на­при­мер, в об­раз­це, за­пи­сан­ном на есте­ствен­ном языке).

 

Решение:

При­мер про­грам­мы на языке Пас­каль

k := 0;

for i := 1 to N-1 do

              if (a[i] mod 3=0) or (a[i+1] mod 3=0) then

             inc(k);

writeln(k);

 

Пример2.

Дан це­ло­чис­лен­ный мас­сив из 30 эле­мен­тов. Эле­мен­ты мас­си­ва могут при­ни­мать целые зна­че­ния от 0 до 1000. Эле­мент мас­си­ва на­зы­ва­ет­ся хо­ро­шим, если это дву­знач­ное число, причём цифра в раз­ря­де де­сят­ков боль­ше, чем цифра в раз­ря­де еди­ниц. Опи­ши­те на одном из язы­ков про­грам­ми­ро­ва­ния ал­го­ритм, поз­во­ля­ю­щий найти и вы­ве­сти сумму всех хо­ро­ших эле­мен­тов мас­си­ва.

 

Ис­ход­ные дан­ные объ­яв­ле­ны так, как по­ка­за­но ниже. За­пре­ща­ет­ся ис­поль­зо­вать пе­ре­мен­ные, не опи­сан­ные ниже, но раз­ре­ша­ет­ся не ис­поль­зо­вать часть из них.

 

Бэй­сик

Пас­каль

N=30

DIM A(N) AS INTEGER

DIM I, J, S AS INTEGER

FOR I = 1 TO N

INPUT A(I)

NEXT I

...

END

const

N=30;

var

a: array [1..N] of integer;

i, j, s: integer;

begin

for i:=l to N do

readln(a[i]) ;

end.

Си

Ал­го­рит­ми­че­ский язык

#include <stdio.h>

#define N 30

void main(){

int a[N];

int i, j, s;

for (i=0; i < N; i++)

 

scanf("%d", &a[i]);

...

алг

нач

цел N=30

цел­таб а[1:N]

цел i, j, s

нц для i от 1 до N

ввод а[i]

кц

кон

В ка­че­стве от­ве­та Вам не­об­хо­ди­мо при­ве­сти фраг­мент про­грам­мы, ко­то­рый дол­жен на­хо­дить­ся на месте мно­го­то­чия. Вы мо­же­те за­пи­сать ре­ше­ние также на дру­гом языке про­грам­ми­ро­ва­ния (ука­жи­те на­зва­ние и ис­поль­зу­е­мую вер­сию языка про­грам­ми­ро­ва­ния, на­при­мер, Free Pascal 2.4) или в виде блок-схемы. В этом слу­чае вы долж­ны ис­поль­зо­вать те же самые ис­ход­ные дан­ные и пе­ре­мен­ные, какие были пред­ло­же­ны в усло­вии.

 

Решение:

При­мер про­грам­мы на языке Пас­каль

s: =0;

for i:=1 to N do begin

if (10<=a[i]) and (a[ i ] <= 9 9) and

((a[i] div 10) > (a[i] mod 10) ) then s:=s+a[i];

end;

writeln(s);

Звоните нам: 8 (800) 775-06-82 (бесплатный звонок по России)
                       +7 (495) 984-09-27 (бесплатный звонок по Москве)

Или нажмите на кнопку «Узнать больше», чтобы заполнить контактную форму. Мы обязательно Вам перезвоним.

Полный онлайн-курс подготовки к ЕГЭ по математике. Структурировано. Четко. Без воды. Сдай ЕГЭ на 100 баллов!

Смотреть

Для нормального функционирования и Вашего удобства, сайт использует файлы cookies. Это совершенно обычная практика.Продолжая использовать портал, Вы соглашаетесь с нашей Политикой конфиденциальности.

Позвоните мне

Все поля обязательны для заполнения

Отправить