Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué...

29
Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência da Computação Cascavel, 2010 Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 1 / 28

Transcript of Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué...

Page 1: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Unidade 2: Algoritmos

Prof. Josué Pereira de Castro

Universidade Estadual do Oeste do ParanáCurso: Bacharelado Ciência da Computação

Cascavel, 2010

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 1 / 28

Page 2: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Unidade 2: Algoritmos

Sumário

1 Algoritmos

2 Linguagem AlgoritmicaDefinição da LinguagemExercícios

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 2 / 28

Page 3: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Unidade 2: Algoritmos

Sumário

1 Algoritmos

2 Linguagem AlgoritmicaDefinição da LinguagemExercícios

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 2 / 28

Page 4: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Algoritmos

Sumário

1 Algoritmos

2 Linguagem AlgoritmicaDefinição da LinguagemExercícios

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 3 / 28

Page 5: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Algoritmos

Algoritmos I

Definição: Algoritmo

É uma sequência ordenada e sem ambiguidade de passos que levama solução de um dado problema.

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 4 / 28

Page 6: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Algoritmos

Algoritmos II

Características de um AlgoritmoDeve descrever exatamente as instruções que devem serexecutadas, e em que sequênciaA ordem dos passos deve ser precisamente determinadaDeve ser composto por um número finito de passosDeve ser eficiente (deve resolver o problema usando o mínimode recursos)Deve ser eficaz (deve resolver o problema em qualquer situação,ou seja, todas as situações de exceção que possam alterar ocomportamento do algoritmo devem ser especificadas e tratadas)

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 5 / 28

Page 7: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Algoritmos

Algoritmos III

Definição: ProgramaAlgoritmo implementado em uma linguagem de programação etraduzido por um interpretador ou compilador.

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 6 / 28

Page 8: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica

Sumário

1 Algoritmos

2 Linguagem AlgoritmicaDefinição da LinguagemExercícios

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 7 / 28

Page 9: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica

Linguagem Algoritmica

Padrão adotado: Portugol utilizado no interpretador IC.Interpretador Portugol IC: Software interpretador de algoritmosutilizado na disciplina (disponível na página da disciplina:www.jpcastro.wordpress.com).

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 8 / 28

Page 10: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica Definição da Linguagem

Definição da Linguagem I

ConstantesSão valores fixos que não se modificam ao longo do tempo,durante a execução de um programaPodem ser: numéricas, lógicas ou caractere

Constantes Numéricas:Podem ser inteiras ou reaisSão expressas no sistema decimal, em ponto fixo ou notaçãocientíficaExemplos:

a) 25b) 3.1415c) 0.1e2

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 9 / 28

Page 11: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica Definição da Linguagem

Definição da Linguagem II

Constantes Lógicas:

Representam valores lógicos, podendo apenas assumir doisvalores: verdadeiro ou falsoNo IC, assim como na linguagem C, não há um tipo específicopara dados lógicos. o tipo int é usado da seguinte forma: 0equivale e falso, não-zero equivale a verdadeiro.

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 10 / 28

Page 12: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica Definição da Linguagem

Definição da Linguagem III

Constantes Literais:Podem ser formadas por qualquer sequência de caracteres(letras, dígitos, símbolos especiais, espaço em branco)São delimitadas por aspas (“”) para não confundir com outrositens da linguagem.Exemplos:

a) "José da Silva"b) "Av. da Paz, No 1234"c) "2345.67"d) "02/03/2010"

Obs: Números entre aspas são caracteres e não valores numéricos,logo, não podem ser realizadas quaisquer operações matemáticascom eles

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 11 / 28

Page 13: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica Definição da Linguagem

Definição da Linguagem IV

VariáveisSão representações simbólicas para os elementos de um certoconjuntoEm computação cada variável corresponde à uma posição dememória, cujo conteúdo pode variar ao longo do tempo, durante aexecução do programa.

Obs: Embora uma variável possa assumir diferentes valores, ela sópode armazenar um único valor a cada instante.

Toda variável é identificada por um nome, também chamado deidentificador

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 12 / 28

