Vous êtes sur la page 1sur 63

Engenharia de Produo Faculdade Anhanguera do Rio Grande

Prof. Esp. Ademar Rodrigues de Moraes

ALGORITMO uma seqncia finita de instrues ordenadas de forma lgica para a resoluo de uma determinada tarefa ou problema. O termo "finitas" significa a necessidade de um requisito qualquer que estabelea o final da execuo do algoritmo.

Exemplo 1: Troca de Lmpada -Pegar uma escada; -Posicionar a escada embaixo da lmpada; -Buscar uma lmpada nova; -Subir na escada; -Retirar a lmpada velha -Colocar a lmpada nova;

Exemplo 2: Troca de lmpada com teste -Pegar uma escada; -Posicionar a escada embaixo da lmpada; -Buscar uma lmpada nova; -Acionar o interruptor; -SE a lmpada no acender, ENTO; -Subir na escada; -Retirar a lmpada velha; -Colocar a lmpada nova;

Exemplo 3: Troca de lmpada com teste no incio -Acionar o interruptor; -SE a lmpada no acender, ENTO; -Pegar uma escada; -Posicionar a escada embaixo da lmpada; -Buscar uma lmpada nova; -Subir na escada; -Retirar a lmpada velha; -Colocar a lmpada nova;

Exemplo 4: Incio S E Q U N C I A L 1. 2. 3. 4. 5. Tirar o fone do gancho; Ouvir o sinal de linha; Introduzir o carto; Teclar o nmero desejado; Se der o sinal de chamar; 5.1 Conversar; 5.2 Desligar; 5.3 Retirar o carto; 6. Se no; 6.1 Repetir; Fim. DESVIO

Exerccios: Elabore algoritmos para: Acordar. Tomar banho. Pegar um txi. Ir pra aula. Instruir um rob a fazer caf. Dispomos de duas vasilhas com capacidades de 9 e 4 litros respectivamente. As vasilhas no tem nenhum tipo de marcao, de modo que no possvel ter medidas como metade ou um tero. Mostre uma seqncia de passos (algoritmo), que usando as vasilhas de 9 e 4 litros encha uma terceira vasilha de medida desconhecida com seis litros de gua.

Exerccios: Elabore algoritmos para: As Torres de Hani so um quebra-cabeas que consiste em uma base contendo trs pinos, onde num deles, so dispostos trs discos uns sobre os outros, em ordem crescente de dimetro, de cima para baixo. O problema consiste em passar todos os discos (um de cada vez) de um pino para outro qualquer, usando um dos pinos como auxiliar, de maneira que um disco maior nunca fique em cima de outro menor em nenhuma situao. Elabore um algoritmo que resolva o problema das Torres de Hani.

PROGRAMA: um algoritmo escrito em uma linguagem computacional. LINGUAGENS DE PROGRAMAO: So softwares que permitem o desenvolvimento de programas. Ex: Cobol, Pascal,C,Java, etc .. PORTUGOL: -Pseudo-linguagem -Portugus + ALGOL.

PORTUGOL

PORTUGOL

Operadores aritmticos + * / Adio Subtrao Multiplicao Diviso

Operadores relacionais > < >= <= = <> Maior que Menor que Maior ou igual Menor ou igual Igual Diferente

PORTUGOL

Variveis: So endereos de memria destinados a armazenar temporariamente as informaes

Constantes: So endereos de memria destinados a armazenar informaes fixas

Ex: pi = 3.1416

PORTUGOL

Tipos de variveis:

Inteiro: Qualquer nmero inteiro (negativo, nulo ou positivo) Ex: -12, 0, 1, 67 Real: Qualquer nmero real, nulo ou positivo Ex: -10, -1.6, 47.9 Caracter: Caracteres alfanumricos Ex: casa, nome, teste Lgico: Valor lgico verdadeiro ou falso

PORTUGOL

Identificadores: So os nomes dados as variveis, constantes e programas

