Одномерные массивы целых чисел. Вычисление суммы элементов массива

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



Конспект урока «Одномерные массивы целых чисел. Вычисление суммы элементов массива»
Сегодня мы начнём рассматривать алгоритмы обработки информации в массивах. Достаточно часто встречается ситуация, при которой нам необходимо сложить элементы массива, рассмотрим задачу. На складе яблоки хранятся в мешках, известно количество мешков и количество яблок в каждом мешке. Директор склада попросил нас написать программу, которая вычисляет количество яблок на складе.
Обозначим через n количество мешков на складе, через i – номер текущего мешка, а через s – сумму яблок в мешках. Очевидно, что для решения данной задачи нам удобно будет представить склад в виде массива целых чисел a, элементами которого будут мешки с яблоками. Значениями элементов будут количества яблок в мешках.
Составим блок-схему алгоритма решения задачи. Блок-схема начинается с блока «Начало», далее будет следовать блок ввода количества мешков на складе – n. За ним будет следовать цикл «Для i от 1 до n», в котором будет блок ввода i-того элемента массива. Далее мы должны задать значение суммы яблок в мешках, равной нулю, так как пока ни одного мешка мы не просмотрели, s = 0. Потом снова будет следовать цикл «Для i от 1 до n», внутри которого будет одна команда – присваивания переменной s сумму её текущего значения и значения количества яблок в i-том мешке, s = s + a[i]. Таким образом, после просмотра всех n мешков, s будет содержать сумму яблок во всех мешках. Далее будет следовать блок вывода s, блок-схема всегда заканчивается блоком «Конец».

Блок-схема алгоритма решения задачи
Начнём написание программы. Запишем служебное слово program. Назовём нашу программу sklad. В разделе описания переменных var укажем, что нам нужен массив a, так как количество мешков в момент написания программы неизвестно, возьмём размерность массива равной максимально возможному количеству мешков, например 100 элементов типа integer. А также нам понадобится переменная n, в которой будет храниться количество мешков на складе, переменная i, которая будет хранить индекс текущего элемента массива, и переменная s, которая будет хранить значение суммы яблок в мешках. Так как в данной задаче все величины выражаются в целых числах, все переменные будут типа integer.
Между служебными словами begin и end запишем тело программы. Для начала выведем на экран поясняющее сообщение о том, что это программа подсчёта яблок на cкладе с запросом на ввод количества мешков на складе. Затем запишем команду считывания значения переменной n с переходом на следующую строку. Далее запишем цикл for i:=1 to n do, который будет содержать команду вывода на экран запроса на ввод количества яблок в i-том мешке и команду считывания с переходом на следующую строку значения
i-того элемента массива a. Таким образом, мы ввели количество яблок в мешках.
Теперь присвоим переменной s значение 0 и запишем цикл for i:=1 to n do, который будет содержать всего одну команду – присваивание переменной «С», суммы её текущего значения и значения И-того элемента массива «A»,
s:= s + a[i]. Далее будет следовать команда вывода на экран поясняющего сообщения с текстом «Количество яблок на складе:», а также значения переменной s.

Программа решения задачи
Запустим программу на выполнение, пусть на складе будет 4 мешка яблок, в первом мешке будет 100 яблок, во втором – 200, в третьем – 300, а в четвёртом – 400. Действительно, всего на складе должна быть тысяча яблок. Программа работает верно.

