Você está na página 1de 40

Faculdade de Tecnologia da Amaznia Curso Anlise e Desenvolvimento de Sistemas

Algoritmos e Estrutura de Dados


Aula 1: Introduo aos Algoritmos e Estrutura de Dados Ano/semestre: 2009.1
Yomara Pires yopires@yahoo.com.br

Temas abordados
Conceito Gerais: Pseudocdigos Algoritmos, Fluxogramas e

Constantes, Variveis, Tipos de dados e expresses Exemplos / Exerccios

Conceitos Gerais Algoritmos, Fluxogramas e Pseudocdigos


Um algoritmo formalmente uma seqncia finita de passos que levam a execuo de uma tarefa. Exemplos: Operaes bsicas de nmeros reais decimais, manuais de aparelhos eletrnicos, receita de bolo, somar dois nmeros quaisquer.

Conceitos Gerais Algoritmos, Fluxogramas e Pseudocdigos Tipos


Algoritmo no computacional
Ligao telefnica

Algoritmo computacional
Linguagem de programao: softwares que permitem o desenvolvimento de programas Pascal, Clipper, C, Visual Basic, Delphi, Java, etc.

Conceitos Gerais Algoritmos, Fluxogramas e Pseudocdigos O aprendizado de algoritmos no se consegue a no ser atravs de muitos exerccios. Algoritmos no se aprende:
Copiando Algoritmos Estudando Algoritmos

Algoritmos s se aprende:
Construindo Algoritmos Testando Algoritmos

Conceitos Gerais Algoritmos, Fluxogramas e Pseudocdigos Fases de um algoritmo


Definio do problema Estudo da(s) forma(s) de resoluo Utilizao de uma linguagem de programao Testes

Conceitos Gerais Algoritmos, Fluxogramas e Pseudocdigos


Representao de um algoritmo Descritiva: Pseudocdigo Grfica: Fluxograma

Conceitos Gerais Algoritmos, Fluxogramas e Pseudocdigos Pseudocdigo


Linguagem informal de fcil interpretao e codificao que ajuda os programadores a desenvolver algoritmos. So independentes de uma linguagem de programao e fazem aluso futura implementao.

Conceitos Gerais Algoritmos, Fluxogramas e Pseudocdigos Identificao de um algoritmo


ALGORITMO <nome do algoritmo> <definies> INICIO <comandos> FIM.

Conceitos Gerais Algoritmos, Fluxogramas e Pseudocdigos


Descrever um pseudocdigo para calcular a mdia final dos alunos da 3 Srie. Os alunos realizaro quatro provas: P1, P2, P3 e P4.

a) Quais so os dados de entrada?


R: Os dados de entrada so P1, P2, P3 e P4

b) Qual ser o processamento a ser utilizado?


R: somar todos os dados de entrada e dividi-los por 4

c) Quais sero os dados de sada?


R: a mdia final

Conceitos Gerais Algoritmos, Fluxogramas e Pseudocdigos


Descrever um pseudocdigo para calcular a mdia final dos alunos da 3 Srie. Os alunos realizaro quatro provas: P1, P2, P3 e P4.
Algoritmo media Var nota1, nota2, nota3, nota4, media: real; inicio leia (nota1, nota2, nota3, nota4) media= (nota1 + nota2 + nota3 + nota4) / 4 escreva (media) fim.

Conceitos Gerais Algoritmos, Fluxogramas e Pseudocdigos


Regras para construo do Algoritmo
No iniciar o nome do algoritmo com nmeros. No utilizar palavras reservadas. EX: var, se. No utilizar caracteres especiais (!?:&@, etc.) no utilizar nomes iguais para representar variveis diferentes Usar somente um verbo por frase Imaginar que voc est desenvolvendo um algoritmo para pessoas que no trabalham com informtica Usar frases curtas e simples Ser objetivo Usar palavras que no tenham sentido dbio

Conceitos Gerais Algoritmos, Fluxogramas e Pseudocdigos Fluxogramas


Representao grfica de um algoritmo ou parte dele. Mostram como as estruturas de controle operam.
Terminal: INCIO e FIM de um processamento Processamento: Processamento em geral Deciso: deciso a ser tomada

Exibir: mostra informaes ou resultados no vde Conexo: conexo entre smbolos

Conceitos Gerais Algoritmos, Fluxogramas e Pseudocdigos


inicio receber N1 receber N2 receber N3 receber N4 adiciona nota ao total calcule media adiciona 1 ao contador exibir mdia fim total = total + grade counter = counter + 1
inicio leia (nota1, nota2, nota3, nota4) media= (nota1 + nota2 + nota3 + nota4) / 4 escreva (media) fim

Conceitos Gerais Algoritmos, Fluxogramas e Pseudocdigos


Desenvolver um fluxograma para ler o nome, a idade, o cargo e o salrio de 50 pessoas e verificar quantas tem idade inferior a 30 anos e um salrio superior a R$ 3.000,00

inicio
Tot 0

Pessoas 1, 50, 1

tot

fim

Nome, id Cargo, salario

Id<30 e sal>3000

Tot

tot +1

