Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 8 лет назад пользователемЛариса Подстречная
1 РЕШЕНИЕ ЗАДАЧ по теме: МАССИВЫ Выполнила учитель информатики МБОУ «СОШ с. Грачев Куст Перелюбского муниципального района Саратовской области» Подстречная Лариса Дмитриевна уч. год
2 Задача 1 Заполните массив элементами арифметической прогрессии. Её первый элемент и разность вводятся с клавиатуры
3 Решение: program z1; const n=10; var a:array [1..n] of integer; k,d: integer; begin a[1]:=5; d:=7; for k:=2 to n do a[k]:=a[1]+d*(k-1); for k:=1 to n do write(a[k]:3); end.
4 Задача 2 Заполните массив степенями числа 2 (от до ).
5 Решение: program pr1; const n=20; var a:array [1..n] of real; i:integer; begin for i:=1 to n do a[i]:=power(2,i); for i:=1 to n do writeln('a[i]=',a[i]); readln; end.
6 Числа Фибоначчи
7 Задача 3 Заполните массив первыми числами Фибоначчи. Решение: program z3; const n=10; var f:array [1..10] of integer; k:integer; begin f[1]:=1; f[2]:=1; for k:=3 to n do f[k]:=f[k-2]+f[k-1]; for k:=1 to n do write(f[k]:3); end.
8 Задача 4 Заполните массив из N элементов случайными целыми числами в диапазоне 1..n так, чтобы в массив обязательно вошли все числа от 1 до n (постройте случайную перестановку).
9 Решение: program z4; const n=5; var a:array[1..n]of integer; i,b,k,j,x:integer; begin randomize; writeln('Исходный массив:'); for i:=1 to n do begin a[i]:=random(50); write(a[i],' '); end; writeln; b:=a[1];{запомним первый, он будет меняться} k:=0;{количество перестановок} for i:=1 to n do if a[i]>b then{если больше первого} begin k:=k+1;{считаем} x:=a[i];{запоминаем его} for j:=i downto k+1 do {сдвигаем на него еще не переставленные элементы в начале} a[j]:=a[j-1]; a[k]:=x;{вставляем его на место 1,2,3...} end; writeln('Перестановка:'); for i:=1 to n do write(a[i],' '); readln end.
10 Задача 5 Постройте случайную перестановку чисел от 1 до n так, чтобы первое число обязательно было равно 5 (n>=5).
11 Решение: program z5; const n=5; var a:array[1..n]of integer; i,b,k,j,x:integer; begin randomize; writeln('Исходный массив:'); for i:=1 to n do begin a[i]:=random(50); write(a[i],' '); end; writeln; b:=a[1]; k:=0; for i:=1 to n do if a[i]>b then begin k:=k+1; x:=a[i]; for j:=i downto k+1 do a[j]:=a[j-1]; a[k]:=x; end; i:=1; if a[i]=5 then writeln('первый элемент=',a[i]); writeln('Перестановка:'); for i:=1 to n do write(a[i],' '); readln end.
12 Задача 6 Заполните массив случайными числами в диапазоне и подсчитайте отдельно число элементов массива с четными и нечетными значениями.
13 Решение: program z6; const n=10; var a:array[1..n] of integer; i,s1,s2:integer; begin randomize; for i:=1 to n do begin a[i]:=random(81)+20; write(a[i]:5); end; writeln; s1:=0; for i:=1 to n do begin if a[i] mod 2=0 then begin s1:=s1+1; end; writeln('количество четных элементов=',s1:5); end; s2:=0; for i:=1 to n do begin if a[i] mod 2 <>0 then begin s2:=s2+1; end; writeln('количество нечетных элементов=',s2:5); end; readln; end.
14 Задача 7 Заполните массив случайными числами в диапазоне и подсчитайте число элементов, у которых вторая с конца цифра – четная.
15 Решение: program z7; const n=10; var a:array[1..n] of integer; i,s:integer; begin randomize; for i:=1 to n do begin a[i]:=random(1001)+1000; write(a[i]:5); end; writeln; s:=0; for i:=1 to n do begin if (((a[i] mod 1000) mod 100) div 10) mod 2=0 then begin s:=s+1; end; writeln('количество элементов=',s:5); end; readln; end.
16 Задача 8 Заполните массив случайными числами в диапазоне и подсчитайте отдельно среднее значение всех элементов, меньших 50, и среднее значение всех элементов, которые больше или равны 50.
17 Решение: program z8; const n=5; var a:array[1..n] of integer; i,s1,s2,k1,k2:integer; sr:real; begin randomize; for i:=1 to n do begin a[i]:=random(101); write(a[i]:5); end; writeln; k1:=0;s1:=0; for i:=1 to n do begin if a[i]<50 then begin s1:=s1+a[i]; k1:=k1+1; end; sr:=s1/k1; writeln('sr=',sr); writeln; k2:=0; for i:=1 to n do begin if a[i]>50 then begin s2:=s2+a[i]; k2:=k2+1; end; sr:=s2/k2; writeln('sr=',sr); readln; end.
18 Задача С2 (ЕГЭ 2013) Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 100. Опишите на русском языке или на одном из языков программирования алгоритм, позволяющий найти и вывести произведение элементов массива, которые имеют нечётное значение и делятся на 3. Гарантируется, что в исходном массиве есть хотя бы один элемент, значение которого нечётно и кратно 3. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них. Исходные данные всегда подобраны так, что результат произведения не выходит за пределы объявленных типов данных.
20 В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
21 Решение: Решение: Используем язык программирования Pascal ABC. Net program c2; const N=30; var a: array [1..N] of longint; i, j, p: longint; begin randomize; for i := 1 to N do begin a[i]:=random(100); write(a[i]:5); end; writeln; p:=1; for i:=1 to N do if (a[i] mod 2<>0) and (a[i] mod 3=0) then begin p:=p*a[i]; end; writeln('произведение элементов массива нечетных и кратных 3 равно:',p:5); writeln; readln; end.
22 Источники: Рисунок для фона К.Ю. Поляков, Е.А. Еремин Информатика 10 класс (углубленный уровень, 2 часть) БИНОМ, Лаборатория знаний, 2013 Г.Г. Рапаков, С.Ю. Ржеуцкая Turbo Pascal для студентов и школьников, изд-во «БХВ- Петербург», 2002 ФИПИ 2013 г.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.