Составление программ разветвляющейся структуры

КОМИТЕТ ПО ОБРАЗОВАНИЮ МОСКОВСКОЙ ОБЛАСТИ

ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧЕРЕЖДЕНИЕ

СРЕДНЕГО ПРОФЕССИОНАЬНОГО ОБРАЗОВАНИЯ МОСКОВСКОЙ ОБЛАСТИ

«СЕРПУХОВСКИЙ ТЕХНИЧЕСКИЙ КОЛЛЕДЖ»

Лабораторная работа №2

По дисциплине «Основы программирования»

Составление программ разветвляющейся структуры

Выполнил:

Студент 2-го курса 2-П гр.

Исаев Виктор

Проверил:

Щербаков Кирилл Вадимович

Серпухов 2014

Цель работы:

  1. Изучить правила записи операторов ветвления.
  2. Разработать алгоритм решения задачи.
  3. Составить программу решения задачи.

Оборудование:

  1. Персональный компьютер
  2. программа Turbo Pascal

Задание.

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

1) На плоскости XOY задана своими координатами точка A. Узнать в какой четверти или на какой оси она расположена.

2) F(x)= x4+9, если x<3.2

F(x) = (54*x4) / (-5*x2+7), если x>=3.2

Блок-схема программы.

1)

2)

Листинг программы.

а) Program Pr1;

var x,y: real;

Begin

writeln('Введите x');

readln(x);

writeln('Введите y');

readln(y);

Write('Точка расположена');

if x=0 then

Begin

Write(' на оси OY');

end;

if y=0 then

Begin

Write(' на оси OX');

end;

if (x>0) and (y>0) then

Begin

Write(' в первой четверти');

end;

if (x<0) and (y>0) then

Begin

Write(' во второй четверти');

end;

if (x<0) and (y<0) then

Begin

Write(' в третьей четверти');

end;

if (x>0) and (y<0) then

Begin

Write(' в четвертой четверти');

end;

end.

Результат выполнения программы:

б) Program Pr2;

Var x, F : real;

Begin

writeln('Введите x');

readln(x);

if x<3.2 then

begin

F:=(x*x*x*x)+9;

writeln('F(x)=', F:4:1);

end

else

Begin

F:=(54*(x*x*x*x))/(-5*(x*x)+7);

writeln('F(x)=', F:4:1);

end;

end.

Результат выполнения программы:

Контрольные вопросы:

  1. Операторы разветвлений.
  2. Операторы множественного выбора.
  3. Форматированный вывод данных.

  1. Операторы разветвлений:

- Условный оператор if.

Условный оператор if используется для разветвления процесса вычислений на два направления. Структурная схема оператора приведена на рисунке.

Формат оператора:

if выражение then оператор_1 [else оператор_2;]

Сначала вычисляется выражение, которое должно иметь логический тип. Если оно имеет значение true, выполняется первый оператор, иначе - второй. После этого управление передается на оператор, следующий за условным.

- Оператор варианта case.

Оператор варианта (выбора) предназначен для разветвления процесса вычислений на несколько направлений. Структурная схема оператора приведена на рисунке.

Формат оператора:

case выражение of

константы_1 : оператор_1;

константы_2 : оператор_2;

*

константы_n : оператор_n;

[ else : оператор ]

end;

  1. Операторы множественного выбора.

Оператор варианта case.

Если количество разветвлений программы больше 2, то используется оператор варианта case.

Оператор case выполняет один из нескольких операторов в зависимости от значения селектора. Если селектор не совпадает ни с одним из значений, то выполняется оператор после else или следующий после case, если else отсутствует

  1. Форматированный вывод данных.

Информация, выводимая любой программой должна быть легко читаемой, понятной для пользователя. Для этого, в частности, нужно, чтобы действительные числа были выведены в алгебраической форме, как число с точкой, а также в записях содержались пробелы, отделяющие числа от текста и др. Для этого в языках программирования используются форматы вывода.

        При использовании форматов для вывода значений в текстовые файлы или на экран около имени, выводимого данного явно указывается размер поля для размещения его значения (после знака :), в виде переменная:ширина поля.

 

Форматы для данных различных типов

1. Для целых данных (integer и др.) - формат задается одним числом, определяющим число позиций, отводимых на это число. Например:

Writeln(i:5);

выведет на экран значение переменной i, используя для этого 5 позиций (даже если число занимает меньше 5 позиций, свободные позиции все равно будут отображаться).

         Если переменная i:=34, то на экран будут выведены 3 пустых позиции (они для наглядности показаны знаком подчеркивания) и число 34, т.е. всего 5 позиций.

_ _ _ 34

         Если переменная i:=2345666, то данный формат (i:5) не может быть использован (выводимое число занимает больше позиций) и будет просто игнорироваться и все значение переменной отобразиться на экране.

2345666

 

2. Для вещественных данных (real и др.) - формат задается либо одним числом, определяющим число позиций, отводимых на это число в экспоненциальной форме; либо двумя числами, первое из которых обозначает общий размер поля, отведенного под это число, второе - число знаков после запятой, т.е. точность. Например:

Writeln(p:12);    или     Writeln(p:6:2);

         Если переменная p:=1234.,6789, то в первом случае на экране появится

_1.2346E+004

а во втором

1234.68

Еще один пример. Пусть значение переменной X равно 123.45678, тогда оператор

         Write(X);         выведет         "_1.23456780000000000E+02"

         Write(X:8:2);    выведет        "_ _123.46"

         Write(X:10:5);  выведет        "_123.45678"

         Write(X:10);     выведет        "_1.23E+002"

         Write(X:8);       выведет        "_1.2E+002"

         Write(X:1);       выведет        "_1.2E+002"

 

Пример программы, демонстрирующей возможности форматированного вывода числовых данных (3_1_7.exe).

3. Для строковых и символьных данных (string, char) - формат задается одним числом, определяющим число позиций, отводимых на значение этих данных (т.е. на символ или набор символов). Например, для строковой переменной ss:=’СТРОКА’ и для символьной переменной c:=’C’, операторы

         Writeln(ss:8); Writeln(c:4);

выведут на экран

_ _ СТРОКА

_ _ _ С

         Т.е. в первой строчке две первые позиции из восьми отводимых будут пустыми, а остальные занимаются словом СТРОКА. Во второй строке из 4 позиций отводимых под переменную, первые три будут свободными, а последняя занята символом С.

Может оказаться полезным, что оператор Write(' ':n) выведет на экран n пробелов. При n=6 будет

_ _ _ _ _ _

 

Если в разобранной выше задаче переписать оператор writeln, который выводит на экран значение времени и скорости троллейбуса, таким образом:

writeln(‘ За ’,t:6:2,’ сек. скорость троллейбуса v=’,v:5:1,’ м/с,’);

 то на экране появится (знак подчеркивания показан для демонстрации пустых позиций форматированного вывода):

За _ _1.00 сек. скорость троллейбуса v= _ _1.5 м/c,

Вывод: Изучил правила записи операторов ветвления. Научился разрабатывать алгоритм решения задачи. Научился составлять программу решения задачи .

Составление программ разветвляющейся структуры