Exerccios
1 - O que um algoritmo? 2- Crie um algoritmo no computacional que troque um pneu de carro. 3- Escreva os passos necessrios para uma pessoa efetuar um saque em um caixa eletrnico 4- Crie um seqncia lgica para: chupar uma bala trocar uma lmpada usar um telefone pblico somar dois nmero e multiplicar o resultado pelo primeiro nmero Calcular a mdia dos de uma turma. Os alunos realizaro quatro provas: p1, p2, p3 e p4 5 - Defina os dados de entrada, processamento sada do algoritmo abaixo Receba cdigo da pea Receba valor da pea Receba quantidade da pea Calcule o valor total da pea quantidade * valor) Mostre o cdigo da pea e seu valor total 6- Faa um algoritmo para calcular o estoque mdio de uma pea, sendo que: ESTMED=(QTDMIN * QTDMAX)/2 7 -Construa um diagrama de blocos que: leia a cotao do dlar leia um valor em dlares converta esse valor para real mostre o resultado

Exerccios
8 - Identifique os dados de entrada, processamento e sada no algoritmo abaixo Receba cdigo da pea Receba valor da pea Receba quantidade de peas Calcule o valor total da pea (quantidade * valor) Mostre o cdigo da pea e seu valor

9 - Faa um algoritmos para calcular o estoque mdio de uma pea, sendo que ESTOQUEMDIO (QUANTIDADE MNIMA + QUANTIDADE MXIMA)/2. Teste este algoritmo com dados definidos por voc. 10 - Construa um diagrama de blocos que: Leia a cotao Leia um valor em dlares Converta esse valor para Real Mostre o resultado OBS: considere que $ 1,00 equivale a R$ 2,00 11- Crie um algoritmo e seu fluxograma para ler as seguintes informaes de uma pessoa: Nome, Idade, Sexo, Peso, Altura, Profisso, Rua, Bairro, Cidade, Estado, CEP, Telefone.

Exerccios
12 - Faa um algoritmo para ler a base e a altura de um tringulo. Em seguida, escreva a rea do mesmo.Obs.: rea = ( Base * Altura ) / 2 13 - Descreve um algoritmo e seu fluxograma que leia trs valores X, Y, Z e verifique se eles podem ser os comprimentos dos lados de um tringulo e se forem escrever uma mensagem informando se se um tringulo equiltero, issceles ou escaleno. Observaes: O comprimento de um lado do tringulo sempre menor do que a soma dos outros dois. Eqiltero Todos lados iguais Issceles Dois lados iguais Escaleno Todos os lados diferentes

Constantes, Variveis, Tipos de dados e expresses

Variveis
Espao reservado na memria do computador para armazenar um tipo de dado determinado. Contedo pode se alterado ao longo do tempo durante a execuo de um programa. Tipos podem ser por exemplo: inteiros, reais, caracteres, etc. S pode armazenar um valor a cada instante

Constantes, Variveis, tipos de dados e expresses

Formao de Variveis
Uma varivel formado por uma letra ou ento por uma letra seguida de letras ou dgitos. No permitido o uso de espaos em branco ou de qualquer outro caractere, que no seja letra ou dgito. Utilize nomes significativos

Constantes, Variveis, tipos de dados e expresses

Contedo de uma Varivel


Dados Informao

Definio de variveis
ALGORITMO Teste VAR Palavra : CADEIA INICIO <comandos> FIM

Constantes, Variveis, tipos de dados e expresses

Constantes
Constante um determinado valor fixo que no se modifica ao longo do tempo, durante a execuo de um programa. classificada como sendo numrica, lgica e literal.

N1+N2+N3 3 pi 3.14
Em Java uma constante declarada com o modificador final: ex: final float pi = 3.14f;

Constantes, Variveis, tipos de dados e expresses

Tipos de Dados
INTEIRO Admite somente nmeros inteiros positivos e negativos. Geralmente utilizado para representar uma contagem (quantidade). Representam nmeros: -1228 at 127 (byte) - ocupa 8 bits de memria; -32768 at 32767 (short) - ocupa 16 bits; -2.147.483.648 at 2.147.483.648 (int) ocupa 32 bits; -9.223.372.036.854.7775.808 at 9.223.372.036.854.7775.808 (long) ocupa 64 bits Admite nmeros reais (com ou sem casas decimais). Geralmente utilizado para representar uma medio. Representa nmeros: -3,4E-38 at -3,4E+38 (float) 32 bits; -1,7E-308 at +1,7E+308 (double) 64 bits Admite caracteres alfanumricos. Os nmeros quando declarados como caracteres tornam se representativos e perdem a atribuio de valor. Ocupa 16 bits na memria. Tambm possvel armazenar dados do tipo literal na classe String. Admite somente valores lgicos(verdadeiro-1/falso-0). Ocupa 8 bits na memria

REAL Real (ponto flutuante) LITERAL char

LGICO boolean

Constantes, Variveis, tipos de dados e expresses

Operadores aritmticos
+ * / ++ -^ ou ** Adio Subtrao Multiplicao Diviso incremento decremento exponenciao

Constantes, Variveis, tipos de dados e expresses

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

Constantes, Variveis, tipos de dados e expresses

