СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Презентация "Массивы в языке программирования Pascal"

Категория: Информатика

Нажмите, чтобы узнать подробности

Презентация по теме "Массивы в языке программирования Pascal" может быть использована при изучении программирования на уроках информатики в 10-11 классах. Используется система программирования PascalABC.NET. Разбираются типовые задачи по  обработке массивов, ко всем программам прилагаются скриншоты окна вывода при тестовом запуске программы.

Просмотр содержимого документа
«Презентация "Массивы в языке программирования Pascal"»

Язык программирования Паскаль  (версия PascalABC.NET) Массивы  в языке программирования Pascal

Язык программирования Паскаль (версия PascalABC.NET)

Массивы в языке программирования Pascal

Массив –  совокупность пронумерованных величин одного типа, объединённых одним именем.  Индекс – порядковый номер элемента в массиве. Каждый элемент массива обозначается индексированным именем : Имя[индекс] Например: A[1]  – первый элемент массива A. Массивы бывают одномерные ( линейные ) и двумерные ( прямоугольные ).

Массив – совокупность пронумерованных величин одного типа, объединённых одним именем.

Индекс – порядковый номер элемента в массиве.

Каждый элемент массива обозначается индексированным именем :

Имя[индекс]

Например:

A[1] – первый элемент массива A.

Массивы бывают одномерные ( линейные ) и двумерные ( прямоугольные ).

Одномерный (линейный) массив  A i → A[i] 1 2 -5 3 -3 4 -6 -1 5 6 0 4 7 2 8 3 9 10 -1 -3 i  – номер элемента A[1]=-5; A[2]=-3; . . . A[10]=-3 Двумерный (прямоугольный) массив  B i  – номер строки j  – номер столбца B[i,j] i ↓ 1 j → 2 1 0 2 3 -1 1 3 -2 0 4 2 -1 1 -3 0 -2 -4 B[1,3]=-2 B[3,1]= 2

Одномерный (линейный) массив A

i

A[i]

1

2

-5

3

-3

4

-6

-1

5

6

0

4

7

2

8

3

9

10

-1

-3

iномер элемента

A[1]=-5; A[2]=-3; . . . A[10]=-3

Двумерный (прямоугольный) массив B

iномер строки

jномер столбца

B[i,j]

i

1

j

2

1

0

2

3

-1

1

3

-2

0

4

2

-1

1

-3

0

-2

-4

B[1,3]=-2

B[3,1]= 2

Описание массивов Необходимо указать имя, диапазон изменения индексов, тип. Var : array [N..K] of ; N  – первый индекс K  – последний индекс Например: var A: array [ 1..10 ] of real ;  B: array [ 1..3 , 1..4 ] of integer ; Первый и последний индексы могут быть описаны как константы  (легче модифицировать программу): const N = 5 ; var A: array [ 1. .N] of integer ;

Описание массивов

Необходимо указать имя, диапазон изменения индексов, тип.

Var : array [N..K] of ;

N – первый индекс

K – последний индекс

Например:

var A: array [ 1..10 ] of real ;

B: array [ 1..3 , 1..4 ] of integer ;

Первый и последний индексы могут быть описаны как константы (легче модифицировать программу):

const N = 5 ;

var A: array [ 1. .N] of integer ;

Вывод линейного массива на экран  for i:= 1 to 10 do //перебор индексов  write(A[i], ' ' ); //вывод через пробел  for i:= 1 to 10 do //перебор индексов  write(A[i]:5); //вывод по 5 позиций

Вывод линейного массива на экран

for i:= 1 to 10 do //перебор индексов

write(A[i], ' ' ); //вывод через пробел

for i:= 1 to 10 do //перебор индексов

write(A[i]:5); //вывод по 5 позиций

Заполнение массивов 1 способ. Ввод с клавиатуры  (при небольшом количестве элементов)  for i:= 1 to 5 do //перебор индексов  read (A[i]); //ввод значения Значения вводятся через пробел, завершается ввод нажатием Enter.

