
- •Глава 3. Реализация алгоритмов ветвления
- •3.1. Условный оператор
- •Полная форма оператора
- •Краткая форма оператора.
- •3.2. Задачи к пройденной теме
- •3.3. Задачи для самостоятельного решения
- •Глава 4. Реализация циклических алгоритмов
- •4.1. Конструкция цикла со счетчиком
- •4.2. Базовые алгоритмы
- •4.3. Циклы с предварительной и последующей проверкой условия
- •Цикл с последующей проверкой условия.
- •4.4. Вложенные циклы
- •4.5 Решение задач
- •Задачи для самостоятельного решения
- •Глава 5. Пользовательские типы данных.
- •5.1. Общие понятия
- •5.2. Одномерные массивы
- •5.4. Задачи для самостоятельного решения.
- •Глава 6. Многомерные массивы
- •6.1. Двумерные массивы
- •1. Заполнение двумерного массива по строке.
- •2. Заполнение двумерного массива по столбцу.
- •3. Печать содержимого двумерного массива в виде таблицы.
- •4. Вычисление суммы элементов каждой строки (столбца).
- •6. Задача поиска максимального (минимального) элемента и его индексов (считая, что элемент единственный).
- •Алгоритм поиска минимального элемента и его индексов для всего массива.
- •6.2. Квадратные матрицы.
- •Введем некоторые понятия:
- •6.3. Задачи
- •Глава 7. Типы данных Char и String
- •7.1. Символьные данные
- •7.2. Кодирование
- •7.3. Операции над данными типа char.
- •7.4. Строки
6.3. Задачи
Вычислить сумму элементов тех столбцов двумерного массива (3x4), первый элемент которых превосходит наперед заданное число a.
Найти обратное произведение наибольших элементов тех строк двумерного массива (3x4), первый элемент которых отрицателен.
Найти сумму элементов того столбца двумерного массива, в котором расположится наибольший элемент (считаем, что он единственный).
В квадратной матрице размера 5x5 поменять местами столбец, содержащий наибольшее значение, со столбцом содержащим наименьшее значение (предполагаем, что эти элементы единственные).
Дан одномерный массив A(10) и двумерный массив B(3x4). В двумерном массиве заменить нулями те элементы, которые имеют нечетную сумму индексов и превосходят среднее арифметическое значение элементов массива A.
Найти наибольшую сумму из сумм каждой строки двумерного массива. Если таких чисел несколько, вывести на экран номера строк, для которых сумма наибольшая.
Вычислить сумму тех столбцов двумерного массива размерностью 5x5, последний элемент которых равен элементу, стоящему на главной диагонали.
Дан двумерный массив A размерность 5x5. Заполнить одномерный массив B по следующему правилу: если сумма очередной строки массива четная, то соответствующий элемент массива равен 2, иначе — элемент массива B равен 1. Вычислить факториал от количества элементов массива равных 2.
Дан двумерный массив А размерностью 5х5. Вычислить суммы элементов, расположенных на отрезках параллельных главной диагонали. Рассмотреть отрезки элементов, расположенные над главной диагональю и под ней.
Глава 7. Типы данных Char и String
7.1. Символьные данные
Все предыдущие параграфы были посвящены числовым данным и программам обработки числовых данных. Язык Турбо Паскаль позволяет обрабатывать также символьные (литерные) данные. Символьные данные могут быть либо константами, либо переменными.
Для объявления таких данных используется тип char (от слова character). Значениями переменных типа char служат все символы клавиатуры: цифры, буквы, знаки операций, специальные символы и т.д. Переменная, объявленная как char, может принимать значение только одного символа. Это значение можно присвоить переменной с помощью оператора присваивания или ввода с клавиатуры.
Пример 1.
VAR
lim: char;
......
lim:=’a’;
Символ, который присваивается, обязательно заключается в апострофы (но не при вводе с клавиатуры).
Пример 2.
read(lim);
write(lim);
Нажмите на клавиатуре символ «a» и клавишу enter — на экране появится буква а. Если вы случайно нажали две клавиши в переменную lim — будет занесена первая буква.
Пример 3.
read(l1, l2, l3);
Если на клавиатуре нажать три клавиши ‘abc’ (без пробела), тогда в переменной l1 будет буква а, в l2 — буква b и в l3 — буква c.
7.2. Кодирование
Каждому символу ставится в соответствие код — целое число в диапазоне 0..255. Все символы упорядочены (каждый символ имеет свой порядковый номер — код). Для кодировки используется код ASCII (American Standard Code For Information Interchange — американский стандартный код для обмена информацией). В Турбо Паскале для хранения символа отводится 8 разрядов (1 байт). Следовательно, можно закодировать 256 символов, так как диапазон изменения 0..255.
Символы с кодами 0..31 относятся к служебным кодам. При их использовании в тексте Турбо Паскаля они считаются пробелами.
Допускается использовать запись символа путем указания его внутреннего кода, которому предшествует символ #, например:
#65 — заглавная латинская буква ‘A’
#27 — ESC
#8 — BS
#13 — CR (ENTER — возврат каретки).
ПРИМЕЧАНИЕ: Если необходимо записать соответственно символ апострофа, то он удваивается lit:=’ ’’ ’;
Из вышесказанного можно сделать вывод: множество символов упорядочено. Малые латинские буквы идут друг за другом, не перемешиваясь с другими символами, точно также большие буквы, цифры, русские буквы малые и заглавные. Из всех символов составлен список и из двух символов меньше тот, который встречается в списке раньше. Исходя из этого, можно использовать операции отношения между двумя символами.
Приведем классический пример использования переменной типа char в цикле типа FOR. Программа распечатывает буквы латинского алфавита через пробел одной строкой.
PROGRAM char1;
USES CRT;
VAR
ch: char;
BEGIN
clrscr;
FOR ch := 'a' TO 'z' DO
write (ch, ' ');
writeln('нажмите любую клавишу...');
readln;
END.