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*
Комментарий*

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

nikomuneskazhu60
mrFuz
teya07
Natalya1070
Yekaterina Oksyuta1657
mikek0906
moskvabelarus
bike-garage8
Aleksandr362
yakushkinayuliya
yfetyukov
enot1975
Dmitrievich-Telishev
samogon-mozhaisk
izykova22