Regras para construo: -No podem ter nomes de palavras reservadas (comandos da Linguagem) -Devem possuir como primeiro caractere uma letra ou underscore -Ter como demais caracteres letras, nmeros ou underscore -Ter no mximo 127 caracteres -No possuir espaos em branco -A escolha de letras maisculas e minsculas indiferente

PORTUGOL

Declarao de Variveis:

, Tipo : Identificador ;

Exemplo: inteiro: valor; real: media_anual; caracter: nome_aluno;

PORTUGOL

Constante: Uma constante um valor fixo, que no se modifica ao longo do tempo, durante a execuo do programa.

Exemplo: Const X 10;

PORTUGOL Comando de atribuio:

Identificador

expresso

Atribuio de uma constante inteiro valor; valor 12; Atribuio entre variveis inteiro valor; inteiro x; x 12; valor x; inteiro valor; inteiro x; x 12; y3 valor x + y * 14;

Resultado de expresses

PORTUGOL

Linearizao:

Tradicional [1+(25)] +4

Computacional (1+(25))+4

Prioridades: (2+2)/2 = 2 2+2/2 = 3 1 parnteses e funes 2 expresses aritmticas 3 comparaes 4 no 5 e 6 ou

PORTUGOL

Operadores especiais MOD e DIV:

MOD Retorna o resto da diviso DIV Retorna o valor inteiro que resulta da diviso

17 1 MOD

2 8 DIV

PORTUGOL

Operadores Lgicos: Atuam sobre expresses retornando sempre valores lgicos como FALSO ou VERDADEIRO.

E OU

Retorna verdadeiro se ambas as partes forem verdadeiras Basta que uma parte seja verdadeira para retornar verdadeiro Inverte o estado, de verdadeiro passa para falso e vice-versa

NO

PORTUGOL

Tabela verdade:

A V

B V

AEB V

A OU B V

NO(A) F

V
F F

F
V F

F
F F

V
V F

F
V V

PORTUGOL

Expresses lgicas:

As expresses compostas de relaes sempre retornam um valor lgico.


Exemplo: 3 + 6 > 5 Verdadeiro 34 <> 34 Falso

3 + 6 > 5 E 34 <> 34

Falso

3 + 6 > 5 OU 34 <> 34 Verdadeiro


NO (34 <> 34) Verdadeiro

PORTUGOL

Comandos de I/O:

-LER: Comando de entrada que permite a leitura de variveis -ESCREVER: Comando de sada que exibe uma informao na tela do monitor -IMPRIMIR: Comando de sada que envia uma informao para a impressora

VISUALG

VISUALG

VISUALG

Exerccios:

1. Escreva um algoritmo para calcular a mdia de quatros nmeros informados pelo usurio 2. Desenvolva um algoritmo para calcular x3, sendo x fornecido pelo usurio 3. Escreva um algoritmo que converta uma temperatura informada em Celsius para Fahrenheit. F = 9/5.C + 32 4. Escreva um algoritmo que calcule a rea de um tringulo. A = (b.h)/2

VISUALG

Estrutura de condio SE ENTAO:

A principal ESTRUTURA DE CONDIO utilizada a SE ENTAO e utilizada da seguinte forma:

SE <EXPRESSO LOGICA> ENTAO COMANDO FIMSE

VISUALG

SE <EXPRESSO LOGICA> ENTAO COMANDO FIMSE A EXPRESSO LGICA uma expresso que dever retornar um valor de VERDADEIRO ou de FALSO, e caso o resultado dessa EXPRESSO for VERDADEIRO, ser executado o COMANDO que est dentro da ESTRUTURA. 18 > 20, cujo resultado ser FALSO 45 = 45, cujo resultado ser VERDADEIRO MEDIA > 7 , cujo resultado depender do valor da varivel MEDIA O COMANDO uma linha (ou sequncia) de cdigo que ser executado somente quando o resultado da EXPRESSO LGICA for VERDADEIRO FIMSE indica que a ESTRUTURA SE ENTAO chegou ao final.

