Массивы бывают и а также в Турбо Паскале они числовые числовые 1. Определение массивов 2. Этапы решения задач на массивы 3. Задачи на обработку массивов Автор Автор презентации
Массивы бывают и а также в Турбо Паскале они числовые Определение массивов Этапы решения задач на массивы Задачи на обработку массивов Горный массив
Массивы бывают и а также в Турбо Паскале они числовые Определение массивов Этапы решения задач на массивы Задачи на обработку массивов Лесной массив
Массивы бывают и а также в Турбо Паскале они числовые Определение массивов Этапы решения задач на массивы Задачи на обработку массивов Жилой массив
Решение задач на массивы состоит из трех основных этапов: 1. Ввод данных ( элементов массива) 2. Обработка элементов массива 3. Вывод результатов
1. С клавиатуры for i:=1 to 7 do begin write('a[', i, ']='); read ( a[i] ); end; 2. С помощью генератора случайных чисел for i:=1 to 10 do begin a[i]:=random(101); {числа от 1 до 100} end; 3. С помощью формулы var b: array [1..10] of integer; i: integer; begin for i:=1 to 10 do b[i]:=i*2; end;
Фрагменты программ на массивы Попробуйте пояснить каждый фрагмент программы k:=0; for i:=1 to n do if a[i] mod 2=0 then k:=k+1 ; t:=a[k1]; a[k1]:=a[k2]; a[k2]:=t. s:=0; for i:=1 to n do if a[i]>0 then s:=s+a[i]; min:=a[1] ; for i:=2 to n do if a[i]<=min then min:=a[i];
а) в столбик: For i:=1 to N do Writeln(a[i]:4:2); б) в строку For i:=1 to N do Write(a[i]:4:2);
Задачи на обработку массивов 1 Дан массив : А={1;-4;6;56;0;-6;4;23;18;19} Подсчитать сколько элементов массива имеют значение больше 10? ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа) program zadacha1; var A: ARRAY[1.. …… ] OF …… ; i, k: integer; BEGIN K:=…… FOR I:=1 TO …… DO READLN( ……); FOR I:=1 TO…… DO…… IF A[I]>10 THEN K:=…… ; WRITELN (K=,K); READLN; END.
Задачи на обработку массивов Дан массив : А={1;-4;6;56;0;-6;4;23;18;19} Подсчитать сколько элементов массива имеют значение больше 10? ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа) program zadacha1; var A: ARRAY[1.. …… ] OF …… ; i, k: integer; BEGIN K:=……; FOR I:=1 TO …… DO READLN( ……); FOR I:=1 TO…… DO…… IF A[I]>10 THEN K:=…… ; WRITELN (K=,K); READLN; END. 10, т.к. количество элементов в массиве равно 10
Задачи на обработку массивов Дан массив : А={1;-4;6;56;0;-6;4;23;18;19} Подсчитать сколько элементов массива имеют значение больше 10? ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа) program zadacha1; var A: ARRAY[1.. …… ] OF …… ; i, k: integer; BEGIN K:=……; FOR I:=1 TO …… DO READLN( ……); FOR I:=1 TO…… DO…… IF A[I]>10 THEN K:=…… ; WRITELN (K=,K); READLN; END. В Паскале после OF пишется тип переменных. В нашем случае он целый-integer,т.к. все элементы массива целые числа
Задачи на обработку массивов Дан массив : А={1;-4;6;56;0;-6;4;23;18;19} Подсчитать сколько элементов массива имеют значение больше 10? ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа) program zadacha1; var A: ARRAY[1.. …… ] OF …… ; i, k: integer; BEGIN K:=……; FOR I:=1 TO …… DO READLN( ……); FOR I:=1 TO…… DO…… IF A[I]>10 THEN K:=…… ; WRITELN (K=,K); READLN; END. К=0, переменная где накапливается количество чисел больших 10. Первоначальное ее значение равно 0
Задачи на обработку массивов Дан массив : А={1;-4;6;56;0;-6;4;23;18;19} Подсчитать сколько элементов массива имеют значение больше 10? ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа) program zadacha1; var A: ARRAY[1.. …… ] OF …… ; i, k: integer; BEGIN K:=……; FOR I:=1 TO …… DO READLN( ……); FOR I:=1 TO…… DO…… IF A[I]>10 THEN K:=…… ; WRITELN (K=,K); READLN; END. 10-цикл с параметром ввода элементов массива; всего 10 элементов
Задачи на обработку массивов Дан массив : А={1;-4;6;56;0;-6;4;23;18;19} Подсчитать сколько элементов массива имеют значение больше 10? ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа) program zadacha1; var A: ARRAY[1.. …… ] OF …… ; i, k: integer; BEGIN K:=……; FOR I:=1 TO …… DO READLN( ……); FOR I:=1 TO…… DO…… IF A[I]>10 THEN K:=…… ; WRITELN (K=,K); READLN; END. Readln(оператор ввода), в скобках пишется (a[i]),где a[i]-элементы массива
Задачи на обработку массивов Дан массив : А={1;-4;6;56;0;-6;4;23;18;19} Подсчитать сколько элементов массива имеют значение больше 10? ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа) program zadacha1; var A: ARRAY[1.. …… ] OF …… ; i, k: integer; BEGIN K:=……; FOR I:=1 TO …… DO READLN( ……); FOR I:=1 TO…… DO…… IF A[I]>10 THEN K:=…… ; WRITELN (K=,K); READLN; END. 10-обработка массива т.е. поиск в цикле элементов больших 10
Задачи на обработку массивов Дан массив : А={1;-4;6;56;0;-6;4;23;18;19} Подсчитать сколько элементов массива имеют значение больше 10? ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа) program zadacha1; var A: ARRAY[1.. …… ] OF …… ; i, k: integer; BEGIN K:=……; FOR I:=1 TO …… DO READLN( ……); FOR I:=1 TO…… DO…… IF A[I]>10 THEN K:=…… ; WRITELN (K=,K); READLN; END. Здесь писать ничего не нужно т.к продолжение этой строки программы ниже, на следующей строчке.
Задачи на обработку массивов Дан массив : А={1;-4;6;56;0;-6;4;23;18;19} Подсчитать сколько элементов массива имеют значение больше 10? ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа) program zadacha1; var A: ARRAY[1.. …… ] OF …… ; i, k: integer; BEGIN K:=……; FOR I:=1 TO …… DO READLN( ……); FOR I:=1 TO…… DO…… IF A[I]>10 THEN K:=…… ; WRITELN (K=,K); READLN; END. Если найдены элементы больше 10 то их количество увеличивается на 1,т.е изменяется переменная К и в программе надо записать К:=К+1
А вот как выглядит вся программа целиком program zadacha1; var A:ARRAY[1..10] OF integer; I,K: integer; BEGIN K:=0; FOR I:=1 TO 10 DO READLN(A[I]); FOR I:=1 TO 10 DO IF A[I]>10 THEN K:=K+1; WRITELN ('число элементов=',K); READLN; END.
Задачи на обработку массивов 2 Дан массив С={1;-4;6.5;6;0;-6.4;23;9}Найдите наибольший элемент массива ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа) program zadacha2; var С:ARRAY[1.. 8] OF …… ; MAX:......; I: integer; BEGIN FOR I:=1 TO 8 DO READLN (c[i]); MAX:=C[ …… ]; FOR I:= 2 TO …… DO IF C[ I ] > …… THEN MAX:= …… ; WRITELN ('MAX=',MAX); READLN; END.
Задачи на обработку массивов 2 Дан массив С={1;-4;6.5;6;0;-6.4;23;9}Найдите наибольший элемент массива ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа) program zadacha2; var С:ARRAY[1.. 8] OF …… ; MAX:......; I: integer; BEGIN FOR I:=1 TO 8 DO READLN(c[i]); MAX:=C[ …… ]; FOR I:= 2 TO …… DO IF C[ I ] > …… THEN MAX:= …… ; WRITELN ('MAX=',MAX); READLN; END. Тип – вещественный,т.е в Паскале он записывается как real
Задачи на обработку массивов 2 Дан массив С={1;-4;6.5;6;0;-6.4;23;9}Найдите наибольший элемент массива ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа) program zadacha2; var С:ARRAY[1.. 8] OF …… ; MAX:......; I: integer; BEGIN FOR I:=1 TO 8 DO READLN(c[i]); MAX:=C[ …… ]; FOR I:= 2 TO …… DO IF C[ I ] > …… THEN MAX:= …… ; WRITELN ('MAX=',MAX); READLN; END. real Max –так обозначен наибольший элемент массива и тип его тоже вещественный, т.е.real
Задачи на обработку массивов 2 Дан массив С={1;-4;6.5;6;0;-6.4;23;9}Найдите наибольший элемент массива ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа) program zadacha2; var С:ARRAY[1.. 8] OF …… ; MAX:......; I: integer; BEGIN FOR I:=1 TO 8 DO READLN(c[i]); MAX:=C[ …… ]; FOR I:= 2 TO …… DO IF C[ I ] > …… THEN MAX:= …… ; WRITELN ('MAX=',MAX); READLN; END. В данной задач поиск наибольшего элемента основан на принципе сравнения. Поэтому предположим, что самый больший элемент в массиве – первый, т.е c[1]
Задачи на обработку массивов 2 Дан массив С={1;-4;6.5;6;0;-6.4;23;9}Найдите наибольший элемент массива ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа) program zadacha2; var С:ARRAY[1.. 8] OF …… ; MAX:......; I: integer; BEGIN FOR I:=1 TO 8 DO READLN(c[i]); MAX:=C[ …… ]; FOR I:= 2 TO …… DO IF C[ I ] > …… THEN MAX:= …… ; WRITELN ('MAX=',MAX); READLN; END. Далее, начиная со 2-го элемента массива до 9 мы сравниваем 1- элемент, которому придали статус наибольшего со остальными, поэтом у здесь вместо многоточия пишем 9
Задачи на обработку массивов 2 Дан массив С={1;-4;6.5;6;0;-6.4;23;9}Найдите наибольший элемент массива ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа) program zadacha2; var С:ARRAY[1.. 8] OF …… ; MAX:......; I: integer; BEGIN FOR I:=1 TO 8 DO READLN(c[i]); MAX:=C[ …… ]; FOR I:= 2 TO …… DO IF C[ I ] > …… THEN MAX:= …… ; WRITELN ('MAX=',MAX); READLN; END. Если в массиве находится элемент больше первого, тогда он будет наибольшем т.е. C[i]>max
Задачи на обработку массивов 2 Дан массив С={1;-4;6.5;6;0;-6.4;23;9}Найдите наибольший элемент массива ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа) program zadacha2; var С:ARRAY[1.. 8] OF …… ; MAX:......; I: integer; BEGIN FOR I:=1 TO 8 DO READLN(c[i]); MAX:=C[ …… ]; FOR I:= 2 TO …… DO IF C[ I ] > …… THEN MAX:= …… ; WRITELN ('MAX=',MAX); READLN; END. Наибольшим становится найденный элемент т.е. Max:=c[i]
Одномерный массив
program zadacha3; var B:ARRAY[1.. 10] OF …… ; I: …… S: …… BEGIN S:=…… FOR I:=1 TO 10 DO READLN( …… ); FOR I:=1 TO 10 DO …… IF B[I] …… THEN S:= …… WRITELN ('S=',S:2:2); READLN; END. Задачи на обработку массивов 3 В массиве В, состоящем из элементов {-3,5,2,0,-2.5,21,9,-8,-1.5,7} найти сумму элементов массива, больших 0. ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа
program zadacha3; var B:ARRAY[1.. 10] OF …… ; I: …… S: …… BEGIN S:=…… FOR I:=1 TO 10 DO READLN( …… ); FOR I:=1 TO 10 DO …… IF B[I] …… THEN S:= …… WRITELN ('S=',S:2:2); READLN; END. Задачи на обработку массивов 3 В массиве В, состоящем из элементов {-3,5,2,0,-2.5,21,9,-8,-1.5,7} найти сумму элементов массива, больших 0. ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа В Паскале после OF пишется тип переменных. В нашем случае он вещественный( в записи элементов массива есть 1.5 и 2.5) т.е.real,
program zadacha3; var B:ARRAY[1.. 10] OF …… ; I: …… S: …… BEGIN S:=…… FOR I:=1 TO 10 DO READLN( …… ); FOR I:=1 TO 10 DO …… IF B[I] …… THEN S:= …… WRITELN ('S=',S:2:2); READLN; END. Задачи на обработку массивов 3 В массиве В, состоящем из элементов {-3,5,2,0,-2.5,21,9,-8,-1.5,7} найти сумму элементов массива, больших 0. ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа В Паскале i- номер элемента в данном массиве, который имеет всегда целый тип т.е. integer
program zadacha3; var B:ARRAY[1.. 10] OF …… ; I: …… S: …… BEGIN S:=…… FOR I:=1 TO 10 DO READLN( …… ); FOR I:=1 TO 10 DO …… IF B[I] …… THEN S:= …… WRITELN ('S=',S:2:2); READLN; END. Задачи на обработку массивов 3 В массиве В, состоящем из элементов {-3,5,2,0,-2.5,21,9,-8,-1.5,7} найти сумму элементов массива, больших 0. ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа Сумма элементов в данном массиве будет иметь тип real
program zadacha3; var B:ARRAY[1.. 10] OF …… ; I: …… S: …… BEGIN S:=…… FOR I:=1 TO 10 DO READLN( …… ); FOR I:=1 TO 10 DO …… IF B[I] …… THEN S:= …… WRITELN ('S=',S:2:2); READLN; END. Задачи на обработку массивов 3 В массиве В, состоящем из элементов {-3,5,2,0,-2.5,21,9,-8,-1.5,7} найти сумму элементов массива, больших 0. ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа Первоначальное значение S=0
program zadacha3; var B:ARRAY[1.. 10] OF …… ; I: …… S: …… BEGIN S:=…… FOR I:=1 TO 10 DO READLN( …… ); FOR I:=1 TO 10 DO …… IF B[I] …… THEN S:= …… WRITELN ('S=',S:2:2); READLN; END. Задачи на обработку массивов 3 В массиве В, состоящем из элементов {-3,5,2,0,-2.5,21,9,-8,-1.5,7} найти сумму элементов массива, больших 0. ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа После слова readln (оператор ввода) вводятся элементы массива, поэтом здесь пишем b[i]
program zadacha3; var B:ARRAY[1.. 10] OF …… ; I: …… S: …… BEGIN S:=…… FOR I:=1 TO 10 DO READLN( …… ); FOR I:=1 TO 10 DO …… IF B[I] …… THEN S:= …… WRITELN ('S=',S:2:2); READLN; END. Задачи на обработку массивов 3 В массиве В, состоящем из элементов {-3,5,2,0,-2.5,21,9,-8,-1.5,7} найти сумму элементов массива, больших 0. ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа А здесь писать ничего не надо продолжение на следующей строчке
program zadacha3; var B:ARRAY[1.. 10] OF …… ; I: …… S: …… BEGIN S:=…… FOR I:=1 TO 10 DO READLN( …… ); FOR I:=1 TO 10 DO …… IF B[I] …… THEN S:= …… WRITELN ('S=',S:2:2); READLN; END. Задачи на обработку массивов 3 В массиве В, состоящем из элементов {-3,5,2,0,-2.5,21,9,-8,-1.5,7} найти сумму элементов массива, больших 0. ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа Т.к. надо найти сумму элементов больших 0, то здесь происходит поиск этих элементов в цикле и вместо многоточия пишем b[i]>0
program zadacha3; var B:ARRAY[1.. 10] OF …… ; I: …… S: …… BEGIN S:=…… FOR I:=1 TO 10 DO READLN( …… ); FOR I:=1 TO 10 DO …… IF B[I] …… THEN S:= …… WRITELN ('S=',S:2:2); READLN; END. Задачи на обработку массивов 3 В массиве В, состоящем из элементов {-3,5,2,0,-2.5,21,9,-8,-1.5,7} найти сумму элементов массива, больших 0. ( допишите программу, заполнив все пропуски. При проверке данной программы щелкните по многоточиям для получения правильного ответа Если найден элемент больше 0, то к сумме добавляется 1, т.е. пишем: S=S+1;
program zadacha3; var B:ARRAY[1..10] OF REAL ; I: INTEGER; S:REAL; BEGIN S:=0; FOR I:=1 TO 10 DO READLN( B[I] ); FOR I:=1 TO 10 DO IF B[I] >0 THEN S=S+1; WRITELN ('S=',S:2:2); READLN; END. А вот как выглядит вся программа целиком
Задание 1 ЕГЭ А6 Дан фрагмент программы, обрабатывающий массив А из n элементов (известно, что в массиве имеются положительные элементы): S:=0; k:=0; for i:=1 to n do if A[i]>0 then begin S:=S+A[i]; k:=k+1; end; S:=S/k; Чему будет равно значение переменной S после выполнения данного алгоритма? A) Среднему значению всех элементов массива А Б) Среднему значению положительных элементов массива А B) Количеству положительных элементов массива А Г) Значению последнего положительного элемента (Правильный ответ и пояснение)Правильный ответ и пояснение)
S:=0;{ сумма равна 0} k:=0; { к –счетчик равен 0 } for i:=l to n do {начало цикла с параметром i от 1 до n} if A[i]>0 then { если элемент положителен, то} begin S:=S+A[i]; {суммируем положительные элементы} k:=k+l; {увеличиваем счетчик найденных элементов} end; S:=S/k;{среднее значение положительных элементов массива А} Правильный ответ :Б
Задание 2 ЕГЭ А6 В программе описан одномерный массив с целочисленными элементами с индексами от 0 до 10. Представлен фрагмент программы, в котором значения элементов сначала задаются, а затем меняются: for i:=0 to 10 do A[i]:=i+1; for i:=1 to 10 do A[i]:=A[i-1]; Как меняются элементы этого массива? А) Все элементы, кроме последнего, сдвигаются на элемент вправо Б) Все элементы, кроме первого, сдвигаются на один элемент влево В) Все элементы окажутся равными 1 Г) Все элементы окажутся равными своему индексу (Правильный ответ и пояснение)
В программе два последовательно расположенных цикла, в первом из которых заполняется массив А. В результате выполнения первого цикла получим массив А Принципиальный момент в данном задании – второй цикл обработки массива. Именно в нем значение нулевого элемента массива (единица) записывается в первый элемент, затем во второй и т.д. Следовательно, все элементы массива после выполнения фрагмента программы будут равны единице Правильный ответ: В A[i] i
Автор презентации : учитель математики и информатики МБОУ СОШ 15 г. Рязани Зотова Марина Анатольевна