Заполнение массивов

1 способ. Ввод с клавиатуры (при небольшом количестве элементов)

for i:= 1 to 5 do //перебор индексов

read (A[i]); //ввод значения

Значения вводятся через пробел, завершается ввод нажатием Enter.

Заполнение массивов 2 способ. Вычисление по формуле  (функция от индекса) for i:= 1 to 10  do //перебор индексов  A[i]:=i*i; //квадрат индекса

Заполнение массивов

2 способ. Вычисление по формуле (функция от индекса)

for i:= 1 to 10 do //перебор индексов

A[i]:=i*i; //квадрат индекса

Заполнение массивов 3 способ. Заполнение случайными числами   Функция Random(x) создаёт случайное целое число в диапазоне  от 0 до x-1 .  Для получения случайного целого числа в диапазоне [A, B]  используется выражение: Random(B-A+1)+A . for i:= 1 to 10  do //перебор индексов  A[i]:=random( 11 )- 5 ; //число от -5 до 5

Заполнение массивов

3 способ. Заполнение случайными числами

  • Функция Random(x) создаёт случайное целое число в диапазоне от 0 до x-1 .
  • Для получения случайного целого числа в диапазоне [A, B] используется выражение: Random(B-A+1)+A .

for i:= 1 to 10 do //перебор индексов

A[i]:=random( 11 )- 5 ; //число от -5 до 5

Заполнение массивов 4 способ. Описание массива как константы   (элементы массива нельзя изменять) const A: array [ 1..10 ]  of integer =(- 5 ,- 3 ,- 6 ,- 1 , 0 , 4 , 2 , 3 ,- 1 ,- 3 );

Заполнение массивов

4 способ. Описание массива как константы (элементы массива нельзя изменять)

const A: array [ 1..10 ]

of integer =(- 5 ,- 3 ,- 6 ,- 1 , 0 , 4 , 2 , 3 ,- 1 ,- 3 );

Задача 1 Определить средний балл 10 учеников, сдававших ЕГЭ  по информатике. Program Sred_ball; Const n= 10 ; Var a: array [ 1. .n] of integer ;  i, sum: integer ; sred: real ; Begin writeln( 'Введите оценки:' ); for i:= 1 to n do //перебор индексов от 1 до n  begin  write (i, ' оценка: ' ); //вывод номера элемента  readln (a[i]); //ввод i-го элемента  end ; sum:= 0 ; //начальное значение суммы for i:= 1 to n do //перебор индексов от 1 до n  sum:=sum+a[i]; //добавление элемента к сумме sred:=sum/n; //среднее арифметическое writeln ( 'Средний балл: ' , sred: 5 : 2 ); End .

Задача 1

Определить средний балл 10 учеников, сдававших ЕГЭ по информатике.

Program Sred_ball;

Const n= 10 ;

Var a: array [ 1. .n] of integer ;

i, sum: integer ; sred: real ;

Begin

writeln( 'Введите оценки:' );

for i:= 1 to n do //перебор индексов от 1 до n

begin

write (i, ' оценка: ' ); //вывод номера элемента

readln (a[i]); //ввод i-го элемента

end ;

sum:= 0 ; //начальное значение суммы

for i:= 1 to n do //перебор индексов от 1 до n

sum:=sum+a[i]; //добавление элемента к сумме

sred:=sum/n; //среднее арифметическое

writeln ( 'Средний балл: ' , sred: 5 : 2 );

End .

0 then pol:=pol+ 1 ; //если положит., то +1 writeln( 'Количество положительных ' , pol); End . " width="640"

Задача 2

Подсчитать количество положительных значений функции y(x) = x 2 – x – 10 для x = 1; 2; 3;…; 20 .

Program Kol_Pol;

Const n= 20 ;

Var y: array [ 1. .n] of integer ;

x, pol: integer ;

Begin

writeln ( 'Данный массив:' );

for x:= 1 to n do //перебор индексов от 1 до n