VISUALG

SE <EXPRESSO LOGICA> ENTAO COMANDO FIMSE algoritmo "condicao" var idade: inteiro inicio escreval("digite a sua idade") leia(idade) se idade >= 18 entao escreva("voce maior de idade") fimse fimalgoritmo

VISUALG

Estrutura de condio SE ENTAO SENAO: SE <EXPRESSO LOGICA> ENTAO COMANDO X SENAO COMANDO Y FIMSE SE (nota >= 7) E (freqncia > 0.75) ENTAO ESCREVAL(O aluno est aprovado) SENAO ESCREVAL(O aluno est reprovado) FIMSE

VISUALG

Exerccios:

1) Desenvolva um algoritmo que classifique um nmero de entrada fornecido pelo usurio como PAR ou MPAR. 2) Elabore um algoritmo que leia um nmero, e se ele for maior do que 20, imprimir a metade desse nmero. 3) Elabore um algoritmo que leia dois nmeros inteiros e efetue a adio; caso o resultado seja maior que 10, imprima-o. 4) Elabore um algoritmo que leia um nmero e, se ele for positivo, imprima a metade desse nmero, caso contrrio imprima o nmero ao quadrado.

VISUALG

5) Elabore um algoritmo que leia um nmero e imprima uma das mensagens: mltiplo de 3, ou, no mltiplo de 3. 6) Elabore um algoritmo que leia dois nmeros e responda se a diviso do primeiro pelo segundo exata (o resto da diviso deve ser igual a 0). Se for, o algoritmo deve imprimir a mensagem A diviso de (1 numero) por (2 nmero) exata. 7) Elabore um algoritmo que indique se um nmero digitado est compreendido entre 20 e 90, ou no. 8) Um comerciante comprou um produto e quer vend-lo com um lucro de 45% se o valor da compra for menor que R$ 20,00; caso contrrio, o lucro ser de 30%. Elabore um algoritmo que leia o valor do produto e imprima o valor de venda para o produto.

VISUALG

Estrutura de condio SE ENTAO SENAO ANINHADAS: Sabemos que um aluno APROVADO caso apresente MDIA maior ou igual a 7.0 e FREQUENCIA maior ou igual a 75%. Na verdade, em uma situao real, se o aluno obtiver a FREQUENCIA mnima exigida e uma MDIA entre 4 e 7, o mesmo ainda teria direito a uma ltima avaliao de RECUPERAO. Como faramos para resolver o problema em questo utilizando apenas estruturas de condio SE ENTAO SENAO ? Poderamos comear avaliando a FREQUENCIA do aluno, e se a mesma for menor que 75% o aluno j estaria REPROVADO, porm caso a FREQUENCIA respeite o mnimo exigido, comearamos a avaliar a MDIA para saber se o mesmo est APROVADO, em RECUPERAO ou REPROVADO. No momento em que verificado que a FREQUENCIA menor que 0.75 (75%) o aluno j est imediatamente REPROVADO, mas caso a FREQUENCIA seja maior ou igual a esse valor, devemos continuar com o algoritmo para avaliar em que situao que o aluno se encontra. Enfim, agora necessrio avaliar a MEDIA do mesmo, verificando se est acima de 7.0 (APROVADO), entre 4 e 7.0 (RECUPERACAO), ou abaixo de 4.0 (REPROVADO).

