русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Составные условия.


Дата добавления: 2015-07-09; просмотров: 2851; Нарушение авторских прав


Задача.Определить, попадает ли точка X в интервал (-3, 10). Решение можно записать с помощью вложенного оператора IF:

IF X > -3 THEN

IF X < 10 THEN

writeln(‘точка попадает в интервал’);

Условие попадания числа X в интервал звучит так: «если X больше -3 И X меньше 10, тогда число X попадает в интервал». Две операции отношения соединили союзом «и», графически принадлежность интервалу изобразим следующим образом

 

 

В качестве условия в операторе условного перехода используются только простые условия — т.е. отношения равенства, либо неравенства. В языке Турбо Паскаль из простых условий разрешается строить составные, более сложные условия, состоящие из нескольких простых условий связанных некоторыми логическими операциями, каждое простое условие заключается в скобки.

Простые условия могут соединяться союзами AND, OR и отрицанием NOT, операцией XOR.

Составные условия также как и простые используются в условных операторах и в операторах цикла с предварительной и последующей проверкой условия. Например, для того, чтобы проверить входит ли число x в интервал [a,b] можно использовать составное условие:

IF (X >= a) AND (X <= b) THEN оператор

 

3.2. Задачи к пройденной теме

1. Получить максимальное число из трех целых чисел.

Составим структурную схему решения задачи.

 

Рис. 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.

2. Даны целые числа X, Y, Z.

a. Вычислить MAX (X+Y+Z, XYZ).

b. Вычислить 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.

 

3. Даны действительные числа 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.

 

4. Даны два целых числа. Если первое число больше второго то заменить его их разностью, в противном случае — суммой, второе число не изменять.

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. Задачи для самостоятельного решения

  1. Даны три действительных числа a, b и c. Определить, можно ли построить треугольник с такими длинами сторон.
  2. Верно ли, что для заданного четырехзначного числа выполняется соотношение: сумма первой и последней цифры равна разности второй и третьей цифры?
  3. Даны два действительных числа. Удвоить первое число, если оно меньше второго, в остальных случаях оставить числа без изменения.
  4. Проверить, является ли год вашего рождения високосным, если да, то подсчитать количество уже прошедших високосных годов, если нет, то подсчитать количество високосных годов до 3000г.

 

 

Глава 4. Реализация циклических алгоритмов

Цикл — команда исполнителю многократно повторить указанную последовательность инструкций алгоритмического языка.

Тело цикла — последовательность операторов, повторяемых в процессе выполнения оператора цикла.

4.1. Конструкция цикла со счетчиком

В том случае, когда количество повторений тела цикла известно заранее можно использовать конструкцию цикла со счетчиком (или цикл с параметром).

Возьмем очень простой пример — таблицу умножения: число 2 умножаем на числа от 1 до 10 и печатаем ответ. Какие действия повторяются? Повторяются действия умножения и вывод значения произведения на экран. При этом заметим, что второй сомножитель увеличивается при каждом действии на единицу, и операция умножения повторяется заданное количество раз. Процесс вычислений носит циклический характер, причем число повторений цикла известно к началу его выполнения, управление циклом осуществляется с помощью переменной (счетчик цикла), которая в этом циклическом процессе принимает последовательные значения от заданного начального значения до заданного конечного значения.

2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2 x 9 = 18 2 x 10 = 20

Для программирования повторяющихся заданное количество раз фрагментов программ в языке Турбо Паскаль имеется оператор цикла со счетчиком (часто его называют оператором цикла с параметром).

Как записать сказанное выше с помощью языка математики? Вспомним запись таблицы умножения:

 

Можно сократить количество строк, используя буквенные обозначения

2 x i = a

 

Где i изменяется от 1 до 10, а - от 2 до 20.

 

Итак, делаем вывод — строка 2 x i = a должна быть выполнена 10 раз, т.е. мы должны использовать оператор цикла.

Синтаксическая запись оператора цикла:

FOR i := n TO k DO

 

ДЛЯ i изменяющегося ОТ начального значения ДО конечного ВЫПОЛНИТЬ

Оператор;

 

Если требуется повторить группу действий, то оператор выглядит следующим образом.

 

FOR i:=n TO k DO BEGIN

оператор 1;

оператор 2;

...........

оператор n

END;

 

ВНИМАНИЕ!

1) Счетчик изменяется на единицу при каждом следующем исполнении оператора цикла.

2) Для правильной записи конструкции оператора необходимо помнить: переменные i, n, k — могут быть только переменными так называемого «порядкового типа», это тип, в котором каждое данное имеет свой номер, свое расположение среди других данных этого типа.

3) Не забывайте, что счетчику присваивается начальное значение.

4) Если начальное значение совпадает с конечным значением, то операторы цикла выполняются один раз.

5) Если начальное значение счетчика больше конечного значения, то тело цикла не выполняется ни разу.

6) При выходе из цикла значение счетчика совпадает с конечным значением, т.е. i=k.

Пример.

Вывести на экран квадраты натуральных чисел от 10 до 20.

Рис. 4.1. Схема алгоритма вывода на экран квадратов чисел.

 

PROGRAM N1;

USES CRT;

VAR

i: integer; {счетчик цикла}

a: integer;

BEGIN

clrscr;

FOR i:=10 TO 20 DO

BEGIN

a := i * i;

writeln('квадрат числа ', i , ' = ', a)

END; {после последнего оператора между BEGIN и END ';' не нужна}

{КОНЕЦ ЦИКЛА}

writeln('Нажмите любую клавишу для выхода...');

readln;

END.

ИЛИ

 

FOR i=10 TO 20 DO

writeln(‘квадрат числа i‘, i , ‘=‘, i * i)

 

Рассмотрим конструкцию цикла «FOR» для того случая, когда счетчик уменьшается на 1 при каждом следующем шаге.

Оператор записывается следующим образом:

 

FOR i:=n DOWNTO k DO

 

начальное вниз конечное

значение значение

 

оператор 1;

{или группа операторов, заключенная в операторные скобки begin и end}

 

Пример.

 

Вывести на экран натуральные числа от 19 до 10.

 

PROGRAM N2;

USES CRT;

VAR

i: integer; {счетчик цикла}

a: integer;

BEGIN

clrscr;

FOR i:=19 DOWNTO 10 DO

write(' ', i );

{КОНЕЦ ЦИКЛА}

writeln('Нажмите любую клавишу для выхода...');

readln;

END.

4.2. Базовые алгоритмы

Рассмотрим алгоритмы, которые будут использоваться при решении практически всех задач курса. Таких алгоритмов немного, они называются базовыми. Их надо очень хорошо понять и запомнить.



<== предыдущая лекция | следующая лекция ==>
Краткая форма оператора. | Алгоритм вычисления суммы n чисел.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.009 сек.