begin

y[x]:=x*x-x- 10 ; //вычисление элемента массива

write(y[x]: 4 ); //вывод его на экран

end ;

writeln; //вывод со следующей строки

pol:= 0 ; //начальное значение счетчика

for x:= 1 to n do //перебор индексов от 1 до n

if y[x] 0 then pol:=pol+ 1 ; //если положит., то +1

writeln( 'Количество положительных ' , pol);

End .

Задача 3 Получить новый массив, каждый элемент которого противоположен  по знаку соответствующим элементам исходного массива. Program New_Mas; Const n = 20 ; Var a, b: array [ 1. .n] of integer ; i: integer ; Begin writeln ( 'Исходный массив' ); for i:= 1 to n do //перебор индексов от 1 до n  begin  a[i]:=random( 21 )- 10 ; //очередной элемент массива  write(a[i]: 4 ); //вывод элемента на экран  end ; writeln; //вывод с новой строки writeln ( 'Новый массив' ); for i:= 1 to n do //перебор индексов от 1 до n  begin  b[i]:=-a[i]; //противоположный по знаку  write(b[i]: 4 ); //вывод элемента на экран  end ; End .

Задача 3

Получить новый массив, каждый элемент которого противоположен по знаку соответствующим элементам исходного массива.

Program New_Mas;

Const n = 20 ;

Var a, b: array [ 1. .n] of integer ; i: integer ;

Begin

writeln ( 'Исходный массив' );

for i:= 1 to n do //перебор индексов от 1 до n

begin

a[i]:=random( 21 )- 10 ; //очередной элемент массива

write(a[i]: 4 ); //вывод элемента на экран

end ;

writeln; //вывод с новой строки

writeln ( 'Новый массив' );

for i:= 1 to n do //перебор индексов от 1 до n

begin

b[i]:=-a[i]; //противоположный по знаку

write(b[i]: 4 ); //вывод элемента на экран

end ;

End .

Задача 4 В таблице значений среднесуточной температуры за декаду месяца найти самый холодный день и указать его номер. Program Min_temp; Const n=10;  t: array [ 1..10 ] of integer =(3,5,6,4,2,9,7,5,4,7) ; Var i, imin: integer ; Begin writeln ( 'Среднесуточная температура за декаду' ); for i:= 1 to n do //вывод массива на экран  write(t[i]: 4 ); writeln; //переход на новую строку imin:= 1 ; //считаем 1-й минимальным for i:= 2 to n do //перебор элементов от 2 до n  if t[i]then //если знач. меньше меньшего  imin:=i; //запоминаем текущий индекс writeln( 'Минимальная температура ' , t[imin]); writeln( 'День номер ' , imin); End .

Задача 4

В таблице значений среднесуточной температуры за декаду месяца найти самый холодный день и указать его номер.

Program Min_temp;

Const n=10;

t: array [ 1..10 ] of integer =(3,5,6,4,2,9,7,5,4,7) ;

Var i, imin: integer ;

Begin

writeln ( 'Среднесуточная температура за декаду' );

for i:= 1 to n do //вывод массива на экран

write(t[i]: 4 );

writeln; //переход на новую строку

imin:= 1 ; //считаем 1-й минимальным

for i:= 2 to n do //перебор элементов от 2 до n

if t[i]then //если знач. меньше меньшего

imin:=i; //запоминаем текущий индекс

writeln( 'Минимальная температура ' , t[imin]);

writeln( 'День номер ' , imin);

End .

Обработка двумерных массивов Для работы с элементами двумерного массива используются  вложенные циклы . T[i,j] j → 1 4 3 2 i ↓ i 1 j 1 2 3 2 4 1 2 3 3 4 1 2 3 4 1 2 3 for i:= 1 to 3 do begin //перебор строк  for j:= 1 to 4 do begin //перебор столбцов  T[i,j]:=i*j; //вычисление элемента  write(T[i,j]: 3 ); //вывод на экран  end ; //конец цикла по столбцам  writeln; //переход на новую строку end ; //конец цикла по строкам

