- •Глава 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. Строки
3.2. Задачи к пройденной теме
Получить максимальное число из трех целых чисел.
Составим структурную схему решения задачи.
Рис. 3.2. Схема алгоритма нахождения максимального значения из трех целых чисел.
Алгоритм достаточно прозрачен. Сравниваем значения переменных X и Y, выбираем из них большее и сохраняем значение большей переменной в переменной с именем MAX, затем значение переменной Z сравниваем со значением переменной MAX и опять выбираем большее значение.
Запишем текст программы.
PROGRAM max_XYZ;
USES CRT;
VAR
X,Y,Z: integer; {входные переменные}
MAX: integer; {выходная переменная}
BEGIN
clrscr;
writeln('введите значения переменных X, Y, Z');
readln(X, Y, Z);
IF X > Y THEN
MAX := X
ELSE
MAX := Y;
IF Z > MAX THEN
MAX := Z; {обратите внимание: служебное слово ELSE отсутствует}
writeln('максимальное значение = ', MAX);
writeln('Нажмите любую клавишу для выхода...');
readln;
END.
Даны целые числа X, Y, Z.
Вычислить MAX (X+Y+Z, XYZ).
Вычислить MIN (X, Y, X-Y).
PROGRAM MAX_2;
USES CRT;
VAR
X,Y,Z: integer;
MAX: integer;
BEGIN
clrscr;
writeln('введите значения переменных X, Y, Z');
readln(X, Y, Z);
IF X + Y + Z > X * Y * Z THEN
BEGIN
MAX := X + Y + Z;
writeln('Сумма чисел равна ', MAX);
END {обратите внимание на отсутствие ';' }
ELSE
BEGIN
MAX := X * Y * Z;
writeln('Произведение чисел равно ', MAX);
END; {а вот тут ';' необходимо для завершения ветвления}
writeln('Нажмите любую клавишу для выхода...');
readln;
END.
PROGRAM MIN_3;
USES CRT;
VAR
X,Y: integer;
MIN: integer;
BEGIN
clrscr;
writeln('введите значения переменных X, Y');
readln(X, Y);
IF X < Y THEN
MIN := X {';' ставить не нужно, иначе ветка ELSE не воспримится}
ELSE
MIN := Y; {а тут ';' означает конец ветвления IF}
IF X - Y < MIN THEN
MIN := X - Y;
writeln('наименьшее число ', MIN);
writeln('Нажмите любую клавишу для выхода...');
readln;
END.
Даны действительные числа a, b, с. Проверить выполняются ли неравенства a < b < c. Напечатать на экране соответствующее сообщение.
PROGRAM N3;
USES CRT;
VAR
a,b,c: real;
BEGIN
clrscr;{очистка экрана}
writeln('введите значения переменных a, b, c');
readln(a, b, c);
IF ( a < b) AND ( b < c) THEN { A < B < C }
writeln('условие выполнено')
ELSE
writeln('условие не выполнено');
writeln('Нажмите любую клавишу для выхода...');
readln;
END.
Даны два целых числа. Если первое число больше второго то заменить его их разностью, в противном случае — суммой, второе число не изменять.
PROGRAM N4;
USES CRT;
VAR
a,b: integer;
BEGIN
clrscr;
writeln('введите значения переменных a и b');
readln(a, b);
IF a > b THEN
a := a - b
ELSE
a := a + b;
writeln('a=', a , ' b=' , b);
writeln('Нажмите любую клавишу для выхода...');
readln;
END.
3.3. Задачи для самостоятельного решения
Даны три действительных числа a, b и c. Определить, можно ли построить треугольник с такими длинами сторон.
Верно ли, что для заданного четырехзначного числа выполняется соотношение: сумма первой и последней цифры равна разности второй и третьей цифры?
Даны два действительных числа. Удвоить первое число, если оно меньше второго, в остальных случаях оставить числа без изменения.
Проверить, является ли год вашего рождения високосным, если да, то подсчитать количество уже прошедших високосных годов, если нет, то подсчитать количество високосных годов до 3000г.