Page 14: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica Definição da Linguagem

Definição da Linguagem V

Regras para formação de identificadores:1 Identificadores são formados por qualquer número de caracteres

alfanuméricos, incluindo o sublinhado.2 O primeiro caractere deve ser, obrigatoriamente, uma letra ou um

sublinhado, seguido por qualquer número de letras, dígitos ousublinhados.

3 Não são permitidos símbolos especiais, caracteres acentuados,espaços em branco nem símbolos de operadores matemáticos,relacionais ou lógicos.

4 Palavras reservadas da linguagem (seus comandos) não podemser usados como identificadores.

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 13 / 28

Page 15: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica Definição da Linguagem

Definição da Linguagem VI

Declaração de VariáveisSintaxe:tipo nome;outipo nome = valor;

Comentários:São anotações colocadas nos algoritmos para facilitar a leitura ea compreensão do mesmoSintaxe:// comentário

Obs: O comentário inicia-se com “//” e prossegue até o final da linha

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 14 / 28

Page 16: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica Definição da Linguagem

Definição da Linguagem VII

Expressões:São operações realizadas sobre constantes e/ou variáveisPodem ser numéricas, relacionais, lógicas ou de caracteres

Operadores aritméticos

Operador Operação+ Soma e mais unário− Subtração e menos unário∗ Multiplicação/ Divisão% Resto da divisão inteira++ Incremento anterior e posterior−− Decremento anterior e posterior

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 15 / 28

Page 17: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica Definição da Linguagem

Definição da Linguagem VIII

Operadores Relacionais

Operador Operação= Igual!= Diferente> Maior>= Maior ou igual< Menor<= Menor ou igual

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 16 / 28

Page 18: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica Definição da Linguagem

Definição da Linguagem IX

Operadores Lógicos

Operador OperaçãoA && B Retorna verdadeiro se A e B forem verdadeiros

Caso contrário retorna falsoA || B Retorna verdadeiro se A ou B são verdadeiros, ou se

ambos são verdadeiros. Caso contrário retorna falso!A Retorna verdadeiro se A é falso, caso contrário retorna

falso

Expressões Aritméticas:São expressões formadas por operadores aritméticos e seusoperandos são constantes ou variáveis de tipos numéricos(inteiros ou reais)

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 17 / 28

Page 19: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica Definição da Linguagem

Definição da Linguagem X

Expressões Lógicas:

São expressões cujos operadores são relacionais ou lógicos, ecujos operandos podem ser relações, constantes ou variáveis dequalquer tipo ou expressões aritméticasEm outras palavras: é qualquer expressão que possa ser avaliadacomo verdadeira ou falsa.

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 18 / 28

Page 20: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica Definição da Linguagem

Definição da Linguagem XI

Prioridades dos operadores

Entre os operadores aritméticos:2o ∗ e /3o + e −

Entre os operadores Relacionais:1o Todos tem a mesma prioridade

Entre os operadores lógicos:1o !2o &&3o ||

Obs.: A ordem de avaliação das expressões pode ser modificada como uso de parênteses. Expressões entre parênteses tem prioridademaior que qualquer outro operador.

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 19 / 28

Page 21: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica Definição da Linguagem

Definição da Linguagem XII

Expressões LiteraisSão expressões cujos operandos são constantes ou variáveisliteraisGeralmente possuem apenas um único operador, que é o “+”(concatenação)

Operador de Atribuição

Operador que permite atribuir um determinado valor à umavariávelO valor atribuído deve ser compatível com o tipo da variável queirá recebê-loSintaxe: IdVariável = <expressão>

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 20 / 28

Page 22: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica Definição da Linguagem

Definição da Linguagem XIII

(Cont.)Onde: IdVariável é o identificador da variável que

receberá o valor atribuído= é o símbolo de atribuição<expressão> pode ser uma constante, umavariável, ou uma expressão cujo valor, após a suaavaliação, será atribuído à variável do lado esquerdodo símbolo de atribuição

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 21 / 28

Page 23: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica Definição da Linguagem