Operadores especiais
MOD (%): Retorna o resto da diviso entre 2 nmeros inteiros. DIV: Retorna o valor inteiro que resulta da diviso entre 2 nmeros inteiros.
1 2 3 6 1 MOD DIV 13 DIV 2 = 6 13 MOD 2 = 1

Constantes, Variveis, tipos de dados e expresses

Operadores lgicos
E && .e. RETORNA VERDADEIRO SE AMBAS AS PARTES FOREM VERDADEIRAS.

OU BASTA QUE UMA PARTE SEJA VERDADEIRA PARA RETORNAR || VERDADEIRO. .ou. NO INVERTE O ESTADO, DE VERDADEIRO PASSA PARA FALSO E VICE! VERSA. .no.

Constantes, Variveis, tipos de dados e expresses


Precedncia dos operadores

1 ( ) Parnteses, [ ] colchetes 2 Exponenciao 3 Multiplicao, diviso 4 + ou (o que aparecer primeiro) 5 operador de atribuio 6 =, <, >, <=, >=, <> operadores relacionais 7 !, &&, || operadores lgicos

Constantes, Variveis, tipos de dados e expresses


Precedncia dos operadores
Como seria avaliada a seguinte expresso: A [1] [2] [3] [4] [5] [6] [7] B + 2 > 5 .ou. C <> 4 .e. D = 0

C <> 4 D =0 [1] .e. [2] B+2 [4] > 5 [5] .ou. [3] A [6]

Constantes, Variveis, tipos de dados e expresses

Tabelas Verdades
A B AEB (AND) A OU B (OR) V V V F NO (A) (NOT) F F V V XOR

V V F F

V F V F

V F
F F

F V V F

Constantes, Variveis, tipos de dados e expresses

Operaes lgicas
So utilizadas para tomadas de decises em diagramas de blocos. O resultado desta deciso ser sempre um valor verdadeiro ou falso.

Constantes, Variveis, tipos de dados e expresses


Comandos de Atribuio Varivel tipo numrica Algoritmo Pascal := Java = Varivel tipo CHAR (caractere) STRING (cadeia) Temos que ter o cuidado de colocar o valor ( dado ) entre aspas ( ), pois esta a forma de informar que a informao caracter.

Constantes, Variveis, tipos de dados e expresses

Comandos de Atribuio

Constantes, Variveis, tipos de dados e expresses

Exemplo: variveis numricas Operao A 2 B A B B+3 A 2 2 2 B ? 2 5

Constantes, Variveis, tipos de dados e expresses

ALGORITMO Teste VARIVEIS Nmero: INTEIRO INICIO Nmero 10 FIM

PROGRAM Teste; VAR Nmero: INTEGER; BEGIN Nmero: =10; END.

Constantes, Variveis, tipos de dados e expresses

Exemplo: variveis tipo caracter Operao A A APTO APTO B A APTO B A APTO

B ? APTO A

Constantes, Variveis, tipos de dados e expresses

ALGORITMO AtribuiString; VARIVEIS letra : CARACTER Nome : CADEIA INICIO Nome Joao letra Nome[1] FIM

PROGRAM AtribuiString; VAR letra : CHAR; Nome : STRING; BEGIN Nome Joao; letra Nome[1]; END.

Constantes, Variveis, tipos de dados e expresses

...... 255 ....

1 J

4 O

O A

...... 255 ....

Letra

Letra J

Exerccios
1- Considerando um algoritmo iniciado pelos comandos A - 1, B 2, C 3, complete-o de modo que ao final do algoritmos o contedo de A seja 3, de B seja 1 e de C seja 2. Use apenas atribuies de variveis. 2- O que uma constante? D dois exemplos. 3- O que uma varivel? D dois exemplos. 4 -Tendo duas variveis A = 5 e B = 3 . Os resultados das expresses seriam: Expresso Resultado A = B A <> B A > B A < B A >= B A <= B 5- Sabendo que A=3, B=7 e C=4, informe se as expresses abaixo so verdadeiras ou falsas. a) (A+C) > B ( ) b) B >= (A + 2 ( ) c) C = (B A) ( ) d) (B + A) <= C ( ) e) (C+A) > B ( )

Exerccios
6 - Sabendo que A=5, B=4 e C=3 e D=6, informe se as expresses abaixo so verdadeiras ou falsas. a) (A > C) AND (C <= D) ( ) b) (A+B) > 10 OR (A+B) = (C+D) ( ) c) (A>=C) AND (D >= C) ( ) 7 - Elabore um algoritmo para ler um nmero e verificar se ele par ou mpar. Quando for par armazenar esse valor em P e quando for mpar armazen-lo em I. Exibir P e I no final do processamento 8 -Construa um diagrama de blocos para ler uma varivel numrica N e imprimi-la somente se a mesma for maior que 100, caso contrrio imprimi-la com o valor zero. 9 -Tendo como dados de entrada a altura e o sexo de uma pessoa, construa um algoritmo que calcule seu peso ideal, utilizando as seguintes frmulas: Homens: (72.7 * h) 58 Mulheres (62.1 * h) 44.7

(h = altura)