0% acharam este documento útil (0 voto)
104 visualizações157 páginas

Faculdade Laboro: Algoritmos e Lógica de Programação

Este documento fornece um resumo do curso de Algoritmos e Lógica de Programação oferecido pela Faculdade Laboro. O curso aborda tópicos como algoritmos, estruturas de dados, programação, paradigmas de linguagens e metodologias de desenvolvimento de programas. O objetivo é capacitar os alunos a modelar soluções computacionais para problemas através da aplicação de conceitos de lógica de programação e construção de algoritmos.

Enviado por

Lucio Vitor
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
104 visualizações157 páginas

Faculdade Laboro: Algoritmos e Lógica de Programação

Este documento fornece um resumo do curso de Algoritmos e Lógica de Programação oferecido pela Faculdade Laboro. O curso aborda tópicos como algoritmos, estruturas de dados, programação, paradigmas de linguagens e metodologias de desenvolvimento de programas. O objetivo é capacitar os alunos a modelar soluções computacionais para problemas através da aplicação de conceitos de lógica de programação e construção de algoritmos.

Enviado por

Lucio Vitor
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 157

Faculdade Laboro

Algoritmos e Lógica de Programação

Prof. MSc. Milson Lima


[email protected]
(98)98123-8181
São Luís-MA, Mar/2023 1
Conteúdo (80h)
n Algoritmos e estruturas de dados.
n Desenvolvimento e complexidade de algoritmos.
n Estruturas de dados lineares e não lineares.
n Pesquisa e ordenação.
n Grafos.
n Implementação de algoritmos utilizando linguagens de
programação.
n Aplicação e uso das estruturas fundamentais de algoritmos.
n Programação.
n Paradigmas de linguagens.
n Metodologias de desenvolvimento de programas.
n Recursividade. 4
Objetivo

n Tornar o aluno capaz de visualizar soluções


computacionais para problemas através da aplicação dos
conceitos da lógica de programação e dotá-lo da
capacidade de construção de algoritmos, em pseudo-
linguagens, que modelem as soluções vislumbradas.

5
Objetivo
n Introduzir os conceitos de Lógica de Programação;
n Familiarizar-se com a nomenclatura e notações de
Linguagens de Programação;
n Desenvolver técnicas de concepção de Sistemas;
n Entender os conceitos aplicados a Resolução de
Problemas;
n Identificar o problema;
n Fazer suposições e interpretações;
n Criar algoritmos para representar as interpretações feitas;
n Fazer o processo de manutenção do algoritmo. 6
Três pilares da Computação
n FÍSICO
n Hardware (CPU + Periféricos)
n LÓGICO
n Firmware (Instruções de Fábrica)
n Software (Programas)
n Algoritmo
n HUMANO
n Peopleware (Profissionais)

7
Conceitos
n ALGORITMO
n É uma sequência de instruções finita e ordenada

de forma lógica para a resolução de uma


determinada tarefa ou problema.

n Podemos dizer também, que são regras formais


para a obtenção de um resultado ou da solução de
um problema, englobando fórmulas de
expressões aritméticas.
8
O computador como “solução”
n O computador como ferramenta;

n Nas atividades tão comuns ao nosso cotidiano, você algum


dia deve ter parado para pensar como os programas
funcionam;

n Para resolver um problema através de um computador é


necessário encontrar uma maneira de descrevê-lo de
uma forma clara e precisa.

9
Conceitos
n Um algoritmo não é a solução do problema, pois, se
assim fosse, cada problema teria um único algoritmo;

n Um algoritmo é um caminho para a solução de um


problema;

n Em geral, existem muitos (senão infinitos) caminhos


que levam a uma solução satisfatória.

10
Conceitos
n Um algoritmo não representa, necessariamente, um
programada de computador e sim os passos necessários
para a realizar uma tarefa. Sua implementação pode ser
feita por um computador, por um robô ou mesmo por um
ser humano.

n Diferentes algoritmos podem realizar a mesma tarefa


usando um conjunto diferenciado de instruções em mais ou
menos tempo, espaço ou esforço que outros.

n Pré-requisito para todas as linguagens de programação.


11
Conceitos
n O computador, a princípio, não executa nada. Para que
ele faça uma determinada tarefa é necessário que ele
execute um programa.

n Um programa é um conjunto de instruções que indicam


ao computador, passo a passo, o que ele tem que fazer.

n Logo, um programa nada mais é do que um algoritmo