Обработка двумерных массивов

Для работы с элементами двумерного массива используются вложенные циклы .

T[i,j]

j

1

4

3

2

i

i

1

j

1

2

3

2

4

1

2

3

3

4

1

2

3

4

1

2

3

for i:= 1 to 3 do begin //перебор строк

for j:= 1 to 4 do begin //перебор столбцов

T[i,j]:=i*j; //вычисление элемента

write(T[i,j]: 3 ); //вывод на экран

end ; //конец цикла по столбцам

writeln; //переход на новую строку

end ; //конец цикла по строкам

Обработка двумерных массивов T[i,j] Для работы с элементами двумерного массива используются  вложенные циклы . j → 3 4 1 2 i ↓ 4 2 3 i j 1 1 2 3 2 4 1 2 3 4 3 1 2 3 4 1 1 2 3 for i:= 1 to 3 do begin //перебор строк  for j:= 1 to 4 do begin //перебор столбцов  T[i,j]:=i*j; //вычисление элемента  write(T[i,j]: 3 ); //вывод на экран  end ; //конец цикла по столбцам  writeln; //переход на новую строку end ; //конец цикла по строкам

Обработка двумерных массивов

T[i,j]

Для работы с элементами двумерного массива используются вложенные циклы .

j

3

4

1

2

i

4

2

3

i

j

1

1

2

3

2

4

1

2

3

4

3

1

2

3

4

1

1

2

3

for i:= 1 to 3 do begin //перебор строк

for j:= 1 to 4 do begin //перебор столбцов

T[i,j]:=i*j; //вычисление элемента

write(T[i,j]: 3 ); //вывод на экран

end ; //конец цикла по столбцам

writeln; //переход на новую строку

end ; //конец цикла по строкам

Обработка двумерных массивов T[i,j] Для работы с элементами двумерного массива используются  вложенные циклы . j → 1 2 3 4 i ↓ 2 3 4 i 1 j 1 2 3 4 2 1 2 3 4 3 1 2 3 4 1 1 2 4 6 8 2 3 for i:= 1 to 3 do begin //перебор строк  for j:= 1 to 4 do begin //перебор столбцов  T[i,j]:=i*j; //вычисление элемента  write(T[i,j]: 3 ); //вывод на экран  end ; //конец цикла по столбцам  writeln; //переход на новую строку end ; //конец цикла по строкам

Обработка двумерных массивов

T[i,j]

Для работы с элементами двумерного массива используются вложенные циклы .

j

1

2

3

4

i

2

3

4

i

1

j

1

2

3

4

2

1

2

3

4

3

1

2

3

4

1

1

2

4

6

8

2

3

for i:= 1 to 3 do begin //перебор строк

for j:= 1 to 4 do begin //перебор столбцов

T[i,j]:=i*j; //вычисление элемента

write(T[i,j]: 3 ); //вывод на экран

end ; //конец цикла по столбцам

writeln; //переход на новую строку

end ; //конец цикла по строкам

Обработка двумерных массивов T[i,j] Для работы с элементами двумерного массива используются  вложенные циклы . j → 2 4 3 1 i ↓ 2 3 4 i j 1 1 2 3 4 2 1 2 3 4 3 1 2 3 4 1 1 8 2 4 6 2 12 9 6 3 3 for i:= 1 to 3 do begin //перебор строк  for j:= 1 to 4 do begin //перебор столбцов  T[i,j]:=i*j; //вычисление элемента  write(T[i,j]: 3 ); //вывод на экран  end ; //конец цикла по столбцам  writeln; //переход на новую строку end ; //конец цикла по строкам

Обработка двумерных массивов

T[i,j]

Для работы с элементами двумерного массива используются вложенные циклы .

j

2

4

3

1

i

2

3

4

i

j

1

1

2

3

4

2

1

2

3

4

3

1

2

3

4

1

1

8

2

4

6

2

