• Nenhum resultado encontrado

Fundamentos de Programação. revisão e adendos

N/A
N/A
Protected

Academic year: 2021

Share "Fundamentos de Programação. revisão e adendos"

Copied!
72
0
0

Texto

(1)

Fundamentos de

Programação

(2)

Programas manipulam valores/dados (textos, números, ...) de tipos

distintos

O tipo de dado define o conjunto de valores válidos e disponibiliza um

conjunto de operações que podem ser efetuadas

Em Python os dados são objetos de um determinado tipo.

Todo objeto tem um tipo e um valor que são determinados quando é

criado e é armazenado na memória no formato de seu tipo.

É necessário conhecer como a linguagem Python lida com os tipos de

dados para evitar erros como realizar operações incompatíveis ao tipo

Tipos de dados

float 3.141592653589793 str Mia#0 int 2017

(3)

Dados Tipo Valores Válidos Exemplos Numéricos Inteiros int N Z precisão fixa 5 101 6 -943 -4 Numéricos com parte fracionária float Q R Precisão variável mantissa (m) e expoente (e) 15.3 -0.37 6. .37 15e-5 Textuais ou string Sequência de letras, dígitos, símbolos igual ao número de 'a' '?' '6' '101' '12@34#$'

(4)

 Uma variável é uma associação entre um nome e um valor.

Pode ser utilizada e alterada pelo programa e deve ser criada antes de ser

usada.

O nome de uma variável pode ter um ou mais caracteres. Regras:

1º caratere: letra ou underscore('_')

Demais caracteres: letras, números ou underscore ('_')

• Letras maiúsculas e minúsculas são consideradas diferentes; • Proibido: caracteres especiais, espaços ou palavras reservadas

Em Python, o tipo da variável é o tipo do valor associado  operações

mudam de acordo com o tipo

Variável

; str Mia#0 nome float 3.141592653589793 pi int 2017 ano

(5)

 Na 1ª atribuição: a variável é criada e seu conteúdo referencia o valor

resultante da expressão.

 Nas demais atribuições: o valor da variável é substituído pelo resultado

da expressão

Atribuição

(1/5)

nomeVariável = expressão

(6)

Atribuição

(2/5)

Operação Operador Aritmético

Soma + Subtração -Multiplicação * Divisão / Divisão de inteiros // Resto da divisão % Potenciação ** Negativo

-<operando> operador aritmético -<operando> expressão aritmética:

nomeVariável = expressão

Valor constante

Variável ou retorno da chamada de uma função

(7)

Expressão Aritmética

expressão aritmética:

A expressão é avaliada de acordo com a prioridade dos operadores

1) Exponenciação (**)

