algoritmos (parte 1)_alunos 2.pptx

Post on 19-Jan-2016

50 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Algoritmos

Prof. Ricardo Luiz de Freitasricardo@fumec.br

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br2

Aulas1 - Conceitos de Algoritmo2 - Compiladores, Dados, Variáveis, Comandos leia e escreva3 - Comando de atribuição, Expressões Aritméticas4 - Comando Condicional – SE5 - Comando Condicional – CASO6 - Comando de Repetição – PARA7 - Séries Matemáticas8 - Comando de Repetição – REPITA9 - Comando de Repetição – ENQUANTO10 – Vetor11 – Matriz12 – Mapeamento ALGORITMO x PASCAL

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br3

Aula 1

Conceito de ALGORITMOS Estruturas básicas de um Algoritmo

Seqüencial Condicional Repetição

Exercício

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br4

Conceitos de Algoritmos

Algoritmo é a descrição de uma seqüência de passos que deve ser seguida para a realização de uma tarefa;

Algoritmo é uma seqüência finita de instruções ou operações cuja execução, em tempo finito, resolve um problema computacional;

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br5

Exemplos de Algoritmos

Como fazer um sanduíche?Passo 1 – Pegar um 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 o alface e o tomate

Passo 6 – Cortar o tomate

Passo 7 – Colocar alface e o tomate no pão

Passo 8 – Pegar o hambúrguer

Passo 9 – Fritar o hambúrguer

Passo 10 – Colocar o hambúrguer no pão

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br6

Um robô conseguiria executar o algoritmo e fazer um sanduíche?

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br7

Como fazer um sanduíche (versão 2)Passo 1 – Pegar um pão

Passo 2 – Cortar o pão ao meio em sentido longitudinal

Passo 3.1 – Abrir a geladeira

Passo 3.2 – Pegar o vidro de maionese na geladeira

Passo 3.3 – Fechar a porta da geladeira

Passo 3.4 – Girar a tampa do vidro de maionese em sentido horário

Passo 3.5 – Tirar a tampa

Passo 3.6 – Pegar uma espátula no armário

Passo 3.7 – Colocar a espátula dentro do vidro de maionese

Passo 3.8 – Pegar um pouco de maionese

Passo 3.9 – Tirar a espátula do vidro

Passo 4 – Passar a maionese no pão

...

Refinamento do passo 3 “Pegar a

maionese”

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br8

Estruturas básicas de um Algoritmo Estrutura Seqüencial

Estrutura Condicional (ou seletiva)

Estrutura de Repetição Repetições definidas Repetições indefinidas

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br9

Estrutura Seqüencial

As ações são executadas uma após a outra, na mesma ordem em que aparecem:

Trazer a cesta com batatas Pegar uma panela do armário Descascar as batatas Jogar as cascas no lixo Lavar a cesta e a panela Guardar a cesta e a panela no armário

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br10

Estrutura Condicional - SE

A execução ou não de uma ação depende se o resultado de uma condição é verdadeiro ou falso

Trazer a cesta com batatas Pegar uma panela do armário Se sua roupa é clara então

Colocar o avental Descascar as batatas Jogar as cascas no lixo Lavar a cesta e a panela Guardar a cesta e a panela no armário

Condição

Ação

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br11

Estrutura Condicional - SE

O se..então.. é uma estrutura condicional ou seletiva, onde a ação (ou mais de uma) é executada somente se o resultado da condição for verdadeiro:

Se sua roupa é clara então Colocar o avental Lavar as mãos Pentear o cabelo

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br12

Estrutura Condicional - SE

Podemos utilizar também se..então..senão... para tornar a seleção de ações mais completa:

Se sua roupa é clara então Colocar o avental Lavar as mãos

Senão Colocar a toca

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br13

Estrutura de Repetição Trazer a cesta com batatas Pegar uma panela do armário Se sua roupa é clara então

Colocar o avental Lavar as mãos

Pegar uma batata na cesta Lavar a batata Descascar a batata ... ... Jogar as cascas no lixo Lavar a cesta e a panela Guardar a cesta e a panela no armário

50 vezes

Refinamento do passo “Descascar

as batatas”

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br14

Estrutura de Repetição - DEFINIDA Trazer a cesta com batatas

Pegar uma panela do armário Se sua roupa é clara então

Colocar o avental Lavar as mãos