12

9

6

3

3

for i:= 1 to 3 do begin //перебор строк

for j:= 1 to 4 do begin //перебор столбцов

T[i,j]:=i*j; //вычисление элемента

write(T[i,j]: 3 ); //вывод на экран

end ; //конец цикла по столбцам

writeln; //переход на новую строку

end ; //конец цикла по строкам

Задача 5 Вывести на экран таблицу Пифагора, в которой каждый элемент равен произведению номера строки на номер столбца. Program Pifagor; Const k= 9 ; n= 9 ; //количество строк и столбцов Var p: array [ 1. .k, 1. .n] of integer ;  i, j: integer ; Begin writeln ( 'Таблица Пифагора' ); for i:= 1 to k do begin //цикл по строкам  for j:= 1 to n do begin //цикл по столбцам  p[i,j]:=i*j; //вычисление элемента  write(p[i,j]: 4 ); //вывод на экран  end ; //конец цикла по столбцам  writeln; //переход на новую строку end ; //конец цикла по строкам End .

Задача 5

Вывести на экран таблицу Пифагора, в которой каждый элемент равен произведению номера строки на номер столбца.

Program Pifagor;

Const k= 9 ; n= 9 ; //количество строк и столбцов

Var p: array [ 1. .k, 1. .n] of integer ;

i, j: integer ;

Begin

writeln ( 'Таблица Пифагора' );

for i:= 1 to k do begin //цикл по строкам

for j:= 1 to n do begin //цикл по столбцам

p[i,j]:=i*j; //вычисление элемента

write(p[i,j]: 4 ); //вывод на экран

end ; //конец цикла по столбцам

writeln; //переход на новую строку

end ; //конец цикла по строкам

End .

Задача 6 Вычислить среднее арифметическое элементов двумерного массива. Program Mas2_sred; Const k= 10 ; n= 10 ; //количество строк и столбцов Var a: array [ 1. .k, 1. .n] of integer ;  i, j, s: integer ; sred: real ; Begin s:= 0 ; //начальное значение суммы writeln ( 'Случайные элементы массива' ); for i:= 1 to K do begin //цикл по строкам  for j:= 1 to N do begin //цикл по столбцам  a[i,j]:=random( 100 ); //случайное число от 0 до 99  write(a[i,j]: 4 ); //вывод на экран  s:=s+a[i,j]; //накопление суммы  end ; //конец цикла по столбцам  writeln; //переход на новую строку end ; //конец цикла по строкам sred:=s/(N*K); //среднее арифметическое writeln ( 'Среднее арифметическое ' , sred); End .

Задача 6

Вычислить среднее арифметическое элементов двумерного массива.

Program Mas2_sred;

Const k= 10 ; n= 10 ; //количество строк и столбцов

Var a: array [ 1. .k, 1. .n] of integer ;

i, j, s: integer ; sred: real ;

Begin

s:= 0 ; //начальное значение суммы

writeln ( 'Случайные элементы массива' );

for i:= 1 to K do begin //цикл по строкам

for j:= 1 to N do begin //цикл по столбцам

a[i,j]:=random( 100 ); //случайное число от 0 до 99

write(a[i,j]: 4 ); //вывод на экран

s:=s+a[i,j]; //накопление суммы

end ; //конец цикла по столбцам

writeln; //переход на новую строку

end ; //конец цикла по строкам

sred:=s/(N*K); //среднее арифметическое

writeln ( 'Среднее арифметическое ' , sred);

End .

Сортировка массива Задача . Упорядочить массив в порядке возрастания значений  его элементов. Алгоритм сортировки методом обмена (метод «пузырька») Последовательно сравнить пары соседних чисел и при необходимости поменять их местами, и т.д. для каждой пары. За один проход самое большое число окажется на последнем месте. Затем повторить проход до элемента, уже находящегося на своем месте. И т. д. Исходные значения A[1] 1-й проход A[2] 5 A[3] 4 2-й проход A[4] 2 3-й проход 3 4-й проход A[5] 1