2) Multiplicação e Divisão (*,/,//,%) 3) Soma e Subtração (+, -)

A ordem de avaliação pode ser modificada por parênteses

(8)

Atribuição

(3/5)

import math

total = 100 # Cria variável total que referencia o objeto inteiro 100 peso = 10.5 # Cria variável peso que referencia o objeto real 10.5 angulo = math.pi # Cria variável angulo que referencia o objeto real pi

nome = 'Mia' # Cria variável nome que referencia o objeto string "Mia"

int 100 total float 10.5 peso angulo float 3.141592653589793 pi str Mia nome

Operações válidas com total operações do

tipo inteiro (+, -, *, /, //, %, **)

(9)

Atribuição

(4/5)

import math

total = 100 # Cria variável total que referencia o objeto inteiro 100 peso = 10.5 # Cria variável peso que referencia o objeto real 10.5 angulo = math.pi # Cria variável angulo que referencia o objeto real pi

nome = 'Mia' # Cria variável nome que referencia o objeto string "Mia"

total = 'Não sei...'

int 100

total angulo float

3.141592653589793 pi

(10)

Atribuição

(5/5)

import math

total = 100 # Cria variável total que referencia o objeto inteiro 100 peso = 10.5 # Cria variável peso que referencia o objeto real 10.5 angulo = math.pi # Cria variável angulo que referencia o objeto real pi

nome = 'Mia' # Cria variável nome que referencia o objeto string "Mia"

total = 'Não sei...'

float 10.5 peso angulo float 3.141592653589793 pi str Mia nome Operações válidas com total operações do tipo string (+,*) str Não sei... total

(11)

Operador +: adiciona ou concatena

 Se ambos operandos são numéricos : soma os números  Se ambos operandos são textos : concatena os textos

 Demais casos: erro de execução (TypeError: não converte tipos implicitamente)

float 100 total float 102 dTot Str Mia@gmail.com email str Mia nome

dTot = total + 2 # dTot é criado e associado ao objeto int resultante de 100+2

total = total + 4.2 # total é associado ao objeto float resultante de 100+4.2

email = nome+ '@gmail.com' # email é criado e associado ao objeto str da concatenação

(12)

Operador *: multiplica ou replica

 Se ambos operandos são numéricos: multiplica os números

Se um operando é texto e outro nº inteiro: replica a string nº vezes  Demais casos: erro de execução (TypeError: não converte tipos implicitamente)

int 104.2 total int 204 a str MiaMiaMia nomRep str Mia nome

a = dTot * 2 # dTot é criado e associado ao objeto int resultante de 100+2

b = dTot * 2.0 # total é associado ao objeto float resultante de 100+4.2

nomRep = nome * 3 # noRep é criado e associado ao objeto str com 'Mia' replicado 3 vezes

float cAng int 102 dTot Exemplos: float 204.0 b

(13)

Strings são sequências de caracteres.

 As posições dos carateres na sequência são numeradas por índices:  da esquerda para direita, iniciando em 0.

da direita para a esquerda iniciando em -1.

É possível acessar um caractere ou um intervalo (fatia/slice) da string,

mas não modificá-los.

Mais sobre Strings: índices

string s:

(14)

Um caractere é uma string de comprimento 1.

 Um elemento pode ser selecionado (indexado) pelo seu índice (sua

posição na sequência) utilizando o operador de indexação [ ]:

Operações em Strings:

acesso aos elementos

string s:

string[expressão inteira]

'm' '!' s[-9] s[-1] -10 -9 -8 -7 -6 -5 -4 -3 -2 -1

U

m

a

f

r

a

s

e

!

0 1 2 3 4 5 6 7 8 9 s[0] s[3] s[9] 'U' ' ' '!'

(15)

Seleciona um intervalo (fatia) da string da posição a (inclusive) até a posição b (exclusive) de n em n.

Operações em Strings: fatias

string s:

-10 -9 -8 -7 -6 -5 -4 -3 -2 -1

U m a f r a s e !

0 1 2 3 4 5 6 7 8 9

Se a não for definido, será considerado como zero

Se b não for definido, será considerado o tamanho da string.Se o intervalo n (entre os caracteres), não for definido, será 1.

Exemplo:

(16)

Exemplos de fatias de strings

s[:5] s[4:] s[-1:-3:-1] s[-1:-3] s[-3:-1] s[:] s[::2] s[0:4:2] s[4:0:-2] string s: -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 U m a f r a s e ! 0 1 2 3 4 5 6 7 8 9 'Uma f' 'frase!' '!e' '' 'se' 'Uma frase!' 'Uafae' 'Ua‘ ‘fa‘ Qual a string resultante?

(17)

Fatias (slices): Resumo

seq[a:b: n]

seq[a : b] - cria uma cópia de a (inclusive) até b (exclusive)

seq[a : ] - cria uma cópia a partir de a (inclusive)

seq[ : b] - cria uma cópia até b (exclusive)

seq[ : ] - cria uma cópia de todos os elementos

seq[a : b: n] - cria uma cópia de a (inclusive) até b (exclusive) de n em n

(18)

Variável String x Atribuição

(1/6)

emailProf = 'Mia@gmail.com' # Cria variável emailProf

(19)

Variável String x Atribuição

(2/6)

emailProf = 'Mia@gmail.com' # Cria variável emailProf

emailPart = 'Mia123@hotmail.com' # Cria variável emailPart

str

Mia@gmail.com emailProf

(20)

Variável String x Atribuição

(3/6)

emailProf = 'Mia@gmail.com' # Cria variável emailProf

emailPart = 'Mia123@hotmail.com' # Cria variável emailPart

emailProf = 'Mia@puc-rio.br' # Associa outro valor à variável emailProf

str Mia@gmail.com emailProf str Mia123@hotmail.com emailPart

Representação

(21)

Variável String x Atribuição

(4/6)

emailProf = 'Mia@gmail.com' # Cria var emailProf

emailPart = 'Mia123@hotmail.com' # Cria var emailPart

emailProf = 'Mia@puc-rio.br' # Associa outro valor à variável emailProf

str

Mia@puc-rio.br emailProf

(22)

Variável String x Atribuição

(5/6)

emailProf = 'Mia@gmail.com' # Cria var emailProf

emailPart = 'Mia123@hotmail.com' # Cria var emailPart

emailProf = 'Mia@puc-rio.br' # Associa outro valor à variável emailProf

emailProf[0] = 'a' str Mia@puc-rio.br emailProf str Mia123@hotmail.com emailPart

Representação

(23)

Variável String x Atribuição

(6/6)

emailProf = 'Mia@gmail.com' # Cria var emailProf

emailPart = 'Mia123@hotmail.com' # Cria var emailPart

emailProf = 'Mia@puc-rio.br' # Associa outro valor à variável emailProf

emailProf[0] = 'a'

#ERRO!!!!!

str Mia@puc-rio.br emailProf

Representação

emailProf[0]='a'

(24)

1. Crie uma string com o 2º e o 3º caractere da frase "Oie, tudo bem" replicados 4 vezes. Exemplo: ‘ieieie'

Dicas: associe a frase inicial a uma variável

Uma fatia pode ser "separada" com o uso do operador [a:b:n] o operador + concatena strings

o operador * replica strings

2. A operadora de celular em uma cidade guarda os números no formato abaixo. '+55(021)8888-8888' . Como a região trocou de 8 para 9 algarismos:

Separe o paísSepare a área

Separe o número do telefone

Crie a string com paísáreanº(velho)

Coloque o 9 antes do nº do telefone no formato da operadoraCrie a string com paísáreanº(novo)

(25)

3. Crie a string alfabeto

>>>alfabeto = "abcdefghijklmnopqrstuvwxyz" e, a partir da string alfabeto:

a) crie uma string com o caractere do meio b) Importe o módulo random

