Инфоурок Информатика Другие методич. материалыУроки по информатике "Одномерные массивы в Pascal" (10 класс)

Уроки по информатике "Одномерные массивы в Pascal" (10 класс)

Скачать материал

Муниципальное автономное общеобразовательное учреждение городского округа город Уфа  лицей №42

 

 

 

 

 

 

 

 

 

Методическая разработка серии уроков по теме «Одномерные массивы в Pascal».

Номинация – Методические статьи с описанием педагогического опыта «Интеграция основного и дополнительного образования».

Автор: Сафиуллина Александра Николаевна, учитель информатики и ИКТ

 

 

 

 

 

 

 

 

 

 

 

 

 

г. Уфа – 2020год

 

Оглавление.

1.     Введение

2.     Аналитическая часть:

2.1.          Методическое обоснование темы

2.2.          Методические рекомендации к проведению уроков

2.3.          Планы уроков

3.     Технологическая карта серии уроков

4.     Заключение

5.     Список использованной литературы

6.     Приложение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введение

Тема Массивы в программировании является наиболее сложной для восприятия учащимися, так как при ее изучении включаются все знания по алгоритмизации, изученные ранее, понимание математического аппарата алгоритмов обработки информации, а также сам процесс оперирования с огромным количеством данных вызывает обычно трудности у учащихся. И в тоже время эта тема наиболее интересна, если разобраться в самом начале и изучить приемы и методы обработки одномерных массивов, то при изучении тем на обработку двумерных и многомерных массивов, учащимся обычно не составляет труда. Поэтому очень важно в самом начале правильно организовать учебный процесс по введению темы Массивы и настроить учащихся на восприятие этих тем. Умения и знания по обработке массивов часто используются в приемах решения олимпиадных задач. Не малое место занимают эти темы и при подготовке к ЕГЭ по информатике, и в части В и в части С включены задания на обработку массивов. Тем более довольно много часов в учебном плане отводится на изучении этих тем. Считаю изучение данной темы очень важным и актуальным на сегодняшний день.

Основные цели.

·        Определение форм и методов изучения содержания темы.

·        Раскрытие опыта проведения уроков по изучению данной темы.

·        Описание видов деятельности учащихся и учителя.

·        Осуществление связи теории с практикой на уроках.

·        Использование современных педагогических технологий на уроках.

Предполагаемый результат – усвоение учебного материала учащимися и использование при решении класса задач по этой теме, а также подготовка к ЕГЭ по информатике.

 

 

 

Аналитическая часть

I.                  Методическое обоснование темы.

Данная тема изучается в 10 классе в 3 четверти после изучения всех алгоритмических конструкций в программировании: линейного алгоритма, ветвления и циклов. Эта тема опирается на ранее изученные темы, поэтому и вызывает трудности. С понятием «массив» приходится сталкиваться при решении научно-технических и экономических задач обработки совокупностей большого количества значений. Поэтому разработка и проведение таких уроков с одной стороны, вызывает много трудностей, с другой стороны эти уроки интересны обучающимся, занимающимся решением таких задач.

II.              Методические рекомендации по проведению уроков.

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

Изучение данного раздела поделено на 7 основных тем, которые нужно рассмотреть с учащимися, это урок по изучению основных понятий и терминов, проводится в виде лекции-беседы с использованием ноутбука и проектора, по ходу этого урока уч-ся задаются вопросы, на которые они отвечают и делают краткий конспект в тетради. Второй урок отводится на рассмотрение одних из типовых алгоритмов обработки одномерных массивов, а именно суммирование и нахождение произведений элементов по условию, а также количеств элементов по условию. На данном уроке рассматриваются алгоритмы (блок-схемы и запись на Pascal), далее учащимся предлагаются задачи для самостоятельного решения, вспоследствии эти задачи разбираются на доске. Третий урок посвящен теме «Нахождение минимумов и максимумов», а также их индексов, перестановке элементов, удалению элементов и вставке. Рассматриваются типовые задачи и на основе их предлагаются задания для самостоятельного решения на ПК. В конце урока учитель проверяет полученные решения на ПК. На четвертом уроке разбираются задачи из части В подготовка к ЕГЭ по информатике, дается презентация с заданиями и готовыми решениями для самопроверки, учащиеся в парах решают задания и проверяют себя, то как они усвоили основные алгоритмы обработки одномерных массивов. Далее предлагаются самостоятельно индивидуально выполнять тренировочные задания в тетради, в конце урока проверяются учителем и дается задание с сайта на дом (можно по вариантам). Пятый урок и шестой урок посвящаются части С подготовки к ЕГЭ по информатике, на которых дается задание самостоятельно выполнить на ПК и затем сверяется по презентации с решениями этих заданий, представленных там. Также в конце урока дается домашнее задание с сайта К. Полякова (можно по вариантам). На этих уроках идет окончательное закрепление изученного материала по алгоритмам обработки одномерных массивов. На седьмом уроке проводится тестирование с помощью интерактивной системы VOTUM, где и определяется уровень усвоения учебного материала учащимися. Если результат не очень положительный, то есть в резерве еще 2 часа, чтобы повторить основные алгоритмы, вернуться в самое начало и закрепить материал, прорешав задачи из теста и разобрав домашние задания, а также задания с сайта К. Полякова. Также можно дать на дом по вариантам домашнюю контрольную работу, чтобы еще раз посмотреть уровень усвоения учебного материала по этой теме.

 

III.           Планы уроков.

Урок №1. Тема урока: Табличные величины. Линейные таблицы.

Тип урока:      изучение нового учебного материала.

Вид урока:  лекция – беседа.

Цели урока:

Обучения:

 

o    способствовать формированию представления об одномерных массивах;

o    рассмотреть действия, которые можно выполнить над массивом;

o    познакомить с типовыми алгоритмами обработки массивов на языке Pascal;

o    создать условия для формирования умения решать алгоритмы с одномерными массивами.

Воспитания:

o    воспитание  аккуратности, точности;

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

Развития:

o    развивать практическое умение по вводу, выводу и обработке элементов массива и алгоритмический стиль мышления;

o    развивать познавательный интерес, логическое мышление, усиление познавательной мотивации осознанием ученика своей значимости в образовательном процессе.

Материально- техническое обеспечение урока. Наличие проектора, ноутбука, доска, маркер.

Межпредметные и внутрипредметные связи.

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

Примерами таких дисциплин могут быть:

o    Математика

o    Физика

o    География

o    Биология

o    История

o    и др.

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

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

o    Алгоритмы и исполнители [Алгоритмы работы с величинами: типы данных, ввод и вывод данных; Обрабатываемые объекты: цепочки символов, числа, списки, деревья, графы;]

o    Обработка числовой информации [Табличные расчеты и электронные таблицы (столбцы, строки, ячейки); Типы данных: числа, формулы, текст]

o    Хранение информации [Табличные базы данных: основные понятия, типы данных, системы управления базами данных и принципы работы с ними]

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

o    Средства и технологии создания и преобразования информационных объектов [Базы данных. Системы управления базами данных. Динамические (электронные) таблицы как информационные объекты. Использование электронных таблиц для обработки числовых данных (на примере задач из различных предметных областей)]

со следующей темой (из примерной программы среднего (полного) общего образования (профильный уровень)):

o    Информация и информационные процессы [Цепочки (конечные последовательности), деревья, списки, графы, матрицы (массивы), псевдослучайные последовательности. ]

o    Технологии поиска и хранения информации [Представление о системах управления базами данных, поисковых системах в компьютерных сетях, библиотечных информационных системах. Компьютерные архивы информации: электронные каталоги, базы данных. Организация баз данных.]

Урок №2. Тема урока: Решение типовых задач на обработку одномерных массивов. Нахождение суммы и произведения элементов массива по условию.

Тип урока:      комбинированный.

Вид урока:  смешанный урок (лекция, практическая работа).

Цели урока:

Обучения:

 

o    способствовать формированию представления об одномерных массивах;

o    рассмотреть действия, которые можно выполнить над массивом;

o    познакомить с типовыми алгоритмами обработки массивов на языке Pascal;

o    создать условия для формирования умения решать алгоритмы с одномерными массивами.

Воспитания:

o    воспитание  аккуратности, точности;

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

Развития:

o    развивать практическое умение по вводу, выводу и обработке элементов массива и алгоритмический стиль мышления;

o    развивать познавательный интерес, логическое мышление, усиление познавательной мотивации осознанием ученика своей значимости в образовательном процессе.

Материально- техническое обеспечение урока. Наличие проектора, ноутбука, доска, маркер, рабочее компьютерное место.

Межпредметные и внутрипредметные связи. см урок№1.

Урок №3. Тема урока: Решение типовых задач на обработку одномерных массивов. Нахождение минимума и максимума. Вставка и удаление элементов в одномерном массиве.

Тип урока:      комбинированный.

Вид урока:  смешанный урок (лекция, практическая работа).

Цели урока:

Обучения:

 

o    способствовать формированию представления об одномерных массивах;

o    рассмотреть действия, которые можно выполнить над массивом;

o    познакомить с типовыми алгоритмами обработки массивов на языке Pascal;

o    создать условия для формирования умения решать алгоритмы с одномерными массивами.

Воспитания:

o    воспитание  аккуратности, точности;

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

Развития:

o    развивать практическое умение по вводу, выводу и обработке элементов массива и алгоритмический стиль мышления;

o    развивать познавательный интерес, логическое мышление, усиление познавательной мотивации осознанием ученика своей значимости в образовательном процессе.

Материально- техническое обеспечение урока. Наличие проектора, ноутбука, доска, маркер, рабочее компьютерное место.