Repetir 50 vezes Pegar uma batata na cesta Lavar a batata Descascar a batata

Jogar as cascas no lixo Lavar a cesta e a panela Guardar a cesta e a panela no armário

E se não soubermos quantas batatas tem no cesto?

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br15

Estrutura de Repetição - INDEFINIDA Trazer a cesta com batatas

Pegar uma panela no armário Se sua roupa é clara então

Colocar o avental Lavar as mãos

Enquanto ainda tivermos batatas no cesto Pegar uma batata na cesta Lavar a batata Descascar a batata

Jogar as cascas no lixo Lavar a cesta e a panela Guardar a cesta e a panela no armário

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br16

A linguagem é um elemento chave na construção de Algoritmos

Schlieben sie Ihre augen. Fermez vos yeux. Cierre sus ojos. Close your eyes. Feche seus olhos.

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br17

Conclusão

Para a construção e execução de algoritmos é necessário que tanto a pessoa que dará as ordens quanto a pessoa (ou máquina) que executará o algoritmo entendam a mesma linguagem e, dessa forma, consigam comunicar-se.

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br18

Exercício (para entregar)

Suponha que você não possa vir a escola em um dia de entrega do trabalho final de curso. Faça um ALGORITMO que sirva para programar um robô que será acionado na calçada em frente a entrada da FUMEC. O robô deverá ir até o laboratório onde a aula está acontecendo, imprimir o trabalho, que está armazenado na rede, e entregar o mesmo ao professor, quando se auto desligará.

Instruções no próximo slide...

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br19

Exercício (para entregar) Fazer no Word; Valores mínimos para o algoritmo: 50 ações (1 verbo por

ação), 2 estruturas condicionais e 2 estruturas de repetição; Valor: 1 ponto extra (se estiver dentro das regras); Forma de entrega: “Área do Aluno” ou “SINEF” na página da

escola na internet (Apoio Didático / Entrega de Trabalhos); Data máxima de entrega: FINAL DO DIA; Poderá ser feito em dupla (somente um elemento da dupla

entregará o exercício); Colocar seu nome, e de seu colega (se for o caso), no início

do algoritmo; Exercícios sem nome, iguais e mal feitos serão zerados.

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br20

Aula 2 Compiladores Compilador VisuAlg Dados Identificadores Variáveis Comando de entrada de dados – LEIA Comando de saída de dados – ESCREVA Exercícios

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br21

Compiladores São programas utilizados para se criar outros programas; Etapas:

Edição: digitação e alteração do programa; Compilação: verificação de erros de sintaxe do programa; Execução: rodar o programa, entrando com os dados e obtendo

os resultados. Erros que podem aparecer:

Sintaxe: identificado pelo compilador na etapa de compilação; Lógica: identificado pelo usuário na etapa de execução.

Exemplos: Visualg = Portugol PascalZIM = Pascal Delphi = Pascal Dreamworks = HTML

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br22

Compilador VisuAlg

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br23

Compilador VisuAlg

Abrir (Ctrl-A): Abre um arquivo anteriormente gravado, substituindo o texto presente no editor. Se este tiver sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que seja sobreposto.Novo (Ctrl-N): Cria um novo "esqueleto" de algoritmo, substituindo o texto presente no editor. Se este tiver sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que seja sobreposto.Salvar (Ctrl-S): Grava imediatamente o texto presente no editor. Na primeira vez que um novo texto é gravado, o VisuAlg pede seu nome e localização.Imprimir: Imprime imediatamente na impressora padrão o texto presente no editor. Copiar (Ctrl-C): Copia o texto selecionado para a área de transferência.Colar (Ctrl-V): Copia texto da área de transferência para o local em que está o cursor.

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br24

Compilador VisuAlg

Executar (F9): Inicia (ou continua) a execução automática do algoritmo.Executar com timer (Shift-F9):: Insere um atraso (que pode ser especificado no intervalo ao lado) antes da execução de cada linha. Também realça em fundo azul o comando que está sendo executado, da mesma forma que na execução passo a passo.Passo (F8): Inicia (ou continua) a execução linha por linha do algoritmo, dando ao usuário a oportunidade de acompanhar o fluxo de execução e os valores das variáveis.Parar (Ctrl-F2): Termina imediatamente a execução do algoritmo. Evidentemente, este botão fica desabilitado quando o algoritmo não está sendo executado.Gerar valores aleatórios: Ativa a geração de valores aleatórios que substituem a digitação de dados.

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br25

