русс | укр

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

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

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

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


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

Условный операторIF или как компьютер делает выбор


Дата добавления: 2014-11-28; просмотров: 523; Нарушение авторских прав


Идею разветвления в программе я изложил в 2.8. Сейчас добавлю только, что вся мыслительная деятельность во всех программах (в том числе и той, что выиграла в шахматы у Каспарова) осуществляется только при помощи ветвления (выбора).

Теперь посмотрим, как писать разветвляющиеся программы на Паскале.

Выучим сначала три английских слова:

if читается "иф" переводится "если"
then читается "зэн" переводится "то"
else читается "элз" переводится "иначе"

Теперь приведем пример нового для вас оператора:

IF a=28 THEN WriteLn (f) ELSE k:=44

Переводится он так:

ЕСЛИ a=28 ТО печатай f ИНАЧЕ присвой переменной k значение 44.

Другими словами, мы предлагаем компьютеру сначала подумать, правда ли, что a=28 , и если правда, то выполнить оператор WriteLn (f), в противном случае выполнить оператор k:=44 . Таким образом, мы с вами впервые написали оператор, при выполнении которого компьютер не просто выполняет, что приказано, а сначала думает и делает выбор (пока одного из двух).

Мы видим, что оператор if включает в себя другие операторы, которые выполняются или не выполняются в зависимости от какого-то условия. Чтобы понять, зачем может пригодиться оператор if, рассмотрим следующую задачу.

Задача 1. Компьютер должен перемножить два числа - 167 и 121. Если их произведение превышает 2000, то компьютер должен напечатать текст ПРОИЗВЕДЕНИЕ БОЛЬШОЕ, иначе текст ПРОИЗВЕДЕНИЕ МАЛЕНЬКОЕ. После этого компьютер в любом случае должен напечатать само произведение.

Программа:

VAR a,b,y :Integer;

BEGIN
a:=167;

b:=121;

y:=a*b;

if y>20000 then WriteLn ('ПРОИЗВЕДЕНИЕ БОЛЬШОЕ')

else WriteLn ('ПРОИЗВЕДЕНИЕ МАЛЕНЬКОЕ');

WriteLn (y)

END.

Пояснение: В программе 5 операторов, последний – WriteLn (y). Поскольку эти 5 операторов выполняются по порядку, то он выполнится обязательно.



 

Задача 2. В компьютер вводятся два произвольных положительных числа - длины сторон двух кубиков. Компьютер должен подсчитать объем одного кубика - большего по размеру .

Обозначим a1 - сторону одного кубика, a2 - сторону другого, bol - сторону большего кубика, V - объем кубика. Приведем три варианта программы:

 

ВАРИАНТ 1   VAR a1,a2 : Real; BEGIN ReadLn (a1,a2); ifa1>a2 then WriteLn (a1*a1*a1 : 15:5) else WriteLn (a2*a2*a2 : 15:5) END.
ВАРИАНТ 2   VAR a1,a2,V : Real; BEGIN ReadLn (a1,a2); if a1>a2 thenV:=a1*a1*a1 else V:=a2*a2*a2; WriteLn (V : 15:5) END.
ВАРИАНТ 3   VAR a1,a2,bol,V : Real; BEGIN ReadLn (a1,a2); if a1>a2 then bol:=a1 else bol:=a2; V:=bol*bol*bol; WriteLn (V : 15:5) END.

 

Поясним последний вариант. Программа состоит из четырех операторов, которые выполняются в порядке записи. Первым после запуска выполняется оператор ReadLn (a1,a2), который ждет от нас ввода двух чисел. Пусть мы сегодня ввели числа 3 и 2. Компьютер понимает, что a1 равно 3, a2 равно 2, и переходит к выполнению оператора if. Он видит, что 3>2, и поэтому выполняет оператор bol:=a1, а оператор bol:=a2 не выполняет. В результате в ячейке bol оказывается число 3. Затем компьютер переходит к следующему оператору - V:=bol*bol*bol и вычисляет V=3*3*3=27. Следующий оператор WriteLn (V : 15:5) печатает число 27.00000 .

Если завтра мы запустим эту же программу и введем числа 6 и 10, то компьютер увидит, что утверждение 6>10 ложно, и поэтому выполнит оператор bol:=a2, а оператор bol:=a1 выполнять не станет. В результате в ячейке bol окажется число 10 и будет напечатано число 1000.00000 .

 

А теперь, дорогой читатель, вам пришла пора освоить пошаговый режим выполнения программы на компьютере. В обычном режиме компьютер выполняет программу настолько быстро, что вы не успеваете заметить, в каком порядке он выполняет отдельные операторы программы, а без этого часто невозможно понять ее логику. Пошаговый режим заставляет компьютер при выполнении программы задерживаться на каждой строке программы столько, сколько нужно человеку. Сейчас вам необходимо проделать то, что сказано в части IV в пункте «Пошаговый режим» параграфа «Исправление ошибок. Отладка программы».

 

Итак, если паровая машина избавила человека от тяжелого физического труда, то оператор if избавил человека от тяжелого умственного труда, в нашем случае - от необходимости решать, какое из двух чисел больше другого.

Оператор if можно записывать и без части else. Например, if s<t then w:=a+1. Это означает, что если s<t, то нужно выполнить оператор w:=a+1, в противном случае ничего не делать, а просто перейти к следующему оператору.

Для примера рассмотрим простейшую задачу: В компьютер вводится слово. Компьютер должен просто распечатать его. Однако, если введенным словом будет "колхозник", то компьютер должен напечатать вместо него слово "фермер".

Вот как будет выглядеть наша программа-"цензор":

VAR Slovo : String;
BEGIN
ReadLn (Slovo); { переменная Slovo будет иметь значением строку символов, введенных с клавиатуры }
if Slovo = 'колхозник' then Slovo := 'фермер';
WriteLn (Slovo)
END.



<== предыдущая лекция | следующая лекция ==>
Вам всего понадобится 420 морковок | 


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


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

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

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


 


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

 
 

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

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