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

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

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

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

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

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

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

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

Итоги урока

Одномерные массивы целых чисел

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

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

Цель урока:

Ø  Образовательная: Создание условий для формирования понятия массива, основных алгоритмов обработки массива.

Ø   Развивающая: формирование умения описывать массив, выделять элементы массивы и обрабатывать одномерные массивы на Паскале.

Ø  Воспитательная: Воспитание потребности обосновывать свою точку зрения, задавать вопросы, слушать и слышать окружающих.

Просмотр содержимого документа
«Одномерные массивы целых чисел»

ОДНОМЕРНЫЕ МАССИВЫ ЦЕЛЫХ ЧИСЕЛ НАЧАЛА ПРОГРАММИРОВАНИЯ

ОДНОМЕРНЫЕ МАССИВЫ ЦЕЛЫХ ЧИСЕЛ

НАЧАЛА ПРОГРАММИРОВАНИЯ

Ключевые слова массив описание массива таблица заполнение массива вывод массива обработка массива последовательный поиск сортировка

Ключевые слова

  • массив
  • описание массива таблица
  • заполнение массива
  • вывод массива
  • обработка массива
  • последовательный поиск
  • сортировка
Массив Массив - это поименованная совокупность однотипных элементов, упорядоченных по индексам, определяющим положение элемента в массиве. Одномерный массив Индекс элемента массива Значение элемента массива 3 5 6 7 8 9 1 4 2 3 6 1 4 -2 0 -5 7 9 Решение разнообразных задач, связанных с обработкой массивов, базируется на решении таких типовых задач, как:  - суммирование элементов массива;  - поиск элемента с заданными свойствами;  - сортировка массива.

Массив

Массив - это поименованная совокупность однотипных элементов, упорядоченных по индексам, определяющим положение элемента в массиве.

Одномерный массив

Индекс элемента массива

Значение элемента массива

3

5

6

7

8

9

1

4

2

3

6

1

4

-2

0

-5

7

9

Решение разнообразных задач, связанных с обработкой массивов, базируется на решении таких типовых задач, как:

- суммирование элементов массива;

- поиск элемента с заданными свойствами;

- сортировка массива.

Описание массива Общий вид описания массива: var : array [ .. ] of ; Тип элементов массива Имя массива var a : array [1..10] of integer; Минимальное значение индекса Значение 1-го элемента массива Максимальное значение индекса const b : array [1..5] of integer = (4, 2, 3, 5, 7); Массив b  с постоянными значениями описан в разделе описания констант.

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

Общий вид описания массива:

var : array [ ..

] of ;

Тип элементов массива

Имя массива

var a : array [1..10] of integer;

Минимальное значение индекса

Значение 1-го элемента массива

Максимальное значение индекса

const b : array [1..5] of integer = (4, 2, 3, 5, 7);

Массив b с постоянными значениями описан в разделе описания констант.

Способы заполнения массива 1 способ . Ввод каждого значения с клавиатуры:  for i :=1 to 10 do  read (a[i]); 2 способ . С помощью оператора присваивания (по формуле):  for i :=1 to 10 do a[i]:=i; 3 способ . С помощью оператора присваивания (случайными числами):  randomize ;  for i:=1 to 10 do a[i]:=random(100);

Способы заполнения массива

1 способ . Ввод каждого значения с клавиатуры:

for i :=1 to 10 do read (a[i]);

2 способ . С помощью оператора присваивания (по формуле):

for i :=1 to 10 do a[i]:=i;

3 способ . С помощью оператора присваивания (случайными числами):

randomize ;

for i:=1 to 10 do a[i]:=random(100);

Вывод массива 1 способ. Элементы массива можно вывести в строку, разделив их пробелом: for i:=1 to 10 do write (a[i], ' '); 45 21 56 43 83 56 69 34 28 15 2 способ . Вывод с комментариями: for i:=1 to 10 do writeln ('a[', i, ']=', a[i]); a[1]=4 a[2]=1 a[3]=6 a[4]=3 a[5]=8 a[6]=5 a[7]=9 a[8]=4 a[9]=8 a[10]=7

Вывод массива

1 способ. Элементы массива можно вывести в строку, разделив их пробелом:

for i:=1 to 10 do write (a[i], ' ');

45

21

56

43

83

56

69

34

28

15

2 способ . Вывод с комментариями:

for i:=1 to 10 do writeln ('a[', i, ']=', a[i]);

a[1]=4

a[2]=1

a[3]=6

a[4]=3

a[5]=8

a[6]=5

a[7]=9

a[8]=4

a[9]=8

a[10]=7

Заполнения массива A (10) случайными числами и вывод элементов массива  Объявление массива program   n _1 ;   var  i: integer;  a: arrav[1...10] of  integer; Заполнение массива b egin    for i:=1 to 10  do a[i] :=random( 5 0) ; Вывод массива  for i:=1 to  10  do  write (a[i] ,` `) ;    end .

Заполнения массива A (10) случайными числами и вывод элементов массива

Объявление массива

program  n _1 ; var i: integer;

a: arrav[1...10] of integer;

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

b egin  for i:=1 to 10 do a[i] :=random( 5 0) ;

Вывод массива

for i:=1 to 10 do  write (a[i] ,` `) ;   end .

Вычисление суммы элементов массива Суммирование элементов массива осуществляется за счёт поочерёдного добавления слагаемых : Определяется ячейка памяти (переменная s ),  в которой будет последовательно накапливаться  результат суммирования Присваивается переменной s начальное значение 0 - число, не влияющее на результат сложения Для каждого элемента массива из переменной s считывается её текущее значение и складывается со значением элемента массива; полученный результат присваивается переменной s .

Вычисление суммы элементов массива

Суммирование элементов массива

осуществляется за счёт поочерёдного добавления слагаемых :

Определяется ячейка памяти (переменная s ),

в которой будет последовательно накапливаться

результат суммирования

Присваивается переменной s начальное значение 0

- число, не влияющее на результат сложения

Для каждого элемента массива из переменной s

считывается её текущее значение и складывается

со значением элемента массива;

полученный результат присваивается переменной s .

Вычисление суммы элементов массива s = 0 s = 0 s = s + a [1] s = 0+ a [1] s = s + a [2] s = 0+ a [1]+ a [2] s = s + a [3] s = 0+ a [1]+ a [2]+ a [3] … … s = s + a [10] s = 0+ a [1]+ a [2]+ a [3]+ a [10] Основной фрагмент программы:  s:=0;  for i:=1 to n do s:=s+a[i];

Вычисление суммы элементов массива

s = 0

s = 0

s = s + a [1]

s = 0+ a [1]

s = s + a [2]

s = 0+ a [1]+ a [2]

s = s + a [3]

s = 0+ a [1]+ a [2]+ a [3]

s = s + a [10]

s = 0+ a [1]+ a [2]+ a [3]+ a [10]

Основной фрагмент программы:

s:=0;

for i:=1 to n do s:=s+a[i];

Вычисление суммы элементов массива program   n _ 2 ;  var  s, i: integer;  a: arrav[1...10] of  integer; b egin   s:=0;  for i:=1 to 10  do a[i] :=random( 5 0) ;  for i:=1 to  10  do  write (a[i] ,` `) ;  for i:=1 to 10 do s:=s+a[i];  writeln ('s=', s) ; end .

Вычисление суммы элементов массива

program  n _ 2 ;

var s, i: integer;

a: arrav[1...10] of integer;

b egin 

s:=0;

for i:=1 to 10 do a[i] :=random( 5 0) ;

for i:=1 to 10 do  write (a[i] ,` `) ;

for i:=1 to 10 do s:=s+a[i];

writeln ('s=', s) ;

end .

Типовые задачи поиска  Определение наибольшего (наименьшего) элемента массива Определение элемента массива, значение которого равно заданному значению