• Veja o help da função choice : help(random.choice) • Veja o help da função randint : help(random.randint)

c) Mostre o caractere do alfabeto escolhido pelas duas funções (choice

e o randint)

CUIDADO: A função randint gera um nº em um intervalo. Para saber o

(26)

4. Guarde seu nome em uma variável. Exemplo: nome= 'Pedro José Silva Só'

a) Exiba o sobrenome seguido de vírgula e do resto do nome(Só,Pedro José Silva)

b) Exiba uma string formada por '*' com mesmo comprimento de seu nome (*******************).

Dica: a função len(string) retorna o comprimento da string a) Exiba seu primeiro nome invertido ('ordeP')

b) Replique o caractere do meio de seu nome, para que tenha o mesmo comprimento de seu primeiro nome ('ééééé')

5. Guarde sua data de nascimento em uma variável no formato 'dd/mm/aaaa'. Exemplo dt = '01/01/1984'

a) Exiba apenas o ano ('1984') b) Exiba o ano invertido ('4891')

c) Exiba toda a data invertido ('4891/10/10')

(27)

6. Um operador de crossover pode ser aplicado a duas strings s1 e s2 e consiste em sortear aleatoriamente um ponto de s1 e s2. Escolhido este ponto, então, é realizada a troca de informações de s1 e s2 tal como mostrado no esquema da Figura abaixo

a) crie duas strings s1 e s2

b) considere um ponto de quebra sorteado via randint

(28)

 Em geral computa valores a partir de valores recebidos:

uma função pode receber e/ou retornar valores.

 As funções são ativadas pelo nome por outra função, módulo ou

diretamente no interpretador

 Quando a função termina, o controle retorna para o ponto de onde a

função foi chamada (invocada/ativada)

Funções

Uma função é uma sequência de instruções (bloco de código) independente, a qual se atribui um nome e que realiza uma tarefa específica

(29)

Desenvolvimento da solução por partes

P

ermite pensar no problema em diversos níveis

 Modularização

 Testes independentes – facilita a correção de erros

Reuso

Mais legível (código menor)

Facilita a manutenção

(30)

Definição da função inicia com "def"

o cabeçalho termina com :

(31)

Definição da função inicia com "def" Nome da função

o cabeçalho termina com :

(32)

Definição da função inicia com "def" Nome da função

o cabeçalho termina com : Parâmetros

(33)

Definição da função inicia com "def" Nome da função o cabeçalho termina com : Parâmetros Identação

Definindo Funções

(4/6)

(34)

Definição da função inicia com "def" Nome da função o cabeçalho termina com : Parâmetros Identação "return" encerra a função, podendo retornar um valor

Definindo Funções

(5/6)

(35)

Definindo Funções

(6/6)

Definição da função inicia com "def" Nome da função

o cabeçalho termina com : Parâmetros Identação "return" encerra função, podendo retornar um valor docstring Texto sucinto que descreve o objetivo da função

(36)

Formato geral:

onde:

nome : nome associado à sequência de instruções

v1..vn: parâmetros - nomes associados aos valores transmitidos à função na sua chamada e necessários para realizar sua tarefa

• Uma função pode ter 0, 1 ou mais parâmetros

comandos: sequência de instruções que será executada quando a função é

invocada

O comando return <exp>

a) força o encerramento da função, retornando para quem a chamou.

Funções: Sintaxe

def funcao_qualquer (v1, v2, ... v2): """ texto de documentação""" comando . . . comando return algo

(37)

 A definição da função deve ser feita antes da sua chamada para que o

Python reconheça o seu nome.

 Não pode haver funções e variáveis com o mesmo nome!

 Os valores recebidos são associados aos parâmetros na ordem que

estão na chamada.

 A chamada da função deve incluir um valor para cada parâmetro

(exceção: parâmetros com valores default)

Uma função pode ter 0, 1 ou mais return.  Uma função pode chamar outra função.

Observações sobre Funções

def f(x,y):

return x-y

def g(x,y):

(38)

Observações

O que acontece???

def

f

(x,y):

return

x-y

a=3

b=4

c=f(b,a)

#c:1

d=f(a,b)

#d:-1

A declaração da função deve ser feita antes da sua chamada para que o Python reconheça o seu nome.

(39)

Funções: definição e uso

(1/14) O que acontece???

def

f

(x,y):

return

x-y

a=3

b=4

c=f(b,a)

#c:1

d=f(a,b)

#d:-1

int 3 a A função só é executada se for ativada em algum comando

(40)

Funções: definição e uso

(2/14) O que acontece???

def

f

(x,y):

return

x-y

a=3

b=4

c=f(b,a)

#c:1

d=f(a,b)

#d:-1

int 3 a b int 4

(41)

Funções: definição e uso

(3/14) O que acontece???

def

f

(x,y):

return

x-y

a=3

b=4

c=f(b,a)

#c:1

d=f(a,b)

#d:-1

int 3 a b int 4 A função só é A chamada da função deve incluir um valor para cada parâmetro

(42)

Funções: definição e uso

(4/14) O que acontece???

def

f

(x,y):

return

x-y

a=3

b=4

c=f(b,a)

#c:1

d=f(a,b)

#d:-1

int 4 x y int 3

Os valores são recebidos e associados aos parâmetros na ordem que estão na chamada.

(43)

Funções: definição e uso

(5/14) O que acontece???

def

f

(x,y):

return

x-y

a=3

b=4

c=f(b,a)

#c:1

d=f(a,b)

#d:-1

int 4 x y int 3

(44)

Funções: definição e uso

(6/14) O que acontece???

def

f

(x,y):

return

x-y

a=3

b=4

c=f(b,a)

#c:1

d=f(a,b)

#d:-1

1

(45)

Funções: definição e uso

(7/14) O que acontece???

def

f

(x,y):

return

x-y

a=3

b=4

c=f(b,a)

#c:1

d=f(a,b)

#d:-1

int 3 a b int 4 c Int 1

(46)

Funções: definição e uso

(8/14) O que acontece???

def

f

(x,y):

return

x-y

a=3

b=4

c=f(b,a)

#c:1

d=f(a,b)

#d:-1

int 3 a b int 4 c Int 1

(47)

Funções: definição e uso

(9/14) O que acontece???

def

f

(x,y):

return

x-y

a=3

b=4

c=f(b,a)

#c:1

d=f(a,b)

#d:-1

int 3 x y int 4

Os valores são recebidos e associados aos parâmetros na ordem que estão na chamada.

(48)

Funções: definição e uso

(10/14) O que acontece???

def

f

(x,y):

return

x-y

a=3

b=4

c=f(b,a)

#c:1

d=f(a,b)

#d:-1

int 4 x y int 3

(49)

Funções: definição e uso

(11/14) O que acontece???

def

f

(x,y):

return

x-y

a=3

b=4

c=f(b,a)

#c:1

d=f(a,b)

#d:-1

-1

(50)

Funções: definição e uso

(12/14) O que acontece???

def

f

(x,y):

return

x-y

a=3

b=4

c=f(b,a)

#c:1

d=f(a,b)

#d:-1

int 3 a b int 4 c Int 1 d int -1

(51)

Funções: definição e uso

(13/14) O que acontece???

def

f

(x,y):

return

x-y

a=3

b=4

c=f(b,a)

#c:1

d=f(a,b)

#d:-1

e=x-3

(52)

O que acontece???

Funções: definição e uso

(14/14)

def

f

(x,y):

return

x-y

a=3

b=4

c=f(b,a)

#c:1

d=f(a,b)

#d:-1

e=x-3

e=x-4

NameError: name 'x' is not defined

Os parâmetros e demais variáveis

definidas dentro da função são locais a

ela, isto é, só existem onde foram

definidas

As variáveis locais são descartadas quando a função é finalizada

(53)

Faça a função nomeSite que receba o código de uma disciplina da PUC, construa e retorne o endereço (URL) do site da disciplina.

Exemplo: código da disciplina: inf1025

String de retorno: www.inf.puc-rio.br/~inf1025

(54)

Faça a função nomeSite que receba o código de uma disciplina da PUC, construa e retorne o endereço da site da disciplina

Exemplo: código da disciplina: inf1025

String de retorno: www.inf.puc-rio.br/~inf1025

URL: desenvolvendo a solução

(1/5)

I. Qual o objetivo desta função?

Responder a quem a ativou o endereço do site da disciplina  retornar uma string

(55)

Faça a função nomeSite que receba o código de uma disciplina da PUC, construa e retorne o endereço da site da disciplina

Exemplo: código da disciplina: inf1025

String de retorno: www.inf.puc-rio.br/~inf1025

URL: desenvolvendo a solução

(2/5)

I. Qual o objetivo desta função?

Responder a quem a ativou o endereço do site da disciplina  retornar uma string

(56)

Faça a função nomeSite que receba o código de uma disciplina da PUC, construa e retorne o endereço da site da disciplina

Exemplo: código da disciplina: inf1025

String de retorno: www.inf.puc-rio.br/~inf1025

URL: desenvolvendo a solução

(3/5)

I. Qual o objetivo desta função?

Responder a quem a ativou o endereço do site da disciplina  retornar uma string

II. Do que a função precisa para realizar sua tarefa?

(57)

Faça a função nomeSite que receba o código de uma disciplina da PUC, construa e retorne o endereço da site da disciplina

Exemplo: código da disciplina: inf1025

String de retorno: www.inf.puc-rio.br/~inf1025

URL: desenvolvendo a solução

(4/5)

I. Qual o objetivo desta função?

Responder a quem a ativou o endereço do site da disciplina  retornar uma string

II. Do que a função precisa para realizar sua tarefa?

(58)

Faça a função nomeSite que receba o código de uma disciplina da PUC, construa e retorne o endereço da site da disciplina

Exemplo: código da disciplina: inf1025

String de retorno: www.inf.puc-rio.br/~inf1025

URL: desenvolvendo a solução

(5/5)

I. Qual o objetivo desta função?

Responder a quem a ativou o endereço do site da disciplina  retornar uma string

II. Do que a função precisa para realizar sua tarefa?

Do nome da disciplina (uma string)

III. Como ela realiza sua tarefa?

1. Separa o código do departamento

(59)

URL: uma possível solução

def

nomeSite

(codigoDaDisciplina):

""" Nome do site dada disciplina"""

dep = codigoDaDisciplina [:3]

site = '

www.

‘\

+ dep\

+ '

.puc-rio.br/~

‘\

(60)

Escopo dos nomes

(1/3) import

random

def

f

(x,y):

a=random.randint(x,y) return a+x-y

a=3

b=4

c=f(b,a)

d=f(a,b)

escopo 1- Módulo escopo 2 - Função

 O escopo define a visibilidade de

nomes em blocos de códigos (módulo,função,comando):

Espaço de nomes (name space) -nomes acessíveis em um ponto do programa.

 Um programa começa no escopo

do módulo, global (escopo1) e cada função / bloco acrescenta um escopo próprio – local

(61)

Escopo dos nomes

(2/3) import

random

def

f

(x,y):

a=random.randint(x,y) return a+x-y

a=3

b=4

c=f(b,a)

d=f(a,b)

escopo 2 - Função

 Variável criada fora de um bloco

é visível em qualquer lugar

 Variável criada dentro de um

bloco, só existe se esse bloco for executado

Quando um nome é acessado,

todos os escopos são

(62)

Escopo dos nomes

(3/3) import

random

def

f

(x,y):

a=random.randint(x,y) return a+x-y

a=3

b=4

c=f(b,a)

d=f(a,b)

escopo 1- Módulo escopo 2 - Função Variáveis Locais Variáveis Globais a foi 'ofuscada', pois foi (re)definida na função Escopo 1 – Módulo Nomes: função f Variáveis: a,b,c,d Instruções imediatamente executadas pelo interpretador Escopo 2 – Função f Nomes:

Variáveis locais: a,x,y Variáveis Globais: b,c,d Instruções executadas só quando ativadas em um bloco de código

(63)

Variável criada dentro de um bloco só existe se esse bloco for executado:

Blocos e variáveis: cuidado!!

nome =''

for letra in nome k=letra*2 nome=nome+k

(64)

Variável criada dentro de um bloco só existe se esse bloco for executado:

Bloco não roda, não cria variável!

nome =''

for letra in nome k=letra*2 nome=nome+k

nome=nome+k

NameError: name 'k' is not defined

Nome está vazio

bloco do for não é executado

a variável k não foi criada!!

(65)

Uma função pode chamar a si própria, isso é chamado de função recursiva.

Cada vez que a função é chamada, uma nova instância de suas variáveis e parâmetros é criada.

(66)

 Um módulo basicamente é um arquivo contendo funções, variáveis e

constantes, com extensão .py

 Python fornece uma biblioteca padrão com inúmeros módulos

 O programador pode criar seus próprios módulos, salvando seus

arquivos com extensão .py.

Cuidado: para importar um módulo do programador, este deve estar

salvo na mesma pasta do módulo atual ou em um caminho conhecido do Python...

 Um módulo pode ser importado por outro módulo para que este possa

fazer uso da suas funcionalidades pelo comando import

(67)

import móduloX:

insere uma referência ao móduloX no namespace do módulo atual.Todos os nomes definidos no móduloX podem ser acessados.

móduloX.função(...) – ativa uma função do móduloXfrom móduloX import * :

Todos as definições do móduloX são inseridas diretamente no namespace atual.

Basta o nome da função definida no móduloX para ativá-lafrom móduloX import f1, f2, f3 :

apenas as funções f1, f2 e f3 do móduloX são inseridas no namespace do módulo atual. Útil em módulos com muitas funções:

(68)

1. a) construa uma função que recebe as coordenadas de dois pontos e retorna a distância euclidiana entre eles.

