Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Даны 3 отрезка abc. Найти S треугольника abc.

42K
10 сентября 2008 года
YOZHnv
2 / / 10.09.2008
Понимаю что задача по своей сути не такая уж и сложная, но никто из группы ее решить не смог. Мне ее нужно принести послезавтра полностью готовую и рабочую, иначе плакал мой экзамен:(.
Задача: Даны 3 отрезка abc. Найти S треугольника abc. Проверить, можно ли из этих отрезков сделать треугольник.
Как я понял длину отрезков задаешь сам.
1.9K
10 сентября 2008 года
max_dark
256 / / 11.11.2005
Код:
var
    a,b,c,S:double;
begin
    { ... }
    if ((a+b)<=c) then
        writeln('Указанные отрезки не могут составлять треугольник')
    else begin
        p:=(a+b+c)/2.0;
        S:=sqrt(p*(p-a)*(p-b)*(p-c));
        write("Площадь = ",S);
    end;
    { ... }
end.
Осталось сделать ввод переменных a,b и c(написать две строчки).
Надеюсь, что с этим вы справитесь.
42K
10 сентября 2008 года
YOZHnv
2 / / 10.09.2008
Цитата: max_dark
Код:
var
    a,b,c,S:double;
begin
    { ... }
    if ((a+b)<=c) then
        writeln('Указанные отрезки не могут составлять треугольник')
    else begin
        p:=(a+b+c)/2.0;
        S:=sqrt(p*(p-a)*(p-b)*(p-c));
        write("Площадь = ",S);
    end;
    { ... }
end.
Осталось сделать ввод переменных a,b и c(написать две строчки).
Надеюсь, что с этим вы справитесь.



Спасибо огромное. Знал, что программа простая, а как написать не в курсе был... Сейчас все работает:D

5.3K
11 сентября 2008 года
Somebody
185 / / 24.12.2006
Цитата: max_dark
 
Код:
if ((a+b)<=c) then
        writeln('Указанные отрезки не могут составлять треугольник')


 
Код:
if (a+b<=c) or (b+c<=a) or (c+a<=b) then ...
43K
08 октября 2008 года
agum_aan
1 / / 08.10.2008
Подведу итог и добавлю пару строчек, у мну такая же задача была

Код:
Program Treygolnik
var
    a,b,c,S:double;
begin
    Writlen('A=, B=, C=');
    readln(a,b,c)
    Как сделать проверку данных, чтоб прога при вводе неверных данных не закрывалась, ждала когда введут верные данные (циклически)
    if (a+b<=c) or (b+c<=a) or (c+a<=b) then
        writeln('Указанные отрезки не могут составлять треугольник')
    else begin
        p:=(a+b+c)/2.0;
        S:=sqrt(p*(p-a)*(p-b)*(p-c));
        write("Площадь = ",S);
    end;
end.


доработайте прогу пж
17K
14 октября 2008 года
Quarc
3 / / 30.03.2006
Цитата:

Код:
Program Treygolnik
var
    a,b,c,S:double;
begin
    Writlen('A=, B=, C=');
    readln(a,b,c)
    Как сделать проверку данных, чтоб прога при вводе неверных данных не закрывалась, ждала когда введут верные данные (циклически)
    if (a+b<=c) or (b+c<=a) or (c+a<=b) then
        writeln('Указанные отрезки не могут составлять треугольник')
    else begin
        p:=(a+b+c)/2.0;
        S:=sqrt(p*(p-a)*(p-b)*(p-c));
        write("Площадь = ",S);
    end;
end.


доработайте прогу пж



Код:
Program Treygolnik
label povtor;
var
    a,b,c,S:double;
begin
povtor:
    Writlen('A=, B=, C=');
    readln(a,b,c)
    Как сделать проверку данных, чтоб прога при вводе неверных данных не закрывалась, ждала когда введут верные данные (циклически)
    if (a+b<=c) or (b+c<=a) or (c+a<=b) then
        writeln('Указанные отрезки не могут составлять треугольник');
                      readkey; clrscr;
                      writeln('Повторите ввод!');
                      goto povtor;
    else begin
        p:=(a+b+c)/2.0;
        S:=sqrt(p*(p-a)*(p-b)*(p-c));
        write("Площадь = ",S);
    end;
end.


В своих лабах по паскалю я так сделал (и не ругайте что лабелы юзаюб это невсегда вредно)
17K
14 октября 2008 года
Quarc
3 / / 30.03.2006
Цитата:

Код:
Program Treygolnik
var
    a,b,c,S:double;
begin
    Writlen('A=, B=, C=');
    readln(a,b,c)
    Как сделать проверку данных, чтоб прога при вводе неверных данных не закрывалась, ждала когда введут верные данные (циклически)
    if (a+b<=c) or (b+c<=a) or (c+a<=b) then
        writeln('Указанные отрезки не могут составлять треугольник')
    else begin
        p:=(a+b+c)/2.0;
        S:=sqrt(p*(p-a)*(p-b)*(p-c));
        write("Площадь = ",S);
    end;
end.


доработайте прогу пж



Код:
Program Treygolnik
label povtor;
var
    a,b,c,S:double;
begin
povtor:
    Writlen('A=, B=, C=');
    readln(a,b,c)
    if (a+b<=c) or (b+c<=a) or (c+a<=b) then
        begin
        writeln('Указанные отрезки не могут составлять треугольник');
                readkey; clrscr;
                 writeln('Повторите ввод!');
                 goto povtor;
        end
    else begin
        p:=(a+b+c)/2.0;
        S:=sqrt(p*(p-a)*(p-b)*(p-c));
        write("Площадь = ",S);
    end;
end.


В своих лабах по паскалю я так сделал (и не ругайте что лабелы юзаюб это невсегда вредно)
43K
21 октября 2008 года
Halkdaff
3 / / 21.10.2008
Цитата: agum_aan
Подведу итог и добавлю пару строчек, у мну такая же задача была

Код:
Program Treygolnik
var
    a,b,c,S:double;
begin
    Writlen('A=, B=, C=');
    readln(a,b,c)
    Как сделать проверку данных, чтоб прога при вводе неверных данных не закрывалась, ждала когда введут верные данные (циклически)
    if (a+b<=c) or (b+c<=a) or (c+a<=b) then
        writeln('Указанные отрезки не могут составлять треугольник')
    else begin
        p:=(a+b+c)/2.0;
        S:=sqrt(p*(p-a)*(p-b)*(p-c));
        write("Площадь = ",S);
    end;
end.


доработайте прогу пж



Использование goto в нынешнем програмировании считается не очень грамотным) (это про предыдущее решение).

Мой вариант проверки

 
Код:
{...}
repeat        //поскольку цикл должен выполнится хотя бы 1 раз
readln(a,b,c);
if not((a+b<=c) or (b+c<=a) or (c+a<=b)) then
writeln ('Повторите ввод');
until (a+b<=c) or (b+c<=a) or (c+a<=b);
{...}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог