• Nenhum resultado encontrado

GET002 Informática básica

N/A
N/A
Protected

Academic year: 2022

Share "GET002 Informática básica"

Copied!
69
0
0

Texto

(1)

GET002 – Informática básica

Prof. Renato Pimentel 1

o

Semestre – 2019

Sumário

1 Apresentação 2

1.1 Objetivos . . . 2

1.2 Bibliografia sugerida . . . 2

1.3 Conteúdo . . . 3

1.4 Avaliação: aproveitamento e frequência . . . 4

1.5 Logística . . . 4

2 Introdução 5 2.1 Informática . . . 5

2.2 Computação . . . 5

2.3 O computador . . . 6

2.3.1 Componentes de um sistema computacional . . . 6

2.3.2 Hardware . . . 7

2.4 Programação . . . 12

2.5 Referências . . . 13

3 O sistema operacional 13 3.1 MS Windows . . . 15

3.2 Outros SOs . . . 18

4 Internet 19 5 Conceitos básicos de algoritmos 21 5.1 Representação . . . 22

6 Tipos de dados e variáveis 28 6.1 Representação em memória . . . 31

7 Linguagens de programação 33 7.1 Níveis de linguagens de programação . . . 33

7.2 Compilação . . . 35

7.3 Interpretação . . . 36

(2)

8 Programação estruturada 38

8.1 Exercícios sugeridos . . . 42

8.2 Referências . . . 42

9 Linguagem Python 42 9.1 Referências . . . 44

10 Variáveis, comandos básicos e expressões 44 10.1 Variáveis no Python . . . 44

10.2 Comandos de entrada e saída de dados . . . 48

10.3 Documentação . . . 50

10.4 Operadores . . . 51

10.5 Módulos . . . 56

10.6 Referências . . . 57

11 Comandos condicionais 57 11.1 Introdução . . . 57

11.2 O comandoif . . . 58

11.3 O comandoelse . . . 60

11.4 Aninhamento deif. . . 63

11.5 O comandoelif . . . 67

11.6 Referências . . . 69

1 Apresentação

1.1 Objetivos

Objetivos

• Desenvolver habilidades para a utilização do computador como ferramenta de trabalho em sua atividade profissional;

• Capacitar o aluno a desenvolver programas em umalinguagem procedimen- tal, empregando adequadamente os recursos oferecidos por esta linguagem.

1.2 Bibliografia sugerida

• LUTZ, M.; ASCHER, D. Aprendendo Python. Porto Alegre: Bookman, 2007.

• MENEZES, N.N.C.Introdução à Programação com Python: algoritmos e lógica de programação para iniciantes. São Paulo: Novatec, 2010.

• ASCENCIO, A. F.; CAMPOS, E. A. V. de. Fundamentos da programação de computadores: algoritmos, Pascal, C/C++ e Java. São Paulo: Prentice Hall, 2007. 434p.

(3)

• FORBELLONE, A. L. V.; EBERSPÄCHER, H. F. Lógica de programa- ção: a construção de algoritmos estruturas de dados. São Paulo: Pearson Prentice Hall. 2000. 196p.

• CAPRON, H. L.; JOHNSON, J. A.Introdução à informática. São Paulo:

Pearson Prentice Hall, 2004. 350p.

1.3 Conteúdo

Ementa do curso

• Noções sobre os componentes de computadores;

• Uso de softwares (sistemas operacionais, internet e outros);

• Noções de algoritmos e lógica para resolução de problemas;

• Tipos de dados, Variáveis e constantes;

• Linguagem de programação:

– Expressões e operadores;

– Estruturas de controle: Estruturas básicas, Estruturas condicionais e estruturas de repetição;

– Estruturas básicas de dados: vetores, matrizes e registros;

– Funções;

– Arquivos.

Conteúdo previsto

• Introdução à computação

• Softwares e Internet

• Algoritmos e programas

• Compilação, programa fonte e programa objeto

• Variáveis, constantes, operadores

• Expressões aritméticas e lógicas

• Comandos de atribuição

• Comandos de entrada e de saída

• Estruturas de seleção (condicionais)

• Estruturas de repetição

• Variáveis compostas (listas,strings, etc.)

• Funções

• Manipulação de arquivos

(4)

1.4 Avaliação: aproveitamento e frequência

• Através de provas teóricas (escritas) e práticas de laboratório.

• 3 provas teóricas: 30, 30 e 40 pontos.

– 18/04 (P1) – 23/05 (P2) – 11/07 (P3)

• Fixação do aprendizado: Práticas em laboratório ao longo do semestre.

• Nota final (aproveitamento):

N F =P1 +P2 +P3

Frequência

• O aluno que tiver frequência inferior a 75%é reprovado por faltas.

• A chamada será feita em sala, pelo professor, sempre que decorridos em torno de 15 minutos do início da mesma. O aluno que chegar após a chamada, ou não respondê-la, ficará com falta.

• Falta em dia de prova: o aluno somente terá direito a fazer prova em nova data caso apresente justificativa no setor de graduação e/ou coordenação do curso, que encaminhará comunicação por escrito ao professor quando julgá-la plausível.

• É responsabilidade do aluno controlar sua frequência, de modo a evitar reprovação por falta.

1.5 Logística

Aulas

• Quintas-feiras: teóricas (08:50 a 10:40) –Sala 3Q-110

• Segundas-feiras: práticas (08:50 a 10:40) –Lab. 3Q-104 Atendimento e outras informações

• Professor: Renato Pimentel

– Página: http://www.facom.ufu.br/∼rpimentel – E-mail: rpimentel @ ufu . br

• Atendimento (agendar previamente através de e-mail):

– Terças-feiras, 09:50 até 10:40, sala 1B139

(5)

– Quartas-feiras, 14:00 até 15:40, sala 1B139 – Quintas-feiras, 18:00 até 18:50, sala 1B139

• Material da disciplina:

– http://www.facom.ufu.br/∼rpimentel>Ensino>2019/1>GET002 – Informática Básica

– Moodle: https://www.moodle.ufu.br/course/view.php?id=5380(ca- dastre-se e inscreva-se na disciplina! Chave de inscrição: get002- 2019-1)

2 Introdução

2.1 Informática

• Informática: ciência que estuda métodos para o tratamentoautomático e racionaldainformaçãopormeios computacionais.

• Principal instrumento de trabalho: o computador. Tradução do neolo- gismo informatique, criado em 1966, na França, fruto da junção entre as palavrasinformaçãoeautomática.

Informática

Tratamento da informação por meios automáticos

Informação + Automática

Figura 1: O termo Informática

2.2 Computação

• Dados⇒Informações vindas do usuário ou mesmo de outras origens;

• Processamento ⇒transformação dos dados, de acordo com os desejos do usuário ou de outra máquina;

• Resultados⇒aquilo que vem do processamento, e que servirá aos propó- sitos do usuário.

Dados

Dados

Processamento Processamento

ResultadosResultados

(6)

2.3 O computador

Equipamento eletrônico capaz de processar (manipular) dados (entrada), de acordo com um conjunto de instruções, e transformá-los eminformação(saída) útil, podendo armazená-los para uso posterior.

• Três componentes principais:

– Hardware: a parte física, o equipamento que compõe o computador;

– Software: a parte lógica, os programas: conjuntos de instruções que orientam o computador na tarefa de processamento;

– Pessoas ou Peopleware: correspondem ao usuário, que usa o poder do computador para algum propósito.

2.3.1 Componentes de um sistema computacional Hardware

• Componente físicode um sistema de computação: equipamentos utilizados pelo usuário nas ações de entrada, processamento, armazenamento e saída de dados;

• Formado por circuitos integrados, agrupados em pastilhas denominadas chips;

• Evolução: no início, chegavam a ocupar uma sala inteira, ao passo que atualmente, podem ocupar milímetros de largura, com peso quase insig- nificante;

Software

• Componente lógico de um sistema de computação: Séries de instruções que fazem o computador funcionar (programas de computador);

• Funcionam como um passo a passo, ordenando o que o hardware deve fazer;

• Representam a ponte entre os usuários e uma máquina;

• Duas categorias:

– Software básicooude sistema(sistema operacional).

– Software aplicativo(as aplicações).

(7)

Sistema operacional

• Conjunto de programas que se situa entre os softwares aplicativos (ex.:

processadores de textoou deplanilhas eletrônicas) e o hardware.

– Gerencia os recursos do computador, em termos de hardware (CPU, dispositivos periféricos) e software.

– Estabelece umainterface com o usuário.

– Provê e executa serviços para softwares aplicativos.

Peopleware

• Componente humano de um sistema de computação;

• Indivíduos que utilizam o computador como ferramenta;

• Devido à finalidade de utilização, podem ser:

– Programadores, ou analistas de sistema: constroem softwares que serão utilizados para determinado fim;

– Usuários: aproveitam-se de todos os serviços oferecidos pelos softwa- res.

2.3.2 Hardware

Manipulação de dados pelo computador

• O funcionamento do computador é baseado em quatro tipos de manipu- lação de dados: entrada (input), processamento, saída (output) e armaze- namento. Ohardware associado a cada item é o seguinte:

– Dispositivos de entrada: aceitam dados ou comandos que o compu- tador pode usar, os enviando à unidade de processamento.

– Processador ou unidade central de processamento (CPU, do inglês central processing unit): manipula por meio de circuitos eletrônicos os dados de entrada, transformando-os em informação. É quem exe- cuta as instruções. Tanto os dados que estão sendo manipulados quanto as instruções estão temporariamente armazenados namemó- ria(armazenamento primário)

– Dispositivos de saída: exibem ao usuário os dados processados ou informações.

– Armazenamento: armazenamento secundário, dispositivos como dis- cos rígidos, que permitem uso posterior e transporte dos dados

(8)

Dispositivos de entrada (input) Dispositivos de entrada (input)

Unidade central de processamento

(CPU)

Memória primária

Dispositivos de saída (output) Dispositivos de

saída (output)

Dispositivos de armazenamento secundário Dispositivos de armazenamento secundário

Figura 2: Organização esquemática de um computador.

Arquitetura de von Newmann

• Dados e programas são carregados para memória principal ou memória primáriapara sua execução;

• A unidade central de processamento (CPU), responsável pela execução das instruções, é separada da memória;

• As instruções dos programas e os dados são transmitidos da memória principal para a CPU, onde o processamento é realizado;

• Os resultados das operações na CPU devem ser novamente transferidos para a memória.

Processador (CPU)

• Responsável pela execução das instruções, ou seja, a parte de processa- mento (trato da informação, seja via cálculo, manipulação) e de controle, de acordo com as instruções contidas em um programa.

• Formado por 2 componentes:

– Unidade de controle(define quais instruções serão realizadas durante a execução)

– ALU (unidade aritmética e lógica), do inglês arithmetic logic unit. (executa o processamento)

(9)

Figura 3: Arquitetura de von Neumann.

• Operação: frequência em GHz (gigahertz), relacionada ao número de ciclos do processador. Atualmente: de 3 a 4 GHz.

• Um ou mais núcleos de processamento: otimiza a execução de tarefas em paralelo, ou seja, simultaneamente. Comum atualmente: dual core(2 núcleos),quad core(4 núcleos).

Memória principal ou primária

• Terminologia mais usada: memória RAM (memória de acesso aleatório, do inglêsrandom access memory).

• Responsável pelo armazenamento das instruções a serem executadas e respectivos dados a serem processados pela CPU.

• Quando a execução de um programa é solicitada, o mesmo e dados são carregados de um dispositivo de armazenamento secundário, como um disco rígido (HD), para a memória RAM, onde por sua vez as instruções são buscadas e executadas pela CPU.

(10)

• Acesso rápido.

• Memória volátil: dados são perdidos quando a energia elétrica é desligada

• Acesso aleatório: Os dados podem ser lidos ou gravados em qualquer po- sição da memória e a qualquer momento

• Atualmente: 512 MB (megabytes), 1 GB, 2 GB, etc.

A placa mãe

• Termo inglês: motherboard.

• Placa de circuitos plana, considerada o principal componente do sistema:

conjunto de chips e conexões que organizam as atividades do computador.

• Responsável pela interligação da CPU com os demais componentes do computador, como a memória RAM, dispositivos de armazenamento, etc.

Dispositivos de entrada 1. Teclado

2. Mouse 3. Scanner 4. Webcam 5. Microfone 6. Joystick

7. Leitor de código de barras Dispositivos de saída

1. Monitor

2. Plotter, copiadora 3. Impressora 4. Alto-falantes 5. Fones de ouvido

(11)

Dispositivos de armazenamento

• Armazenamento secundário, pois não está diretamente relacionado ao pro- cessamento

• Manutenção dos dados, mesmo após o desligamento Benefícios

• Espaço(alto poder de armazenamento).

• Confiabilidade: armazenamento confiável do ponto de vista físico: segu- rança dos dados

• Conveniência: localização e acesso aos dados pelo usuário

• Economia

• Discos rígidos(HD, dehard disk): armazenamento magnético, alta capa- cidade de armazenagem (250GB, 500GB, 1TB, etc)

– Tipicamente internos, presentes em praticamente todo computador – Externos, para transporte de dados ecópias de segurança(backup)

• Discos ópticos (CD – compact disc, DVD – digital versatile disc): capa- cidade típica de 650 ou 700 MB (CD) e 4,7 GB (DVD, existindo discos de dupla-camada oudual-layercom capacidade de 8,5 GB). Podem serR, de readapenas para leitura dos dados, ou RW (read-write), que suporta novas gravações de dados

• Blu-ray e HD-DVD: Discos ópticos com novas tecnologias que oferecem alta capacidade de armazenagem, mantendo o mesmo tamanho físico do CD e do DVD

– Maior custo.

– Video de alta definição ou grandes quantidades de dados – Armazenagem:

∗ HD-DVD single layer: 15 GB

∗ HD-DVD dual layer: 30 GB

∗ Blu-Ray single layer: 25 GB

∗ Blu-ray double layer: 50 GB

• Memória flash: evolução no armazenamento. Acesso rápido aos dados, como na memória RAM, mas é não-volátil. Pode ser apagada e reprogra- mada eletronicamente, de acordo com a demanda do usuário.

– Cartões de memória, pen-drives, memórias internas de celulares, MP3 players, câmeras.

– Unidades de estado sólido (SSD, solid-state drive): tecnologia atu- almente em expansão, com possibilidades de substituir os HDs nos próximos anos.

(12)

2.4 Programação

• Objetivo básico ⇒ auxiliar os seres humanos em trabalhos repetitivos e braçais, diminuindo esforços e economizando tempo;

• O computador é capaz de auxiliar em qualquer coisa que lhe seja solicitada;

• Entretanto:

– Não tem iniciativa;

– Nenhuma independência;

– Não é criativo nem inteligente.

• Por isso, é necessário que ele receba suasinstruçõesnos mínimos detalhes, para que tenha condições de realizar suas tarefas⇒Programação. Programação

• Quando queremos criar ou desenvolver um software para realizar determi- nado tipo de processamento de dados:

– Escrever um programa (ou vários programas interligados);

– Devemos escrever o programa usando uma linguagem que tanto o computador quanto o criador de software entendam – linguagem de programação.

Etapas envolvidas no processo de programação

• Análise: enunciado do problema:

– Dados de entrada;

– Processamento (resolução);

– Dados de saída.

• Algoritmo: descrever o problema, com suas soluções;

• Codificação: algoritmo é transformado em códigos da linguagem de pro- gramaçãoescolhida para se trabalhar.

Programa

• Nada mais é do que a codificação de um algoritmo em uma linguagem de programação.

• Uma definição mais formal:

Conjunto de instruções passo a passo que orientam o computador a fazer as tarefas necessárias e produzir o(s) resultado(s) desejado(s)

(13)

2.5 Referências

• CAPRON, H. L. & JOHNSON, J. A.Introdução à Informática. São Paulo:

Prentice Hall, 2004.

• MYAZAWA, F. K. Notas de aula de Algoritmos e Programação.

• PIMENTEL, R. Notas de aula de Introdução à Computação

• PAIVA, J. G. S. Notas de aula de algoritmos e programação de computa- dores.

3 O sistema operacional

Software

• Componente lógico de um sistema de computação: Séries de instruções que fazem o computador funcionar (programas de computador);

• Funcionam como um passo a passo, ordenando o que o hardware deve fazer;

• Representam a ponte entre os usuários e uma máquina;

• Duas categorias:

– Software básicooude sistema(sistema operacional).

– Software aplicativo(as aplicações).

Sistema operacional

• Conjunto de programas que se situa entre os softwares aplicativos (ex.:

processadores de textoou deplanilhas eletrônicas) e o hardware.

– Gerencia os recursos do computador, em termos de hardware (CPU, dispositivos periféricos) e software.

– Estabelece umainterface com o usuário.

– Provê e executa serviços para softwares aplicativos.

Sistema operacional: interface com o usuário

• Duas formas básicas:

1. Interface delinha de comando;

2. Interface gráfica(GUI – graphical user interface)

(14)

Plataforma

• Combinação de hardware de computador e software de sistema operacio- nal.

• Wintel (Microsoft Windows que roda em um PC baseado em Intel) é a mais comum.

• Sistemas mais comuns:

– MS-DOS – Windows – MAC OS – Unix – Linux – Android

DOS: disk opperating system

• Baseado em linha de comando.

• A tela apresentapromptsao usuário.

• O usuário digitacomandos.

• Não é amigável (user-friendly).

• Várias versões:

– MS-DOS, PC-DOS, DR-DOS, FreeDOS

(15)

Janelas, ícones, etc.

• Xerox Star (1981)

– Primeiro SO comercial baseado em janelas.

– Estilo de interaçãoWIMP(Janelas, Ícones, Menus e Apontadores)

Apple Lisa

• 1983 – Apple Lisa

– Primeiro PC a ter um mouse e uma interface gráfica.

– A interface foi inspirada nas estações de trabalho Xerox.

3.1 MS Windows

Microsoft Windows

• Iniciou-se como um ambiente operacional para o MS-DOS.

– Não era um sistema operacional completo; necessitava do MS-DOS.

• Usa uma interface gráfica.

– Gerenciador baseado em ícones.

– Os usuários podem usar os comandos e a interface do DOS.

(16)

• Atualmente uma família completa de sistemas operacionais.

• Multitarefa.

• Gerenciador de arquivos estilo árvore.

• Surgimento das suítes de aplicativos (Office).

• Windows 1.01 (1985)

– O sistema rodava no padrão 16-bit e usava menos de 1MB.

– Rudimentar interface gráfica, rodando em cima do MS-DOS 5.0.

• Windows 3.11 (1992)

– Softwares para multimídia.

– FontesTrueType. – Mais estável.

• Windows 95

– Completamente novo – sistema operacional independente do DOS.

– Menu Iniciar. – Barra de Tarefas.

• Windows 98

– Assistentes (Wizards): ferramentas passo a passo para tarefas.

– Suporte a vários monitores e interface USB.

– Restauração do sistema via DOS.

– Integração com Internet (Internet Explorer, interface do sistema)

• Windows Me (Millenium Edition, 2000) – Suporte para multimídia.

– Media Player, edição de vídeo.

– Maiores recursos de confiabilidade.

– Suporte para redes domésticas

• Windows 2000 – Corporativo.

– Você obtém “sua” área de trabalho e arquivos, independentemente de qual PC usa para acessar a rede.

– Bastante estável.

– 32 bits.

(17)

• Windows XP – 2001

– Melhor interface com o usuário:

∗ Área de trabalho muito mais clara e desobstruída.

∗ Mais ícones no menu Iniciar redesenhado.

– Melhor suporte a hardware, multimídia e segurança para a Internet.

– Suporte a múltiplos usuários e personalização.

• Windows Vista (2006)

– Recursos de transparência.

– Sistema de alternância 3D de janelas.

– Ferramentas integradas para segurança.

– Fiasco: sistema lento, pesado e cheio de falhas.

• Windows 7 (2009) – Correções do Vista.

– Mais eficiente, limpo e prático de usar.

• Windows 8 (2012)

– Interface totalmente nova.

– Sistema adaptado a diversos dispositivos. (Interação com telas sen- síveis ao toque).

– Rápida inicialização do sistema.

– Windows To Go: é possível executar o Windows 8 a partir de um pen drive ou HD externo.

• Windows 10 (2015)

– Volta do Menu Iniciar;

– Novo navegador (MS Edge);

– Múltiplas plataformas Evolução do Windows

(18)

3.2 Outros SOs

Mac OS

• Projetado pela Apple para seu computador Macintosh.

• Primeira GUI bem-sucedida comercialmente.

• Serviu como modelo para o Windows e outros produtos.

UNIX

• Desenvolvido em 1971 para ser usado no minicomputador DEC.

• Sistema baseado em caracteres com interface de linha de comando.

• Não é ligado a nenhuma família de processadores.

(19)

– Roda praticamente em qualquer tipo de sistema (PC, mainframe, estação de trabalho) de qualquer fabricante.

• Principal sistema operacional em uso em servidores de Internet.

– Manipula facilmente muitos usuários ao mesmo tempo.

Linux

• Usa interface de linha de comando.

– Muitas companhias criaram uma GUI para funcionar com o Linux.

• Conceito de fonte aberta:

– O código-fonte é livre.

– Usuários podem fazer o download, modificar e distribuir o software.

• Mais estável do que o Windows.

4 Internet

• Grande conjunto de redes de computadores interligados pelo mundo.

• Início:

– rede interligando universidades nos EUA;

– Uso militar (defesa / inteligência).

• Início década 1990: Internet começa a ser explorada comercialmente.

• Não há gerenciamento centralizado, cada usuário ou empresa administra sua rede e esta se conecta à Internet.

• Comunicação entre as várias redes segue umprotocolopadrão.

Como a Internet funciona

• Cada servidor (host) possui um endereço único na Internet. Este endereço é conhecido como IP (Internet protocol). Ex.: 200.19.146.234

• Cada endereço acima pode ser escrito com letras da seguinte forma: www.

ufu.br;www.uol.com.br;www.google.com

• Servidores de Internet podem oferecer vários tipos de serviços (Mais utili- zados: Web;Endereço eletrônico(e-mail);FTP).

(20)

Web (www –world wide web)

• Recursos multimídia (Texto, Imagem, Som e Vídeo).

• Informações estão contidas em sites.

– Em um site é possível saltar de um ponto para outro utilizando “hi- perlinks”.

• Cada site possui seu URL (Uniform Resource Locator, localizador uni- forme de recursos) Ex.: http://www.ufu.br; http://www.iciag.ufu.

br;http://ww.uol.com.br

• Endereços (domínios) são criados de acordo com o tipo de utilização: .com (comércio);.gov(governo);.edu(universidades – normalmente as brasilei- ras não utilizam); .mil (militar); .org (organizações sem fins lucrativos), etc.

• Endereços terminam com nacionalidade: Brasil (.br); Japão (.jp); Portu- gal (.pt); EUA (em branco).

Endereço eletrônico: e-mail

• Permite o envio/recebimento de mensagens, que podem conter qualquer tipo de arquivo (texto, vídeo, foto, etc.)

• Ao ser recebida a mensagem fica armazenada em umacaixa postal.

• Depois de lida a mensagem pode ser respondida ou encaminhada para outras pessoas.

• Pode-se utilizar um programa de e-mail (ex.: MS Outlook, Mozilla Thun- derbird). Provedores fornecem webmail (acesso pelo navegador) – ex.:

webmail UFU.

• Cada pessoa deve possuir seu e-mail único. Ex.: rpimentel@ufu.br, diretoria@facom.ufu.br, etc.

Transferência de arquivos (FTP)

• FTP (File Transfer Protocol): serviço especializado na troca de arquivos.

• O navegador permite acessar este serviço diretamente.

• Páginas de FTP normalmente possuem apenas uma lista com arquivos.

Exemplo: ftp://mecanica.ufu.br

• Cliente de FTP: Programa específico para troca de arquivos, agilizando o processo. Ex.: Filezilla, SSH Secure File Transfer Client, etc.

(21)

5 Conceitos básicos de algoritmos

Definição de algoritmo

• Vimos anteriormente que uma das etapas envolvidas no processo de pro- gramação é descrever detalhadamente um problema, bem como suas pos- síveis soluções. Para isto, desenvolvemos umalgoritmo:

Algoritmo

Sequência finitaenão ambíguade instruções ou operações (passos), cuja execução, em umtempo finito, resolva um problema

• não ambiguidade: cada instrução deve ser precisamente definida, sem per- mitir mais de uma interpretação.

Observações

• Importante: para a grande maioria dos problemas, é possível haver mais de um algoritmo de resolução:

• Algoritmos não são operações exclusivas de um computador:

– A grande maioria das coisas que fazemos no dia a dia, fazemos por via de algoritmos.

Exemplo de algoritmo: somar 3 valores Passo 1 – receber três números;

Passo 2 – somar os três números;

Passo 3 – mostrar o resultado obtido.

Exemplo de algoritmo: sacar dinheiro Passo 1 – ir até um caixa eletrônico;

Passo 2 – colocar o cartão;

Passo 3 – digitar a senha;

Passo 4 – solicitar a quantia desejada;

Passo 5 – se saldo for maior ou igual à quantia desejada, realizar o saque; caso contrário, não sacar, ou sacar quantia menor;

Passo 6 – retirar o cartão;

Passo 7 – sair do caixa eletrônico.

(22)

Dicas para elaboração de algoritmos

1. Compreender completamente o problema a ser resolvido, destacando pon- tos mais importantes e objetos que o compõem;

2. Definir os dados de entrada, isto é, quais dados serão fornecidos e quais objetos fazem parte do problema;

3. Definir o processamento, isto é, quais cálculos serão efetuados; quais as restrições para estes cálculos;

(a) Processamento: responsável pela transformação de dados de entrada em dados de saída.

(b) Deve-se também verificar quais objetos são responsáveis por cada atividade de processamento.

4. Definir osdados de saída, isto é, quais dados são gerados após o proces- samento;

5. Construir o algoritmo;

6. Testar o algoritmo, através desimulações. Não ambiguidade

• Precisa-se descrever a sequência de instruções, de maneira simples e obje- tiva:

– Somente um verbo por frase;

– Frases curtas e simples;

– Ser objetivo;

– Evitar frases com sentido dúbio.

5.1 Representação

Representando algoritmos

• Descrição narrativa (mais próximo de como escrevemos);

• Fluxograma (representação gráfica);

• Pseudocódigo (mais interessante do ponto de vista da programação)!

(23)

1. Descrição narrativa

• Escrever, utilizando uma linguagem natural (exemplo: língua portuguesa), os passos a serem seguidos para resolução do problema.

• Vantagem:nenhum conceito novo necessário

• Desvantagem:pode abrir espaço para interpretações

– Dificultará transcrição deste algoritmo para um programa

• Exemplo: fazer um sanduíche Passo 1 – pegar o pão

Passo 2 – cortar o pão ao meio Passo 3 – pegar a maionese

Passo 4 – passar a maionese no pão Passo 5 – pegar e cortar alface e tomate Passo 6 – colocar alface e tomate no pão Passo 7 – Pegar o hambúrguer

Passo 8 – fritar o hambúrguer

Passo 9 – colocar o hambúrguer no pão 2. Fluxograma

• Escrever, usando símbolos gráficos predefinidos, os passos a serem seguidos para a resolução do problema.

• Diagrama: representação visual dos algoritmos.

• Vantagem:entendimento mais simples. Útil nas fases iniciais de aprendi- zado de programação;

• Desvantagem:algoritmo resultante com poucos detalhes; aprendizado da simbologia necessário.

• Exemplo:

• Representação alternativa:

(24)

Início

Leia A e B

A > B?

Escreva B Escreva A

Fim

Não Sim

Figura 4: Fluxograma do algoritmo que escreve qual o maior de 2 valores dados

Início

Leia A e B

A > B?

A ← B

Escreva A Não Sim

Figura 5: Fluxograma do algoritmo que escreve qual o maior de 2 valores dados

Simbologia de fluxogramas

• Inícioefim:

– Podem sercírculos ouformas ovais

– Normalmente contêm a palavras “Início”, “Fim”, ou alguma expressão sinalizando o início ou fim do processo.

Início Fim Escreva A

• Processoeoperações:

(25)

– Representação porretângulos.

– Indica uma tarefa a ser executada pelo algoritmo.

– Usado para cálculos e atribuições de valores.

Leia A e B M = N + P Escreva B

• Condiçãooudecisão:

– Representação porlosangos.

– Normalmente contém uma pergunta do tipo Sim/Não ou um teste deVerdadeiro/Falso.

– Mudanças no fluxo – possibilidade de desvios.

A > B?

• Fluxo de dadosou de instruções: – Representação porsetasouflechas.

– Conectam dois símbolos quaisquer do fluxograma.

A > B?

A

B

Escreva A Não Sim

3. Pseudocódigo

• Linguagem intermediária entre linguagem natural e linguagem de progra- mação;

• Escrever, por meio de regras predefinidas, os passos a serem seguidos para resolução do problema.

• Vantagem:codificação em linguagem de programação é quase imediata

• Desvantagem:é necessário aprender as regras de escrita do pseudocódigo

(26)

• Exemplo: como seria o pseudocódigo para o algoritmo que escreve qual o maior de 2 valores dados?

1 Declare A, B numerico

2 Inicio

3 Escreva " Digite dois valores "

4 Leia A, B

5 Se A < B Entao

6 A <- B

7 Fim Se

8 Escreva A

9 Fim

Outro exemplo de algoritmo

• Elabore e escreva um algoritmo para calcular a média aritmética entre duas notas de um aluno e mostrar sua situação, que pode ser“aprovado”

ou“reprovado”, usando:

1. Descrição narrativa 2. Pseudocódigo 3. Fluxograma

• 1. Descrição narrativa

Passo 1 – receber duas notas

Passo 2 – calcular a média aritmética Passo 3 – escrever média aritmética

Passo 4 – se média for maior ou igual a 7, então situação do aluno é aprovado; caso contrário, a situação é reprovado.

Passo 5 – escrever situação do aluno

• 2. Pseudocódigo

1 Declare N1 , N2 , M numerico

2 Inicio

3 Escreva " digite as duas notas "

4 Leia N1 , N2

5 M <- (N1+N2)/2

6 Escreva " Media =", M

7 Se M >= 7 Entao

8 Escreva " aprovado "

9 Senao

(27)

10 Escreva " reprovado "

11 Fim Se

12 Fim

• 3. Fluxograma

Início

Leia N1, N2

M = (N1 + N2)/2

Escreva M

M >= 7?

Fim

Escreva “reprovado”

Escreva “aprovado”

Não Sim

Figura 6: Fluxograma do algoritmo que calcula a média aritmética e situação de um aluno, dadas duas notas.

Testando o algoritmo: teste de mesa

• Consiste do acompanhamento manualpasso-a-passoda execução do algo- ritmo, visando:

– Avaliar se os resultados obtidos correspondem àqueles esperados/de- sejados.

– Detectar, se existentes, os erros de comandos e/ou fluxo de execução.

• Durante os testes, deve-se definir os valores de entrada, visando avaliar as seguintes situações:

– Casos extremos (valores limítrofes da validade);

– Exceções do problema (valores inválidos).

• Exemplo:

1 declare P1 , P2 , P3 , P4 inteiro

2 media real

3 inicio

4 leia P1 , P2 , P3 , P4

5 media <- (P1+P2+P3+P4)/4

6 escreva media se media < 6 entao

(28)

8 escreva " REPROVADO "

9 senao

10 escreva " APROVADO "

11 fim se

12 fim

6 Tipos de dados e variáveis

Representação

• Todo algoritmo – e, consequentemente, todo programa – recebemdados.

• Armazenamento durante a execução do programa: memória primária (RAM).

Representação de dados na memória: bitsebytes.

