Pascal ABC

 

ГЛАВНАЯ
УСТАНОВКА
ОКНО ПРОГРАММЫ
ЛИНЕЙНЫЕ АЛГОРИТМЫ
ЧЕРТЁЖНИК
GraphABC
    РОБОТ
АЛГОРИТМЫ С ВЕТВЛЕНИЯМИ
АЛГОРИТМЫ С ПОВТОРЕНИЯМИ
ПРОЦЕДУРЫ И ФУНКЦИИ
ТЕСТЫ
ТВОРЧЕСКИЕ РАБОТЫ
ОЛИМПИАДНЫЕ ЗАДАНИЯ
 
 

 

 

 

АЛГОРИТМЫ С ВЕТВЛЕНИЯМИ ◊

Структура условного оператора Алгоритмы с ветвлениями.  Часть 1 Часть 2 Часть 3 Часть 4 Самостоятельная работа Часть 5 Часть 6 Операторные скобки. Составной оператор Оператор case Задачник

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

Операторные скобки. Составной оператор

Операторные скобки

После служебного слова then, или после служебного else будет выполняться только один оператор. Если необходимо, чтобы выполнялось несколько операторов их нужно взять в операторные скобки:

begin

...

end;

Группу операторов находящуюся внутри операторных скобок будем называть составным оператором. Фактически, весь раздел операторов, внутри операторных скобок, представляет собой один составной оператор.

Для того, чтобы при большом количестве операторных скобок, программа была более читаемая, end желательно записывать под begin.

  Пример 1. Даны действительные числа а, b (а≠b). Меньшее из этих двух чисел заменить их суммой, а большее - их произведением.

 

Этапы выполнения задания.

I.Определение исходных данных: переменные а, b (ab).

II. Определение результатов: переменные sa,sb.

III. Алгоритм решения задачи.

1. Ввод исходных данных

2. Присваиваем новым переменным sa:=a,sb:=b.

3. Проверяем х и у на  меньшее и большее.

4. Меньшее число заменяем их суммой a:=sa+sb. Большее число заменяем произведением b:=sa*sb

5. Вывод результата.

IV. Описание переменных:

Все переменные, определенные для решения задачи, имеют тип longint.

V. Программа:

var a,b,sa,sb:longint;

Begin

    writeln('Введите два числа');readln(a,b);

    sa:=a;  sb:=b;

     if a>b then

begin

b:=sa+sb;

a:=sa*sb;

end

                else

begin

a:=sa+sb;

b:=sa*sb;

end;

    writeln ('первоначальные числа  a=',sa,'  b=',sb);

    writeln ('полученные  числа  a=',a,'  b=',b);

End.

 

Можешь загрузить!       Пример 1

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

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

Ввод a,b

Вывод

6

5

первоначальные числа a=6 b=5
полученные числа a=30 b=11

1

-9

первоначальные числа a=1 b=-9
полученные числа a=-9 b=-8

 

2. Поэкспериментируйте с программой вводя различные значения.

 

  Пример 2. Составить программу решающую квадратное уравнение вида ax2+bx+c=0.

 

Этапы выполнения задания.

I.Определение исходных данных: переменные а,b, c.

II. Определение результатов: переменные х, х1, х2.

III. Алгоритм решения задачи.

1. Ввод исходных данных

2. Вычисление дискриминанта: d:=b*b-4*a*c.

3. Проверяем дискриминант:

а) если дискриминант меньше нуля, то выводим сообщение 'решений нет'.

б) если дискриминант равен нулю, то 1 решение: х:=-b/(2*a);

в) если дискриминант больше нуля, то 2 решения:

x1:=(-b+sqrt(d))/(2*a);

x2:=(-b-sqrt(d))/(2*a);

IV. Описание переменных:

Переменные а, b, c целого типа integer, d, x, x1, x2 имеют  вещественный тип real.

V. Программа:

var  a,b,c:integer;

x,d,x1,x2:real;

Begin

writeln('введите  коэффициенты  а,b,c');

readln(a,b,c);

d:=b*b-4*a*c;          {вычисление  дискриминанта}

if d<0 then writeln('уравнение  не  имеет  корней');

if d=0 then

begin

writeln('уравнение  имеет  1  корень');

x:=-b/(2*a);

writeln('x= ',x);

end;

if d>0 then

begin

writeln('уравнение  имеет  2 корня');

x1:=(-b+sqrt(d))/(2*a);

x2:=(-b-sqrt(d))/(2*a);

writeln('x1= ',x1);

writeln('x2= ',x2);

end;

End.

 

Можешь загрузить!       Пример 2

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

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

Ввод a,b,c

Вывод

1
-4
4
уравнение имеет 1 корень
x= 2
1
-2
4
уравнение не имеет корней
 
-1
2
5
уравнение имеет 2 корня
x1= -1.44948974278318
x2= 3.44948974278318
1
2
-4
 
уравнение имеет 2 корня
x1= 1.23606797749979
x2= -3.23606797749979
 
1
2
4
уравнение не имеет корней
 
2
-2
3
 
уравнение не имеет корней
 

 

2. Поэкспериментируйте с программой вводя различные значения.

 

Вопросы для повторения:

1.      В каких случаях после служебных слов then и else нужно писать begin end,  а в каких нет?

2.      Что представляет собой составной оператор?

3.      Почему end желательно записывать под begin?

4.      Для чего в примере 1 введены переменные sa, sb?

5.       В какой из следующих структур допущена ошибка? Какая?  

Задачи для самостоятельного решения

  1. Даны действительные числа x, y (x≠y). Меньшее из этих двух чисел заменить их полусуммой, а большее - их удвоенным произведением.

  2. Даны два целых числа M, N. Если M делится нацело на N, то вывести на экран частное от деления, в противном случае - сообщение "M на N нацело не делится".

  3. Даны три числа. Удвоить их, если они упорядочены по возрастанию, иначе отрицательные заменить их модулями.

  4. Даны три числа. Удвоить их, если они целые, иначе нецелые заменить их целыми частями.

  5. Дано натуральное число n (n £ 9999). Если число четырёхзначное, то получите и выведите перевёртыш этого числа (3528 Þ 8253), иначе выведите ответ "Число не четырехзначное".

  6. Дано натуральное число n. Если оно двухзначное, то впишите в середину ноль (для 56 Þ 506), иначе выведите ответ "Число не двухзначное".

  7. * Даны натуральные числа k, l ( 1≤ k, l ≤ 8). На клетке (k, l) расположена шахматная фигура:

    a) конь

    b) ферзь

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

 

 

СЕРВИС 

Copyright © 2008 СОШ №2 им. Н.П. Массонова г.Свислочь © Синица А.А.