Definição da Linguagem XIV

Exemplos:1 q = 12 cor = "verde"3 teste = falso4 total = w + e + r

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 22 / 28

Page 24: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica Definição da Linguagem

Definição da Linguagem XV

Comandos de Entrada e SaídaSão comandos (ou funções) fornecidos pelas linguagens deprogramação para possibilitar a aquisição de dados de e para ocomputador, a partir de periféricos e fornecer meios de exibiçãodos resultados do processamento para outros periféricosEm Portugol existem os comandos:

leia (< var1 >,< var2 >, ..., < varn >)escreva (< expr1 >,< expr >, ..., < exprn >)

Estrutura SequencialNuma linguagem algoritmica os comandos são sempreexecutados em sequência linear, seguindo o texto do programa,de cima para baixo, a não ser que uma estrutura de controlemodifique este comportamento.

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 23 / 28

Page 25: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica Definição da Linguagem

Definição da Linguagem XVI

Exemplo:1 Construa um algoritmo que leia dois números inteiros, A e B, em

seguida calcule a soma destes dois números e armazene oresultado em outra variável inteira C. Por fim, imprima os valoresdos dados lidos e a soma obtida.

2 Modifique o programa anterior para realizar todas as quatrooperações aritméticas com os números inteiros A e B,armazenando os resultados em variáveis inteiras, chamadas so(para soma), su (para subtração), mu (para multiplicação), di(para divisão). Seu programa deve escrever quatro linhas, umapara cada resultado, de acordo com o seguinte padrão:A op B = Reonde op é o sinal da operação que está sendo realizada e Re é oresultado da operação.

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 24 / 28

Page 26: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica Exercícios

Exercícios I

1 Faça um algoritmo para ler três números inteiros e calcule a suamédia aritmética, também como um número inteiro. Em seguida oalgoritmo deve imprimir os três números lidos na primeira linha,separados por espaço e na segunda linha deve imprimir a médiacalculada.

2 Elabore um algoritmo para ler dois inteiros, o ano atual e o ano denascimento de uma pessoa e calcular a sua idade (em anosinteiros). A seguir, imprima o ano de nascimento e a suarespectiva idade, separados por espaço.

3 Faça um algoritmo que leia um número real R correspondente aoraio de uma circunferência e imprima o seu diâmetro (d = 2× R),o seu perímetro (P = 2× π × R)e a sua área (A = π × R2),separados por espaço, também como números reais.

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 25 / 28

Page 27: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica Exercícios

Exercícios II

4 Construa um algoritmo para calcular o volume de uma esfera deraio R, sendo R um número real lido a partir da entrada, eimprima o raio R e o respectivo volume da esfera 4

3 × π × R3,separados por espaço.

5 A diagonal de uma caixa retangular com dimensões A, B e C édada por: D =

√A2 + B2 + C2. Faça um programa que leia os

valores de A, B e C, como números reais, e calcule e imprima ovalor da diagonal D também como um número real.

6 Faça um programa que leia dois números reais, respectivamentea base e a altura de um triângulo. Em seguida o programa devecalcular a área deste triângulo e então imprimir os valores da basee da altura seguidos pelo valor da área, separados por espaço.

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 26 / 28

Page 28: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica Exercícios

Exercícios III

7 A revendedora de carros A&B Ltda. paga a seus funcionáriosvendedores dois salários mínimos fixos mais uma comissão fixade R$50,00 por carro vendido e mais 5% do valor da comissão(sobre todos os carros vendidos pelo funcionário). Elabore umprograma que leia o valor do salário mínimo vigente (em R$) e onúmero de carros vendidos pelo funcionário. Determine eimprima o salário total do vendedor.

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 27 / 28

Page 29: Unidade 2: Algoritmos - jpcastro.files.wordpress.com€¦ · Unidade 2: Algoritmos Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso: Bacharelado Ciência

Linguagem Algoritmica Exercícios

Fim

FIM

Prof. Josué P. Castro (UNIOESTE) Unidade 2 Cascavel, 2010 28 / 28