computacional descrito em uma linguagem de
programação.
12
Conceitos
n Exemplos de algoritmos:
n Instruções de montagem (manuais);
n Receitas culinárias;
n Manuais de uso, etc.
n Um algoritmo não computacional é um algoritmo
cuja sequência de passos, a princípio, não pode ser
executada por um computador.
n Usar o telefone público;
n Fritar um ovo;
n Trocar uma lâmpada.
13
Aplicação
n PRESENTE EM TODAS AS ÁREAS DA COMPUTAÇÃO
n Hardware;
n Sistemas Operacionais;
n Análise de Sistemas;
n Banco de Dados;
n Desenvolvimento Web;
n Redes de Computadores;
n Etc.

14
Fases Para Desenvolver um Algoritmo
n Determinar o problema.
n Dividir a solução nas três fases:

ENTRADA PROCESSAMENTO SAÍDA

n Exemplo:
n Problema: calcular a média de dois números
n Dados de entrada:
n os números, N1, N2

n Processamento:
n somar os dois números (N1, N2) e dividir a soma por 2

n Dados de saída:
n a média

15
Algoritmicamente

n 1- Receber o primeiro número;

n 2- Receber o segundo número;

n 3- Somar todos os números ;

n 4 - Dividir a soma por 2;

n 5 - Mostrar o resultado da divisão.

16
Formas de representação

n Descrição narrativa;

n Fluxograma;

n Diagrama de Chapin;

n Português estruturado (Pseudocódigo);

n Linguagem de programação.
17
Fatores relevantes na construção de
um algoritmo
n COMPLEXIDADE
n Pode ser vista como um sinônimo de variedade (quantidade de

situações diferentes que um problema pode apresentar), as quais


devem ser previstas na sua solução.

n LEGIBILIDADE
n Mede a capacidade de compreensão de um algoritmo por qualquer

observador (que não o construiu); a clareza com que sua lógica está
exposta.

n PORTABILIDADE
n Os algoritmos poderão ser convertidos facilmente para qualquer

linguagem de programação usual. 18


Fatores relevantes na construção de
um algoritmo
n TÉCNICAS DE CONSTRUÇÃO POR MÉTODO CARTESIANO
(DIVIDIR PARA CONQUISTAR)
n Método que ataca um problema grande, de difícil solução,

dividindo-o em problemas menores, de solução mais fácil.


1. Dividir o problema em partes
2. Analisar a divisão e garantir a coerência entre as partes.
3. Reaplicar o método, se necessário

n PLANEJAMENTO REVERSO
n A partir da saída desejada, devemos poder determinar,
reversamente, quais são os componentes da entrada de dados
necessários.
19
Controle Dinâmico da Execução de
um Algoritmo
n Os três conceitos de estruturação de algoritmo descrevem o
controle do fluxo dinâmico do algoritmo quando ele é
executado, e todos os três devem ser expressos de alguma
maneira na descrição estática do algoritmo. (HOOLOWAY,
2006)

§ Sequência
§ Iteração
§ Seleção
20
Características
n SEQUÊNCIA LÓGICA
n As instruções devem ser definidas em uma ordem correta.

n NÃO AMBÍGUA
n A sequência lógica e as instruções não devem dar margem à

dupla interpretação.
n SOLUÇÃO DE UMPROBLEMA
n A sequência lógica deve resolver exatamente o problema

identificado.
n TEMPO FINITO
n A sequência lógica não deve possuir iterações infinitas.

21
Estrutura básica de um algoritmo
n SEQUENCIA – INÍCIO/FIM
n Define uma estrutura onde as instruções serão executadas na

ordem que aparecem.

n SELEÇÃO – SE-ENTÃO/SENÃO
n Define uma estrutura condicional que, dada a sua avaliação

(V ou F), determina qual "caminho" do algoritmo será


executado.

n REPETIÇÃO – REPITA,ENQUANTO OU PARA


n Define uma estrutura de iteração condicional (V ou F) ou

contada (predefinida) de instruções que irão se repetir. 22


Tipos de Dados

n Os tipos de dados podem variar de uma linguagem para outra. No entanto, existem
dois tipos básicos:
n Tipos Simples;
n Tipos estruturados (vetor, registro)

23
Numérico
n NUMÉRICO: São valores que representam números. Os dados
numéricos são divididos em basicamente dois grandes conjuntos:
Inteiros e Reais

n INTEIROS: Os inteiros podem ser positivos, negativos ou


nulos, mas não possuem componente decimal.
n Ex: 1, 2, -3, 0, 1234

n REAL: Os reais podem ser positivos, negativos ou nulos, e


possuem sempre um componente decimal.
n Ex: 1, 1.45, -0.55, 344

24
Numérico
n Os números inteiros consomem menos espaço de
armazenamento em memória;
n Os inteiros são compatíveis com os reais, mas o inverso não é
verdadeiro.

25
Caractere
n CARACTERE - São tipos de dados não numéricos,
também chamados de strings ou literal. São representados
por letras (A-Z, a-z), dígitos (0-9), espaços em branco e
símbolos especiais (-=+?#$%ˆ&*<>) e devem sempre estar
entre aspas (“”)
n Ex: “a”, “Maria”, “123”, “Rua123”

n Logo,
n 8 é um dados numérico e “8” é um caracter
n “A” é um caracter e A é um nome de uma célula de
memória 26
Lógico
n LÓGICO: Também chamado de valores verdade ou
booleanos. São os valores que representam o conceito de
lógico (verdadeiro ou falso). Os dados lógicos só podem
assumir valores verdadeiros ou falsos e armazenar somente
um desses dois valores e é muito utilizado em controle de
fluxo de algoritmos.

n Representações:
n 0 ou 1, V ou F, true ou false, sim ou não

27
Tipos de dados básicos

28
Operadores e Operações

29
Operadores e Operações

30
Precedência de operadores

31
Reescrevendo a expressão

32
Operadores relacionais

33
Operadores relacionais

VERDADEIRO
VERDADEIRO
FALSO
VERDADEIRO
VERDADEIRO
FALSO
VERDADEIRO
FALSO
VERDADEIRO
VERDADEIRO
VERDADEIRO
FALSO 34
Operadores Lógicos
n OPERADORES BINÁRIOS
n E/AND - Une duas expressões lógicas e só retorna verdadeiro quando as
duas são verdadeiras.
n OU/OR – Une duas expressões lógicas e só retorna falso quando as duas
expressões são falsas.
n XOU/XOR – Une duas expressões lógicas e só retorna verdadeiro quando
uma expressão é verdadeira e a outra é falsa.

n OPERADOR UNÁRIO

n NÃO/NOT – muda o valor de uma expressão para seu inverso. Se é


verdadeira se torna falsa e vice-versa. 35
Operadores Lógicos (Tabela)

36
Expressão Lógica Composta

VERDADEIRO

FALSO

VERDADEIRO

FALSO

FALSO

VERDADEIRO
FALSO

FALSO

37
Para fixar...
n Dadas as variáveis numéricas X,Y e Z, contendo os valores 2, 5 e 9
respectivamente, a variável literal NOME, contendo a sequência
"MARIA" e a variável lógica TRUE, contendo o valor lógico F,
obter os resultados das expressões lógicas a seguir:

n a)( F ) X + Y > Z e NOME = "MARIA"

n b)( V ) TRUE ou Y > X

n c)( V ) (NOME = "JORGE" e SIM) ou X*2 < Z + 10


38
Variáveis (Declaração)
n 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.

n SINTAXE:
n VAR <nome_da_variável> : <Tipo_da_variável>
n VAR <lista_de_variáveis> : <Tipo_das_variáveis>

39
Variáveis
§ Algoritmos trabalham com dados(valores)
§ Esses valores precisam ser armazenados pelo computador para
serem processados;
§ Uma varíável representa uma posição na memória, onde pode ser
armazenado um dado;
§ Uma variável possui um nome e um valor de um determinado tipo
para que possa ser identificada.
§ Durante a execução do algoritmo, a variável pode ter seu valor
alterado (seu valor pode variar)
§ Mudanças no valor das variáveis:
§ Por entrada de dados (digitação)
§ Por atribuição de valor
40
Variáveis e Constantes
n VARIÁVEIS:

n Variável é a representação simbólica dos elementos de um certo conjunto.


Cada variável corresponde a uma posição de memória, cujo conteúdo pode se
alterado ao longo do tempo durante a execução de um programa.

n EX:
n valor_total = quantidade * valor_unit
n raio = 3.4
n area = PI * raio2
n nome = “Luiz Augusto”
n sexo = 'm'

41
Ciclo de funcionamento de um
programa

42
Variáveis (Armazenamento)

43
Variáveis e Constantes
n CONSTANTES:
n Constante é um determinado valor fixo que não se modifica ao longo do
tempo, durante a execução de um programa. Conforme o seu tipo, a constante
é classificada como sendo numérica, lógica e literal.
n CARACTERÍSTICAS:
n São imutáveis

n Não podem ser alteradas durante uma execução

n Geralmente são representadas em caixa alta.

n Ex:
n VALOR_MAXIMO_SAQUE_DIA = 400,00

n PI = 3,14

44
Variáveis
n Basicamente, uma variável possui três atributos: um nome, um tipo
de dado associado à mesma e a informação por ela guardada.
n Um nome de variável deve necessariamente começar com uma

letra;
n Um nome de variável não deve conter nenhum símbolo especial

exceto a sublinha “_”.

45
Variáveis (Características)
n Embora uma variável possa assumir diferentes valores, ela só
pode armazenar um único valor a cada instante.

n Toda variável é identificada por um nome ou identificador.


