СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Примеры составления программ для алгоритмов с ветвлением

Категория: Информатика

Нажмите, чтобы узнать подробности

Задачи первого типа, когда действие выполняется только при выполнении (невыполнении) какого-либо условия.

При решении задач этого типа используется неполный условный оператор вида

IF условие THEN действие;  или  IF  not(условие) THEN действие;

 

Просмотр содержимого документа
«Примеры составления программ для алгоритмов с ветвлением»

Примеры составления программ для алгоритмов с ветвлением


Задачи первого типа, когда действие выполняется только при выполнении (невыполнении) какого-либо условия.

При решении задач этого типа используется неполный условный оператор вида

IF условие THEN действие; или IF not(условие) THEN действие;


ЗАДАЧА 1. Составьте программу, в которой пользователю задаются три вопроса и выдаётся количество правильных ответов.



var otv : string[20]; kotv : byte;

begin

kotv:=0;


write(‘Как называется устройство отображения информации?’); readln(otv);

if (otv=‘Дисплей’) or (otv=‘дисплей’) or (otv=‘ДИСПЛЕЙ’) then kotv:=kotv+1;


write(‘Для ввода алфавитно-цифровой информации служит -’); readln(otv);

if (otv=‘Клавиатура’) or (otv=‘клавиатура’) or (otv=‘КЛАВИАТУРА’) then kotv:=kotv+1;


write(‘Основное устройство для обработки информации - это ’); readln(otv);

if (otv=‘Процессор’) or (otv=‘процессор’) or (otv=‘ПРОЦЕССОР’) then kotv:=kotv+1;


write(‘Правильных ответов - ‘, kotv);

end.


Задачи второго типа: выбор из двух возможных вариантов.


ЗАДАЧА 1. Вычислить значение функции

Блок-схема этой задачи проста.


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


1 СПОСОБ.

Program Y1_1 (input, output);

var x,y: real;

begin

write(‘Введи х:’); readln(x);

if x= 2 then y:=sqrt(x-2) else y:=sqr(x) - 4;

write(‘y=’, y);

end;

2 СПОСОБ.

Program Y1_2 (input, output);

var x,y: real;

b: boolean;

begin

write(‘Введи х:’); readln(x);

b:= x=2;

case b of

true: y:= sqrt(x-2);

false: y:=sqr(x) - 4;

end;

write(‘y=’, y);

end;

3 СПОСОБ

Program Y1_1 (input, output);

var x,y: real;

begin

write(‘Введи х:’); readln(x);

if x= 2 then y:=sqrt(x-2);

if x

write(‘y=’, y);

end;



ЗАМЕЧАНИЕ. При решении задачи третьим способом следует заботиться о том, чтобы условия в условных операторах были противоречащими друг другу (чтобы не осталось “неохваченных вниманием” значений переменной).


ЗАДАЧА 2. Для заданного целого х вычислить значение функции

Так как нет никаких условий, то кажется, что это обычная вычислительная задача. На самом деле областью определения данной функции является множество X = [2;3) U (3;+). Значение функции y можно вычислить, если х  Х, в противном случае функция не определена.

Для разнообразия значение х не будем вводить от пользователя, а определим с помощью датчика случайных чисел из интервала (-20; 20)

var x : integer;

y : real;

begin

x:= random(40) - 20;

write(‘Для x=’,x);

if (x=2) and (x 3) then begin

y= SQRT(x-2) / (x*x*x - 27);

writeln(‘ y=‘,y:6:2);

end

else writeln (‘значение функции не определено’);

end.


ЗАДАЧА 3. От пользователя вводится его имя. Определить, с какой буквы - гласной или согласной - оно начинается.


Основная вопрос при решении данной задачи - как определить, является ли буква гласной. Можно, конечно написать сложное условие типа:

(s = ‘А’) or (s = ‘а’) or (s = ‘Е’) or ... (s = ‘я’), но в языке Pascal есть возможность работать с множествами и существует операция проверки вхождения элемента в множество - IN. Поэтому одним из способов решения задачи будет следующий:


var Name : string;

S : char;

begin

write (‘Как Вас зовут?’); readln(Name);

S:= Name[1]; {что равнозначно оператору S:=copy(Name,1,1);}

write(‘Первая буква -’);

if S in [‘A’,‘a’,‘E’,‘e’,‘Ё’,’ё’,‘И’,’и’,’О’,’о’,’У’,’у’,’Ы’,’ы’,’Э’,’э’,’Ю’,’ю’,’Я’,’я’] then write (‘гласная’) else write (‘согласная’);

end.


ЗАДАЧА 4. От пользователя вводится слово. Добавьте в конец слова один или два восклицательных знака, так чтобы во вновь полученном слове было четное количество символов. Например: “Ура” - “Ура!”, “Привет” - “Привет!!”


var old, new : string;

begin

write(‘Введите текст -’); readln(old);

if length(old) mod 2 =0 then new:=old+’!!’ else new:=old+’!’;

writeln(new);

end.


Задачи третьего типа: осуществляется выбор из трех возможных вариантов, условия выбора связаны со значениями одной переменной;


ЗАДАЧА 1. Вычислить значение функции

Блок-схема решения выглядит следующим образом.

Если программу составлять в полном соответствии с блок-схемой, то она будет выглядеть так:

var x: real; y: integer;

begin

write(‘Введи х:’); readln(x);

if x

else if x=0 then y:=0

else y:=1;

writeln(‘y=’, y);

end.


Основную часть программы (вычисление значения y) можно реализовать следующим образом:

if x

if x=0 then y:=0;

if x0 then y:=1;


Но нельзя написать так:

if x

if x=0 then y:=0 else y:=1;

Ошибка состоит в том, что для всех значений х, меньших 0, первый оператор действительно присвоит переменной y значение -1, но выполнение второго оператора изменит это значение на +1 (так как отрицательное число не равно нулю).


ЗАПОМНИТЕ. Если при решении задачи Вам нужно предусмотреть выбор одного варианта из трех возможных, то можно использовать конструкцию

IF условие 1 THEN выбор 1

ELSE IF условие 2 THEN выбор 2

ELSE выбор 3;

или конструкцию IF условие 1 THEN выбор 1;

IF условие 2 THEN выбор 2;

IF условие 3 THEN выбор 3;

Причем, условия 1-3 должны “перекрывать” все возможные значения переменной.