Дистанционная подготовка: Гипотенуза
Гипотенуза
от Андрей Смирнов - Воскресенье 25 Октябрь 2015, 23:28
2936. Гипотенуза
  как уменьшить время выполнения программы.
Ответ верен , но тест 3 показывает неправильное решение и 5 тест тоже.
int main()
{ int a,b;
double c;
scanf("%d%d",&a,&b);
c = sqrt(a*a+b*b);
printf("%2.1f",c);
return 0;
}
поменял float на double время выполнения только увеличилось.
на что обратить внимание или где что то почитать
Заранее спасибо за пояснения!
Re: Гипотенуза
от Peter Cherepanov - Четверг 29 Октябрь 2015, 02:59
  А откуда вы взяли, что на входе числа целые? И зачем такой странный формат на выходе?
Re: Гипотенуза
от Вікторія Францух - Вторник 23 Август 2016, 12:54
  size of output 6,30978870391846 MiB
1.83 cек.
int main()
{
ifstream in;
ofstream out;
double a,b,c ;
in.open("input.txt");
in>>a>>b;
c = sqrt(a*a+b*b);
out
Re: Гипотенуза
от Мирон Темирканов - Вторник 13 Декабрь 2016, 01:09
  Завидую, улучшают время исполнения проги. А я первую свою прогу в Паскале АБС проверил. все работает выслал и получил ответ - Ошибка компиляции. Так ещё пришлось самому выучить теорему пифагора, в 5 классе её не проходят.

uses crt;
var
a, b, c: real;
begin
readln(a, b);
c := Sqrt(Sqr(a) + Sqr(b));
writeln(c);
end.

Что у меня не так с гипотенузой?
Re: Гипотенуза
от Peter Cherepanov - Вторник 13 Декабрь 2016, 19:37
  Вот пример программы, которая работает.

Program qq;
var a,b:integer; c:real;
begin
readln(a);
readln(b);
c:=sqrt(sqr(a)+sqr(b));
writeln(c);
end.
Re: Гипотенуза
от Мирон Темирканов - Четверг 15 Декабрь 2016, 12:00
  Peter, спасибо! Отправил задание и оно прошло регистрацию. Получается что ПАСКАЛЬ АБС 3.2 тоже работает, нужно только в начале программы дописать Program (и имя). Теперь мне нужно разобраться почему не компилируется задание из ДЕЛФИ 7. Хотя из работающих компилятров Делфи, перечислены начиная от 6 и до 14. Я делаю в Делфи 7.
Re: Гипотенуза
от Peter Cherepanov - Пятница 16 Декабрь 2016, 11:01
  А это проходит на Делфи.


program Hypot;
{$APPTYPE CONSOLE}
var a,b:integer; c:real;
begin
readln(a);
readln(b);
c:=sqrt(sqr(a)+sqr(b));
writeln(c);
end.


Но я никак не могу понять, зачем вообще писать на Паскале. Паскаль нестандартный -- разные компилыяторы несовместимы между собой. На Паскале нет библиотек -- все алгоритмы придется писать руками.
Re: Гипотенуза
от Мирон Темирканов - Вторник 13 Декабрь 2016, 18:52
  Вот подумал, что может Паскаль АБС у меня не той версии и не стыкуется с проверяющим компом. Решил при помощи старшеклассников выплнить в Делфи 7, прога работает, отправил получил тот же ответ "Ошибка компиляции" подскажите что не так делаю.

unit Unit1;

interface

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

type
TForm1 = class(TForm)
edt1: TEdit;
btn1: TButton;
lbl1: TLabel;
edt2: TEdit;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
var a,b,c:Real;
begin
a:= StrToInt(edt1.text);
b:= StrToInt(edt2.Text);
c:= Sqrt(Sqr(a) + Sqr(b));
lbl1.Caption:=FloatToStr(c);
end;

end.
Re: Гипотенуза
от Peter Cherepanov - Пятница 16 Декабрь 2016, 11:05
  Да нет здесь никаких окошек. Программа должна быть консольной.