Типовые задачи поиска

Определение наибольшего (наименьшего)

элемента массива

Определение элемента массива, значение

которого равно заданному значению

Нахождение наибольшего элемента в стопке карточек с записанными числами : 1) Взять верхнюю карточку, записать на доске (запомнить) число как наибольшее. 2) Взять следующую карточку, сравнить числа. Если на карточке число больше, то записать это число. Повторить действия, описанные в пункте 2 для всех оставшихся карточек При организации поиска  наибольшего элемента массива  правильнее искать его индекс. !

Нахождение наибольшего элемента

в стопке карточек с записанными числами :

1) Взять верхнюю карточку, записать на доске

(запомнить) число как наибольшее.

2) Взять следующую карточку, сравнить числа. Если

на карточке число больше, то записать это число.

Повторить действия, описанные в пункте 2 для всех

оставшихся карточек

При организации поиска наибольшего элемента массива правильнее искать его индекс.

!

a[imax] then imax:=i; write (' Наибольший элемент a[',imax,']=', a[imax]) end . " width="640"

Программа поиска наибольшего элемента в массиве

program  n _ 3 ;

var s, i, imax : integer;

a: arrav[1...10] of integer;

b egin 

s:=0;

for i:=1 to 10 do a[i] :=random( 5 0) ;

for i:=1 to 10 do  write (a[i] ,` `) ;

imax:=1

for i:=2 to 10 do

if a[i]a[imax] then imax:=i;

write (' Наибольший элемент a[',imax,']=', a[imax])

end .

Нахождение элемента массива с заданными свойствами Результатом поиска элемента, значение которого равно заданному, может быть: n - индекс элемента массива такой, что a[n]= x , где х - заданное число;  сообщение о том, что искомого элемента в массиве не обнаружено. 10 50 1 3 50 14 21 50 10 21 Здесь: трём равен 4-й элемент; десяти равны 1-й и 9-й элементы; нет элемента, равного 12.

Нахождение элемента массива с заданными свойствами

Результатом поиска элемента, значение которого равно заданному, может быть:

  • n - индекс элемента массива такой, что a[n]= x , где х - заданное число;
  • сообщение о том, что искомого элемента в массиве не обнаружено.

10

50

1

3

50

14

21

50

10

21

Здесь:

  • трём равен 4-й элемент;
  • десяти равны 1-й и 9-й элементы;
  • нет элемента, равного 12.
Поиск элемента, равного 50  program   n _4;  var  n, i: integer;   a: arrav[1...10] of  integer; b egin   for i:=1 to  10  do a[i] :=random(60) ;  for i:=1 to  10  do  write (a[i] ,` `) ;  n := 0;  for i:= 1 to 10 do  if a[i] =50  then  n :=i;  if n=0 then write(' Нет ') else write (i) end . В программе найден последний из элементов, удовлетворяющих условию. 10 50 1 3 50 14 21 50 10 21

Поиск элемента, равного 50

program  n _4;

var n, i: integer;

a: arrav[1...10] of integer;

b egin 

for i:=1 to 10 do a[i] :=random(60) ;

for i:=1 to 10 do  write (a[i] ,` `) ;

n := 0;

for i:= 1 to 10 do

if a[i] =50 then n :=i;

if n=0 then write(' Нет ') else write (i)

end .

В программе найден последний из элементов, удовлетворяющих условию.

10

50

1

3

50

14

21

50

10

21

Поиск элемента, равного 50  program   n _5;  var  n, i: integer;   a: arrav[1...10] of  integer; b egin   for i:=1 to  10  do a[i] :=random(60) ;  for i:=1 to  10  do  write (a[i] ,` `) ;  i := 0;   repeat  i:=i+1;  until (a[i]=50) or (i=10);  if a[i]=50 then write(i) else write(' Нет ') end . В программе найден первый из элементов, удовлетворяющих условию. 10 50 1 3 50 14 21 50 10 21

Поиск элемента, равного 50

program  n _5;

