Примеры программ с условным оператором
Приведем несколько примеров законченных программ, использующих РВП. 1. Проверить, может ли быть построен прямоугольный треугольник по длинам сторон a, b, c. Проблема с решением этой задачи -- не в проверке условия теоремы Пифагора, а в том, что в условии не сказано, какая из сторон может быть гипотенузой. Подходов возможно несколько -- запрашивать у пользователя ввод данных по возрастанию длины сторон, проверять все три возможных условия теоремы Пифагора и т. п. Используем наиболее естественное решение -- перед проверкой условия теоремы Пифагора упорядочим величины a, b, c так, чтобы выполнялись соотношения a≤b≤c. Для этого применим прием с обменом значений переменных из п. 4.1. var a,b,c, {Длины сторон} s:real;{Буферная переменная для обмена} begin { Секция ввода данных } writeln; write ('Введите длину 1 стороны:'); readln (a); write ('Введите длину 2 стороны:'); readln (b); write ('Введите длину 3 стороны:'); readln (c); { Сортируем стороны по неубыванию } if (a>b) then begin s:=a; a:=b; b:=s; end; if (a>c) then begin s:=a; a:=c; c:=s; end; if (b>c) then begin s:=b; b:=c; c:=s; end; { Проверка и вывод } if abs(a*a+b*b-c*c)<1e-8 then writeln ('Прямоугольный треугольник ', 'может быть построен!') else writeln('Прямоугольный треугольник ', 'не может быть построен!') end.
2. Определить, попадает ли точка плоскости, заданная координатами (a, b) в прямоугольник, заданный координатами двух углов (x1, y1) и (x2, y2). Как и в предыдущей задаче, было бы не совсем корректно требовать от пользователя вводить данные в определенном порядке -- гораздо лучше при необходимости поменять x- и y-координаты прямоугольника так, чтобы пара переменных (x1, y1) содержала координаты левого нижнего угла прямоугольника, а (x2, y2) -- правого верхнего. var x1,y1,x2,y2,a,b:real;
begin writeln ('Введите координаты 1 угла:'); read (x1,y1); writeln ('Введите координаты 2 угла:'); read (x2,y2); if x1>x2 then begin a:=x1; x1:=x2; x2:=a; end; if y1>y2 then begin a:=y1; y1:=y2; y2:=a; end; writeln ('Введите координаты точки:'); read (a,b); if (x1<=a) and (a<=x2) and (y1<=b) and (b<=y2) then writeln ('Точка попадает в прямоугольник') else writeln ('Точка не попадает в прямоугольник'); end.
3. Вводится денежная сумма в рублях и копейках. Программа печатает введенную сумму с правильной формой слов "рубли" и "копейки", например, "123 рубля 15 копеек". Окончание, используемое для слов "рубли" и "копейки", зависит от последней цифры суммы, которую можно получить, взяв остаток от деления на 10 (1058 рублей, 38 рублей и т.д.). Исключения -- суммы с последними двумя цифрами от 11 до 19 включительно, которые всегда произносятся "рублей" и "копеек" (511 рублей, но 51 рубль). Используя эту информацию, составим программу. var r,k,o10,o100:integer; begin writeln; write ('Введите количество рублей, ', 'затем пробел и количество копеек:'); read (r,k); writeln; o10:=r mod 10; {Взяли последнюю цифру} o100:=r mod 100; {...и 2 последних цифры} write ('Правильно сказать: ',r,' '); {Печатаем число рублей, затем пробел} if (o100>10) and (o100<20) or (o10>4) or (o10=0) then write ('рублей') else if (o10>1) and (o10<5) then write ('рубля') else write ('рубль'); {аналогично для копеек:} o10:=k mod 10; o100:=k mod 100; write (' ',k,' '); {печатаем число копеек с пробелами} if (o100>10) and (o100<20) or (o10>4) or (o10=0) then write ('копеек') else if (o10>1) and (o10<5) then write ('копейки') else write ('копейка'); end.
Читайте также: II. ЗНАКОМСТВО с программой Windows Movie Maker Воспользуйтесь поиском по сайту: ![]() ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|