Assim, por exemplo, em um algoritmo para cálculo das raízes
de uma equação de 2º grau (ax2+bx+c = 0), os identificadores
A, B, C podem representar as posições de memória que
armazenam os coeficientes da equação.
46
Regras (Variáveis)

47
Regras (Variáveis)
n VARIÁVEIS

n Nunca comece com números

n Não é permitido o uso de espaços em branco, acentos ou caracteres especiais

n Não é permitido utilizar palavras reservadas

n Geralmente começam com um caractere alfabético

n Geralmente são escritas em minúsculo

n Só são permitidos caracteres alfanuméricos ou sublinhado (_)

n CONSTANTES
n Segue todas as regras para variáveis, exceto que são escritas em caixa alta

48
Instrução de decisão “SE”

O resultado da “<condição>” é obtida pela interpretação lógica a partir da utilização de


operadores relacionais ou ainda de uma combinação entre eles.
49
Para Fixar...

14
Instrução de decisão “SE”

51
Instrução de decisão “SE”

52
Instrução de decisão “SE”

53
Instruções de repetição
n As instruções de repetição servem para que uma determinada
sequência de instruções seja repetida um número finito de
vezes.

n O número de repetições é controlado por uma instrução lógica


que caso VERDADEIRA executa as instruções do laço e caso
FALSA abandona o laço, seguindo para a primeira instrução
após o “fimenquanto” .

54
Instruções de repetição

55
Instruções de repetição

56
Para Fixar...

14
Instruções de repetição

58
Instruções de repetição

59
Instruções de repetição - execução

60
Instruções de repetição
• PARA .... FAÇA

Similar a instrução “enquanto_faça” a “para_faça”


serve para que uma determinada sequência de instruções
seja repetida um número finito de vezes. O número de
repetições é controlado por uma instrução lógica que
caso VERDADEIRA executa as instruções do laço e
caso FALSA abandona o laço, seguindo para a primeira
instrução após o “fimpara”. A diferença entre as duas
instruções está no incremento automático que a instrução
“fimpara” apresenta.

61
Instruções de repetição

62
Instruções de repetição

63
Instruções de repetição

64
Dados estruturados
§ Recurso para armazenar dados de forma estruturada

Notas: 6,1 2,3 9,4 5,1 8,9 9,8 10 7,0 6,3 4,4

Posição: 0 1 2 3 4 5 6 7 8 9

§ Correspondem a posições da memória:


identificadas por um único nome
individualizadas por índices
cujo conteúdo é de um mesmo tipo 65
Para entender melhor...

Rua da Faculdade, No 11 - Coroadinho


Rua da Faculdade, No 10- Ilhinha
Complemento: Primeiro Andar
66
Estruturas compostas
§ Dados Compostos

§ Homogêneos
§ São conjuntos de dados formados pelo mesmo
tipo de dado primitivo (vetores e matrizes).

§ Heterogêneos
§ São conjuntos de dados formados por tipos de
dados primitivos diferentes (campos do registro)
em uma mesma estrutura.

67
Vetor/Arranjo
n Estrutura de dados com um número finito de
elementos de um mesmo tipo (Possui Tamanho e Tipo
Definidos)

n Cada elemento assume uma posição sequencial no


arranjo, que está associada a um índice
(Armazenamento Contíguo)

n Pode-se acessar de forma imediata qualquer posição


do arranjo através do seu índice (Acesso eficiente) 68
Vetor/Arranjo

§ São variáveis compostas por um


conjunto de dados referenciados por
um mesmo nome e que necessitam de
somente um índice para que seus
elementos sejam endereçados.
ALUNOS:

69
Vetor/Arranjo

NomeDoVetor[1..<tamanho>]: TipoDeDado

Exemplos:

Notas[1..10]: Real

Codigo[1..12]: Inteiro

Nomes[1..10]: String

10
Comentários

n Com a finalidade de simplificar o compreensão de um algoritmo é


utilizado um instrumento denominado comentário. Os comentários
podem ser colocados em qualquer ponto do algoritmo onde se façam
necessários.
n Exemplo

n Var MAT, {Nº de matrícula do aluno}


NOTA, {Total de pontos no semestre}

COD {Código do curso} numérico


71
Vetor/Arranjo
Nome do Vetor Índices (Posições)

0 1 2 3 4 5
Alunos João Maria Carlos José

Conteúdo •Perceba que cada posição do vetor corresponde a uma


(Elementos) variável do mesmo tipo (CHAR).

72

9
Vetor/Arranjo

73
Vetor/Arranjo

74
Vetor/Arranjo

75
Exemplo de utilização
de vetores (Ex.1)

11
Exemplo de utilização
de vetores (Ex.2)

12
Exemplo de utilização
de vetores (Ex.3)

13
Exemplo de utilização
de vetores (Ex.4)