Estrutura básica de um Algoritmo no VisuAlg

algoritmo "semnome"// Função :// Autor :// Data : 1/8/2011// Seção de declaraçõesvar

inicio// Seção de Comandos

fimalgoritmo

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br26

Exemploalgoritmo "CalcSomaMedia"var n1, n2, n3, soma : inteiro media : realInicio escreva("Informe um número = ") leia(n1) escreva("Informe outro número = ") leia(n2) escreva("Informe mais um número = ") leia(n3) soma <- n1 + n2 + n3 media <- soma / 3 escreval("Média = ",media)fimalgoritmo

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br27

Dados

O dado é a própria essência de um algoritmo ou programa de computador.

Ele pode ser informado pelo usuário, gerado pelo programa, processado pelo computador, e impresso para o usuário como uma informação.

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br28

Tipos de dados

Tipos de dados são maneiras pelas quais os dados são tratados

Constantes: são aqueles dados cujos valores não se alteram durante a execução do algoritmo

Variáveis: são aqueles dados cujos valores podem ser alterados durante a execução do algoritmo

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br29

Tipos de dados Classificação

Simples Numéricos

Inteiro Real

Não Numéricos Lógico Caractere

Estruturados Arquivos Vetores Matrizes

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br30

Tipos de dados

Numéricos INTEIRO

São os valores numéricos inteiros (sem casas decimais) Podem ser valores positivos ou negativos Variando entre -999999999 e 999999999 Ex: 0, -2, 47, 58, 123220, -34235

REAL São os valores numéricos que possuem casas decimais Podem ser valores positivos ou negativos Ex: 0.12, -45.17, 3.14159, 0.000001, 2

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br31

Tipos de dados Não Numéricos

LÓGICO Representadas por apenas 2 valores:

Verdadeiro Falso

CARACTERE Representadas por uma seqüência de caracteres

(letras, números ou caracteres especiais) Textos em geral Geralmente são delimitadas por aspas (“ ”) Ex: “Rua”, “Computação”, “20/10/1998”, “1234”

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br32

Identificadores

Todas as variáveis ou constantes são identificadas por um nome que chamamos de IDENTIFICADOR

Exemplos: Salario Idade J Xpto NomeDaVariavel

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br33

Identificadores Regras para formação de identificadores

Só podem conter LETRAS e NÚMEROS Devem começar OBRIGATORIAMENTE com uma LETRA Não podem conter ESPAÇOS ou caracteres especiais

(@, ?, !, -, caracteres acentuados, etc.) Composto por no máximo 30 caracteres

Nomes válidos: i, j, FRUTA, salario, a12, i23ER21, umnomequalquer

Nomes inválidos: 1, 25, nome-fruta, 5JOSE, A$1, um nome qualquer, média

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br34

Identificadores O identificador deve passar ao programador (ou quem está

lendo o programa/algoritmo) o tipo de dados que a variável ou constante vai armazenar, ou seja, não devemos criar nomes que não tem nada a ver com o conteúdo da variável ou constante:

Nomes inapropriados: i, j, a12, i23ER21, xyz, xibobo, ricardo

Nomes apropriados: idade, salario, nomefruta, contador, enderecocorrespondencia

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br35

Algoritmo Exemplo (identificadores apropriados e inapropriados)

algoritmo "X"var a, b, c : inteiroinicio

leia(a) b <- 1 para c de 2 ate a faca

b <- b * c fimpara escreval(b)fimalgoritmo

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br36

Algoritmo Exemplo (identificadores apropriados e inapropriados)

algoritmo "CalculaFatorial"var Numero, Fatorial, Contador : inteiroinicio escreva("Informe um número: ") leia(Numero) Fatorial <- 1 para Contador de 2 ate Numero faca

Fatorial <- Fatorial * Contador

fimpara escreval("Fatorial = ",Fatorial)fimalgoritmo

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br37

Variáveis(abreviação de dados variáveis)

O que é uma Variável?

Variável é uma posição na memória do computador reservada pelo algoritmo durante a sua execução para armazenar dados a serem utilizados pelo próprio algoritmo

Estes dados podem ter sido gerados pelo próprio algoritmo (comandos de repetição, comando de atribuição, etc.) ou inseridos pelo usuário quando da execução de um comando de entrada/leitura de dados

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br38

Cláusula VAR (declaração de variáveis)

var (declaração das variáveis do algoritmo)

As variáveis (ou dados) podem ser de vários tipos: inteiro: define variáveis numéricas do tipo inteiro, ou seja,

sem casas decimais. (Ex: 12, 1000, 5, 345) real: define variáveis numéricas do tipo real, ou seja, com

casas decimais. (Ex: 1.45, 0.05, 500.4, 3.4) caractere: define variáveis do tipo caractere, ou seja, cadeia

de caracteres. (Ex: “ABC”, “Ricardo”, “Agosto/2006”).

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br39

Cláusula VAR (declaração de variáveis)

Exemplo

algoritmo "PrimeiroAlgoritmo"

var IDADE, NUMERO : inteiro

ALTURA, PESO, SALARIO : real

NOMEPAI, RUA, BAIRRO, DTNASC : caractere

inicio

...

fimalgoritmo

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br40

Etapas de um algoritmo

1ª etapa : entrada de dados (informados pelo usuário)

2ª etapa : processamento (cálculos)

3ª etapa : saída de dados (exibição dos resultados)

Processamento(cálculos)

Entradade dados

Saídade dados

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br41

Comando LEIA(comando de I/O – entrada de dados)

Comando utilizado para receber os valores digitados pelos usuário, atribuindo-os às variáveis cujos nomes estão em <lista-de-variáveis> (é respeitada a ordem especificada nesta lista).

leia(<lista-de-variáveis>)

Exemplos leia(nome) leia(idade, peso, altura)

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br42

Comando LEIA(comando de I/O – entrada de dados)

O tipo de dado a ser digitado pelo usuário depende do tipo da variável utilizada no comando, se a variável for do tipo INTEIRO não podemos digitar um texto ou um valor numérico real, pois abortará a execução do algoritmo.

O usuário digita o dado via teclado e aperta ENTER. O dado é gravado na VARIAVEL e o cursor da tela pula para a primeira coluna da próxima linha.

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br43

Comando ESCREVA(comando de I/O – saída de dados)

Comando utilizado para se escrever (imprimir) informações na tela ou em qualquer dispositivo de saída de dados (impressora, fax, modem, etc) pelo algoritmo.

escreva(...) A informação entre parênteses é impressa e o cursor

permanece na mesma linha. escreval(...)

Idem, porém o cursor pula para a primeira coluna da próxima linha.

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br44

Comando ESCREVA(comando de I/O – saída de dados)

Temos as seguintes variações para o comando:

escreva("Mensagem a ser impressa") O texto entre aspas é impresso.

escreva(variavel) O conteúdo na memória de VARIAVEL é impresso.

escreva("Mensagem 1 ",var1," Mensagem 2 ",var2) Os textos são impressos junto com os conteúdos das variáveis var1 e

var2, na mesma linha e um depois do outro totalmente colados uns aos outros.

ATENÇÃO: É importante o uso de espaços dentro das aspas a fim de que os dados (textos e conteúdos de variáveis) sejam impressos separados uns dos outros

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br45

Comando ESCREVA(comando de I/O – saída de dados)

Exemplos de uso do escreva/escreval:

var NOME : caractere IDADE : inteiro SALARIO, INSS : real

escreva("Nome: ",nome) impressão: Nome: Joselito Sem Noçãoescreval("Sua idade é de ",idade) impressão: Sua idade é de 39escreval("Salário de ",salario," INSS de ",inss)® impressão: Salário de 850.65 INSS de 87.40

escreval salto de uma linha em branco

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br46

Exemplo 1

algoritmo "CalcSomaMedia"

var n1, n2, soma : inteiro media : realinicio leia(n1) leia(n2) soma <- n1 + n2 media <- soma / 2 escreval(soma) escreval(media)fimalgoritmo

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br47

Exemplo 1

algoritmo "CalcSomaMedia"var n1, n2, soma : inteiro media : realInicio escreva("Digite um número : ")

leia(n1) escreva("Digite outro número : ") leia(n2) soma <- n1 + n2 media <- soma / 2 escreval("Soma = ",soma) escreval("Média = ",media)fimalgoritmo

Entrada de Dados

Cálculos

Saída de Dados

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br48

Exemplo 2

Faça um algoritmo que solicite ao usuário o seu nome completo e o número de filhos que ele tem, e depois imprima estas informações.

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br49

Exemplo 2 (algoritmo resolvido)

algoritmo "TerceiroAlgoritmo"var nome : caractere numfilhos : inteiroinicio escreva("Qual o seu nome? ") leia(nome) escreva("Quantos filhos você tem? ") leia(numfilhos) escreval("Nome: ",nome) escreval("Número de filhos: ",numfilhos)fimalgoritmo

Entrada de Dados

Saída de Dados

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br50

Exemplo 3

Faça um algoritmo que solicite ao usuário o seu nome, seu endereço completo (logradouro, número, bairro, cidade, estado e CEP), seu peso (em Kg) e o número do sapato. Depois imprima uma etiqueta com estas informações de acordo com o layout abaixo:

x---------------------nome------------------------xx---------logradouro----------x, x---numero---xBairro x-----------------bairro-------------------xx-----------cidade---------------x – x--estado—xCEP x---cep---x

Peso (kg): x---peso---xNúmero do sapato: x--numero do sapato--x

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br51

Exemplo 3

Exemplo de saída de dados:

RICARDO LUIZ DE FREITASRUA COBRE, 200Bairro CRUZEIROBELO HORIZONTE – MGCEP 30150-101

Peso (kg): 86.5Número do sapato: 40

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br52

Exemplo 3 (algoritmo resolvido)

algoritmo "Etiqueta"var nome, logradouro, bairro, cidade, uf, cep, numero: caractere sapato : inteiro peso : realinicio escreva("Informe o seu nome: ") leia(nome) escreva("Informe o logradouro: ") leia(logradouro) escreva("Informe o número: ") leia(numero) escreva("Informe o bairro: ") leia(bairro)

(continua...)

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br53

Exemplo 3(algoritmo resolvido)

(continuação...)

escreva("Informe a cidade: ") leia(cidade) escreva("Informe a UF: ") leia(uf) escreva("Informe o CEP: ") leia(cep) escreva("Informe o número do seu sapato: ") leia(sapato) escreva("Informe o seu peso em Kg: ") leia(peso)

(continua...)

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br54

Exemplo 3(algoritmo resolvido)

(continuação...)

limpatela escreval(nome) escreval(logradouro,", ",numero) escreval("Bairro ",bairro) escreval(cidade," - ",uf) escreval("CEP ",cep) escreval escreval("Peso (Kg): ",peso) escreval("Número do sapato: ",sapato)fimalgoritmo

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br55

Exercício 1Faça um algoritmo que solicite ao usuário o seu nome, seus documentos (CPF, identidade, título de eleitor, carteira de motorista), seu salário e o nome da empresa em que trabalha, e depois imprima a sua FICHA FUNCIONAL de acordo com o layout abaixo:

FICHA FUNCIONAL DE: x---------------------nome------------------------x

Documentos:CPF ............................................. x-----cpf-----x C.I. ............................................... x---identidade---xTitulo de eleitor ........................... x---título de eleitor---xCarteira de motorista ................... x---carteira de motorista ---x

Empresa: x-----nome da empresa------xSalário: R$ x-----salário-----x

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br56

Exercício 1

Exemplo de saída de dados:

FICHA FUNCIONAL DE: RICARDO LUIZ DE FREITAS

Documentos:CPF ............................................. 415467889-03 C.I. ............................................... M5677823Titulo de eleitor ........................... 458690688444Carteira de motorista ................... 22349377

Empresa: FEA-FUMECSalario: R$ 10500.45

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br57

Exercício 2A Secretaria do Meio Ambiente mediu a quantidade de poluentes atmosféricos emitidos por uma empresa. Dependendo do valor obtido, a empresa foi multada conforme a tabela abaixo. Faça um algoritmo que monte esta tabela, solicitando as informações variáveis (xxx) para o usuário:

Quantidade de Poluente Emitido x Valor da Multa

Até xxx (1) multa de R$ xxx (3)

Entre xxx (1) e xxx (2) multa de R$ xxx (4)

Acima de xxx (2) multa de R$ xxx (5) por poluente emitido

Prof. Ricardo Luiz de Freitas – ricardo@fumec.br58

Exercício 2

Exemplo de saída de dados:

Quantidade de Poluente Emitido x Valor da Multa

Até 1500 multa de R$ 1000.55

Entre 1500 e 3000 multa de R$ 3550.34

Acima de 3000 multa de R$ 1200.21 por poluente emitido

top related