Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
1 / 1 / 1
Регистрация: 10.12.2015
Сообщений: 91

Перевести с С++ на Python

04.02.2016, 13:55. Показов 2652. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание: вычислить скалярную величину по формуле
https://www.cyberforum.ru/cgi-bin/latex.cgi?G = \frac{1+\sum }{\sum_{}^{}}
элементы массива заполнить с помощью генератора случайных чисел. Сделал на С++, все в норме. Сделал на Пайтоне, вышел шлак..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <cmath>
 
const int n = 10;
float X[n];
 
double sum();
 
using namespace std;
 
int main()
{
cout << "Massiv X" << endl;
for (int i = 0; i < n; i++)
{
X[i] = rand() % 20 + sin(i) - 9;
cout << X[i] << " ";
}
 
cout << endl;
double g;
if (sum()!=0)
{ g = (1 + sum()) / (sum());
cout << "g=" << g << endl; }
else cout<<"Sum=0"<<endl;
}
 
double sum()
{
double S = 0;
 
for (int i = 0; i < n; ++i)
S += X[i];
 
return S;
}
Code
1
2
3
4
 Результат этой проги норм
Massiv X
-6 -2.15853 8.9093 6.14112 3.2432 5.04108 -3.27942 3.65699 0.989358 -7.58788 
g=1.11167
На пайтоне:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#Lab 7 variant 13
import math
import random
n=(input("Enter the count of elements in array: "))
a=[]
sum=0
for x in xrange(n) :
    a.append(x)
print "Array is: ", a
def sum( ):
    i=0
    while i<a:
        sum+=x[i]
    print "Summa: ",sum
    return sum
    if sum!=0:
        G=(1+sum())/sum()
        print("G = ",G)
    else:
        print("g=0")
Code
1
2
3
4
5
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python2.7/py_compile.py", line 117, in compile
    raise py_exc
py_compile.PyCompileError: Sorry: IndentationError: unexpected indent (prog.py, line 18)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.02.2016, 13:55
Ответы с готовыми решениями:

Перевести с c++ на Python
#include &lt;bits/stdc++.h&gt; using namespace std; int main() { #ifdef _DEBUG freopen(&quot;input.txt&quot;, &quot;r&quot;, stdin); ...

Перевести С++ на Python
Требуется вставить в данный массив на данное место данный элемент, сдвинув остальные элементы вправо. Входные данные В первой...

