Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Тестирование готовой программы

Практическое задание №10

Тема: Тестирование готовой программы

Цель: изучить на основе готовой программы операторы разветвляющейся структуры языка Pascal и научиться составлять простейшие программы с использованием операторов условного и безусловного перехода.

 

Оборудование и материалы: практическое задание, компьютер, программа Турбо Паскаль.

 

Теоретические сведения к практическому заданию

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

Основным средством разработки разветвленных структур алгоритмов в Pascal являются условные операторы if и case. С их помощью можно влиять на последовательность выполнения операторов программы.

Оператор if.

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

В качестве условия выбора должно быть логическое выражение;

Например: А>В; (A+X)<>N; (А>В) and (В>С).

Оператор if может принимать одну из следующих форм:

1. if<условие>then<оператор 1 >else<оператор 2>;

{если <условие> то <оператор 1> иначе <оператор 2>;}

2. if<условие>then<оператор 1 >;

{если <условие> то <оператор 1>:}

Оператор if выполняется следующим образом. Сначала вычисляется выражение, записанное в условии. В результате его вычисления получается значение булевского типа. В первом случае, если значение есть true (истина), то выполняется <оператор 1>, указанный после ключевого слова then, иначе выполняется <оператор 2>, указанный после ключевого слова else. Во втором случае, если результат вычисления выражения есть false (ложь), то выполняется оператор, следующий за оператором if. Например:

if x>y then max:=x else max:=y;

При х>у выполняется оператор max:=x, при х<у выполняется оператор mах:=у. Пример оператора if без else:

ifх>у then writeln(x);

При х>у выполняется оператор writeln(x), иначе выполняется оператор, следующий за оператором if.

Часто возникает необходимость выполнять в одной из ветвей (или в обеих ветвях) условного оператора несколько команд. В этом случае используется составной оператор - группа операторов помещенные между ключевыми словами begin и end. Например:

ify>ythen

begin {начало составного оператора}

mах:=х;

writeln (‘mах=', mах);

end {конец составного оператора }

else

х:=х+1;

В качестве оператора в одной ветви или в обеих ветвях могут быть использованы условные операторы. Такие операторы называются вложенными. Например:

ifх<-3 theny:=x+1 else

if x<>0 then y:=x*x else y:=y*y;

Примечание. Служебное слово else всегда ассоциируется с ближайшим по тексту if.

Оператор case.

Оператор case позволяет сделать выбор из произвольного числа имеющихся вариантов.

С его помощью можно сопоставить различным значениям некоторого выражения, называемого селектором (от selection - выбор), соответствующие им операторы. Оператор case имеет следующий формат:

case<выражение-селектор>of

константа или список констант №1:<оператор 1>;

константа или список констант №2:<оператор 2>;

константа №N:<оператор N>

else<альтернативный оператор>

end;

Оператор case работает следующим образом. Сначала вычисляется значение выражения селектора, затем выполняется тот оператор, константа выбора которого равна текущему значению селектора. Если ни одна константа не равна значению селектора, то выполняется альтернативный оператор, стоящий за словом else. Альтернативный оператор можно не писать. Например:

writeln('Введите значение n =’);

readln(n);

case n of

1:у:=х;

2: у:=х*х;

3: у:=х*х*х

else y:=0

end:

writeln(‘y=’, у);


При n=1 выполняется оператор у:=x.

При n=2 выполняется оператор у:=х*х.

При n=3 выполняется оператор у:=х*х*х.


При любых других значениях n выполняется оператор у:=0).

После завершения оператора case выполняется оператор writeln('y=’,у). Кроме одиночных констант могут быть заданы списки и/или диапазоны значений. Например:

casenof

0,1..4:у:=х;

2,5: у:=х*х;

3: у:=х*х*х

end;

При использовании оператора case должны выполняться следующие правила:

- значение селектора должно принадлежать дискретному типу; для целого типа integer оно должно лежать в диапазоне -32768.32767;

- все константы, предшествующие операторам альтернатив, должны иметь тип, совместимый с типом селектора;

- все константы в альтернативах должны быть уникальны в пределах оператора case;

- диапазоны не должны пересекаться и не должны содержать констант, указанных в данной или в других альтернативах.

Оператор goto.

Оператор безусловного перехода goto означает «перейти к» и применяется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий оператор, а какой-нибудь другой. Метка объявляется в разделе описания меток и может содержать как цифровые, так и буквенные символы. Метка отделяется от помеченного оператора двоеточием. Например:

………………………….

label M1;

var

n:Integer;

х,у: real;

begin readln(n,x);

…………………………

gotoM1;

…………………………

М1:

у:=х*2-3/х;

writeln(‘y=’ у);

Тестирование готовой программы

Задача №1: составить программу для вычисления значения функции .

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

Для составления программы будем использовать полную форму записи оператора условного перехода (IF <условие> THEN <оператор 1> ELSE <оператор 2>).

После оператора IF записывают проверяемое условие (для данной задачи–это условие x-4<>0), после оператора THEN записывают выполнения действий, удовлетворяющие проверяемому условию (для данной задачи–это y=1/(x-4)– оператор присваивания). А после оператора ELSE запишем вывод сообщения о неопределенности функции.

 

Программа будет выглядеть следующим образом:

 

Programzadacha1_10; Название программы
var x, y: real; Осуществляется описание используемых в программе переменных
begin Начало программы
writeln ('Введите произвольное значение x '); Осуществляется вывод поясняющего текста
readln (x); Осуществляется ввод исходных данных: значение переменной x
if x - 4 <> 0 then y: = 1/(x-4) Смотрите примечание 1, 2
Else writeln (' Функция y не определена '); Осуществляется вывод сообщения
end. Завершение программы

Примечание 1: После оператора IF указано проверяемое условие, после оператора THEN– вычисление функции по указанной формуле.

Примечание 2: после запуска программы на исполнение нажатием клавиши F9 на экране появится подсказка оператора ввода «Введите произвольное значение x», после которого необходимо ввести произвольное значение переменной x. Затем нажатием клавиши Enter получаем искомый результат–значение функции y.

 

Задача №2: составить программу для вычисления значения функции по одной из формул

Программа:

Program zadacha2_10;

Begin

var a, b, x, y: real;

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

readln (a, b, x);

if x < 10 then y: = (x + a)

else y: = SIN(x) – b;

writeln (' y = ', y);

End.

Содержание задания

Задание №1

Протестировать программу для задачи №1 и записать свои данные в таблицу:

Значения переменной x Значения функции y
   
   
   

Задание №2

Составить программу, которая в зависимости от введённого числа либо вычисляет функцию, либо выдаёт сообщение, что функция не определена.

Условие задачи:

Программа:

……………

Записать свои данные в таблицу:

Значения исходных данных Значения функции y
   
   
   

Задание №3. Протестировать программу для задачи №2 и записать свои данные в таблицу:

Значения переменной x Значения функции y
   
   
   

Задание №4

Составить программу для решения задачи.

Условие задачи:

 
 


y =
x2 – 5, если x< 3,

x - 3, если x ≥ 3.

Программа:

………………

Записать свои данные в таблицу:

Значения исходных данных Значения функции y
   
   
   

Задание №5

Ответьте на контрольные вопросы к практическому заданию

Задание №6

1. Сделайте вывод о проделанном практическом задании.

2. Сдайте отчет преподавателю.

 

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

 

1. Какая программа называется разветвляющейся?

2. Укажите общий вид оператора условного перехода в Pascal?

3. Какие данные являются исходными для задачи?

4. Какое выражение называется условным?

5. Что указывается после оператора IF?

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...