VISUALG algoritmo "aluno" var frequencia, media: real inicio escreval("digite a media e a frequencia") leia(media, frequencia) se frequencia >= 0.75 entao se media >= 7 entao escreval(Voce esta APROVADO") senao se media >= 4 entao escreval(Voce esta em RECUPERACAO") senao escreval(Voce esta REPROVADO POR MEDIA") fimse fimse senao escreva("voce esta reprovado por FALTAS") fimse fimalgoritmo

VISUALG

Exerccios: 1. Elabore um algoritmo que leia dois nmeros e imprima qual maior, qual menor, ou se so iguais.

2. Uma empresa qualquer decidiu conceder um aumento de salrios a seus funcionrios de acordo com a tabela abaixo:
Salrio Atual 0 400,00 Aumento 15%

400,01 700,00
700,01 1.000,00

12%
10 %

1.000,01 1.800,00
1.800,01 2.500,00 Acima de 2.500,00

7%
5% Sem aumento

VISUALG

Escrever um algoritmo que leia o salrio atual de um funcionrio e escreva o percentual de seu aumento e o valor do salrio corrigido a partir desse aumento. Utilize a estrutura de condio SE ENTO. 3. Um endocrinologista deseja controlar a sade de seus pacientes e, para isso, utiliza a frmula do ndice de Massa Corporal (IMC). Sabendo que o IMC calculado por meio da seguinte frmula: IMC = massa/altura2 Onde a massa dada em kg e a altura em metros Elabore um algoritmo que apresente o nome do paciente e sua faixa de risco, baseando-se na seguinte tabela:

VISUALG

IMC Abaixo de 20 De 20 at 25 De 25 at 30 De 30 at 35 Acima de 35

FAIXA DE RISCO Abaixo do peso Normal Excesso de peso Obesidade Obesidade mrbida

4. Elabore um algoritmo para ler trs valores e verificar se eles podem ser os comprimentos dos lados de um tringulo, e se forem dizer o tipo de tringulo. Para ser um tringulo necessrio que qualquer um dos lados seja menor que a soma dos outros dois lados. (A<B+C) (B<A+C) (C<A+B).

VISUALG

Utilize a estrutura de condio SE ENTAO aninhadas. Obs: Equiltero aquele que tem os trs lados iguais. (A=B=C) Issceles aquele que tem dois lados iguais. (A=B) (A=C) (B=C) Escaleno aquele que tem todos os lados diferentes (A<>B<>C)

VISUALG

Estrutura de condio ESCOLHA CASO:

ESCOLHA <NOME DA VARIAVEL> CASO <VALOR1> COMANDO X CASO <VALOR2> COMANDO Y OUTROCASO COMANDO Z FIMESCOLHA

VISUALG

algoritmo "teste" var n: inteiro inicio escreval("digite n") leia(n) escolha n caso 1 escreva("um") caso 2 escreva("dois") outrocaso escreva(outro valor") fimescolha fimalgoritmo

VISUALG

importante salientar que tambm possvel utilizarmos intervalos de valores do tipo caractere, veja o exemplo a seguir: algoritmo "teste" var letra: caracter inicio escreval("digite letra") leia(letra) escolha letra caso "a" ate "c" escreva("entre a e c") outrocaso escreva("outra letra") fimescolha fimalgoritmo

VISUALG Exerccios: 1. Criar um algoritmo que leia dois nmeros inteiros, e que solicite ao usurio qual a operao que o mesmo deseja realizar entre esses nmeros. Caso o usurio digitar o caractere * ser realizada uma multiplicao, caso seja digitado o caractere / ser realizada uma diviso, caso seja digitado o caractere + ser realizado uma adio entre os nmeros, e caso seja digitado o caractere - ser realizada uma subtrao. Utilize a estrutura de condio ESCOLHA 2. Elabore um algoritmo que, dada a idade de um nadador, classifique-o em uma das seguintes categorias: Infantil A Infantil B Juvenil Adulto 5 7 anos 8 10 anos 11 17 anos Maiores de 18 anos

VISUALG

Estrutura de repetio PARA FACA FIMPARA:

PARA <VARIAVEL INTEIRA> <- <VALOR INICIAL> ATE <VALOR FINAL> FACA COMANDO X COMANDO Y FIMPARA

VISUALG

Decrescente: algoritmo repeticao" var i: inteiro

inicio
para i <- 1 ate 20 faca escreval("escreva-me 20 vezes") fimpara fimalgoritmo

VISUALG

algoritmo teste" var palavra: caracter i: inteiro


inicio para i <- 20 ate 1 passo -1 faca escreval(i) fimpara fimalgoritmo

VISUALG Exerccios:

Utilize a estrutura PARA FACA - FIMPARA

1. Elabore um algoritmo que imprima todos os nmeros de 1 at 100 2. Crie um algoritmo que imprima todos os nmeros de 100 at 1 3. Elabore um algoritmo que leia um nmero de entrada que indicar a quantidade de nmeros a serem lidos. Em seguida, leia n nmeros (conforme o valor informado anteriormente) e imprima o triplo de cada um 4. Elabore um algoritmo que imprima todos os nmeros pares de 1 at 100

VISUALG

Estrutura de repetio ENQUANTO FACA

ENQUANTO <EXPRESSO LGICA> FACA COMANDO X COMANDO Y FIMENQUANTO

VISUALG

Estrutura de repetio ENQUANTO FACA

algoritmo "Exemplo Enquanto" var x: inteiro inicio enquanto x<10 faca escreva(x) x<-x+1 fimenquanto fimalgoritmo

VISUALG

Estrutura de repetio Repita

Repita COMANDO X COMANDO Y ATE (EXPRESSO LGICA)

VISUALG

Estrutura de repetio REPITA

algoritmo "Exemplo Repita" var x: inteiro inicio Repita escreva(x) x<-x+1 ate (x>10) fimalgoritmo

VISUALG

Exerccios ENQUANTO e REPITA 1) Faa um algoritmo que leia vrios nmeros e, no final, escreva a soma de todos os nmeros. O algoritmo deve parar de ler novos nmeros quando for informado um nmero 0 (ZERO). 2) Elabore um algoritmo que faa a entrada de dados e a apurao de uma votao. Devem existir trs candidatos e o usurio deve entrar com os votos at ser escolhida a opo de sada. No fim, deve ser apresentado o resultado final, com o total de votos de cada candidato e sua porcentagem. Exemplo: Informe o voto (P- Pedro; J- Joo; M- Maria; S- Sair): 3) Elabore um algoritmo que leia diferentes nmeros at que seja informado um nmero mltiplo de 3.