Межпредметные и внутрипредметные связи. см урок№1.

Урок №4. Тема урока: Одномерные массивы. Решение задач части В при подготовке к ЕГЭ.

Тип урока:      комбинированный.

Вид урока:  смешанный урок (лекция, практическая работа).

Цели урока:

Обучения:

 

o    способствовать формированию представления об одномерных массивах;

o    рассмотреть действия, которые можно выполнить над массивом;

o    познакомить с типовыми алгоритмами обработки массивов на языке Pascal;

o    создать условия для формирования умения решать алгоритмы с одномерными массивами.

Воспитания:

o    воспитание  аккуратности, точности;

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

Развития:

o    развивать практическое умение по вводу, выводу и обработке элементов массива и алгоритмический стиль мышления;

o    развивать познавательный интерес, логическое мышление, усиление познавательной мотивации осознанием ученика своей значимости в образовательном процессе.

Материально- техническое обеспечение урока. Наличие проектора, ноутбука, доска, маркер, рабочее компьютерное место.

Межпредметные и внутрипредметные связи. см урок№1.

Урок №5-6. Тема урока: Одномерные массивы. Решение задач части С при подготовке к ЕГЭ по информатике.

Тип урока:      урок совершенствования знаний, умений и навыков.

Вид урока:  практическая работа.

Цели урока:

Обучения:

 

o    способствовать формированию представления об одномерных массивах;

o    рассмотреть действия, которые можно выполнить над массивом;

o    познакомить с типовыми алгоритмами обработки массивов на языке Pascal;

o    создать условия для формирования умения решать алгоритмы с одномерными массивами.

Воспитания:

o    воспитание  аккуратности, точности;

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

Развития:

o    развивать практическое умение по вводу, выводу и обработке элементов массива и алгоритмический стиль мышления;

o    развивать познавательный интерес, логическое мышление, усиление познавательной мотивации осознанием ученика своей значимости в образовательном процессе.

Материально- техническое обеспечение урока. Наличие проектора, ноутбука, доска, маркер, рабочее компьютерное место.

Межпредметные и внутрипредметные связи. см урок№1.

Урок №7. Тема урока: Одномерные массивы. Тестирование с помощью интерактивной системы VOTUM.

Тип урока:      урок контроля знаний, умений и навыков.

Вид урока:  тестирование - зачет.

Цели урока:

Обучения:

 

o    способствовать формированию навыков работы с техническими устройствами (пульт ДУ для системы VOTUM);

o    рассмотреть действия, которые можно выполнить над массивом;

o    быстро и самостоятельно выполнять алгоритмы решения задач;

o    создать условия для формирования умения решать алгоритмы с одномерными массивами.

Воспитания:

o    воспитание  аккуратности, точности;

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

Развития:

o    развивать практическое умение по вводу, выводу и обработке элементов массива и алгоритмический стиль мышления;

o    развивать познавательный интерес, логическое мышление, усиление познавательной мотивации осознанием ученика своей значимости в образовательном процессе.

Материально- техническое обеспечение урока. Наличие проектора, ноутбука, интерактивной системы VOTUM.

Межпредметные и внутрипредметные связи. см урок№1.


Технологическая карта серии уроков.

 

Тема №1.

Тема №2.

Тема №3.

Тема №4.

Тема №5.

Тема №6.

Тема №7.

Тема занятия

Табличные величины. Линейные таблицы.

Решение типовых задач на обработку одн .массивов. Нах-ие суммы и произв. элементов по условию.

Решение типовых задач на обработку одн. массивов. Нах-ие миним. и макс. элемента. Вставка и удаление элементов.

Решение задач части В при подготовке к ЕГЭ.

Решение задач части С при подготовке к ЕГЭ.

Решение задач части С при подготовке к ЕГЭ.

Тестирование с помощью интерактивной системы VOTUM.

Тип/Вид занятия

Урок изучения нового учебного материала  / лекция-беседа

Комбинированный урок / лекция – практическая работа

Комбинированный урок / лекция – практическая работа

Комбинированный урок / лекция – практическая работа

Урок совершенствова-ния знаний, умений и навыков / практическая работа

Урок совершенствова-ния знаний, умений и навыков / практическая работа

Урок контроля знаний, умений и навыков / тестирование - зачет

Методы и мет. приемы

- рассказ

-объяснение

-беседа

-упражнения

-объяснение

-упражнения

-сам.работа

-объяснение

-упражнение

-сам.работа

-беседа

-упражнения

-сам.работа

-объяснение

-сам.работа

-объяснение

-сам.работа

-объяснение

-сам.работа

Форма и способ орган-ии дея-ти

-работа с презентацией

-работа в тетради (конспект)

-работа с презентацией

-работа в тетрадях (конспект)

-сам.работа (в тетрадях, на ПК)

-работа с презентацией

-работа в тетрадях (конспект)

-сам.работа (в тетрадях, на ПК)

работа с презентацией

-работа в тетрадях

-сам.работа в тетрадях

-работа в парах(обсуждение решения заданий)

-индиви-дуальная работа на ПК

-индиви-дуальная работа на ПК

-работа с интерактивной системой VOTUM

-сам.работа в тетрадях, разбор задач

Опорные вопросы и понятия

1.Понятие массива.

2. Понятие индекса в массиве.

3. Пример числового одн. массива.

4. Поиск элемента по индексу.

5. Описание одн. массива в Pascal.

6. Ввод элементов массива.

7. Вывод элементов массива.

1. Нах-ие суммы эл-в массива, удовл. условию.

2. Нах-ие произвед. эл-ов массива, удовл. условию.

3. Нах-ие кол-ва эл-ов массива, уд-их условию.

1. Нах-ие макс.элемента в массиве и его номера.

2. Нах-ие миним.элемента в массиве и его номера.

3. Вставка эл-та с номером р.

4. Удаление элемента с номером р из массива.

5. Вставка элеменов удов-их условию в др.массив.

1. Задания на поиск элементов массива по условию.

2. Задания на перестановку элементов в массиве.

3. Задания на нах-ие значения переменной, используемой при обработке одн.массива.

Сложные алгоритмы обработки одномерных массивов.

Сложные алгоритмы обработки одномерных массивов.

Все раннее изученные.

Система контроля знаний

Опрос уч-ся по теме.

Проверка заданий, выполненных в тетради.

Проверка заданий, выполненных на ПК.

Устный опрос по задачам.

Проверка заданий, выполненных на ПК.

Проверка заданий, выполненных на ПК.

VOTUM WEB.

Система сам. работы на занятии

Выполнение конспекта в тетради по теме.

Выполнение задач по теме в тетради.

Выполнение заданий на ПК.

Выполнение заданий в тетради по теме.

Сам.работа на ПК.

Сам.работа на ПК.

Выполнение заданий самостоятельно с помощью интерактивной системы VOTUM.

Система сам. работы вне занятий и задание на дом

Подготовка по конспекту основных вопросов темы.

Задания по теме на дом.

Задания по теме на дом.

Задания по теме на дом с сайта К.Полякова.

Задания по теме на дом с сайта К.Полякова.

Задания по теме на дом с сайта К.Полякова.

 

Обеспечение занятия (средства обучения)

Вербальные, печатные, технические, экранные.

Вербальные, печатные, технические, экранные.

Вербальные, печатные, технические, экранные.

Вербальные, печатные, технические, экранные.

Вербальные, технические, экранные.

Вербальные, технические, экранные.

Вербальные, технические, экранные.

 


Заключение

 

       Данная методическая разработка была посвящена  изучению темы «Одномерные массивы в Pascal. Материалы были внедрены в старших классах Лицея №42.

          Данная методическая разработка для профильного уровня соответствует программе обучения предмету Информатика и ИКТ в школе.

В результате были сделаны следующие выводы:

      Цель обучения информатике освоение знаний, овладение умениями, воспитание, развитие и практическое применение приобретенных знаний и умений в области применения ПК.   

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

- достигают хороших результатов в изучении информатики,

- имеют практическую возможность применить навыки, полученные на уроках информатики,

- понимают необходимость междисциплинарных связей.

Основными преимуществами являются:

-  повышение мотивации учащихся при изучении информатики

 - наглядная интеграция знаний по различным предметам школьной программы

- простор для творческой и созидательной деятельности.

      Следует отметить, что при такой форме работы наряду с преимуществами имеются определенные трудности. Они обусловлены следующими факторами:

-         недостаточным уровнем подготовки в отдельных группах;

-          нехваткой времени;

-         трудностью вовлечения слабых учащихся в активную дискуссию.

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

Список использованной литературы.

1.     М.Е. Фиошин, А.А. Рессин, С.М. Юнусов. Информатика и ИКТ. 10-11 кл. Профильный уровень. В 2 ч. – М. : Дрофа, 2012.

2.     Информатика и ИКТ . Подготовка к ЕГЭ. Сборник задач по программированию. Изд. 2-е, исп. И доп./ Под ред. С. Ю. Кулабухова. – Ростов-на-Дону: Легион, 2014.

3.     Ушаков Д.М., Юркова Т.А., Паскаль для школьников.- СПб.: Питер, 2012.

4.      Попов В.Б. Turbo Pascal для школьников: Учеб.пособие.- 3-е доп. Изд. – М.: Финансы и статистика, 2005.

 

 

Приложение

 

Конспект урока №1. Тема урока: Табличные величины. Линейные таблицы.

Цели урока:

Обучения:

 

o    способствовать формированию представления об одномерных массивах;

o    рассмотреть действия, которые можно выполнить над массивом;