13
Exemplo de utilização
de vetores (Ex.5)

19
Exemplo de utilização
de vetores (Ex.6)

19
O que é uma matriz?

§ Uma matriz, também conhecido como variável


homogênea multidimensional, é um conjunto de
variáveis do mesmo tipo, que possuem o mesmo
identificador e são alocadas sequencialmente na
memória.

§ É um vetor de vetores
§ O primeiro índice da matriz indica a linha e
segundo indica a coluna
Ex: Matriz[Linha, Coluna]
14
Para entender melhor...
0 1 2 3 4 5 6 7
ESTANTE [2,7]

0 ESTANTE [0,0] = Literatura

ESTANTE [0,1] = Política

ESTANTE [0,2] = Matemática


ESTANTE [0,3] = História
1
ESTANTE [0,4] = História

ESTANTE [0,5] = Literatura

ESTANTE [0,6] = Literatura


2
ESTANTE [0,7] = Literatura

83
Matriz

0 1 2 … n-1

0 788 598 265 … 156

1 145 258 369 … 196

2 989 565 345 … 526

⋮ ⋮ ⋮ ⋮ ⋱ ⋮

m-1 845 153 564 892 210

16
Estrutura

Índices das Colunas


Nome da Matriz

0 1 2 3 4 5
0 5 8 5
Mat [2,5] 1 25 10
2 12 3

Índices das Linhas

Indicamos este elemento como Mat[0, 0]

17
Declaração

A sintaxe da declaração de matrizes é a seguinte:


NomeDaMatriz[Dim1, Dim2]: TipoDeDado

Exemplos:
Vendas[4, 11]: Real
Uma matriz chamada Vendas com 10 linhas e 12 colunas,
para armazenar números reais.

18
“Populando” uma Matriz

19
Exemplo - 1

19
Exemplo - 2

19
Exemplo - 3

19
Exemplo - 4

19
Exemplo - 5

19
Exemplo - 6

19
Exemplo - 7

19
Exemplo - 8

19
Registro

São estruturas compostas heterogêneas que Permitem a


manipulação de um conjunto de informações de tipos
primitivos diferentes.

Para entender melhor:

18
Registro

Para entender melhor:

18
Registro

n Antes de usar um registro é preciso declará-lo, conforme a sintaxe


abaixo:

n Ex:
n conta: Registro (num: Inteiro, saldo, limite: Real, tipo, cliente:

String)

n Neste exemplo foi declarado um registro chamado conta, cujos


campos são num do tipo inteiro, saldo e limite do tipo real e
tipo e cliente do tipo string.
18
Registro (Sintaxe)

18
Registro

n Como um registro contém vários dados, para acessar um


campo individualmente é necessário indicar o nome da
variável e o nome do campo, separado por um ponto.

18
Registro (Atribuição valores)

18
Registro (Atribuição de valores)

18
Registro (Declaração)

18
Registro (Acesso)

18
Registro (Exemplo)

18
Registro (Exemplo)

18
Registro (Exemplo)

18
Registro (Exemplo)

18
Registro (Exemplo)

18
Alocação Estática ou Dinâmica

LISTAS ESTÁTICAS LISTAS DINÂMICAS


(arranjo) (ponteiros)
Acesso por encadeamento ou direto Acesso por encadeamento, utilizando
ponteiros

Alocação estática da memória: a Alocação dinâmica de memória: a


quantidade total de memória utilizada estrutura de dados pode crescer ou
pelos dados é previamente definida e de encolher conforme a necessidade do
modo imutável (estático), no próprio programa em execução. (Limite?)
código fonte.

Elementos armazenados em posições Cada elemento lista guarda os


consecutivas (linear) ou consecutivas endereços do elemento sucessor.
(encadeamento)

110
Listas
n É uma estrutura que armazena elementos de forma
alinhada, ou seja, com elementos dispostos um após
o outro como nomes, valores, pessoas, peças etc.

n Ex:
n Nomes = {“Maria”,”Pedro”,”Rui”}
n Valores = { 20, 50,-1,0,22}
n Produtos = {“biscoito”,”carne”,”ovo”,”margarina”})

111
Lista estática Linear
L = {Aço, Cobre, Ferro, Prata, Ouro}
índice Produto índice Produto índice Produto

0 Aço 0 Aço 0 Aço

1 Cobre 1 2 Ferro

2 Ferro 2 Ferro 3 Prata

3 Prata 3 Prata 4 Ouro

4 Ouro 4 Ouro

112
Lista estática Encadeada
L = {Aço, Cobre, Ferro, Prata, Ouro}
Índice Prod. Próx.

0 Aço 1
PRI = 0
1 Cobre 2
(Variável que armazena o
primeiro índice da lista 2 Ferro 3
ocupado)
3 Prata 4

