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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2015, 00:03   #1
scarecrow_1
Пользователь
 
Регистрация: 22.12.2015
Сообщений: 28
По умолчанию Требуется оградить два земельных участка,имеющих форму прямоугольников,если для каждого участка заданы его площадь и периметр. Опр

Требуется оградить два земельных участка,имеющих форму прямоугольников,если для каждого участка заданы его площадь и периметр. Определить длины секций ограды,которые потребуются для каждого участка. (нужно сделать через процедуру).

Код:
program vadim;

procedure ograda(var s, p: real; k: byte);
var
  a, b, d: real;
begin
  writeln(k, ' участок');
  repeat
    write('площадь=');
    readln(s);
    write('периметр=');
    readln(p);
    d := p * p - 16 * s;
    if(s < 1) or (s > 500) or (p < 1) or (p > 100) or (d < 0) then
      writeln('Введены некорректные данные, повторите ввод');
  until (s > 0) and (s <= 500) and (p > 0) and (p <= 100) and (d >= 0);
  a := (p + sqrt(d)) / 4;
  b := (p - sqrt(d)) / 4;
  writeln('a=', a:0:2, ' b=', b:0:2);
end;

var
  p1, s1, p2, s2: real;

begin
  ograda(s1, p1, 1);
  ograda(s2, p2, 2);
  readln
end.

Как сделать чтобы при вводе например, площади 6 и периметра 100,выводило : Такого участка не существует?
или если например одна и сторон меньше 1.5 м ,тоже выводило : такого участка не существует.

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 22.12.2015 в 09:30.
scarecrow_1 вне форума Ответить с цитированием
Старый 22.12.2015, 10:52   #2
rubius2008
Форумчанин
 
Регистрация: 19.03.2010
Сообщений: 409
По умолчанию

Условия надо написать на d>=0, a >1.5, b >1.5
Есть вопросы, пишите в ЛС.
rubius2008 вне форума Ответить с цитированием
Старый 22.12.2015, 19:35   #3
scarecrow_1
Пользователь
 
Регистрация: 22.12.2015
Сообщений: 28
По умолчанию

Можете написать как будет выглядеть программа?
scarecrow_1 вне форума Ответить с цитированием
Старый 23.12.2015, 22:32   #4
rubius2008
Форумчанин
 
Регистрация: 19.03.2010
Сообщений: 409
По умолчанию

Код:
program vadim;

procedure ograda(k: byte);
var
  a, b, d: real;
  s, p: real;
begin
  writeln(k, ' участок');
  write('площадь=');
  readln(s);
  write('периметр=');
  readln(p);
  d := p * p - 16 * s;
  if (d>0) then begin
    a := (p + sqrt(d)) / 4;
    b := (p - sqrt(d)) / 4;
    if (a>1.5) and (b>1.5) then writeln('a=', a:0:2, ' b=', b:0:2)
    else writeln('Одна из сторон <= 1.5 м');
  end
  else writeln('Нельзя вычислить стороны')
end;

var
  p1, s1, p2, s2: real;

begin
  ograda(1);
  ograda(2);
  readln
end.
Сделал на основе вашего.
Но мне кажется преподаватель попросит вас переделать, чтобы четко были определены входные и результирующие данные для процедуры.
Есть вопросы, пишите в ЛС.
rubius2008 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсвечивание участка изображения Стьюдент Общие вопросы Delphi 6 09.10.2012 23:37
Дано 3 точки своими координатами х,у. Будет ли они вершинами треугольника. Если да - найти периметр и площадь треугольника Arhi555 Паскаль, Turbo Pascal, PascalABC.NET 2 11.09.2012 17:46
Найти площадь, периметр и угол треугольника по длинам трёх его сторон ( Delphi 7 ) CONDOR* Помощь студентам 1 15.05.2012 18:26
Выделение участка памяти RAZOR1703 Общие вопросы C/C++ 3 24.11.2011 19:18
Сортировка участка матрицы random7 Общие вопросы C/C++ 7 23.06.2010 08:13