Buscar

Algoritmo_Aula_3_21_de_agosto_de_2012

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ALGORITMOS 
 
Democlydes de Carvalho 
Prof Esp - Projetos e Aplicações de Rede de Comunicação - UnB 
Taguatinga – DF, 21 de agosto de 2012 democlydes@hotmail.com 
algoritmos 
Conteúdo Programático da Disciplina: 
• Introdução – desenvolvimento de software, algoritmos e lógica de 
programação. 
• Conceitos básicos de algoritmos. 
• Estrutura Sequencial. 
• Estrutura Condicional. 
• Estrutura de Repetição. 
• Tipos de dados compostos homogêneos: Vetores e matrizes. 
• Tipos de dados compostos heterogêneos: Registros. 
• Sub-rotinas. 
• Funções definidas recursivamente 
• Arquivos. 
• Relatórios. 
• Estrutura de Dados Elementares. 
• Técnicas de verificação de algoritmos. 
 
 
Variáveis 
 
• Outro atributo característico de uma variável é o tipo de dado (a ser visto 
mais à frente) que ela pode armazenar. 
• Este atributo define a natureza das informações contidas na variável. Por 
último há o atributo informação, que nada mais é do que a informação útil 
contida na variável. 
• Uma vez definidos, os atributos nome e tipo de dado de uma variável não 
podem ser alterados e assim permanecem durante toda a sua existência, 
desde que o programa que a utiliza não seja modificado. Por outro lado, o 
atributo informação está constantemente sujeito a mudanças de 
acordo com o fluxo de execução do programa. 
• Em resumo, o conceito de variável foi criado para facilitar a vida dos 
programadores, permitindo acessar informações na memória dos 
computadores por meio de um nome, em vez do endereço de uma 
célula de memória. 
Constantes, Variáveis e Tipos de Dados 
algoritmos 
 
Variáveis 
 
• Todas as variáveis utilizadas em algoritmos devem ser definidas 
antes de serem utilizadas. Isto se faz necessário para permitir 
que o compilador reserve um espaço na memória para as mesmas. 
 
• Mesmo que algumas linguagens de programação (como BASIC e 
FORTRAN) dispensem esta definição, uma vez que o espaço na 
memória é reservado à medida que novas variáveis são 
encontradas no decorrer do programa. 
 
• Nos algoritmos usaremos a definição de variáveis por assemelhar-
se com as principais linguagens de programação como Pascal e C. 
Constantes, Variáveis e Tipos de Dados 
algoritmos 
 
Variáveis 
 
Nos algoritmos, todas as variáveis utilizadas também são definidas no 
início do mesmo, por meio de um comando de uma das seguintes 
formas: 
 
VAR <nome_da_variável> : <tipo_da_variável> 
ou 
VAR <lista_de_variáveis> : <tipo_das_variáveis> 
 
A palavra-chave VAR será utilizada um única vez na definição de um 
conjunto de uma ou mais variáveis; 
Numa mesma linha poderão ser definidas uma ou mais variáveis do 
mesmo tipo; Para tal, deve-se separar os nomes das mesmas por 
vírgulas; 
Variáveis de tipos diferentes devem ser declaradas em linhas 
diferentes. 
algoritmos 
 
Variáveis 
 
Exemplo: 
 
No exemplo acima foram declaradas quatro variáveis: 
• a variável nome, capaz de armazenar dados caractere de 
comprimento 35 (35 caracteres); 
• a variável idade, capaz de armazenar um número inteiro; 
• a variável salário, capaz de armazenar um número real; 
• a variável tem_filhos, capaz de armazenar uma informação lógica. 
algoritmos 
var 
 peso : real 
 altura : real 
 imc : inteiro 
 nome : caracter 
Formato de declaração de variáveis para o 
VisualG 
Constantes, Variáveis e Tipos de Dados 
algoritmos 
Formato de declaração de variáveis para o 
VisualG 
Constantes, Variáveis e Tipos de Dados 
onde <identificador i> é o nome (identificador) de uma variável e 
<tipo das variáveis> determina que tipo de valor as variáveis poderão 
receber. 
 
Os identificadores das variáveis são usados para referenciá-las dentro do 
algoritmo. 
 
Tais identificadores devem ser claros e precisos, dando uma idéia do “papel” 
da variável no algoritmo. 
algoritmos 
Não esqueça disso: 
 
Nos algoritmos destinados a resolver um problema no computador, a cada 
variável corresponde uma posição de memória, cujo conteúdo pode 
variar ao longo do tempo durante a execução de um algoritmo. Embora a 
variável possa assumir diferentes valores, ela só pode armazenar um valor a 
cada instante. 
 
Assim, por exemplo, num algoritmo para calcular a área de um triângulo 
retângulo pelo teorema de pitágoras (a2 = b2 + c2), os identificadores A, B e C 
podem representar as posições de memória que armazenam o valor da 
hipotenusa e dos catetos. É importante que nunca usemos uma palavra 
reservada, isto é, que faça parte da linguagem algorítmica, como um 
identificador, pois poderá causar ambiguidade no entendimento do 
algoritmo. 
Constantes, Variáveis e Tipos de Dados 
algoritmos 
 
TIPOS DE DADOS 
 
Todo o trabalho realizado por um computador é baseado na 
manipulação das informações contidas em sua memória. Estas 
informações podem ser classificadas em dois tipos: 
 
– As instruções, que comandam o funcionamento da máquina e 
determinam a maneira como devem ser tratados os dados. 
– Os dados propriamente ditos, que correspondem à porção das 
informações a serem processadas pelo computador. 
 
A classificação apresentada a seguir não se aplica a nenhuma 
linguagem de programação específica; pelo contrário, ela sintetiza os 
padrões utilizados na maioria das linguagens. 
Constantes, Variáveis e Tipos de Dados 
algoritmos 
Tipos de Dados 
Existem quatro tipos de dados utilizados na construção de algoritmos. 
Inteiro: São caracterizados como tipos inteiros, o zero, os dados numéricos positivos ou negativos. 
Excluindo-se destes qualquer número fracionário. 
 Exemplo: 8, -5, 10, 0, 1, etc. 
 
Real: São caracterizados como tipos reais (racionais), os dados numéricos positivos e negativos e 
números normalmente representados por uma parte inteira e uma parte fracionária. 
 Exemplo: 0.15, -5.14, 10. 2, 2E23, etc. 
 
Caracter: São caracterizados como tipos caracteres, as sequências contendo letras, números e 
símbolos especiais. Uma sequência de caracteres deve ser indicada entre aspas (“”). Este tipo 
de dado também é conhecido como alfanumérico, string, literal ou cadeia. 
 
Exemplo: “Ciência da Computação”, “A”, “US$”, “Fone 574-9988”, “04387-030”,“ ”, “7” 
 
Lógico: São caracterizados como tipos lógicos os dados com valor verdadeiro e falso, sendo que 
este tipo de dado poderá representar apenas um dos dois valores. Ele é chamado por alguns 
de tipo booleano, devido à contribuição do filósofo e matemático inglês George Boole na área 
da lógica matemática. 
 Exemplo: V ou F 
 
algoritmos 
Declaração de Variáveis 
As variáveis só podem armazenar 
valores de um mesmo tipo, de 
maneira que também são 
classificadas como sendo 
numéricas, lógicas e literais. 
Constantes, Variáveis e Tipos de Dados 
algoritmos 
Funções de Transferência 
 
É conveniente admitir operações em que mais de um tipo é envolvido. 
 
Funções de transferência entre tipos primitivos: 
 
trunc 
 
Converte em número real em int, truncando sua parte fracionária. 
Exemplo: 
trunc (75.37) = 75 
trunc (-847.5364) = -847 
 
tier 
 
Converte um int em real, juntando parte fracionária nula. 
Exemplo: 
tier (75) = 75.0 
Constantes, Variáveis e Tipos de Dados 
algoritmos 
Comando de Atribuição. 
 
É o comando usado para atribuir um valor a uma variável. 
A natureza deste valor deve ser compatível com o tipo da 
variável declarada. 
O sinal utilizado para indicar uma atribuição é o : = (dois 
pontos igual) ou uma seta (<-) 
 
É importante neste ponto esclarecer como é que funciona oprocesso de atribuição: 
Caso eu esteja atribuindo para uma variável o resultado de 
uma expressão, o algoritmo primeiro deverá resolver a 
expressão para depois fazer a atribuição. 
algoritmos 
Comando de Atribuição. 
 
Exemplo 1 
Peso <- 78.7 // Este comando atribui à variável Peso o valor 78.7. 
Nome <- "João da Silva" // Este comando atribui à variável Nome o valor 
"João da Silva". 
Achei <- FALSO // Este comando atribui à variável Achei o valor FALSO. 
É importante lembrar que só se pode atribuir às variáveis valores do 
mesmo tipo da variável. Assim, o seguinte comando seria inválido: 
 
Exemplo 2 
VAR 
salario: REAL 
INICIO 
salario <- "Insuficiente" 
algoritmos 
Comando de Atribuição. 
 
Deve estar claro, também, que sempre à esquerda do comando de atribuição 
deve haver um (e somente um) identificador de variável. Assim, são incorretos 
os seguintes comandos: 
“são incorretos” 
2060 <- NumeroConta 
NumeroAgencia+digitoControle <- 2345 + 0 
NomeCliente+sobrenome <- “João” + “Silva” 
 
Mais exemplos 
 
A: = 3 + (2 * 6) 
ESCREVA ( A ) {RESULTADO 15} 
 
O resultado deste comando será 15, porque o algoritmo primeiro resolve a 
expressão e depois guardou o valor conseguido na variável especificada (A). 
algoritmos 
Comando de Atribuição. 
 
Também podem ser utilizados os valores armazenados em 
outras variáveis, para se fazer uma atribuição: 
 
A: = 5 
B : = 3 
C: = (A + B) / 2 
MOSTRE (C) {RESULTADO 4} 
 
No final desta sequência de comandos o valor dentro da 
variável c será 4, pois o algoritmo utilizou o valor das 
variáveis A e B para calcular o valor da expressão e depois 
o armazenou em C. 
algoritmos 
Comando de Atribuição. 
 
Também pode ser utilizado o valor da própria variável que receberá a 
atribuição: 
 
A: = 7 
B: = 5 
C : =9 
C: = (A + B + C) / 3 
MOSTRE (C) {RESULTADO 7} 
 
No final desta sequência o valor de C será 7 , pois o algoritmo primeiro 
utiliza o valor 9 armazenado em C para resolver a expressão, e depois 
de resolvida , o novo valor será armazenado em C , apagando o valor 
anterior. 
algoritmos 
Comando de Atribuição. 
 
Para ficar mais claro: 
 
CONTADOR : = 1 
CONTADOR : = CONTADOR + 1 
ESCREVA (CONTADOR) { RESULTADO 2} 
 
A variável CONTADOR foi inicializada com o valor 1 , e logo abaixo este valor 
foi utilizado em uma expressão, e o resultado desta expressão foi armazenado 
dentro da própria variável CONTADOR. Mas é importante notar que o algoritmo 
primeiro utilizou o valor 1 para resolver a expressão , e somente após ter a 
resposta é que ele alterou o valor da variável CONTADOR. 
Na verdade eu apenas somei 1 ao valor que já existia na variável. 
 
algoritmos 
 
Comando de Atribuição. 
algoritmos 
Exercício: 
 
Se X possui o valor 15 e foram executadas as 
seguintes instruções: 
X := X + 3 
X := X - 6 
X := X / 2 
X := 3 * X 
Qual será o valor armazenado em X? 
algoritmos 
Algoritmos 
Taguatinga – DF, 04 de agosto de 2011 
Testando o Algoritmo 
1. Faça um algoritmo que receba dois números e exiba o resultado da sua 
soma. 
 
2. Faça um algoritmo que receba dois números e ao final mostre a soma, 
subtração, multiplicação e a divisão dos números lidos. 
 
3. Escrever um algoritmo para determinar o consumo médio de um automóvel 
sendo fornecida a distância total percorrida pelo automóvel e o total de 
combustível gasto. 
 
4. Escrever um algoritmo que leia o nome de um vendedor, o seu salário fixo e o 
total de vendas efetuadas por ele no mês (em dinheiro). Sabendo que este 
vendedor ganha 15% de comissão sobre suas vendas efetuadas, informar o 
seu nome, o salário fixo e salário no final do mês. 
 
5. Escrever um algoritmo que leia o nome de um aluno e as notas das três 
provas que ele obteve no semestre. No final informar o nome do aluno e a sua 
média (aritmética). 
algoritmos 
algoritmo "lista 01" 
//Faça um algoritmo que receba dois números e 
//exiba o resultado da sua soma. 
var 
n1,n2:real 
inicio 
 escreva ("digite um número: ") 
 leia (n1) 
 escreva ("digite outro número: ") 
 leia (n2) 
 escreval(n1," + ",n2," = ",n1+n2) 
fimalgoritmo 
algoritmos 
algoritmo "lista 02" 
//Faça um algoritmo que receba dois números e ao final mostre a soma, 
//subtração, multiplicação e a divisão dos números lidos. 
var 
a, b: real 
inicio 
 escreva("Digite um Número: ") 
 leia (a) 
 escreva("Digite um Número: ") 
 leia (b) 
 escreval("A soma do ",a," + ",b," = ",a+b) 
 escreval("O resutado da subtração de ",a," por ",b, " = ",a-b) 
 escreval("O produto de ",a," X ",b," = ",a*b) 
 escreval ("O quociente de ",a, " / ",b," = ",a/b) 
 
fimalgoritmo 
algoritmos 
algoritmo "lista 03" 
//Escrever um algoritmo para determinar o consumo médio de um 
//automóvel sendo fornecida a distância total percorrida pelo 
//automóvel e o total de combustível gasto. 
var 
dist, combg:real 
inicio 
 escreva("Digite a distância: ") 
 leia(dist) 
 escreva("Digite o quantidade de combustível: ") 
 leia(combg) 
 escreval("consumo médio = ",dist/combg," Km por litro") 
fimalgoritmo 
algoritmos 
algoritmo "lista 04" 
// Escrever um algoritmo que leia o nome de um vendedor, o seu 
//salário fixo e o total de vendas efetuadas por ele no mês (em 
//dinheiro). Sabendo que este vendedor ganha 15% de comissão sobre 
//suas vendas efetuadas, informar o seu nome, o salário fixo e 
//salário no final do mês. 
var 
nome:literal 
salfix, tvend:real 
inicio 
 escreval("por favor, Insira os dados") 
 escreva("Nome: ") 
 leia(nome) 
 escreva("Salário Fixo: ") 
 leia(salfix) 
 escreva("Total de Vendas: ") 
 leia(tvend) 
 escreval ("Vendedor: ",nome) 
 escreval("Total vendido: ", tvend) 
 escreval("salário fixo : ",salfix) 
 escreval("salário total: ", salfix +(tvend*0.15)) 
fimalgoritmo 
algoritmos 
algoritmo "lista 05" 
// Escrever um algoritmo que leia o nome de um aluno e as notas das 
//três provas que ele obteve no semestre. No final informar o nome do 
//aluno e a sua média (aritmética). 
var 
nome:caracter 
nt1, nt2,nt3:real 
inicio 
 escreval("entre com os tados do aluno") 
 escreva ("Nome: ") 
 leia(nome) 
 escreva("1º nota: ") 
 leia(nt1) 
 escreva("2º nota: ") 
 leia(nt2) 
 escreva("3º nota: ") 
 leia(nt3) 
 escreval("O Aluno: ",nome) 
 escreval("Obteve a média: ", (nt1+nt2+nt3)/3) 
fimalgoritmo 
algoritmos 
• Atividades: Resolver os próximos exercícios e postar no moodle até 
a próxima aula: valendo 1,0 ponto1. 
algoritmos 
• Atividades: Resolver os exercícios e postar no moodle até a próxima 
aula: valendo 1,0 pontos. 
algoritmos 
• Atividades: Resolver os exercícios e postar no moodle até a próxima 
aula: valendo 1,0 ponto. 
algoritmos 
• Atividades: Resolver os exercícios e postar no moodle até a próxima 
aula: valendo 1,0 ponto1. 
algoritmos 
• Atividades: Resolver os exercícios e postar no moodle até a próxima 
aula: valendo 1,0 pontos. 
algoritmos 
• Atividades: Resolver os exercícios e postar no moodle até a próxima 
aula: valendo 1,0 pontos. 
algoritmos 
• Atividades: Resolver os exercícios e postar no moodle até a próxima 
aula: valendo 1,0 pontos. 
algoritmos 
• Atividades: Resolver os exercícios e postar no moodle até a próxima 
aula: valendo 1,0 ponto. 
algoritmos 
 
BIBLIOGRAFIA 
• Tonet, Bruno; Koliver, Cristian. Introdução aos Algoritmos. Caxias do Sul. 
Núcleo de Apoio à Aprendizagem de Programação-Universidadede Caxias do 
Sul, 54 p. 
• FARRER, Harry et alli Algoritmos Estruturados. Rio de Janeiro. Editora 
Guanabara Koogan S.A, 1989. 252p. 
• GOTTFRIED, Byron S. Programação em Pascal. Lisboa. McGraw Hill, 1994. 
567p. 
• MANZANO, José Augusto N. G. & OLIVEIRA, Jayr Figueiredo. Algoritmos: 
Lógica Para Desenvolvimento de Programação. São Paulo. Érica, 1996. 
270p. 
• MECLER, Ian & MAIA, Luiz Paulo. Programação e Lógica com Turbo 
Pascal. Rio de Janeiro, Campus, 1989. 223p. 
• ORTH, Afonso Inácio. Algoritmos. Porto Alegre. Editora Pallotti, 1985. 130p. 
• SALIBA, Walter Luís Caram. Técnicas de Programação: Uma Abordagem 
Estrutura. São Paulo. Makron, McGraw-Hill, 1992. 141p. 
algoritmos 
ALGORITMOS 
 
Democlydes de Carvalho 
Prof Esp - Projetos e Aplicações de Rede de Comunicação - UnB 
Taguatinga – DF, 21 de agosto de 2012 democlydes@hotmail.com

Mais conteúdos dessa disciplina