Пример работы программы
Ещё раз рассмотрим нахождение суммы элементов массива на примере нашей программы. В начале для хранения суммы элементов массива выделяется ячейка памяти, в нашем случае это переменная s, затем ей присваивается значение, равное 0, после чего для каждого элемента массива этой переменной присваивается сумма её значения и значения элемента массива.
Теперь мы знаем, как найти сумму элементов массива. Рассмотрим ещё одну задачу. Написать программу для нахождения суммы цифр целого положительного числа. Длина числа до девяти цифр.
Обозначим число, которое вводится – k, количество его цифр – n, номер текущей цифры – i, сумму цифр – s, а также нам понадобится массив a, элементами которого будут цифры данного числа.
Для начала составим блок-схему данного алгоритма. Она будет начинаться с блока «Начало», за которым будет следовать блок ввода числа k, далее нам нужно проинициализировать переменную i – она будет равна нулю, так как массив цифр a пока не содержит ни одной цифры.
Теперь нам нужно сделать из числа k массив цифр. Запишем для этого цикл «Пока» с условием k > 0, который будет содержать команду выделения последней цифры числа k и записи её в массив a. Для этого достаточно использовать функцию нахождения остатка от деления, которая в языке Pascal называется mod, так в начале нам нужно определить, в какой элемент массива a мы будем записывать данную цифру. Для этого к числу i нужно прибавить единицу.
Теперь i-тому элементу массива a присвоим значение последней цифры числа k, это будет остаток от его деления на 10. Теперь нужно убрать из числа k его последнюю цифру, для этого достаточно присвоить числу k результат его безостаточного деления на 10, данная операция записывается в языке Pascal словом div. Таким образом, после выполнения указанного цикла действий в массиве a будут содержаться цифры числа k, а в переменной i будет содержаться номер элемента массива a, в который была сохранена старшая по разряду цифра. Он будет совпадать с количеством цифр в числе, поэтому присвоим переменной n значение переменной i. А также присвоим переменной s значение 0. Далее будет следовать уже знакомый нам цикл вычисления суммы элементов массива a. После него будет блок вывода
s – суммы цифр числа. Блок-схема будет заканчиваться блоком «Конец».

Блок-схема алгоритма решения задачи
Посмотрим, как работает наш алгоритм на примере числа 345. В начале переменной i присваивается значение 0. Так как 345 больше 0 – i увеличится на 1, после чего первому элементу массива будет присвоено значение остатка от деления 345 на 10, то есть 5. Само число k будет без остатка поделено на 10, и станет равным 34. Далее так как 34 больше 0, значение переменной i снова увеличится на 1 и станет равным 2. Так i-тому элементу массива будет присвоен результат остатка от деления 34 на 10, то есть 4. А число k снова будет поделено без остатка на 10 и станет равным 3. Так как 3 больше 0, переменная i станет равной 3, третьему элементу массива a будет присвоено значение 3, а число k снова будет поделено без остатка на 10 и станет равным 0. После завершения работы цикла массив a будет содержать цифры числа k в порядке, обратном их следованию в числе, а переменная i будет содержать номер элемента массива, который хранит цифру числа k с самым высоким разрядом, это же число будет равно количеству элементов массива, поэтому присвоим переменной n значение i. Теперь остаётся лишь просуммировать элементы массива. И вывести значение суммы на экран. Она будет равна 12.
Приступим к написанию программы. Назовём нашу программу sum. Так как число по условию не длиннее 9 цифр и значение цифры может быть только целым, раздел описания переменных будет содержать массив a из 9 элементов типа integer, а также переменные i, n, s и k типа integer. Тело программы будет начинаться с команды вывода на экран поясняющего сообщения о том, что пользователь работает с программой нахождения суммы цифр числа, и запрос на ввод числа. Далее будет следовать команда считывания числа k. Теперь присвоим переменной i значение ноль и запишем цикл преобразования числа k в массив цифр. Он будет продолжаться, пока k больше 0 и будет содержать команду увеличения i на 1, команду присваивания i-тому элементу массива a значения остатка от деления k на 10 и команду присваивания переменной k её значения, поделённого без остатка на 10.
После окончания цикла присвоим переменной n значение переменной i, а переменной s – ноль. После чего запишем цикл for i:=1 to n do, который будет содержать команду присваивания переменной s суммы её текущего значения и значения i-того элемента массива a. Далее будет следовать команда вывода на экран поясняющего сообщения «Сумма цифр числа:», а также значения переменной s.

Исходный код программы
Запустим программу на выполнение. Введём число 34 964. Получим ответ. Сумма цифр данного числа будет равна 26. Программа работает правильно, следовательно, задача решена.

Пример работы программы
Обратим внимание, что данную задачу можно решать и без использования массива. Для этого достаточно присвоить переменной s значение 0 в начале программы, и при выделении каждой цифры числа сразу добавлять её значение к s.
Изменим нашу программу. Уберём из неё цикл нахождения суммы элементов массива, команду присваивания переменной s значения 0 перенесём сразу после ввода числа, а также изменим цикл выделения цифр числа. Теперь можно убрать из раздела описания переменных переменные i и n, а также массив a.

Из-за того, что изменённая программа имеет в своём составе меньшее количество команд и использует меньшее количество переменных, то есть потребляет меньше оперативной памяти, она будет работать быстрее. Снова запустим программу на выполнение и введём то же число, что и в первый раз, 34 964. Как и в первый раз, программа вывела ответ 26. Программа работает верно.

Пример работы изменённой программы
Важно запомнить:
Алгоритм нахождения суммы элементов массива состоит из трёх шагов:
1) Выделения ячейки памяти для хранения суммы.
2) Присваивания ей значения 0.
3) Перебора элементов массива с вычислением для каждого суммы его значения и значения ячейки памяти для хранения суммы и с присваиванием результата ячейке памяти для хранения суммы.
Мы научились применять алгоритм нахождения суммы элементов массива при решении задач.
5.5 Вычисление суммы и произведения элементов массива
Нахождение суммы и произведения элементов массива аналогично подобным алгоритмам нахождения суммы и произведения элементов последовательности.
Дан массив X , состоящий из n элементов. Найти сумму элементов этого массива. Переменной S присваивается значение, равное нулю, затем последовательно к переменной S добавляются элементы массива X .
Блок-схема алгоритма расчета суммы приведена на рис. 5.22. Со-
ответствующий алгоритму фрагмент программы будет иметь вид: s:=0;
for i:=1 to n do s:=s+x[i]; writeln(‘s=’,s:7:3);
Найдем произведение элементов массива X . Решение задачи сводится к тому, что значение переменной Р , в которую предварительно
была записана единица, последовательно умножается на значение i – го элемента массива. Блок-схема алгоритма приведена на рис. 5.23.
Как найти сумму элементов массива в паскале
Урок 12. Вычисление суммы элементов массива
Ключевые слова:
• массив
• описание массива
• заполнение массива
• вывод массива
• обработка массива
• последовательный поиск
• сортировка
До сих пор мы работали с простыми типами данных. Для решения многих практических задач из простых типов образуют составные типы данных, так называемые структуры данных. Примером такой структуры является одномерный массив.
Массив — это совокупность фиксированного количества однотипных элементов, которым присвоено общее имя. Доступ к отдельному элементу массива осуществляется по его номеру (индексу).
С подобными объектами — числовыми последовательностями — вы уже встречались на уроках математики. Например, члены арифметической прогрессии обозначались так: а1, а2, а3, . аn.
Размерность массива — это количество индексов, необходимое для однозначного доступа к элементу массива. Массивы с одним индексом называют одномерными, с двумя — двумерными и т. д. Мы будем рассматривать одномерные массивы.
Решение разнообразных задач, связанных с обработкой массивов, базируется на использовании таких типовых алгоритмов, как:
• суммирование значений элементов массива;
• поиск элемента с заданными свойствами;
• сортировка массива.
2.2.1. Описание массива
Перед использованием в программе массив должен быть описан, т. е. должно быть указано имя массива, количество элементов массива и их тип. Это необходимо для того, чтобы выделить участок памяти нужного размера для хранения массива. Общий вид описания одномерного массива:

Пример

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

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

Задавать значения элементов массива можно с помощью оператора присваивания. Например:

В следующем фрагменте программы организовано заполнение целочисленного массива а, состоящего из 10 элементов, случайными числами, значения которых изменяются в диапазоне от 0 до 99:

2.2.3. Вывод массива
Во многих случаях бывает полезно вывести значения элементов массива на экран. Так, если значения массива генерировались случайным образом, то необходимо знать, каков исходный массив. Также нужно знать, каким стал массив после обработки.
Значения элементов массива можно вывести в строку, разделив их пробелом:

Более наглядным является следующий вариант вывода элементов массива с пояснениями в столбик:

На основании рассмотренных примеров запишем программу, в которой осуществляется: заполнение целочисленного массива а, состоящего из 10 элементов, случайными числами, значения которых изменяются в диапазоне от 0 до 99; вывод массива а на экран.

2.2.4. Вычисление суммы элементов массива
Пример. В некотором населённом пункте я домов. Известно, сколько людей проживает в каждом из домов. Составим алгоритм подсчёта количества жителей населённого пункта.
Исходные данные (количество жильцов) здесь представлены с помощью одномерного массива а, содержащего n элементов: a[1] — количество жильцов дома 1, а[2] — количество жильцов дома 2, . а[n] — количество жильцов дома n. В общем случае a[i] — количество жильцов дома n, где i принимает целочисленные значения от 1 до n (кратко обозначим это в блок-схеме как
). Результат работы алгоритма обозначен через s.
Суммирование элементов массива осуществляется по тому же принципу, что и суммирование значений простых переменных: за счёт поочерёдного добавления слагаемых:
1) определяется ячейка памяти (переменная s), в которой будет последовательно накапливаться результат суммирования;
2) переменной s присваивается начальное значение 0 — число, не влияющее на результат сложения;
3) для каждого элемента массива из переменной s считывается её текущее значение и складывается со значением элемента массива; полученный результат присваивается переменной s.

Описанный процесс наглядно можно изобразить так:

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

Сравните программы n_2 и n_3. Выделите в них общие блоки. Обратите внимание на различия.
Каким образом в программе n_3 уточнена информация, представленная в примере о домах населённого пункта?
2.2.5. Последовательный поиск в массиве
В программировании поиск — одна из наиболее часто встречающихся задач невычислительного характера.
Можно выделить следующие типовые задачи поиска:
1) найти наибольший (наименьший) элемент массива;
2) найти элемент массива, значение которого равно заданному значению.

Для решения таких задач в программе необходимо организовать последовательный просмотр элементов массива и сравнение значения очередного просматриваемого элемента с неким образцом.
Рассмотрим подробно решение задач первого типа: нахождение наибольшего (наименьшего) элемента.
Представим себе одномерный массив в виде стопки карточек, на каждой из которых написано число. Тогда идея поиска наибольшего элемента массива может быть представлена следующим образом:
1) возьмём верхнюю карточку (первый элемент массива), запомним имеющееся на карточке число (запишем его мелом на доске) как наибольшее из просмотренных; уберём карточку в сторону;
2) возьмём следующую карточку; сравним числа, записанные на карточке и на доске; если число на карточке больше, то сотрём число, записанное на доске, и запишем там то же число, что и на карточке; если же новое число не больше, то на доске оставим имеющуюся запись; уберём карточку в сторону;
3) повторим действия, описанные в п. 2, для всех оставшихся карточек в стопке.
В итоге на доске будет записано самое большое значение элемента просмотренного массива.
В программировании при обосновании корректности циклических алгоритмов используется понятие инварианта цикла.
Инвариант цикла — логическое выражение (условие), зависящее от переменных, изменяющихся в теле цикла; оно истинно непосредственно перед началом выполнения цикла и после каждого прохода тела цикла.
Условие «записанное на доске число — самое большое из всех просмотренных до сих пор» является инвариантом цикла для рассмотренного алгоритма.
Так как доступ к значению элемента массива осуществляется по его индексу, при организации поиска наибольшего элемента в одномерном массиве можно искать его индекс. Обозначим искомый индекс imax. Тогда описанный выше алгоритм в сформированном нами массиве а на языке Паскаль можно записать так:

Если в массиве несколько элементов, значения которых равны максимальному значению, то данная программа найдёт первый из них (первое вхождение). Подумайте, что следует изменить в программе, чтобы в ней находился последний из максимальных элементов. Как следует преобразовать программу, чтобы с её помощью можно было найти минимальный элемент массива?
Результатом решения задачи второго типа (нахождение элемента массива, значение которого равно заданному значению) может быть:
• k — индекс элемента массива такой, что a[k] = х, где х — заданное число;
• сообщение о том, что искомого элемента в массиве не обнаружено.
Программа поиска в сформированном нами массиве а значения, равного х, может выглядеть так:

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

