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

Составьте алгоритм и программу вычисление обьема куба, если задана длина его ребра. в питон

👇
Ответ:
gxgvxf
gxgvxf
15.02.2020

Линейный алгоритм — алгоритм, в котором вычисления выполняются ... Известны длины трёх сторон треугольника. ... Покажем его использование на следующем примере.

4,8(63 оценок)
Открыть все ответы
Ответ:
stasvikulyа
stasvikulyа
15.02.2020

#include <iostream>

#include <vector>

#include <set>

#include <cmath>

using namespace std;

bool check(double a, double b, double c){

   return !(a >= b + c || b >= a + c || c >= b + c);

}

double square(double a, double b, double c){

   double p = (a+b+c)/2;

   return sqrt(p * (p-a) * (p-b) * (p-c));

}

bool is_palind(int k){

   string s = to_string(k);

   for(int i = 0; i < s.length() - i - 1; i++)

       if(s[i] != s[s.length()-i-1])

           return false;

   return true;

}

void solve1(){

   vector<double> lines(4);

   double ans = -1;

   for(auto &i : lines) cin >> i;

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

       for(int j = i + 1; j < 4; j++)

           for(int k = j + 1; j < 4; j++)

               if(check(lines[i],lines[j],lines[k]))

                   ans = max(ans,square(lines[i],lines[j], lines[k]));

   ans == -1 ? cout << "No solution" : cout << ans;

}

void solve2(){

   set<int> s;

   for(int i = 1000; i < 10000; i++)

       if(is_palind(i))

           s.insert(i);

   int n;

   cin >> n;

   s.find(n) != s.end() ? cout << n : cout << *upper_bound(s.begin(),s.end(),n);

}

4,4(32 оценок)
Ответ:
SUPERMODEL
SUPERMODEL
15.02.2020
Ошибка 1

using namespace::std;

Верно использовать пространство имён таким образом:

using namespace std;

Ошибка 2

Вы объявляете итератор ещё перед циклом, причём вместе с массивом. Надо понимать, что итератор - это счётчик, int. А массив - это совокупность таких частичек int. Не нужно всё под одну крышу загонять. Объявляйте итераторы (если они Вам не нужны, например, для результирующих счётов или прочего - по ситуации) в самом цикле, не мучайте глаза программистов.

Правильно объявлять так:

int arr[] = {1,2,3,4,5,6,7,8,9};

for(int i = ..)

Ошибка 3

Вы начинаете цикл с 1, хотя Вам нужно пройтись по всему массиву, начиная с самого первого элемента. Поскольку всё строится на десятичной системе счисления (от 0 до 9), то первый элемент будет иметь номер 0. Следовательно, цикл следовало бы начать с нуля.

Правильно объявить цикл нужно так:

for(int i = 0; ..)

Ошибка 4

Поскольку вы не указываете размер массива, а потом считаете 10 элементов (хотя это уже неправильно, цикл возьмёт один лишний, уже выходящий из заданного Вами массива кусочек и отнимет от него 20)

Правильно было бы объявлять условие цикла так:

for(int i = 0; i < (sizeof(arr)/sizeof(int)); i++){/*...*/}

То есть мы берём размер массива в байтах, размер типа int в байтах (по сути это константа - 4 байта, но на разных версиях оси она может соответствовать разным значениям) и делим размер массива на размер типа, массив которого мы создали (в нашем случае - int)

А лучше всего вынести выражение sizeof(arr)/sizeof(int) в отдельную переменную:

int arraySize = sizeof(arr)/sizeof(int);

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

Разница в том, что при каждой итерации цикл считает заново размер массива - а это лишние операции.

Ошибка 5

Так как Вы хотите вывести каждое результатирующее число через пробел,  Вам нужно выводить его через каждую итерацию цикла, а не после него. Ваша ошибка будет заключаться в том (если не учитывать предыдущие), что цикл инкрементирует переменную i до 10 и выведет на консоль arr[i], то есть arr[10] элемент, которого как раз-таки нет в массиве (объяснил в 3 ошибке)

Правильно было бы выводить так:

for(int i = 0; i < arraySize; i++){

arr[i] = arr[i] - 20;

cout << arr[i] << " ";

}

Замечание 6

Функция типа int main() должна всегда возвращать что-то. Это стандарт языка.

То есть, правильно было бы в конце добавить:

return 0;

Итоговый код и проверка представлены на в приложении:


Есть массив, не получается от каждого элемента отнять 20? сделать на с++ #include pch.h #include u
Есть массив, не получается от каждого элемента отнять 20? сделать на с++ #include pch.h #include u
4,8(3 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