На этом занятии Вам предстоит ознакомиться с программами, реализующими более сложные алгоритмы обработки одномерных массивов. Форма работы – очередная электронная лекция.
В настоящей разработке приводится текст этой лекции.
SCREEN 9: COLOR 14, 1: CLS
‘*Рассмотрим более сложные задачи на обработку одномерных массивов
‘*Задача 1. Из элементов двух массивов составить один массив’**Т.н. задача — сложение массивов**
‘INPUT «Сколько элементов в массивах»; n, m
‘DIM x(n), y(m), z(n + m)
‘FOR i = 1 TO n: x(i) = INT(a + (b — a) * RND)
‘FOR i = 1 TO m: y(i) = INT(a + (b — a) * RND)
‘FOR i = 1 TO n: z(i) = x(i): NEXT
‘FOR i = n + k TO n + m: z(n + k) = y(k): k = k + 1: NEXT
‘FOR i = 1 TO n + m: PRINT z(i); : NEXT i
‘*Удалить из массива все элементы, равные нулю*
‘INPUT «Сколько элементов в массиве»; n
‘FOR i = 1 TO n: x(i) = INT(a + (b — a) * RND): PRINT x(i); : NEXT i
‘IF x(i) <> 0 THEN k = k + 1: y(k) = x(i)
Python #20 Алгоритмы обработки массива
‘NEXT’FOR i = 1 TO k: PRINT y(i); : NEXT
‘*Из элементов массива получить два массива, разделив его элементы ‘по какому-либо признаку, например, по знаку элементов’INPUT «Сколько элементов в массиве»; n
‘a = -9: b = 12’FOR i = 1 TO n: x(i) = INT(a + (b — a) * RND): PRINT x(i); : NEXT i
‘IF x(i) > 0 THEN t = t + 1: z(t) = x(i)
‘FOR i = 1 TO k: PRINT y(i); : NEXT i
‘FOR i = 1 TO t: PRINT z(i); : NEXT i
‘*Задача 4.Упорядочивание массива по возрастанию или по убыванию***
‘INPUT «Сколько элементов в массиве»; n
‘FOR i = 1 TO n: x(i) = INT(a + (b — a) * RND): PRINT x(i); : NEXT i
‘FOR i = 1 TO n — 1
‘IF x(i) > x(i + 1) THEN SWAP x(i), x(i + 1)
‘FOR i = 1 TO n: PRINT x(i); : NEXT i
‘*А как вставить число в уже определенный массив?
‘INPUT «Сколько элементов в массиве»; n
‘FOR i = 1 TO n: x(i) = INT(a + (b — a) * RND): PRINT x(i); : NEXT i
‘INPUT «На какое место поставить элемент»; r’INPUT «Чему он равен»; t
‘FOR i = n + 1 TO r STEP -1: x(i) = x(i — 1): NEXT i
‘FOR i = 1 TO n + 1: PRINT x(i); : NEXT
‘**Задача 6. Инверсия массива: перестановка его элементов***
‘INPUT «Сколько элементов в массиве»; n
‘FOR i = 1 TO n: x(i) = INT(a + (b — a) * RND): PRINT x(i); : NEXT i
‘FOR i = 1 TO n / 2
‘SWAP x(i), x(n — i + 1)
‘FOR i = 1 TO n: PRINT x(i); : NEXT
‘*******Задача 7. Переставить все нулевые элементы в конец массива**********
‘INPUT «Сколько элементов в массиве»; n
‘FOR i = 1 TO n: x(i) = INT(a + (b — a) * RND): PRINT x(i); : NEXT i
‘FOR i = 1 TO n: IF x(i) <> 0 THEN k = k + 1: y(k) = x(i)
‘FOR i = 1 TO n: PRINT y(i); : NEXT i
‘******* Задача 7.1 Та же задача, но без дополнительного массива*****
‘FOR j = 1 TO n — 1
‘IF x(j) = 0 THEN SWAP x(j), x(j + 1)
‘FOR i = 1 TO n: PRINT x(i); : NEXT
Решение задач на массивы в языке c++ | Практика на c++ урок 1.
‘* Законспектируйте задачи для самостоятельного решения**************
‘*(1)В массиве a(n) вычислить сумму четных элементов, имеющих четные индексы или выдать сообщение, что таких элементов нет*
‘*(2)В массиве a(n) каждый элемент заменить суммой предыдущих.****
‘*(3)В целочисленном массиве a(n) исключить элементы, кратные 3**
‘*(4)Проверьте, есть ли целочисленном массиве x(n), если есть, найдите
‘* наибольший индекс отрицательного элемента**’*(5)Задан массив. Поменять местами а)второй и пятый элементы; б)третий и максимальный элементы; в)первый и минимальный элементы.*
‘*(7)Найти сумму элементов массива, стоящих а)до наибольшего элемента;’*8) после наибольшего; с)между наибольшим и наименьшим элементами.****
‘*(9) Элементы массива a(n) принимают только значения 1,2 и 3. Переставьте его элементы таким образом, чтобы вначале находились элементы, равные 1, затем 2, и в конце массива 3.
Задачи для домашней работы.
1.Дан целочисленный массив a(n). Подсчитайте, сколько раз встречается в этом массиве максимальное по величине число.
2.Изменить знак всех нечетных элементов массива.
3.Для массива r(n), имеющего положительные и отрицательные элементы вычислить среднее арифметическое положительных и отрицательных элементов.
4.Вычислить суммы элементов с четными и нечетными индексами.
5.Информация о среднесуточной температуре воздуха за месяц задана в виде массива. Определить, сколько дней t была ниже 0.
6.Дан одномерный массив произвольной размерности, в котором не все элементы равны нулю. Получить новый массив путем исключения нулевых элементов.
7.Даны два массива x и y, получить новый массив Z. Элементами массива Z сначала является элементы массива x, а затем элементы массива y.
Какие умения и навыки Вы приобрели на занятии №16?
Знаете ли Вы, что абстракция через спецификацию — это прием программирования, позволяющий абстрагироваться от процесса вычислений описанных в теле процедуры, до уровня знания того, что данная процедура делает. Это достигается путем задания спецификации, описывающей эффект ее работы, после чего смысл обращения к данной процедуре становится ясным через анализ этой спецификации, а не самого тела процедуры.
Мы пользуемся абстракцией через спецификацию всякий раз, когда связываем с процедурой некий комментарий, достаточно информативный для того, чтобы иметь возможность работать без анализа тела процедуры. Абстракция через спецификацию позволяет абстрагироваться от процесса вычислений описанных в теле процедуры, до уровня знания того, что данная процедура делает. Это достигается путем задания спецификации, описывающей эффект ее работы, после чего смысл обращения к данной процедуре становится ясным через анализ этой спецификации, а не самого тела процедуры. Мы пользуемся абстракцией через спецификацию всякий раз, когда связываем с процедурой некий комментарий, достаточно информативный для того, чтобы иметь возможность работать без анализа тела процедуры.
Источник: www.bourabai.ru
«Программирование обработки одномерных массивов»
Цель урока: закрепить навыки написания одномерных массивов на языке Паскаль.
Ход работы
Составить программу решения поставленной задачи по обработке одномерного массива (вектора). По возможности, использовать подпрограммы.
1. Дана последовательность действительных чисел а1, а2, …, аn. Выяснить, будет ли она возрастающей.
2. Дан массив из N действительных чисел. Подсчитать, сколько в нем отрицательных, положительных и нулевых элементов.
3. Даны действительные числа а1, а2, …, аn. Поменять местами первый наибольший элемент с последним наименьшим элементом.
Домашнее задание : §24, вопрос №3 письменно.
Список литературы:
1. Информатика: Базовый уровень: учебник для 10 класса / И.Г. Семакин, Е.К. Хеннер, Т.Ю. Шеина. – 3-е изд. – М.: БИНОМ. Лаборатория знаний, 2014. – 264 с.: ил.
Источник: znanio.ru
Задачи обработки одномерного массива.
Цель урока: Изучение алгоритмов обработки одномерного массива: нахождения количества, замена элементов массива, соответствующее некоторому условию. Вставка, удаление элементов массива.
Планируемые результаты:
Предметные результаты:
Составить алгоритм для нахождения количества элементов массива, удовлетворяющих заданным условиям;
Составить алгоритм для замены, вставки, удаление элементов в массиве и вывод обновлённого массива;
Сформулировать запись данных алгоритмов в общем виде;
Применить полученные сведения для решения задач на обработку одномерных массивов.
Метапредметные результаты:
умение самостоятельно определять цели и путь её достижения;
планировать решение поставленных задач;
самостоятельно осуществлять, контролировать и корректировать учебную деятельность;
использовать все возможные ресурсы для достижения целей.
Организация пространств: Фронтальная работа Ф, индивидуальная работа И, парная П
Формы организации деятельности учащихся
Деятельность учителя
Деятельность ученика
Планируемые результаты:
М отивация к учебной деятельности
«Включение» в учебную деятельность
-Учитель приветствует учащихся, проверяет готовность учащихся к уроку, готовность рабочего места, настраивает учащихся на совместную плодотворную работу, создает ситуацию успеха.
Готовят рабочее место, настраиваются на урок
Волевая саморегуляция; включение в деловой ритм.
Актуализация и пробное учебное действие
повторение пройденного материала, подведение к проблемной ситуации, готовность и осознание потребности к построению нового алгоритма для решения задачи
Формулирование темы урока, постановка цели
Подведение учеников к цели урока.
Включить учащихся в деятельность по повторению пройденного материала, подвести к проблемной ситуации:
D [11]=-25. По данной записи назовите имя массива, номер элемента массива, значение элемента массива.
F : array [1..20] of real ; по данной записи, назовите количество элементов массива и их тип
Как объявить массив S целого типа размерностью 15?
Назовите способы заполнения массива:
1)for i:=1 to 7 do
writeln (‘введите элементы массива’);
3) for i:=1 to 7 do
Программист написал программы, но допустил ошибки. Проанализируйте программы и найдите их.
Запиши программу для решения задачи :
-Запишите программу для нахождения суммы положительных элементов целочисленного массива размерностью 10.
-Выявляет уровень знаний. Определяет типичные недостатки
— Следующие задания :
1.Найдите количество положительных элементов целочисленного массива размерностью 10.
2. В целочисленном массиве размерностью 10
необходимо отрицательные элементы заменить единицей и вывести обновлённый массив.
Эти задачи мы тоже уже встречали в 9 классе
Усложняем задание :
Имеется одномерный целочисленного массива, из 7 элементов. Необходимо:
— удалить из массива элемент с индексом j =4
— вставить в массив на место элемента с индексом j= 4, новый элемент, значение которого=11
— Что можете сказать про это задание?
-Появились ли у вас затруднение?
Записывают ответы в тетради с последующей самопроверкой.
S : array [1..15] of integer ;
— По определенному правилу (по формуле)
— эта программа находит произведение элементов массива, а первоначальное значение произведения не может быть = 0, следовательно: p=1
эта программа находит сумму элементов массива, значит к первоначальному значению суммы надо + следующий элемент, а не индекс элемента, следовательно:
Ученик у доски записывает текст программы для последующей самопроверки:
var a: array [1..10] of integer;
for i:=1 to 10 do
writeln (‘введите элементы массива’);
for i:=1 to 10 do
if a[i ]>0 then s:=s+a[i];
-Да, мы ещё не повторяли задач нахождения количество и замены элементов массива.
-Мы не знаем алгоритма решения данной задачи.
Это новое задание на обработку элементов массива.
вспоминают изученный ранее материал;
после проверки задают вопросы на понимание
Выполнение заданий, тренирующие отдельные способности к учебной деятельности, мыслительные операции и учебные навыки.
— учащиеся должны зафиксировать затруднение при нахождении кол-тва и замены элементов по заданному условию;
-по удалению и вставки элемента в массив
Выявление места и причины затруднения. Целеполагание.
выявление места (где?) и причины затруднения (почему?). Формулирование цели деятельности и темы урока.
-Какие задачи на обработку элементов массива мы должны с вами решить?
-Почему эти задачи вызвали у вас затруднение?
-Сформулируйте, чему мы сегодня будем учиться?
-Молодцы! Сформулируйте тему сегодняшнего урока.
Очень хорошо. Запишите тему урока в тетрадь. На полях поставьте число.
-Учитель записывает тему, цель и задачи урока на доске.
-Найти количество положительных элементов массива;
-Заменить отрицательные элементы на единицу;
— удалить из массива элемент с индексом = 4
-вставить в массив элемент на место элемента с индексом = 4, новый элемент, значение которого=11
-Мы не повторяли алгоритм нахождения количества элементов и замену элементов по заданному условию.
-Мы не знаем алгоритм вставки и удаления элемента в массиве
-Мы вспомним нахождения кол-во элементов и замена элементов по условию.
Научимся удалять и вставлять элемент массива.
-Учащиеся записывают в тетради
четкое понимания дальнейших действий на уроке, формулирование темы и цели урока
Построение проекта выхода из затруднения
построение алгоритмов решения задач на нахождение количества и замену элементов по заданному условию; удаление и вставка элемента в массив
-Вспомним алгоритм подсчета кол-ва элементов массива по заданному условию
— Давайте проанализируйте внимательно, программу нахождения суммы элементов.
-Как вы думаете, что изменится в программе? Давайте количество обозначим — k
— Какое начальное значение должно быть у переменной k?
-У какого есть предложения?
— Замена элемента по заданному условию и вывод обновлённого массива.
— Сформулируйте на естественном языке алгоритм решения данной задачи
— А как вывести обновленный массив?
-Верно! Молодцы! Запишите в тетрадь алгоритмы и организацию их на языке Паскаль
— Для того, чтобы решить задачи на удаление и вставку элемента в массиве, мы обратимся к учебнику стр.110 пример №8, 9
-Внимательно разберите условие задач.
-Разберитесь и проговорите друг другу алгоритм решения задачи.
-Запишите алгоритм на естественном языке.
— Запишите фрагменты программ для решения задач в общем виде.
— мы перебираем циклом все элементы массива и проверяем на заданное условие,
-если удовлетворяет этому условию тогда его считаем, т.е. прибавляем к кол-ву 1
for i:=1 to 10 do
if a[i ]>0 then s:=s+a[i];
writeln (‘s=’,s); writeln (k );
-мы перебираем циклом все элементы массива и проверяем на заданное условие, если удовлетворяет условию, то выполняем замену
for i:=1 to 10 do
— надо организовать ещё один цикл для вывода.
-учащиеся записывают в тетрадь полученные алгоритмы
-Учащиеся работают по учебнику по предложенному плану.
— Записывают алгоритм удаления элемента:
1. При удалении из массива любого из элементов размерность массива уменьшается на 1.
2. На место удаляемого элемента переместиться следующий за ним элемент. 3.Происходит сдвиг элементов массива (влево) на одну позицию
for i:=k to n-1 do
— Записывают алгоритм вставки элемента:
1. При вставки элемента в массив размерность массива увеличивается на 1.
2.При вставки элемента с определенной позиции, следующий за ним элемент сдвигается вправо на одну позицию.
. 3.Происходит сдвиг элементов массива (вправо) на одну позицию
for i:=n downto k+1 do
Сравнение, сопоставление анализ программ
формировать умение работать в паре
формулировать и аргументировать собственное мнение; участвовать в диалоге;
-получение алгоритма для решения задач
Проявляют познавательную инициативу
планируют свою деятельность для решения поставленной задачи
Реализация построенного проекта. Первичное закрепление с комментированием во внешней речи
Усвоение нового алгоритма решения задач.
Коммуникативное взаимодействие с опорой на знаковую модель.
-Мы с Вами составили алгоритмы для решения задач удаление и вставки элемента массива в общем виде.
-Попробуем применить их конкретно к нашим задачам.
-Учащимся раздаются карточки с условием задач и пошаговой инструкцией для написания программ. ( Приложение №2 )
-Программы заново не набираем. Копируем – вставляем в новую вкладку – редактируем для следующей задачи!
Учащиеся решают программу индивидуально за ПК.
Один учащийся работает у интерактивной доски с проговариванием алгоритма, остальные учащиеся за ПК, сверяясь с доской.
закрепление алгоритма решения задач;
закреплением во внешней речи.
Самостоятельная работа с проверкой по эталону
Организует деятельность по применению новых знаний.
-Выполним небольшую самостоятельную работу. Вам необходимо записать только строку условия для следующих задач. Объявлен массив — N:
найдите количество ненулевых элементов массива;
заменить четные элементы массива на максимальное двухзначное число;
в целочисленном массиве из 10 элементов удалить элемент с индексом =5
в том же массиве вставить вместо 5 элемента, новый =23
* Посчитайте количество отрицательных элементов, имеющих четный индекс.
Обменяйтесь тетрадями и выполним проверку по эталону.
Учащиеся разбиваются по парам и работают в тетрадях
If N[i]<>0 then k:=k+1;
If N[i ] mod 2=0 then N[i]:=99;
for i:=5 to 9 do a[i]:= a[i+1];
4)for i:=9 downto 5 do
Осуществляют самопроверку, пошагово сравнивая с эталоном.
Проанализировать усвоение темы, выявить затруднения у учащихся
Включение в систему знаний и повторение
Цель: включение «открытия» в систему знаний
-Продолжаем работать с нашей программой. Редактирование, отладка, исполнение программы.
-Предлагается карточки базовый и углубленный уровень. (Приложение №3)
Индивидуальная проверка выполнения работы.
Учащиеся индивидуально решают задачу за ПК.
Результат применение «открытия» в задачах на обработку массива.
Рефлексия учебной деятельности на уроке (итог урока)
самооценка результатов деятельности.
-Вернемся к цели и задачам урока.
— Какие задачи обработки массива были для вас новыми?
-Заполните свои листы самоконтроля и сдайте.
-Вы сегодня очень хорошо работали! Молодцы!
— За урок получили оценки …
Запишем домашнее задание: Напишите программу для решения следующей задачи: найдите номер первого из элементов массива A, имеющего значение равное нулю. Если таких элементов нет, вывести соответствующее сообщение.
Или стр.118 учебника №8,9 (на выбор)
-высказывают своё мнение
-Заполняют лист самоконтроля, сдают учителю
-Записывают домашнее задание
Результат: фиксация результата деятельности, пробелов в усвоении темы урока.
Приложение №1 работа в парах по учебнику
Приложение №2 работа с пошаговой инструкцией
Задача №1 Имеется одномерный целочисленного массива, из 7 элементов. Необходимо удалить из массива элемент с индексом j =4
Описываем массив, размерность массива фиксируем: const n = 7
Заполняем массив с клавиатуры:
Присваиваем j:= 4
Организовываем в цикле сдвиг элементов массива влево: for i := j to n -1 do
Выводим обновлённый массив, учитывая что размерность массива уменьшится: for i :=1 to n -1 do
Задача №2 Имеется одномерный целочисленного массива, из 7 элементов. Вставить в массив на место элемента с индексом j= 4, новый элемент, значение которого равно 11
Описываем массив, размерность массива фиксируем и учитываем, что он увеличивается на 1: const n = 8
Заполняем массив с клавиатуры:
Индекс и значение нового элемента тоже введем с клавиатуры (элемент обозначим — x , его индекс – j ).
for i:=n-1 downto j do
рисваиваем j := 4.
Организовываем в цикле сдвиг элементов массива вправо:
Выводим обновлённый массив, для этого организовать ещё один цикл.
Карточки – помощники (если ученик затрудняется, он может взять карточку – помощника)
Задача: вставить в массив на место элемента с индексом равным 4 новый элемент, значение которого равно 11.
var a: array [ 1..n ] of integer;
i,j,x: integer;
for i:=1 to 7 do
writeln (‘введите элементы массива’);
writeln (‘введите новый элемент массива’);
write(‘позиция в массиве ‘);
for i:=n-1 downto j do
for i:=1 to n do
Задача: удаление элемента массива с индексом равным 4.
var a: array [ 1..n ] of integer;
i, j: integer;
for i:=1 to n do
writeln (‘введите элементы массива’);
for i:=j to n-1 do
for i:=1 to n-1 do
Приложение №3 базовый уровень :
Сформировать целочисленный массив из 5 элементов и:
1.Найти количество нечетных элементов, кратных 5.
2.Заменить нулевые элементы массива на минимальное двухзначное число и вывести обновлённый массив.
3. Удалить в этом массиве элемент с индексом равным 3.
Углубленный уровень :
Сформировать целочисленный массив из 8 элементов и:
1. Проверьте есть ли в массиве элементы кратные 7 и имеющие нечетный индекс. Если таких элементов нет, то вывести «Элементы не найдены».
2. Четные элементы массива заменить на минимальное трехзначное число, в противном случаи заменить на единицу. Вывести обновлённый массив.
3. Вставить в массив на место элемента с предпоследним индексом, новый элемент, значение которого равно максимальному трехзначному числу.
Приложение №4 Лист самоконтроля и самооценки
Оценка ученика
Оценка учителя
За каждый правильный ответ 1 балл. Максимально – 4 балла
За каждый правильный ответ 1 балл. Максимально – 2 балла
Запиши программу. Максимально – 2 балла
2 б. – программа записана верно,
1 б. – в программе есть недочёт,
0 б – выполнить задание не удалось
За каждый правильный ответ 1 балл. Максимально – 5 баллов
Практическая работа. За каждое правильно выполненное задание — 2 балла.
2 б. – программа записана верно,
1 б. – в программе есть недочёт,
0 б – выполнить задание не удалось Максимально – 6 баллов
ИТОГО: Максимальное число баллов: 19 баллов
Оценка «5» — 16-19 баллов. Оценка «4» — 12-15 баллов. Оценка «3» — 9-11 баллов. В остальных случаях оценка не выставляется «Ещё надо доработать!»
I I) Оцени себя в конце урока, что получалось, а что нет. В каких вопросах разобрался не полностью, а какие не понял вообще. Используй обозначение: + понимаю и применяю ; — остались вопросы ; — не понял.
Понимаю суть алгоритма на естественном языке для решения задач:
— нахождения количества элементов по заданному условию
— замена элементов массива по заданному условию
— удаление элементов массива
— вставка элементов массива
Остались вопросы, задай его:___________________________________________________________________________________________________
Приложение №5
Физкультминутка
Цель, которая должна быть достигнута учащимися:
-отдохнуть, снять напряжение.
Цель, которую учитель хочет достичь на данном этапе:
-сориентировать на произвольное внимание.
Задачи, которые ставит учитель:
— улучшить мозговое кровообращение
— снять зрительное напряжение
Физкультминутки для улучшения мозгового кровообращения
Исходное положение – сидя на стуле.
1–2. Плавно наклонить голову назад, наклонить голову вперед, не поднимая плеч.
Повторить 4–6 раз. Темп медленный.
Исходное положение – сидя, руки на поясе.
1. Поворот головы вправо.
2. Исходное положение.
3. Поворот головы влево.
4. Исходное положение.
Повторить 6–8 раз. Темп медленный.
Исходное положение – стоя или сидя, руки на поясе.
1–2. Взмахом левую руку занести через правое плечо, голову повернуть влево.
3. Исходное положение.
4–5. То же повторить правой рукой, поворачивая голову вправо.
6. Исходное положение.
Повторить 4–6 раз. Темп медленный.
Для снятия зрительного напряжения:
Быстро поморгать, закрыть глаза и посидеть спокойно, медленно считая до 5. Повторить 2 раза.
Крепко зажмурить глаза (считать до 3), открыть глаза и посмотреть вдаль (считать до 5). Повторить 2 раза.
Вытянуть правую руку вперед. Следить глазами, не поворачивая головы, за медленными движениями указательного пальца вытянутой руки влево и вправо, вверх и вниз. Повторить 2 раза.
Посмотреть на указательный палец вытянутой руки на счет 1–4, потом перевести взор вдаль на счет 5–8. Повторить 2 раза.
В среднем темпе проделать 3–4 круговых движения глазами в правую сторону, столько же в левую сторону. Расслабив глазные мышцы, посмотреть вдаль на счет 1–6. Повторить 1–2 раза .
Источник: xn--j1ahfl.xn--p1ai