- •Оглавление
- •§1. Первое знакомство с системой программирования Турбо Паскаль
- •§2. Основные элементы языка
- •§3. Команды редактора Команды управления движением курсора
- •§4. Первая программа
- •Пояснения к программе
- •Запуск программы
- •Сохранение программы
- •§5. Управление позициями и цветом вывода
- •§6. Арифметический квадрат.Абсолютная величина
- •§7. Типы данных
- •§8. Целый тип данных
- •Пример 6
- •Пример 7
- •Пример 8
- •§9. Вещественный тип данных
- •Пример 7
- •Пример 8
- •§10. Логический тип данных
- •§11. Условный оператор
- •Пример 1
- •Пример 2
- •Решение
- •§12. Оператор безусловного перехода. Раздел описания меток
- •§13. Вложенные условные операторы
- •Решение
- •Задание
- •Решение задач Задача 1
- •Задача 8
- •Задача 9
- •Задача 10
- •§14. Цикл с параметром
- •Пример 1
- •Пример 2
- •Пример 3
- •§15. Работа с окнами. Метод пошагового выполнения программ
- •§16. Решение задач с использованием цикла с параметром Задача 1
- •Решение
- •Задача 2.
- •§17. Цикл с предусловием
- •Оператор цикла с предусловием
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •Пример 3
- •Решение
- •§18. Цикл с постусловием
- •Пример 1
- •Решение
- •Пример 2
- •§19. Алгоритм Евклида
- •§20. Вложенные циклы Пример 1
- •Решение
- •Пример 2
- •Решение
- •Пример 3
- •Решение
- •Пример 4
- •Решение
- •Пример 5
- •§21. Решение задач с использованием циклов с условием Задача 1
- •Решение
- •Задача 2
- •§22. Символьный тип данных
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •§23. Ограниченный тип данных
- •Var b:3..8; а не просто Vаг b:Integer;
- •Решение
- •§24. Оператор варианта (выбора)
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •Пример 3
- •Решение
- •Пример 4
- •§25. Перечисляемый тип данных
- •§26. Описание переменных, констант и типов. Раздел описания констант
- •Раздел описания типов
- •§27. Преобразование типов. Совместимость типов
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •Пример 3
- •Решение.
- •§28. Процедуры
- •Описание процедуры
- •Решение
- •Begin {основная программа}
- •Пример 2
- •Решение
- •Пример 3
- •§29. Функции
- •Пример 1
- •Пример 2
- •Решение
- •Пример 3
- •Решение
- •§30. Примеры рекурсивного программирования
- •Задачи с рекурсивной формулировкой
- •Пример 3
- •Задачи, которые можно решить как частный случай обобщенной
- •Задание
- •Задачи, в которых можно использовать характеристику или свойство функции Пример
- •Решение
- •§31. Файловый тип данных Операции для работы с файлами последовательного доступа
- •§32. Обработка файлов Связь переменной файлового типа с файлом на диске
- •Чтение из файла
- •Закрытие файла
- •Признак конца файла
- •Запись в файл
- •§33. Прямой доступ к элементам файла
- •Удаление файлов. Процедура
- •Переименование файлов. Процедура
- •Пример 2
- •§34. Текстовые файлы
- •Обработка текстовых файлов
- •Пример 1
- •Решение
- •Пример 2
- •Нетипизированные файлы
- •§35. Одномерные массивы. Работа с элементами(разбор на примерах) Пример 1
- •Решение
- •Пример 2
- •Решение
- •Пример 3
- •Решение
- •Begin {Считываем очередную строку}
- •§36. Работа с элементами массива (разбор на примерах)
- •Пример 2
- •§37. Методы работы с элементами одномерного массива
- •Создание массива
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •Работа с несколькими массивами Пример
- •Решение
- •§38. Удаление элементов из одномерного массива Пример 1
- •Решение
- •Begin {Сдвиг элементов на один влево}
- •Пример 2
- •Решение
- •§39. Вставка элементов в одномерный массив
- •Вставка нескольких элементов
- •Решение
- •§40. Перестановки элементов массива
- •§41. Двухмерные массивы Описание. Работа с элементами
- •§42. Найти сумму элементов
- •Решение
- •§43.Нахождение количества элементов с данным свойством
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •§44. Работа с несколькими массивами Пример
- •Решение
- •§45. Определить, отвечает ли заданный массив некоторым требованиям Пример 1
- •Решение
- •Пример 2
- •Решение
- •§46. Изменение значений некоторых элементов, обладающих заданным
- •§47. Заполнение двухмерного массива по правилу
- •Пример 2
- •Решение
- •§48. Вставка и удаление элементов Вставка строки
- •Решение
- •Примечания
- •Удаление строки Пример
- •Решение
- •Примечания
- •§49. Перестановка элементов массива Перестановка двух элементов Пример 1
- •Решение
- •Пример 2
- •§50. Строковый тип данных
- •Операции со строками
- •Склеивание
- •Сравнение
- •Примеры
- •Пример 8
- •Пример 9
- •Пример 10
- •§51. Множественный тип данных
- •Операции над множествами
- •Примеры
- •Сравнение множеств
- •Пример 1
- •Пример 2
- •Вопросы для обсуждения
- •Пример 3
- •Вопросы для обсуждения
- •Пример 4
- •Решение
- •Пример 5
- •Решение
- •§52. Комбинированный тип данных (записи)
- •Пример 1
- •Пример 2
- •Пример 3
- •Решение
Примечания
-
Задачу удаления строки, удовлетворяющей заданному условию, можно решить этим же способом, достаточно только найти ее номер.
-
Используя данную процедуру, можно решить еще одну задачу − удаление всех строк, которые обладают некоторым свойством.
§49. Перестановка элементов массива Перестановка двух элементов Пример 1
Поменять местами два элемента массива А с заданными координатами (номерами строки и столбца).
Решение
Можно эту задачу решить несколькими способами. Первый способ аналогичен перестановке элементов в одномерном массиве, когда в процедуру передаются индексы элементов и массив, в котором надо их поменять. Тогда процедура может быть такой:
Program Example_124;
Procedure Swap1(k1, l1, k2, l2: Integer;
Var x: dmyarray);
Var c: Integer;
Begin
c:=x[k1, l1]; x[k1, l1]:=x[k2,l2];
x[k2,l2]:=c;
End;
Второй способ. Вспомним процедуру Swap, которая меняет местами значения двух целых переменных.
Program Example_125;
Procedure Swap(Var x, у: Integer);
Var z: Integer;
Begin
z:=x; x:=y; y:=z;
End;
А теперь обратимся к ней, передавая данные элементы: Swap(A[k1, l1], A[k2, l2]).
Рассмотрим задачу о перестановке двух столбцов (строк), так как многие задачи используют это действие.
Пример 2
Поменять местами столбцы с номерами l1 и l2. Эту задачу также можно решить несколькими способами. Составим процедуру, в которую будем передавать номера столбцов, и массив, в котором надо их переставить. Кроме того, добавим проверку корректности ввода данных номеров, так как если столбца с данным номером нет, то и переставлять ничего не надо. В самой процедуре можно использовать, например, процедуру Swap
Program Example_126;
Procedure Swap2(l1, l2: Integer;
Var x: dmyarray);
Var i: Integer;
Begin
If (l1<1) Or (l1>m)) Or (l2<1)
Or (12>m)) Then
Writeln ('Ввод неправильный')
Else
For i:=1 To m Do
Swap(x[i, l1], x[i, l2]);
End;
Если применять первую процедуру Swap1, то после проверки правильности ввода данных будет такое обращение:
For i:=1 То m Do
Swap1(i, l1, i, l2, x);
§50. Строковый тип данных
Строкой называется последовательность заданной длины, состоящая из символов.
Строки (переменные типа String) могут быть объявлены, например, следующим образом:
Var Str1: String[30]; Str2: String;
При объявлении строковой переменной в квадратных скобках может указываться длина строки. Если длина строки не указана, то она принимается равной 255. Максимальная длина строки также равна 255. В данном случае в первой строке может содержаться максимум 30 символов, а во второй − 255. Надо заметить, что строка похожа на одномерный массив символов: она имеет определенную длину (не больше некоторого числа), к каждому символу можно обратиться по его номеру (как в массиве) – Str1[i] − это обращение к i−му элементу строки Str1.
Переменные типа String выводятся на экран посредством стандартных процедур Write и Writeln и вводятся с помощью стандартных процедур Readln и Read. To есть вводятся и выводятся не поэлементно, как массивы, а целиком.
Примечание. Если при вводе задать символов больше, чем максимально допустимо, то лишние символы будут проигнорированы.