Главная страница

Методические рекомендации по проведению уроков в 11 классе урок Табличный процессор. Основные сведения Планируемые образовательные результаты


Скачать 1.38 Mb.
НазваниеМетодические рекомендации по проведению уроков в 11 классе урок Табличный процессор. Основные сведения Планируемые образовательные результаты
Дата07.03.2023
Размер1.38 Mb.
Формат файлаpdf
Имя файлаmr11-1.pdf
ТипМетодические рекомендации
#973262
страница6 из 8
1   2   3   4   5   6   7   8
to n do
if A[i,1] < A[j,1] then
begin k:=A[i,1];
A[i,1]:=A[j,1];
A[j,1]:=k;
end;
В этом фрагменте:
упорядочивается первая строка массива по убыванию;
упорядочивается первый столбец массива по убыванию;
 упорядочивается первая строка массива по возрастанию;
 упорядочивается первый столбец массива по возрастанию.
5. Ниже представлен фрагмент программы, обрабатывающей одномерный целочисленный массив с индексами от 0 до 10. Известно, что в начале выполнения этого фрагмента в массиве находилась возрастающая последовательность чисел, т. е. A[0] < A[1] < … < A[10]. Какое наибольшее значение может иметь переменная s после выполнения данной программы? s:=27; n:=10;
for i:=0 to n-1 do
begin s:=s+A[i]-A[i+1]+2
end;
Ответ: 37.
Указания, комментарии, ответы и решения
Ответы на вопросы в тексте параграфа
Вопрос к примеру 2 на стр. 105.

51
Возможный вариант модификации программы:
program slova;
var simbol: array [1..20] of char; i, n: integer;
begin
writeln('Введите n:'); readln(n); writeln('Введите слово - цепочку из n символов'); i:=0;
repeat
i := i + 1; read(simbol[i]);
until i>n; n := i-1; writeln('Перевёрнутое слово:');
for i:=n downto 1 do
write(simbol[i]);
end.
Следует отметить, что работа со строками может быть организована более эффективно:
var
s1,s2:string; i:integer;
begin
Write('Введите слово: ');
Readln(s1); s2:='';
for i:=length(s1) downto 1 do
s2:=s2+s1[i];
Writeln('Перевернутое слово: ',s2)
end.
Вопрос к примеру 3 на стр. 107.
Соответствующий алгоритм рассматривался в учебнике 9 класса.
Вопрос к примеру 4 на стр. 108.
Нахождение минимального элемента массива с помощью цикла for:
const n=10;
var a: array [1..n] of integer; i, min: integer;
begin
writeln('Ввод значений элементов массива:');
for i:=1 to n do
read(a[i]); min:=a[1];
for i:=2 to n do
if a[i]then min:=a[i]; writeln('Min=', min)
end.
Алгоритм поиска наибольшего элемента в неупорядоченном массиве обладает линейной сложностью O(n): необходимо просмотреть все n элементов массива, чтобы понять, какой из них максимальный.
Вопрос к примеру 6 на стр. 109.
const n=7;
var a: array [1..n] of integer; i, k: integer;

52
begin
writeln('Ввод значений элементов массива:');
for i:=1 to n do
read(a[i]); k:=0;
for i:=1 to n do;
if (a[i]>9) and (a[i]<100) then k:=k+1;
if k=n then writeln('Да') else writeln('Нет')
end.
Вопрос к примеру 7 на стр. 109.
const n=7;
var a: array [1..n] of integer; i: integer; flag: boolean;
begin
writeln('Ввод значений элементов массива:');
for i:=1 to n do
read(a[i]); flag:=true;
for i:=1 to n-1 do
if a[i]>a[i+1] then flag:=false;
if flag then writeln('Да') else writeln('Нет')
end.
Эта задача может быть решена и путём подсчёта пар, таких, что a[i]>a[i+1]:
const n=7;
var a: array [1..n] of integer; i, k: integer;
begin
writeln('Ввод значений элементов массива:');
for i:=1 to n do
read(a[i]); k:=0;
for i:=1 to n-1 do;
if a[i]>a[i+1] then k:=k+1;
if k=0 then writeln('Да') else writeln('Нет')
end.
Вопрос к примеру 8 на стр. 110.
const n=7;
var a: array [1..n] of integer; i, k: integer;
begin
writeln('Ввод значений элементов массива:');
for i:=1 to n do
read(a[i]); writeln('Введите номер удаляемого элемента:'); read(k);
for i:=k to n-1 do
a[i]:=a[i+1];
for i:=1 to n-1 do
writeln(a[i])
end.
Вопрос к примеру 9 на стр. 111.
const n=8;

53
var a: array [1..n] of integer; i, k: integer;
begin
writeln('Ввод значений элементов массива:');
for i:=1 to n-1 do
read(a[i]); writeln('Введите номер места вставляемого элемента:'); read(k);
for i:=n downto k+1 do
a[i]:=a[i-1]; writeln('Введите значение вставляемого элемента:'); read(a[k]);
for i:=1 to n do
writeln(a[i])
end.
Вопрос к примеру 10 на стр. 112.
const n=7;
var a: array [1..n] of integer; i, r: integer;
begin
writeln('Ввод значений элементов массива:');
for i:=1 to n do
read(a[i]);
for i:=1 to n div 2 do
begin
r:=a[i]; a[i]:=a[n-i+1]; a[n-i+1]:= r
end;
for i:=1 to n do
writeln(a[i])
end.
Вопрос к примеру 11 на стр. 114.
const n=7;
var a: array[1..n] of integer; i, j, r: integer;
begin
writeln('Ввод значений элементов исходного массива:');
for i:=1 to n do
read(a[i]);
for i:=1 to n-1 do
for j:=1 to n-i do
if a[j]>a[j+1] then
begin
r:=a[j]; a[j]:=a[j+1]; a[j+1]:=r
end; writeln('Отсортированный массив: ');
for i:=1 to n do
write(a[i]:6)
end.
Вопрос к примеру 12 на стр. 115.
const n=7;
var a: array[1..n] of integer;

54 i, j, imin, per: integer;
begin
writeln('Ввод значений элементов исходного массива:');
for i:=1 to n do
read(a[i]);
for i:=1 to n-1 do
begin
imin:=i;
for j:=i+1 to n do
if a[j]then imin:=j; per:=a[i]; a[i]:=a[imin]; a[imin]:=per;
end; writeln('Отсортированный массив: ');
for i:=1 to n do write(a[i]:6)
end.
Ответы на задания к параграфу
№ 3. 1) Будет найдена сумма индексов 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 =
55.
2) Вместо суммы элементов программа находит сумму индексов – сумму чисел от 1 до 10. Поэтому, чтобы программа работала правильно, можно, например, ввести числа 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 в любом порядке. В целом же, так как ответ не зависит от значения элементов массива, то программа выдаёт верный ответ во всех случаях, когда сумма элементов равна 55. Например, если A[1]=55, а все остальные элементы равны 0.
3) Вместо s:=s+i надо s:=s+a[i].
№ 4. 1) 0.
2) Любой массив из десяти элементов, имеющий хотя бы одно нулевое значение.
3) Вместо p:=0 надо p:=1.
№ 5.
const n=7;
var a: array[1..n] of integer; i, j, min, max : integer;
begin
writeln('Ввод значений элементов исходного массива:');
for i:=1 to n do
read(a[i]); max:=a[1]; min:=a[1];
for i:=2 to n do
if a[i] then min:=a[i]
else if a[i]>max
then max:=a[i]; writeln('min= ', min,' max=',max);
end.

