М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
dived
dived
07.03.2021 21:42 •  Информатика

Дан текст. подсчитать,сколько раз в тексте встречается симьол "+" и сколько раз-симбол "*". удалить эти символы, сдвинув текст. текст отпечатать.

👇
Ответ:
larsab
larsab
07.03.2021
Var
  s: string;
  i, n1, n2: integer;

begin
  writeln('Введите текст');
  readln(s);
  n1 := 0;
  n2 := 0;
  for i := 1 to length(s) do
    case s[i] of
      '+': n1 := n1 + 1;
      '*': n2 := n2 + 1;
    else write( s[i])
    end;
  writeln;
  writeln('+ удалено ', n1, ', * удалено ', n2)
end.

Тестовое решение:

Введите текст
Y:=35.45*x+2*y/(z-4);
Y:=35.45x2y/(z-4);
+ удалено 1, * удалено 2
4,7(25 оценок)
Открыть все ответы
Ответ:
Ариша03072006
Ариша03072006
07.03.2021
// 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 прибавление половины шага гарантирует, что несмотря на погрешности представления чисел в компьютере, цикл будет выполнен и для конечной точки интервала.
4,5(29 оценок)
Ответ:
Сначала надо найти аналитическое решение задачи.
Определить координаты точек пересечения двух функций - это совместно решить уравнения, описывающего функции.
\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)
4,7(45 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