Social Icons

Mostrando postagens com marcador Algorítimos. Mostrar todas as postagens
Mostrando postagens com marcador Algorítimos. Mostrar todas as postagens

Python - Conceitos e Iniciação


Python é uma linguagem de programação de alto nível, open source, multiplataforma, interpretada e com uma extensa biblioteca padrão. Criada por Guido van Rossum em 1989, com a primeira versão lançada em 1991, Python, uma homenagem ao grupo humorístico inglês Monty Python, vem com uma sintaxe elegante, simples e clara, sem aqueles montes de “{” e “}” (chaves) por todo o código.

Existem várias linguagens de programação para os mais diversos fins e quem está querendo começar, não sabe qual escolher. Uma das febres é o Java, mas a sua sintaxe é complexa para quem nunca teve contato com programação.
Existem linguagens mais simples como o Pascal, mas não é mais tão usada e está defasada. Por isso o indicado é poder usar uma linguagem atual, que já usufrui das novas tecnologias, mas que seja fácil de aprender e acredito que não existe linguagem que se encaixe mais nesse perfil do que o Python.
O Python ajuda e muito a aprender noções básicas de programação, como também permite a criação de sistemas robustos com bancos de dados. A sua sintaxe é muito simples e lógica. Ele é baseado em palavras curtas em inglês, como print, function, dentre muitas outras.

 Principais características do Python

  • Sintaxe elegante, simples e clara: A sintaxe do Python facilita e encoraja a legibilidade do código, o que o torna mais fácil de manter e reutilizar;
  • Multiparadigmática: OOP, estruturada e procedural;
  • Tipagem forte e dinâmica;
  • Estruturas de dados de alto nível: tuplas, listas de dicionários;
  • Fácil de aprender;
  • Interpretador interativo: shell;
  • Blocos de código são delimitados por endentação!
É possível trabalhar em Python desde pequenas agências até grandes empresas, como Google, Industrial Light & Magic, Nortel, Nokia, Sepro, Interlegis, isto só para citar algumas…Aliás, Python é uma das três linguagens oficiais do Google, sendo adotada na primeira implementação do motor de busca, e hoje é a tecnologia que move o YouTube, entre tantos outros projetos da empresa.
  • Por que Python?
Essa resposta depende do ponto de vista de cada pessoa, mas na minha opinião pessoal eu escolhi a linguagem Python por ser clara e simples de se aprender.
Poderiamos utilizar também a linguagem Java, mas esta dá acesso limitado as funções do sistema operacional, tornando os aplicativos mais limitados.
Além de disso, podem os ainda, se desejarmos, utilizar pontes de outras linguagens com python para suprir quaisquer que sejam as necessidades do aplicativo.
Se você quer usar coisas como Wi-Fi, Bluetooth, etc.. no java terá na minha opnião uma dificuldade maior, pois a implementação por hardware tem q ser puzada do C, então ou você escreve tudo em C ou Mistura tudo com java, mas pode também fazer tudo apartir do Python, como é o caso de muitos programas que usam porta serial por exemplo, para linux, e alguns aplicativos para Symbian...
  • O que podemos fazer com o tal do Python ?
Posso citar alguns exemplos: podemos no caso de aparelhos  Celulares com Symbian manipular eventos de teclas, fazer conexões bluetooth ou wi fi, mandar mensagens SMS, acessar a câmera, fazer chamada s, utilizar informações de contatos e calendário, localizar o aparelho através do sinal GPRS, desenhar gráficos na tela, enfim ... poderia passar o dia todo aqui isso sem contar a aplicação dele em computadores ..

Vamos Trabalhar? 

Sabermos como funciona a sintaxe da linguagem e nos nos familiarizarmos mais.


Para Windows Pode se baixar o IDE Python Clicando aqui.
Sua instalação é simples, igual a qualquer outro instalador (Next, Next, Finish).
Para Linux: você já tem o Python instalado por padrão, diversos pacotes que movem o Linux são feitos em Python.Para Achar seu Python no Linux faça Assim:

- CRTL+ALT+T(abrindo terminal);
- Digite "Python" Sem Aspas, e seu terminal ficará +- assim:
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
A melhor forma de aprender a programar é usando um interpretador em modo interativo. Dessa forma você pode digitar comandos linha por linha e observar a cada passo como o computador interpreta e executa esses comandos. Por tanto vamos ao interpretador:

