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

Программа которая определяет количество символов в слове

👇
Ответ:
smaiershow
smaiershow
06.11.2022

program xxx;

var s : string;

     а : integer;

begin

   writeln ('Введите слово-');

   readln (s);

   а:= length(s)

   writeln ('Длина слова=', a);

   readln

end.

4,5(70 оценок)
Открыть все ответы
Ответ:
master204
master204
06.11.2022

Так,сначала теория.

В формуле Герона (коя используется в этой программе) используется полупериметр!

Это означает, что надо ввести переменную полупериметра ( pp, к примеру). Тогда программа примет вид:

program P1;

var

a, b, c, p: integer;

pp, s: real;

begin

write('Введите сторону a = ');

readln(a);

write('Введите сторону b = ');

readln(b);

write('Введите сторону c = ');

readln(c);

p := a + b + c;

writeln('Периметр треугольника P = ', p);

pp := p / 2;

s := sqrt(pp * (pp - a) * (pp - b) * (pp - c));

writeln('Площадь треугольника S = ', s);

end.

Также замечу, что полупериметр и площадь относятся не к целочисленному типу данных.

И да, обращайте внимание на оформление.

Табуляции в программе, "сторона" вместо "координата", пробелы до и после равно, чтобы всё не выглядело слипшимся.

4,6(8 оценок)
Ответ:
ляпрпммм
ляпрпммм
06.11.2022

Вам нужно найти такие a и b, что a + b = x и ab = y. По теореме Виета a и b - корни уравнения t^2-xt+y=0. Находим дискриминант D=x^2-4y, если он отрицательный - у уравнения не то что натуральных, действительных решений нет. Если дискриминант неотрицательный, но не полный квадрат, то натуральных решений тоже нет. Иначе решения уравнения (x\pm\sqrt D)/2, если они натуральные - это и есть ответ.

У меня нет уверенности, что можно посчитать целый корень из большого натурального числа с стандартных функций, так что напишу свою реализацию на основе двоичного поиска.

#include <iostream>

#include <cmath>

long long isqrt(long long number) {

 long long answer = 0, left = 0, right = 1e9;

 while (left <= right) {  

   long long middle = (left + right) / 2;

   long long middle_squared = middle * middle;

   if (middle_squared == number) {

     return middle;

   } else if (middle_squared < number) {

     answer = middle;

     left = middle + 1;

   } else {

     right = middle - 1;

   }

 }

 return answer;

}

int main() {

 long long x, y;

 std::cin >> x >> y;

 auto d = x * x - 4 * y;

 if (d < 0) {

   std::cout << 0;

   return 0;

 }

 auto sqrt_d = isqrt(d);

 if (sqrt_d * sqrt_d != d) {

   std::cout << 0;

   return 0;

 }

 if ((x - sqrt_d) % 2 != 0) {

   std::cout << 0;

   return 0;

 }

 std::cout << (x - sqrt_d) / 2 << " " << (x + sqrt_d) / 2;

}

4,6(96 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