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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2013, 05:03   #1
Bracho1994
Пользователь
 
Регистрация: 10.04.2013
Сообщений: 22
Вопрос Вычислить площадь трапеции. Данные ввести с клавиатуры.

Недавно начали проходить азы Делфи 7.
Делал по аналогу сумма А и Б, но чего-то не получается.



Вот код :
Код HTML:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
   A:integer;
   B:integer;
   H:integer;
   S:Real;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
     Var a,b,h,S:integer;
begin
 A:=Strtoint (Edit1.Text);
 B:=Strtoint (Edit2.Text);
 H:=Strtoint (Edit3.Text);
 S:=(((A+B)/2)*H);
 Label4.Caption:=inttostr (S);
end;

end.


в этой строке указывает на ошибку
Код HTML:
S:=(((A+B)/2)*H);
пишет
[Error] Unit1.pas(42): Incompatible types: 'Integer' and 'Extended'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

Помогите пожалуйста исправить ошибку. Желательно с объяснением. Слышал, что на этом форуме сидят умные люди, которые готовы помочь. Надеюсь на это
Bracho1994 вне форума Ответить с цитированием
Старый 10.04.2013, 08:35   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну компилятор же пишет, что ему не нравится!
У Вас тип S - целочисленная переменная. Но в результате деления может получиться ДРОБНОЕ (вещественное) число.

исправить можно, например так:
Код:
Var a,b,h:integer;
   S : double;   
begin
 A:=Strtoint (Edit1.Text);
 B:=Strtoint (Edit2.Text);
 H:=Strtoint (Edit3.Text);
 S:=(((A+B)/2)*H); 
 Label4.Caption:= FloatToStr(S);
p.s. А что, длины сторон у Вас не могут быть дробными (вещественными)?
Имхо, все переменные (A,B,H) должны быть вещественного типа!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.04.2013, 18:13   #3
Bracho1994
Пользователь
 
Регистрация: 10.04.2013
Сообщений: 22
По умолчанию

Спасибо большое, все работает. А вот еще вопросик. Действительно, A,B,H тоже могут быть дробными(2.5; 5,3 и т.д.). Как мне обозначить это в программе?
Bracho1994 вне форума Ответить с цитированием
Старый 10.04.2013, 18:19   #4
Bracho1994
Пользователь
 
Регистрация: 10.04.2013
Сообщений: 22
Радость

Разобрался!=))
Окончательный вид вот такой
Код HTML:
Var a,b,h:real;
   S : double;
begin
 A:=Strtofloat (Edit1.Text);
 B:=Strtofloat (Edit2.Text);
 H:=Strtofloat (Edit3.Text);
 S:=(((A+B)/2)*H);
 Label4.Caption:= FloatToStr(S);
Спасибо за помощь=) Если что, спрошу еще что-нибудь потом
Bracho1994 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
определить площадь трапеции. (С++) anytka2k Помощь студентам 2 16.11.2011 18:39
площадь трапеции Hand1e Свободное общение 7 06.09.2011 17:50
Программа вычисляющая площадь трапеции Visha Помощь студентам 0 18.05.2011 21:59
найти площадь криволинейной трапеции icar1992 Помощь студентам 0 18.05.2011 12:49
Площадь равнобедренной трапеции Mr.Qwerty Свободное общение 6 05.09.2009 02:31