gtnzcdtnf
05.02.2021 22:51

найти ошибку в программе PascalABC.NET Далеко не все в Тентуре имеют право носить малиновые штаны, и конечно, не все владеют пепелацем с гравицапой, зато один предприимчивый чатланин поставил несколько ловушек, захватывающих отваливающиеся детали с пролетающих мимо инопланетных кораблей. Каждое утро он их обходит, в надежде, что рано или поздно из этих запчастей ему удастся собрать какое-нибудь транспортное средство. Путь свой чатланин планирует по карте, на которой аккуратно отмечены ловушки, отсчитывая начало координат от собственного дома. Начинается обход от дома, и в нем же и заканчивается.

Требуется определить, какое расстояние проходит чатланин за день.

В первой строке входного файла INPUT.TXT находится натуральное число N – количество ловушек, установленных чатланином (N ≤ 10), далее следуют N строк формата «X Y», описывающих координаты ловушек в порядке их обхода (-10 ≤ X,Y ≤ 10; X,Y – целые числа).

В выходной файл OUTPUT.TXT выведите общее расстояние, которое пройдет чатланин, обойдя все ловушки в приведенном порядке и вернувшись в начало координат от последней ловушки, с точностью до трех знаков после запятой.

Вот сама программа:
function len(x1,y1,x2,y2:integer):double;
begin
len:=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))
end;
var x1,y1,y2,x2,n,i:integer;
l:real;
begin
x1:=0;
y1:=0;
read(n);
for i:=1 to n do begin
read(x2,y2);
l:=len(x1,y1,x2,y2);
x1:=x2;
y1:=y2;
l:=l+len(x2,y2,0,0);
end;
writeln(l:2:3);
end.


найти ошибку в программе PascalABC.NET Далеко не все в Тентуре имеют право носить малиновые штаны, и

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
H2Oя
08.12.2022 21:07

/*Код соответствует тексту задания из файла. Последовательность вводится в строку через знаки пробела, нажатие клавиши Enter заканчивает ввод последовательности. Программа НЕ проверяет корректность введенных данных*/

#include <iostream>

bool is_prime(const int n);

int main(int argc, char* argv[])

{

   int numb, n_of_pr_numb = 0;

   long int sum = 0;

   do

    {

       std::cin >> numb;

       if(is_prime(numb))

       {

           sum += numb;

           n_of_pr_numb++;

       }

   } while (std::cin.peek() != '\n');

   std::cout << "The arithmetic mean: " << (n_of_pr_numb == 0 ? 0 : sum * 1. / n_of_pr_numb);

}

bool is_prime(const int n)

{

   if (n <= 1)

   {

       return false;

   }

   for (int i = 2; i <= pow(n, 1/2); i++)

   {

       if (n % i == 0)

       {

           return false;  

       }

   }

   return true;

}

Основные ошибки/недочеты Вашей реализации:

В функции pr строка for ( a = 2 ; a<=n ; a++) неверна, т.к. на последнем шаге число всегда будут сравнивать с самим собой, правильно for ( a = 2 ; a<n ; a++). Ну и нет смысла проверять до a=n-1, достаточно проверить до √n(об этом есть целая теорема).По условию никакого вывода слов "Простое/Не простое" не требуетсяСтрока cout << "n = "; лишняя, т.к. даже если на ввод будет подано несколько чисел, на экран "n = " будет выведено лишь в начале. Лучше уточнить для пользователя формат ввода.Смысл функции arif неясен, она выводит на консоль какие-то непонятные пользователю данные, затем возвращает s/i[ВНИМАНИЕ! Так как s и i целочисленные, то s/i не является средним арифметическим, это будет лишь целая часть от него. Правильнее s * 1./i или static_cast<double>(s)/i], а затем выводит это значение. Зачем разрывать cout на две функции - неясноВвод данных не должен находиться в функции проверки числа на простоту(да и смысл разбиения программы на функции пропадает)
0,0(0 оценок)
Ответ:
Ольга5555555555
08.12.2022 21:07

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace example

{

   class Program

   {

       static void Main(string[] args)

       {

           double x = 0;

           Console.WriteLine("Введите число n");

           int n = int.Parse(Console.ReadLine());

           for (int i = 0; i < n; i++)

           {

               Console.WriteLine("Введите " + (i+1) +" число");

               x =x + int.Parse(Console.ReadLine());

                   }

           x = x / n;

           Console.WriteLine("среднее арифметическое целых чисел составило: "+ x);

           Console.ReadLine();

       }

   }

}

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота