• Nenhum resultado encontrado

Minicurso de lógica de programação e solução de problemas de forma criativa em Python

N/A
N/A
Protected

Academic year: 2021

Share "Minicurso de lógica de programação e solução de problemas de forma criativa em Python"

Copied!
19
0
0

Texto

(1)
(2)
(3)

Introdução

Aprender computação e linguagens de programação, a primeira vista, pode ser algo assustador. Porém, conforme mergulhamos neste mundo, essa visão pode mudar para algo apaixonante e muito divertido. Neste curso, com conhecimentos prévios de lógica de programação, aprenderemos uma forma criativa de solucionar problemas cotidianos com uma linguagem simples e muito eficiente: Python.

Python é uma linguagem conhecida por ser extremamente simples e fácil de aprender. Ainda assim, é uma linguagem muito poderosa que pode ser aplicada em vários contextos tecnológicos como Inteligência Artificial e Computação Gráfica. Neste minicurso aprenderemos os conceitos básicos desta linguagem.

Seja bem-vinda e esperamos que você aproveite o minicurso! Meninas do Projeto ++C&TpM

(4)

Autora Lara Tenore

Revisão Erika Yahata, Thais Ribeiro

Date Junho, 2018

Coordenadora Mirtha Lina Fernández Venero

(5)

Índice

Tipos de dados 5

Operadores aritméticos 5

Operadores relacionais 6

Operadores lógicos 7

Entrada e saída de dados 7

Condicional simples 9

Condicional composta 10

Range 13

Estrutura de repetição: for 13

Variáveis acumuladoras 14

Break 14

(6)

Tipos de dados:

Os tipos de dados em Python são os representados na tabela abaixo. Esses tipos são atribuídos pela linguagem a cada variável criada.

Pseudocódigo Python

Inteiro Int (inteiro)

Real Double, float, long (reais)

Caractere String (caracteres)

--- Booleanos

Apesar de esses tipos serem bem definidos, em Python não é necessário definir

o tipo de cada variável como fazíamos com pseudocódigo. Assim, não existe o passo

de criação de variáveis no algoritmo. Por um lado, isso é positivo por termos facilidade

de criar variáveis sem pré-definir seus tipos. Porém, é importante ter muita atenção no

tipo implicitamente atribuído para cada variável para evitar erros com operações incompatíveis (ex: "abc"/2)

Operadores aritméticos:

Os operadores aritméticos em Python, apresentados na tabela abaixo, são muito

parecidos com os operadores que usamos no nosso cotidiano com a matemática.

Esses operadores podem ser aplicados em qualquer tipo numérico da linguagem.

Operador Operação

+ Adição

- Subtração

(7)

/ Divisão

** Potenciação

% Módulo

Estes operadores são usados principalmente para operações usando números.

Porém, o operador de adição pode ser usado para concatenar dois caracteres ou duas

strings. Assim, "Olá" + "mundo" resulta em "Olá mundo".

O operador (%) chamado de módulo é usado para encontrar o resto de uma

divisão de um inteiro com outro inteiro. (ex: 7 % 3 = 1). O operador (**) de potenciação

é usado para cálculo de potência de uma base por um expoente. Assim, o número

posicionado à esquerda do operador representa a base e o número à direita, a

potência. (ex: 3 ** 2 = 9). Operadores relacionais:

Operadores relacionais em Python, apresentados na tabela abaixo, podem ser usados para comparar números.

Operador Exemplo

== (igual) 1 == 1 → True

!= (diferente) 1 != 2 → True

< (menor que) 4 < 3 → False

> (maior que) 5 > 2 → True

<= (menor ou igual) 1 <= 1 → True

(8)

Operadores lógicos:

Os operadores lógicos em Python, apresentados na tabela abaixo, podem ser usados para comparar duas expressões que podem atribuir valores booleanos (True ou False).

Operador Exemplo

and True and True = True

or False or True = True

not not True = False

Entrada e saída de dados:

Os operadores de entrada e saída de dados em Python são os apresentados

respectivamente na tabela abaixo.

Pseudocódigo Python

leia (variável) variável = input( )

escreva (variável) print (variável)

Exercícios:

1 – Identifique os tipos de variáveis com os tipos definidos em Python : a) Nome de pessoa b) Idade c) Nome do cachorro d) Bairro e) Cidade f) Cep

(9)

g) Telefone

h) Soma de 2 números i) Nome da mãe

2- Pensando no seu facebook, como você adicionaria seus amigos no seu perfil? Crie

um algoritmo em Python que recebe o nome de 3 amigos, de onde você conhece cada

um deles, o dia e o mês que esse amigo faz aniversário (considere o mês como um

número).

3 - Escreva um algoritmo que solicite o preço de 3 produtos e mostre a soma.

4 - Escreva um algoritmo que solicite um verbo e então, deve ser mostrado na tela

"Você é capaz de " concatenado do verbo que foi escrito, e seguido do ponto de

interrogação.

5– Escreva um algoritmo para cadastrar e imprimir na tela os dados de uma disciplina

(10)

Estruturas de controle condicional

Estruturas de controle condicional são usadas em programas para tomadas de decisões. Essas decisões são tomadas com base em condições, ou seja, sempre que

uma condição for verdadeira, uma sequência de instruções é executada. Em Python

trabalhamos com condicionais simples e compostas. Condicional simples:

● A condicional simples é dada apenas pela estrutura ​if:

if ​condição:

instruções Exemplo:

x = int(input("Qual é a sua idade?")) if x >= 18:

print("Você já pode dirigir") print("Fim do programa")

Vale ressaltar que em Python é muito importante manter o código organizado

com suas devidas indentações. Após a linha da cláusula ​if ​usa-se um espaçamento

(​tab​) para que o programa entenda que as próximas instruções devem ocorrer apenas

se a condição for satisfeita. Assim, a frase "Você já pode dirigir" só será impressa na

tela se a idade for maior ou igual a 18 anos porque está no bloco dentro do if. Por outro

lado, a frase "Fim do programa") será impressa todas as vezes em que o programa for

(11)

Condicional composta:

● A condicional composta em Python é dada pelas estruturas ​if / elif / else

if ​condição: instruções elif ​condição: instruções else​: instruções Exemplo:

x = int(input("Qual é a sua idade?")) if x >= 18:

print("Você já pode dirigir e já pode votar") elif x < 18 and x >= 16:

print("Você ainda não pode dirigir mas já pode votar") else:

print("Você ainda não pode dirigir e nem votar")

No exemplo dado acima, as cláusulas ​if e ​elif apenas são executadas se suas

condições forem verdadeiras (​elif só é executado se ​if não tiver sua condição

verdadeira). A cláusula ​else é executada sempre que todas as cláusulas anteriores não

foram executadas. Assim, para qualquer idade que não seja maior ou igual a 18 anos

ou entre 16 e 18 anos, o programa imprimirá na tela a frase "Você ainda não pode

(12)

Exercícios:

1)​ ​Vamos programar uma máquina de doces!

Crie um algoritmo que:

a. Mostre para o cliente a lista de doces e seus números: (use "\n" para pular linha)

FINI 34 R$ 5,00 Chokito 80 R$ 3,00 Sonho de valsa 57 R$ 1,50 Pão de mel 22 R$ 6,00 Diamante Negro 75 R$ 2,50 Laka 90 R$ 3,50

b. Quando o cliente escolher o doce pelo nome, você pede para ele confirmar pelo

nome do doce.

c. Se o cliente confirmar, você apresenta o preço do doce e pede a forma de

pagamento (cartão ou dinheiro). Se o cliente negar o doce apresentado, o programa

acaba.

d. Quando o cliente escolher a forma de pagamento, a máquina apresenta uma

mensagem de sucesso na compra.

2) Você foi contratada para criar uma máquina de pagamento de estacionamento para

um shopping. Para se organizar, você decide primeiro fazer a parte do programa que

define se a pessoa ainda está na tolerância de tempo (e não precisa pagar nada). Crie

um programa que apresenta uma mensagem pedindo para inserir o cartão e então

recebe o tempo em que o carro do cliente está estacionado. Se o tempo for menor que

(13)

 

3) Continuando com o nosso caixa de estacionamento, agora temos que indicar o valor

que o cliente precisa pagar de acordo com a tabela:

Até 15 minutos R$ 0,00 (cortesia)

Até 1 hora R$ 9,00

Até 3 horas R$ 12,00

Até 5 horas R$ 15,00

Acima de 5 horas R$ 17,00

Por fim, precisamos pedir para o cliente indicar qual vai ser a forma de pagamento.

● Se o cliente selecionar dinheiro, informamos que só aceitamos notas de 5, 10 e

20 reais;

● Se o cliente selecionar cartão, devemos perguntar se o pagamento será no

crédito ou no débito.  

(14)

Estruturas de repetição (for)

Em vários momentos da nossa vida, fazemos ações repetidas que dependem de

uma condição para parar. Por exemplo, quando estamos com fome e vamos comer, só

paramos de comer quando a condição "estar sem fome" for verdadeira.

Em Python, esta condição pode ser tratada como um ​range ​de números

(representando o número de vezes que uma ação irá se repetir). Range:

● Range é uma função em Python que permite que tenhamos um intervalo de

números sem que tenhamos que escrever todos eles. Exemplo:​ range(1, 10) = 1, 2, 3, 4, 5, 6, 7, 8, 9

Range funciona como um contador que soma 1 do primeiro valor até um numero

anterior ao segundo valor.

O primeiro número representa o número de partida. Se este número for omitido,

o Python assume que este número é zero.

Exemplo:​ range(10) = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Das formas apresentadas acima, a linguagem sempre assume que o passo a

ser tomado é de valor 1. Para definir o passo, acrescentamos mais um valor no range.

Assim, um range de -1 a 9 com passo 2 é dado por: range(-1,10,2) = -1, 1, 3, 5, 7, 9

Estrutura de repetição (for):

● Na estrutura for usamos a função range e uma variável qualquer que percorrerá

cada valor do range. Esta variável não precisa estar definida previamente.

for ​variável ​in​ range(x,y):

(15)

Exemplo:

for ​i in range(10):

print(i)

O programa acima deve imprimir os 10 primeiros valores a partir do 0, pois a

cada iteração do laço i receberá um valor do range de 0 a 9 e este será impresso. Variável acumuladora:

● Quando usamos estruturas de repetição é muito comum usarmos também

variáveis acumuladoras, que são variáveis que têm seus valores incrementados a cada iteração do laço.

Exemplo: soma = 0

for i in range(10): soma += i print(soma)

Neste exemplo, a variável acumuladora é a variável soma pois somamos i a ela

a cada iteração do laço. Break:

O break é uma função usada para quebrar o loop em que se encontra, ou seja,

para parar a execução do laço. Quando o algoritmo encontrar o "break", ele para o loop

(16)

Exemplo:

for i in range(10): if i > 5:

break print(i)

Assim, programa imprimirá os valores de 0 a 5 pois quando i = 6, a condição do

if será satisfeita e o loop será parado pelo break.

Exercícios:

1) Você está criando um aplicativo para auxiliar pessoas na hora de fazer compras

no mercado. Neste aplicativo a pessoa pode inserir o número de produtos que

está comprando e depois o nome de cada produto e o valor. No final, apresente

para a pessoa a soma total da compra.

2) Ainda pensando no aplicativo, crie um algoritmo em Python em que a pessoa

não precise inserir o número de produtos que está comprando. Considere que o

algoritmo consegue armazenar no máximo 1000 produtos.

Dica: você precisa perguntar para o usuário se ele deseja continuar ou se deseja

fechar a compra.

Desafio:

Crie um algoritmo em Python que você poderá usar para calcular o seu CR ao

longo da graduação.

Dica: O cálculo do CR é feito da seguinte forma:

(17)

Estruturas de repetição (while)

Na aula anterior vimos a estrutura de repetição ​for ​que pode depender de um

range de números. Em Python existe uma segunda estrutura de repetição chamada while​. Diferente do for, esta estrutura pode ser controlada por uma variável.

While:

while​ condição: instruções

● O ​while é uma estrutura que precisa, necessariamente, de uma variável

acumuladora dentro dele para que o laço tenha um fim e não seja infinito. Exemplo: n = 2 while ​n > 0 : print(n) n = n - 1 print("Finalizou")

No exemplo acima, o laço rodará para os valores de n iguais a 2 e 1. Se não

houvesse a linha "n = n - 1", n teria para sempre o valor 2 que é sempre maior que zero,

ou seja, o laço não terminaria e o programa nunca imprimiria a palavra "Finalizou".

Chamamos isso de loop infinito. Exercícios:

1) O Sr. Manoel Joaquim possui uma grande loja de artigos de R$ 1,99, com cerca

de 10 caixas. Para agilizar o cálculo de quanto cada cliente deve pagar ele

desenvolveu uma tabela que contém o número de itens que o cliente comprou e

(18)

contar quantos itens o cliente está levando e olhar na tabela de preços. Você foi

contratada para desenvolver o programa que monta esta tabela de preços, que

conterá os preços de 1 até 50 produtos, conforme o exemplo abaixo:

Unidades Valor

1 R$1,99

2 R$3,98

... ...

2) O Sr. Manoel Joaquim expandiu seus negócios para além dos negócios de 1,99

e agora possui uma loja de conveniências. Faça um programa que implemente

uma caixa registradora rudimentar. O programa deverá receber um número

desconhecido de valores referentes aos preços das mercadorias. Um valor zero

deve ser informado pelo operador para indicar o final da compra. O programa

deve então mostrar o total da compra e perguntar o valor em dinheiro que o

cliente forneceu, para então calcular e mostrar o valor do troco. Após esta

operação, o programa deverá voltar ao ponto inicial, para registrar a próxima

compra. A saída deve ser conforme o exemplo abaixo:

Lojas Tabajara Produto 1: R$ 2.20 Produto 2: R$ 5.80 Produto 3: R$ 0 Total: R$ 8.00 Dinheiro: R$ 20.00 Troco: R$ 12.00

3) Escreva um algoritmo em Python que será utilizado para obter informações de 8

candidatos, exibir a média de idade dos candidatos, quantidade de candidatos e

(19)

Dicas:

1 – Solicite que seja informado o nome, idade, sexo e se tem experiência 2 – Exiba a média da idade dos candidatos

3 – Exiba o total de candidatos e o total de candidatas 4 – Exiba quantos tem experiência

4) Crie um programa que lê as idades e alturas de alguns alunos. A condição de

parada é a altura = 0. Em seguida, o programa deve informar quantos alunos

com mais de 13 anos possuem altura inferior à 1.5.

5) O Departamento Estadual de Meteorologia te contratou para desenvolver um

programa que leia um conjunto de 10 temperaturas, e informe ao final a menor e

Referências

Documentos relacionados

 A dissonante sétima maior que forma o acorde com 7+ é a nota sete da escala das notas dos acordes maiores.. Outras aplicações desses acordes são em efeitos com outros

Neste sentido consideramos importante refletir, no INCTE 2018, sobre o desenvolvimento da lite- racia emocional dos professores e no modo como as emoções interferem na ação educativa

A articulação entre Educação, Assistência Social, Cultura e Esporte, dentre outras políticas públicas, poderá se constituir como uma importante inter- venção para a

Cabo verde - Desenvolver projecto de criação de cursos de Tecnologias da Saúde Moçambique - Disponibilizar apoio docente aos cursos de ACSP e APCT, em desenvolvimento 1.7

Observando a interdisciplinaridade, a importância e o desenvolver de ambas as áreas, buscamos para o desenvolvimento desta pesquisa um objetivo norteador que resultou na análise

O Patrimônio Histórico, concebido aqui como uma relação entre memória social (CARLAN, 2008, p.82) e soma dos bens culturais, agrega conjuntos de informações,

Na apresentação dos dados estatísticos, ficou demonstrada à todos os participantes a dimensão da pesquisa, abrangendo o setor produtivo como um todo, enfocando a produção

...uma organização de áreas especializadas baseada em frames em que um frame dinâmico orientado para o processo fornece as bases conceituais para a localização