[Ajuda] Script matemático em Python

Iniciado por AliceAyanami, 09 de Setembro de 2008, 01:02

tópico anterior - próximo tópico

AliceAyanami

Olá,
Começei a estudar python por conta própria há alguns dias, e me deparei com um problema que não consigo resolver. Preciso de um script que faá o seguinte:
1 - Permita ao usuário definir um número (vou chamar esse número de A)
2 - Verificar se esse número é igual a "4"
3- Se for
  4 - Exibir "2"
5 - Se não for
  6 - Dividir A por 2 (o resultado será B)
  7 - Subtrair de B 0.5 (o resultado será C)
  8 - Multiplicá-lo por ele mesmo (o resultado será D)
  9 - Comparar D com A
  10 - Se for igual
    11 - Exibir C
  12 - Se for diferente
    13 - Definir B igual a C
    14 - Voltar para o passo 7

Tentei de alguma formas, mas acho que estou esbarrando em obstáculos de programação, não de logica. Será que alguém pode me ajudar?

:)
Usuário Ubuntu e SliTaz

kakita

A = int(raw_input('A: '))
if A == 4
        print "2"
else
        A/2=B
        B-0.5=C
        C*C=D
        if D==A
                print C
        else
        o passo 13 e 14 não são fáceis e agora não tenho tempo para mais, u não testei o script por isso não sei se funciona


para o passo 14 acho que tens de usar um while.

Mostra o que fizeste, fica mais fácil de ajudar

AliceAyanami

O que eu conseguí fazer foi isso:

CitarA = input # O Usuário define um número
if A == 4: # Se o número definido for igual a 4
   print "2" # Exibe "2"
else: # Se o número não for igual a 4
   B=A/2 # Define B como metade de A
   C=B-0.5 # Define C como B-0.5
   D=C*C 3 # Define D como CxC (C vezes C)
   if D==A: # Se D for igual a A
      print C # Exibe C
   else: 3 # Se D não for igual a A
      B=C # Define que B é igual a C

# Agora eu preciso fazer com que o programa volte à linha 6 (C=B-0.5 # Define C como B-0.5), mas não tenho idéia de como fazê-lo.
# Quando programava coisas bobas em arquivos de lote (MS-DOS), havia um comando que me permitia nomear blocos do código - era só colocar dois pontos (:) seguidos de um nome da minha escolha
# Ex.:
# :Início
# @echo "Esse programa vai repetir essa mensagem infinitamente"
# goto Início
Usuário Ubuntu e SliTaz

kakita

Citação de: AliceAyanami online 10 de Setembro de 2008, 05:38
O que eu conseguí fazer foi isso:

CitarA = input # O Usuário define um número
if A == 4: # Se o número definido for igual a 4
   print "2" # Exibe "2"
else: # Se o número não for igual a 4
   B=A/2 # Define B como metade de A
   C=B-0.5 # Define C como B-0.5
   D=C*C 3 # Define D como CxC (C vezes C)
   if D==A: # Se D for igual a A
      print C # Exibe C
   else: 3 # Se D não for igual a A
      B=C # Define que B é igual a C

# Agora eu preciso fazer com que o programa volte à linha 6 (C=B-0.5 # Define C como B-0.5), mas não tenho idéia de como fazê-lo.
# Quando programava coisas bobas em arquivos de lote (MS-DOS), havia um comando que me permitia nomear blocos do código - era só colocar dois pontos (:) seguidos de um nome da minha escolha
# Ex.:
# :Início
# @echo "Esse programa vai repetir essa mensagem infinitamente"
# goto Início

Essa primeira linha funciona assim? acho que tem de ser A = int(raw_input('A: ')),  quanto ao voltar para a linha 6, estuda bem e procura no google a propriedade while do python, é isso que faz com que o programa fique em loop, aqui no programinha parecido com esse em tenho um while no principio mas tu tens de meter na linha 6 acho eu, investiga melhor

Deixo aqui o meu programa pode ser que te ajudde

#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
#Criado por Miguel Soares
#Fórmula Resolvente da Equação do Segundo Grau
#Versão 0.1
import sys
while 1:
a = int(raw_input('A: '))
b = int(raw_input('B: '))
c = int(raw_input('C: '))
d=b**2-4*a*c
if d < 0:
print 'Impossível'
else:
x1=(-b+d**0.5)/(2*a)
x2=(-b-d**0.5)/(2*a)
print 'Discriminante', d
print "X1=", x1
print 'X2=', x2
z = raw_input('ENTER para continuar, exit para sair: ')
if z == "exit":
print "Adeus."
raw_input('Pressione ENTER')
sys.exit()


Darcamo

Se tem uma parte do código que você quer executar novamente, o melhor é criar uma fubção.

Um exemplo de função que recebe dois números e retorna a soma deles seria
def soma_dois_numeros(numero1,numero2):
    saida = numero1+numero2
    return saida


Poderia ser apenas
def soma_dois_numeros(numero1,numero2):
    return (numero1+numero2)


Coloca a definição da função no início do script.