- •Основные элементы языка.
 - •Типы данных
 - •Выражения и операции.
 - •Операторы языка.
 - •Операторы Write и WriteLn
 - •Операторы Read и ReadLn
 - •Выберите из предложенного ниже списка задачи для самостоятельного решения.
 - •Оператор выбора case. Решение задач.
 - •Задачи для самостоятельного решения:
 - •Общая форма записи цикла со счетчиком
 - •Задачи для самостоятельного решения:
 - •Проверьте себя, ответив на вопросы:
 - •Массивы.
 - •Изменение значения некоторых элементов
 - •Нахождение номеров элементов с заданным свойством
 - •Нахождение количества элементов с заданным свойством
 - •Задачи для самостоятельного решения
 - •Вставка одного элемента
 - •Вставка нескольких элементов
 - •Задачи для самостоятельного решения
 - •Перестановка двух элементов
 - •Перестановка части массива
 - •Задачи на использование одномерных массивов
 - •Самостоятельное решение задач.
 - •Нахождение количества элементов с данным свойством
 - •Определить, отвечает ли заданный массив некоторым требованиям
 - •Изменение значений некоторых элементов, удовлетворяющих заданному свойству
 - •Заполнение массива по правилу
 - •Задачи для самостоятельного решения
 - •Вставка строк и столбцов
 - •Удаление строк и столбцов
 - •Задачи для самостоятельного решения Задачи на вставку элементов:
 - •Задачи на удаление элементов:
 - •Задачи для самостоятельного решения
 - •Задачи на использованиедвумерных массивов
 - •I. Заполнение и анализ элементов массива
 - •II. Работа с одномерным и двумерным массивами
 - •Дополнительные задачи (на усмотрение учителя)
 - •Для любопытных Графические программы с применением массивов.
 - •Сортировка выбором
 - •Сортировка методом простого обмена. Рекурсивная сортировка.
 - •Сортировка массива с помощью рекурсии
 - •Рекурсивная сортировка слиянием (для любопытных)
 - •Строки и множества.
 - •Задачи для самостоятельного решения
 - •Задачи для дополнительного решения (на усмотрение учителя)
 - •Функция Length
 - •Функция Upcase
 - •Функция Copy
 - •Функция Pos
 - •Функция Concat
 - •Задачи для самостоятельного решения
 - •Стандартные процедуры для работы со строками (delete, insert,str,val).
 - •Задачи для самостоятельного решения
 - •Задачи для дополнительного решения (на усмотрение учителя)
 - •Контрольная работа.
 - •Сформулируйте тексты решенных ниже задач
 - •Выберите с учителем задачи для самостоятельного решения:
 - •Решение задач.
 - •Бегущая строка. Пример программы осыпающихся букв. Строки в графическом режиме (для увлеченных программированием).
 - •1.Организовать ввод фио только на русском языке.
 - •Записи.
 - •Процедуры и функции.
 - •2.Вывести все совершенные числа в данном диапазоне.
 - •3.Введенное число - полиндром?
 - •2.Найти факториал числа с помощью рекурсии.
 - •Задачи на построение процедур и функций
 - •Самостоятельное решение задач.
 - •I Выберите с учителем одну из предложенных ниже задач (тип Integer, real)
 - •II Выберите с учителем одну из предложенных ниже задач (тип char)
 - •III Выберите с учителем одну из предложенных ниже задач (тип string)
 - •IV Выберите с учителем одну из предложенных ниже задач (тип record)
 - •Задачи на работу с файлами
 - •Использование библиотеки crt
 - •Программирование клавиатуры
 - •Текстовый вывод на экран
 - •Программирование звукового генератора
 - •Использование библиотеки Graph
 - •Переход в графический режим и возврат в текстовый
 - •Краткая характеристика графических режимов работы дисплейных адаптеров
 - •Процедуры и функции
 - •Координаты, окна, страницы
 
Вставка нескольких элементов
Задача. Вставить число после всех элементов массива, кратных трем.
Первое, на что необходимо обратить внимание - это описание массива: на сколько элементов может увеличиться массив? Максимальное количество элементов, после которых будет вставлен новый элемент, совпадает с количеством элементов массива, так как может случиться, что все элементы массива отвечают заданному свойству. Поэтому массив может увеличиться в два раза, а значит, соответствующее ему описание будет следующим:
| 
			 Type MyArray[1..2*n] of Integer;  | 
Второе. Если мы будем просматривать массив с начала и вставлять новый после элемента с заданным свойством, то номер последнего элемента каждый раз может меняться, кроме того, будет просматриваться и новый (вставленный) элемент и его необходимо будет пропускать, поэтому решение будет не очень эффективным. Лучше всего просматривать массив, начиная с конца, тогда вставляемый элемент мешать не будет. Кроме того, номер последнего элемента можно будет знать (если знать, сколько элементов вставлено на данный момент), при этом просмотр будет последовательным от N-го до 1-го.
| 
			 Program VstavkaN; Const n=10; dd=51; Type MyArray = Array [1..2*n] of Integer; Var A : MyArray; k, x, i : Integer; Procedure InsertMas1(Var m : MyArray; n : integer); . . . Procedure InsertMas2(Var m : MyArray; n : integer); . . . Procedure PrintMas(m : MyArray; n : integer); . . . Procedure InsertN(Var m : MyArray; Var n : integer; Mesto, Element : Integer;); Var i : Integer; Begin for i := n downto Mesto+1 do m[i+1] := m[i]; m[Mesto+1]:= Element; Inc[n]; End; Begin . . . Writeln('Вставляемое число > '); Readln(x); k:=0; for i:=n downto 1 do if A[i] mod 3=0 then InsertN(A, n, i, x); . . . End.  | 
Задание. Дополните программу необходимыми операторами и комментариями и добейтесь работоспособности программы. Покажите результат работы учителю для оценки.
Задачи для самостоятельного решения
Вставить элемент после первого отрицательного элемента.
Вставить элемент перед отрицательным последним элементом.
Вставить два элемента: первый - после максимального элемента, второй - перед максимальным элементом.
Вставить по одному элементу перед всеми элементами, кратными заданному числу.
Вставить по одному элементу перед всеми отрицательными элементами.
Вставить два элемента: первый - после всех элементов, больших данного числа Р, а второй - перед всеми элементами, большими данного числа Р (Р вводить с клавиатуры).
Вставить число А перед всеми элементами, большими А, а число В - после всех элементов, меньших его.
| 
			 
  | 
			 Перестановка элементов массива.  | 
			 
  | 
Перестановка двух элементов
Задача. Поменять местами два элемента массива с номерами k1 и k2.
Рассмотрите процедуру, с помощью которой эта задача легко решается.
| 
			 Procedure Obmen2(Var m : MyArray; n, k1, k2 : integer;); Var x : integer; Begin x:=m[k1]; m[k1] := m[k2]; m[k2] := x; End;  | 