4 Ouro -1

113
Lista estática Encadeada
L = {Aço, Cobre, Ferro, Prata, Ouro}

Índice Prod. Próx. Índice Prod. Próx. Próx.

0 Aço 1 0 Aço 1 2
PRI = 0
1 Cobre 2 1
(Variável que armazena o
primeiro índice da lista) 2 Ferro 3 2 Ferro 3 3

3 Prata 4 3 Prata 4 4

4 Ouro -1 4 Ouro -1 -1

114
Não há alteração de posição e sim de encadeamento.
Lista estática Encadeada (sucessivas
operações)
L = {Aço, Cobre, Ferro, Prata, Ouro}
Índice Prod. Próx. Índice Prod. Próx. Próx.
PRI = 0 ,0 0 Aço 1 0 Aço 1 2
1 Cobre 2 1 5
(Variável que
armazena o primeiro 2 Ferro 3 2 Ferro 3 3
índice da lista)
3 Prata 4 3 Prata 4 4
4 Ouro -1 4 Ouro -1 -1
5 6 5 6 6
PRI_DIS = 5 , 1 6 7 6 7 7
7 8 7 8 8
(Variável que
armazena o primeiro 8 9 8 9 9
índice da lista
disponível) 9 -1 9 -1 -1
115
Lista estática Encadeada (sucessivas
operações)
L = {Aço, Cobre, Ferro, Prata, Ouro}
Índice Prod. Próx. Índice Prod. Próx. Próx.
PRI = 0 , 0,0 0 Aço 1 0 Aço 1 2
1 Cobre 2 1 5
(Variável que
armazena o primeiro 2 Ferro 3 2 Ferro 3 4
índice da lista)
3 Prata 4 3 1
4 Ouro -1 4 Ouro -1 -1
5 6 5 6 6
PRI_DIS = 5 , 1,3 6 7 6 7 7
7 8 7 8 8
(Variável que
armazena o primeiro 8 9 8 9 9
índice da lista
disponível) 9 -1 9 -1 -1
116
Tipos de Listas
n LISTAS DESORDENADAS
n {44,12,-1,22}

n LISTAS ORDENADAS
n {“Abacate”,”Caju”,”Melancia”,”Uva”}

n LISTAS DISCIPLINADAS (Regras)


n PILHA
n FILA
117
Pilha
n Uma pilha é uma estrutura de dados que pode
ser acessada somente por uma de suas
extremidades para armazenar e recuperar
dados.
n Por essa razão, uma pilha é chamada de
estrutura LIFO (last in, first out).

118
Pilha

119
Pilha (Operações)

n Criar uma pilha vazia

n Inserir um elemento no topo da pilha


n Remover um elemento do topo de
pilha

n Consultar o topo da pilha

n Destruir a pilha

n Verificar se é cheia

n Verificar se é vazia 120


Pilha (Operações)
n CLEAR()
n Limpa a pilha;

n ISEMPTY()
n Verifica se a pilha está vazia;

n PUSH(ELEM)
n Coloca o elemento no topo da pilha;

n POP()
n Toma o elemento mais alto da pilha;

n TOPEL()
n Retorna o elemento mais alto da pilha sem removê-lo.

121
Pilha (Operações)
n Exemplo: Pilha(números inteiros)

n Operações:

n E_CHEIA

n entrada: o endereço da pilha

n processo: verifica se pilha esta na condição de cheia

n saida: 1 se cheia, 0 caso contrário


122
Pilha (Operações)

n E_VAZIA

n entrada: endereço da pilha

n processo: verifica se a pilha está na condição de vazia

n saida: 1 se vazia, 0 caso contrario

123
Pilha (Operações)

n CRIA_PILHA

n entrada: nenhuma

n processo: aloca a pilha e a coloca na condição de vazia

n saida: endereço da pilha

124
Pilha (Operações)
n PUSH
n entrada: endereço da lista e o elemento

n processo: insere elemento no topo da pilha e atualiza

pilha
n saida: 1 se sucesso , 0 se fracasso

125
Pilha (Operações)

n POP

n entrada: endereço da lista

n processo: remove elemento do topo da pilha e atualiza


pilha

n saida: endereço do elemento no topo da pilha ou NULL


se pilha é vazia

126
Pilha (Operações)

n TOP
n entrada: endereço da lista

n processo: consulta o topo da pilha

n saida: endereço do elemento no topo da pilha ou NULL se pilha é


vazia

127
Pilha (Operações)

n LIBERA_PILHA

n entrada: endereço da lista

n processo: libera toda area alocada para a pilha

n saida: nenhuma

128
Pilha (Estrutura)

n Índices de controle da pilha:


n BASE da pilha
n TOPO atual da pilha
Índice n LIMITE máximo que pode ser
ocupado pela pilha

