Основы алгоритмизации и программирования
Контрольная работа, 13 Ноября 2012, автор: пользователь скрыл имя
Краткое описание
Понятие разветвляющихся процессов?
Вычислительный процесс называется разветвляющимся, если в зависимости от выполнения определенных условий он реализуется по одному из нескольких, заранее предусмотренных (возможных) направлений.
Что называется условным переходом?
Если переход осуществляется только при выполнении какого-либо условия, то он называется условным, а соответствующий ему оператор – оператором условного перехода.
Оператор условного перехода?
Вложенные файлы: 1 файл
(2).doc
— 1.34 Мб (Скачать файл)Основы алгоритмизации и программирования
Контрольные вопросы
- Понятие разветвляющихся процессов?
Вычислительный процесс называется разветвляющимся, если в зависимости от выполнения определенных условий он реализуется по одному из нескольких, заранее предусмотренных (возможных) направлений.
- Что называется условным переходом?
Если переход осуществляется только при выполнении какого-либо условия, то он называется условным, а соответствующий ему оператор – оператором условного перехода.
- Оператор условного перехода?
Где IF (если), THEN (то), ELSE (иначе) – служебные слова;
оператор 1, оператор 2 – любые операторы языка.
- Полная и сокращенная формы условного оператора?
Условный оператор может не иметь конструкции ELSE, такая форма оператора называется сокращенной:
IF <логическое выражение> THEN <оператор>;
Если же условный оператор имеет конструкцию ELSE,то такая форма называется полная.
- В чем заключается вложенная конс
трукция условных операторов?
Условные операторы могут иметь вложенную конструкцию, когда после THEN или FALSE используется так же условный оператор. При этом справедливо следующее правило: ELSE всегда относится к ближайшему слева оператору IF.
- В каких случаях операторы объеди
няются в один, составной оператор? Приведите пример.
В состав условного оператора может входить только один оператор. Если какую либо ветвь разветвления требуется вставить несколько операторов, то они объединяются в один, составной оператор, для чего в начале группы этих операторов записывается слово BEGIN, а в конце – служебное слово END:
BEGIN
<оператор 1>;
<оператор 2>;
……………..
<оператор N>;
END;
Элементами составного оператора могут быть любые операторы языка, в том числе условные и другие составные операторы.
Пример:
Вычислить корни квадратного уравнения общего вида а <>0, ax2+bx+c=0 в области действительных чисел. Введем следующие обозначения: A, B, C – коэффициенты уравнения;
X1, X2 – корни;
E – допустимая погрешность вычислений.
Схема алгоритма представлена на рис.4.
{ОПРЕДЕЛЕНИЕ КОРНЕЙ КВАДРАТНОГО УРАВНЕНИЯ}
PROGRAM KU;
CONST E=1E-4; {погрешность вычислений}
VAR A, B, C, X1, X2, D: REAL;
BEGIN
READ (A, B, C);
WRITELN (‘A=’, A,’B=’, B,’C=’, C);
D: =SQR (B)-4*A*C;
IF D <0 THEN
WRITELN (‘корни мнимые’)
ELSE BEGIN
IF ABS (D)<E THEN
X1: =-B/(2*A);
X2: =X1;
END
ELSE BEGIN
X1: =(-B+SQRT (D))/(2*A);
X2: =(-B-SQRT (D))/(2*A);
END;
WRITELN (‘X1=’, X1, ’X2=’, X2);
END;
END.
- Оператор варианта, его возможности?
Оператор варианта является обобщением условного оператора: он дает возможность выполнить один из нескольких операторов в зависимости от значения некоторого выражения, называемого селектором.
В общем случае оператор имеет вид:
CASE <селектор> OF
<список меток 1>: <оператор 1 >;
<список меток 2>: <оператор 2 >;
……………………………………
<список меток N>: <оператор N >;
END;
- Общий вид оператора безусловного перехода?
вид оператора:
GOTO <метка>
Где GOTO (идти к) – служебное слово; <метка> - целое число без знака
Задание 1
program labz12;
var x:integer;
y:real;
begin
write('x=');read(x);
if(x>1.4) then y:=SQR(x);
if(x=1.4) then y:=x+1.5;
if(x<1.4) and (x>1) then y:=SQRT(x);
write('y=',y:6:2);
end.
program labz13;
var m:byte;
begin
write('m=');readln(m);
case m of
3,4,5:writeln('весна');
6,7,8:begin
writeln('лето');
end;
9,10,11:begin
writeln('осень');
end;
12,1,2:begin
writeln('зима');
end;
end{case}
end.
Задание 2
program labz11;
var a,b,y:word;
begin
write('a=');read(a);
write('b=');read(b);
if(a<b) then y:=abs(a-b);
if(a>b) then y:=abs(a*b);
write('y=',y);
end.