- •Языки и системы программирования Алгоритмы
- •Языки программирования
- •Область применения языков программирования
- •Сложность и эффективность языков программирования
- •Трансляторы
- •Характеристика с/п Pascal abc
- •Используемые в с/п Pascal abc «горячие клавиши»
- •Система подсказок.
- •Структура программы на Паскале
- •Сообщения об ошибках. Отладка программы.
- •Команды вывода данных на экран
- •Константы
- •Переменные
- •Арифметические выражения. Приоритет арифметических операций
- •Стандартные арифметические функции
- •Процедуры инкремента и декремента
- •Примеры решения линейных задач
- •Ввод данных с клавиатуры
- •Примеры решения диалоговых задач
- •Линейные задачи для самостоятельной работы
- •Лаб. 1. Линеаризовать выражение:
- •Лаб. 2. Линейные диалоговые задачи (на одно действие)
- •Лаб. 3. Диалоговые задачи на несколько действий
- •Ветвление
- •Логические выражения
- •Вложенное ветвление
- •Лаб. 4. Задачи на ветвление:
- •Лаб. 5. Задачи на ветвление с вычислениями:
- •Выбор варианта
- •Лаб. 6. Задачи на выбор варианта:
- •Как выбрать цикл?
- •Экстренные события в теле цикла
- •Лаб. 7. Числовые задачи с циклом For
- •Лаб. 8. Сюжетные задачи с циклом For
- •Лаб. 9. Задачи с условными циклами
- •Библиотека crt
- •Библиотека sounds
- •Лаб. 10. Задачи с использованием циклов и библиотек crt и sounds
- •Порядковые типы данных
- •Перечислимый тип данных
- •Символьный тип данных
- •Ограниченный (интервальный) тип данных
- •Лаб. 11. Задачи со строками
- •Массивы
- •Решение задач с массивами
- •Поиск минимального (максимального) элемента массива
- •Сортировка массива.
- •Двумерные и многомерные массивы
- •Лаб. 12. Задачи с одномерными массивами
- •Лаб. 13. Задачи с двумерными массивами
- •Множества
- •Файлы данных
- •Записи и базы данных
- •Библиотека GraphAbc
- •Действия с графическим окном:
- •Точечная графика
- •Графические примитивы
- •Текст в графическом окне
- •Использование готовых точечных рисунков
- •Вспомогательные алгоритмы
- •Рекурсия
- •Событийное программирование
- •Использование таймеров
- •Использование сторонней библиотеки ukeyb
Двумерные и многомерные массивы
Иногда данные имеют табличный вид. Можно, конечно, расположить их подряд (строка за строкой) в обычном (он называется одномерным или линейным) массиве, но будет неудобно обращаться к таким элементам: их номер придётся высчитывать с помощью формулы N=(НомерСтроки-1)*ДлинуСтроки+Номер Столбца. Это (кроме неудобства) ещё и замедлит работу с массивом. Вместо этого можно использовать двумерный массив (массив из одномерных массивов). Фактически в памяти элементы массива тоже расположены подряд, но поиск элемента массива берёт на себя сам Паскаль, а мы ему указываем два индекса: номер строки и номер столбца. Например: a[5,4]. При описании такого массива указывают два диапазона – для каждого индекса:
a:array[1..20,1..10] of integer;. (Примечание: Для Паскаля несущественно, что мы указываем первым - строку или столбец. Просто в первом случае в памяти элементы массива укладываются подряд, построчно, строка за строкой, а во втором «постолбцово», столбец за столбцом)
В
program Tab_Umn; uses
crt; var x,y:integer;
p:array[1..9,1..9]
of byte; begin clrscr; for
x:=1 to 9
do for
y:=1 to 9
do begin
p[x,y]:=x*y;
gotoxy(x*4; y*2);
write(p[x,y]); end; end.
Иногда набор данных представляет собой несколько таблиц одинаковой размерности. Тогда требуется третий индекс, чтобы задать номер таблицы. В таких случаях используются трёхмерные массивы (массив из двумерных массивов). Пример трёхмерного массива – классный журнал. Первый индекс – номер предмета, второй – номер ученика и третий – номер урока. А содержимое такого массива – оценки учеников. Описание и использование трёхмерных массивов – аналогично двумерным.
Точно так же существуют четырёхмерные (стопка журналов), пятимерные (несколько стопок на полке), шестимерные (несколько полок в шкафу) и т.д. массивы. Паскаль позволяет использовать до 255 индексов, хотя это никому не нужно: 10-мерного массива достаточно, чтобы охватить оценки всех учеников во Вселенной. В реальности чаще всего обходятся 1–3-мерными массивами.
Лаб. 12. Задачи с одномерными массивами
Заполнить массив 20-ю случайными числами в пределах от 1 до 100, так чтобы ни один элемент не делился на предыдущий и чтобы подряд не шли одинаковые числа. Найти сумму всех элементов.
Ввести с клавиатуры 10 чисел, не допуская ввода чисел, кратных трём. Определить, что больше: сумма чисел с чётными номерами или с нечётными.
Заполнить массив 20-ю случайными числами в пределах от 10 до 50, так чтобы все числа были разными. Найти самое большое число.
Занести в массив 20 чисел, начиная от 4, в порядке возрастания, так чтобы среди них не было простых чисел.
Ввести с клавиатуры 10 чисел, не допуская ввода числа, равного предыдущему. Найти минимальное и максимальное. Если они повторяются, определить, какое из них повторяется больше раз.
Заполнить массив 20-ю случайными числами в пределах от 1 до 30, так чтобы все числа были разными. Найти все числа из заданного промежутка, которые не вошли в этот массив.
Массив заполнен 20-ю случайными числами в пределах от 1 до 10. Оставить в нём только неповторяющиеся числа в том порядке, в каком они встречаются в первый раз. Остальные места заполнить нулями.
Заполнить массив 20-ю случайными числами в пределах от 1 до 50, так чтобы ни один элемент не был кратным трём. Любое число должно отличаться от полусуммы его соседей слева и справа.
Ввести с клавиатуры 10 чисел, не допуская ввода числа, равного среднего арифметического ранее введённых (или его целой части).
В массиве, заполненном 20-ю случайными нечётными двузначными числами, найти все числа, сумма цифр которых больше 10 и вычислить их сумму.
Заполнить массив 20-ю случайными чётными числами в пределах от 10 до 99, у которых вторая цифра больше первой. Найти среднее арифметическое всех элементов массива.
Дан массив из случайных чисел. Нужно переписать элементы, большие среднего арифметического, в начало, а остальные - в конец массива. Выполнить с использованием второго вспомогательного массива.
В одном массиве – рост 20-ти человек, в другом – их вес. Найти номер самого стройного (отношение роста к весу – максимальное).
Каждый элемент массива на единицу больше, чем квадратный корень из предыдущего. Первый = 1. Найти сумму всех элементов такого массива из 10 чисел.
В массиве, заполненном 20-ю случайными чётными числами в пределах от 1 до 30, найти все числа, вторая цифра которых больше первой и вычислить сумму всех чётных из них.
Ввести с клавиатуры 12 чисел, допуская только ввод чисел, не больших 20. Найти сумму тех из них, которые встречаются в массиве только один раз.
Массив заполнен 20-ю случайными числами в пределах от 0 до 50. Сколько в нём содержится различных чисел?
В массиве, заполненном 20-ю случайными числами в пределах от 1 до 100, найти количество пар рядом стоящих чисел, кратных друг другу.
Заполнить с клавиатуры массив из 10 чисел и найти общий делитель для всех чисел (или сообщить о его отсутствии).
Массив содержит 20 случайных чисел в пределах от 1 до 10. Найти в нём самую длинную последовательность одинаковых чисел.
