Пример 11.1.

Создать программу обработки исключений, использующую инструкцию try…except. Проект – консольное приложение.

Вариант задания:

f1(x) = 1/sin(x), h1 = p/8, тип данных для f1(x) Real.

f2(x) =100+x, h2 = 20, тип данных для f2(x) Byte

Листинг программы

program prg_11_1;

{$mode objfpc}{$H+}

uses

Classes, SysUtils, RusTrans;

const

h1=pi/8;

h2=20;

var

f:boolean=false;

i,imax,imin,i_error:integer;

y:array[-10..10] of real;

b:array[-10..10] of byte;

begin

writeln(Rus(‘Введите Imin и Imax в пределах -10…10′));

write(‘   Imin=’);

readln(imin);

write(‘   Imax=’);

readln(imax);

try

for i:=imin to imax do

begin

i_error:=i;                   // i, если ошибка

y[i]:=1/sin(i*h1);

end;

for i:=imin to imax do

begin

i_error:=i;                   // i, если ошибка

b[i]:=100+i*h2;

end;

except

on EZeroDivide do

begin

writeln(Rus(‘Деление на 0′));

writeln(Rus(‘при i=’),i_error);

f:=true;

end;

on ERangeError do

begin

writeln(Rus(‘Ошибка диапазона’));

writeln(Rus(‘при i=’),i_error);

f:=true;

end;

end;

if not f then writeln(‘OK’);

readln;

end.

Консоль перед закрытием программы (3 варианта):

  • исключений нет,
  • ошибка деления на 0,
  • ошибка диапазона.

paskal67

paskal68

paskal69

Twitter SEO Community Ваау! News2.ru Chipp Korica SMI2 Google Bookmarks Digg I.ua Закладки Yandex Linkstore Myscoop Communizm Ru-marks Webmarks Ruspace Linkomatic Kli.kz Web-zakladka Zakladok.net Reddit delicious Ma.gnolia Technorati Slashdot Yahoo My Web БобрДобр.ru Memori.ru rucity.com МоёМесто.ru Mister Wong



Copyright © 2009-2010 Программирование на паскале.