Перевести с C++ на python
Плохо разбираюсь в Питоне, помогите перевести пожалуйста код. vector&lt;int&gt; dp; vector&lt;int&gt; take; int f(const...

13
21 / 21 / 2
Регистрация: 31.12.2015
Сообщений: 100
04.02.2016, 14:54
n - это тип str, а xrange(n) ожидает тип int в качестве аргумента. Сначала sum = 0, т.е. объект int, потом sum объявляется как функция, которая нигде не вызывается. Я могу ошибаться, сам только учусь, причем другой версии языка, но import ни к чему...print("G = ", G) точно не должен выглядеть примерно как print("G = %s" % G) - ?...Короче, каша...
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
04.02.2016, 17:12
sum — зарезервированное слово.
import — зачем что-то импортировать если не использовать
def sum — определили функцию и нигде её не вызываете
return sum — поскольку инструкция безусловная код на этом остановился.

== Короче полная каша. Разберитесь с синтаксисом языка, а потом пробуйте что-то писать на нем.
1
1 / 1 / 1
Регистрация: 10.12.2015
Сообщений: 91
04.02.2016, 20:55  [ТС]
Marinero, подправил, выдает ошибку, не могу понять что это значит:
Code
1
2
3
4
5
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python2.7/py_compile.py", line 117, in compile
    raise py_exc
py_compile.PyCompileError: Sorry: IndentationError: unexpected indent (prog.py, line 16)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
n=int(input("Enter the count of elements in array: "))
a=[]
s=0
for x in xrange(n) :
    a.append(x)
print "Array is: ", a
def sum( ):
    i=0
    while i<a:
        s+=x[i]
    print "Summa: ",s
    return s
if sum()!=0:
    G=(1+sum())/(sum())
    print("G = %s" % G)
else:
    print("g=0")
0
21 / 21 / 2
Регистрация: 31.12.2015
Сообщений: 100
04.02.2016, 21:12
Я завтра тебе код напишу, сейчас я на работе просто.
1
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
04.02.2016, 21:32
Лучший ответ Сообщение было отмечено Nickname_2015 как решение

Решение

Nickname_2015, Смысл смотреть ошибки, когда в самой программе 0 логики…
Цитата Сообщение от Nickname_2015 Посмотреть сообщение
X[i] = rand() % 20 + sin(i) - 9
Это где? И вообще, напиши словами, что именно ты хочешь сделать, а то код такой кривой, как и формула в задании — ничего не понятно.

Добавлено через 7 минут
Python
1
2
3
4
5
from random import randint
from math import sin
 
print(1 + 1 / sum(randint(1, 20) + sin(i) - 9 
                  for i in range(int(input("Enter the count of elements in array: ")))))
1
21 / 21 / 2
Регистрация: 31.12.2015
Сообщений: 100
04.02.2016, 21:41
Формула-то дана в задании, или придумана самостоятельно? Я имею ввиду формулу случайного числа.
1
1 / 1 / 1
Регистрация: 10.12.2015
Сообщений: 91
04.02.2016, 22:12  [ТС]
xPANICx, с методички на С взял, а в задании дана формула для нахождения скалярной величины.
Marinero, Хочу чтоб прога вычисляла G.
Задание: вычислить скалярную величину с помощью данной формулы G=1+S(x[i])/S(x[i]),
элементы массива заполнить с помощью генератора 10 случайных чисел+исп.подпрограмму-функцию. Сделал на С++, выдает нужный результат:
Code
1
2
3
4
 
Massiv X
-6 -2.15853 8.9093 6.14112 3.2432 5.04108 -3.27942 3.65699 0.989358 -7.58788 
g=1.11167
а нужно на пайтоне сделать, я совсем недавно начал изучать пайтон, знаю, что большую роль играют ПРОБЕЛЫ.
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
04.02.2016, 23:28
Nickname_2015, Да сделано уже, глазки подыми!
1
21 / 21 / 2
Регистрация: 31.12.2015
Сообщений: 100
05.02.2016, 08:24
Лучший ответ Сообщение было отмечено Nickname_2015 как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#encoding: utf-8
#language: russian
#Python version: 3.4.4
 
#Определяем функцию перед её вызовом, поскольку это интерпретатор (лучше в самом начале)
#Функция считает сумму элементов массива, а затем и значение G
#В случае, если сумма элементов массива = 0, то G = 0
def calculate():
total = 0
    for x in my_lab_array:
        total += x
    try:
        calculate.G = (1 + total)/total
    except ZeroDivisionError:
        calculate.G = 0
    return calculate.G
 
#Начало программы.
#Запрашиваем кол-во(size)элементов массива.
#Защищаемся от ввода неверного типа данных.
choice_acceptable = False
while not choice_acceptable:
    size = input("Введите кол-во элементов массива: ")
    try:
        size = abs(int(size))
        choice_acceptable = True
    except ValueError:
        print("Неверно. Повторите ввод и введите целое число.")
 
print("Ввод произведен успешно. Число элементов в массиве: ", size)
 
#Создаем массив в виде списка с кол-вом элементов = size
#Наполняем его случайными числами
#Выводим массив на экран
from random import randint
from math import sin
my_lab_array = []
for x in range(size):
    element = randint(0,20) + sin(x) - 9
    my_lab_array.append(element)
print("Массив:")
print (my_lab_array)
 
#Вызываем функцию, определенную в начале программы
calculate()
print("G = ", calculate.G)
 
#Замечания по коду:
#1) См. версию питона вверху - синтаксис print и input в версии 2 другой.
#   Может быть есть и другие различия.
#2) Допускается ввод нуля. Тогда массив будет пуст, но G=0 всё равно.
#   Я не знаю, верно ли это по условиям задачи.
#3) randint(0,20) генерит случайные числа в диапазоне 0 <= x <= 20,
#   в каком диапазоне генерятся значения в коде на C++ я не знаю, проверь это.
Добавлено через 17 минут
Потерял-таки отступ в строке 9, поправь самостоятельно.
1
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
05.02.2016, 14:52
xPANICx, Нифига себе, наворотил… Вся задача в 1 строку помещается, а тут больше 20 (даже если комментарии не считать)…
1
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
05.02.2016, 17:40
Цитата Сообщение от Marinero Посмотреть сообщение
sum — зарезервированное слово.
Не то чтобы следует называть переменные sum, но это не зарезервированное слово.
1
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
05.02.2016, 17:50
Цитата Сообщение от Somebody Посмотреть сообщение
sum, но это не зарезервированное слово.
Ну да это не зарезервированное слово конечно, это название стандартной функции, но сути это не меняет. Так делать нельзя, а делаешь, тем более бездумно (как в данном случае), то это может привести к печальным последствиям.
1
21 / 21 / 2
Регистрация: 31.12.2015
Сообщений: 100
05.02.2016, 21:20
Цитата Сообщение от Marinero Посмотреть сообщение
Нифига себе, наворотил…
Это всё Лутц
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.02.2016, 21:20
Помогаю со студенческими работами здесь

Перевести с python на c++
def height(man): if man not in p_tree: return 0 else: return 1 + height(p_tree) p_tree = {} n =...

Перевести с Python на с++
list3 = print('Введите элементы множества X(через пробел): ') list1 = input().split() len1 = len(list1) ...

Перевести с Python на с++
import sys list1 = list2 = print(&quot;инективнисть(1) сюрективнисть(2)биективнисть(3)?&quot;) a = int(input()) if a == 1: ...

Перевести на Python
помогите перевести на Python var i,j,k,n,o:integer; a,t:longint; begin write('Введите k=');readln(k); t:=0;i:=0; repeat t:=t+1; ...

Перевести в python
Rectangle ob = new Rectangle(3, 5); - язык C# Rectangle- class как создать такую же переменную в python?Буду очень благодарен!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru