- •Содержание
- •1Алгоритмы линейных структур
- •2 Циклы
- •Введение
- •1 Алгоритмы линейных структур
- •1.1 Этапы разработки программы
- •1.2 Основные понятия
- •1.3 Основная структура программы
- •1.4 Алфавит языка
- •1.5 Идентификаторы
- •1.6 Константы
- •1.7 Понятие переменной Типы
- •1.8 Оператор присваивания Арифметические выражения
- •1.9 Операторы ввода и вывода информации
- •1.10 Практические задачи
- •1.11 Примеры решения задач
- •2 Циклы
- •2.1 Цикл с предусловием
- •Цикл с постусловием
- •Цикл со счетчиком
- •2.2 Задачи
- •2.3 Примеры
- •3 Немного об алгоритмах Алгоритм Кнута - Морриса - Пратта
- •Алгоритм Бойера – Мура
- •Алгоритм Рабина
- •Алгоритмы сортировки
- •Метод пузырька.
- •Сортировка выбором
- •Метод Шелла
- •Метод Хoopа
- •3.1 Разветвляющиеся алгоритмы
- •3.2 Задачи Свойства и виды треугольников (задачи 1-4)
- •Свойства и виды четырехугольников (задачи 5, 6)
- •Каким будет значение переменной а после выполнения фрагмента программы с составным оператором?
- •4 Массивы
- •4.1 Объявление массива
- •4.2 Действия над массивами
- •4.3 Вывод массива
- •4.4 Ввод массива
- •4.5 Сортировка массива
- •4.6 Поиск в массиве
- •4.7 Поиск минимального (максимального) элемента массива
- •4.8 Многомерные массивы
- •4.9 Ошибки при использовании массивов
- •4.10 Практические задачи
- •5 Множества
- •5.1 Описание типа множество
- •5.2 Операции над множествами
- •5.3 Группы операций
- •5.4 Упражнения
- •5.5 Задачи Тема: Множества
- •6 Записи
- •6.1 Понятие записи
- •6.2 Оператор присоединения With ... Do
- •6.3 Вариантные записи
- •6.4 Работа с файлами записей
- •6.5 Задачи
- •7 Файлы
- •7.1 Работа с файлами
- •7.2 Текстовые файлы
- •7.3 Типизированные файлы
- •7.4 Нетипизированные файлы
- •7.5 Задачи
- •8 Графика
- •8.1 Графика в Турбо Паскале
- •8.2 Базовые процедуры и функции
- •Процедуры модуля Graph
- •Функции модуля Graph
- •8.3 Экран и окно в графическом режиме
- •8.4 Вывод простейших фигур
- •8.5 Графические процедуры
- •8.6 Построение прямоугольников
- •8.7 Построение многоугольников
- •8.8 Построение дуг и окружностей
- •8.9 Работа с текстом
- •8.10 Построение графиков функций
- •8.11 Циклы в графике. Построение случайных процессов
- •8.12 Создание иллюзии движения
- •Задания
- •Контрольные тесты
- •1. Программирование алгоритмов линейных структур
- •2. Программирование алгоритмов разветвляющейся структуры
- •3. Программирование алгоритмов циклических структур
- •4. Массивы
- •5. Множества
- •6. Записи
- •7. Файлы
- •8. Графика
4.9 Ошибки при использовании массивов
При использовании массивов наиболее распространенной ошибкой является выход значения индексного выражения за допустимые границы, указанные при объявлении массива.
Если в качестве индекса используется константа, и ее значение выходит за допустимые границы, то такая ошибка обнаруживается на этапе компиляции.
Например, во время компиляции программы
program p1;
var day: array[1..6] of string[11]:
begin
day[1]:=’понедельник’;
day[7]:=’воскресенье’;
end.
Для инструкции day[7]:=’воскресенье’; будет выведено сообщение об ошибке: error 76: constant out of range.
Если при обращении к элементу массива в качестве индекса используется переменная или выражение, то возможно возникновение ошибки времени выполнения программы(runtime error).
4.10 Практические задачи
№ |
Условие задачи |
|
Написать программу, которая вводит с клавиатуры одномерный массив из 5 целых чисел и выводит количество ненулевых элементов. Перед вводом каждого элемента на экране должна появляться подсказка с его номером. |
|
Написать программу, которая выводит минимальный элемент введенного с клавиатуры массива целых чисел. Ниже представлен рекомендуемый вид экрана во время работы программы. |
|
Написать программу, которая вычисляет среднее арифметическое ненулевых элементов введенного с клавиатуры массива целых чисел. |
|
Написать программу, которая вычисляет среднюю (за неделю) температуру воздуха. Исходные данные должны вводиться во время работы программы. |
|
Написать программу, которая проверяет, находится ли в массиве введенное с клавиатуры число. Массив должен вводится во время работы программы. |
|
Написать программу, которая проверяет, представляют ли элементы введенного с клавиатуры массива возрастающую последовательность. |
|
Написать программу, которая проверяет, образуют ли элементы введенного с клавиатуры массива неубывающую последовательность. |
|
Написать программу, которая вычисляет, сколько раз введенное с клавиатуры число встречается в массиве. |
|
Написать программу, которая проверяет, есть ли во введенном с клавиатуры массиве элементы с одинаковым значением. |
|
Написать программу, которая методом прямого выбора сортирует по убыванию введенный с клавиатуры одномерный массив. |
|
Написать программу, которая методом обмена ("пузырька") сортирует по убыванию введенный с клавиатуры одномерный массив. |
|
Написать программу, которая объединяет два упорядоченных по возрастанию массива в один, также упорядоченный по возрастанию массив. |
|
Написать программу, которая, используя метод бинарного поиска, выполняет поиск в упорядоченном по возрастанию массиве. |
|
Написать программу, которая определяет количество учеников в классе, чей рост превышает средний. |
|
Написать программу, которая вводит по строкам с клавиатуры двумерный массив и вычисляет сумму его элементов по столбцам. |
|
Написать программу, которая вводит по строкам с клавиатуры двумерный массив и вычисляет сумму его элементов по строкам. |
|
Написать программу, которая вычисляет сумму диагональных элементов квадратной матрицы. |
|
Написать программу, которая вводит с клавиатуры двумерный массив по строкам и вычисляет среднее арифметическое его элементов. |
|
Написать программу, которая вычисляет определитель квадратной матрицы второго порядка. |
|
Написать программу, которая проверяет, является ли введенная с клавиатуры квадратная матрица магическим квадратом. Магическим квадратом называется матрица, сумма элементов которой в каждой строке, в каждом столбце и по каждой диагонали одинакова. |
|
Написать программу, которая вычисляет определитель квадратной матрицы третьего порядка. |
|
Дан текст из 80 литер. Напечатать сначала все цифры, входящие в него, а затем все остальные литеры, сохраняя при этом взаимное расположение литер в каждой из этих двух групп. |
|
Дан текст, содержащий от 1 до 70 букв, за которым следует точка. Напечатать этот текст в обратном порядке. |
|
Дан непустой текст из цифр, за которым следует точка. Напечатать цифру, наиболее часто встречающуюся в этом тексте (если таких цифр несколько, напечатать любую из них). |
|
Дана последовательность из 100 различных целых чисел. Найти сумму чисел этой последовательности, расположенных между максимальным и минимальным числами (в сумму включить и оба этих числа). |
|
Программа. Даны координаты n точек на плоскости: x1, y1, … xn, yn (n=20). Найти номера двух точек, расстояние между которыми наибольшее (считать, что такая пара точек единственная). |
|
Даны две последовательности по 30 целых чисел в каждой. Найти наименьшее среди тех чисел первой последовательности, которые не входят во вторую последовательность (считая, что хотя бы одно такое число есть). |
|
Дана последовательность из 20 целых чисел. Определить количество инверсий в этой последовательности |
|
Дан текст из строчных латинских букв, за которым следует точка. Напечатать в алфавитном порядке все буквы, которые входят в этот текст по одному разу. |
|
Напечатать заданный текст из 100 литер, удалив из него повторные вхождения каждой литеры. |
|
Определить, сколько различных литер входит в заданный текст, содержащий не более 100 литер и оканчивающийся точкой (в сам текст точка не входит). |
|
По заданным коэффициентам много члена 15-й степени и многочлена 8-й степени определить коэффициенты произведения этих многочленов. |
|
Даны натуральное n и (построчно) элементы квадратной вещественной матрицы А 5-го порядка. Вычислить n-ю степень этой матрицы. |
|
Дана (построчно) вещественная матрица размером 7x4. Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент (один из них) оказался в верхнем левом углу. |
|
Дана вещественная матрица размером 20x30. Упорядочить ее строки по неубыванию их первых элементов. |
|
Дана вещественная матрица размером 20x30. Упорядочить ее строки по неубыванию суммы их элементов. |
|
Дана вещественная матрица размером 20x30. Упорядочить ее строки по неубыванию их наибольших элементов. |
|
Определить, является ли заданная целая квадратная матрица 9-го порядка магическим квадратом, т. е. такой, в которой суммы элементов во всех строках и столбцах одинаковы. |
|
Определить, является ли заданная целая квадратная матрица 10-го порядка симметричной (относительно главной диагонали). |
|
Элемент матрицы назовем седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце. Для заданной целой матрицы размером 10x15 напечатать индексы всех ее седловых точек. |
|
Дана вещественная матрица размером 7x7, все элементы которой различны. Найти скалярное произведение строки, в которой находится наибольший элемент матрицы, на столбец с наименьшим элементом. |
|
Определить, является ли заданная целая квадратная матрица 10-го порядка ортонормированной, т. е. такой, в которой скалярное произведение каждой пары различных строк равно 0, а скалярное произведение каждой строки на себя равно 1. |
|
Даны координаты n векторов n-мерного линейного пространства (n=7). Определить, являются ли они линейно независимыми. |
|
Дана квадратная матрица n-го порядка (n=6). Найти матрицу; обратную ей, или установить, что такой не существует. (Замечанием если линейными преобразованиями строк привести заданную матрицу к единичной, то этими же преобразованиями единичная матрица будет приведена к искомой обратной матрице.) |
|
Даны натуральное число n, действительная матрица размера nх9. Найти среднее арифметическое каждого из столбцов. |
|
Даны натуральное число n, действительная матрица размера nх9. Найти среднее арифметическое каждого из столбцов, имеющих четные номера. |
|
Дана действительная матрица размера nхm, в которой не все элементы равны нулю. Получить новую матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю элемент. |
|
Даны натуральное число m, целые числа a1, ..., аm и целочисленная квадратная матрица порядка m. Строку с номером i матрицы назовем отмеченной, если ai > 0, и неотмеченной в противном случае. Нужно все элементы, расположенные в отмеченных строках матрицы, преобразовать по правилу: отрицательные элементы заменить на —1. положительные—на 1, а нулевые оставить без изменения. |
|
Даны натуральное число m, целые числа a1, ..., аm и целочисленная квадратная матрица порядка m. Строку с номером i матрицы назовем отмеченной, если ai > 0, и неотмеченной в противном случае. Подсчитать число отрицательных элементов матрицы, расположенных в отмеченных строках. |
|
Дана действительная квадратная матрица порядка 12. Заменить нулями все ее элементы, расположенные на главной диагонали и выше нее. |
|
Дана действительная матрица размера nхm. Определить числа bi, ..., bm, равные соответственно суммам элементов строк. |
|
Дана действительная матрица размера nхm. Определить числа bi, ..., bm, равные соответственно произведениям элементов строк. |
|
Дана действительная матрица размера nхm. Определить числа bi, ..., bm, равные соответственно наименьшим значениям элементов строк. |
|
Дана действительная матрица размера nхm. Определить числа bi, ..., bm, равные соответственно значениям средних арифметических элементов строк. |
|
Дана действительная матрица размера nхm. Определить числа bi, ..., bm, равные соответственно разностям наибольших и наименьших значений элементов строк. |
|
Все элементы с наибольшим значением в данной целочисленной квадратной матрице порядка 10 заменить нулями. |
|
Дана действительная матрица размера 6x9. Найти среднее арифметическое наибольшего и наименьшего значений ее элементов. |
|
Дана действительная матрица размера 18 x n. Найти значение наибольшего по модулю элемента матрицы, а также индексы какого-нибудь элемента с найденным значением модуля. |
|
Дана действительная матрица размера mхn. Найти сумму наибольших значений элементов ее строк. |
|
В данной действительной квадратной матрице порядка n найти сумму элементов строки, в которой расположен элемент с наименьшим значением. Предполагается, что такой элемент единственный. |
|
В данной действительной матрице размера 6x9 поменять местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей элемент с наименьшим значением. Предполагается, что эти – элементы единственны. |
|
В данной квадратной целочисленной матрице порядка 17 указать индексы всех элементов с наибольшим значением. |
|
Дана действительная матрица размера nхm, все элементы которой различны. В каждой строке выбирается элемент с наименьшим значением, затем среди этих чисел выбирается наибольшее. Указать индексы элемента с найденным значением. |
|
Дана целочисленная квадратная матрица порядка 8. Найти наименьшее из значений элементов столбца, который обладает наибольшей суммой модулей элементов. Если таких столбцов несколько, то взять первый из них. |
|
Даны натуральное число n, целочисленная квадратная матрица порядка n. Получить b1, .. ., bn, где bi— это наименьшее из значений элементов, находящихся в начале i-й строки матрицы до элемента, принадлежащего главной диагонали, включительно. |
|
Даны натуральное число n, целочисленная квадратная матрица порядка n. Получить b1, .. ., bn, где bi— это значение первого по порядку положительного элемента i-й строки (если таких элементов нет, то принять bi= 1). |
|
Даны натуральное число n, целочисленная квадратная матрица порядка n. Получить b1, .. ., bn, где bi— это сумма элементов, расположенных за первым отрицательным элементом в i-й строке (если все элементы строки неотрицательны, то принять bi =100). |
|
Даны натуральное число n, целочисленная квадратная матрица порядка n. Получить b1, .. ., bn, где bi— это сумма элементов, предшествующих последнему отрицательному элементу i-й строки (если все элементы строки неотрицательны, то принять bi = -1). |
|
Дана целочисленная квадратная матрица порядка n. Найти номера строк все элементы которых—нули. |
|
Дана целочисленная квадратная матрица порядка n. Найти номера строк элементы в каждой из которых одинаковы. |
|
Дана целочисленная квадратная матрица порядка n. Найти номера строк все элементы которых четны. |
|
Дана целочисленная квадратная матрица порядка n. Найти номера строк элементы каждой, из которых образуют монотонную последовательность (монотонно убывающую или монотонно возрастающую). |
|
Дана целочисленная квадратная матрица порядка n. Найти номера строк элементы которых образуют симметричные последовательности (палиндромы). |
|
Дана действительная квадратная матрица порядка 10. В строках с отрицательным элементом на главной диагонали найти сумму всех элементов. |
|
Дана действительная квадратная матрица порядка 10. В строках с отрицательным элементом на главной диагонали найти наибольший из всех элементов. |
|
Дана действительная квадратная матрица порядка n. Рассмотрим те элементы, которые расположены в строках, начинающихся с отрицательного элемента. Найти суммы тех из них, которые расположены соответственно ниже, выше и на главной диагонали. |
|
Дана действительная квадратная матрица порядка 9. Получить целочисленную квадратную матрицу того же порядка, в которой элемент равен единице, если соответствующий ему элемент исходной матрицы больше элемента, расположенного в его строке на главной диагонали, и равен нулю в противном случае. |
|
Таблица футбольного чемпионата задана квадратной матрицей порядка n, в которой все элементы, принадлежащие главной диагонали, равны нулю, а каждый элемент, не принадлежащий главной диагонали, равен 2, 1 или 0 (числу очков, набранных в игре: 2—выигрыш, 1 — ничья, 0—проигрыш). Найти число команд, имеющих больше побед, чем поражений. |
|
Таблица футбольного чемпионата задана квадратной матрицей порядка n, в которой все элементы, принадлежащие главной диагонали, равны нулю, а каждый элемент, не принадлежащий главной диагонали, равен 2, 1 или 0 (числу очков, набранных в игре: 2—выигрыш, 1 — ничья, 0—проигрыш). Определить номера команд, прошедших чемпионат без поражений. |
|
Таблица футбольного чемпионата задана квадратной матрицей порядка n, в которой все элементы, принадлежащие главной диагонали, равны нулю, а каждый элемент, не принадлежащий главной диагонали, равен 2, 1 или 0 (числу очков, набранных в игре: 2—выигрыш, 1 — ничья, 0—проигрыш). Выяснить, имеется ли хотя бы одна команда, выигравшая более половины игр. |
|
Дана символьная квадратная матрица порядка 10. Заменить буквой а все ее элементы, расположенные выше главной диагонали. |
|
Дана символьная матрица размера 13x18. Найти номер первой по порядку строки, содержащий наибольшее число цифр. |
|
Дана символьная матрица размера 13x18. Найти номер первого по порядку столбца, содержащего наименьшее число пробелов на пересечении со строками, номера которых четны. |
|
Дана символьная матрица размера 13x18. Найти номер последней по порядку строки, содержащей наибольшее количество букв ш, щ. |
|
Дана символьная матрица размера 13x18. Найти номер последнего по порядку столбца, в котором содержится наибольшее количество попарно различных символов. |
|
Дана действительная квадратная матрица порядка n. Найти сумму элементов первого столбца. |
|
Дана действительная квадратная матрица порядка n. Найти сумму элементов главной и побочной диагоналей. |
|
Дана действительная квадратная матрица порядка n. Найти наибольшее из значений элементов первой и последней строк. |
|
Дана действительная квадратная матрица порядка n. Найти наименьшее из значений элементов побочной диагонали и двух соседних с ней линий. |
|
Дана действительная квадратная матрица порядка n. Для данного натурального m (m 2n) найти сумму тех элементов матрицы, сумма индексов которых равна m. |
|
Дана действительная квадратная матрица порядка n. Выяснить, верно ли, что наибольшее из значений элементов главной диагонали больше, чем наименьшее из значений элементов побочной диагонали. |
|
Даны две целочисленные квадратные матрицы порядка 6. Найти последовательность из нулей и единиц b1 ..., bn такую, что bi=1, когда все элементы i-й строки первой матрицы больше соответствующих элементов i-й строки второй матрицы. |
|
Даны две целочисленные квадратные матрицы порядка 6. Найти последовательность из нулей и единиц b1 ..., bn такую, что bi=1, когда все элементы i-x строк первой и второй матриц отрицательны; |
|
Даны две целочисленные квадратные матрицы порядка 6. Найти последовательность из нулей и единиц b1 ..., bn такую, что bi=1, когда i-e строки первой и второй матриц содержат вместе не более трех положительных элементов. |
|
Даны две целочисленные квадратные матрицы порядка 6. Найти последовательность из нулей и единиц b1 ..., bn такую, что bi=1, когда количество отрицательных и неотрицательных элементов i-й строки первой матрицы совпадает соответственно с количеством отрицательных и неотрицательных элементов i-й строки второй матрицы. |
|
Дана действительная матрица размера nхm. Получить последовательность b1 ..., bn, где bk — это наибольшее из значений элементов k-й строки. |
|
Дана действительная матрица размера nхm. Получить последовательность b1 ..., bn, где bk — это сумма наибольшего и наименьшего из значений элементов k-й строки. |
|
Дана действительная матрица размера nхm. Получить последовательность b1 ..., bn, где bk — это число отрицательных элементов в k-й строке. |
|
Дана действительная матрица размера nхm. Получить последовательность b1 ..., bn, где bk — это произведение квадратов тех элементов k-й строки, модули которых принадлежат отрезку [1, 1.5]. |
|
Даны натуральное число n, действительное число х, действительная матрица размера nх2n. Получить последовательность b1, ..., bn. из нулей и единиц, где bi= 1, если элементы i-й строки матрицы не превосходят х, и bi =0 в противном случае. |