Сортировка массива

Задача . Упорядочить массив в порядке возрастания значений его элементов.

Алгоритм сортировки методом обмена (метод «пузырька»)

Последовательно сравнить пары соседних чисел и при необходимости поменять их местами, и т.д. для каждой пары. За один проход самое большое число окажется на последнем месте. Затем повторить проход до элемента, уже находящегося на своем месте. И т. д.

Исходные значения

A[1]

1-й проход

A[2]

5

A[3]

4

2-й проход

A[4]

2

3-й проход

3

4-й проход

A[5]

1

Сортировка массива Задача . Упорядочить массив в порядке возрастания значений  его элементов. Алгоритм сортировки методом обмена (метод «пузырька») Последовательно сравнить пары соседних чисел и при необходимости поменять их местами, и т.д. для каждой пары. За один проход самое большое число окажется на последнем месте. Затем повторить проход до элемента, уже находящегося на своем месте. И т. д. Исходные значения A[1] 1-й проход A[2] 5 A[3] 4 2-й проход 3-й проход A[4] 2 4-й проход 3 A[5] 1 4 2 3 1 5

Сортировка массива

Задача . Упорядочить массив в порядке возрастания значений его элементов.

Алгоритм сортировки методом обмена (метод «пузырька»)

Последовательно сравнить пары соседних чисел и при необходимости поменять их местами, и т.д. для каждой пары. За один проход самое большое число окажется на последнем месте. Затем повторить проход до элемента, уже находящегося на своем месте. И т. д.

Исходные значения

A[1]

1-й проход

A[2]

5

A[3]

4

2-й проход

3-й проход

A[4]

2

4-й проход

3

A[5]

1

4

2

3

1

5

Сортировка массива Задача . Упорядочить массив в порядке возрастания значений  его элементов. Алгоритм сортировки методом обмена (метод «пузырька») Последовательно сравнить пары соседних чисел и при необходимости поменять их местами, и т.д. для каждой пары. За один проход самое большое число окажется на последнем месте. Затем повторить проход до элемента, уже находящегося на своем месте. И т. д. Исходные значения A[1] 1-й проход A[2] 5 2-й проход 4 A[3] 2 A[4] 3-й проход 4-й проход 3 A[5] 1 2 3 1 4 5 5 4 2 3 1

Сортировка массива

Задача . Упорядочить массив в порядке возрастания значений его элементов.

Алгоритм сортировки методом обмена (метод «пузырька»)

Последовательно сравнить пары соседних чисел и при необходимости поменять их местами, и т.д. для каждой пары. За один проход самое большое число окажется на последнем месте. Затем повторить проход до элемента, уже находящегося на своем месте. И т. д.

Исходные значения

A[1]

1-й проход

A[2]

5

2-й проход

4

A[3]

2

A[4]

3-й проход

4-й проход

3

A[5]

1

2

3

1

4

5

5

4

2

3

1

Сортировка массива Задача . Упорядочить массив в порядке возрастания значений  его элементов. Алгоритм сортировки методом обмена (метод «пузырька») Последовательно сравнить пары соседних чисел и при необходимости поменять их местами, и т.д. для каждой пары. За один проход самое большое число окажется на последнем месте. Затем повторить проход до элемента, уже находящегося на своем месте. И т. д. Исходные значения A[1] 1-й проход A[2] 5 2-й проход A[3] 4 A[4] 2 3-й проход 4-й проход 3 A[5] 1 1 4 3 2 5 4 2 1 3 5 4 2 3 1 5

Сортировка массива

Задача . Упорядочить массив в порядке возрастания значений его элементов.

Алгоритм сортировки методом обмена (метод «пузырька»)

Последовательно сравнить пары соседних чисел и при необходимости поменять их местами, и т.д. для каждой пары. За один проход самое большое число окажется на последнем месте. Затем повторить проход до элемента, уже находящегося на своем месте. И т. д.

Исходные значения