var n, i: integer;

a: arrav[1...10] of integer;

b egin 

for i:=1 to 10 do a[i] :=random(60) ;

for i:=1 to 10 do  write (a[i] ,` `) ;

i := 0;

repeat

i:=i+1;

until (a[i]=50) or (i=10);

if a[i]=50 then write(i) else write(' Нет ')

end .

В программе найден первый из элементов, удовлетворяющих условию.

10

50

1

3

50

14

21

50

10

21

50 then k:=k+1; write ('k=', k) end . 10 6 0 2 1 5 3 5 8 14 2 8 50 10 5 1 " width="640"

Подсчет количества элементов

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

program  n _ 6 ;

var k, i: integer;

a: arrav[1...10] of integer;

b egin 

for i:=1 to 10 do a[i] :=random(60) ;

for i:=1 to 10 do  write (a[i] ,` `) ;

k := 0;

for i:=1 to 10 do

if a[i]50 then k:=k+1;

write ('k=', k)

end .

10

6 0

2 1

5 3

5 8

14

2 8

50

10

5 1

1 0 and (a[i]then s := s + a[i]; write (‘ s =', s ) end . 10 50 1 3 50 14 21 50 10 21 " width="640"

Сумма значений элементов, удовлетворяющих условию

program  n _ 7 ;

var s, i: integer;

a: arrav[1...10] of integer;

b egin 

for i:=1 to 10 do a[i] :=random(60) ;

for i:=1 to 10 do  write (a[i] ,` `) ;

s := 0;

for i:=1 to 10 do

if a[i] 1 0 and (a[i]then s := s + a[i];

write (‘ s =', s )

end .

10

50

1

3

50

14

21

50

10

21

Сортировка массива Сортировка элементов массива по убыванию выбором осуществляется следующим образом: 1. В массиве выбирается максимальный элемент 2. Максимальный и первый элемент меняются местами (первый элемент считается отсортированным) 3. В неотсортированной части массива снова выбирается максимальный элемент; он меняется местами с первым неотсортированным элементом массива Действия пункта 3 повторяются с неотсортированными элементами массива, пока не останется один неотсортированный элемент (минимальный)

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

Сортировка элементов массива по убыванию

выбором осуществляется следующим образом:

1. В массиве выбирается максимальный элемент

2. Максимальный и первый элемент меняются местами

(первый элемент считается отсортированным)

3. В неотсортированной части массива снова выбирается

максимальный элемент; он меняется местами с первым

неотсортированным элементом массива

Действия пункта 3 повторяются с неотсортированными

элементами массива, пока не останется один

неотсортированный элемент (минимальный)

Сортировка массива Индекс Значение Шаги 1 2 1 0 2 1 3 3 9 4 2 4 5 4 6 5 3 6 7 7 6 8 5 Итог: 5 6 1 2 3 4 9 0 3 1 6 2 4 5 9 0 9 0 2 4 3 1 5 6 4 0 3 5 6 9 1 2 5 9 2 3 0 1 4 6 5 6 9 0 4 2 3 1 9 6 4 3 2 5 0 1 0 2 5 6 1 9 3 4

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

Индекс

Значение

Шаги

1

2

1

0

2

1

3

3

9

4

2

4

5

4

6

5

3

6

7

7

6

8

5

Итог:

5

6

1

2

3

4

9

0

3

1

6

2

4

5

9

0

9

0

2

4

3

1

5

6

4

0

3

5

6

9

1

2

5

9

2

3

0

1

4

6

5

6

9

0

4

2

3

1

9

6

4

3

2

5

0

1

0

2

5

6

1

9

3

4

a[imax] then imax:=j; x:=a[i]; a[i]:=a[imax]; a[imax]:=x end ; for i:=1 to 10 do  write (a[i] ,` `) ; end; 9 6 5 4 3 2 1 0 " width="640"

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

0

1

9

2

4

3

6

5

program  n _ 8 ;

var n, i, j, x, imax : integer;

a: arrav[1...10] of integer;

b egin 

for i:=1 to 10 do read (a [i] ) ;

for i:=1 to 10 do  write (a[i] ,` `) ;

for i:=1 to 9 do

begin

imax:=i;

for j:=i+1 to 10 do i f a[j]a[imax] then imax:=j;

x:=a[i];

a[i]:=a[imax];

a[imax]:=x

end ;

for i:=1 to 10 do  write (a[i] ,` `) ;

end;

9

6

5

4

3

2

1

0

Самое главное Заполнять массив можно либо вводя значение каждого элемента с клавиатуры, либо присваивая элементам некоторые значения. При заполнении массива и его выводе на экран используется цикл с параметром. Решение разнообразных задач, связанных с обработкой массивов, базируется на таких типовых задачах, как: суммирование элементов массива; поиск элемента с заданными свойствами; сортировка массива. Массив - это поименованная совокупность однотипных элементов, упорядоченных по индексам, определяющим положение элементов в массиве. В языках программирования массивы используются для реализации таких структур данных , как последовательности и таблицы. Перед использованием в программе массив должен быть описан. Общий вид описания одномерного массива: var : array [ … ] of тип_элементов;

Самое главное

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

Решение разнообразных задач, связанных с обработкой массивов, базируется на таких типовых задачах, как:

суммирование элементов массива;

поиск элемента с заданными свойствами;

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

Массив - это поименованная совокупность однотипных элементов, упорядоченных по индексам, определяющим положение элементов в массиве. В языках программирования массивы используются для реализации таких структур данных , как последовательности и таблицы.

Перед использованием в программе массив должен быть описан. Общий вид описания одномерного массива:

var : array [ …

] of тип_элементов;

12 Вторник 1 0 Среда 1 6 Четверг 1 8 Пятница 1 7 Суббота 1 6 Воскресенье 1 4 Средняя температура за неделю: 14,71 " width="640"

Вопросы и задания

Запишите на языке Паскаль программу решения задачи.

В некотором населённом пункте N домов. Известно, сколько людей проживает в каждом из домов.

Исходные данные (количество жильцов) представить с помощью линейной таблицы А , содержащей N элементов: A [1] - количество жильцов дома 1, A [2] - количество жильцов дома 2, …, A [ N ] - количество жильцов дома N .

В общем случае А [ i ] — количество жильцов дома i , где i принимает все значения от 1 до n ( i =1, n ). Результат работы обозначить через s .

Считайте количество жильцов дома случайным числом из диапазона от 50 до 200 человек, а число домов n = 30.

Напишите программу, которая вычисляет среднюю за неделю температуру воздуха. Исходные данные вводятся с клавиатуры.

Запишите на языке Паскаль программу решения задачи.

Объявлен набор в школьную баскетбольную команду. Известен рост каждого из N учеников, желающих попасть в эту команду.

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

Считайте рост претендента в команду случайным числом из диапазона от 150 до 200 см, а число претендентов n = 50.

Может ли массив одновременно содержать целые и

вещественные значения?

Для чего необходимо описание массива?

Что вы можете сказать о массиве, сформированном следующим образом?

а ) for i :=1 to 10 do a[ i ]:= random (101)-50;

б ) for i :=1 to 20 do a[ i ]:= i ;

в ) for i :=1 to 5 do a[ i ]:= 2* i -1;

В целочисленных массивах a и b содержатся длины катетов десяти прямоугольных треугольников:

a [ i ] - длина первого катета,

b [ i ]—длина второго катета i -го треугольника.

Найдите треугольник с наибольшей площадью. Выведите его номер, длины катетов и площадь. Предусмотрите случай, когда таких треугольников несколько.

В классе 20 учеников писали диктант по русскому языку. Напишите программу, подсчитывающую количество двоек, троек, четвёрок и пятёрок, полученных за диктант.

Дан массив из десяти целых чисел. Определите, сколько элементов этого массива имеют максимальное значение.

Занесите информацию о десяти европейских странах в массивы n (название страны), к (численность населения), s (площадь страны). Выведите названия стран в порядке возрастания плотности их населения.

Пример входных данных

Пример выходных данных

Введите температуру

Понедельник 12

Вторник 1 0

Среда 1 6

Четверг 1 8

Пятница 1 7

Суббота 1 6

Воскресенье 1 4

Средняя температура за неделю: 14,71

Опорный конспект Массив - это поименованная совокупность однотипных элементов, упорядоченных по индексам, определяющим положение элементов в массиве. var  : array [ .. ] of  тип_элементов; Заполнение массива Ввод  с клавиатуры Присваивание  значений Задачи по обработке массива Суммирование элементов Поиск элемента во свойствам Сортировка элементов массива

Опорный конспект

Массив - это поименованная совокупность однотипных элементов, упорядоченных по индексам, определяющим положение элементов в массиве.

var : array [ ..

] of тип_элементов;

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

Ввод с клавиатуры

Присваивание значений

Задачи по обработке массива

Суммирование элементов

Поиск элемента во свойствам

Сортировка элементов массива

Источники информации http://watermarked.cutcaster.com/cutcaster-photo-100663586-Cartoon-numbers.jpg -цифры http://gallery.ykt.ru/galleries/old/reklamachat/518055.jpg - клавиатура http://www.cellguru.ru/_ld/3/325.jpg - случайные числа http://www.valdosta.edu/~lahunter/Math%20&%20Math%20Helps.jpg – числа http://lebuch.com/wp-content/uploads/2012/01/1311208935_1515151254654654564651.jpg - числа http://www.bsh.kz/img/news/1304429644.jpg - мальчик с числами http://www.masassociates.co.uk/wp-content/themes/rttheme9/timthumb.php?src=http://www.masassociates.co.uk/wp-content/uploads/mas-slider-two.jpg&w=940&h=320&zc=1 –цифры http://b1.ac-images.myspacecdn.com/02035/19/86/2035026891_l.gif - числа http://cs10847.vkontakte.ru/u96434/-5/x_e3066ac5.jpg - счёты http://freshdeportocale.files.wordpress.com/2010/03/homework.gif - мальчик http://www.koasltd.com/images/clip_image001.gif - сортировка http://img1.liveinternet.ru/images/attach/c/2/70/390/70390175_14936.JPG - матрёшки http://s48.radikal.ru/i122/0901/ea/c723ec9dcc20.gif - матрёшки

Источники информации

  • http://watermarked.cutcaster.com/cutcaster-photo-100663586-Cartoon-numbers.jpg -цифры
  • http://gallery.ykt.ru/galleries/old/reklamachat/518055.jpg - клавиатура
  • http://www.cellguru.ru/_ld/3/325.jpg - случайные числа
  • http://www.valdosta.edu/~lahunter/Math%20&%20Math%20Helps.jpg – числа
  • http://lebuch.com/wp-content/uploads/2012/01/1311208935_1515151254654654564651.jpg - числа
  • http://www.bsh.kz/img/news/1304429644.jpg - мальчик с числами
  • http://www.masassociates.co.uk/wp-content/themes/rttheme9/timthumb.php?src=http://www.masassociates.co.uk/wp-content/uploads/mas-slider-two.jpg&w=940&h=320&zc=1 –цифры
  • http://b1.ac-images.myspacecdn.com/02035/19/86/2035026891_l.gif - числа
  • http://cs10847.vkontakte.ru/u96434/-5/x_e3066ac5.jpg - счёты
  • http://freshdeportocale.files.wordpress.com/2010/03/homework.gif - мальчик
  • http://www.koasltd.com/images/clip_image001.gif - сортировка
  • http://img1.liveinternet.ru/images/attach/c/2/70/390/70390175_14936.JPG - матрёшки
  • http://s48.radikal.ru/i122/0901/ea/c723ec9dcc20.gif - матрёшки


Скачать

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

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

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