VISUALG

VETORES: algoritmo "vetor I" // Data : 16/4/2008 // Seo de Declaraes var teste: vetor [1..3] de inteiro x: inteiro inicio // Seo de Comandos x <- 5 teste[1] <- 2 teste[2] <- x teste[3] <- x * 2 fimalgoritmo

VISUALG

EXERCCIOS: 1. Implemente um algoritmo que leia as notas e os nomes de 5 alunos armazenando os dados em vetores (matriz) de 5 posies, sendo que as notas sero armazenadas em um vetor de reais e os nomes em um outro vetor do tipo caractere. Ao final o algoritmo deve escrever na tela somente os nomes dos alunos que tiraram nota maior que 5.0. 2. Desenvolva um algoritmo que leia um conjunto de 15 nmeros inteiros e armazene-os em um vetor A. Aps a leitura dos dados o algoritmo deve multiplicar todos os nmeros do vetor A por 3 e armazenar o resultado em um segundo vetor B. 3. Escreva um algoritmo que leia o nome, a idade, e o sexo de dez pessoas armazenando os dados em vetores e que faca a contagem do numero de pessoas do sexo masculino e do sexo feminino que possuem idade maior que 18. 4. Elabore um algoritmo que leia nome e salrio de 20 pessoas. Calcular e armazenar o novo salrio sabendo que o reajuste foi de 8%. Ao final imprimir uma listagem numerada com nome e novo salrio.

VISUALG

MATRIZES: algoritmo "matriz_I" var teste: vetor[1..5, 1..10] de inteiro x: inteiro inicio x <- 5 teste[1,7] <- 10 teste[2,1] <- x teste[x,4] <- x * 3 fimalgoritmo