1
2
3
4
5
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
A partir dai, é só executar os comandos. Vamos começar com alguns comandos bem básicos, para nos acortumarmos com o interpretador:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15

>>> 2 + 2
4
>>> (1 + 2) * 3
9
>>> list = ["Macelo", 17, "Engenheiro"]
>>> print list[0]
Marcelo
>>> print list[1]
17
>>> print list[2]
Engenheiro
>>> print list[1:]
[17, 'Engenheiro']
>>> print list[:2]
['Marcelo', 17]
>>>
Para sair do interpretador basta apertar Crtl + d ou executar quit().

Eu estou estudando sobre Python também, e conforme for descobrindo coisas interessantes vou postando aqui para compartilhar e aprender também!
Qualquer dúvida ou sugestões é só comentar.

2.2) Resolvendo alguns Exercícios Parte1

Vamos resolver aguns exercício achados na internet, para aprender melhor, na prática mesmoO...


1. Faça um algorítimo que imprima na tela a soma de números inteiros 35 e 47:


algoritimo "Problema_Exemplo"
var 
n1,n2:inteiro
inicio 
n1 := 35
n2 := 47  //atribuindo os valores para as variáveis  
 escreva(n1,n2) /mandando escrever as variáveis

fimalgoritimo 


Análise:

Usou-se ":="  lido Recebe, por exemplo n1:=35 fica N1 recebe 35, é atribuido um valor a variavel inteira N1.

Depois de atribuidos os valores são mostrados na tela como o pedido.

O Mesmo Poderia ter sido feito sem variaveis mas como queria deixar essa parte mais clara logo ja coloquei assim, poderia ser assim também.




algoritimo "Problema_Exemplo"
var 
inicio 
 escreva("35 e 47") /mandando escrever as variáveis

fimalgoritimo 




E se esse mesmo algorítimo pedisse para que você escrevesse um valor e depois ele fosse mostrado? Aí sim era de uso obrigatório variaveis:

algoritimo "Problema_Exemplo"
var 
n1,n2:inteiro
inicio 
leia(n1,n2) //lendo as variaveis em vez de definir você mesmo.                                 
escreva(n1,n2) /mandando escrever as variáveis

fimalgoritimo 
________________________________________________________

________________________________________________________

2. Faça um Algoritimo que execute e imprima a soma de 2 números:

Obs: Vamos usar como base o exercício anterior para ler as variaveis n1 e n2.


algoritimo "Problema_Exemplo"
var 
n1,n2,soma:inteiro
inicio 
leia(n1,n2) //                                                                                                                  

soma := n1+n2   //cálculo da soma de 2 variaveis digitadas.                                                                                  
escreva("A Soma é: ",soma)

fimalgoritimo 

Agora faça soma,multiplicação,divisão, e subtração de 2 números quaisquer digitados pelo usuário:



algoritimo "Problema_Exemplo"
var 
n1,n2,soma,subtracao,multiplicacao:inteiro
divisao : real
inicio 
leia(n1,n2)                                                                                                         
soma := n1+n2   //cálculo da soma de 2 variaveis digitadas.                                 

subtracao := n1-n2   //cálculo da subtração de 2 variaveis digitadas.   
multiplicacao := n1*n2   //cálculo da multiplicação de 2 variaveis digitadas.  
divisao := n1/n2   //cálculo da divisão de 2 variaveis digitadas.                                                                                                                                                                                                                                                                
escreval("A Soma é: ",soma)
escreval("A Subtração é: ",subtracao)
escreval("A Multiplicação é: ",multiplicacao)
escreval("A Divisão é: ",divisao)  


fimalgoritimo 


 Análise: Ao final desse código repare na parte de declaração de variáveis, destaquei que divisão está como REAL, por quê?


Resposta simples e matemática: Qualquer número dividido por qualquer número pode e geralmente alertórios gerarão um número decimal, ou seja REAL.

Se você digitasse 4 / 2 iria dar 2 , mas e se fosse 6 / 4 ?  o Número seria 1,5 que é Real, teste colocar divisao como inteiro e o programa VisuALG ja vai te dar um erro, depois tente colocar algum número decimal, vai trancar e sair do programa, pois ainda não está 1/1000 de ser um programa completo e sim apenas um protótipo para desenvolvimento de raciocício lógico de programação.