A fórmula da distância euclidiana é: d² = (Xa-Xb)² + (Ya-Yb)².

b) construa uma função que recebe as coordenadas de três pontos quaisquer do plano que formam um triângulo (ou seja, as coordenadas x e y do ponto A, do ponto B e do ponto C) e retorne o perímetro deste triângulo calculado por:

d(A,B) + d(A,C) + d(B,C)

Exemplo: perimetro(-100,100,140,0,-290,290)  535.6643996204651

c) crie a função desenhaTri, que recebe um tartaruga e os 3 pontos, desenha o triângulo formado pelos pontos com o uso do módulo turtle e escreve na coordenada 0,0 o valor do perímetro. Veja as funções goto() e write() do módulo

turtle

Observações: As funções distância, perimetro e desenhaTri, devem estar no módulo “functriangulo.py”.

Outro módulo chamado de “progTri.py” deve importar o módulo “functriangulo”,

(69)

2. a) construa uma função que recebe o raio de um círculo e retorna sua área

b) construa uma função que recebe um raio, calcule a área de cada alvo conforme esquema abaixo e retorne um string com:

' Área verde: ... Área amarela:... Área preta: ... ‘

• O círculo externo, de cor verde, tem raio igual ao recebido,

• O raio do intermediário, de cor amarela, é 2/3 do raio do círculo

externo

Exercícios

(2/5)

(70)

3. Dizem que para saber o seu número da sorte basta você seguir os seguintes passos:

 Multiplique sua idade por 4.  Some 8.

 Multiplique o resultado por 60.  Divida por 240.

 Some 22.

 Subtraia a sua idade.

 PARABENS! Esse é seu número da sorte.

Escreva um função que receba o nome e a idade de uma pessoa e retorne a frase: "Parabéns fulano! seu número da sorte é x!", onde fulano é o nome da pessoa, e x é o número da sorte encontrado.

Faça uma função separada para calcular o número da sorte.

(71)

4. a) Faça uma função sopaletras, que recebe uma string e retorna esta string rotacionada para a esquerda (a 1

ª

letra vira última).

Exemplo: >>> sopaletras ('abcdef') bcdefa

b) DESAFIO: crie uma função que recebe uma string e constrói todas suas rotações.

Exemplo: >>> sopaletras ('abcdef')

' bcdefa cdefab defabc efabcd fabcde'

5. Faça um função que receba um verbo regular terminado em er e retorne uma string com sua conjugação no presente do indicativo.

Exemplo: >>> conjugar('absorver‘)

(72)

6. a) Faça uma função que receba uma string e retorna uma string apenas com os caracteres de índices pares

b) Faça um função que receba uma string e retorne uma string com os caracteres da string recebida ao contrário

c) Faça uma função que recebe o nome de uma pessoa e a data de nascimento ('dd/mm/aaaa' ) e crie e retorne sua senha de acordo com a seguintes regra:

caracteres dos índices pares + dia do nascimento +

caracteres dos índices pares invertidos

Exemplo: senha('Patinhas', '22/12/1900')  'Ptna22antP'

Referências

Documentos relacionados

Aprova as (IR 60 – 10) Instruções Reguladoras para a Organização e o Funcionamento do Programa de Atualização dos Diplomados pela Escola de Comando e Estado-Maior do

As novas medidas As novas medidas estão incluídas nas mudanças econômicas anunciadas em. estão incluídas nas mudanças econômicas anunciadas em estão incluídas nas

[r]

[r]

2 No caso do controlo de grupo, estabeleça as ligações elétricas do controlo remoto com a unidade principal quando ligar ao sistema de operação simultânea (as ligações elétricas

[r]

1 - Origem Geográfica das Escolas Lisboa Beja Faro Bragança Santarém Castelo Branco Coimbra Évora Leiria Portalegre Setúbal Viseu Estrangeiro... 55 e 56 – Memórias Terrenas de um

b) original de um dos seguintes documentos de identificação: Cédula de Identidade (RG), Carteira de Órgão ou Conselho de Classe, Carteira de Trabalho e Previdência Social