Дана заштрихованная область и точка с координатами (x, y). Написать программу, определяющую, попадает ли точка в область. Результат вывести в виде текстового сообщения.
Запишем условия попадания точки в область в виде формул. Область можно описать как круг, пересекающийся с треугольником. Точка может попадать либо в круг, либо в треугольник, либо в их общую часть:
Первое условие задает попадание точки в круг, второе – в треугольник. Переменные x и y – вещественного типа. Программа для решения задачи выглядит следующим образом:
{***************************************************}
{Программа: SHOT. }
{Цель: определить попадет ли точка }
{в заштрихованную область. }
{Программист: Иванов И.И. }
{Дата выполнения: 10 апреля 2006 г. }
{***************************************************}
ProgramSHOT;
Var X, Y : real;
Begin
Writeln(‘Введите значения x и y’);
Read(X, Y);
Wriyeln(‘X=’, X, ‘Y=’, Y);
If (sqr(x)+sqr(y)<=1) or (x<=0) and (y<=0) and (y>=-x-2)
then writeln(‘Точка попадает в область’)
else writeln(‘Точка не попадает в область’);
End.{SHOT}
Приоритет операций отношения самый низкий, поэтому они заключаются в скобки. Три условия попадания точки в треугольник должны выполняться одновременно, поэтому они объединяются с помощью операции and. Ее приоритет выше, чем or, поэтому дополнительных скобок не требуется.
Для удобочитаемости программы можно ставить скобки даже в тех местах, где они не обязательны, например, для визуальной группировки условий.
Приложение № 3.
Написать программу, которая по номеру месяца выводит время года.
Эта программа не нуждается в дополнительных комментариях:
{***************************************************}
{Программа: SEASON. }
{Цель: определение времени года. }
{Программист: Иванов И.И. }
{Дата выполнения: 10 апреля 2006 г. }
{***************************************************}
ProgramSEASON;
Var month : word;
Begin
Writeln(‘Введите номер месяца’);
Read(month);
Wriyeln(‘X=’, X);
Case month of
1, 2, 12 : writeln(‘ Зима ’);
3 . . 5 : writeln(‘ Весна ‘);
6 . . 8 : writeln(‘ Лето ‘);
9 . . 11: writeln(‘ Осень ‘);
else writeln( ‘ Такие месяцы встречаются редко ‘)
end
End.
Приложение № 4.
Написать программу, реализующую калькулятор на четыре арифметических действия.
Исходными данными для этой программы являются два вещественных операнда и знак операции, представляющий собой символ. Алгоритм работы программы очевиден: в зависимости от значения введенного знака операции выполнить соответствующее действие над операндами:
{***************************************************}
{Программа: CALCULATOR. }
{Программист: Иванов И.И. }
{Дата выполнения: 10 апреля 2006 г. }
{***************************************************}
ProgramCALCULATOR;
Var A, B, RES : real;
OP : char;
Begin
Writeln(‘Введите первый операнд:’);
Read(A);
Writeln(‘Введите второй операнд: ‘);
Read(B);
Writeln(‘Введите операцию: ‘);
Read(OP);
Case OP of
‘ + ’ : RES := A + B;
‘ – ‘ : RES := A – B;
‘ * ‘ : RES := A * B;
‘ / ‘ : RES := A / B;
else begin
writeln( ‘ Недопустимая операция ‘);
exit
end;
writeln(‘ RES= ‘, RES:6:2)
End.
Следует обратить внимание на то, что если по какой-либо ветви требуется записать не один, а несколько операторов, они заключаются в блок с помощью операторных скобок begin и end.
СПИСОК ЛИТЕРАТУРЫ
1. Аболрус С. Программирование на Pascal, 3-е издание. – Пер. с англ. – СПб.: Символ-Плюс, 2003. – 328 с.
2. Адаменко А.Н. Pascal на примерах из математики. – СПб.: БХВ-Петербург, 2005. – 416 с.
3. Глинський Я.М., Анохін В.Є., Ряжська В.А. Паскаль. Turbo Pascal і Delphi. 3-є вид. – Львів: «Деол», 2002. – 144 с.
4. Культин Н.Б. Программирование в Turbo Pascal 7.0 и Delphi. – СПб.: BHV – Санкт-Петербург, 1997. – 240 с.
5. Новиков В.С., Парфилова Н.И., Пылькин А.Н. Алгоритмизация и программирование на Турбо Паскале: Учебное пособие. – М.: Горячая линия – Телеком, 2005. – 438 с.
6. Павловская Т.А. Паскаль. Программирование на языке высокого уровня: Учебник для вузов. – СПб.: Питер, 2003. – 393 с.
7. Павловская Т.А. Паскаль. Программирование на языке высокого уровня: Практикум. – СПб.: Питер, 2006. – 317 с.
8. Попов В.Б. Turbo Pascal для школьников. Версия 7.0: Учеб. Пособие. – М.: Финансы и статистика, 1996. – 464 с.
9. Решение задач средствами языка Turbo Pascal 7.0 / А.Н. Моргун – К.: Юниор, 2002. – 216 с.
10. Турбо Паскаль 7.0 / Е.Р.Алексеев и др. – М.: ООО «Издательство АСТ»: Издательство «НТ Пресс», 2004. – 270 с.