o    познакомить с типовыми алгоритмами обработки массивов на языке Pascal;

o    создать условия для формирования умения решать алгоритмы с одномерными массивами.

Воспитания:

o    воспитание  аккуратности, точности;

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

Развития:

o    развивать практическое умение по вводу, выводу и обработке элементов массива и алгоритмический стиль мышления;

o    развивать познавательный интерес, логическое мышление, усиление познавательной мотивации осознанием ученика своей значимости в образовательном процессе.

Материально- техническое обеспечение урока. Наличие проектора, ноутбука, доска, маркер.

План урока.

I.       Целевая установка. – 2 мин

II.    Актуализация знаний. – 3 мин

III. Изучения нового материала. -15 минут

IV.                       Закрепление. – 20 мин

V.   Домашнее задание. - 3 мин

VI.                       Подведение итогов. – 2 мин

I. Целевая установка.

Орг. момент,  приветствие уч-ся.

 

II. Актуализация знаний.

 

Дадим понятие массиву, приведите примеры. Можно ли обычную книгу считать массивом? Можно ли дом считать массивом и почему?

Массив это

Поименованный набор фиксированного числа однотипных элементов.

Индекс это

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

 

III. Изучение нового материала.

v Одномерный массив – это линейная таблица, т.е. таблица, элементы которой располагаются в одну строку или столбец. Элементами массива могут быть числовые и текстовые величины.

Рассматриваем с уч-ся пример числового массива и даем основные понятия на примере.

 

44

22

10

11

14

30

19

Определить чему будет равен элемент А[4]?

Ответ уч-ся: А[4]=11.

v А как же описывается одномерный массив в Pascal?

В разделе переменных Var массив записывается следующим образом:

Var имя:ARRAY[1..N] OF тип;

эта запись указывает, что дан одномерный массив (линейная таблица), содержащий N элементов, значения которых мы задаем с помощью описания типа данных.

Примеры:

Var A:Array[1..10] of Integer;

Var B:Array[1..100] of Real;

(уч-ся сами называют какие массивы описаны, т.е. имена, количество элементов и значения элементов массивов).

Количество элементов можно описать в разделе констант:

Const
  m=10;
Var  a : array [1..
m] of integer;

Иногда массив объявляют как пользовательский тип данных:

Type t=array[1..10] of integer;

Var    a : t;

v Как же заполняется массив элементами?

Существует 3 способа ввода значений элементов:

1 способпри помощи клавиатуры.

For i:=1 to N do begin

    Write(' a [ ' , i , ' ] = ' );

        ReadLn ( a [ i ] );

End;

 

2 способ – с помощью датчика случайных чисел.

For i:=1 to N do begin

  a[i]:=Random(B-A)+A;

  WriteLn(a[i]:10:5);

End;

 

3способ – по формуле, например арифметической прогрессии.

a[1]:=3;

Writeln(a[1]);

For i:=2 to N do begin

          a[i]:=a[i-1] + 2;

          Writeln(a[i]:5);

     End;

 

v Как же выводятся элементы одномерного массива на экран?

Существует 2 способа.

а) в столбик:

For i:=1 to N do Writeln(a[i]:4:2);

б) в строку

For i:=1 to N do Write(a[i]:4:2);

v Изменение элементов массива удовлетворяющих условию

Изменения:

a [ i ] :=5 – заменить i-ый элемент на число 5

a [ i ] := - a [ i ] – заменить i-ый элемент на противоположный по знаку

a [ i ] := a [ i ] * 2 – удвоить каждый элемент массива

a [ i ] := a [ i - 1]+3 –заменить i-ый элемент предшествующим плюс 3

For i:=1 to N do  begin
         If (
условие) then a[i]:=значение:
             Writeln(a[i]:5);
                 end;

IV.Закрепление. Выполнение заданий уч-ся в парах и дальнейший разбор у доски.

№1. Дано натуральное число n(n≤100). Составьте программу, которая заполняет одномерный массив, состоящий из n-элементов, последовательностью чисел: 1, 3, 5, 7, …

№2. Даны действительные числа a, d и натуральное число n(n≤100). Составьте программу, которая заполняет одномерный массив, состоящий из n-элементов, первыми n членами арифметической прогрессии с первым членом a и разностью прогрессии d.

V. Постановка домашнего задания.

№1. Выучить конспект.

№2. Дано натуральное число n(n<1000000). Составьте программу, которая заполняет одномерный массив цифрами данного числа, расположенными в обратном порядке (первый элемент равен последней цифре числа, второй – предпоследней и т.д.). Незаполненные элементы массива должны быть равны нулю. Полученный массив вывести на экран.

VI.Подведение итогов урока, выставление оценок.

Конспект урока №2. Тема урока: Решение типовых задач на обработку одномерных массивов. Нахождение суммы и произведения элементов массива по условию.

Цели урока:

Обучения:

 

o    способствовать формированию представления об одномерных массивах;

o    рассмотреть действия, которые можно выполнить над массивом;

o    познакомить с типовыми алгоритмами обработки массивов на языке Pascal;

o    создать условия для формирования умения решать алгоритмы с одномерными массивами.

Воспитания:

o    воспитание  аккуратности, точности;

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

Развития:

o    развивать практическое умение по вводу, выводу и обработке элементов массива и алгоритмический стиль мышления;

o    развивать познавательный интерес, логическое мышление, усиление познавательной мотивации осознанием ученика своей значимости в образовательном процессе.

Материально- техническое обеспечение урока. Наличие проектора, ноутбука, доска, маркер, рабочее компьютерное место.

План урока.

I.       Целевая установка. 1 мин

II.    Актуализация знаний. – 4 мин

III. Изучения нового материала. -15 минут

IV.                       Закрепление. – 20 мин

V.   Домашнее задание. - 3 мин

VI.                       Подведение итогов. – 2 мин

I. Целевая установка.

Орг. момент,  приветствие уч-ся.

II. Актуализация знаний.

Вспоминаем опорные знания по теме, понятие массива, индекса, описание массива в Pascal, ввод и вывод элементов, изменение значений элементов. Проверка домашнего задания.

III. Изучение нового материала.

Рассматриваем типовые алгоритмы обработки одномерных массивов.

v Нахождение суммы элементов массива по заданному условию.

s:=0;

For i:=1 to N do If (условие) then s:=s+ a[i];

WriteLn ('Сумма = ', s:10:5);

 

v Нахождение произведения элементов массива по заданному условию.

p:=1;

For i:=1 to N do If (условие) then p:=p* a[i];

WriteLn('Произведение = ', p:10:5);

 

v Подсчет количества элементов, удовлетворяющих условию.

k:=0;

For i:=1 to N do If (условие) then k:=k+1;

WriteLn('Кол-во=',k:10);

 

IV.Закрепление. Выполнение задач в тетради, затем анализ решения и разбор у доски.

№1. Даны натуральные числа n, a1,…,an. Составьте программу, которая определяет количество членов последовательности a1,…,an, являющихся нечётными числами.

№2. Даны натуральные числа n, a1,…,an. Составьте программу, которая вычисляет сумму тех элементов последовательности a1,…,an, которые кратны 3.

V.Постановка домашнего задания.

1. Повторить все алгоритмы обработки одномерных массивов.

2. Даны натуральные числа n, a1,…,an. Составьте программу, которая определяет количество членов последовательности a1,…,an с чётными порядковыми номерами и нечётными значениями.

3. Даны натуральные числа n, a1,…,an. Составьте программу, которая вычисляет сумму тех элементов, которые нечётны и отрицательны.

VI.Подведение итогов урока, выставление оценок.

Конспект урока №3. Тема урока: Решение типовых задач на обработку одномерных массивов. Нахождение минимума и максимума. Вставка и удаление элементов в одномерном массиве.

Цели урока:

Обучения:

 

o    способствовать формированию представления об одномерных массивах;

o    рассмотреть действия, которые можно выполнить над массивом;

o    познакомить с типовыми алгоритмами обработки массивов на языке Pascal;

o    создать условия для формирования умения решать алгоритмы с одномерными массивами.

Воспитания:

o    воспитание  аккуратности, точности;

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

Развития:

o    развивать практическое умение по вводу, выводу и обработке элементов массива и алгоритмический стиль мышления;

o    развивать познавательный интерес, логическое мышление, усиление познавательной мотивации осознанием ученика своей значимости в образовательном процессе.

Материально- техническое обеспечение урока. Наличие проектора, ноутбука, доска, маркер, рабочее компьютерное место.

План урока.

I.       Целевая установка. – 2 мин

II.    Актуализация знаний. – 4 мин

III. Изучения нового материала. -15 минут

IV.                       Закрепление. – 20 мин

V.   Домашнее задание. - 3 мин

VI.                       Подведение итогов. – 2 мин

I. Целевая установка.

Орг. момент,  приветствие уч-ся.

II. Актуализация знаний.

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

III. Изучение нового материала.

Продолжаем рассматривать типовые задачи на обработку одномерных массивов.

v Нахождение максимального элемента в массиве и его номера:

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);

 

v Нахождение минимального элемента в массиве и его номера:

min:=a[1];

k:=1;