Здесь выполнение алгоритма будет прервано в одном из двух случаев: 1) в массиве найден первый из элементов, равный заданному; 2) все элементы массива просмотрены.
Запишите полный текст программы и выполните её на компьютере.
Зачастую требуется определить количество элементов, удовлетворяющих некоторому условию. В этом случае вводится переменная, значение которой увеличивается на единицу каждый раз, когда найден нужный элемент.
Определите, количество каких элементов подсчитывается с помощью следующего фрагмента программы.

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

Запишите полные тексты двух последних программ и выполните их на компьютере.
2.2.6. Сортировка массива
Под сортировкой (упорядочением) массива понимают перераспределение значений его элементов в некотором определённом порядке.
Порядок, при котором в массиве первый элемент имеет самое маленькое значение, а значение каждого следующего элемента не меньше значения предыдущего элемента, называют неубывающим.
Порядок, при котором в массиве первый элемент имеет самое большое значение, а значение каждого следующего элемента не больше значения предыдущего элемента, называют невозрастающим.
Цель сортировки — облегчить последующий поиск элементов: искать нужный элемент в упорядоченном массиве легче.
Вы уже встречались с сортировкой при работе с базами данных. Сейчас мы рассмотрим один из возможных вариантов 1 реализации механизма этой операции — сортировку выбором.
1 С другими способами сортировки вы познакомитесь на уроках информатики в 10-11 классах.
Сортировка выбором (например, по невозрастанию) осуществляется следующим образом:
1) в массиве выбирается максимальный элемент;
2) максимальный и первый элементы меняются местами; первый элемент считается отсортированным;
3) в неотсортированной части массива снова выбирается максимальный элемент; он меняется местами с первым неотсортированным элементом массива;
4) действия, описанные в п. 3, повторяются с неотсортированными элементами массива до тех пор, пока не останется один неотсортированный элемент (его значение будет минимальным).
Рассмотрим процесс сортировки выбором на примере массива а = <0, 1, 9, 2, 4, 3, б, 5>.

В этом массиве из 8 элементов операцию выбора максимального элемента мы проводили 7 раз. В массиве из п элементов такая операция будет проводиться n — 1 раз. Объясните почему.
Приведём фрагмент программы, реализующий описанный алгоритм:

Здесь мы использовали один цикл внутри другого. Такая конструкция называется вложенным циклом.
Запишите полный текст программы и выполните её на компьютере для рассмотренного в примере массива а.
2.2.7. Другие структуры данных
Многие современные приложения (диалоговые, сетевые, инструментальные системы, операционные системы и др.) работают с данными, объём которых заранее не может быть ограничен определённой величиной. Предположим, разрабатывается большой программный комплекс, при работе которого в оперативной памяти будет храниться большое количество различных данных, представленных в форме массивов. Область памяти, отводимая для каждого массива, непрерывна; границы области во время выполнения программы строго фиксированы. Так как объём данных заранее неизвестен, программистам придётся указывать максимально возможные размеры используемых массивов. В результате этого для хранения всех возможных данных может оказаться недостаточно доступной памяти. При этом на практике крайне редко будут встречаться ситуации, когда каждый массив будет полностью заполнен — во многих из них часть зарезервированной памяти будет оставаться свободной. Жёсткие границы не позволяют перераспределять пустое пространство одних массивов в пользу других. Как результат — неэффективное использование оперативной памяти. Выходом в этой ситуации является замена при проектировании программы некоторых массивов на списки, которые занимают именно столько памяти, сколько действительно нужно в данный момент, и не создают никаких запасов.
Список представляет собой множество элементов, которые могут быть разбросаны операционной системой по оперативной памяти как угодно. Связь элементов списка осуществляется за счёт того, что каждый элемент списка содержит кроме данных адрес элемента, следующего за ним в списке.
Линейный односвязный список — последовательность линейно связанных элементов, для которых разрешены операции добавления элемента в произвольное место списка и удаление любого элемента.
В линейном списке для каждого элемента, кроме первого, есть предыдущий элемент; для каждого элемента, кроме последнего, есть следующий элемент. Таким образом, все элементы списка упорядочены (рис. 2.3).