1.3.3) Pseudo Linguagem

Pseudo Linguagem

Este modo de representar algoritmos procura empregar uma linguagem que esteja o mais próximo possível de uma linguagem de programação de computadores de alto nível mas evitando de definir regras de construção gramatical muito rígidas. A idéia é usar as vantagens do emprego da linguagem natural, mas restringindo o escopo da linguagem. Normalmente estas linguagens são versões ultra reduzidas de linguagens de alto nível do tipo Pascal ou C. No próximo capítulo veremos um exemplo de uma destas pseudo-linguagens. Barra Horizontal Azul

A Pseudo Linguagem a--

Para escrever estes exemplos de algoritmos usaremos uma pseudo linguagem de programação, que chamaremos de a--. Nesta linguagem definimos um número mínimo de comandos, o suficiente para descrever os algoritmos exemplos. Os dados não tem tipo definido, como em C e PASCAL. A linguagem como o C, que é utilizado no resto do programa é baseada em funções. Todos os algoritmos são descritos por funções, sendo que a função básica, e que deve existir sempre, pois ela é sempre a primeira a ser executada é a função principal.
Um exemplo simples da forma geral de um algoritmo em a-- é o seguinte:

principal ()
início
    imprimir "Olá Mundo."
fim
O algoritmo começa com a função principal que é a função obrigatória em todos os algoritmos. Os parênteses após o nome principal são normalmente usados para delimitar a lista de argumentos, também chamados parâmetros que a função irá receber para executar a sua tarefa. Neste caso a função não está recebendo nenhum parâmetro. Esta algoritmo executa um único comando que imprime o texto "Alo mundo" em um dispositivo qualquer de saída de dados.

1.3.2) Fluxogramas

Fluxogramas

Esta forma de representação de algoritmos emprega várias formas geométricas para descrever cada uma das possíveis açoes durante a execução do algoritmos. Existem algumas formas geométricas que são empregadas normalmente e que estão mostradas na Figura abaixo. Cada uma destas formas se aplica a uma determinada ação como está indicado. Existem outras formas que podem ser aplicadas, no entanto nesta apostila estas formas serão suficientes para os exemplos que serão mostrados.
Formas utilizadas em Fluxogramas
Como primeiro exemplo de um algoritmo descrito por meio de fluxogramas vamos considerar o exemplo do algoritmo para decidir o que fazer em um dia de domingo. A Figura a seguir mostra o fluxograma equivalente à descrição feita por meio da linguagem natural.

Fluxograma para decidir o que fazer em um dia de domingo.
Outro exemplo de um algoritmo descrito por meio de fluxogramas é o problema de calcular a solução da equação de primeiro grau
ax+b=0
que vale
x=-(b/a)
se a for diferente de zero. A Figura abaixo mostra um possível algoritmo para resolver este problema.

Fluxograma para equação do primeiro grau 
 
 
 
 
 
Fluxogramas Engraçados Para descontrair...
 
Clique para Aumentar
 

1.2) Para Que Serve um Algorítimo?

O Algorítimo é a Idéia, o Rascunho do Programa.
Pode-se Interpretar que:

Algorítmo + Linguagem de Programação = PROGRAMA

O mesmo Algoritimo serve para todas linguagens de programação.


Serve principalmente para sairmos do problema e chagarmos ao PROGRAMA.




Qualidades de um Bom Algoritmo:


1) Definição Perfeita: Deve descrever exatamente quais são instruções que devem ser executadas e em que sequência.Deve ser colocado o maior número possivel de informações e definiçoẽs.

2) Ausência de Ambiguidade: Não se deve deixar dúvida alguma sobre o que deve ser feito. A Ambiguidade acerca do que deve ser feito também pode levar a uma interpretação errada.

3) Eficácia: Consegue Resolver o Problema de toda forma possivel que ele se apresenta? Tudo que for alterado ainda assim irá resolver o mesmo?

