- •Лабораторная работа №2 циклические программы
- •1Цель работы:
- •2Порядок проведения работы
- •3Теоретическая часть
- •3.1Цикл с постусловием
- •3.2Цикл с предусловием
- •3.3Цикл с параметром
- •4Пример
- •Одномерные массивы
- •5Доступ к элементам массива.
- •6Изменение значения некоторых элементов
- •8Нахождение номеров элементов с заданным свойством
- •11Нахождение количества элементов с заданным свойством
- •12Удаление элементов из одномерного массива.
- •13Вставка элементов в одномерный массив. Вставка одного элемента
- •14Вставка нескольких элементов
- •Двумерные массивы
- •Создание двумерного массива
- •Вывод массива в виде таблицы
- •16Практическая часть
Одномерные массивы
Задача. Дан массив а, состоящий из 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.
Для реализации различных методов сортировки необходимо подготовить несколько вспомогательных процедур и функций.
Функция, которая ищет минимальный элемент правее некоторого заданного и возвращает его номер в качестве результата. Аргументами функции являются номер элемента массива и обрабатываемый массив:
Большинство методов сортировок основаны на обмене двух чисел. Для этой цели предназначена процедура, которая в качестве параметров берет два числа и меняет их значения
Также пригодится процедура, которая берет элемент с индексом i, перемещает его на место элемента с номером j. А все элементы, которые имеют индексы от j до i-1 сдвигает на одну позицию вправо.
5Доступ к элементам массива.
Рассмотрите предложенные ниже фрагменты программ для решения некоторых типичных задач.
6Изменение значения некоторых элементов
Задача. Заменить отрицательные элементы на противоположные по знаку.
7
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.
8Нахождение номеров элементов с заданным свойством
Задача. Найти и вывести на экран номера четных элементов.
Для решения задачи необходимо просмотреть весь массив, и если просматриваемый элемент является четным, то выводить его номер..
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.
9
10