VISUALG

Exerccios:

1) Desenvolva um algoritmo que calcule a soma de todos os elementos contidos em uma matriz de inteiros de ordem 3 x 5. O algoritmo deve fazer a leitura dos elementos da matriz. 2) Desenvolva um algoritmo que calcule a soma de todos os elementos da diagonal de uma matriz 6 x 6. O algoritmo deve fazer a leitura dos elementos da matriz.

VISUALG

3) Faa um programa que leia uma matriz de ordem NxM. Em seguida o programa deve solicitar que o usurio digite o nmero de duas colunas. O programa deve trocar os elementos das colunas indicadas pelo usurio e imprimir o resultado. Exemplo da entrada: Digite o nmero de linhas das matrizes: 3 Digite o nmero de colunas das matrizes: 4 Digite os elementos da linha 1 : 8 5 7 9 Digite os elementos da linha 2 : 9 3 5 5 Digite os elementos da linha 2 : 2 3 5 2 Digite as colunas que devem ser trocadas: 2 e 4 Exemplo de sada: 8975 9553 2253

VISUALG

4) Desenvolva programas que faam a leitura de uma matriz de ordem NxM e imprimam: a) A soma de cada linha; b) O maior elemento de cada linha; c) A soma de cada coluna; d) O maior elemento de cada coluna; e) O nmero da linha cuja soma dos elementos a maior; f) O nmero da coluna cuja soma dos elementos a maior; g) A soma de todos os elementos da matriz;

VISUALG

PROCEDIMENTO:

procedimento <nome-de-procedimento> [(<seqncia-de-declaraes-de-parmetros>)] // Seo de Declaraes Internas ... ... inicio // Seo de Comandos ... ... fimprocedimento

VISUALG

FUNO:
funcao <nome-de-funo> [(<seqncia-de-declaraes-de-parmetros>)]: <tipo-de-dado> // Seo de Declaraes Internas ... ... Inicio // Seo de Comandos ... ... ...

fimfuncao

VISUALG

Exerccios: 1) Elabore um programa que utilize uma sub-rotina (funo) que classifique um nmero entre par ou impar. 2) Elaborar um programa que utilize uma sub-rotina (funo) que recebe um nmero e retorna esse nmero sempre positivo.

3) Faa uma funo que recebe por parmetro o raio de uma esfera e calcula o seu volume. (v = 4/3..R3)
4) Escreva uma funo que recebe as 3 notas de um aluno por parmetro e uma letra. Se a letra for A a funo calcula a mdia aritmtica das notas do aluno, se for P, a sua mdia ponderada (pesos: 5, 3 e 2) e se for H, a sua mdia harmnica.

VISUALG

Exerccios:

5) Faa uma funo que recebe a idade de uma pessoa em anos, meses e dias e retorna essa idade expressa em dias (Considere que os anos possuem 365 dias, e que os meses possuem 30 dias). 6) Faa uma funo que recebe um valor inteiro e verifica se o valor positivo ou negativo. A funo deve retornar um valor booleano . 7) Faa uma funo que recebe um valor inteiro e verifica se o valor par ou mpar. A funo deve retornar um valor booleano.

VISUALG

Exerccios:

8) Faa uma funo que recebe a mdia final de um aluno por parmetro e retorna o seu conceito, conforme a tabela abaixo:
Nota de 0,0 a 4,9 de 5,0 a 6,9 de 7,0 a 8,9 de 9,0 a 10,0 Conceito D C B A

9) Faa uma funo que recebe, por parmetro, a altura (alt) e o sexo de uma pessoa e retorna o seu peso ideal. Para homens, calcular o peso ideal usando a frmula peso ideal= 72.7 * alt - 58 e, para mulheres, peso ideal = 62.1 * alt - 44.7.

Obrigado pela presena Em aula