A[1]

1-й проход

A[2]

5

2-й проход

A[3]

4

A[4]

2

3-й проход

4-й проход

3

A[5]

1

1

4

3

2

5

4

2

1

3

5

4

2

3

1

5

Сортировка массива Задача . Упорядочить массив в порядке возрастания значений  его элементов. Алгоритм сортировки методом обмена (метод «пузырька») Последовательно сравнить пары соседних чисел и при необходимости поменять их местами, и т.д. для каждой пары. За один проход самое большое число окажется на последнем месте. Затем повторить проход до элемента, уже находящегося на своем месте. И т. д. Исходные значения A[1] 1-й проход A[2] 5 A[3] 4 2-й проход A[4] 3-й проход 2 3 4-й проход A[5] 1 1 3 4 2 5 4 2 3 1 5 4 2 1 3 5 4 2 3 1 5

Сортировка массива

Задача . Упорядочить массив в порядке возрастания значений его элементов.

Алгоритм сортировки методом обмена (метод «пузырька»)

Последовательно сравнить пары соседних чисел и при необходимости поменять их местами, и т.д. для каждой пары. За один проход самое большое число окажется на последнем месте. Затем повторить проход до элемента, уже находящегося на своем месте. И т. д.

Исходные значения

A[1]

1-й проход

A[2]

5

A[3]

4

2-й проход

A[4]

3-й проход

2

3

4-й проход

A[5]

1

1

3

4

2

5

4

2

3

1

5

4

2

1

3

5

4

2

3

1

5

Сортировка массива Задача . Упорядочить массив в порядке возрастания значений  его элементов. Алгоритм сортировки методом обмена (метод «пузырька») Последовательно сравнить пары соседних чисел и при необходимости поменять их местами, и т.д. для каждой пары. За один проход самое большое число окажется на последнем месте. Затем повторить проход до элемента, уже находящегося на своем месте. И т. д. Исходные значения A[1] 1-й проход A[2] 5 A[3] 4 2-й проход A[4] 3-й проход 2 3 4-й проход A[5] 1 1 3 4 2 5 4 2 3 1 5 4 2 1 3 5 4 2 1 3 5

Сортировка массива

Задача . Упорядочить массив в порядке возрастания значений его элементов.

Алгоритм сортировки методом обмена (метод «пузырька»)

Последовательно сравнить пары соседних чисел и при необходимости поменять их местами, и т.д. для каждой пары. За один проход самое большое число окажется на последнем месте. Затем повторить проход до элемента, уже находящегося на своем месте. И т. д.

Исходные значения

A[1]

1-й проход

A[2]

5

A[3]

4

2-й проход

A[4]

3-й проход

2

3

4-й проход

A[5]

1

1

3

4

2

5

4

2

3

1

5

4

2

1

3

5

4

2

1

3

5

M[i+ 1 ] then begin //если неупорядочены x:=M[i]; //то меняем местами M[i]:=M[i+ 1 ]; M[i+ 1 ]:=x end ; writeln ( 'Отсортированный массив' ); for i:= 1 to n do write(M[i]: 4 ); //вывод массива End . " width="640"

Сортировка массива

Program Sort;

Const n = 20 ;

Var M: array [ 1. .n] of integer ; i, k, x: integer ;

Begin

writeln ( 'Исходный массив' );

for i:= 1 to n do begin //заполнение массива

M[i]:=random( 50 )+ 1 ; //случайными числами

write(M[i]: 4 ); //от 1 до 50

end ;

writeln; //вывод с новой строки

for k:= 1 to n- 1 do //номер прохода

for i:= 1 to n-k do //просмотр за 1 проход

if M[i]M[i+ 1 ] then begin //если неупорядочены

x:=M[i]; //то меняем местами

M[i]:=M[i+ 1 ];

M[i+ 1 ]:=x

end ;

writeln ( 'Отсортированный массив' );

for i:= 1 to n do write(M[i]: 4 ); //вывод массива

End .


Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!