В файле описана теория по массивам и разобраны задачи на одномерные и двумерные массивы в Turbo Pascal.
Пархоменко Татьяна Алексеевна, МАОУ Селятинская СОШ №1
Описание разработки
Если работа программы связана с хранением и обработкой большого количества однотипных переменных, для их представления в программе можно использовать массивы.
Например, пусть программа пользователя выполняет некоторые действия над последовательностью целых чисел, насчитывающей сто элементов i1, i2, …,i100, которые требуется сохранить до конца ее работы. Вместо того чтобы описывать указанные переменные сто раз, можно один раз объявить целочисленную переменную i, состоящую из ста элементов, — массив.
Массив представляет собой совокупность данных одного типа с общим для всех элементов именем.
Элементы массива пронумерованы, и обратиться к каждому из них можно по номеру. Номера элементов массива иначе называются индексами, а сами элементы массива – переменными с индексами (индексированными переменными).
Задачи с массивами | Pascal | Сумма и поиск элементов
тип – общий тип всех элементов массива;
размерность – количество индексов массива;
диапазон изменения индекса (индексов) – определяет количество элементов в массиве.
Вектор (одномерный массив) – это пример массива, в котором элементы нумеруются одним индексом.
Если в массиве хранится таблица значений (матрица), то такой массив называется двумерным, его элементы нумеруются двумя индексами – номером строки и столбца соответственно.
В качестве номера(индекса) элемента массива, в общем случае используется выражение порядкового типа. Наиболее часто индекс – это целая константа или переменная типа integer, реже – типа char или Boolean.
При обращении к элементу массива индекс указывается в квадратных скобках после имени массива. Например, a[3], b[1,2]. Однако использование элементов массива в качестве обычных переменных не дает существенной выгоды. Массивы ценны тем, что их индексы сами могут быть переменными или выражениями, обеспечивая доступ не к одному, а к последовательности элементов. Обработка массивов производится при изменении индексов элементов.
Например, в случае использования выражения следующие переменные удобно применять для просмотра в цикле элементов массива:
a[i] – всех элементов;
a[2*i] – элементов, стоящих на четных местах;
a[2*i-1] – элементов, стоящих на нечетных местах.
Описание массива
Самый простой способ описания массива – это объявит переменную в разделе описания переменных var с использованием зарезервированного слова array (т.е. массив). В общем виде описание выглядит так:
для одномерного массива:
var : array [нижняя граница.. верхняя граница]
var a: array[1..100] of integer;
var b: array[0..50] of char;
var c: array[-3..4] of Boolean;
для двумерного массива:
var : array [ниж. граница индекс1.. верхняя граница индекс1,
нижняя граница индекс2.. верхняя граница индекс2]
При необходимости подсчитать частоту появления в некотором тексте различных букв латинского алфавита, можно воспользоваться вектором счетчиков, индекс которого (латинские буквы) меняется от до , а элементы (целые числа) после подсчета указывают, сколько раз встречается в тексте данная буква.
var count: array [‘a’..’z’] of integer;
При выполнении программы не обязательно заполнять все ячейки данными, т.е. реальное количество элементов в массиве может быть меньше, чем указано при описании, но ни в коем случае не должно быть больше.
При объявлении массива нельзя задавать границы индексов при помощи переменных. Память под массив выделяется компилятором до выполнения программы, а переменные получают значения только в ходе ее выполнения.
Массив также можно описать как типизированную константу в разделе описания констант. Список значений элементов массива при этом заключается в круглые скобки.
const x: array [1..5] of integer=(1,3,5,7,9);
y: array [1..2,1..3] of integer=(1,3,5),(2,4,6);
Описание массива как типизированной константы используется на практике:
для задания массивов с неизменными значениями элементов;
при отладке программы, чтобы каждый раз не заполнять массив «вручную» при запуске программы.
границы индекса должны быть константами;
нижняя граница индекса чаще всего равна 1;
при выходе индекса за границы массива возникает программное прерывание, если включена директива компилятора . Если эта директива отключена, выход за границы массива может испортить соседние с ним ячейки памяти, что приведет к непредсказуемым ошибкам в программе;
для ввода, вывода и обработки массивов удобно применять циклы, особенно удобен в этих случаях цикл for, т.к. номера элементов следуют по порядку друг за другом с единичным шагом;
массивы, идентичные по структуре, т.е. с одинаковыми типами индексов и элементов, могут участвовать в операторе присваивания без указания индекса.
Массив, описанный как типизированная константа, уже содержит данные. Массивы, объявленные в разделе описания переменных, необходимо заполнить данными, прежде чем выполнять с ними какие-либо действия.
Значения элементов массива также можно задать следующими способами:
при вводе данных с клавиатуры;
с помощью датчика случайных чисел;
присваиванием заданных значений;
считывая значения элементов из файла.
Действия, с одномерными массивами:
вычисление суммы элементов;
вычисление произведения элементов;
подсчет количества элементов, удовлетворяющих какому-либо условию;
поиск элемента с заданным значением;
поиск максимального (минимального) элемента и его номера;
изменение значений элементов.
Действия, с двумерными массивами:
суммирование элементов каждой строки;
поиск (максимального) минимального элемента всей матрицы;
умножение матрицы а на вектор х, в результате получается новый вектор y.
Сортировка – это процесс упорядочивания набора данных одного типа по возрастанию или убыванию значения какого-либо признака.
сортировка массивов – одно из наиболее важных действий над массивами в системах сбора и поиска информации, т.к. в отсортированных массивах найти нужную информацию можно гораздо быстрее по сравнению с несортированными;
существует множество различных алгоритмов сортировки, которые значительно отличаются друг от друга по скорости работы;
«быстрые» способы сортировки массивов могут дать колоссальный выигрыш на больших массивах, содержащие тысячи элементов, однако для небольших массивов можно использовать самые простые способы сортировки.
Весь материал — смотрите документ.
Содержимое разработки
Пархоменко Т.А., учитель информатики МАОУ Селятинская СОШ №1
Массивы в Turbo Pascal. Решение задач на массивы.
Если работа программы связана с хранением и обработкой большого количества однотипных переменных, для их представления в программе можно использовать массивы.
Например, пусть программа пользователя выполняет некоторые действия над последовательностью целых чисел, насчитывающей сто элементов i1, i2, …,i100, которые требуется сохранить до конца ее работы. Вместо того чтобы описывать указанные переменные сто раз, можно один раз объявить целочисленную переменную i, состоящую из ста элементов, — массив.
Массив представляет собой совокупность данных одного типа с общим для всех элементов именем.
Элементы массива пронумерованы, и обратиться к каждому из них можно по номеру. Номера элементов массива иначе называются индексами, а сами элементы массива – переменными с индексами (индексированными переменными).
- тип – общий тип всех элементов массива;
- размерность – количество индексов массива;
- диапазон изменения индекса (индексов) – определяет количество элементов в массиве.
- a[i] – всех элементов;
- a[2*i] – элементов, стоящих на четных местах;
- a[2*i-1] – элементов, стоящих на нечетных местах.
- для одномерного массива:
- для двумерного массива:
- для задания массивов с неизменными значениями элементов;
- при отладке программы, чтобы каждый раз не заполнять массив «вручную» при запуске программы.
- границы индекса должны быть константами;
- нижняя граница индекса чаще всего равна 1;
- при выходе индекса за границы массива возникает программное прерывание, если включена директива компилятора . Если эта директива отключена, выход за границы массива может испортить соседние с ним ячейки памяти, что приведет к непредсказуемым ошибкам в программе;
- для ввода, вывода и обработки массивов удобно применять циклы, особенно удобен в этих случаях цикл for, т.к. номера элементов следуют по порядку друг за другом с единичным шагом;
- массивы, идентичные по структуре, т.е. с одинаковыми типами индексов и элементов, могут участвовать в операторе присваивания без указания индекса.
- при вводе данных с клавиатуры;
- с помощью датчика случайных чисел;
- присваиванием заданных значений;
- считывая значения элементов из файла.
- вычисление суммы элементов;
- вычисление произведения элементов;
- подсчет количества элементов, удовлетворяющих какому-либо условию;
- поиск элемента с заданным значением;
- поиск максимального (минимального) элемента и его номера;
- изменение значений элементов.
- суммирование элементов каждой строки;
- поиск (максимального) минимального элемента всей матрицы;
- умножение матрицы а на вектор х, в результате получается новый вектор y.
- сортировка массивов – одно из наиболее важных действий над массивами в системах сбора и поиска информации, т.к. в отсортированных массивах найти нужную информацию можно гораздо быстрее по сравнению с несортированными;
- существует множество различных алгоритмов сортировки, которые значительно отличаются друг от друга по скорости работы;
- «быстрые» способы сортировки массивов могут дать колоссальный выигрыш на больших массивах, содержащие тысячи элементов, однако для небольших массивов можно использовать самые простые способы сортировки.
- Линейная сортировка (сортировка отбором)
- Сортировка методом «пузырька»
- Метод быстрой сортировки с разделением.
- Г.Г. Рапаков, С.Ю. Ржеуцкая “Turbo Pascal для студентов и школьников“, Санкт-Петербург, «БХВ-Петербург», 2011г.
- А.И. Гусева “ Учимся программировать: Pascal 7.0”, Москва, «Диалог-МИФИ», 2011г.
- С.В. Вольский, П.А. Дмитриев “Turbo Pascal 7.0 для студентов и школьников“, Санкт-Петербург, «Наука и Техника», 2007г.
- Д.М. Ушаков, Т.А. Юркова “Паскаль для школьников”, Москва-Санкт-Петербург, «ПИТЕР», 2008г.
- Е.Р. Алексеев “Турбо Паскаль 7.0”, Москва, NT Press, 2006г.
-82%
Источник: videouroki.net
Массивы / Array
В разделе содержатся различные задачи с массивом array, содержащие развернутые ответы, для самостоятельного решения пользователя.
Решение задач. Array7-17
Сегодня мы решим и разберем задачи из сборника Абрамяна — array7-17. Если у вас возникли вопросы, просто задавайте их в комментариях.
Решение задач. Array30-36
Сегодня мы решим и разберем задачи из сборника Абрамяна — array30-36. Если у вас возникли вопросы, просто задавайте их в комментариях.
Решение задач. Array24-29
Сегодня мы решим и разберем задачи из сборника Абрамяна — Array24-29. Если у вас возникли вопросы, просто задавайте их в комментариях.
Решение задач. Array18-23
Сегодня мы решим и разберем задачи из сборника Абрамяна — Array18-23. Если у вас возникли вопросы, просто задавайте их в комментариях.
Решение задач. Array1-6
Сегодня мы решим и разберем задачи из сборника Абрамяна — array1-6. Если у вас возникли вопросы, просто задавайте их в комментариях.
Источник: learnpascal.ru
Типовые задачи на обработку одномерных массивов данных в Паскале
Презентация подготовлена для учащихся 7-11 классов, изучающих основы программирования на языке Паскаль.
В работе расмотрены типовые задачи на обработку одномерных массивов данных в Паскале.
Материал может использоваться как при изучении темы «Массивы данных» в программировании, так и при подготовке к ЕГЭ: задание С2.
Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Наладить дисциплину на своих уроках.
Получить возможность работать творчески.
Просмотр содержимого документа
«Типовые задачи на обработку одномерных массивов данных в Паскале »
Обработка одномерных массивов данных
Массив – это упорядоченный набор однотипных данных. Массивы бывают одномерные (линейные) и двумерные (табличные).
Описание массивов в программе
var имя :array[ номер первого элемента .. номер последнего элемента ] of [ тип элементов ];
var A: array[1..100] of integer;
b: array[1..50] of real;
Ввод элементов массива
Для ввода элементов массива в компьютерную память используются циклические алгоритмические конструкции.
For i:=1 to 10 do readln(A[i]);
Вывод элементов массива
Для вывода элементов массива также используются циклические алгоритмические конструкции.
For i:=1 to 20 do writeln(B[i]);
Решаем типовые задачи
Нахождение суммы элементов массива, состоящего из n чисел
writeln (‘ сумма = ’, s);
Найдите сумму только положительных элементов массива, состоящего из n чисел.
0 then s:=s+a[i]; writeln (‘ сумма = ’, s);» width=»640″
if a[i]0 then s:=s+a[i];
writeln (‘ сумма = ’, s);
Нахождение произведения элементов массива, состоящего из n чисел
writeln (‘ произведение = ’, p);
Найдите произведение только отрицательных элементов массива, состоящего из n чисел.
for i:=1 to 10 do
writeln (‘ произведение = ’, p);
Нахождение среднего арифметического элементов массива, состоящего из n чисел
writeln (‘ среднее арифметическое = ’, sr);
Вычислить количество пятёрок, которые получены Банановым, если известно, что всего он получил 10 отметок.
for i:=1 to 10 do
if a[i]=5 then k:=k+1;
writeln (‘ кол-во «5»-ок = ’, k);
Найти среднее арифметическое положительных элементов массива, состоящего из n чисел
0 then begin s:=s+a[i]; k:=k+1 end; sr:=s/k; writeln (‘ среднее = ’, sr);» width=»640″
writeln (‘ среднее = ’, sr);
max then max:=a[i]; writeln(‘max=‘, max); Указать индексы элементов, совпадающих с наибольшим. for i:= 1 to n do if a[i] = max then writeln (‘ индекс максимального элемента = ‘, i);» width=»640″
Найти наибольший элемент в заданном массиве из n чисел
if a[i]max then max:=a[i];
Указать индексы элементов, совпадающих с наибольшим.
for i:= 1 to n do
if a[i] = max then writeln (‘ индекс максимального элемента = ‘, i);
Замена элементов массива
for i:= 1 to n do
if a[i] mod 2 =0 then a[i] : =0 else a[i] : =1;
for i:=1 to n do write (a[i],’ ‘);
Источник: kopilkaurokov.ru