Рис. 2.3. Линейный список
В линейном списке можно обойти все элементы, только двигаясь последовательно от текущего элемента к следующему, начиная с первого. Прямой доступ к i-му элементу невозможен; список — структура с последовательным доступом. В отличие от списка массив является структурой с произвольным доступом.
САМОЕ ГЛАВНОЕ
Массив — это совокупность фиксированного количества однотипных элементов, которым присвоено общее имя. Доступ к отдельному элементу массива осуществляется по его номеру (индексу).
Перед использованием в программе массив должен быть описан. Общий вид описания одномерного массива:

Заполнять массив можно, либо вводя значение каждого элемента с клавиатуры, либо присваивая элементам некоторые значения в программе. При заполнении массива и его выводе на экран используется цикл с параметром.
При решении разнообразных задач, связанных с обработкой массивов, используются такие типовые алгоритмы, как: суммирование элементов массива; поиск элемента с заданными свойствами; сортировка массива.
Вопросы и задания
1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Какими слайдами вы могли бы дополнить презентацию?
2. Может ли массив одновременно содержать целые и вещественные значения?
3. Для чего необходимо описание массива?
4. Что вы можете сказать о массиве, сформированном следующим образом?
а) for i:=l to 10 do a[i]:=random(101)-50;
б) for i:=l to 20 do a[i]:=i;
в) for i:=l to 5 do a[i]:=2*i-l;
5. Выполните на компьютере программу решения задачи, рассмотренной в примере пункта 2.2.4. Считайте количество жильцов дома случайным числом из диапазона от 50 до 200 человек, а число домов n = 30.
6. Рядом с вами находятся две корзины. Первая наполнена яблоками разных размеров, вторая — пустая.
Шаг 1. Вы берёте любое яблоко из первой корзины и кладёте его на стол перед собой.
Шаг 2. Вы достаёте следующее яблоко из первой корзины и выполняете сравнение:
— если яблоко в руках больше, чем яблоко на столе, то вы опускаете яблоко, которое у вас в руках, во вторую корзину;
— если яблоко в руках меньше яблока на столе, вы кладёте яблоко на стол, а яблоко, которое лежало на столе, перекладываете во вторую корзину.
Вы повторяете шаг 2 до тех пор, пока первая корзина не опустеет.
Какое яблоко окажется на столе в самом конце? Попытайтесь сформулировать, что является инвариантом цикла в приведённом алгоритме. Сформулируйте условие задачи с использованием терминологии, рассмотренной в этом параграфе.
7. Напишите программу, которая вычисляет среднюю за неделю температуру воздуха. Исходные данные вводятся с клавиатуры.

