nailya-abdulova25
?>

Цикл з передумовою можуть виконуватися більше ніж один раз

Информатика

Ответы

info7
Да :)
Зависит от условия, например:
n:=0;
while n <10 do
 n:=n+1;
Цикл выполнится 10 раз.
dmitrij-sp7
Сначала надо найти аналитическое решение задачи.
Определить координаты точек пересечения двух функций - это совместно решить уравнения, описывающего функции.
\begin {cases} y=x^2+c \\ y=kx+b \end {cases} \to x^2+c=kx+b \\ \\ x^2-kx+(c-b)=0 \\ D=k^2-4(c-b) \\ \displaystyle x_{1,2}= \frac{k\pm \sqrt D}{2}; \quad y_{1,2}=kx_{1,2}+b
Теперь можно составить программу, предусмотрев в ней анализ случаев D<0, D=0 и D>0.

uses Crt;
var
  k,b,c,x1,x2,y1,y2,d:real;
begin
  ClrScr;
  Write('Введите через пробел c,k,b: '); Read(c,k,b);
  d:=sqr(k)-4*(c-b);
  if d<0 then Writeln('Точек пересечения нет')
  else
    if d=0 then begin
      x1:=k/2; y1:=k*x1+b;
      Writeln('Координаты точки пересечения (',x1:0:4,',',y1:0:4,')')
    end
    else begin
      d:=sqrt(d);
      x1:=(k-d)/2; y1:=k*x1+b;
      x2:=(k+d)/2; y2:=k*x2+b;
      Writeln('Координаты точек пересечения:');
      Writeln('(',x1:0:4,',',y1:0:4,'), (',x2:0:4,',',y2:0:4,')')
    end;
  ReadKey
end.

Тестовые решения:
Введите через пробел c,k,b: -2 1 1
Координаты точек пересечения:
(-1.3028,-0.3028), (2.3028,3.3028)

Введите через пробел c,k,b: 1 3 -5
Точек пересечения нет

Введите через пробел c,k,b: 12 6 3
Координаты точки пересечения (3.0000,21.0000)
Dmitrychekov9
// PascalABC.Net
var
  a,b,h,x,F:double;
begin
  h:=0.1;
  Write('Введите через пробел границы интервала табудяции: ');
  Read(a,b);
  x:=a;
  while x<=b+(h/2) do begin
    F:=5*sin(x)+cos(sqr(x));
    Writeln(x:8:5, F:10:5);
    x:=x+h
  end;
end.

Тестовое решение
Введите через пробел границы интервала табудяции: -2 3
-2.00000  -5.20013
-1.90000  -5.62379
-1.80000  -5.86440
-1.70000  -5.92684
-1.60000  -5.83346
-1.50000  -5.61565
-1.40000  -5.30670
-1.30000  -4.93671
-1.20000  -4.52977
-1.10000  -4.10302
-1.00000  -3.66705
-0.90000  -3.22714
-0.80000  -2.78468
-0.70000  -2.33876
-0.60000  -1.88732
-0.50000  -1.42822
-0.40000  -0.95986
-0.30000  -0.48165
-0.20000   0.00585
-0.10000   0.50078
 0.00000   1.00000
 0.10000   1.49912
 0.20000   1.99255
 0.30000   2.47355
 0.40000   2.93432
 0.50000   3.36604
 0.60000   3.75911
 0.70000   4.10342
 0.80000   4.38888
 0.90000   4.60613
 1.00000   4.74766
 1.10000   4.80906
 1.20000   4.79062
 1.30000   4.69887
 1.40000   4.54780
 1.50000   4.35930
 1.60000   4.16228
 1.70000   3.98981
 1.80000   3.87408
 1.90000   3.83921
 2.00000   3.89284
 2.10000   4.01825
 2.20000   4.16975
 2.30000   4.27455
 2.40000   4.24355
 2.50000   3.99181
 2.60000   3.46597
 2.70000   2.67145
 2.80000   1.68892
 2.90000   0.66844
 3.00000  -0.20553

Замечание: В цикле  while x<=b+(h/2) do прибавление половины шага гарантирует, что несмотря на погрешности представления чисел в компьютере, цикл будет выполнен и для конечной точки интервала.

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

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

Цикл з передумовою можуть виконуватися більше ніж один раз
Ваше имя (никнейм)*
Email*
Комментарий*

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

Kotvitskii
scraer198258
Людмила902
cmdkotelniki
tyrnaus
bezpalova2013
mariokhab
Olesya
mira15963256
Li-111
meu72
Dmitrievna405
Банова_Елена431
dima8585
vinokurova88251