55
№ 6. Пусть k = 4. Преобразованный массив:
i
1 2
3 4
5 6
7
a[i]
10 12 5
4 15 20 20
№ 8. Преобразованный массив:
i
1 2
3 4
5 6
7
a[i]
20 15 4
8 5
12 10
№ 9. Результат выполнения программы: max1=6, max2=6.
Решается задача нахождения двух наибольших элементов одномерного массива, которые могут быть как равны между собой, так и различаться; max1 – наибольший, max2 – следующий по величине элемент массива.
№ 10.
const t=5;
var a: array[1..t] of integer; i, n, max, min, s, p, k: integer;
begin
write('n='); read(n); k:=0;
while n>0 do
begin
k:=k+1; a[k]:=n mod 10; n:=n div 10
end; max:=a[1]; min:=a[1]; s:=a[1]; p:=a[1];
for i:=2 to k do
begin
if a[i]>max then max:=a[i];
if a[i]then min:=a[i]; s:=s+a[i]; p:=p*a[i];
end; writeln('max=', max, ', min=', min); writeln('s=', s, ', p=', p);
end.
Самостоятельная работа № 4
Вариант 1.
№ 1.
program r4_v1_1;
const t=4;
var a: array[1..t] of integer; i: integer;
begin
write ('Введите элементы массива ');
for i:=1 to t do
read(a[i]);
for i:=1 to t do
writeln('a[', i, ']=', a[i])

56
end.
№ 2.
program r4_v1_2;
const t=20;
var a: array[1..t] of integer; i: integer;
begin
for i:=1 to t do
a[i]:=i*i;
for i:=1 to t do
writeln('a[', i, ']=', a[i])
end.
№ 3.
program r4_v1_3;
const t=15;
var a: array[1..t] of integer; i: integer;
begin
for i:=1 to t do
a[i]:=random(100);
for i:=1 to t do
writeln('a[', i, ']=', a[i])
end.
№ 4.
program r4_v1_4;
const t=11;
var a: array[1..t] of real; i: integer; s: real;
begin
s:=0; write ('Введите элементы массива');
for i:=1 to t do
begin
read(a[i]); s:=s+a[i];
end; writeln('s=', s)
end.
s = 123.5.
№ 5.
program r4_v1_5;
const t=11;
var a: array[1..t] of real; i, k1, k2, k3: integer;
begin
k1:=0; k2:=0; k3:=0; write ('Введите элементы массива');
for i:=1 to t do
begin
read(a[i]);
if a[i]<0 then k1:=k1+1;
if a[i]=0 then k2:=k2+1;

57
if a[i]>0 then k3:=k3+1;
end; writeln('отрицательных - ', k1); writeln('нулевых - ', k2); writeln('положительных - ', k3);
end.
№ 6.
program r4_v1_6;
const t=11;
var a: array[1..t] of real; i: integer; p: real;
begin
p:=1; write('Введите элементы массива');
for i:=1 to t do
begin
read(a[i]);
if a[i]<>0 then p:=p*a[i];
end; writeln('p=', p);
end.
p = 718641000.
№ 7.
program r4_v1_7;
const t=11;
var a: array[1..t] of integer; i: integer; s1, s2: real;
begin
s1:=0; s2:=0; write ('Введите элементы массива');
for i:=1 to t do
begin
read(a[i]);
if a[i] mod 2 = 0
then s1:=s1+a[i]
else s2:=s2+a[i];
end;
if s1>s2
then writeln('сумма чётных значений больше суммы нечётных на ', s1-s2)
else if s1=s2
then writeln('суммы чётных и нечётных значений равны ')
else writeln('сумма нечётных значений больше суммы чётных на ', s2-s1)
end.
Сумма нечётных значений больше суммы чётных на 37.
№ 8.
program r4_v1_8;
const t=11;

58
var a: array[1..t] of real; i, k: integer; s, sa: real;
begin
k:=0; s:=0; write ('Введите элементы массива');
for i:=1 to t do
begin
read(a[i]);
if a[i]>0 then
begin
s:=s+a[i]; k:=k+1
end
end; sa:=s/k; writeln('sa=', sa:8:4)
end.
sa = 19.6429.
№ 9.
program r4_v1_9;
const t=11;
var a: array[1..t] of real; i, k: integer; z: real;
begin
write('Введите z='); read(z); k:=0; write('Введите элементы массива');
for i:=1 to t do
begin
read(a[i]);
if a[i]>z then k:=k+1;
end; writeln('k=', k)
end.
№ 10.
program r4_v1_10;
const t=12;
var a: array[1..t] of integer; i : integer;
begin
for i:=1 to t do
begin
a[i]:=random(10)+1; write(a[i]:3);
end; writeln;
for i:=1 to t do
if a[i]=i
then writeln('a[', i, ']=', a[i])
end.

