Similar presentations:
Методы работы с одномерными массивами
1.
2.
2Программирование
(Паскаль)
3.
Дан массив А[1..N].Заменить отрицательные
элементы массива на
противоположные по знаку
For i:=1 to N do
If A[i]<0 then A[i]:=-A[i];
4.
Дан массив А[1..N].Увеличить каждый элемент
массива на 25
For i:=1 to N do
A[i]:=A[i]+25;
5.
Дан массив А[1..N].Если элемент четный, то прибавить к
нему первый элемент, если нечетный –
последний элементы массива. Первый
и последний элементы не изменять
For i:=2 to N-1 do
If A[i] mod 2=0 then A[i]:=A[i]+A[1]
else A[i]:=A[i]+A[N];
6.
Даны два одномерных массива А[1..N] иВ[1..N]. Получить третий массив С,
такой же размерности, каждый элемент
которого равен сумме соответствующих
элементов исходных массивов.
For i:=1 to N do
С[i]:=A[i]+В[i];
7.
Даны два одномерных массива А[1..N] иВ[1..N]. Получить третий массив С, такой
же размерности, каждый элемент которого
равен наибольшему из соответствующих
элементов исходных массивов.
For i:=1 to N do
If A[i] > В[i] then C[i]:=A[i]
else С[i]:=В[i];
8.
Дан массив А[1..N]. Изменить знак напротивоположный у максимального по
модулю элемента массива
Max:=Abs(A[1]); j:=1;
For i:=2 to N do
If Abs(A[i])>Max then
Begin Max:=Abs(A[i]);
j:=i
end;
A[j]:=-A[j];
9.
Дан массив А[1..N]. Изменить знак напротивоположный у максимального по
модулю элемента массива
j:=1;
For i:=2 to N do
If Abs(A[i])>Abs(A[j]) then j:=i
A[j]:=-A[j];
10.
Дан массив А[1..N].Все четные элементы возвести в
квадрат, а нечетные - удвоить
For i:=1 to N do
If A[i] mod 2=0 then A[i]:=sqr(A[i])
else A[i]:=2*A[i];
11.
Дан массив А[1..N]. Из положительныхэлементов вычесть элемент с номером к1, а
отрицательные элементы увеличить на
значение элемента с номером к2.
Нулевые элементы оставить без изменения
For i:=1 to N do
If A[i]>0 then A[i]:=A[i]-A[k1]
else If A[i]<0 then
A[i]:= A[i]+A[k2];
12.
Дан массив А[1..N]. Из положительныхэлементов вычесть элемент с номером к1, а
отрицательные элементы увеличить на
значение элемента с номером к2.
Нулевые элементы оставить без изменения
w:=A[k1]; v :=A[k2];
For i:=1 to N do
If A[i]>0 then A[i]:=A[i]-w
else If A[i]<0 then
A[i]:= A[i]+v;
13.
Задача. Найти в массиве 2 наибольших элемента5
i
1
2
8
А[i]
М1
М2
-10
5
-5
-5
5
2
3
3
М1?
М2?
-5
-10
Условие,
действие
Результ
ат
Ответ
(да,
нет)
5>-5
M2=-5
M1=5
да
-5
-5
А[1]>M1
M2:=M1
M1:=А[1]
2>5
2>-5
M2=2
нет
да
2
А[2]>M1
А[2]>M2
M2:=А[2]
2
8
1
…
14.
15.
Задача1.Удалить из массива последний максимальный элемент
program qq;
begin
{ ввести массив}
{найти номер максимального элемента-к}
{сдвинуть все элементы массива,
начиная с k-го на один
элемент влево }
Псевдокод: алгоритм на
{ последнему элементу
массива
русском
языке с элементами
Паскаля.
присвоить 0}
{ вывести измененный массив на экран }
end.
! Компьютер не может исполнить псевдокод!
15
16.
16Поиск максимального элемента массива
? Как найти номер последнего
максимального элемента массива?
k:=1;
For i:=2 to N do
If A[i] >A[k] then k:=i
? Как найти номер первого
максимального элемента массива?
k:=N;
For i:=N-1 downto 1 do
If A[i] >A[k] then k:=i
17.
17Сдвиг элементов массива
? Как сдвинуть элементы массива влево,
начиная с позиции к?
For i:=к to N-1 do A[i]:=A[i+1];
A[N]:=0;
? Как сдвинуть элементы массива
вправо, начиная с позиции к?
For i:=к downto 2 do
A[i]:=A[i-1];
A[1]:=0;
18.
Задача 2.Удалить из массива все элементы, равные максимальному
program qq1;
begin
{ ввести массив}
{найти максимальный элемент Amax}
{просматривая элементы массива слева направо
выполняем следующие действия:
- находим элемент, равный Amax
- сдвигаем все элементы массива, начиная с
позиции найденного элемента на один элемент
влево
-последнему элементу массива присваиваем 0}
{ вывести измененный массив на экран }
end.
18
19.
Задача 3.Вставить заданное число M после первого максимального
элемента массива
program qq2;
begin
{ ввести массив}
{найти номер первого максимального
элемента-к}
{сдвинуть все элементы массива, начиная
с k+1-го на одну позицию вправо}
{ элементу массива с номером k+1
присвоить значение M}
{ вывести измененный массив на экран }
end.
19
20.
20Идея решения задачи
? Как найти номер первого
максимального элемента массива?
k:=N;
For i:=N-1 downto 1 do
If A[i] >A[k] then k:=i;
? Как сдвинуть элементы массива
вправо, начиная с позиции к+1?
For i:=N downto k+1 do
A[i+1]:=A[i];
A[k+1]:=M; N:=N+1;
21.
21Ответьте на вопросы
? Как вставить заданное число перед первым
максимальным элементом массива?
For i:=N downto k do
A[i+1]:=A[i];
A[k]:=M; N:=N+1;
? Как вставить заданное число перед
каждым максимальным элементом
массива?
? Как вставить заданное число после
каждого максимального элемента
массива?
22.
22Программирование
(Паскаль)
Подготовка к практической
работе по теме «Алгоритмы
обработки массивов»
23.
Отчет по практической работе №«Работа с одномерными массивами»
Условие задачи.
Данные о росте 15 юношей класса,
упорядоченные по убыванию, записаны
в массиве. В начале учебного года
поступил новый ученик. Получить
аналогичный массив, учитывающий
рост нового ученика
24.
1. Информационная модельИсходные данные.
N – количество элементов массива
А [1..N] - массив целых чисел, каждый элемент
которого - рост соответствующего учащегося.
R – рост прибывшего ученика
Результат
В [1..N] - массив целых чисел, каждый элемент
которого - рост соответствующего учащегося.
Дополнительные переменные
i – переменная цикла (счетчик, порядковый номер
ученика в цикле)
M – номер позиции в массиве нового ученика
25.
2. Идея решения задачи1. Ввести N и R
2. Ввести массив А [1..N](упорядочен по
убыванию)
3.Определить порядковый номер элемента
массива, после которого необходимо
вставить число R (М)
4.Переписать в массив В все элементы
массива А, начиная с 1 по М
5. В[M]:=R
6. Переписать в массив В все элементы
массива А, начиная с М+1 по N
7. вывести на экран массив В
26.
Блок-схемаНачало
M:=i
i:=1
i:=1, M-1
N, R
A[i]>R
и i<=N
i:=1, N
B[i}:=A[i}
i:=i+1
B[M}:=R
A[i]
Конец
i:=1, N+1
i:=M+1, N
B[i]
B[i}:=A[i}
27.
ПрограммаProgram PR1;
const NM = 15;
var A,B: array[1..NM] of integer;
N, i, M:integer;
Begin
Write(‘N=‘);Readln(N);
Write(‘R=‘);Readln(R);
for i:=1 to N do Read (A[i]);
i:= 1;
While (A[i]>R) and (i<=N) do inc(i);
…;
End.
28.
Компьютерный экспериментКомпьютерный эксперимент 1
N=… R=…
A
B
Компьютерный эксперимент 3
N=…
Компьютерный эксперимент 2
N=…
A
B
29.
Выводы по практической работе.1. Разработала
2. Выполнила
3. Провела
4. Проверила
Результаты компьютерных экспериментов
показали, что задача решена верно