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

Презентация на тему Одномерные массивы


Здесь Вы можете скачать готовую презентацию на тему Одномерные массивы. Предмет презентации: Информатика. Красочные слайды и илюстрации помогут вам заинтересовать своих одноклассников или аудиторию. Для просмотра содержимого презентации воспользуйтесь плеером, или если вы хотите скачать презентацию - нажмите на соответствующий текст под плеером. Презентация содержит 32 слайда.

Слайды презентации

Слайд 1
Презентация по программированию Автор: учитель информатики МОУ Плесской СОШ Юдин А.Б. 2012 год
Слайд 2
Массив – пронумерованная совокупность ячеек памяти, названная одним именем 1 2 3 4 5 6 7 А A [ 4 ] := 11 ; Имя массива Индекс (порядковый номер) элемента массива Значение элемента массива Определение 1
Слайд 3
Описание массива 2 Var имя : ARRAY[1.. N ] OF тип ; Объявление массива в разделе описания переменных: Например: Var A :Array[1.. 10 ] of Integer ; Var Tem :Array[1.. 100 ] of Real ; Имя массива Количество элементов Тип элементов
Слайд 4
Type t= array[1..10] of integer; V ar a : t; Const m=10; Var a : array [1.. m ] of integer; Количество элементов можно описать в разделе констант Иногда массив объявляют как пользовательский тип данных Описание массива 3
Слайд 5
Сonst a :array[1..5] of  integer = (3,-2,1,4,3); Массив констант Описание массива 4 Var N:Array [ 'A'..'Z' ] of Integer; Var R:Array [ -20..20 ] of Real; В зависимости от задачи индексы элементов могут начинаться не только с единицы или быть символьного типа
Слайд 6
1. Заполнение массива с клавиатуры For i :=1 to N do begin Write(' a [ ' , i , ' ] = ' ); ReadLn ( a [ i ] ); End; Заполнение массива 5
Слайд 7
2. Заполнение массива случайными числами. m[i] := RANDOM ( А ) случайное число из интервала [0; А) m[i] :=RANDOM(B-A)+A; случайное число из интервала [A ; B ) m[i] :=RANDOM(B-A+1)+A; случайное число из интервала [A ; B] Заполнение массива 6 Например : Случайное число из интервала [ -5 ; 8 ) . А = - 5, В = 8, подставим в формулу m[i] :=RANDOM(B-A)+A; m[i] :=RANDOM( 8 - (-5) )+ (-5) ; такую запись нужно упростить m[i] :=RANDOM( 13 ) -5 ; For i:=1 to N do begin a[i]:=Random(B-A)+A; WriteLn(a[i]:10:5); End;
Слайд 8
3. Заполнение массива при помощи прогрессии. Заполнить массив числами 3,5,7,9,11 и т.д. На первом месте стоит 3 На втором 3+2 = 5 На третьем 5+2 = 7 и т.д. То есть a i = a i - 1 + 2 Это арифметическая прогрессия. Заполнение массива 7 a[1]:= 3 ; Writeln(a[1]); For i:=2 to N do begin a[i]:=a[i-1] + 2; Writeln(a[i]:5); End;
Слайд 9
а ) в столбик : For i:=1 to N do Writeln(a[i]: 4 : 2 ); б ) в строку For i:=1 to N do Write(a[i]: 4 : 2 ); 2.23 3.19 1.44 4.93 5.58 2.23 3.19 1.44 4.93 5.58 Вывод массива 8
Слайд 10
Вывод массива в две строки 9 Задача 1. Заполнить массив из 10 элементов случайными числами из интервала от -10 до 10, вывести на экран, а затем увеличить каждый элемент массива на 1 и повторно вывес­ти на экран. var A:array [1..10] of integer; i:integer; Begin Clrscr; for i:=1 to 10 do begin a[i]:= random(2 1 )-10; write(a[i]:5); end; writeln; for i:=1 to 10 do begin a[i]:=a[i]+1; write(a[i]:5); end; end. Оператор вывода без LN , вывод осуществляется в строку Пустой оператор вывода с LN , когда первая строка закончена, переход на вторую Оператор вывода без LN , вывод осуществляется в строку
Слайд 11
Вывод массива в две строки 10 1 Пустой Writeln между циклами обычно в блок- схеме не изображают. Разрыв блок-схемы, если она целиком на лист не убирается
Слайд 12
Заполнение массива 11 Задача 2. Составить программу заполняющую массив из 10 элементов, числовой последовательностью: 1,4,9,16… (где A i = i 2 ) Program n 2 ; Uses Crt; var a:array[1..10] of integer; i:integer; begin clrscr; for i:=1 to 10 do begin a[i]:=i*i; write(a[i]:5); end; end. Значение элемента массива зависит только от порядкового номера
Слайд 13
Заполнение массива 12 Задача 3 . Составить программу заполняющую массив из 10 элементов, числовой последовательностью: 2, 3, 5, 9, 17 и т.д. Uses Crt; var a:array[1..10] of integer; i:integer; begin clrscr; a[1]:= 2 ; write(a[1]:5); for i:=2 to 10 do begin a[i]:=2*a[i-1]-1; write(a[i]:5); end; end. Значение элемента массива зависит от предшествующего элемента
Слайд 14
Изменение элементов массива удовлетворяющих условию For i:=1 to N do If ( условие ) then a[i]:= значение : Условия: a [ i ] > 0 – положительный элемент массива a [ i ] Mod 2 = 0 – четный элемент массива a [ i ] = int(a [ i ]) – целый элемент массива a [ i ] = i – элемент массива равен своему порядковому номеру i Mod 2 = 0 – четные порядковые номера a [ i ] = К – элемент массива равный числу К Изменения: a [ i ] :=5 – заменить i- ый элемент на число 5 a [ i ] := - a [ i ] – заменить i- ый элемент на противоположный по знаку a [ i ] := a [ i ] * 2 – удвоить каждый элемент массива a [ i ] := a [ i - 1 ] +3 –заменить i- ый элемент предшествующим плюс 3 Обработка массива 13
Слайд 15
Блок-схема обработки массива Блок-схема обработки и вывода в одном цикле Обработка массива 14 Цикл обработки и вывода элементов массива на экран For i:=1 to N do begin If ( условие ) then a[i]:= значение : Writeln(a[i]:5); end;
Слайд 16
Нахождение суммы элементов массива удовлетворяющих условию: s:=0; For i:=1 to N do If ( условие ) then s:=s+ a[i]; WriteLn (' Сум м а = ', s:10:5); Нахождение суммы и произведения элементов массива 15 Предполагаем, что сумма равна нулю Если элемент подходит по условию, добавляем его к сумме Нахождение произведения элементов массива удовлетворяющих условию: p:=1; For i:=1 to N do If ( условие ) then p:=p* a[i]; WriteLn(' Произведен ие = ', p:10:5); Если элемент подходит по условию, добавляем его к произведению Предполагаем, что произведение равно единице
Слайд 17
Подсчет количества элементов удовлетворяющих условию: k:=0; For i:=1 to N do If ( условие ) then k:=k+1; WriteLn ( ' Кол-во= ' , k :10); Предполагаем, что таких элементов нет Если такой элемент есть, то К увеличиваем на 1. Подсчет количества элементов удовлетворяющих условию 16
Слайд 18
Задача 4. Дан массив из 15 целых чисел заполненный случайными числами из интервала [0; 20]. Выведите этот массив в строку и найдите количество четных элементов массива, которые меньше среднего арифметического его элементов. ClrScr; s:=0; For i:=1 to 15 do begin a[i]:=Random(2 1 ); write (a[i]:10); S:=S+a[i]; end; Предполагаем, что сумма равна нулю Организуем цикл из 15 повторений Нахождение суммы элементов массива 17 Определяем число случайным образом Выводим его на экран Добавляем к сумме
Слайд 19
Writeln; s:=s/15; Writeln('Среднее арифметическое = ',s:10:5); k:=0; For i:=1 to 15 do if (a[i] Mod 2 = 0) and (a[i]<s) then k:=k+1; Writeln('Четных чисел меньших среднего арифметического ', k:8); Находим среднее арифметическое Выводим его на экран Предполагаем, что таких элементов нет Организуем цикл из 15 повторений Если элемент четный и меньше среднего арифметического, увеличиваем К на единицу Выводим К на экран Нахождение суммы элементов массива 18
Слайд 20
Нахождение максимального элемента в массиве и его номера: max:=a[1]; k:=1; for i:=2 to N do if (a[i]>max) then begin max:=a[i]; k:=i; end; WriteLn(‘Max=’,max:10:5); WriteLn(‘ Номер =’,k:5); Предполагаем, что наибольший элемент стоит на первом месте Если находится больший элемент Он становится максимальным Когда массив закончился, выводим наибольший элемент и его номер Максимальный и минимальный элемент массива 19
Слайд 21
m ax:= 1; for i:=2 to N do if a [i] > a [ m ax] then m ax:=i; writeln('Максимальный элемент ',а[ m ax]); writeln( ' Его номер ', Max); Иногда в задаче достаточно определить индекс наибольшего элемента Максимальный и минимальный элемент массива 20 Предполагаем, что наибольший элемент стоит на первом месте Если i- ый элемент больше стоящего на месте max то, запоминаем его индекс в переменной max
Слайд 22
Сортировка элементов массива по возрастанию For i:=1 to N-1 do For j:=i to N do if (a[i]>a[j]) then begin p:=a[i]; a[i]:=a[j]; a[j]:=p; end; Сортировка массива 21 Перебираем элементы от первого до предпоследнего Перебираем от i- ого элемента до конца Если в оставшейся строке находится элемент меньше чем i -ый … То меняем их местами Сортировка массива: 4; -2; 6; -5 по возрастанию с изменениями происходящими в массиве
Слайд 23
Сортировка массива 22 i, 1, N-1 j, i, N a i >a j p=a i a i =a j a j =p Да Нет Общая идея алгоритма: 1. Берем i- ый элемент 2. Последовательно сравниваем его со всеми элементами с права 3. Если находится элемент меньший чем i -ый, то они меняются местами 4. Так на i- ом месте окажется самый маленький элемент 5. i увеличиваем на единицу и повторяем процесс…
Слайд 24
Сортировка массива 23 Упорядочить по возрастанию: 4 -2 6 -5
Слайд 25
Вставка элемента с номером p в последовательность For i:=N downto p do a[i+1]:=a[i]; a[p]:= значение ; N:=N+1; За каждый оборот цикла смещаем элементы на один номер в право. Вставка и удаление элементов массива 24 Перебираем элементы от последнего до места на которое нужно вставить, На место с индексом Р ставим нужное значение и увеличиваем на 1 количество элементов 9 14 11 12 7 100 N p 9
Слайд 26
Удаление элемента с номером p из массива: for i:=p to (N-1) do a[i]:=a[i+1]; N:=N-1; Вставка и удаление элементов массива 25 Перебираем элементы от места которое удаляем до предпоследнего элемента Уменьшаем на 1 количество элементов За каждый оборот цикла смещаем элементы на один номер в лево. 14 11 12 7 p 9 N 100
Слайд 27
Вставка элементов удовлетворяющих условию в другой массив . Пусть нам дан массив с именем А, а переместить элементы нужно в массив В j:=0; For i:=1 to N do if ( а [i]…) then begin j:=j+1; b[j]:=a[i]; end; K:=j; Порядковый номер элемента в массиве В Если элемент из А удовлетворяет условию То, увеличиваем количество элементов в В, и под этим индексом помещаем элемент из А Количество элементов в массиве В будет равно последнему порядковому номеру перенесенного элемента Выбор элементов массива в другой массив 26
Слайд 28
Задача 5. Дан массив из 10 целых, положительных не повторяющихся чисел. Проверить образуют ли его элементы арифметическую прогрессию. Если образуют, то вывести разность прогрессии. // заполнить массив r:= a[2]-a[1]; f lag :=true; For i:=2 to 9 do if (a[i+1]-a[i]<>r) then f lag :=false; If f lag then Begin Writeln('Арифметическая прогрессия'); Writeln( ' Разность = ',r:8); End else Writeln( ' Не арифметическая прогрессия'); Проверка массива 27 Находим разность между первым и вторым элементом Предполагаем, что массив – арифметическая прогрессия Организуем цикл от второго до предпоследнего элемента Если находится пара элементов, у которых другая разность, то это не арифметическая прогрессия Если значение истинно То выводим разность и соответствующее сообщение Иначе – выводим соответствующее сообщение
Слайд 29
Начало Проверка массива 28 r:= a 2 -a 1 ; f lag :=true i, 2, 9 a i+1 -a i ≠ r f lag := false f lag=true 1 Вывод: Прогрессия Вывод: Не прогрессия Конец Заполнение массива и вывод его на экран 1 Нет Нет Да Да Цикл в котором проверяется разность между соседними элементами Условие проверяющее изменилась ли переменная Flag
Слайд 30
Задача 6 . Дан массив из 10 случайных чисел из интервала от -10 до 10. Найти номер первого отрицательного элемента (Он обязательно существует) Поиск элемента 29 // заполнить массив i:=1; while (a[i]>=0) do i:=i+1; write('Первое отрицательное ',a[i]:4); Пока элемент массива положителен или ноль берем следующий элемент
Слайд 31
Заполнение массива 30 Задача 7 . Заполнить массив из 10 элементов случайными числами из интервала [0; 10) , так, чтобы числа не повторялись. For i:=1 to 10 do begin repeat flag:=false; a[i]:=random(10); for j:=1 to i-1 do if a[i]=a[j] then flag:=true; until flag=false; write(a[i]:5); end; Цикл отвечающий за количество чисел в массиве Цикл возвращающий процесс назад если такое число уже было Цикл в котором проверяется не встречалось ли такое число
Слайд 32
Заполнение массива 31 i,1,10 flag=false a i = случайное [0;10) j, 1, i-1 a i =a j flag=true flag=false Вывод a i Да Нет Да Нет Цикл возвращающий процесс назад если такое число уже было Цикл отвечающий за количество чисел в массиве Цикл в котором проверяется не встречалось ли такое число

Другие презентации по информатике



  • Яндекс.Метрика
  • Рейтинг@Mail.ru