129
Pilha (Manipulação)
1. Inicializar pilha de valores inteiros a partir do índice 0, máximo 10 nós
2. Inserir nodo com valor 3
3. Inserir nodo com valor 7
4. Inserir nodo com valor 5
5. Remover nodo do topo
6. Consultar pilha

130
Sobre as linguagens de programação

n A CPU ENTENDE LINGUAGEM DE MÁQUINA;

n LINGUAGEM DE PROGRAMAÇÃO:

n Linguagem bem definida (sintaxe + semântica) que pode ser traduzida em


linguagem de máquina.

n SINTAXE: Estrutura da linguagem. Trata de como se pode exprimir uma idéia


na linguagem.

n SEMÂNTICA: Trata do significado do que foi expresso na linguagem.

n COMPILAÇÃO:

n Processo de traduzir da linguagem de programação para a linguagem de máquina

n COMPILADOR: algoritmo que realiza a compilação. 131


Compilação x Interpretação

132
Compilação x Interpretação
n COMPILAÇÃO
n Na Compilação o programa escrito na
linguagem fonte é traduzido para linguagem
máquina e depois ligado e carregado para ser
executado

133
Compilação x Interpretação
n INTERPRETAÇÃO
n Na interpretação o programa fonte é traduzido e executado instrução
a instrução, de modo interativo.
n Vantagens
n O ciclo escrita, execução, modificação é mais rápido

n Desvantagens
n A execução é mais lenta

n Qualquer linguagem de alto-nível pode usar um interpretador ou um


compilador.

134
VISUALG
n O VISUALG (Visualizador de Algoritmo) é um
programa que edita, interpreta e executa
algoritmos com uma linguagem próxima do
português estruturado como se fosse um
programa normal de computador.

135
Conhecendo o VisualG

136
Meu primeiro programa (01)

137
Meus primeiros algoritmos
n Pedir para o usuário um número na tela e mostrar esse número
n ”O número digitado foi: “ XX
n Pedir 2 números mostrar a soma entre eles
n Pedir que o usuário digite 2 números e mostrar o maior deles
n Faça um algoritmo para calcular a área de um triangulo retângulo
n Faça um algoritmo que solicite na tela seu nome e ano de nascimento e
como resultado final exiba:
n “SEU NOME É: “ XXXXXX

n “SUA IDADE É: ” 99

n Pedir para o usuário digitar duas notas e imprimir na tela sua


media aritmética.
n Calcular o IMC

138
Média aritmética (02)

139
Divisão entre 2 números (03)
Algoritmo em Portugol
algoritmo "Divisao"
var
numero1, numero2: real
resultado: real
inicio
escreva ("Digite o dividendo ==> ")
leia (numero1)
escreva ("Digite o divisor ==> ")
leia (numero2)
resultado <-numero1/numero2
escreva ("O resultado eh ==>", resultado)
fimalgoritmo

140
Divisão entre 2 números
(Com validação de entrada) (04)

141
Categoria por idade (05)

142
Prática - 06
n Custo estimado de uma viagem de carro

143
Lista de exercícios
n 1. Faça um algoritmo que receba dois números e exiba o resultado
da sua soma.
n 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.
n 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.
n 4. Escrever um algoritmo que leia o nome de um vendedor e o
total de vendas efetuadas no mês (R$). Este vendedor tem um
salário fixo igual ao salário mínimo vigente. Sabendo-se que este
vendedor ganha 15% de comissão sobre suas vendas efetuadas e
que este valor é incorporado ao seu salário, informar o seu nome e
o total bruto que receberá no final do mês.
144
Lista de exercícios
n 5. Elaborar um algoritmo que mostre o valor convertido em reais (R$) de um
determinado montante em dólar (U$).

n 6. Faça um algoritmo que receba um valor e o tempo de aplicação (meses)


em que um determinado capital ficará na caderneta de poupança. Considere
fixo o juro da poupança em 0,70% a. m. (Juros simples) e determine o valor
do final que o poupador resgatará ao final do período.

n 7. A Loja Mamão com Açúcar está vendendo seus produtos em 5 (cinco)


prestações sem juros. Faça um algoritmo que receba um valor de uma
compra e mostre o valor das prestações.

n 8. Faça um algoritmo que receba o preço de custo de um produto e mostre o