8. Дан массив из десяти целых чисел. Напишите программу подсчёта количества элементов этого массива, имеющих максимальное значение.
9. В классе 20 учеников писали диктант по русскому языку. Напишите программу, подсчитывающую количество двоек, троек, четвёрок и пятёрок, полученных за диктант.
10. Объявлен набор в школьную баскетбольную команду. Известен рост каждого из п учеников, желающих попасть в эту команду. Составьте алгоритм подсчёта количества претендентов, имеющих шанс попасть в команду, если рост игрока команды должен быть не менее 170 см. Запишите на языке Паскаль программу. Считайте рост претендента в команду случайным числом из диапазона от 150 до 200 см, а число претендентов n = 50.
11. В целочисленных массивах а и b содержатся длины катетов десяти прямоугольных треугольников (а[i] — длина первого катета, b[i] — длина второго катета i-ro треугольника). Напишите программу, которая по имеющимся данным определит треугольник с наибольшей площадью и выведет его номер, длины катетов и площадь. Предусмотрите случай, когда таких треугольников несколько.
12. Занесите информацию о десяти европейских странах в массивы n (название страны), k (численность населения), s (площадь страны). Напишите программу, выводящую названия стран в порядке возрастания плотности их населения.
13. Найдите информацию о таких частных случаях списка, как стек и очередь. Подготовьте короткое сообщение.
Электронное приложение к уроку
Презентация «Одномерные массивы целых чисел» (Open Document Format)
Ссылки на ресурсы ЕК ЦОР
- демонстрация «Понятие таблицы и массива» (126150)
http://school-collection.edu.ru/catalog/res/ae7db7e5-4562-4cba-9594-01d4601b0d10/?from=a30a9550-6a62-11da-8cd6-0800200c9a66&interface=catalog - демонстрация «Описание и ввод значений в массив в программе на Паскале» (126153)
http://school-collection.edu.ru/catalog/res/b4ebe01f-e985-47f2-afd9-79361fa57a79/?from=a30a9550-6a62-11da-8cd6-0800200c9a66&interface=catalog - демонстрация «Цикл с параметром в алгоритме обработки массива» (126791)
http://school-collection.edu.ru/catalog/res/d8ebcaaa-5f58-4130-ad7b-bcd69ff5b1dc/?from=a30a9550-6a62-11da-8cd6-0800200c9a66&interface=catalog - демонстрация «Датчик случайных чисел на Паскале» (126117)
http://school-collection.edu.ru/catalog/res/903ca60b-76db-4f38-97f1-88e06137ed53/?from=a30a9550-6a62-11da-8cd6-0800200c9a66&interface=catalog - демонстрация «Алгоритм поиска числа в массиве (125817)
http://school-collection.edu.ru/catalog/res/068244df-e17d-44bc-9d31-0acd79f40c01/?from=a30a9550-6a62-11da-8cd6-0800200c9a66&interface=catalog
Ссылки на ресурсы ФЦИОР:
- Одномерные массивы. Практическая работа
http://fcior.edu.ru/card/6974/odnomernye-massivy-prakticheskaya-rabota.html - Работа с массивами (на примере языка Pascal). Контрольная работа
http://fcior.edu.ru/card/5171/rabota-s-massivami-na-primere-yazyka-pascal-kontrolnaya-rabota.html - Подсчет суммы элементов, максимум и минимум, поиск и сортировка элементов в массиве. Контрольная работа
http://fcior.edu.ru/card/10643/podschet-summy-elementov-maksimum-i-minimum-poisk-i-sortirovka-elementov-v-massive-kontrolnaya-rabota.html - Алгоритмы сортировки
http://fcior.edu.ru/card/23489/algoritmy-sortirovki.html
Ссылки на свободно распространяемое программное обеспечение:
- PascalABC
http://pascalabc.net/ - анимационная интерактивная демонстрация «Алгоритм поиска максимального элемента в массиве»
http://www.liveflowcharts.ru/sites/default/files/f/charts/ArrayMax/chart.html - анимационная интерактивная демонстрация «Сортировка массивов»
http://informatika.kspu.ru/flashprog/sorts.php?PHPSESSID=22b0b8cb7ebbd0fb57ce5e45af928a36

| Презентации, плакаты, текстовые файлы | Вернуться к материалам урока | Ресурсы ЭОР |
Cкачать материалы урока 
Задачи по Pascal. Сумма элементов массива.
Условие задачи : Найти сумму элементов одномерного массива. Размер случайный. Элементы вводятся с клавиатуры.
Сложность : легкая.
Данная задача очень похожа на эту (ссылка), но там мы искали произведение.
И еще одно отличие, здесь нам надо найти сумму элементов массива случайного размера.
Будем делать всё по аналогии с той задачей. Переменные будут те же самые.
Сначала создадим свой тип, но элементов сделаем по меньше, а то мало ли 100 будет (
Дальше мы объявим переменные и в размер занесем случайное число :
n , i, summa :
integer
;
// в той задаче была proiz а не summa
begin
clrscr;
// очищаем экран
randomize ;
// включаем генератор случайных чисел
n := random(
16
);
// будут значения от 1 до 15 , не 16-ти а 15.
И теперь нам нужно ввести каждый элемент и сосчитать сумму, до начала цикла нужно присвоить переменной summa ноль , для правильности работы :
summa := summa + mass[i];
Вот и всё, еще раз скажу аналогично задачи на произведение.
Весь код программы :
n , i, summa :
integer
;
// в той задаче была proiz а не summa
begin
clrscr;
// очищаем экран
randomize ;
// включаем генератор случайных чисел
n := random(
16
);
// будут значения от 1 до 15 , не 16-ти а 15.