• Porções de memória (sequências de bits / bytes que armazenam os dados são identificadas e acessadas através de endereços. É desta forma que a unidade de controlelocaliza os dados na memória.

(29)

Bits e bytes

• Computador: componente eletrônico digital capaz de reconhecer somente duas coisas:

– Ligado – Desligado

• Sistema de 2 estados: sistema binário.

• A partir de tal sistema, computador pode criar formas sofisticadas de representação de dados

• bit(binary digit): unidade básica de armazenamento de dados!

– Cada bit está sempreligado (1)oudesligado (0). Um bit na memória jamais está vazio.

• 1 bit não pode representar, individualmente, um dado número, letra ou símbolo: para tal, bits são reunidos embytes.

• 1byteé um conjunto formado por 8 bits.

• Cada byte pode assumir, portanto,28= 256valores distintos, desta forma, podendo representar números, letras ou símbolos.

• Expressamos quantidades de memória (capacidade, tamanhos de arquivos) em múltiplos de bytes:

Termo Símbolo Quantidade real (bytes)1 Quilobyte KB 210(1.024)

Megabyte MB 220(1.048.576) Gigabyte GB 230(1.073.741.824) Terabyte TB 240(1.099.511.627.776) Petabyte PB 250(1.125.899.906.842.624)

• Obs.: b: bit, B: byte.

Tipos de dados

• Toda variável possui um determinado tipo.

– Tipode uma variável: determina o conjunto de valores (e operações) que a variável pode aceitar.

• Tipos de dados primitivos (básicos):

– Numéricos;

∗ Inteiros;

∗ Reais.

– Lógicos;

– Literais ou de texto.

(30)

Dados numéricos

• Positivos ou negativos;

• Dois grupos:

– Inteiros;

– Reais.

• Inteiros:

– Sem parte fracionária;

– Exemplos: -23, 98, 0, -357, 237, -2

• Reais:

– Possuem parte fracionária;

– Exemplos: 23.45, -34.88, -247.0, -346.89

• Observação: notação de dados reais no computador: língua inglesa (ponto, e não vírgula, separa parte inteira da parte fracionária

Dados lógicos

• Podem assumir somente dois valores:

– Verdadeiro – Falso

• Também chamados deboolianos(álgebra de Boole).

Dados literais ou caracteres

• Formados por um únicocaractereou uma cadeia de caracteres.

• Caractere:

– Letras maiúsculas;

– Letras minúsculas;

– Algarismos (não podem ser utilizados para cálculos);

– Especiais (ex.: &, #, @, ?, +, etc.)

• Exemplos: “aluno”,“1234”,“0.34”,“1+2”, “1ab”,“0”, “x”, etc.

(31)

Identificando variáveis

• Toda variável, além de um tipo, deve possuir um nome (identificador).

• Algumas regras para identificar uma variável:

– Podem ser utilizados algarismos, letras maiúsculas, letras minúsculas;

– No início: somente uma letra ou símbolo_;

– Não permitidos: espaço em branco, caracteres especiais (@, $, +, -, %, etc.); Não permitidos: palavras reservadas da linguagem de programação em uso.

Exemplos: x, y, salario, _horas, N1, n2

6.1 Representação em memória

Como representar diferentes tipos de dados na memória, apenas usando 0s e 1s dos bits?

Código ASCII

• Como representar caracteres (sinais gráficos como letras, símbolos, alga- rismos) em memória, usando bytes?

• Código ASCII: Esquema de codificação que atribui a cada combinação de 1 byte um elemento específico;

• ASCII:American Standard Code for Information Interchange(Código Pa- drão Americano para Troca de Informação);

• Usado em praticamente todos os computadores pessoais;

• 128caracteres: 95 sinais gráficos(como letras do alfabeto latino, algaris- mos e sinais matemáticos) e 33 sinais de controle (tabulação, backspace etc). 7 bits usados, 1 fica livre (bit de paridade ou erro).

• Tabela completa: https://pt.wikipedia.org/wiki/ASCII

(32)

Caractere Código ASCII Forma

! 33 0010 0001

# 35 0010 0011

$ 36 0010 0100

+ 43 0010 1011

.. .

.. .

.. .

0 48 0011 0000

1 49 0011 0001

2 50 0011 0010

.. .

.. .

.. .

A 65 0100 0001

B 66 0100 0010

C 67 0100 0011

.. .

.. .

.. .

a 97 0110 0001

b 98 0110 0010

.. .

.. .

.. .

Sistemas numéricos

• Computador: sistema binário(manipula e armazena informação na forma de números binários).

• Sistema decimal: é o sistema mais importante do ponto de vista prático, sendo usado por nós, seres humanos, em nosso dia a dia.

• Sistema decimal: Base(quantidade de algarismos) = 10 – Algarismos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

– Exemplo:

6903 = 6×103+ 9×102+ 0×101+ 3×100

= 6000 + 900 + 0 + 3

• Sistema binário: Base 2 – Algarismos: 0, 1 – Exemplo:

1012= 1×22+ 0×21+ 1×20

= 4 + 0 + 1 = 510

(esta é a conversão de binário para decimal!)

• Conversão de decimal para binário:

– Divide-se o número pela base binária, 2, obtendo-se um resultado e um resto.

– Divide-se o resultado por 2, e assim sucessivamente, até que o resul- tado seja 0.

(33)

– A representação correspondente é dada pelos restos das divisões, de trás para frente.

• Conversão de decimal para binário:

– Exemplo: 1910

÷2 = Resto

19 9 1

9 4 1

4 2 0

2 1 0

1 0 1

Logo,1910= 100112

7 Linguagens de programação

Linguagem de programação

Umalinguagem de programação é uma linguagem artificial projetada para co- municar instruções a uma máquina, em especial computadores. Linguagens de programação podem ser usadas para criarprogramas que controlam o compor- tamento da máquina e expressar algoritmos de forma precisa (não ambígua).

A comunicação com o computador

• Ocorre em diferentes níveis:

– Linguagem de máquina;

– Linguagem de baixo nível;

– Linguagem de alto nível.

7.1 Níveis de linguagens de programação

Linguagem de máquina

• Conjunto básico de instruções, em código binário, características de cada computador, correspondentes às suas operações básicas:

– Instruções lógicas e aritméticas;

– Instruções para transferência de Informação;

– Instruções para testes;

– Instruções de entrada/saída;

• Programação inviável para seres humanos.

(34)

Linguagens de baixo nível

• Linguagem simbólica: bem próxima dalinguagem de máquina;

• Programação baseada na manipulação de registradores e utilização de in- terrupções para prover entrada/saída;

• Como há uma correspondência biunívoca entre instruções simbólicas e instruções da máquina, as linguagens simbólicas:

– Dependem do processador utilizado;

– Permitem escrever programas muito eficientes;

– Porém: são de utilização muito difícil e sujeitas a erros;

Exemplo: Assembly

Exemplo de programa em Assembly: escrever a mensagem “Olá, mundo” na

tela (fonte:https://pt.wikipedia.org/wiki/Programa_Ol%C3%A1_Mundo#Assembly):

1 variable :

2 .message db "Ola , Mundo !$"

3 code:

4 mov ah, 9

5 mov dx, offset .message

6 int 0 x21

7 ret

A tradução/conversão da linguagem Assembly para a linguagem de máquina se chamamontagem:

Linguagem de alto nível

• Programas são escritos usando uma linguagem parecida com a nossa lin- guagem;

• Independe da arquitetura do computador;

• Programação mais rápida e eficiente: mais fácil; programas menos sujeitos a erros;

• Uso decompiladores.

(35)

– Conversão de todo o código em linguagem de máquina, gerando um arquivo executável⇒Execução eficiente.

• Ou uso deinterpretadores:

– Durante a execução, cada instrução do código é lida e interpretada

⇒execução mais lenta.

Linguagem de alto nível: linguagem Python

1 print("Olá, Mundo !")

Tradução

Os programas escritos em linguagens de alto nível são denominados código fonte.

• Os códigos fonte devem ser convertidos para a linguagem de máquina (tradução)

Tradução

Vimos que a conversão decódigo fonte(linguagem de alto nível) paracódigo executável(linguagem de máquina) – tradução – é feita de 2 formas:

1. compilação 2. interpretação

Vejamos como funciona cada uma destas 2 formas.

7.2 Compilação

• Análise sintática e semântica: Programa fonte escrito em uma linguagem qualquer (linguagem fonte)⇒programa objetoequivalente escrito em ou- tra linguagem (linguagem objeto);

• Compilador: software tradutor em que a linguagem fonte é uma linguagem de alto nível e a linguagem objeto é uma linguagem de baixo nível (como assembly) ou de máquina.

(36)

Arquivo .c (Código escrito

em linguagem C) Arquivo executável (.exe) gerado pelo compilador

Figura 7: O compilador

Programa fonte Programa

fonte CompiladorCompilador Programa executável Programa executável

Sistema operacional / CPU Sistema operacional / CPU

Figura 8: Geração do programa executável

O código executável produzido não é portável

• Diferentes compiladores são construídos para as diferentes arquiteturas de processadores

Exemplos de linguagenscompiladas:

• C

• Pascal

• FORTRAN

• C++

7.3 Interpretação

• Interpretador: É um software que interpreta (análise sintática e semântica) as instruções do programa fonteuma a uma, gerando o resultado;

(37)

• Toda vez que o programa – aqui também chamado descript– é executado, o tradutor transforma cada instrução do código-fonte em uma instrução de código-objeto, que é imediatamente executada:

– Não é criado todo um programa-objeto, mas apenas a conversão ins- trução a instrução.

Um interpretador é um programa que executa repetidamente a seguinte sequência:

1. Obter o próximo comando doscript

2. Determinar que ações devem ser executadas 3. Executar estas ações

Caso haja alguma linha de código mal codificada (não respeitando o que foi definido na linguagem), o programa termina sua execução abruptamente em erro.

Interpretador Interpretador

Sistema operacional / CPU Sistema operacional / CPU

Programa fonte Programa

fonte

Figura 9: Execução de um programa interpretado Exemplos de linguagensinterpretadas:

• HTML

• Haskell

(38)

• Lisp

• Python

Compilação ×interpretação

• Compilação:

– O programa fonte não é executado diretamente; O programa fonte é convertido em programa objeto e depois é executado; Vantagem:

Execução muito mais rápida.

• Interpretação:

– Executa-se diretamente o programa fonte /script; – Não existe a geração de um módulo ou programa objeto;

– Vantagem: Programas menores e mais flexíveis.

8 Programação estruturada

Paradigmas de programação

• Questão: como resolver um determinado problema?

• Paradigma de programação

– Relacionado à forma de pensar do programador;

– Como ele busca a solução para o problema;

– Mostra como o programador analisou e abstraiu o problema a ser resolvido.

• Paradigmas – Estruturado;

– Orientado a objetos;

– Lógico;

– Funcional;

– etc.

(39)

Paradigma estruturado

• Também chamado imperativo;

• Utilização de 3 estruturas:

– Sequencial; – Condicional;

– Repetiçãoouiterativa.

• Busca quebrar um problema complexo em partes menores;

• Programador:

– Analisa o problema;

– Tenta relacionar ações que deverão ser executadas.

• A estrutura sequencial de um algoritmo é o item básico da programação estruturada:

1 Declaracao de variaveis

2 Inicio Algoritmo

3 Comandos ( atribuicao , entrada / saida , processamento )

4 Fim Algoritmo

Endereçamento na memória

• Porções de memória (sequências de bits / bytes) que armazenam os dados são identificadas e acessadas através deendereços.

• Exemplo: programa de folha de pagamento – Índicede pagamento: localização 3 – Horastrabalhadas: localização 6 – Resultado (Salário): localização 8

(40)

• Escolha “arbitrária”: qualquer localização livre pode ser usada;

• Programador não precisa se preocupar com endereço (responsabilidade do S.O.): cada endereço pode receber um nome, chamadoendereço simbólico. Ex.: indice, horas, salario

Variável

• Endereço simbólico: variável

– Possui umnome(identificador) e umtipo;

– Representa uma posição de memória, onde é guardado um dado ou valor;

– Seu conteúdo pode ser alterado durante a execução do programa, mas não sua posição;

– Pode assumir valores distintos, mas somente um único valor a cada instante da execução do programa/algoritmo.

Declaração de variáveis

• Na declaração de variáveis, criamos as mesmas, definindo um identificador (nome) válido, e seu tipo

• Quando a variável é criada durante a execução do programa, uma posição de memória é atribuída à mesma

• Exemplo (pseudocódigo):

1 Declare x numerico

2 Declare y,z literal

3 Declare teste logico

Na linha 1, poderíamos explicitar se inteiro ou real.

(41)

Atribuição

• Comandos de atribuição são usados para conceder (atribuir) valores ou operações às variáveis.

• Exemplo (pseudocódigo):

1 x <- 4

2 y <- x + 2

3 M <- (N1 + N2)/2

4 teste <- Falso

Comandos de entrada

• Comandos de entrada são utilizados para receber dados de entrada do usuário (via teclado ou outro dispositivo de entrada), e armazená-los em variáveis.

• São representados pela palavraLeia. Exemplos:

1 Leia x

2 Leia y

– Se x é numérico: um valor digitado pelo usuário será armazenado na variável x;

– Se y é literal: um ou mais caracteres digitados pelo usuário serão armazenados na variável y.

Comandos de saída

• Comandos de saída são utilizados para mostrar ao usuário dados na tela (ou outro dispositivo de saída):

• Dados podem ser simplesmente o conteúdo de variáveis ou mensagens.

• Exemplos:

1 Escreva X

2 Escreva " conteudo de Y = ", Y

(42)

8.1 Exercícios sugeridos

1. Escreva um algoritmo que execute a soma de dois números inteiros forne- cidos pelo usuário, usando:

• Declaração de variáveis

• Comandos de entrada (leitura) e saída de dados

2. Escreva um algoritmo que lê o nome de um vendedor, o seu salário fixo, o total de vendas por ele efetuadas e o percentual que ganha sobre o total de vendas. Calcular o salário total do vendedor. Escrever o nome do vendedor e seu salário total.

3. Faça um algoritmo que receba o salário de um funcionário, calcule e mostre o novo salário, sabendo-se que este sofreu um aumento de 25%.

8.2 Referências

• ASCENCIO, A. F. G., CAMPOS, E. A. V.Fundamentos da Programação de Computadores. São Paulo: Prentice Hall, 2007.

• PIMENTEL, R. Notas de aula de Introdução à Computação.

• PAIVA, J. G. S. Notas de aula de algoritmos e programação de computa- dores.

• MARTINS, L. G. A. e SILVA, A. J. Notas de aula de Introdução a algo- ritmos.

9 Linguagem Python

• Surgimento: 1991 (Guido van Rossum)

• Multi-paradigma: imperativo, funcional, O.O.

• Software-livre: pode ser utilizada gratuitamente – Python Foundation (http://www.python.org)

• Alto nível: simplicidade e clareza – fácil de aprender – Muitasbibliotecas– código pronto – disponíveis

• Multi-plataforma: Windows, Linux, Mac OS, etc.

(43)

• Wikipedia, Google, Yahoo!, CERN, NASA, Facebook, Amazon, Insta- gram, Spotify, etc.

• I.A. (inteligência artificial), bancos de dados, biotecnologia, aplicativos móveis,games, aplicações web.

O interpretador

• Python trabalha com uminterpretador híbrido:

– O programa Python é traduzido para um código intermediário cha- madobyte-code

– O byte-code é executado por um interpretador especial

• Vantagens:

– fácil de usar interativamente – fácil testar e modificar componentes

– mais eficiente do que um interpretador clássico

• Desvantagem

– não é tão eficiente como uma linguagem compilada tradicional (C, C++, Fortran, etc)

Utilização interativa

• Os comandos são executados noterminal do Python

– IDLE2 é um ambiente de desenvolvimento integrado para Python – Podemos escrever comandos Python e ver os resultados imediata-

mente (similar aos sistemas operacionais DOS).

2integrated development environment

(44)

Arquivos descript

• Podemos criar um arquivo de texto onde iremos escrever um programa completo (script) e executar de uma só vez pressionandoF5

• Arquivos de programas Python têm a extensão.py

9.1 Referências

• BACKES, A. R. Notas de aula de Informática para Biotecnologia.

10 Variáveis, comandos básicos e expressões

10.1 Variáveis no Python

Endereçamento na memória

• Porções de memória (sequências de bits / bytes) que armazenam os dados são identificadas e acessadas através deendereços.

• Exemplo: programa de folha de pagamento – Índicede pagamento: localização 3 – Horastrabalhadas: localização 6 – Resultado (Salário): localização 8

(45)

False await else import pass

None break except in raise

True class finally is return and continue for lambda try

as def from nonlocal while

assert del global not with

async elif if or yield

Tabela 1: Palavras reservadas da linguagem Python3

• Escolha “arbitrária”: qualquer localização livre pode ser usada;

• Programador não precisa se preocupar com endereço (responsabilidade do S.O.): cada endereço pode receber um nome, chamadoendereço simbólico. Ex.: indice, horas, salario

Variável

• Endereço simbólico: variável

– Possui umnome(identificador) e umtipo;

– Pode também possuir um determinadoescopo(“alcance”)

– Representa uma posição de memória, onde é guardado um dado ou valor;

– Seu conteúdo pode ser alterado durante a execução do programa, mas não sua posição;

– Pode assumir valores distintos, mas somente um único valor a cada instante da execução do programa/algoritmo.

Nomes de variáveis no Python

• Deve iniciar com letras ouunderscore (_). Ex.: x,\_prova1

• Podem conter letras, números ouunderscores (_). A partir da versão 3.0 as letras podem ser acentuadas;

• Letras maiúsculas e minúsculas são consideradas diferentes (case sensi- tive);

• Palavras reservadasnão podem ser usadas como nomes Palavras reservadas

Palavras reservadasoupalavras-chavesão as palavras que formam a lingua- gem de programação. Python possui 35:

(46)

Exercício

Quais nomes de variáveis estão corretos?

• Contador

• contador1

• comp!

• .var

• Teste_123

• _teste

• in

• int1

• 1contador

• -x

• Teste-123 x&

• Corretos: Contador,contador1, _teste,Teste_123,int1

• Errados: comp!, .var,in,1contador, -x,Teste-123 x&

Tipos de variáveis

• Os valores e variáveis em Python são classificados em diferentestipos.

• O tipo define os valores que a variável pode assumir e as operações que podem ser realizadas.

• Diferente de outras linguagens, não precisamos definir o tipo de uma va- riável

– O tipo da variável se altera conforme o dado armazenado.

– Comandotype(x)– permite saber o tipo do valor ou variável emx Alguns tipos

• Tipoint

– Números inteiros

• Tipofloat

– Números fracionários (ponto flutuante)

(47)

– Na parte decimal usa-se ponto, e não vírgula.

• Tipostr

– String, isto é, cadeia de caracteres

– Escrevemos o texto entre aspas ’simples’ ou “duplas”

1 >>> x=1

2 >>> type(x)

3 <class 'int '>

4 >>> y = 1.5

5 >>> type(y)

6 <class 'float '>

7 >>> nome = " UFU "

8 >>> type( nome )

9 <class 'str '>

10 >>> type(" Uberlandia ")

11 <class 'str '>

Tipo lógico

• Também chamado booleano (no Python: bool);

• Apenas armazena 2 valores: True (verdadeiro) ouFalse(falso)

• Exemplos:

1 >>> resultado = True

2 >>> type( resultado )

3 <class 'bool '>

4 >>> 2>5

5 False

6 >>> teste = 2>5

7 >>> teste

8 False

Escopo de variáveis

• Oescopodefine onde e quando a variável pode ser usada.

• Escopo global:

– A variável é definida fora de qualquer definição de função.

(48)

– Tempo de vida é o tempo de execução do programa.

• Escopo local:

– A variável é definida dentro de umafunçãoou na sua lista de parâ- metros.

• xeysãovariáveis locais.

– Foram definidas em um blocoindentado(recuado).

• xezsão variáveis globais.

– Foram definidas em um bloco não-indentado.

• xexiste nos dois escopos:

– A variável definida no escopo local ofusca completamente o escopo global.

1 def func ():

2 x = 10;

3 y = 10;

4 print(" Fun ção = ", x,y,z)

5

6 x = 15;

7 z = 15;

8 print(" Antes = ",x,z)

9 func ()

10 print(" Depois = ",x,z)

Saída:

Antes = 15 15 Fun ção = 10 10 15 Depois = 15 15

10.2 Comandos de entrada e saída de dados

Saída de dados: print()

• print(): Função que realiza a impressão dos dados do programa no ter- minal

– Forma geral

print(expressão1, expressão2, ..., expressãoN)

1 >>> x=1

2 >>> print(x)

3 1

4 >>> print(" Teste ")

5 Teste

(49)

6 >>> y =2.5

7 >>> print("y = ", y)

8 y = 2.5

Entrada de dados: input()

• input(): Função que realiza a leitura de uma cadeia de caracteres do teclado no terminal

• Forma geral

variável = input(texto)

– A função input()escreve o texto passado por argumento no termi- nal (uso opcional).

1 >>> txt = input(" Digite algum texto : ")

2 Digite algum texto : UFU

3 >>> print( txt )

4 UFU

5 >>> txt = input()

6 Uberl â ndia

7 >>> print(" txt : ", txt )

8 txt : Uberl â ndia

• A função input()sempre retorna uma cadeia de caracteres, mesmo que o que foi digitado contenha apenas números.

• O que fazer se for preciso ler um valor numérico?

Solução

Conversão de tipos Conversão de tipos

• int(x): convertex para inteiro via truncagem (apenas a parte inteira é considerada).

• round(x): convertexpara inteiro via arredondamento.

• float(x): convertexpara ponto-flutuante (número real).

• str(x): converte um valorxpara texto.

(50)

1 >>> str(5.25)

2 '5.25 '

3 >>> int(2.5)

4 2

5 >>> round(2.5)

6 2

7 >>> int('3')

8 3

9 >>> float(" 3.5 ")

10 3.5

11 >>>

Desta forma, é possível combinar o retorno da funçãoinput() com a con- versão de tipos para fazer a leitura de valores numéricos:

1 N = int(input(" Digite um valor inteiro : "))

2 N = N*2

3 print("O dobro do valor digitado é ",N)

Saída:

Digite um valor inteiro : 12 O dobro do valor digitado é 24

>>>

10.3 Documentação

Comentários edocstrings

• Comentários:

– Permitem adicionar uma descrição sobre o programa. Ajudam a re- lembrar como funciona o programa

– São ignorados pelo interpretador

– Começam com o símbolo#(cerquílha) e se estendem até ao final da linha

1 tudo que estiver a frente da cerquilha será ignorado

2 print("Bem - vindo ao curso !") #a instrução atrás da cerquilha será interpretada

Saída:

Bem - vindo ao curso !

>>>

(51)

• Docstrings

– Textos definidos entre três aspas duplas ou três aspas simples. Simi- lares a comentários.

– São ignorados pelo interpretador, mas podem ser acessados através dohelp.

– Normalmente utilizados no início de uma classe, de uma função ou no início do programa.

1 def fatorial (N):

2 """

3 Função que calcula o fatorial de um número inteiro N

4 Exemplo : x = fatorial (5)

5 """

6 if (N <= 1):

7 return 1

8 return N* fatorial (N -1)

10.4 Operadores

Atribuição: =

• Associa o valor de uma expressão a uma variável

• A variável é criada neste processo; ou

• Caso a mesma já exista, seu valor é alterado.

• Forma geral:

nome_da_variável = valor ou expressão

• Atenção: O operador de atribuição = armazena o valor ou resultado de uma expressão contida à sua direita na variável especificada à sua es- querda.

• É importante notar que a atribuição éum comando, e nãouma equação.

1 >>> x=3

2 >>> y = 2*x

3 >>> y

4 6

5 >>> x = 5

6 >>> x

7 5

>>> y

(52)

9 6

10 >>>

• Suporte amúltiplas atribuições– mais de uma variável recebendo mesmo valor/expressão.

• Alterar o valor de uma variável não altera o valor das variáveis já calcula- das usando o antigo valor.

Operadores aritméticos

• Permitem criar expressões aritméticas utilizando números inteiros e fraci- onários;

• Seguem aprecedênciada matemática: exponenciações são realizadas antes de multiplicações e divisões, que são realizadas antes de somas e subtra- ções.

• A linguagem Python possui 5 operadores aritméticos:

Operador Exemplo Descrição

+ 2+3 Soma

- 3-1 Subtração

* 2*4 Multiplicação

/ 4.5/2 Quociente da divisão

** 2**3 Exponenciação

• Podemos alterar a precedência utilizandoparênteses ()

1 >>> 2 + 3 * 2

2 8

3 >>> (2 + 3) * 2

4 10

• O operador de subtração-também pode ser utilizado para inverter o sinal de um valor

1 >>> x = 10

2 >>> y = -x

3 >>> x

4 10

5 >>> y

6 -10

(53)

• Operadores especiais para valores inteiros:

Operador Exemplo Descrição

// 5//2 Quociente da divisão inteira

% 5%2 Resto da divisão inteira

• Exemplo:

1 >>> 10//3

2 3

3 >>> 10%3

4 1

• Os operadores aritméticos funcionam com ambos os tipos: intefloat

• Devemos apenas estar atentos aotipo resultanteda operação quando combiná- los:

– intcomintresulta em int – floatcomfloatresulta emfloat

– intcomfloat(e vice-versa) resulta emfloat

• Erros de arredondamento:

– Valores inteiros: são representados de forma exata no computador.

– Valores em ponto-flutuante: são aproximações finitas dos números reais.

– Erros de arredondamento podem se acumular após sucessivas opera- ções sobre os valores.

– Exemplo:

1 >>> 8/4

2 2.0

3 >>> 8/3

4 2.6666666666666665

• Exemplo:

(100/3−33)×3 = 100−33×3 = 1

(54)

• No Python:

1 >>> (100/3 -33) *3

2 1.000000000000007

3 >>> 100 -33*3

4 1

5 >>> 100 -33*3 - (100/3 -33) *3

6 -7.105427357601002e -15

Operadores relacionais

• Permitem a comparação de valores numéricos de diferentes variáveis.

• A linguagem Python possui 6 operadores relacionais:

Operador Exemplo Descrição

== x==5 Igual

!= x!=5 Diferente

> x>y Maior que

>= x>=10 Maior ou igual a

< y<100 Menor que

<= y<=z Menor ou igual a

• Esse tipo de operador retornaTrue(verdadeiro) ouFalse(falso).

• Podemos utilizar operadores aritméticos durante a comparação.

1 >>> x = 10

2 >>> y =20

3 >>> x == 11

4 False

5 >>> x != y

6 True

7 >>> 2*x > y

8 False

9 >>> 2*x >= y

10 True

Operadores lógicos

• São operadores que trabalham com valores lógicos e retornam um valor lógicoTrue (verdadeiro) ouFalse(falso).

(55)

Operador Exemplo Descrição and x==5 and x<y Operador “e”

or x!=5 or x<0 Operador “ou”

not not(x>y) Operador de negação

• Exemplo:

1 >>> x =10

2 >>> y = 20

3 >>> x>y or x >0

4 True

5 >>> x>y and x >0

6 False

7 >>> not(x > y)

8 True

9 >>> not(x>y and x >0)

10 True

• Tabela-verdade dos operadores lógicos

A B not A not B A and B A or B

False False True True False False False True True False False True

True False False True False True True True False False True True

Operadores de atribuição simplificada

• A linguagem Python permite simplificar algumas expressões matemáticas.

Operador Exemplo Descrição

+= c += a(equivale ac = c+a) Soma -= c -= a(equivale ac = c-a) Subtração

*= c *= a(equivale ac = c*a) Multiplicação /= c /= a(equivale ac = c/a) Quociente da divi-

**= c **= a(equivale ac = c**a) Exponenciaçãosão //= c //= a(equivale ac = c//a) Quociente da divi-

são inteira

%= c %= a(equivale ac = c%a) Resto da divisão in- teira

Referências

Documentos relacionados

O score de Framingham que estima o risco absoluto de um indivíduo desenvolver em dez anos DAC primária, clinicamente manifesta, utiliza variáveis clínicas e laboratoriais

O destaque é dado às palavras que abrem signi- ficados e assim são chaves para conceitos que fluem entre prática poética na obra de arte e sua reflexão em texto científico..

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

Atualmente os currículos em ensino de ciências sinalizam que os conteúdos difundidos em sala de aula devem proporcionar ao educando o desenvolvimento de competências e habilidades

Este desafio nos exige uma nova postura frente às questões ambientais, significa tomar o meio ambiente como problema pedagógico, como práxis unificadora que favoreça

Durante as nictemerais, os valores do fósforo total e do fosfato total nos dois viveiros apresentaram também valores acima do recomendado pela GAA, exceto para o fosfato total na

Distribuição espectral dos sistemas de iluminação LED e do controle Observa-se na Figura 12A, a análise de componentes principais, relacionado à biometria das mudas pré-brotadas

A respeito das propostas de desregulamentação nas relações de trabalho e da seguridade social no Brasil, percebidas tanto nas defesas do Banco Mundial quanto nas