valor de venda. Sabendo-se que a loja tem um lucro sobre seus produtos de
10%. 145
Lista de exercícios
n Uma empresa de vendas comissiona seus
vendedores segundo a regra: Se o valor da venda de
um corretor for maior que R$ 50.000.00 a comissão
será de 12% do valor vendido. Se o valor da venda
do corretor estiver entre R$ 30.000.00 e R$
50.000.00 (incluindo extremos) a comissão será de
9.5%. Em qualquer outro caso, a comissão será de
7%. Calcule quanto ele receberá de comissão nos
messes em que vendeu respectivamente 65.000,00,
34.000,00 e 18.000,00.
146
Lista de exercícios (Vetores)
n 1. Escreva um algoritmo em PORTUGOL que armazene
em um vetor todos os números inteiros de 0 a 50. Após
isso, o algoritmo deve imprimir todos os valores
armazenados.

n 2. Escreva um algoritmo em PORTUGOL que armazene


em um vetor todos os números inteiros de 100 a 1 (em
ordem decrescente). Após isso, o algoritmo deve imprimir
todos os valores armazenados na ordem oposta.

147
Lista de exercícios (Vetores)
n 3. Faça um algoritmo para gerar um vetor de 30 posições,
onde cada elemento corresponde ao quadrado de sua
posição. Imprima depois a soma dos quadrados.

n 4. Faça um algoritmo (utilizando vetores) para calcular a


média (4 notas) de um aluno. E no final exibir que o
aluno “Aluno”.
n Considerar
n = 10 - Parabéns
n >9 e <10 - Ótimo
n >= 8 e <= 9 - Bom
n >=7 e <8 - Regular
n Outros casos ”Insuficiente" 148
Lista de exercícios (Vetores)
n Ler dois vetores de números inteiros, cada um com
10 posições. Crie um terceiro vetor onde cada valor
é a soma dos valores contidos nas posições
respectivas dos vetores originais. Imprima depois os
três vetores.

149
Lista de exercícios (Matriz)
n 1 . Construa uma matriz 3×4 de
números inteiros e depois exiba todos os
seus elementos;

n 2 . Construa uma matriz 4×3 de


números inteiros e calcule a média
aritmética dos elementos da linha 1;
150
Lista de exercícios (Matriz)
n 3. Construa uma matriz 3×3 (lendo as
informações) de números reais e calcule
o somatório dos elementos da diagonal
principal;

151
Lista de exercícios (Matriz)
n 4. Construa uma matriz 5×6 de
números inteiros e calcule o somatório
dos elementos do canto superior direito
e inferior esquerdo;

152
Lista de exercícios (Vetores)
n 5. Um representante comercial trabalha com 10
mercadorias diferentes identificadas por números inteiros
de 1 a 10. Ele anota a quantidade de cada mercadoria
vendida durante o mês e utiliza uma tabela onde tem
registrado os preços de venda. Escreva um algoritmo em
PORTUGOL que mostre essas informações em uma só
tabela contendo todos os produtos (código e nome), seus
preços, quantidade vendida e valor total faturado com a
venda, bem como informar o valor que ele receberá de
comissão, sabendo que esta é de 5% sobre a venda total.

153
Lista de exercícios (Matriz)
n 5. Construa uma matriz 4×4 (lendo as
informações) de números reais e mostre
na tela os elementos que formam a
diagonal principal.

154
Lista de exercícios (Matriz)
n 6. Construa uma matriz 4×4
(lendo) e calcule a diferença do
somatória dos elementos da D.P –
D.S. informando se o número
resultante é par ou impar.

155
Lista de exercícios (Matriz)

n 7. Crie as duas matrizes acima e


mostre na tela uma tabela de preços
com o CODIGO, NOME, PREÇO
dos produtos.
156
Lista de exercícios (Matriz)
n 8. Entrar com valores inteiros para
um matriz A4x4 e para uma matriz
B4x4. Gerar e imprimir a SOMA
(A+B).

157
Lista de exercícios
n Faça um algoritmo que lê o nome de um produto, o
preço e a quantidade comprada. Escreva o nome do
produto comprado e o valor total a ser pago,
considerando que são oferecidos descontos pelo
número de unidades compradas, segundo a tabela
abaixo:

n a) Até 10 unidades: valor total


n b) De 11 a 20 unidades: 10% de desconto
n c) De 21 a 50 unidades:20% dedesconto
n d) Acima de 50 unidades: 25% de desconto
158
Lista de exercícios
n Escrever um algoritmo para uma empresa que decide dar um
reajuste a seus 584 funcionários de acordo com os seguintes
critérios:
n a) 50% p/ ganham menos do que três salários mínimos;

n b) 20% p/ ganham entre três até dez salários mínimos;

n c) 15% p/ ganham acima de dez até vinte salários mínimos;

n d) 10% para os demais funcionários.

n Leia o nome do funcionário, seu salário e o valor do salário


mínimo.
n Calcule o seu novo salário reajustado.
n Escrever o nome do funcionário, o reajuste e seu novo salário.
n Calcule quanto à empresa vai aumentar sua folha de pagamento
com o aumento desse funcionário 159

Você também pode gostar