viktorovna_Imamaevich679
?>

Дан круг с радиусом r.определить, поместиться ли правильный треугольник со стороной a в этом круге. в c++

Информатика

Ответы

kapriz1999
Радиус описанной окружности вокруг правильного треугольника равен R=a*корень(3)/3
сторона вписанного треугольника равна a=R*корень(3)  
радиус вписанной в правильный треугольник равенr=b*корень(3)/6 
сторона описанного треугольника равна b=2*r*корень(3) R=r площадь правильного треугольника равна c^2*корень(3)/4  отношение площадей треугольников равно  ( 2*r*корень(3))^2*корень(3)/4 : (( r*корень(3))^2*корень(3)/4)==4 
Kozlovao4
Здесь нужно использовать вс типизированный файл и, соответственно, вторую файловую переменную (fr2).
Сделать это можно так:
while not eof(fr) and (kol=0) do
begin
read(fr, Marshrut);
if (Marshrut.NK.N <> '11')
   then write(fr2,Marshrut)
   else begin inc(kol); y:=Marshrut; end;
end;
if not eof(fr) then
  begin
  read(fr, Marshrut);
  write(fr2,Marshrut);
  end;
if (kol=1) then  write(fr2,y);
Дальше нужно просто переписать оставшиеся записи из первого файла во второй. Затем оба файла закрыть, первый файл удалить, а второй переименовать (т.е. назвать его так, как назывался первый файл).

Попробуйте ещё вот такой вариант:
(здесь k1 и k2 - целые, а y - типа )
if (Marshrut.NK.N = '11') then
begin
writeln('... ');
inc(kol);
y:=Marshrut;
k1:=FilePos(fr)-1;
k2:=FilePos(fr);
if not eof(fr) then
 begin
 read(fr, Marshrut);
 seek (fr, k1);
 write(fr, Marshrut);
 seek (fr, k2);
 write (fr, y);
 end;

end;
kulttrop
1. → 2 [сдвинуться вправо, перейти на строку 2]
2. → 3 [сдвинуться вправо, перейти на строку 3] — в вопросе опечатка?
3. → 4 [сдвинуться вправо, перейти на строку 4]
4. ? 5;2 [если в текущей ячейке нет метки, перейти на строку 5, иначе вернуться на 2]
5. ← 6 [сдвинуться влево, перейти на строку 6]
6. V 7 [поставить метку, перейти на строку 7]
7. ! [закончить работу]

Программа делает следующее: переходит на метку вправо, шагами по две ячейки идёт вправо, пока не дойдёт до пустой ячейки, возвращается на ячейку влево, ставит там метку и заканчивает работу.

Пусть метки расположены в ячейках 0 - (n-1), каретка под ячейкой 0.
Тогда сначала каретка окажется подячейкой 1, сделает [n/2] шагов по 2 вправо ([x] — целая часть x), оказавшись под ячейкой 1 + 2 * [n/2], вернётся на ячейку влево (ячейка 2 * [n/2]) и поставит там метку.

Если n было четным, будут заполнены ячейки от 0 до n, каретка под ячейкой n
Если n было нечетным, будут заполнены ячейки от 0 до n - 1, каретка под ячейкой n - 1

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Дан круг с радиусом r.определить, поместиться ли правильный треугольник со стороной a в этом круге. в c++
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Роман
cat2572066
ak74-81
ielienakozlova696
maximpr6
Tane4ka2110
vsbrelok
margo929
Lugovoi
Zhulanova-IP501
elenarumack
natalyaionova
dinadumno2114
APerova3464
sharikplushelen