Методические рекомендации по проведению уроков в 11 классе урок Табличный процессор. Основные сведения Планируемые образовательные результаты
Скачать 1.38 Mb.
|
const t=20; var c: array[1..t] of integer; i : integer; begin for i:=1 to t do begin if i mod 2 = 0 then c[i] := i div 2 else c[i] := 0; writeln ('c[',i,']=',c[i]) end end. № 2. program r4_v3_2; const t=20; var c: array[1..t] of integer; i : integer; begin c[1]:=1; c[2]:=2; for i:=3 to t do begin 63 c[i]:=c[i-1]+c[i-2]; writeln ('C[',i,']=',c[i]) end end. C[1]=1 C[6]=13 C[11]=144 C[16]=1597 C[2]=2 C[7]=21 C[12]=233 C[17]=2584 C[3]=3 C[8]=34 C[13]=377 C[18]=4181 C[4]=5 C[9]=55 C[14]=610 C[19]=6765 C[5]=8 C[10]=89 C[15]=987 C[20]=10946 № 3. program r4_v3_3; const t=20; var c: array[1..t] of integer; i, s : integer; begin c[1]:=1; c[2]:=2; s:=c[1]; for i:=3 to t do begin s:=s+c[i-1]; c[i]:=s; writeln ('c[',i,']=',c[i]) end end. № 4. program r4_v3_4; const t=20; var c: array[1..t] of integer; i : integer; begin for i:=1 to t do begin c[i]:=random(81)+20; write (c[i]:3); end; end. № 5. program r4_v3_5; const t=100; var c: array[1..t] of integer; i, max, k : integer; begin for i:=1 to t do begin c[i]:=random(81)+20; write (c[i]:4); end; max:=c[1]; for i:=2 to t do if c[i]> max then max:=c[i]; 64 writeln; writeln ('max=', max); k := 0; for i:=1 to t do if c[i]=max then k:=k+1; writeln('k=',k) end. № 6. program r4_v3_6; const t=100; var c: array[1..t] of integer; i, max, min, raz : integer; begin for i:=1 to t do begin c[i]:=random(81)+20; write (c[i]:4); end; max:=c[1]; min:=c[1]; for i:=2 to t do begin if c[i]>max then max:=c[i]; if c[i] end; writeln; raz:=max-min; writeln ('max=', max); writeln ('min=', min); writeln ('raz=', raz) end. № 7. program r4_v3_7; const t=11; var c: array[1..t] of real; i, imax, imin: integer; d: real; begin write ('Введите элементы массива'); for i:=1 to t do read(c[i]); imax:=1; imin:=1; for i:=2 to t do begin if c[i]>c[imax] then imax:=i; if c[i] end; writeln ('max=', c[imax],' imax=',imax); writeln ('min=', c[imin],' imin=',imin); d:=c[imin]; c[imin]:=c[imax]; 65 c[imax]:=d; for i:=1 to t do writeln (c[i]:5); end. № 8. program r4_v3_8; const t = 11; var c: array[1..t] of real; i, j : integer; k: real; begin write ('Введите элементы массива'); for i:=1 to t do read(c[i]); for i := 1 to t-1 do for j := 1 to t-i do if c[j]>c[j+1] then begin k := c[j]; c[j] := c[j+1]; c[j+1] := k end; write ('Отсортированный массив: '); for i:=1 to t do write (c[i]:5); end. № 9. program r4_v3_9; const t=10; var c: array[1..t] of integer; i, j : integer; flag : boolean; begin for i:=1 to t do begin c[i]:=random(20); write (c[i]:5); end; flag:=false; for i:=1 to t-1 do for j:=i+1 to t do if c[i]=c[j] then flag := true; writeln; if flag then write('Да') else write('Нет'); end. № 10. program r4_v3_10; const t=100; var c: array[1..t] of integer; i, d, s : integer; begin for i := 1 to t do 66 begin c[i]:=random(2); write (c[i]); end; d:=0; s:=0; for i:=1 to t do if c[i]=0 then s:=s+1 else begin if s>d then d:=s; s:=0; end; if s>d then d:=s; writeLn; write('Длина самой большой цепочки подряд идущих 0 равна ', d) end. Самостоятельная работа № 5 Вариант 1. № 1. program r5_v1_1; const t=100; var c: array[1..t] of integer; i, k : integer; begin writeln ('Исходный массив'); for i := 1 to t do begin c[i] := random(2); write (c[i]); end; k := 0; for i := 1 to t do if c[i] = 0 then k := k + 1; writeln; writeln ('Упорядоченный массив'); for i := 1 to k do write (0); for i := k + 1 to t do write (1); end. № 2. program r5_v1_2; const t=10; var a, b: array[1..t] of integer; i : integer; begin for i := 1 to t do begin 67 a[i] := random(100)+80; b[i] := a[i]+random(10)-5; end; for i := 1 to t do begin write('Было: ', a[i]:4,' Стало: ',b[i]:4); if b[i]then write(' Поздравлю!'); writeln; end end. № 3. program r5_v1_3; const n=10; var a: array[1..n] of integer; i, s: integer; sa: real; begin s:=0; for i:=1 to n do begin a[i]:=random(12000)+20000; write(a[i]:8); s:=s+a[i] end; writeln; sa := s/n; writeln('sa=', sa:10:4) end. № 4. program r5_v1_4; const n=20; var a: array[1..n] of integer; i, s, k: integer; sa: real; begin s:=0; k:=0; i:=1; while i<=n do begin a[i] := random(40)+140; a[i+1] := random(40)-200; write(a[i]:6); write(a[i+1]:6); i:=i+2 end; for i:=1 to n do if a[i]<0 then begin s := s+abs(a[i]); k := k+1; end; writeln; sa := s/k; writeln('sa=', sa:10:4) end. 68 № 5. program r5_v1_5; const n=20; var a: array[1..n] of integer; i, s, k: integer; sa, p: real; begin s:=0; k:=0; for i:=1 to n do begin a[i]:=random (4)+2; write(a[i]:3); s := s+a[i]; if a[i]>2 then k:=k+1; end; writeln; sa := s/n; writeln('sa=', sa:4:2); p := k*100/n; writeln('p=', p:4:1) end. Вариант 2. № 1. program r5_v2_1; const n=10; var a: array[1..n] of integer; i, x, k: integer; begin a[1] := random(10); write(a[1]); for i:=2 to n do begin a[i]:=a[i-1]+random (10)+1; write(a[i]:3); end; writeln; writeln('x='); readln(x); for i:=1 to n-1 do if (x>=a[i]) and (x<=a[i+1]) then begin k := i; writeln ('[',a[i],';',a[i+1],']') end; if k=0 then writeln ('x не принадлежит ни одному из отрезков') end. № 2. program r5_v2_2; const t=50; var a: array[1..t] of integer; i, j : integer; 69 begin writeln ('Исходный массив'); for i := 1 to t do begin a[i]:=random(5); write (a[i]); end; writeln; j:=0; for i := 1 to t do if a[i]<>0 then begin j := j+1; a[j]:=a[i] end; for i := j+1 to t do a[i]:=0; writeln ('Упорядоченный массив'); for i := 1 to t do write (a[i]) end. № 3. program r5_v2_3; const t=30; var a, b: array[1..t] of integer; i, k1, k2 : integer; begin writeln ('Исходный массив - температура'); for i := 1 to t do begin a[i]:=random(20)-10; write (a[i]:3); end; writeln; writeln ('Исходный массив - осадки'); for i := 1 to t do begin b[i]:=random(5); write (b[i]:3); end; writeln; k1 := 0; k2 := 0; for i := 1 to t do begin if (a[i]<0) and (b[i]<>0) then k1 := k1+1; if (a[i]>0) and (b[i]<>0) then k2 := k2+1 end; writeln ('Дней со снегом k1=',k1); writeln ('Дней с дождем k2=',k2); end. 70 № 4. program r5_v2_4; const t=30; var r, v: array[1..t] of integer; i, sr, sv : integer; flag: boolean; begin writeln ('Исходные данные'); for i := 1 to t do begin r[i]:=random(40)+140; write (r[i]:5); end; for i := 1 to t do begin v[i]:=random(30)+40; write (v[i]:5); end; writeln; sr := 0; sv := 0; for i := 1 to t do begin sr:=sr+r[i]; sv:=sv+v[i] end; sr := sr div t; sv := sv div t; writeln ('sr=',sr); writeln ('sv=',sv); flag := false; for i := 1 to t do if (r[i]=sr) and (v[i]=sv) then flag:=true; if flag then writeln ('Есть') else writeln ('Нет') end. № 5. program r5_v2_5; var a: array[1..30] of integer; b,c: array[1..31] of integer; i,k1,k2,k3, max : integer; begin k1:=0; k2:=0; k3:=0; writeln ('Исходные данные'); for i := 1 to 30 do begin a[i]:=random(2)+1; write (a[i]); if a[i]=1 then k1 := k1+1 end; writeln; for i := 1 to 31 do begin 71 b[i]:=random(2)+1; write (b[i]); if b[i]=1 then k2 := k2+1 end; writeln; for i := 1 to 31 do begin c[i]:=random(2)+1; write (c[i]); if c[i]=1 then k3 := k3+1 end; writeln; writeln(k1:5, k2:5, k3:5); max := k1; if k2>max then max := k2; if k3>max then max := k3; if max=k1 then writeln ('Июнь'); if max=k2 then writeln ('Июль'); if max=k3 then writeln ('Август'); end. Вариант 3. № 1. program r5_v3_1; const n=10; var a: array[1..n] of string; b: array[1..n] of integer; i, j, k : integer; f: string; begin writeln ('Исходные данные'); for i := 1 to n do begin write ('Введите фамилию '); readln (a[i]); write ('Введите результат '); readln (b[i]); end; for i := 1 to n-1 do for j := 1 to n-i do if b[j] < b[j+1] then begin k := b[j]; b[j] := b[j+1]; b[j+1] := k; f := a[j]; a[j] := a[j+1]; a[j+1] := f; end; writeln ('Отсортированные массивы: '); for i := 1 to n do begin write (a[i],' ', b[i]); writeln 72 end end. № 2. program r5_v3_2; var a: array[1..92] of integer; i,d,s,indt, ind : integer; begin writeln ('Исходные данные'); for i := 1 to 92 do begin a[i]:=random(2); write (a[i]); end; d := 0; s := 0; ind:=0; for i := 1 to 92 do if a[i] = 0 then begin s := s + 1; indt := i end else begin if s > d then begin d := s; ind := indt-d+1 end; s := 0; end; if s > d then begin d := s; ind := indt-d+1; end; writeln; writeln ('Длина самой большой цепочки подряд идущих 0 равна ', d); writeln ('Начало цепочки: ', ind); writeln ('Конец цепочки: ', ind+d-1) end. Здесь предложена основа решения. Чтобы получить ответы на вопросы, поставленные в задаче, можно дополнить программу, например, следующими строками: if ind<=31 then writeln ('Начало - в июне'); if (ind>31) and (ind<=61) then writeln ('Начало - в июле'); if ind>61 then writeln ('Начало - в августе') № 3. Алгоритм тот же, что и в задании № 9 из варианта 3 предыдущей самостоятельной работы № 4. № 4. program r5_v3_4; 73 const a: array[1..10] of string = ('Пушкин', 'Толстой', 'Толстой', 'Тургенев', 'Достоевский', 'Пушкин', 'Достоевский', 'Лесков', 'Достоевский', 'Гоголь'); var b: array[1..10] of string; c: array[1..100] of integer; i, j, k, f: integer; begin k := 1; b[k] := a[1]; for i:=1 to 10 do begin f := 0; for j:=1 to k do if a[i]=b[j] then f := 1; if f=0 then begin k:=k+1; b[k] := a[i] end end; for i := 1 to k do begin c[i]:=0; for j:=1 to 10 do if b[i]=a[j] then c[i] := c[i]+1; end; for i := 1 to k do begin write (b[i],'-',c[i]); writeln end; end. № 5. program r5_v3_5; const a: array[1..5] of integer = (1, 3, 5, 7, 9); b: array[1..7] of integer = (2, 3, 4, 5, 6, 7, 8); c: array[1..10] of integer = (0, 1, 2, 4, 6, 8, 9, 10, 11, 12); var i, j, k, l : integer; begin l:=0; for i:=1 to 5 do for j:=1 to 7 do for k:=1 to 10 do if b[j]*b[j]-4*a[i]*c[k]>0 then l:=l+1; write ('L=',l); end. L = 89. 74 Уроки 15–16. Структурное программирование. Рекурсивные алгоритмы Планируемые образовательные результаты: предметные: выполнять пошагово (с использованием компьютера или вручную) несложные алгоритмы управления исполнителями и анализа числовых и текстовых данных; создавать на алгоритмическом языке программы для решения типовых задач базового уровня из различных предметных областей с использованием основных алгоритмических конструкций; использовать навыки и опыт разработки программ в выбранной среде программирования, включая тестирование и отладку программ; использовать основные управляющие конструкции последовательного программирования и библиотеки прикладных программ; выполнять созданные программы; метапредметные: самостоятельно определять цели, задавать параметры и критерии, по которым можно определить, что цель достигнута; оценивать возможные последствия достижения поставленной цели в деятельности, собственной жизни и жизни окружающих людей, основываясь на соображениях этики и морали; ставить и формулировать собственные задачи в образовательной деятельности и жизненных ситуациях; оценивать ресурсы, в том числе время и другие нематериальные ресурсы, необходимые для достижения поставленной цели; выбирать путь достижения цели, планировать решение поставленных задач, оптимизируя материальные и нематериальные затраты; организовывать эффективный поиск ресурсов, необходимых для достижения поставленной цели; сопоставлять полученный результат деятельности с поставленной заранее целью; личностные: мировоззрение, соответствующее современному уровню развития науки, значимости науки, готовность к научно-техническому творчеству, владение достоверной информацией о передовых достижениях и открытиях мировой и отечественной науки, заинтересованность в научных знаниях об устройстве мира и общества. Решаемые учебные задачи: 1) познакомить учащихся с идеологией структурного программирования; 2) актуализировать и углубить представления о вспомогательных алгоритмах; 3) познакомить учащихся с рекурсивными алгоритмами и способами решения соответствующих задач; 4) познакомить учащихся с записью вспомогательных алгоритмов на языке Pascal. Основные понятия: структурное программирование, вспомогательный алгоритм, рекурсия, подпрограммы, процедуры, функции, фактические и формальные параметры, параметры-значения и параметры-переменные. |