среда, 6 февраля 2013 г.

9А информатика

Оператор ветвления



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

Условиевыражение, про которое можно сказать верно оно или нет. При программировании, как правило, условие включает в себя один из знаков <,>,=,<>(не равно),<=(меньше или равно),>=(больше или равно).

Общий вид ветвления на Паскале следующий:

if условие then
begin
            оператор1;
            оператор2;
            ...
            операторk;
end
else
begin
            операторl;
            ...
            операторz;
end;

Если условие выполняется, то выполнятся и операторы с 1 по k, если нет - с L по Z.

Внимание: перед “elseточка с запятой никогда не ставится. Если в ветвлении необходимо выполнять только один оператор, то операторные скобки ставить не обязательно.

Пример. Программа для решения квадратного уравнения.

program KwUr;
var
a,b,c:    integer;
d,x1,x2:  real;
begin
write (‘задай коэффициенты’);
read (a,b,c);
d:=b*b-4*a*c;
if d<0 then
     writeln (‘уравнение не имеет действительных корней’)
else
  begin
      x1:=(-b+sqrt(d))/(2*a);
      x2:=(-b-sqrt(d))/(2*a);
      write (‘корни уравнения равны’);
      write (x1:6:3,x2:6:3)
  end;
end.

При составлении программ можно столкнуться с необходимостью выполнения серии операторов только при истинности заданного условия. В таких случаях else писать не надо. Например, фрагмент программы для нахождения модуля числа без использования функции abs выглядит следующим образом:

write (‘задай число’);
read (a);
if a<0 then
  a:=-a;
write (‘модуль числа равен’, a);

Форма ветвления, в которой отсутствует ветка ELSE называется краткой или не полной.

Вычисление значения функции, заданной несколькими формулами


1)  If25. Для данного целого x найти значение следующей функции f, принимающей значения целого типа:



f(x) =
2∙x, если x < – 2 или x > 2,
– 3∙x,
в противном случае.

Program if25;
Var x,y : real;
Begin
  readln(x);
  if x<=0 then
    y:=-x
   else
     if x<2 then
       y:=sqr(x)
      else
       y:=4;
  writeln(y);
End.

2) If26. Для данного вещественного x найти значение следующей функции  f, принимающей вещественные значения:
f(x) =
x, если x ≤ 0,
x2, если 0 < x < 2,4, если x ≥ 2.

Program if26;
Var x,y : real;
Begin
  readln(x);
  if x<=0 then y:=-x;
  if (x>0) and (x<2) then y:=sqr(x);
  if (x>=2) then y:=4;
  writeln(y);
End.

Алгоритм "Большее из трех"

Задача: найти большее из трех чисел.
1 способ:

Program BIT1;
Var a,b,c : integer;
Begin
  readln(a,b,c);
  if a>b then
     if a>c then writeln(a) else writeln(c)
   else
     if b>c then writeln(b) else writeln(c);
End.

2 способ (Базовый алгоритм, выучить!):

Program BIT2;
Var a,b,c, max : integer;
Begin
  readln(a,b,c);
  max:=a;
  if b>max then max:=b;
  if c>max then max:=c;
  writeln('наибольшее - ', max);
End.

 

Домашнее задание  (к 13.02)

п.37,38,
алгоритмы БИД1, БИТ2 на с. 204 выучить,
алгоритм БИТ2 (см. выше) выучить,
решить задачи:
If10. Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной сумму этих значений, а если равны, то присвоить переменным нулевые значения. Вывести новые значения переменных A и B.
If21. Даны целочисленные координаты точки на плоскости. Если точка совпадает с началом координат, то вывести 0. Если точка не совпадает с началом координат, но лежит на оси OX или OY, то вывести соответственно 1 или 2. Если точка не лежит на координатных осях, то вывести 3.
If24. Для данного вещественного x найти значение следующей функции  f, принимающей вещественные значения:
f(x) =
2∙sin(x), если x>0,
6 – x, если x ≤ 0.
If26а. Для данного вещественного x найти значение следующей функции  f, принимающей вещественные значения:
f(x) =
x2, если x ≤ 1,
 
x, если 1 < x < 4,
2х-4
, если x ≥ 4.

 

Комментариев нет:

Отправить комментарий