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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2011, 09:43   #1
INFRON
Новичок
Джуниор
 
Регистрация: 17.06.2011
Сообщений: 9
По умолчанию

нужно в case

Элементы равностороннего треугольника пронумерованы следующим образом: 1 — сторона (a), 2 — радиус вписанной окружности (R1), 3 — радиус описанной окружности (R2), 4 — площадь (S). Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данного треугольника (в том же порядке).

1- сторона (а)
2 — радиус вписанной окружности (R1), R1=a*sqrt(3)/6 ) 3 под корнем
3 — радиус описанной окружности (R2), R2 = 2•R1
4 — площадь (S) S = a*a*sqrt(3) /4 а в квадрате, 3 под корнем

Последний раз редактировалось Stilet; 19.06.2011 в 11:04.
INFRON вне форума Ответить с цитированием
Старый 19.06.2011, 11:05   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну а в чем сложности? Покажи как пробовал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.06.2011, 11:08   #3
JetUS
Пользователь
 
Аватар для JetUS
 
Регистрация: 23.09.2009
Сообщений: 27
По умолчанию

Если тебе про саму конструкцию case, тогда будет нечто подобное:

Код:
case Variant of
  1:
    begin
      
    end
  2:
    begin

    end
  else
...
JetUS вне форума Ответить с цитированием
Старый 19.06.2011, 11:14   #4
INFRON
Новичок
Джуниор
 
Регистрация: 17.06.2011
Сообщений: 9
По умолчанию

вот я сделал эту задачу, но результыты некоректны, в чем ошибка?
Код:
n:integer; //номер элемента
a,R1,R2,S : real;
z: double ; //величина
begin
n:=strtoint(edit1.text);
z:=strtoint(edit2.text);
case n of
1: a:=(z);
2: a:=(r1*sqrt(3))/6;
3: a:=r2*sqrt(3);
4: a:=sqrt((2*s)/sqrt(3));
else
edit1.text:='неверные данные';
edit2.text:='неверные данные';
end;
z:=(a);
r1:=(a*sqrt(3))/6;
r2:=2*r1;
s:=(a*a*sqrt(3))/2;;

edit3.Text:=floattostr(a); //1
edit4.Text:=floattostr(r1); //2
edit5.Text:=floattostr(r2); //3
edit6.Text:=floattostr(s);  //4
end;
end.
INFRON вне форума Ответить с цитированием
Старый 19.06.2011, 11:24   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но результыты некоректны, в чем ошибка?
Правильно некорректны... ТЫ вычисляешь только первый пункт.
Код:
case n of
1:begin
 a:=(z);  r1:=(a*sqrt(3))/6;  r2:=2*r1;  s:=a*a*sqrt(3)/4...;
end

2: begin
 a:=r1/(sqrt(3)/6);r2:=2*r1; s:=a*a*sqrt(3)/4...;
end
...
т.е. как я понимаю, тебе нужно вычислять по разным формулам в зависимости от того что введено.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.06.2011, 11:33   #6
INFRON
Новичок
Джуниор
 
Регистрация: 17.06.2011
Сообщений: 9
По умолчанию

ага сейчас попробую переделать
INFRON вне форума Ответить с цитированием
Старый 19.06.2011, 12:00   #7
INFRON
Новичок
Джуниор
 
Регистрация: 17.06.2011
Сообщений: 9
По умолчанию

Переписал, но работает если ввести первое значение, на остальных дст
Код:
n:integer; //номер элемента
a,R1,R2,S : real;
z: double ; //величина
begin
n:=strtoint(edit1.text);
z:=strtoint(edit2.text);
case n of
  1:
    begin
    a:=(z);  r1:=(a*sqrt(3))/6;  r2:=2*r1;  s:=a*a*sqrt(3)/3;
    end ;
  2:
    begin
     a:=r1/(sqrt(3)/6); r2:=2*r1; s:=a*a*sqrt(3)/3;
    end ;
  3:
    begin
    r1:=r2/2; a:=sqrt(3)/(r1*6); s:=a*a*sqrt(3)/3;
    end ;
  4:
    begin
    a:=sqrt(3)/(s*3);//a удвоенное
    r1:=(sqr(a)*sqrt(3))/6;
    r2:=2*r1;
    end ;
  else
 edit1.text:='ошибка';
end;
edit3.Text:=floattostr(a); //1
edit4.Text:=floattostr(r1); //2
edit5.Text:=floattostr(r2); //3
edit6.Text:=floattostr(s);  //4
end;
end.
INFRON вне форума Ответить с цитированием
Старый 19.06.2011, 12:12   #8
INFRON
Новичок
Джуниор
 
Регистрация: 17.06.2011
Сообщений: 9
По умолчанию

Ура решил

Код:
 var
n:integer; //номер элемента
a,R1,R2,S : real;
z: double ; //величина
begin
n:=strtoint(edit1.text);
z:=strtoint(edit2.text);
case n of
  1:
    begin
    a:=(z);  r1:=(a*sqrt(3))/6;  r2:=2*r1;  s:=a*a*sqrt(3)/3;
    end ;
  2:
    begin
    r1:=(z); a:=r1/(sqrt(3)/6); r2:=2*r1; s:=a*a*sqrt(3)/3;
    end ;
  3:
    begin
   r2:=(z); r1:=r2/2; a:=sqrt(3)/(r1*6); s:=a*a*sqrt(3)/3;
    end ;
  4:
    begin
    s:=(z);
    a:=sqrt(3)/(s*3);//a удвоенное
    r1:=(sqr(a)*sqrt(3))/6;
    r2:=2*r1;

    end ;
  else
 edit1.text:='ошибка';
end;
edit3.Text:=floattostr(a); //1
edit4.Text:=floattostr(r1); //2
edit5.Text:=floattostr(r2); //3
edit6.Text:=floattostr(s);  //4
end;
end.
INFRON вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
c case D1zz1 Помощь студентам 24 16.06.2011 18:25
Delphi 7. Задача с использованием оператора case. arctica Помощь студентам 2 12.12.2010 21:04
задача с оператором case (Pascal) kena Помощь студентам 4 17.05.2009 12:54
Задача наа case паскаль Lozergod Помощь студентам 1 21.12.2008 21:39
Задача на case klop.92 Помощь студентам 4 28.04.2008 21:17