mc102: algoritmos e programação de computadores (turmas 4 ... · mc102: algoritmos e...
TRANSCRIPT
![Page 1: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/1.jpg)
MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7)3 – Revisão da aula 2, escrita e leitura avançada, comando de ajuda.
ARTHUR VALENCIO
Campinas, 13 de Março de 2019
Instituto deComputação
Pós-doutorando IC/Unicamp
Fapesp CEPID NeuroMat
![Page 2: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/2.jpg)
2
![Page 3: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/3.jpg)
>>Python no PC/Smartphone
3
![Page 4: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/4.jpg)
>>Diagrama de caixa
4
Entrada (input) Saída (output)
• Usuário digitando valores no teclado
• Leitura de arquivossalvos nocomputador
• Coleta de dados na internet
• Captura de cliquedo mouse ou touchscreen
• Captura da webcamou microfone
• Visualizar resultados no terminal de comando
• Salvar resultados em um arquivo no computador
• Enviar informações para um banco de dados (web ou não)
• Realizar processos deautomação
• Exibir resultados em interface gráfica (baseada ou não em web)
• Imprimir resultados
![Page 5: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/5.jpg)
>>Função de ajuda
5
Vamos descobrir mais sobre as funções input e print:
>>> help(input)
>>> help(print)
![Page 6: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/6.jpg)
>>Função de ajuda
6
Vamos descobrir mais sobre as funções input e print:
>>> help(input)
>>> help(print)
Além de imprimir o(s) valor(es), mostra as opções existentes:sep , que informa sobre o separador, e cujo padrão (se não informarmos) é espaçoend, que informa sobre o que fazer quando concluir, cujo padrão é uma linha nova (\n)file, que diz para aonde será impresso o valor, e o padrão é a tela (sys.stdout)flush, que diz se o valor deve ser impresso imediatamente ou se pode esperar (padrão)
Mostra que podemos, se quisermos, escrever um texto para o usuário (prompt) explicando o que deseja que ele digite, e que este texto aparecerá sem pular linha no fim.Também fala para ter cuidado ao usar para leitura de arquivos, pois pode dar um erro de fim de arquivo (EOFError)
![Page 7: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/7.jpg)
>>Print com/sem flush
7
Sem flush:
import time
for i in range(5):print( “ . ” , end= “ ”)time.sleep(0.5)
Com flush:
import time
for i in range(5):print( “ . ” , end= “ ”, flush=True)time.sleep(0.5)
Já veremos isso nas próximas aulas
![Page 8: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/8.jpg)
>>Print números com número fixo de dígitos
8
pi=3.14159265359print(“%.2f” %pi)
Vou imprimir um valor que vou falar depois
Quero que este valor sejaapresentado com 2dígitos
Este valor éum float
Este é o valor que quero que imprima
%s: string%d: inteiro (int)%f: float%.<numero>f: float com <número> de dígitos%x ou %X: inteiros em hexadecimais
![Page 9: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/9.jpg)
>>Print números com número fixo de dígitos
curso=“MC102”nota=10.0000000001desistencias=0
print(“Nós vamos tirar %.1f em %s, com %ddesistencias, pois o professor é demais!” %nota %curso %desistencias)
![Page 10: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/10.jpg)
>>Relembrando input A função input só importa os valores como string
>>>x= input(“Informe o valor de x: ”)>>>print(type(x))<class ‘str’>>>>x=float(x)>>>print(type(x))<class ‘float’>
Forma compacta (aula anterior):
>>>x=float(input(“Informe o valor de x: ”))
![Page 11: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/11.jpg)
>>Strings: extras
meu_texto1=‘string começando com aspas simples permite texto contendo “aspas duplas”. Legal!’
meu_texto2= “string começando com aspas duplas permite texto contendo ‘aspas simples’. Incrível! ”
meu_texto3= ‘‘‘ strings com aspastriplas(três aspas simples)podem ser escritas em váriaslinhas! ’’’
meu_texto4= “““ possofazer o mesmocom
três aspas duplas! ”””
print(meu_texto1)print(meu_texto2)print(meu_texto3)print(meu_texto4)
![Page 12: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/12.jpg)
>>Strings: sequências de escape
São comandos especiais que você coloca dentro da string para produzir resultados especiais:
\n ou \newline: linha nova\t: tab\\: barra invertida (\)\’: aspas simples (‘)\”: aspas duplas (“)\r: voltar para o começo da linha\v: tab vertical\b: backspace\f: formfeed (quebra de página ou de seção)\a: ascii bell (som de bip)
![Page 13: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/13.jpg)
>>Métodos Diferentes tipos de variáveis tem operações (métodos) associadas a elas. Por exemplo, para strings:
meu_texto=“blablaBlablA”
a = meu_texto.capitalize() #a tem a 1ª letra maiúsculab = meu_texto.casefold() #converte tudo para minúsculas e ß=ss etcc=meu_texto.find(“aBl”) #diz a posição da 1ª vez que aBl aparece
em meu_texto. Se não houver, informa -1d=meu_texto.index(“aBl”) #o mesmo de find, ó que retorna
ValueError se não encontrar e=meu_texto.join(“e mais uma coisa!”) # adiciona esse texto à string inicialf=meu_texto.lower() #tranforma tudo em minúsculasg=meu_texto.replace(“b”, “C”) #substitui todos os b por C em meu_textoh=meu_texto.title() #transforma em formato de título (Este É Um Título)i=meu_texto.upper() # trasnforma tudo em maiúsculasj=meu_texto.split(“b”) #considera que b é um separador e divide em várias
palavras individuais (“la”, “la”, “la”, “lA”)
etc...
![Page 14: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/14.jpg)
14
Desafio: fazer um programa que faça essas perguntas para o usuário e, se ele acertar, diga:“Parabéns bravo(a) Sir/Dame <nome completo> com a nobre missão de <quest>.
Você conseguiu responder as três perguntas e não será atirado(a) no poço da desventura eterna”
![Page 15: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/15.jpg)
15
![Page 16: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/16.jpg)
>>Atualizações compactas
16
Para números (int e float), às vezes é tedioso atualizar os valores na forma:
>>> x=x+1ou >>> y=y+2.3ou>>> x=x+y
Poderia ser qualquer operador aritmético (+ - * / // % **)
x=x <operador> <valor>
Nesses casos, pode-se usar a atualização compacta:
>>> x+=1ou >>> y+=2.3ou>>> x+=y
Poderia ser qualquer operador aritmético (+ - * / // % **)
x <operador>= <valor>
![Page 17: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/17.jpg)
>>Atualizações compactas
17
x=float(input(“Digite o valor de x: ”))dx=float(input(“Digite o quanto x vai variar: ”))y=float(input(“Digite o valor de y: ”))dy=float(input(“Digite o quanto y vai variar: ”))
x=x+dxprint(x)
y+=yprint(y)
#Atualização convencional
#Atualização compacta
![Page 18: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/18.jpg)
>>Desafio
18
Faça um programa que converta um tempo em segundos informado pelo usuário para um
resultado que informe em<dd dias, hh horas, mm minutos e ss segundos>
Dica: utilize // e %
![Page 19: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/19.jpg)
19
![Page 20: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/20.jpg)
>>Revisão de expressõeslógicas
20
Seja a=<alguma expressão relacional/lógica>Como você faria para a ser True se x estiver entre 1 e 5 e False caso contrário?
![Page 21: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/21.jpg)
>>Revisão de expressõeslógicas
21
Ordem de precedência dos operadores aritméticos, relacionais e lógicos
![Page 22: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/22.jpg)
>>Spoilers da próximaaula
22
if <alguma expressão relacional/lógica>:#faça alguma coisa
elif <alguma outra expressão relacional/lógica>:#faça outra coisa
else#faça uma terceira coisa
#aqui fará mais coisas de qualquer forma, independente das condições acima
![Page 23: MC102: Algoritmos e Programação de Computadores (turmas 4 ... · MC102: Algoritmos e Programação de Computadores (turmas 4,5,6,7) 3 –Revisão da aula 2, escrita e leitura avançada,](https://reader035.vdocuments.com.br/reader035/viewer/2022081522/5f0264037e708231d4040a7e/html5/thumbnails/23.jpg)
That´s all folks!
http://www.arthurvalencio.com/mc102
http://www.ic.unicamp.br/~mc102
Instituto deComputação