for i:=2 to N do if (a[i<min) then begin

      min:=a[i];

      k:=i;

      end;

WriteLn(‘Min=’,min:10:5);

WriteLn(‘Номер=’,k:5);

 

v Вставка элемента с номером p в последовательность

 

For i:=N downto p do a[i+1]:=a[i];

a[p]:=значение;

N:=N+1;

 

v Удаление элемента с номером p из массива:

 

for i:=p to (N-1) do a[i]:=a[i+1];

N:=N-1;

 

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

 

j:=0;

For i:=1 to N do

 if  (а[i]…)    then begin

     j:=j+1;

     b[j]:=a[i];

     end;

K:=j;  

 

IV.Закрепление. Выполнение задач на компьютере, затем анализ решения и разбор у доски.

№1. Даны натуральное число n и последовательность целых чисел a1,…,an. Составьте программу, которая находит наибольший и наименьший элементы и меняет их местами. Полученную последовательность вывести на экран.

№2. Даны натуральное число n и последовательность целых чисел a1,…,an. Удалить из массива максимальный элемент. Вставить в позицию р значение минимального элемента.

V.Постановка домашнего задания.

1. Повторить все алгоритмы обработки одномерных массивов.

2. Даны натуральное число n и последовательность целых чисел a1,…,an. Составьте программу, которая все отрицательные элементы последовательности делит на значение наибольшего элемента. Полученную последовательность вывести на экран.

VI.Подведение итогов урока, выставление оценок.

Конспект урока №4. Тема урока: Одномерные массивы. Решение задач части В при подготовке к ЕГЭ.

Цели урока:

Обучения:

o    способствовать формированию представления об одномерных массивах;

o    рассмотреть действия, которые можно выполнить над массивом;

o    познакомить с типовыми алгоритмами обработки массивов на языке Pascal;

o    создать условия для формирования умения решать алгоритмы с одномерными массивами.

Воспитания:

o    воспитание  аккуратности, точности;

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

Развития:

o    развивать практическое умение по вводу, выводу и обработке элементов массива и алгоритмический стиль мышления;

o    развивать познавательный интерес, логическое мышление, усиление познавательной мотивации осознанием ученика своей значимости в образовательном процессе.

Материально- техническое обеспечение урока. Наличие проектора, ноутбука, доска, маркер, рабочее компьютерное место.

 

План урока.

I.       Целевая установка. – 2 мин

II.    Актуализация знаний. – 4 мин

III. Изучение нового материала. -15 минут

IV.                       Закрепление. – 20 мин

V.   Домашнее задание. - 3 мин

VI.                       Подведение итогов. – 2 мин

I. Целевая установка.

Орг. момент,  приветствие уч-ся.

II. Актуализация знаний.

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

III. Изучение нового материала.

Разбираем задания из презентации, которые встречаются в 19 задании из ЕГЭ.

1. Значения двух массивов A[1..100] и B[1..100] задаются с помощью следующего фрагмента программы. Сколько элементов массива B будут иметь положительные значения?

for n:=1 to 100 do
        A[n]:=n-10;
for n:=1 to 100 do
         B[n]:=A[n]*n;

Ответ: 90.

2. Значения двух массивов A[1..100] и B[1..100] задаются с помощью следующего фрагмента программы. Какой элемент массива B будет наибольшим?

for n:=1 to 100 do

    A[n]:= (n-80)*(n-80);

for n:=1 to 100 do

       B[101-n]:=A[n];

Ответ: B[100].

3.  Значения элементов массива A[1..15] задаются с помощью следующего фрагмента программы. Какие значения будут присвоены элементам A[5], A[8]?

for n:=1 to 15 do
    A[n]:=sqr(n);
 for n:=1 to 15 do

    begin

       if n mod 2<>0

         then А[n] := sqrt(A[n])

         else A[n] := A[1]; 

     end;

 

Ответ: A[5]=5, B[8]=1.

4. В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Ниже представлен фрагмент программы, в котором значения элементов сначала задаются, а затем меняются. Чему будут равны элементы этого массива после выполнения фрагмента программы?

for i:=0 to 9 do

  A[i]:=9-i;

for i:=0 to 4 do begin

  k:=A[i];

  A[i]:=A[9-i];

  A[9-i]:=k;

end;

 

Ответ: 0 1 2 3 4 5 6 7 8 9

 5. Значения двух массивов A[1..300] и B[1..300] задаются с помощью следующего фрагмента программы. Сколько элементов массива B будут иметь отрицательные значения?

For n:=1 to 300 do
         A[n]:=100-n;
for n:=1 to 300 do
         B[n]:=2*A[n]+1;

Ответ: 200.

IV.Закрепление. Выполнение заданий из презентации, работа в парах.

№1. В программе описан одномерный целочисленный массив с индексами от 0 до 10. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

for i:=0 to 10 do

  A[i]:= i + 1;

for i:=0 to 10 do

A[i]:= A[10-i];

 

Чему будут равны элементы этого массива?

Ответ: 3) 11 10 9 8 7 6 7 8 9 10 11

№2. В программе обрабатывается двумерный целочисленный массив A [0..n,0..n]. Первый индекс элемента обозначает номер строки, а второй – номер столбца. Дан фрагмент программы:

  for i:=0 to n do begin

   c:=A[i,n-i];

   A[i,n-i]:=A[1,i];

    A[1,i]:=c; end;

 

Что меняет этот фрагмент программы?

Ответ: 3) элементы диагонали и строки в таблице

№3. Значения элементов двух массивов A[1..100] и B[1..100] задаются с помощью следующего фрагмента программы:

  for n:=1 to 100 do

   A[n] := n – 50;

  for n:=1 to 100 do

   B[101-n]:=A[n]*A[n];

 

Какой элемент массива B будет наименьшим?

Ответ: 3) B[51]

№4. Дан фрагмент программы, обрабатывающий массив А из 10 элементов:

n := 10;

for i:=1 tо n do A[i] := i;

j := 1; for i:=1 tо n-1 do

  if A[i] < A[i+1] then j := j + 1;

 

Чему будет равно значение переменной j после выполнения этого алгоритма?

Ответ: -9800

№5. В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, обрабатывающей данный массив:

s:= 0;

n:= 10;

for i:=0 to n do begin

  if A[n-i]-A[і] > A[і] then s:=s+A[і];

end;

В начале выполнения этого фрагмента в массиве находились числа 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, т. е. А[0]=0, А[1]=10 и т. д. Чему будет равно значение переменной s после выполнения данной программы?

Ответ: 60.

V.Постановка домашнего задания.

Номер варианта

Ege 19

Ege 19

Ege 19

Ege 19

Ege 19

Ege 19

1 вариант

№11

№38

№46

№63

№67

№80

2 вариант

№12

№39

№48

№64

№68

№81

3 вариант

№13

№40

№60

№65

№69

№82

4 вариант

№14

№41

№61

№66

№70

№83

 

VI.Подведение итогов урока, выставление оценок.

Конспект урока №5-6. Тема урока: Одномерные массивы. Решение задач части С при подготовке к ЕГЭ по информатике.

Цели урока:

Обучения:

o    способствовать формированию представления об одномерных массивах;

o    рассмотреть действия, которые можно выполнить над массивом;

o    познакомить с типовыми алгоритмами обработки массивов на языке Pascal;

o    создать условия для формирования умения решать алгоритмы с одномерными массивами.

Воспитания:

o    воспитание  аккуратности, точности;

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

Развития:

o    развивать практическое умение по вводу, выводу и обработке элементов массива и алгоритмический стиль мышления;

o    развивать познавательный интерес, логическое мышление, усиление познавательной мотивации осознанием ученика своей значимости в образовательном процессе.

Материально- техническое обеспечение урока. Наличие проектора, ноутбука, доска, маркер, рабочее компьютерное место.

План урока.

I.       Целевая установка. 1 мин

II.    Актуализация знаний. – 9 мин

III. Практическая работа. -50 минут (+физкультминутка)

IV.                       Анализ практической работы – 30 мин

V.   Домашнее задание. - 3 мин

VI.                       Подведение итогов. – 2 мин

I. Целевая установка.

Орг. момент,  приветствие уч-ся.

II. Актуализация знаний.

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

III. Практическая работа – решение задач на компьютере из части С2 Подготовка к ЕГЭ по информатике. Через 25 минут после начала работы на компьютере проводится физкультминутка (делаются упражнения для глаз).

1.     Опишите на русском языке или одном из языков программирования алгоритм поиска номера первого из двух последовательных элементов в целочисленном массиве из 30 элементов, сумма которых максимальна. Если таких пар несколько, то можно выбрать любую из них.

2.     Опишите на русском языке или на одном из языков программирования алгоритм поиска второго по величине (т.е. следующего по величине за максимальным) элемента в числовом массиве из 30 различных элементов.

3.     Опишите алгоритм поиска трех последовательных элементов, сумма которых максимальна, в числовом массиве из 30 элементов. Решение запишите в словесной форме или на алгоритмических языках Бейсик или Паскаль.

4.     Опишите на русском языке или одном из языков программирования алгоритм подсчета максимального количества подряд идущих совпадающих элементов в целочисленном массиве длины 30.

5.     Дан целочисленный массив из 50 элементов. Элементы массива могут принимать целые значения от 0 до 100 – баллы учащихся за итоговый тест по информатике. Для получения положительной оценки за тест требовалось набрать не менее 20 баллов. Опишите на русском языке или на одном из языков программирования алгоритм, который  выводит минимальный балл среди учащихся, получивших за тест положительную оценку. Известно, что в классе есть хотя бы один такой учащийся.

 

IV.                    Анализ практической работы. Разбор заданий с помощью презентации.

1. Program c1;

const N=30;

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

                 i, nom1, S: integer;

begin

For i:=1 to N do readln(A[i]);

nom1 := 1;            {номер первого элемента}

S := A[1] + A[2];  {максимальная сумма}

 For i:=2 to N-1 do

  if A[i]+ A[i+1] > S then

    begin

        nom1 := i;

        S := A[i] + A[i+1];

   end;

           writeln(nom1);

