Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Apostila - Algoritmos e Logica de Programação, Notas de estudo de Engenharia Civil

Apostla Algoritmos

Tipologia: Notas de estudo

2013

Compartilhado em 16/07/2013

leonardo-nardiko-5
leonardo-nardiko-5 🇧🇷

4.1

(8)

22 documentos

1 / 66

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Faculdade FORTIUM
Curso de Sistemas de Informação
Algoritmos e Lógica de
Programação
Prof. Giselle Barbosa Gomes Machado
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42

Pré-visualização parcial do texto

Baixe Apostila - Algoritmos e Logica de Programação e outras Notas de estudo em PDF para Engenharia Civil, somente na Docsity!

Faculdade FORTIUM

Curso de Sistemas de Informação

Algoritmos e Lógica de

Programação

Prof. Giselle Barbosa Gomes Machado

Algoritmos e Lógica de Programação


1- INTRODUÇÃ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.

2- DEFINIÇÕES DE ALGORITMO

  • "O conceito central da programação e da Ciência da Computação é o conceito de algoritmos, isto é, programar é basicamente construir algoritmos."
  • É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa.
  • "O algoritmo pode ser usado como uma ferramenta genérica para representar a solução de tarefas independente do desejo de automatizá-las, mas em geral está associado ao processamento eletrônico de dados, onde representa o rascunho para programas (Software)."
  • "Serve como modelo para programas, pois sua linguagem é intermediária à linguagem humana e às linguagens de programação, sendo então, uma boa ferramenta na validação da lógica de tarefas a serem automatizadas."
  • "Um algoritmo é uma receita para um processo computacional e consiste de uma série de operações primitivas, interconectadas devidamente, sobre um conjunto de objetos. Os objetos manipulados por essas receitas são as variáveis."
  • Como qualquer modelo, um algoritmo é uma abstração da realidade. A abstração é o processo de identificar as propriedades relevantes do fenômeno que esta sendo modelado. Usando o modelo abstrato, podemos nos centrar unicamente nas propriedades relevantes para nós, dependendo da finalidade da abstração, e ignorar as irrelevantes.
  • É a forma pela qual descrevemos soluções de problemas do nosso mundo , de forma que possam ser implementadas utilizando os recursos do mundo computacional. Como o mundo computacional possuí severas limitações em relação ao nosso mundo, é necessário que sejam impostas algumas regras básicas na forma de solucionar os problemas, para que possamos utilizar os recursos de hardware e software disponíveis. Algoritmos apesar de servirem para representar a solução de qualquer problema, no caso do Processamento de Dados, eles devem seguir as regras básicas de programação para que sejam compatíveis com as linguagens de programação.

Algoritmos e Lógica de Programação


2.3- Como Construir um algoritmo

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.

2.4- Decomposição (Top-Down)

Dividir o problema em problemas menores.

Exemplo.

  1. Troque o pneu furado.
  2. Pegue o material necessário (Inicio)

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

Detalhamento

Pequeno

Um pouco mais

de Detalhes

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.

2.5- Desenvolvimento Estruturado

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

  • Facilitar o desenvolvimento do algoritmo
  • Facilitar o seu entendimento pelos humanos
  • Antecipar a comprovação de sua correção
  • Facilitar a sua manutenção e modificação
  • Permitir que o seu desenvolvimento possa ser empreendido simultaneamente por uma

equipe de pessoas

2.6- Formas de representação

a) Descrição Narrativa

Ex. Cálculo da média de um aluno:

  • Obter as notas da primeira e da segunda prova
  • Calcular a média aritmética entre as duas
  • Se a média for maior ou igual a 7, o aluno foi aprovado, senão ele foi reprovado

Algoritmos e Lógica de Programação


Observe como ficaria este fluxograma:

  • A princípio marcamos o início do fluxograma;
  • Em seguida, armazenamos em uma posição de memória (variável), o resultado do cálculo 360,00 dividido por 30;
  • Em seguida, apresentamos a frase “O valor diário é” seguido do valor constante na posição de memória (variável) VlrDia O valor diário é: 32,
  • Em seguida, finalizamos o fluxo.

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


  1. Inicio
    1. Some as duas primeiras notas
    2. Some a terceira nota com o resultado da instrução 2
    3. Some a Quarta nota com o resultado da instrução 3
    4. Divida resultado da instrução 4 por 4
    5. Se o resultado da instrução 5 for maior ou igual a 7
      1. Aprove o aluno
    6. Se o resultado da instrução 5 for menor que 7
      1. Reprove o aluno

10.Fim

Se as quatro notas são 10,5,8,1 a execução das instruções ficara da seguinte forma

  1. Inicio
    1. 10+5 = 15
    2. 15+8 =
    3. 23+1 =
    4. 24 / 4=
    5. Resposta negativa
    6. Resposta afirmativa  resultado < 7 então  aluno reprovado
  2. Fim

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.

  1. Inicio
  2. Para cada aluno da sala
    1. Some as duas primeiras notas
    2. Some a terceira nota com o resultado da instrução 3
    3. Some a Quarta nota com o resultado da instrução 4
    4. Divida o resultado da instrução 5 por 4
  3. Fim

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

2.10- Declaração de variáveis

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


  • VARIÁVEIS é a palavra chave, que deverá ser utilizada uma única vez na definição das variáveis e antes do uso das mesmas;
  • Variáveis de tipos diferentes deverão ser declaradas em linhas diferentes;
  • Em uma mesma linha, quando quisermos definir variáveis de mesmo tipo, deveremos usar o símbolo de vírgula (,) para separar as mesmas.

2.11- Constantes

Tudo aquilo que é fixo ou estável

Ex. o valor do - 3.

EXERCÍCIOS:

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:

  • Expressão aritmética: quando o resultado de sua avaliação for um número, podendo este ser positivo ou negativo assim como inteiro ou real;
  • Expressão lógica : quando o resultado de sua avaliação for um valor lógico, ou seja, verdadeiro (.T.) ou falso (.F.);
  • Expressão literal: quando o resultado de sua avaliação for um valor literal.

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:

  • OPERADOR DE ATRIBUIÇÃO:

NomeDaVariavel ← Valor ou Expressão Atribuída.

ATENÇÃO!!

Em nossa disciplina usaremos o símbolo ← para atribuição.

  • OPERADORES ARITMÉTICOS:
  • Adição a Div b Divisão Inteira ***** Multiplicação a Resto b Resto da divisão de inteiros

- 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


• OPERADORES LÓGICOS:

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.

A B A .E. B A .OU. B

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

TABELA VERDADE DO OPERADOR .OU.
A B A .OU. B

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.

EXERCÍCIOS:
  1. 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

  2. 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


  1. Considerando o conteúdo das variáveis conforme a seguir, diga qual o valor de cada uma das expressões:

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))

  1. Faça o teste de mesa do algoritmo a seguir:

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

  1. Considerando as variáveis abaixo, indique o resultado de cada uma das expressões a seguir: X Y Z W Q .V. 2 4 1,50 “PROVA”

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 ( )