4) Eficiência: Resolver Sempre com mínimo de recursos possíveis antes da perda de qualidade. Para computação não adianta de nada saber o algoritmo que calcula o milionésimo número de Pi se você o fez para um computador que ainda não existe. Isso é só um exemplo, o que implica é a quantidade de Processamento necessitará seu Algoritmo e sempre que o criar crie da menor maneira possível e pense em mais umas 2 formas de resolve-lo para comparação.



Um exemplo rápido de simplificação:


Você tem que resolver em algum algoritimo uma conta assim;



N1 +  ( 12 * 10 ) / N2 + (N7 * 32) / (45+45)

Só um exemplo, percebe=se que N1,N2 e N7 seram respectivamente incluidos pelo usuário no programa então são váriaveis, você não tem como prever o que resultara de uma variavém com outra ou com qualquer número a menos que seja um campo limitado de números...
Simplificando pode-se obter: 

N1 + 120 / N2 + (N7 * 32) / 90

Perceba que foi resolvido 12*10 para o processador, ele não precisa mais calcular isso então você simplificou para ele e ele necessitara de menos recursos.

O que é Algorítimo?

O que é Algorítimo?
Algoritmo é uma sequência de passos simples, bem estruturados e não ambíguos,que, quando executados em ordem correta, fornece resolução de algum problema.

Como Assim?

Bom, eu lembro de ter lido que em tempos antes de Cristo, um homem propôs que poderíamos executar diversas tarefas da seguinte maneira:

Tendo algumas pessoas, dizemos a cada uma uma tarefa muito simples, e cada uma executa sua tarefa, em ordem. Nenhuma sabe o processo todo. Mas espera-se que no fim, o processo inteiro se complete!

Um exemplo:

Cada número representa uma pessoa.

 1: escreve G em uma folha e entrega a 2
 2: escreve L em uma folha, coloca no fim das folhas, e as entrega a 3
 3: escreve O em uma folha, coloca no topo das folhas, e as entrega a 4
 4: escreve A em uma folha, coloca no fim das folhas, e as entrega a 5
 5: inverte a ordem das folhas
Se você observar bem, leremos "ALGO" no final, folha por folha.
Apesar de cada passo parecer desconexo, no fim obteve-se um resultado!

Essa lógica por trás da sequência de passos que é chamada de lógica de programação. Claro que geralmente o que queremos obter é algo mais complexo, e os tipos de passos que dispomos são mais bem definidos e mais simples.


Interessante!

Agora verifique um exemplo com um laço, ou loop:
 
Há algumas pedras, de diferentes tamanhos

 1: se há pedras, escolhe a menor e dá para 2
 2: coloca a pedra no fim de uma fila, e pede a 1 outra pedra

Perceba que nesse caso, 1 vai escolher primeiro a menor pedra de todas, e 2 vai colocá-la em primeiro lugar na fila.
Em seguida, 1 escolhe a segunda menor pedra (para 1, é a menor pedra que tinha, mas no total, ela é a segunda menor, afinal a menor já foi), e 2 a coloca atrás da primeira pedra, na fila.
No fim, teremos que as pedras estarão em ordem crescente!
Este foi um exemplo de algoritmo de ordenação.

E no computador?

Utilizamos as linguagens de programação para transcrever o passo-a-passo que o computador deve executar, e é isso que ocorre.
Note que quando compilamos um programa, é gerado um outro código, ainda mais simples, porque o computador compreende e é capaz de executar apenas uma pequena quantidade de comandos muito simples.
No entanto, unidos, esses comando muito simples se tornam algo maior e que faz sentido!

Algo importante a notar é que os exemplos dados aqui estão em alto nível, ou seja, há comandos que são relativamente complexos, e que no computador precisaríamos separá-los em instruções ainda menores e mais simples. Mas para nós, humanos, não é difícil compreender esses passos em alto nível, assim fica mais fácil escrevê-los desta forma.

Perceba também que apesar de se falar em algoritmos de computador, um algoritmo não pressupõe um computador! (É só lembrar do homem antes de Cristo, já criando a lógica de programação! XD)

Dois algoritmos podem ter o mesmo resultado?

Sim!
Pense no primeiro exemplo dado aqui!
Um meio mais fácil de formar a palavra "ALGO" seria cada pessoa escrever uma letra, na ordem, não?
Pois bem, faça isso e obterá o exato mesmo resultado que o outro algoritmo!







----------------------------------------------