Readln;

end.

 

2. Program c2;

const N=30;

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

    i, k, max, max2: integer;

begin

  for i:=1 to N do readln(a[i]);

  if a[1] > a[2]     then           begin

    max:=a[1]; max2:=a[2];   end

                              else     begin

    max:=a[2]; max2:=a[1];

                                         end;

  for i:=3 to N do

    if a[i] > max then                     begin

      max2 := max;   max := a[i];  end

                          else

      if a[i] > max2 then max2 := a[i];

  writeln(max2);    readln;

end.

 

3. Program c3;

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

    Max, S, i, k: integer;

Begin

  for i:=1 to 30 do   readln(A[i]);

  S:=a[1]+a[2]+a[3];  {текущая сумма}

  Max:=S;                      {максимальная сумма}

  k:=1;             {номер первого элемента тройки}

  for i:=2 to 28 do begin

       S:=a[i]+a[i+1]+a[i+2];

       if S > Max then begin

                                          Max:=S;

                                          k:=i;

                                 end;

                               end;

  for i:=k to k+2 do

    writeln('A[', I , ']=', a[i]);  readln;

end.

 

4. Program  c4;

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

  i, k, kMax: integer;

begin

 for i:=1 to 30 do   readln(A[i]);

 k := 1;             {число элементов в цепочке}

 kMax := 1;      {максимум в цепочке}                 

 for i:=2 to 30 do begin

  if A[i] = A[i-1]    then  k := k + 1

                              else   {цепочка закончилась }

        begin if k > kMax then kMax := k;

                  k := 1;

        end;

                           end;

 if k > kMax then

           kMax := k; { если цепочка стоит в конце}

 writeln(kMax);    readln;

end.

 

5. Program  c5;

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

       i, min: integer;

begin

 for i:=1 to 50 do  begin

      write(‘Введите число из [0, 100]’); 

      repeat        {не пропускаем другие числа}

        readln(A[i]);

      until (A[i]>=0) and (A[i]<=100) ;

                               end;

min := 101;       {минимальный балл}

for i:=1 to 50 do

  if (a[i] >= 20) and (a[i] < min)

      then     min := a[i];

writeln ( min );  Readln;

end.

 

V.   Домашнее задание.

1.     Разобрать все алгоритмы, рассмотренные на уроке, начертить блок-схемы к задачам.

2.  Выполнить задания по вариантам.

Номер варианта

Ege 25

Ege 25

Ege 25

1 вариант

№7

№13

№20

2 вариант

№8

№14

№21

3 вариант

№9

№15

№23

4 вариант

№10

№16

№25

 

VI.                       Подведение итогов, выставление оценок.

Конспект урока №7. Тема урока: Одномерные массивы. Тестирование с помощью интерактивной системы VOTUM.

Цели урока:

Обучения:

o    способствовать формированию навыков работы с техническими устройствами (пульт ДУ для системы VOTUM);

o    быстро и самостоятельно выполнять алгоритмы решения задач;

o    создать условия для формирования умения решать алгоритмы с одномерными массивами.

Воспитания:

o    воспитание  аккуратности, точности;

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

Развития:

o    развивать практическое умение по вводу, выводу и обработке элементов массива и алгоритмический стиль мышления;

o    развивать познавательный интерес, логическое мышление, усиление познавательной мотивации осознанием ученика своей значимости в образовательном процессе.

Материально- техническое обеспечение урока. Наличие проектора, ноутбука, интерактивной системы VOTUM.

План урока.

I.       Целевая установка. 1 мин

II.    Актуализация знаний. – 5 мин

III. Тестирование. - 20 минут

IV.                       Анализ теста – 17 мин

V.   Подведение итогов. - 2 мин

I. Целевая установка.

Орг. момент,  приветствие уч-ся.

II. Актуализация знаний.

Вспоминаем опорные знания по теме, понятие массива, индекса, описание массива в Pascal, ввод и вывод элементов, изменение значений элементов, нахождение суммы и произведений элементов, а также количеств по условию, нахождение минимального и максимального элементов, вставка и удаление элементов из массива. Проверка домашнего задания. Здесь также можно показать задания из презентации урок №4.

III.Тестирование с помощью интерактивной системы VOTUM - 20 минут

IV.Анализ теста  и разбор заданий с помощью системы VOTUM– 17 мин

V.               Подведение итогов, выставление оценок.

Дидактический материал к урокам.

Урок №4. Домашнее задание по вариантам.

1 вариант.

№11. В программе описан одномерный целочисленный массив с индексами от 0 до 10. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

for i:=0 to 10 do

  A[i]:= i + 1;

for i:=10 downto 0 do

  A[i]:= A[10-i];

Чему будут равны элементы этого массива?

        1) 10 9 8 7 6 5 4 3 2 1 0

        2) 11 10 9 8 7 6 5 4 3 2 1

        3) 11 10 9 8 7 6 7 8 9 10 11

        4) 1 2 3 4 5 6 5 4 3 2 1

Ответ: 4) 1 2 3 4 5 6 5 4 3 2 1 

№38. В программе описан одномерный целочисленный массив с индексами от 0 до 10 и целочисленная переменная i. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

  for i:=0 to 10 do A[i]:=i+1;

  for i:=1 to 10 do

    A[i]:=A[i-1];

Чему будут равны элементы этого массива?

        1) 1 1 2 3 4 5 6 7 8 9 10

        2) 1 2 3 4 5 6 7 8 9 10 10

        3) 1 1 1 1 1 1 1 1 1 1 1

        4) 0 1 2 3 4 5 6 7 8 9 10

Ответ: 3) 1 1 1 1 1 1 1 1 1 1 1

№46. В программе описан одномерный целочисленный массив с индексами от 0 до n. Известно, что в массиве есть несколько элементов с максимальным значением. Дан фрагмент программы:

j:=1;

for i:=1 to n do

  if A[i] > A[j] then j:= i;

s:=j;

Чему будет равно значение переменной s после выполнения этого фрагмента программы:

             1) значению максимального элемента

             2) количеству элементов в массиве A, имеющих максимальное значение

             3) индексу первого элемента в массиве A, имеющего максимальное значение

             4) индексу последнего элемента в массиве A, имеющего максимальное значение

Ответ: 3) индексу первого элемента в массиве A, имеющего максимальное значение

№63. В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, обрабатывающей данный массив:

s:= 0;

n:= 10;

for i:=0 to n do begin

  if і = n-i then s:=s+A[i]+A[i+1];

end;

В начале выполнения этого фрагмента в массиве находились числа 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, т. е. А[0]=0, А[1]=10 и т. д. Чему будет равно значение переменной s после выполнения данной программы?

Ответ: 110

№67. В программе описан одномерный целочисленный массив с индексами от 1 до 10. Ниже представлен фрагмент программы, обрабатывающей данный массив:

n:=10;

for i:=1 to n do begin

  s = A[n+1-i]*i;

  A[n+1-i]:= A[i]*i;

  A[i]:= s;

end;

Перед началом выполнения фрагмента все элементы массива равны 1. Укажите утверждение, которое будет верно после выполнения указанного фрагмента программы при изменении индекса от 1 до 10.

1) значения массива возрастают

2) значения массива убывают

3) значения массива постоянны

4) значения массива сначала возрастают, а потом убывают

Ответ: 4) значения массива сначала возрастают, а потом убывают

№80. В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен записанный на разных языках программирования фрагмент одной и той же программы, обрабатывающей данный массив:

s:=0;

n:=10;

for i:=0 to n-1 do begin

  s:=s+A[i]-A[i+1]

end;

В начале выполнения этого фрагмента в массиве находились двухзначные натуральные числа. Какое наибольшее значение может иметь переменная s после выполнения данной программы?

Ответ: 89

2 вариант.

№12. В программе описан одномерный целочисленный массив с индексами от 0 до 10. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

for i:=0 to 10 do

  A[i]:= i + 1;

for i:=0 to 10 do

  A[i]:= A[10-i];

Чему будут равны элементы этого массива?

        1) 10 9 8 7 6 5 4 3 2 1 0

        2) 11 10 9 8 7 6 5 4 3 2 1

        3) 11 10 9 8 7 6 7 8 9 10 11

        4) 10 9 8 7 6 5 6 7 8 9 10

Ответ: 3) 11 10 9 8 7 6 7 8 9 10 11

№39. В программе описан одномерный целочисленный массив с индексами от 0 до 9 и целочисленные переменные k и i. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

  for i:=0 to 9 do A[i]:=i+1;

  k:=A[9];

  for i:=9 downto 1 do

    A[i]:=A[i-1];

  A[0]:=k;

Чему будут равны элементы этого массива?

        1) 10 3 4 5 6 7 8 9 10 10

        2) 10 1 2 3 4 5 6 7 8 9

        3) 10 1 1 1 1 1 1 1 1 1

        4) 10 10 10 10 10 10 10 10 10 10

Ответ: 2) 10 1 2 3 4 5 6 7 8 9

№48. Значения двух массивов A и B с индексами от 1 до 100 задаются при помощи следующего фрагмента программы:

for i:=1 to n do

  A[i]:=i*i;

for i:=1 to n do

  B[i]:=A[i]-100;

Сколько положительных значений будет в  массиве B?

Ответ: 90

№64. В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, обрабатывающей данный массив:

s:= 0;

n:= 10;

for i:=0 to n do begin

  if A[n-i]-A[і] > A[і] then

    s:=s+A[і];

end;

В начале выполнения этого фрагмента в массиве находились числа 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, т. е. А[0]=0, А[1]=10 и т. д. Чему будет равно значение переменной s после выполнения данной программы?

Ответ: 60

№68. В программе описан одномерный целочисленный массив с индексами от 1 до 10. Ниже представлен фрагмент программы, обрабатывающей данный массив:

n:=10;

for i:=1 to n do begin

  s = A[n+1-i] + i;

  A[n+1-i]:= A[i] + i;

  A[i]:= s;

end;

Перед началом выполнения фрагмента все элементы массива равны 1. Укажите утверждение, которое будет верно после выполнения указанного фрагмента программы при изменении индекса от 1 до 10.

1) значения массива возрастают

2) значения массива сначала возрастают, а потом убывают

3) значения массива убывают

                   4) значения массива постоянны

Ответ: 4) значения массива постоянны

№81. В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, обрабатывающей данный массив:

s:=0;

n:=10;

for i:=0 to n-2 do begin

  s:=s+A[i]-A[i+2]

end;

В начале выполнения этого фрагмента в массиве находились двухзначные натуральные числа. Какое наибольшее значение может иметь переменная s после выполнения данной программы?

Ответ: 178

3 вариант.

№13. В программе описан одномерный целочисленный массив с индексами от 0 до 10. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

for i:=0 to 10 do

  A[i]:= i - 1;

for i:=1 to 10 do

  A[i-1]:= A[i];

A[10] := 10;

Как изменяются элементы этого массива?

        1) все элементы, кроме последнего, окажутся равны между собой

        2) все элементы окажутся равны своим индексам

        3) все элементы, кроме последнего, сдвигаются на один элемент вправо

                4) все элементы, кроме последнего, уменьшаются на единицу

Ответ: 2) все элементы окажутся равны своим индексам

№40. В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

  for i:=0 to 10 do

    A[i]:=i-1;

  for i:=10 downto 1 do

    A[i-1]:=A[i];

Чему будут равны элементы этого массива?

        1) 9 9 9 9 9 9 9 9 9 9 9

        2) 0 1 2 3 4 5 6 7 8 9 9

        3) 0 1 2 3 4 5 6 7 8 9 10

                4) -1 -1 0 1 2 3 4 5 6 7 8

Ответ: 1) 9 9 9 9 9 9 9 9 9 9 9

№60. В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

  for i:=0 to 10 do

    A[i]:=3*i;

 for i:=1 to 10 do

    A[i]:=A[i] mod 3;

Чему будут равны элементы этого массива?

        1) Все элементы будут равны 3.

        2) Все элементы будут равны 1.

        3) Все элементы будут равны 0.

                 4) Все элементы будут равны своим индексам.

Ответ: 3) Все элементы будут равны 0.

№65. В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, обрабатывающей данный массив:

s:= 0;

n:= 10;

for i:=0 to n do begin

  if A[n-i]-A[і] < A[і] then

    s:=s+A[і];

end;

В начале выполнения этого фрагмента в массиве находились числа 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, т. е. А[0]=0, А[1]=2 и т. д. Чему будет равно значение переменной s после выполнения данной программы?

Ответ: 98

№69. В программе описан одномерный целочисленный массив с индексами от 0 до 100. Ниже представлен фрагмент программы, обрабатывающей данный массив:

n:= 100;

for i:=0 to n do A[i]:=i;

for i:=1 to n do begin

  A[i]:= A[i]-A[i-1];

end;

s:=A[90];

Укажите значение, которое после выполнения указанного фрагмента программы будет записано в переменную s.

Ответ: 45

№82. В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, обрабатывающей данный массив:

s:=0;

n:=10;

for i:=0 to n-3 do begin

  s:=s+A[i]-A[i+3]

end;

В начале выполнения этого фрагмента в массиве находились двухзначные натуральные числа. Какое наибольшее значение может иметь переменная s после выполнения данной программы?

Ответ: 267

4 вариант.

№14. В программе описан одномерный целочисленный массив с индексами от 0 до 10. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:

for i:=0 to 10 do

  A[i]:= i;

for i:=1 to 11 do

  A[i-1]:= A[11-i];

Чему будут равны элементы этого массива?

        1) 10 9 8 7 6 5 4 3 2 1 0

        2) 11 10 9 8 7 6 5 4 3 2 1

        3) 10 9 8 7 6 5 6 7 8 9 10

        4) 11 10 9 8 7 6 7 8 9 10 11

Ответ: 3) 10 9 8 7 6 5 6 7 8 9 10

№41. В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

  for i:=0 to 10 do

    A[i]:=i;

  for i:=0 to 5 do begin

    A[10-i]:=A[9-i];

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

  end;

Чему будут равны элементы этого массива?

        1) 0 1 2 3 4 5 6 7 8 9 10

        2) 0 1 2 3 4 5 6 7 8 9 9

        3) 1 2 3 4 5 5 5 6 7 8 9

        4) 1 2 3 4 5 6 5 4 3 2 1

Ответ: 3) 1 2 3 4 5 5 5 6 7 8 9

№61. В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

for i:=0 to 10 do

  A[i]:=i-1;

for i:=1 to 10 do

  A[i-1]:=A[i];

A[10]:=10;

Как изменятся элементы этого массива после выполнения фрагмента программы?

1) все элементы, кроме последнего, окажутся равны между собой

2) все элементы окажутся равны своим индексам

3) все элементы, кроме последнего, будут сдвинуты на один элемент вправо

4) все элементы, кроме последнего, уменьшатся на единицу

Ответ: 2) все элементы окажутся равны своим индексам

№66. В программе описан одномерный целочисленный массив с индексами от 1 до 10. Ниже представлен фрагмент программы, обрабатывающей данный массив:

n:= 10;

for i:= 1 to n do begin

  A[n+1-i]:= 2*A[i];

end;

В начале выполнения этого фрагмента в массиве находились числа 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, т. е. А[1]=1, А[2]=2 и т. д. Укажите значение, которое после выполнения указанного фрагмента программы имеют два или более элемента массива. Если таких чисел несколько, укажите наибольшее из них.

Ответ: 8

№70. В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, обрабатывающей данный массив:

n:= 10; s:= 0;

for i:=1 to n do begin

  if A[i]-A[i-1] < i then

    s:= s + i;

end;

В начале выполнения этого фрагмента в массиве находились числа Фибоначчи: 1,1,2,3,5,8,13,21,34,55,89, т.е. A[0]=1, A[1]=1, A[2]=2 и т.д. Чему будет равно значение переменной s после выполнения данной программы?

Ответ: 21

№83. В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен  фрагмент программы, обрабатывающей данный массив:

s:=0;

n:=10;

for i:=0 to n-1 do begin

  s:=s+A[i]-A[i+1]

end;

В начале выполнения этого фрагмента в массиве находились трёхзначные натуральные числа, не делящиеся на 20. Какое наибольшее значение может иметь переменная s после выполнения данной программы?

Ответ:  898

Урок №5-6. Домашнее задание по вариантам.

1 вариант.

№7. Дан целочисленный массив из 30 элементов. Элементы могут принимать значения от 0 до 100 ­– баллы, полученные на ЕГЭ. Опишите на русском языке или на одном из языков программирования алгоритм, который подсчитывает и выводит средний балл учащихся, сдавших экзамен (получивших оценку более 20 баллов). Гарантируется, что хотя бы один ученик в классе успешно сдал экзамен. Исходные данные объявлены так, как показано ниже. Использовать другие переменные запрещается.

Паскаль

Естественный язык

const N = 30;

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

    i, x, y: integer;

    s: real;

begin

  for i:=1 to N do readln(A[i]);

  ...

end.

Объявляется массив A из 30 элементов.

Объявляются целочисленные переменные i, x и y, а также вещественная переменная s.

В цикле от 1 до 30 заполняются все элементы массива A с 1-ого по 30-ый.

...

№13. Дан целочисленный массив из 30 элементов. Элементы массива могут принимать произвольные целые значения. С клавиатуры вводится целое число X. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит наименьший номер элемента, равного X, или сообщение, что такого элемента нет. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

Паскаль

Естественный язык

const N=30;

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

    i, j, x: integer;

begin

  for i:=1 to N do readln(a[i]);

  readln(x);

  ...

end.

Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j, x. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. Вводим переменную X.

...

В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).

№20. Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от
–1000 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит среднее арифметическое всех элементов массива, оканчивающихся цифрой 5. Гарантируется, что хотя бы один такое элемент в массиве есть.

Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

Паскаль

Естественный язык

const N=30;

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

    i, x, y: integer;

    s: real;

begin

  for i:=1 to N do readln(a[i]);

  ...

end.

Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, x, y и вещественную переменную s. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.

...

В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).

2 вариант.

№8. Дан целочисленный массив из 30 элементов. Элементы могут принимать значения от 160 до 200 ­– рост учащихся выпускного класса. В баскетбольную команду берут тех, чей рост не менее 180 см. Опишите на русском языке или на одном из языков программирования алгоритм, который подсчитывает и выводит минимальный рост игрока баскетбольной команды. Гарантируется, что хотя бы один ученик играет в баскетбольной команде. Исходные данные объявлены так, как показано ниже. Использовать другие переменные запрещается.

Паскаль

Естественный язык

const N = 30;

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

    i, x, y: integer;

    s: real;

begin

  for i:=1 to N do readln(A[i]);

  ...

end.

Объявляется массив A из 30 элементов.

Объявляются целочисленные переменные i, x и y, а также вещественная переменная s.

В цикле от 1 до 30 заполняются все элементы массива A с 1-ого по 30-ый.

...

№14. Дан целочисленный массив из 30 элементов. Элементы массива могут принимать произвольные целые значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит второй максимум массива (элемент, который в отсортированном по невозрастанию массиве стоял бы вторым). Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

