


























































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Apostla Algoritmos
Tipologia: Notas de estudo
1 / 66
Esta página não é visível na pré-visualização
Não perca as partes importantes!



























































Algoritmos e Lógica de Programação
A automatização de tarefas é um aspecto marcante da sociedade moderna. O aperfeiçoamento tecnológico alcançado, com respeito a isto, teve como elementos fundamentais a análise e a obtenção de descrições da execução de tarefas em termos de ações simples o suficiente, tal que pudessem ser automatizadas por uma máquina especialmente desenvolvida para este fim, O COMPUTADOR. Em Ciência da Computação houve um processo de desenvolvimento simultâneo e interativo de máquinas (hardware) e dos elementos que gerenciam a execução automática (software) de uma dada tarefa. E essa descrição da execução de uma tarefa, como considerada acima, é chamada algoritmo. O objetivo dessa matéria é a Lógica de Programação dando uma base teórica e prática, suficientemente boa, para que, o aluno domine os algoritmos e esteja habilitado a aprender uma linguagem de programação. Será mostrado também um grupo de algoritmos clássicos para tarefas cotidianas, tais como: ordenação e pesquisa.
Algoritmos e Lógica de Programação
a) Análise Preliminar
Entenda o problema, identifique os dados envolvidos e os resultados esperados.
b) Solução
Desenvolver algoritmo para resolver o problema
c) Teste de qualidade (Teste de mesa)
Ideal testar o algoritmo com o máximo de combinações possíveis
d) Alteração
Caso o resultado do algoritmo não seja satisfatório, altere-o e submeta a um novo teste.
e) Produto Final
Algoritmo concluído e testado.
Dividir o problema em problemas menores.
Exemplo.
2.Troque o pneu furado (Meio)
3.Guarde o material (Fim)
Abra o porta-malas
Retire o macaco, o estepe e a chave em cruz e o sinalizador
Coloque o sinalizador atrás do carro
Afrouxe as porcas do pneu furado
Coloque o macaco na posição correta
Levante o carro
Retire as porcas
Retire o pneu
Coloque o estepe
Operações Detalhadas
Algoritmos e Lógica de Programação
Coloque as porcas
Desça o carro
Retire o macaco
Aperte as porcas do pneu trocado
Guarde o macaco, o pneu furado , o sinalizador e a chave em cruz.
Feche o porta-malas
Obs. Algumas instruções poderiam ser dividas mais uma vez.
São técnicas que permitem sistematizar e ajudar no desenvolvimento de algoritmos para
a resolução de grandes e complexos problemas computacionais.
Objetivos destas técnicas
equipe de pessoas
a) Descrição Narrativa
Ex. Cálculo da média de um aluno:
Algoritmos e Lógica de Programação
Observe como ficaria este fluxograma:
c) Pseudocódigo, também conhecido como Linguagem Estruturada ou Portugol. A representação de um algoritmo na forma de pseudocódigo é a seguinte:
Algoritmo Nome_Do_Algoritmo Variáveis Declaração das variáveis Procedimentos Declaração dos procedimentos Funções Declaração das funções Início Corpo do Algoritmo Fim
Inicio
VlrDia <- 360,00 / 30
“O valor diário é:”, VlrDia
Fim
Algoritmos e Lógica de Programação
Exemplo.
Algoritmo “ Média”
Variáveis
N1, N2, Média: real
Início
Escreva (“informe o primeiro valor”) Leia (N1) Escreva (“informe o segundo valor”) Leia (N2) Média <- (N1+N2)/ Se Média >= 7 Então Escreva ( “Aprovado!!”) Senão Escreva ( “Reprovado!!)” Fim se
Fim.
A identação (deslocamento para a direita) de uma instrução significa que tais instruções
estão subordinadas a instrução anterior e facilita em muito a compreensão e manutenção
do algoritmo e dos códigos fontes em uma linguagem de programação.
Algoritmos e Lógica de Programação
10.Fim
Se as quatro notas são 10,5,8,1 a execução das instruções ficara da seguinte forma
Note que a instrução 6 foi executada. Como a resposta foi negativa (a média foi inferior a
sete), o aluno foi reprovado não sendo executada a instrução sete.
c) Processamento com repetição
Conjunto de instruções (pode ser apenas uma) que é executado um determinado número
de vezes.
Sendo determinada uma condição de parada.
Algoritmos e Lógica de Programação
Ex. Obter a média aritmética das quatro notas de todos os alunos da sala.
Se existem dois alunos na sala e suas notas são: 10, 5, 8, 1 e 4, 6, 7, 3 a execução das
instruções ficará da seguinte forma
Observe que um laço de repetição necessita sempre de uma condição de parada
que seja válida, caso contrário o programa entrará em um “laço” infinito.
Algoritmos e Lógica de Programação
Não pode possuir espaços em branco; Não pode ser uma palavra reservada a uma instrução de programa; Não poderão ser utilizados outros caracteres que não sejam letras e números. Os nomes escolhidos devem explicitar seu conteúdo.
Qualquer caminho seguido no diagrama abaixo levara a um nome de variável valido:
Onde: Letra: Qualquer letra do alfabeto [a..z, A..Z] Digito: Dígitos de [0..9]
São identificadores válidos: NOMEUSUARIO, FONE1, X, DELTA25, Z4, Idade, X1, mODELoDeVeiculo,
São identificadores inválidos: *nome, 2Fone, NOME/USUARIO, mODELO-DE-VEICULO, Nota do Aluno
Para que os programas manipulem valores, estes devem ser armazenados em variáveis e para isso, devemos declará-las de acordo com a sintaxe:
NomeVariável : Tipo
Ex.: VARIÁVEIS SalMes, Inss: REAL Nome: CARACTER[30] // Cadeia de caracteres Sexo: CARACTER // Caractere
Nesta definição, deveremos seguir as regras seguintes:
Algoritmos e Lógica de Programação
Tudo aquilo que é fixo ou estável
1 - Identifique os atributos e declare variáveis para um objeto automóvel 2 - Identifique os Atributos e declare variáveis para um objeto Pessoa 3 - Identifique os atributos e declare variáveis para um objeto Eleitor
4 - Assinale com C os nomes corretos de variável e com I os incorretos. Explique o que está errado nos nomes incorretos.
(a) ( ) certo (b) ( ) *oi (c) ( ) oi! (d) ( ) 'Lucio' (e) ( ) soda# (f) ( ) i (g) ( ) Nota do Aluno (h) ( ) o (i) ( ) arquivox11 (j) ( ) 1ate
5 - Classifique os dados especificados abaixo de acordo com seu tipo, assinalando com I os dados do tipo inteiro, com R os reais, com C os caracteres (literais), com B os lógicos (booleanos), e com N aqueles para os quais não é possível definir o tipo de dado.
(a) ( ) -988786,987 (b) ( ) "34,50" (c) ( ) "Casa do Titio" (d) ( ) .F. (e) ( ) site (f) ( ) - (g) ( ) ".V". (h) ( ) 0, (i) ( ) .'V'. (j) ( ) ".F." (l) ( ) 12,89 (m) ( ) 215333
Algoritmos e Lógica de Programação
Assim como classificamos os operadores, podemos também classificar as expressões quanto ao seu tipo, conforme mostra a lista a seguir:
Cada uma das expressões vistas acima possui seus operadores em específico. A seguir, vamos mostrar uma tabela contendo esses operadores:
b) Operadores
Na solução da grande maioria dos problemas é necessário que as variáveis tenham seus valores consultados ou alterados e para isto devemos definir um conjunto de OPERADORES , sendo eles:
NomeDaVariavel ← Valor ou Expressão Atribuída.
Em nossa disciplina usaremos o símbolo ← para atribuição.
- Subtração ou inversor do sinal. ^ Exponenciação ab^ (^ ou **) / Divisão - FUNÇÕES PRIMITIVAS: SEN(x); COS(x); TG(x); ABS(x); INT(x); Raizq(x). - OPERADORES RELACIONAIS: São utilizados para relacionar variáveis ou expressões, resultando num valor lógico (Verdadeiro ou Falso), sendo eles:
= - igual (==) <> - diferente (!=) < - menor > - maior <= - menor ou igual >= - maior ou igual
Algoritmos e Lógica de Programação
São utilizados para avaliar expressões lógicas, sendo eles:
.E. - e lógico ou conjunção. .Ou. - ou lógico ou disjunção. Não - negação.
VERDADEIRO/TRUE/.T./.V./1 VERDADEIRO/TRUE/.T./. V./
VERDADEIRO/TRUE/.T./.V. /
VERDADEIRO/TRUE/.T./.V./ 1 VERDADEIRO/TRUE/.T./.V./1 FALSO/FALSE/.F./0 FALSO/FALSE/.F./0 VERDADEIRO/TRUE/.T./.V./ 1 FALSO/FALSE/.F./0 VERDADEIRO/TRUE/.T./. V./
FALSO/FALSE/.F./0 VERDADEIRO/TRUE/.T./.V./ 1 FALSO/FALSE/.F./0 FALSO/FALSE/.F./0 FALSO/FALSE/.F./0 FALSO/FALSE/.F./ Tabela verdade dos operadores .E. e .OU.
APROVADO?? (Media >= 60) .E. (Frequencia > 0.75)
REPROVADO?? (Media < 60) .OU. (Frequencia < 0.75)
TABELA VERDADE DO OPERADOR .E. A B A .E. B 1 1 1 1 0 0 0 1 0 0 0 0
1 1 1 1 0 1 0 1 1 0 0 0
TABELA VERDADE DO OPERADOR .Não. A Não(A) 1 0 0 1
Algoritmos e Lógica de Programação
passagem de dados do mundo externo para a memória do computador, como por exemplo, o teclado, unidade de CD-ROM, etc... Já os periféricos de saída recebem os dados do computador para outro equipamento externo, como por exemplo, o monitor de vídeo, impressora, etc...
Toda instrução, primitiva ou não possui uma sintaxe, ou seja, uma regra que deverá ser seguida para a construção de seu código e caso esta não seja obedecida, o seu programa pode simplesmente não funcionar.
Devemos saber também que o conjunto de ações que serão realizadas pelo computador após a execução de um determinado comando é conhecida como semântica.
Quais os valores das expressões a seguir: 2 + 3 * 6 12 / 3 * 2 – 5 31 / 4 31 div 4 31 Resto 4 9 ** (3-1) 3 ** 3
Considere o seguinte trecho do algoritmo: Algoritmo “Exercicio2” Variaveis Pig,Vari, Total, A, I : Inteiro ValorA, X : Real Inicio Vari ← 2 Total ← 10 ValorA ← 7. A ← - I ← 80 X ← 4. X ← Total / Vari X ← X + 1 A ← A + I Pig ← 10 A ← I div Pig A ← A + I Resto 6 ValorA ← Pig * ValorA + X Fim
Pig Vari Total A I ValorA X
Mostre quais os valores armazenados em cada uma das variáveis após a execução de cada um dos comandos do algoritmo acima.
Algoritmos e Lógica de Programação
Nome Apelido Qquer Aux Resp K Karol “ANA” “flor” “ana” 10 .F. 3 2
a) Nome == Apelido b) (Nome == Qquer) .E. (Nome <> “ANa”) c) Nome == “Nome” d) (K >= Karol + 1) .OU. (Qquer == “ana”) e) Não Resp f) (Não Resp) .E. (K < Aux) g) (Aux <= Aux / K + K) .E. ((Resp) .OU. (Apelido == “flor”)) h) K > Karol + (K – Karol) i) ((Não Resp .E. Resp) .OU. (Não Resp)) .E. (Resp .OU. (Não Resp))
Algoritmo “exercicio4” Variaveis Q, W, R : inteiro Ex : Real Inicio Q ← 10 Q ← 10 + 30 W ← - W ← W + Q Q ← Q Resto W Q ← W div (Q + 4) Ex ← 2 * Q / W R ← 0 R ← R + 1 R ← R + 1 Fim
a) (2 * (5 resto 3) + Y + W * 2) > Z .OU. (Y < Z -1) .E. não((Z * (Y – 1) + Y) < 100) ( ) b) (X .OU. .V.) .OU. (Z * 2 div Y < W * Y) ( ) c) .F. .E. X = não(.V.) .OU. Y < Z ( ) d) Y + 4 * (Z RESTO 3 + 1) ( ) e) (3 + W – (Y + 1) / 2) + 1,5 ( )