15 груд. 2015 р.

Обчислення значень виразів

Ну раз у нас вже так все важко складається з обчисленнями значень виразів, то ось іще раз наведу Вам приклад з домашнього завдання. Задача передбачає використання вказівки розгалуження:
Задача 1. Виконайте перевірку на відповідність математичним правилам та обчисліть значення виразу:
                     

program task1;
var m, n, y: real;
begin
  write('m=');
  read (m);
  write ('n=');
  read (n);
  if (m-n=0) then writeln('неможливо обчислити')
  else
     begin
       y:= (m+n)/(m-n);
       writeln('y=', y)
     end;
end.   

Звертаю Вашу увагу ще раз на те, що ми перевіряємо: чи не сталося так, що при даних, які ввів користувач, значення знаменника дробу дорівнюватиме нулю. Якщо так сталося, то ділення ми виконати не можемо, бо на 0 ділити не можна! В усіх інших випадках ми виконуємо обчислення. Підставте замість m і n, наприклад, число 2. Тоді ми отримаємо: 
у = (2+2)/(2-2), тобто, у = 4 / 0. Хіба модна 4 поділити на нуль? Тому і виводиться повідомлення, що обчислити значення виразу неможливо.

Задача 2. Виконайте перевірку на відповідність математичним правилам та обчисліть значення виразу
program example2;
var a, b, y: real;
begin
 write('a=');
 read(a);
 write('b=');
 read(b);
 if (b = 0) or ((a-b)= 0) then writeln ('неможливо обчислити')
  else
   begin
   y:= (a+b)/(b*(a-b));
   writeln('y=', y);
   end;
end.  

Немає коментарів:

Дописати коментар