Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2017, 15:00   #1
HackYou
 
Регистрация: 01.06.2017
Сообщений: 3
По умолчанию [Pascal ABC.NET] Найдите ошибку. Почему программа при любых значениях выводит в ответ 0?

PascalABC.net
///////////////////////////////////////////////////////////////////////////////////////
Код:
program calculator;

uses FormsABC, Timers;

var
  but: button;
  t: timer;
  a, b, c, rez: real;
  znak: char;

function plus(a: real; b: real): real;
begin
  plus := a + b;
end;

function minus(a: real; b: real): real;
begin
  minus := a - b;
end;

function del(a: real; b: real): real;
begin
  del := a / b;
end;

function umn(a: real; b: real): real;
begin
  umn := a * b;
end;

function kvadr(a: real): real;
var
  ans: real;
  i, b: integer;
begin
  readln(b);
  ans := 1;
  for i := 1 to b do
    ans := ans * a;
  kvadr := ans;
end;

function kvadrur(a: real; b: real; c: real): real;
var
  d, x1, x2: real;
begin
  d := sqr(b) - 4 * a * c;
  x1 := (-b - sqrt(d)) / a * 2;
  x2 := (-b + sqrt(d)) / a * 2;
end;
//------------------------------------



procedure OnTimer;
begin
  readln(a);
  readln(znak);
  case znak of
    
    '+':
      begin
        readln(b);
        rez := plus(a, b);
      end;
    
    '-':
      begin
        readln(b);
        rez := min(a, b);
      end;
    
    '/':
      begin
        readln(b);
        rez := del(a, b);
      end;
    
    '*':
      begin
        readln(b);
        rez := umn(a, b);
      end;
    
    '^':
      begin
        rez := kvadr(a);
      end;
  
  end;
end;

procedure MyClick;
begin
  t.Stop;
   writeln('Результат равен: ', rez); 
end;


//--------------------------------------------

begin
  writeln('Вводите числа и знаки поочередно');
  t := new Timer(1, OnTimer);
  t.Start;
  but := new Button('Результат');
  but.Click += MyClick;
end.
///////////////////////////////////////////////////////////////////////////////////////



________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 11.06.2017 в 16:32.
HackYou вне форума Ответить с цитированием
Старый 11.06.2017, 16:36   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

это что за ужас, летящий на крыльях ночи?!
к чему здесь таймер?
почему смесь бульдога (консольной программы с вводом через readLn) и носорога (оконный интерфейс, контрол в виде кнопки) ?

если Вы хотите сделать калькулятор, то это совсем не так должно быть.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.06.2017, 19:36   #3
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

Неправильно заданный вопрос в предыдущей теме http://www.programmersforum.ru/showthread.php?t=309702, приводит вот к такому коду.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа отображает разноцветные шарики, которые движутся внутри области изображения - Pascal ABC.NET look900 Фриланс 3 01.05.2017 23:09
Запись.Программа Pascal ABC.NET Anton925 Помощь студентам 2 25.12.2016 20:36
Зациклилась программа Pascal ABC.net lerler Помощь студентам 7 16.03.2016 23:23
Почему не выводит ответ? oleg866 Помощь студентам 1 01.06.2014 01:37
почему не выполняется 3-е движение? Код на Pascal ABC.NET Рафиль Паскаль, Turbo Pascal, PascalABC.NET 1 23.12.2011 13:01