Паскаль

Естественный язык

const N=30;

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

    i, k, max, max2: integer;

begin

  for i:=1 to N do readln(a[i]);

  ...

end.

Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, k, max, max2. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.

...

В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).

№21. Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от
0 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит среднее арифметическое всех элементов массива, имеющих нечётное значение. Гарантируется, что хотя бы один такое элемент в массиве есть.

Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

Паскаль

Естественный язык

const N=30;

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

    i, x, y: integer;

    s: real;

begin

  for i:=1 to N do readln(a[i]);

  ...

end.

Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, x, y и вещественную переменную s. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.

...

В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).

3 вариант.

№9. Дан целочисленный массив из 31 элемента, в котором записаны значения температуры воздуха в марте. Элементы массива могут принимать значения от (–20)  до 20. Опишите на русском языке или на одном из языков программирования алгоритм, который подсчитывает и выводит среднюю температуру по всем дням, когда была оттепель (температура поднималась выше нуля). Гарантируется, что хотя бы один день в марте была оттепель. Исходные данные объявлены так, как показано ниже. Использовать другие переменные запрещается.

Паскаль

Естественный язык

const N = 31;

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

    i, x, y: integer;

    s: real;

begin

  for i:=1 to N do readln(A[i]);

  ...

end.

Объявляется массив A из 31 элемента.

Объявляются целочисленные переменные i, x и y, а также вещественная переменная s.

В цикле от 1 до 31 заполняются все элементы массива A с 1-ого по 31-ый.

...

№15. Дан целочисленный массив из 30 элементов. Элементы массива могут принимать произвольные целые значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит номер третьего положительного элемента массива (если из массива вычеркнуть все неположительные элементы, этот элемент стоял бы в получившемся массиве на третьем месте). Если в массиве меньше, чем три положительных элемента, вывести сообщение об этом. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

Паскаль

Естественный язык

const N=30;

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

    i, j, k: integer;

begin

  for i:=1 to N do readln(a[i]);

  ...

end.

Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j, k. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.

...

В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).

№23. Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целочисленные значение значения от -20 до 20 – сведения о температуре за каждый день ноября. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит максимальную температуру среди дней, когда были заморозки (температура опускалась ниже нуля). Гарантируется, что хотя бы один день в ноябре была отрицательная температура.

Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

Паскаль

Естественный язык

const N=30;

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

    i, j, max: integer;

begin

  for i:=1 to N do readln(a[i]);

  ...

end.

Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j, max. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.

...

В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).

4 вариант.

№10. Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 100 – баллы учащихся выпускного класса за итоговый тест по информатике. Для получения положительной оценки за тест требовалось набрать не менее 20 баллов. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит минимальный балл среди учащихся, получивших за тест положительную оценку. Известно, что в классе хотя бы один учащийся получил за тест положительную оценку. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

Паскаль

Естественный язык

const N=30;

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

    i, j, min: integer;

begin

  for i:=1 to N do readln(a[i]);

  ...

end.

Объявляется массив A из 30 элементов.

Объявляются целочисленные переменные i, j и min.

В цикле от 1 до 30 заполняются все элементы массива A с 1-ого по 30-ый.

...

В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).

№16. Дан целочисленный массив из 30 элементов. Элементы массива могут принимать произвольные целые значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит сумму наибольшей по длине возрастающей последовательности подряд идущих элементов. Если таких последовательностей несколько, можно вывести любую из них. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

Паскаль

Естественный язык

const N=30;

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

    i, l, lmax, s, smax: integer;

begin

  for i:=1 to N do readln(a[i]);

  ...

end.

Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, l, lmax, s, smax.

В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.

...

В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).

№25. Дан целочисленный массив из 30 элементов, все элементы которого – неотрицательные числа, не превосходящие 10000. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит минимальное трехзначное число, записанное в этом массиве. если таких чисел нет, нужно вывести сообщение «Таких чисел нет».

Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

Паскаль

Естественный язык

const N=30;

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

    i, j, min: integer;

begin

  for i:=1 to N do readln(a[i]);

  ...

end.

Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j, min. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.

...

В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).

Решения части С домашней работы.

1 вариант.

№7.

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

 x := 0; y := 0;  { не забыть начальные условия! }

 for i:=1 to N do

   if A[i] > 20 then begin

     x := x + 1;

     y := y + A[i]

   end;

 s := y / x;

 writeln('Средний балл ', s:10:3);

№13.

Хитрость этой задачи в том, что нужно найти первый элемент, равный X. Вроде бы все просто – в цикле перебираем все элементы массива, если очередной элемент равен X, записываем его номер в переменную j.

for i:=1 to N do

  if a[i] = x then

    j := i; { запомнили номер }

Однако при этом в конце цикла в переменной j оказывается номер последнего элемента, равного X. Чтобы выйти их этой ситуации, можно остановить цикл, как только мы нашли первый элемент, равный X. В Паскале (и в Си) это делается с помощью оператора break (досрочный выход из цикла):

for i:=1 to N do

  if a[i] = x then begin

    j := i; { запомнили номер }

    break;

  end;

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

for i:=N downto 1 do

  if a[i] = x then

    j := i; { запомнили номер }

Как определить, что элемента, равного X, нет в массиве? Для этого до цикла в переменную  j нужно записать любое значение, которое не может быть номером элемента массива, например, 0. Если по окончании цикла в переменной j остался 0, ни одного элемента, равного X, не нашли.

№20.

Среднее арифметическое – это сумма всех нужных элементов, деленная на их количество.

Если значение в десятичной системе оканчивается на 5, это значит, что остаток от его деления на 10 (основание системы счисления) равен 5. Кроме того, есть еще один тонкий момент: при вычислении на компьютере остатка от деления отрицательных чисел (например, с помощью оператора mod в Паскале) этот остаток получается отрицательным[1], например -25 mod 10 = -5.

Нам нужно использовать  две переменных: счетчик найденных элементов и сумму; обе переменные сначала необходимо обнулить.

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

Решение на естественном языке. Записываем в переменные x и y нулевые значения. В цикле перебираем значения переменной i от 1 до N. Если очередной элемент при делении на 10 дает в остатке 5 или –5, увеличиваем счетчик x на 1 и сумму y – на значение этого элемента. После окончания цикла записываем в переменную s результат деления y на x. Выводим значение переменной s.

Решение на Паскале.

При проверке остатка можно использовать сложное условие:

if (a[i] mod 10 = 5) or (a[i] mod 10 = -5) then

  begin ... end;

или перед применением операции mod взять модуль очередного элемента массива:

if abs(a[i]) mod 10 = 5 then begin ... end;

Еще один вариант условия предложил читатель Ion:

if (a[ i] mod 5 = 0) and (a[ i] mod 2 <> 0) then begin

...

end;

что означает «число делится на 5 и не делится на 2», то есть оканчивается на 5.

Один из вариантов решения:

const N=30;

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

    i, x, y: integer;

    s: real;

begin

  for i:=1 to N do readln(a[i]);

  x:=0; y:=0;

  for i:=1 to N do

    if abs(a[i]) mod 10 = 5 then begin

      x := x + 1;

      y := y + a[i]

    end;

  s := y / x;

  writeln(s)

end.

Варианты задачи. Если требуется определить среднее арифметическое четных или нечетных элементов, нужно проверять делимость на 2, а не на 10. Если остаток от деления на 2 равен 0, то число четное.

2 вариант.

№8. Фактически нужно найти минимальный рост ученика среди всех учеников, имеющих рост 180 см или выше.

Значение минимального роста будем хранить в переменной x. Поскольку известно, что все ученики не выше 200 см, сначала в переменную x запишем 200 (или любое большее число). Затем в цикле от 1 до 30 рассматриваем все элементы массива A. Если очередной элемент больше или равен 180 (нашли игрока-баскетболиста) и одновременно меньше x, записываем значение этого элемента в переменную x. После окончания цикла выводим значение переменной x. Недостающая часть программы может выглядеть так:

 x := 200;  { или любое число >= 200 }

 for i:=1 to N do

   if (A[i] >= 180) and (A[i] < x) then

     x := A[i];

 writeln('Рост ', x);

№14. Сложность в том, что нужно найти не  максимальный элемент, а второй по величине. Можно, конечно, сначала найти максимум, а потом искать следующий за ним, но можно сделать это за один проход по массиву. Нам нужны две переменные, max (максимальный элемент) и max2 (второй максимум). Сначала выбираем максимальный из первых двух элементов и записываем его значение в max, а второй по величине записываем в max2:

if a[1] > a[2] then begin

  max:=a[1]; max2:=a[2];

end

else begin

  max:=a[2]; max2:=a[1];

end;

Затем в цикле перебираем все элементы, начиная с 3-го (первые два уже «задействованы»!) до последнего, 30-ого. Если очередной элемент a[i] больше, чем max, записываем значение max в max2 (предыдущий максимум становится вторым), а значение a[i] – в max. Иначе, если a[i] больше, чем max2, записываем значение a[i] в max2. После завершения цикла выводим значение переменной max2. Вот решение на Паскале:

const N=30;

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

i, k, max, max2: integer;

begin

  for i:=1 to N do readln(a[i]);

  if a[1] > a[2] then begin

    max:=a[1]; max2:=a[2]

  end

  else begin

    max:=a[2]; max2:=a[1]

  end;

  for i:=3 to N do

    if a[i] > max then begin

      max2 := max;

      max := a[i]

    end

    else if a[i] > max2 then max2 := a[i];

  writeln(max2)

end.

№21. Это вариант предыдущей задачи, меняется только условие отбора. Для нечетных элементов остаток от деления на 2 равен 1, поэтому условие выглядит так:

    if a[i] mod 2 = 1 then begin ...

Можно даже написать такое условие:

    if a[i] mod 2 <> 0 then begin ...

оно позволит решать задачу, в которой входные данные могут быть как положительными, так и отрицательными (для отрицательных нечетных чисел при вычислении остатка от деления на 2 получается (–1)).

Решение на естественном языке. Записываем в переменные x и y нулевые значения. В цикле перебираем значения переменной i от 1 до N. Если очередной элемент при делении на 2 дает в остатке 1, увеличиваем счетчик x на 1 и сумму y – на значение этого элемента. После окончания цикла записываем в переменную s результат деления y на x. Выводим значение переменной s.

Решение на Паскале.

const N=30;

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

    i, x, y: integer;

    s: real;

begin

  for i:=1 to N do readln(a[i]);

  x:=0; y:=0;

  for i:=1 to N do

    if a[i] mod 2 <> 0 then begin

      x := x + 1;

      y := y + a[i]

    end;

  s := y / x;

  writeln(s)

end.

3 вариант.

№9. Нужно найти количество дней, когда была оттепель, и общую сумму температур в эти дни. Средняя температура вычисляется как сумме температур, деленная на количество дней.
В переменной
x будем считать дни оттепели, а в переменной y – накапливать сумму температур. Сначала в обе эти переменные запишем нули (начальные значения). Затем в цикле от 1 до 31 рассматриваем все элементы массива A. Если очередной элемент больше 0, увеличиваем переменную x на единицу (считаем этот день) и добавляем значение этого элемента массива к старому значению переменной y. После окончания цикла выводим результат деления y на x. Недостающая часть программы может выглядеть так:

 x := 0; y := 0;  { не забыть начальные условия! }

 for i:=1 to N do

   if A[i] > 0 then begin

     x := x + 1;

                        y := y + A[i];

   end;

 s := y / x;

 writeln('Средняя температура ', s:10:3);

№15. Очевидно, что нужно считать найденные положительные элементы (например, с помощью переменной k) и, когда k станет равно 3, запомнить номер текущего элемента (в переменной j).

Решение на естественном языке. Записываем в переменную k начальное значение 0. Затем в цикле перебираем все элементы массива с 1-ого по 30-ый. Если очередной элемент больше нуля, увеличиваем счетчик k. Если k=3, записываем номер текущего элемента в переменную j. Если после окончания цикла k<3, выводим сообщение, что в массиве меньше трех положительных элементов, иначе выводим значение переменной j.

Решение на Паскале.

const N=30;

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

    i, j, k: integer;

begin

  for i:=1 to N do readln(a[i]);

  k:=0;

  for i:=1 to N do

    if a[i] > 0 then begin

      k:=k+1;

      if k = 3 then j := i

    end;

  if k < 3 then

       writeln('Меньше трех положительных элементов')

  else writeln(j)

         end.

№23. Фактически нужно найти максимум среди всех отрицательных элементов. Здесь есть тонкость – что записать в переменную max? Очевидно, что нельзя записать первый элемент массива (как это делается в классическом алгоритме поиска максимума), потому что он может не быть отрицательным. Выход – записать большое по модулю отрицательное число, которого заведомо нет в массиве, например, -100. При этом первый же отрицательный элемент окажется больше этого числа и начальное значение max будет заменено. Если значение -100 в переменной max останется  после просмотра массива, то это будет означать, что отрицательных элементов нет.
Заметим, что если гарантируется, что в массиве есть хотя бы один отрицательный элемент, переменной max можно задать начальное значение -20 (наименьшее допустимое).

Решение на естественном языке. Записываем в переменную max начальное значение -100. В цикле перебираем значения переменной i от 1 до N. Если очередной элемент массива A[i] отрицательный и больше max, записываем в max значение этого элемента. После окончания цикла выводим значение переменной max.

Решение на Паскале.

const N=30;

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

    i, max: integer;

begin

  for i:=1 to N do readln(A[i]);

  max:=-100; { любое число <= -20 }

  for i:=1 to N do

    if (A[i] < 0) and (A[i] > max) then

      max:=A[i];

  writeln(max)

end.

4 вариант.

№10. Фактически нужно найти в массиве минимальный элемент среди всех элементов, которые больше или равны 20. В отличие от классического алгоритма поиска минимального элемента в массиве, здесь требуется «отсечь» все элементы, которые меньше 20, с помощью дополнительного условия.

Записываем в переменную min начальное значение, равное 100. В цикле от первого элемента до тридцатого сравниваем элементы исходного массива с 20. Если текущий элемент больше или равен 20, то сравниваем значение текущего элемента массива со значением переменной min. Если текущий элемент массива меньше min, то записываем в min значение этого элемента массива. Переходим к следующему элементу. После завершения цикла выводим значение переменной min.

Недостающая часть программы может выглядеть так:

min := 100; { не забыть начальные условия! }

for i:=1 to N do

  if (a[i] >= 20) and (a[i] < min) then

    min := a[i];

          writeln ( min );

 

№16. Обратим внимание, что нужно найти не длину, а сумму наибольшей (то есть, самой длинной!) возрастающей последовательности (то есть, такой, в которой каждый следующий элемент строго больше предыдущего).  В переменных l и s будем хранить длину и сумму текущей (рассматриваемой сейчас) последовательности, а в переменных lmax и smax – значения для наибольшей последовательности.

Решение на естественном языке. Записываем в переменную lmax начальное значение 0, в переменную l – значение 1, а в переменную smax – значение первого элемента массива. В цикле рассматриваем все элементы массива, начиная со 2-ого до30-ого. Если очередной элемент больше предыдущего, увеличиваем переменную  l на 1, а к переменной s добавляем значение этого элемента; иначе записываем 1 в переменную l и значение этого элемента в s. После этого (в теле цикла) сравниваем l и lmax; если l > lmax (нашли новую самую длинную возрастающую цепочку), записываем значение s в smax.

Решение на Паскале.

const N=30;

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

    i, l, lmax, s, smax: integer;

begin

  for i:=1 to N do readln(a[i]);

  lmax:=0; l:=1; s:=a[1];

  for i:=2 to N do begin

    if a[i] > a[i-1] then begin

      l:=l+1; s:=s+a[i]

    end

    else begin

      l:=1; s:=a[i]

    end; 

    if l > lmax then begin

      lmax:=l;

      smax:=s

    end

  end;

  writeln(smax)

end.

№25. Эта задача похожа на задачу 23. Здесь нужно найти минимальное из трехзначных чисел, то есть из таких, которые удовлетворяют условию

(100 <= A[i]) and (A[i] < 1000)

В переменную min вначале мы должны записать начальное значение, которое заведомо больше любого трехзначного числа в массиве, например, 1000. Если это значение останется в переменной min после проверки всего массива, это значит, что в массиве нет трехзначных чисел.

Решение на естественном языке. Записываем в переменную min начальное значение 1000. В цикле перебираем значения переменной i от 1 до N. Если очередной элемент массива – трехзначное число (больше или равно 100 и меньше 1000) и меньше, чем значение переменной  min, записываем значение этого элемента в min. После окончания цикла проверяем значение min: если оно равно 1000, выводим на экран сообщение «Нет таких элементов», иначе выводим значение min.

Решение на Паскале.

const N=30;

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

    i, min: integer;

begin

  for i:=1 to N do readln(A[i]);

  min:=1000;

  for i:=1 to N do

    if (100 <= A[i]) and (A[i] < 1000) and

       (A[i] < min) then min := A[i];

  if min = 1000 then

writeln('Нет таких элементов')

  else writeln(min)

end.                                                                                                        



 

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Уроки по информатике "Одномерные массивы в Pascal" (10 класс)"

Методические разработки к Вашему уроку:

Получите новую специальность за 2 месяца

PR-менеджер

Получите профессию

HR-менеджер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 654 964 материала в базе

Материал подходит для УМК

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 09.01.2021 1174
    • DOCX 95.2 кбайт
    • 34 скачивания
    • Оцените материал:
  • Настоящий материал опубликован пользователем Сафиуллина Александра Николаевна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    • На сайте: 3 года и 7 месяцев
    • Подписчики: 0
    • Всего просмотров: 14517
    • Всего материалов: 7

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Менеджер по туризму

Менеджер по туризму

500/1000 ч.

Подать заявку О курсе

Курс повышения квалификации

Особенности подготовки к сдаче ОГЭ по информатике и ИКТ в условиях реализации ФГОС ООО

36 ч. — 180 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Сейчас обучается 103 человека из 40 регионов
  • Этот курс уже прошли 800 человек

Курс повышения квалификации

Компьютерная грамотность для пенсионеров

36 ч. — 180 ч.

от 1580 руб. от 940 руб.
Подать заявку О курсе
  • Этот курс уже прошли 19 человек

Курс профессиональной переподготовки

Информатика: теория и методика преподавания в профессиональном образовании

Преподаватель информатики

300/600 ч.

от 7900 руб. от 3950 руб.
Подать заявку О курсе
  • Сейчас обучается 49 человек из 21 региона
  • Этот курс уже прошли 148 человек

Мини-курс

Социальная и поведенческая психология

6 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 28 человек из 16 регионов

Мини-курс

Практика гештальт-терапии: техники и инструменты

5 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 308 человек из 65 регионов
  • Этот курс уже прошли 61 человек

Мини-курс

Психологические аспекты развития и состояния личности

4 ч.

780 руб. 390 руб.
Подать заявку О курсе