Изменение значения некоторых элементов
Лабораторная работа №5
Одномерные массивы
Задача. Дан массив а, состоящий из 10 элементов. Составить программу поиска максимального элемента массива.
Используем идею предыдущей задачи. Перед началом поиска выберем условно в качестве максимального первый элемент массива Max:=a[1]. Затем по очереди каждый элемент массива сравним со значением переменной m. Если он окажется больше, то изменим значение Max. После анализа всех элементов массива переменная Max содержит значение максимального элемента массива.
. . .
Max:=a[1];
for i := 2 to 10 do
if Max<a[i]
then
Max := a[i];
. . .
Задача. Дан массив а, состоящий из 10 элементов. Составить программу поиска элементов массива.
program sorting;
const
n=20; {}
Type
Tarray=array[1..n] of integer;
var i,buf,j:integer;
a:Tarray;
begin
writeln('сортировка по возрастанию');
writeln('заполнение массива');
for i:=1 to n do begin
a [i]:=random(100);
write(a[i]:3, ' ' );
end;
for i:=2 to n do
for j:=n downto 1 do
if a[j-1]>a[j] then
begin buf:=a[j-1];
a[j-1]:=a[j];
a[j]:=buf;
end;
writeln('сортированный массив');
for j:=1 to n do
write(a[j]:3, ' ' );
readln;
end.
Для реализации различных методов сортировки необходимо подготовить несколько вспомогательных процедур и функций.
1. Функция, которая ищет минимальный элемент правее некоторого заданного и возвращает его номер в качестве результата. Аргументами функции являются номер элемента массива и обрабатываемый массив:
2. Большинство методов сортировок основаны на обмене двух чисел. Для этой цели предназначена процедура, которая в качестве параметров берет два числа и меняет их значения
3. Также пригодится процедура, которая берет элемент с индексом i, перемещает его на место элемента с номером j. А все элементы, которые имеют индексы от j до i-1 сдвигает на одну позицию вправо.
Доступ к элементам массива.
Рассмотрите предложенные ниже фрагменты программ для решения некоторых типичных задач.
Изменение значения некоторых элементов
Задача. Заменить отрицательные элементы на противоположные по знаку.
program Zamena;
const
n=20;
Type
Tarray=array[1..n] of integer;
var i:integer;
a:Tarray;
begin
writeln('замена отрицательного знака на положительный’);
writeln('заполнение массива');
randomize;
for i:=1 to n do begin
a [i]:=random(10+20)-20;
write(a[i]:3, ' ' );
end;
for i:=1 to n do
if a[i]<0 then
a[i]:=-1*a[i];
writeln('новый массив');
for i:=1 to n do
write(a[i]:3, ' ' );
readln;
end.
Нахождение номеров элементов с заданным свойством
Задача. Найти и вывести на экран номера четных элементов.
Для решения задачи необходимо просмотреть весь массив, и если просматриваемый элемент является четным, то выводить его номер..
program PoiskChet;
const
n=20;
Type
Tarray=array[1..n] of integer;
var i:integer;
a:Tarray;
begin
writeln('нахождение номера четного элемента');
writeln('заполнение массива');
randomize;
for i:=1 to n do begin
a [i]:=random(100);
write(a[i]:3, ' ' );
end;
writeln('номер четного элемента');
for i:=1 to n do
if a[i] mod 2 = 0 then
write(i:5);
readln;
end.
Нахождение количества элементов с заданным свойством
Задача. Найти количество положительных и отрицательных элементов в данном массиве.
program kolichestvo;
const
n=20; {}
Type
Tarray=array[1..n] of integer;
var i,k1,k2,j:integer;
a:Tarray;
begin
writeln('подсчет положительных и отрицательных элементов в массиве ');
writeln('заполнение массива');
randomize;
for i:=1 to n do begin
a [i]:=random(10+20)-20;
write(a[i]:3, ' ' );
end;
k1:=0;
k2:=0;
for i:=1 to n do
if a[i] > 0 then inc(k1)
else if a[i]<0 then inc(k2);
writeln('количество положительных элементов');
writeln('k1=',k1);
writeln('количество отрицательных элементов');
writeln('k2=',k2);
readln;
end.
Перестановка элементов массива.
Перестановка двух элементов
Задача. Поменять местами два элемента массива с номерами k1 и k2. Эту задачу можно решить следующим образом:
Var
m : MyArray;
n, k1, k2, x : integer;
Begin
x:=m[k1];
m[k1] := m[k2];
m[k2] := x;
End;
Перестановка части массива
Задача. Дан одномерный массив А, состоящий из 2n элементов. Поменять местами первую и вторую его половины
Заметим лишь, что необходимо поменять местами элементы с номерами 1 и n+1, 2 и n+2 и т.д., последняя пара - n и 2n, а значит, обмен происходит по правилу: элемент с номером i меняется местами с элементом с номером n+i.
Лабораторная работа №5
Одномерные массивы
Задача. Дан массив а, состоящий из 10 элементов. Составить программу поиска максимального элемента массива.
Используем идею предыдущей задачи. Перед началом поиска выберем условно в качестве максимального первый элемент массива Max:=a[1]. Затем по очереди каждый элемент массива сравним со значением переменной m. Если он окажется больше, то изменим значение Max. После анализа всех элементов массива переменная Max содержит значение максимального элемента массива.
. . .
Max:=a[1];
for i := 2 to 10 do
if Max<a[i]
then
Max := a[i];
. . .
Задача. Дан массив а, состоящий из 10 элементов. Составить программу поиска элементов массива.
program sorting;
const
n=20; {}
Type
Tarray=array[1..n] of integer;
var i,buf,j:integer;
a:Tarray;
begin
writeln('сортировка по возрастанию');
writeln('заполнение массива');
for i:=1 to n do begin
a [i]:=random(100);
write(a[i]:3, ' ' );
end;
for i:=2 to n do
for j:=n downto 1 do
if a[j-1]>a[j] then
begin buf:=a[j-1];
a[j-1]:=a[j];
a[j]:=buf;
end;
writeln('сортированный массив');
for j:=1 to n do
write(a[j]:3, ' ' );
readln;
end.
Для реализации различных методов сортировки необходимо подготовить несколько вспомогательных процедур и функций.
1. Функция, которая ищет минимальный элемент правее некоторого заданного и возвращает его номер в качестве результата. Аргументами функции являются номер элемента массива и обрабатываемый массив:
2. Большинство методов сортировок основаны на обмене двух чисел. Для этой цели предназначена процедура, которая в качестве параметров берет два числа и меняет их значения
3. Также пригодится процедура, которая берет элемент с индексом i, перемещает его на место элемента с номером j. А все элементы, которые имеют индексы от j до i-1 сдвигает на одну позицию вправо.
Доступ к элементам массива.
Рассмотрите предложенные ниже фрагменты программ для решения некоторых типичных задач.
Изменение значения некоторых элементов
Задача. Заменить отрицательные элементы на противоположные по знаку.
program Zamena;
const
n=20;
Type
Tarray=array[1..n] of integer;
var i:integer;
a:Tarray;
begin
writeln('замена отрицательного знака на положительный’);
writeln('заполнение массива');
randomize;
for i:=1 to n do begin
a [i]:=random(10+20)-20;
write(a[i]:3, ' ' );
end;
for i:=1 to n do
if a[i]<0 then
a[i]:=-1*a[i];
writeln('новый массив');
for i:=1 to n do
write(a[i]:3, ' ' );
readln;
end.