|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.04.2013, 05:03 | #1 |
Пользователь
Регистрация: 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' Помогите пожалуйста исправить ошибку. Желательно с объяснением. Слышал, что на этом форуме сидят умные люди, которые готовы помочь. Надеюсь на это |
10.04.2013, 08:35 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ну компилятор же пишет, что ему не нравится!
У Вас тип S - целочисленная переменная. Но в результате деления может получиться ДРОБНОЕ (вещественное) число. исправить можно, например так: Код:
Имхо, все переменные (A,B,H) должны быть вещественного типа! |
10.04.2013, 18:13 | #3 |
Пользователь
Регистрация: 10.04.2013
Сообщений: 22
|
Спасибо большое, все работает. А вот еще вопросик. Действительно, A,B,H тоже могут быть дробными(2.5; 5,3 и т.д.). Как мне обозначить это в программе?
|
10.04.2013, 18:19 | #4 |
Пользователь
Регистрация: 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); |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
определить площадь трапеции. (С++) | 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 |