Vous êtes sur la page 1sur 17

1

Aula 05
Programao utilizando
Portugol
-Verso de impresso

Tpicos Principais:
0. Estrutura de um programa
1. Resoluo de problemas
1.1 Algoritmos
1.2 Diagrama de blocos
1.3 Portugol
2. Programa padro
3. Sada de dados
4. Memria
5. Entrada de dados
6. Processamento
7. Resumo
8. Lista de Exerccios
Por
Guilherme Bezerra Fernandes

Algoritmos e estrutura de dados

::: 5.0 Programao utilizando Portugol :::


Nesta aula, sero apresentados os principais conceitos de um programa, etapas de
resoluo de problemas, estrutura bsica de um programa, funes bsicas de entrada, sada de
dados, uso de variveis, processamento, resumo e exerccios.

0. Estrutura de um programa
Como j visto nas aulas passadas, o conceito que estrutura um programa segue
basicamente a prpria organizao do computador que pode ser resumida da seguinte forma:

Memria

Entrada

Processamento

Sada

Entrada/
Sada
A seqncia principal de execuo entrada -> processamento -> sada, MAS no
decorrer da execuo podem ser necessrios outros tipos de acesso como, por exemplo, a
necessidade ou no de armazenamento de dados temporrios (memria) e, por fim o
armazenamento ou no fixo de maneira permanente no HD (entrada/sada).

1. Resoluo de problemas
Para maior segurana no desenvolvimento de um programa geralmente so adotadas trs
etapas:
1 Elaborao do Algoritmo;
2 Diagrama de bloco;
3 Portugol.

1.1. Algoritmo
Como j visto nas aulas passadas, algoritmo uma seqncia de passos finitos com o
objetivo de solucionar um problema. Pode tambm ser definido como uma seqncia de
instrues finita e ordenada de forma lgica para a resoluo de uma determinada tarefa ou
problema. So exemplos de algoritmos: instrues de montagem, receitas, manuais de uso, etc.

3
Um algoritmo no A soluo do problema, pois, se assim fosse, cada problema teria um
nico algoritmo; um algoritmo UM CAMINHO para a soluo de um problema. Em geral,
existem muitos (seno infinitos) caminhos que levam a uma soluo satisfatria.
Um algoritmo no computacional um algoritmo cuja seqncia de passos, a princpio,
no pode ser executada por um computador. Abaixo apresentado um algoritmo NO
COMPUTACIONAL cujo objetivo usar um telefone pblico.
1 Retirar o telefone do gancho
2 Esperar o sinal
3 Colocar o carto
4 Discar o nmero
5 Falar ao telefone
6 Colocar o telefone no gancho
Provavelmente voc executou o algoritmo deste exemplo diversas vezes. O termo
algoritmo est muito ligado Cincia da Computao, mas, na realidade, ele pode ser aplicado a
qualquer problema cuja soluo possa ser decomposta em um grupo de instrues.

1.2. Diagrama de bloco


O diagrama de bloco, tambm chamado de fluxo, uma ferramenta usada e desenvolvida
pelo profissional que est envolvido diretamente com a programao, tendo como objetivo
descrever o mtodo e a seqncia do processo dos planos num computador.
Essa ferramenta usa diversos smbolos geomtricos, os quais estabelecero as seqncias
de operaes a serem executadas em um processamento computacional. Um exemplo de
diagrama apresentado abaixo:
Incio

Fim
Diagrama de bloco

Observaes: Os programas Word e VISIO permitem criar diagrama de blocos


facilmente. Ao longo do curso sero apresentados os principais smbolos.

1.3 Portugol
Para que o algoritmo possa ser til, necessrio ainda que quem faz uso dele conhea os
termos utilizados nas instrues. O algoritmo do exemplo s ser til para algum que seja
fluente na lngua portuguesa e conhea o significado dos verbos Retirar, Colocar, Esperar assim
como dos substantivos utilizados no contexto de uma receita culinria. Em outras palavras,
preciso que a linguagem utilizada no algoritmo seja conhecida tanto por quem o escreveu quanto
por quem vai execut-lo.
Para que o algoritmo possa ser executado por uma mquina importante que as
instrues sejam corretas e sem ambigidades. Portanto, a forma especial de linguagem que
utilizaremos bem mais restrita que o Portugus e com significados bem definidos para todos os
termos utilizados nas instrues. Essa linguagem conhecida como Portugus Estruturado (s
vezes tambm chamada de Portugol).
O portugus estruturado , na verdade, uma simplificao extrema do Portugus, limitada
a umas poucas palavras e estruturas que tm um significado muito bem definido. Ao conjunto de
palavras e regras que definem o formato das sentenas vlidas chamamos sintaxe da
linguagem. Durante este texto, a sintaxe do Portugus Estruturado ser apresentada
progressivamente e a utilizaremos em muitos exerccios de resoluo de problemas.
Aprender as palavras e regras que fazem parte dessa sintaxe fundamental; no entanto,
no o maior objetivo deste curso. O que realmente exigir um grande esforo por parte do
estudante aprender a resolver problemas utilizando a linguagem. Para isso, h somente um
caminho: resolver muitos problemas. O processo semelhante ao de tornar-se competente em
um jogo qualquer: aprender as regras do jogo (a sintaxe) s o primeiro passo, tornar-se um bom
jogador (programador) exige tempo, muito exerccio e dedicao.
Embora o Portugus Estruturado seja uma linguagem bastante simplificada, ela possui
todos os elementos bsicos e uma estrutura semelhante de uma linguagem tpica para
programao de computadores. Alm disso, resolver problemas com portugus estruturado pode
ser uma tarefa to complexa quanto a de escrever um programa em uma linguagem de
programao qualquer. Portanto, neste curso, estaremos na verdade procurando desenvolver as
habilidades bsicas que sero necessrias para adquirir-se competncia na programao de
computadores.

5
Daqui para frente, sero apresentados exemplos de algoritmos, sua representao no
diagrama de blocos e, por fim, sua escrita em portugol.
O Programa VisuAlg permite testar os programas desenvolvidos em portugol
rapidamente. Pode ser encontrado no site de busca www.apoioinformatica.inf.br.

2. Programa padro
Abra o programa VisuAlg. Observe que gerado automaticamente o seguinte cdigo:
algoritmo "semnome"
// Funo :
// Autor :
// Data : 15/02/2008
// Seo de Declaraes
var
inicio
// Seo de Comandos
fimalgoritmo

Por enquanto no necessrio todo este cdigo, desta forma, apague tudo o que est
depois do // e a palavra var, ficando da seguinte maneira:
Programa padro:
algoritmo "basico"

inicio
fimalgoritmo

TODO programa em portugol tem no mnimo a estrutura bsica acima. Ele composto
pela palavra-chave algoritmo seguido do nome do algoritmo entre aspas duplas, neste caso
bsico. Em seguida, tem-se a outra palavra-chave inicio e fimalgoritmo.
Sua representao em diagrama de bloco demonstrada abaixo:
Incio

Fim
Diagrama de bloco

Para testarmos o algoritmo pressione o boto F9. Ao pressionar este boto ser simulada
a compilao do cdigo, isto a transformao do cdigo em Portugol para linguagem de
mquina. Preste ATENO! ISTO ir apenas SIMULAR. Pois o portugol no uma linguagem
de programao realmente, apenas um portugus estruturado. Aps isto, ser aberta uma janela
preta. Este ser o ambiente em que possibilitar a criao dos nossos programas. Feche-a.

3. Sada de dados: escreva e escreval


Lembra-se de entrada, processamento e sada? Pois bem, veremos primeiro a sada e no
a entrada, pois geralmente necessrio apresentar alguma informao para o usurio antes que o
mesmo possa entrar com os dados.
Para a apresentao de dados na tela, utiliza-se a palavra-chave escreva seguido do texto a
ser apresentado entre parntesis. O smbolo do diagrama de blocos utilizado para apresentao
de dados na tela o

..

Problema 1: Desenvolva um programa que mostre na tela a mensagem Bem-vindo!.


O primeiro passo desenvolver o algoritmo.
3.1 Algoritmo:
Apresente a mensagem Bem-vindo!.
3.2 Diagrama de bloco:
Incio

Bem-vindo

Fim
Diagrama de bloco

3.3 Portugol
Em portugol ficaria da seguinte maneira:
algoritmo "basico"

inicio
escreva ("Bem-vindo!")
fimalgoritmo

Observaes: Foram utilizados trs espaos em branco antes do comando escreva, isto
no obrigatrio para o programa funcionar, MAS ajuda muito o entendimento por parte do
prprio programador e outros que quiserem entend-lo. Esta tcnica chamada de endentao
e visa uma boa documentao do seu programa.

7
Caso fosse necessrio apresentar vrias mensagens, bastaria utilizar o mesmo comando
diversas vezes. Outro comando que permite escrever um texto na tela o escreval. Este possui a
mesma sintaxe que o escreva, a diferena que aps apresentar o texto ele permite escrever uma
nova linha aps o texto desejado. Ex: escreval(Teste).
3.4 Exerccio: Desenvolva um programa que apresente na tela Estou comeando a
conhecer Portugol!, mas de forma que cada palavra fique em uma linha diferente! Faa
o algoritmo, diagrama de bloco e por fim, o portugol.

4. Memria
O conceito memria faz referncia a variveis. Uma das razes para o de uso de variveis
devido necessidade de armazenar os dados que sero digitados pelo usurio.
Mas o que seria varivel?
Varivel um local na memria principal (temporria), isto um endereo que armazena
um contedo. Tambm pode ser considerada como tudo aquilo que sujeito a variaes, que
incerto, instvel ou inconstante. Por exemplo, a entrada de dados de um usurio incerta, no
tem como saber exatamente o que um usurio ir digitar.
Uma varivel ir armazenar dados de forma TEMPORRIA na memria do computador,
isto quer dizer que ao fechar o programa os dados sero PERDIDOS! Para utiliz-la, basta inserir
a palavra-chave var seguido do nome desta varivel, dois pontos : e seu tipo sublinhado
(inteiro, real, caractere, lgico). Ex: var idade : inteiro.
Uma observao importante que as variveis no precisam ser representadas em
diagrama de blocos quando so criadas, mas apenas quando recebem valores.
Quando formos dar nomes s variveis, se faz necessrio seguirmos algumas regras:
a) O PRIMEIRO caractere DEVE ser uma letra. (No podem ser nmeros)
b) Se houver MAIS de um caractere, S poderemos usar letras ou nmeros. (No
podem ser utilizados caracteres simblicos como: -,+,!,@,#,$,&,*(,),?, etc.)
c) NENHUMA palavra reservada (ou palavra-chave) poder ser nome de uma varivel.
A seguir, apresentada uma tabela com a lista de palavras reservadas que no podem ser
utilizadas para nomes de variveis.

8
Lista de palavras reservadas
algoritmo

escreva

fimrepita

mod

arquivo

escreval

fimse

no

ate

faca

funo

caractere

falso

inicio

ou

caso

fimalgoritmo

int

outrocaso

cronometro fimenquanto

inteiro

para

debug

fimescolha

interrompa passo

enquanto

fimfuncao

leia

pausa

ento

fimpara

limpatela

real

escolha

fimprocedimento logico

procedimento

repita
retorne
se
seno
timer
var
vetor
verdadeiro
xou

4.1 Tipo de dados


Os tipos de dados que podem ser armazenados em um computador so divididos em 4
categorias:
1 - Inteiros: correspondem aos dados numricos positivos ou negativos que NO sejam
fracionrios. Ex: ...-3, -2, -1, 0, 1, 2, 3... A palavra-chave para seu uso inteiro.
2 Reais: correspondem aos dados numricos positivos ou negativos E fracionrios.
Ex: ...-3.0, -2.1, -1.5, 0, 1, 2.4, 3... A palavra-chave para seu uso real
3 Caracteres: correspondem aos tipos de caracteres contendo letras, nmeros e
smbolos especiais. Ex: Joo, Rua 10, 123, etc. tambm conhecido como alfanumrico,
string, literal ou cadeia. A palavra-chave caractere.
4 Lgicos: So os tipos de dados com valores verdadeiros e falsos, sendo possvel
representar apenas um dos dois valores. Ex: Falso, F e N (para valor lgico falso) e
Verdadeiro, V e S (para o valor lgico verdadeiro). A palavra-chave logico.
Problema 2: Desenvolver um programa para armazenar a idade do usurio.
Deve-se declarar uma varivel com um nome fcil para saber seu significado (por
exemplo: idade) e o tipo (por exemplo: inteiro). Dos 4 tipos possveis, o inteiro o mais
adequado. Ficando da seguinte maneira: var idade : inteiro
Em portugol:
algoritmo "idade"
var
idade: inteiro

inicio
fimalgoritmo

9
A declarao de variveis feita antes das palavras-chave incio e fimalgoritmo. Um dos
objetivos de se declarar uma varivel no incio do algoritmo para que seja alocada (reservada)
uma rea na memria (endereo de memria) para a varivel.
Uma varivel pode ser vista como uma caixa com um rtulo ou nome colado a ela, que
num dado instante guarda um determinado objeto. O contedo desta caixa no algo fixo,
permanente. Na verdade, essa caixa pode ter seu contedo alterado diversas vezes.

Tipo

i
n
t
e
i
r
o

Valor qualquer

idade

Nome da
varivel(rtulo)

Representao de uma varivel

O contedo deve ser sempre do mesmo tipo. Na figura acima, a caixa (que a varivel)
foi rotulada como IDADE. Ela do tipo inteiro, isto , s capaz de armazenar valores inteiros.
Quando se cria uma varivel deve-se inicializ-la com algum valor. Geralmente um valor
nulo, mas isto vai depender do problema a ser resolvido. Para iniciar a varivel usa-se o smbolo
MENOR seguido de MENOS (<-). Exemplo: idade <- 0
A atribuio de valores para varivel representada no diagrama de blocos com um
retngulo. O diagrama de blocos ficar assim:

Incio

idade <-0

Fim
Diagrama de bloco

10
A inicializao da varivel feita entre as palavras chaves incio e fimalgoritmo, ficando
da seguinte maneira:
algoritmo "idade"
var
idade: inteiro

inicio
idade <- 0
fimalgoritmo

Caso a varivel no fosse inicializada com zero, ela ficaria com um valor qualquer da
memria com computador, o que geralmente chamado de lixo.
Agora que se declarou a varivel, vamos conhecer o comando para receber os dados do
usurio e armazen-lo na varivel.

5. Entrada de dados: leia


A palavra-chave para receber dados digitados pelo usurio leia, seguida entre parntesis
do nome da varivel. O smbolo do diagrama de blocos utilizado para receber dados digitados
pelo usurio

O novo diagrama de blocos:


Incio

idade <-0

idade

Fim
Diagrama de bloco

No caso do Portugol, ficaria: leia(idade).


Um exemplo completo:
algoritmo "idade"
var
idade: inteiro

inicio
idade <- 0
leia(idade)
fimalgoritmo

11
Observa-se que instruo leia DEVE ficar entre o bloco incio e fimalgoritmo.
Supondo que o usurio digite o valor 32 e pressione ENTER, veja como ficar a varivel
com o seu contedo:

32
Tipo

i
n
t
e
i
r
o

idade

Dado digitado pelo


usurio

Nome da
varivel

Repare que ao executar o programa, simplesmente fica um cursor piscando, obrigando o


usurio a adivinhar o que deve ser digitado. Desta maneira, aconselhvel mostrar uma
mensagem solicitando ao usurio que digite sua idade, por exemplo Digite a sua idade:.
algoritmo "idade"
var
idade: inteiro
inicio
escreva ("Digite sua idade:")
leia(idade)
fimalgoritmo

Agora que foi possvel receber os dados digitados pelo usurio, interessante apresentlos na tela. Ser utilizada a palavra-chave escreva seguido do nome da varivel idade que foi
criada. Assim, qualquer valor do tipo inteiro que o usurio digitar ser apresentado.
algoritmo "apresenta_idade"
var
idade: inteiro
inicio
escreva ("Digite sua idade:")
leia(idade)
escreva ("Sua idade :")
escreva (idade)
fimalgoritmo

At agora foi possvel receber os dados, armazen-los na memria e apresent-los na tela.


No algo muito til. O principal mesmo processar estes dados, o que ser demonstrado no
prximo tpico.

12

6. Processamento
O Conceito de processamento se refere aos clculos, testes condicionais, etc. Sero
apresentados primeiramente os operadores bsicos disponveis. Os restantes sero vistos mais
frente do curso.
6.1 Operaes aritmticas bsicas
As operaes aritmticas so as mais bsicas que um programador deve saber programar.
Os smbolos adotados na programao so basicamente os mesmos j conhecidos.
Operao

Operador

Adio
Subtrao
Multiplicao
Diviso (com resultado real)
Diviso (com resultado inteiro)
Resto
Exponenciao

+
*
/
div
% ou mod
^
Tabela 1: Operadores aritmticos

6.1.1 Adio e Subtrao: Observa-se atravs da tabela acima o uso dos operadores de soma e
subtrao da mesma maneira utilizados na matemtica convencional.
Problema 3: Desenvolver o algoritmo, portugol e diagrama de blocos de um programa
que efetue a soma de dois nmeros.
Algoritmo:
1 Atribuir o valor zero s variveis valorA, valorB e resultado;
2 Apresente a mensagem Digite o primeiro valor
3 Leia o valorA
4 Apresente a mensagem Digite o segundo valor
5 - Leia o valorB
6 - Efetue a soma das variveis valorA e valorB e atribua seu resultado varivel resultado;
7 Apresentar o valor da varivel resultado.
Portugol:
algoritmo "soma"
var
valorA: inteiro
valorB: inteiro
resultado: inteiro
inicio
valorA <- 0
valorB <- 0
resultado <- 0
escreva("Digite o primeiro valor")
leia(valorA)
escreva("Digite o segundo valor")
leia(valorB)
resultado <- valorA + valorB
escreva(resultado)
fimalgoritmo

13
Diagrama de bloco:
Incio
valorA<-0

valorB<-0

resultado<-0
Digite o primeiro valor
valorA
Digite o segundo valor

valorB

resultado <- valorA + valorB

resultado

Fim
Diagrama de bloco

Exerccio: Faa uma calculadora com as 4 operaes bsicas de soma, subtrao,


multiplicao e diviso. Faa o algoritmo, diagrama de bloco e portugol.
6.1.2 Multiplicao - De acordo com a Tabela 1 apresentada, pode-se observar que na operao
de multiplicao utilizado o * para represent-lo, ex: 5 * 3 = 15.
6.1.3 Diviso e resto - A diviso possui dois tipos: uma que retorna um valor do tipo REAL e
outra que retorna um valor do tipo INTEIRO.
Exemplos:
4 / 3 = 1,33
4 div 3 = 1
8 / 3 = 2,66
8 div 3 = 2

14
Quando 4 dividido por 3 utilizando o operador / tem-se o valor REAL 1,33. MAS
quando utiliza-se 4 div 3 tem-se o valor INTEIRO 1. Quando 8 dividido por 3 com o operador
/ tem-se o valor 2,66 e ao utilizar o div tem-se o valor 2. Observe que toda a parte
fracionria retirada, MAS no ocorre o arredondamento para cima.
Outra operao chamada de RESTO e representada pelo operador %. utilizado
quando se deseja encontrar o resto da diviso entre dois nmeros inteiros.
Exemplos:
4%2=0
8%3=2
7%4=3
A seguir, ser apresentado um uso tpico em programas dos operadores div e %.
Problema 4 - Desenvolva um programa que leia um nmero de duas casas e imprima os
algarismos separados em cada linha.
algoritmo "Separa_Numeros"
var
valorA : inteiro
resultado : real
inicio
valorA <- 0
resultado <- 0
escreval(" Entre com um numero inteiro de 2 casas: ")
leia(valorA)
resultado <- valorA div 10
escreval("Primeira casa: ", resultado)
resultado <- valorA % 10
escreva("Segunda casa: ", resultado)
fimalgoritmo

Um nmero de duas casas possui o algarismo das dezenas e das unidades. Para a dezena
utilizou-se operador div ao invs de /, isto porque no ser necessria a parte fracionria. No
caso das unidades utiliza-se o operador %, pois deseja-se apenas o resto.
Exerccio: Desenvolva um programa que leia um nmero de 3 casas e imprima os
algarismos separados em cada linha.
6.1.4 Exponenciao e radiciao - A ltima operao chamada de exponenciao
representada pelo operador ^. Na matemtica, representada pela base e por um expoente, Ex:
23 = 8.

15
Exemplos:
2^2=4
2^3=8
4 ^ 2 = 16
Na matemtica possvel utilizar a exponenciao para encontrar, por exemplo, a raiz
quadrada de um nmero.
Exemplos:
16 = 4 (raiz quadrada convencional)
16 ^ (1/2) = 4 (raiz quadrada com exponenciao)
3
8 = 2 (raiz cbica)
8 ^ (1/3) (raiz cbica com exponenciao)
Problema 5 - Desenvolva um programa que leia o valor da base e o valor do expoente e
calcule a exponenciao.
algoritmo "expoente"
var
base : inteiro
expoente : inteiro
resultado : real
inicio
base <- 0
expoente <- 0
escreva("Entre com o valor da base: ")
leia(base)
escreva("Entre com o valor do expoente: ")
leia(expoente)
resultado <- base ^ expoente
escreva(Resultado, resultado)
fimalgoritmo

Exerccio: Desenvolva um programa que calcule a raiz quadrada e cbica de um nmero


digitado pelo usurio.

16

7. Resumo
1 - Todo programa escrito em potugol composto no mnimo pela palavra-chave algoritmo
seguido do nome do algoritmo entre aspas duplas. Em seguida, tem-se a outra palavra-chave
inicio e fimalgoritmo, conforme abaixo:
algoritmo "basico"

inicio

fimalgoritmo

2 - A declarao das variveis devem estar entre o bloco algoritmo e incio


3 Comandos para sada de dados(apresentao de textos na tela):
escreva, escreval
4 Declarao de variveis
var idade : inteiro
5 Comando para entrada de dados(leitura dos dados digitados pelo usurio):
leia(idade)
6 Operadores bsicos:
+, - , *, /, div, %, ^

8.0 Lista de Exerccios (valor: 10 pts)


8.1. Faa o algoritmo, diagrama de blocos e portugol dos exerccios abaixo(2 pts):
 Um programa que calcule a mdia de 5 notas de um aluno.
 Um programa que calcule a rea de um tringulo. (dica: frmula para rea de um tringulo
base * altura dividido por 2)
 Um programa que calcule a rea de uma circunferncia. (dica: frmula para rea de uma
circunferncia 3,14 * raio ao quadrado.
 Um programa que efetue o clculo do salrio lquido de um professor. Dados necessrios:
valor da hora aula, nmero de horas trabalhadas no ms e percentual de desconto no
INSS.
8.2. Faa um programa que receba o saldo de uma aplicao e imprima o valor aplicado e valor
com rendimento de 5%(1 pt).
8.3. Entrar com um nmero no formato CDU(centena, dezena e unidade) e imprimir invertido:
UDC. (exemplo: se entrar com o valor 123, sair 321)(1 pt).
8.4. Faa um programa de clculo de custo de energia de dois aparelhos de um estabelecimento
comercial. O usurio entrar com o valor da potncia do aparelho (em watts) e o tempo de
utilizao (em horas) dirio de ambos os aparelhos. O programa dever apresentar o nome do
aparelho, o seu custo em reais por hora, por dia e por ms. (Obs: a CEMIG estabelece que um
aparelho de 1000 watts de potncia ligado por uma hora custa 0,642 reais para o
estabelecimento)(1 pt).

17
8.5 Faa um programa que leia a quantidade de fitas que uma locadora de vdeo possui e o valor
que ela cobra por cada aluguel, mostrando as informaes pedidas a seguir(1 pt):
- sabendo que um tero das fitas so alugadas por ms, exiba o faturamento anual da locadora.
- quando o cliente atrasa a entrega, cobrada uma multa de 10% sobre o valor do aluguel.
Sabendo que um dcimo das fitas alugadas no ms so devolvidas com atraso, calcule o valor
ganho com multas por ms.
- sabendo ainda que 2% de fitas se estragam ao longo do ano, e um dcimo do total comprado
para reposio, exiba a quantidade de fitas que a locadora ter no final do ano.
8.6 Faa um programa que, dado um nmero de conta corrente com trs dgitos, retorne o seu
dgito verificador, o qual calculado da seguinte maneira(1 pt):
Exemplo: nmero da conta: 235
- somar o nmero da conta com o seu inverso: 235 + 532 = 767
- multiplicar cada dgito pela sua ordem posicional e somar estes resultados:
7
6
7
x1
x2 x3
7 + 12 + 21 = 40
- o ltimo dgito desse resultado o dgito verificador da conta, isto o nmero zero.
-----------------

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

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

8.7. Faa um resumo do captulo 1, 2 e 3 do Livro: Algoritmos lgica para desenvolvimento de


programao de computadores.(3 pts)

Vous aimerez peut-être aussi