59
Вариант 2.
№ 1.
program r4_v2_1;
const t=12;
var b: array[1..t] of integer; i : integer;
begin
b[1]:=1;
for i:=2 to t do
b[i]:=b[i-1]*i;
for i := 1 to t do
writeln('B[', i, ']=', b[i])
end.
B[1]=1
B[4]=24
B[7]=5040
B[10]=3628800
B[2]=2
B[5]=120
B[8]=40320
B[11]=39916800
B[3]=6
B[6]=720
B[9]=362880
B[12]=479001600
№ 2.
program r4_v2_2;
const t=20;
var b: array[1..t] of integer; i : integer;
begin
for i:=1 to t do
begin
b[i]:=random(81); write (b[i]:3);
end;
end.
№ 3.
program r4_v2_3;
const t=20;
var a, b: array[1..t] of integer; i : integer;
begin
for i:=1 to t do
begin
b[i]:=random(81); write (b[i]:3);
end; writeln;
for i:=1 to t do
begin
a[i]:=b[20-i+1]; write (a[i]:3);
end;
end.
№ 4.
program r4_v2_4;

60
const t=100;
var a, b: array[1..t] of integer; i, k1, k2, k3 : integer;
begin
for i:=1 to t do
begin
a[i]:=random(100); b[i]:=random(100);
end; k1:=0; k2:=0; k3:=0;
for i:=1 to t do
begin
if a[i]then k1:=k1+1;
if a[i]=b[i] then k2:=k2+1;
if a[i]>b[i] then k3:=k3+1;
end; writeln ('k1=',k1); writeln ('k2=',k2); writeln ('k3=',k3)
end.
№ 5.
program r4_v2_5;
const t=11;
var b: array[1..t] of real; i, k: integer; s, sa: real;
begin
k:=0; s:=0; write ('Введите элементы массива');
for i:=1 to t do
begin
read(b[i]);
if b[i] < 0 then
begin
s := s + abs(b[i]); k := k + 1
end
end; sa:=s/k; writeln('sa=', sa:8:4)
end.
sa = 84.6250.
№ 6.
program r4_v2_6;
const t=11;
var b: array[1..t] of real; i, k: integer; p, s: real;
begin
p:=1; s:=0; k:=0; write ('Введите элементы массива');
for i:=1 to t do
begin

61 read(b[i]);
if b[i]<0 then s := s + b[i];
if b[i]=0 then k := k + 1;
if b[i]>0 then p := p * b[i];
end; writeln('произведение положительных - ', p); writeln('сумма отрицательных: ', s); writeln('количество нулевых - ', k)
end.
№ 7.
program r4_v2_7;
const t=11;
var b: array[1..t] of real; i: integer; p: real;
begin
p:=1; write ('Введите элементы массива');
for i:=1 to t do
begin
read(b[i]);
if (abs(b[i]<=20)) and (b[i]<>0)
then p:=p*b[i];
end; writeln('p=', p)
end.
№ 8.
program r4_v2_8;
const t=11;
var b: array[1..t] of real; i, k: integer; s, sa: real;
begin
s:=0; write ('Введите элементы массива');
for i:=1 to t do
begin
read(b[i]); s:=s+b[i];
end; sa:=s/t; k:=0;
for i:=1 to t do
if b[i]>sa then k:=k+1; writeln('k=', k)
end.
№ 9.
program r4_v2_9;
const t=11;
var b: array[1..t] of real; i: integer; max: real;
begin

62 write ('Введите элементы массива');
for i:=1 to t do
read(b[i]); max:=b[1];
for i:=2 to t do
if b[i]>max then max:=b[i]; writeln('max=', max)
end.
№ 10.
program r4_v2_10;
const t=12;
var b: array[1..t] of integer; i, maxotr : integer;
begin
for i:=1 to t do
begin
b[i]:=random(20)-10; write (b[i]:4)
end; maxotr:= -10;
for i:=1 to t do
if (b[i]<0) and (b[i]>maxotr)
then maxotr:=b[i]; writeln; write ('maxotr=', maxotr)
end.
Вариант 3.
№ 1.
program r4_v3_1;
1   2   3   4   5   6   7   8


написать администратору сайта