Vous êtes sur la page 1sur 55
L ÓGICA DE P ROGRAMAÇÃO Prof. Rafael Souza
L ÓGICA DE P ROGRAMAÇÃO Prof. Rafael Souza

LÓGICA DE PROGRAMAÇÃO

Prof. Rafael Souza

CONTATOS:

C ONTATOS : E-mail: rafael.faetec@gmail.com Facebook: Rafael Souza Twitter: RafaelMatrix Skype: rafael.net2.0

E-mail: rafael.faetec@gmail.com

Facebook: Rafael Souza

Twitter: RafaelMatrix

Skype: rafael.net2.0

C ONTATOS : E-mail: rafael.faetec@gmail.com Facebook: Rafael Souza Twitter: RafaelMatrix Skype: rafael.net2.0

EXPERIÊNCIA ACADÊMICA

E XPERIÊNCIA A CADÊMICA  Formado em Tecnologia em Sistemas de Informação pela Unicarioca em

Formado

em

Tecnologia

em

Sistemas

de

Informação pela Unicarioca em 2011

 

Formado

em

Robótica/Mecatrônica

pelo

UFF/Cederj em 2013 Concluindo o curso de Engenharia de Softwares pela ESAB

em Robótica/Mecatrônica pelo UFF/Cederj em 2013  Concluindo o curso de Engenharia de Softwares pela ESAB

O QUE É LÓGICA?

O QUE É L ÓGICA ?  A Lógica é o estudo filosófico do raciocínio válido

A Lógica é o estudo filosófico do raciocínio válido .

Utilizada em atividades mais intelectuais, a lógica é usada

principalmente nas disciplinas de

filosofia, matemática, semântica e ciência da computação.

Ela examina de forma genérica as formas que

a argumentação pode tomar, quais dessas formas são

válidas e quais são falaciosas (Mentirosas). Em filosofia, o estudo da lógica aplica-se na maioria dos seus principais ramos: metafísica, ontologia, epistemologia e ética. Na

matemática, estuda-se as formas válidas de inferência de

uma linguagem formal. Por fim, a lógica também é estudada na teoria da argumentação.

válidas de inferência de uma linguagem formal. Por fim, a lógica também é estudada na teoria

CICLO DE VIDA DO SISTEMA:

C ICLO DE V IDA DO S ISTEMA :  1) Estudo da Viabilidade (Estudos Iniciais)

1) Estudo da Viabilidade (Estudos Iniciais)

2) Análise detalhada do sistema (Projeto Lógico)

3) Projeto preliminar do sistema (Projeto Físico)

4) Projeto detalhado do sistema (Algoritmos)

5) Implementação ou Codificação do sistema (na Linguagem de Programação escolhida)

6) Testes do sistema

7) Instalação e Manutenção do sistema

sistema (na Linguagem de Programação escolhida)  6) Testes do sistema  7) Instalação e Manutenção

ALGORITMO

A LGORITMO  Um algoritmo pode ser definido como um conjunto de regras (instruções), bem definidas,

Um algoritmo pode ser definido como um conjunto de regras (instruções), bem definidas, para solução de um determinado problema. Segundo o dicionário Michaelis, o conceito de

algoritmo é a "utilização de regras para definir ou

executar uma tarefa específica ou para resolver um problema específico."

"utilização de regras para definir ou executar uma tarefa específica ou para resolver um problema específico."

FORMAS DE REPRESENTAÇÃO DE ALGORITMOS

F ORMAS DE R EPRESENTAÇÃO DE A LGORITMOS  a) Através de uma língua (português, inglês,

a) Através de uma língua (português, inglês, etc.):

forma utilizada nos manuais de instruções, nas receitas culinárias, bulas de medicamentos, etc. b) Através de uma linguagem de programação (Pascal, C, Delphi, etc.): esta forma é utilizada

por alguns programadores experientes, que "pulam" a etapa do projeto do programa (algoritmo) e passam direto para a programação

em si.

c) Através de representações gráficas: são bastante recomendáveis, já que um "desenho" (diagrama, fluxograma, etc.) muitas vezes substitui, com vantagem, várias palavras.

já que um "desenho" (diagrama, fluxograma, etc.) muitas vezes substitui, com vantagem, várias palavras.

REGRAS PARA CONSTRUÇÃO DO ALGORITMO NA LINGUAGEM NATURAL

Para escrever um algoritmo precisamos descrever a sequência de instruções, de maneira simples e objetiva. Para isso utilizaremos algumas técnicas:

*Usar preferencialmente um verbo por frase *Imaginar que você está desenvolvendo um algoritmo para pessoas que não trabalham com informática

*Usar frases curtas e simples

*Ser objetivo *Procurar usar palavras que não tenham sentido dúbio

com informática *Usar frases curtas e simples *Ser objetivo *Procurar usar palavras que não tenham sentido
com informática *Usar frases curtas e simples *Ser objetivo *Procurar usar palavras que não tenham sentido

EXEMPLO 1: CALCULAR A MASSA CORPÓREA DE UMA PESSOA

Informe o peso da pessoa

Informe a altura da pessoa

A massa corpórea é o peso dividido pelo dobro da altura

Mostre a massa corpórea

Informe a altura da pessoa  A massa corpórea é o peso dividido pelo dobro da

EXEMPLO: CÁLCULO DA MÉDIA DE 4 NOTAS

Informe a nota da prova1

Informe a nota da prova2

Informe a nota da prova3

Informe a nota da prova4

A média final é a soma de todas as notas dividida por 4

Mostre a média final.

 Informe a nota da prova4  A média final é a soma de todas as

CONCEITOS IMPORTANTES

Constante

Variável

Atribuição

C ONCEITOS I MPORTANTES  Constante  Variável  Atribuição

CONSTANTES

C ONSTANTES  São chamadas de constantes, as informações (dados) que não variam com o tempo,

São chamadas de constantes, as informações (dados) que não variam com o tempo, ou seja, permanecem sempre com o

mesmo conteúdo, é um valor fixo

(invariável). Como exemplos de constantes

pode-se citar: números, letras, palavras

etc.

conteúdo, é um valor fixo (invariável). Como exemplos de constantes pode-se citar: números, letras, palavras etc.

VARIÁVEIS

V ARIÁVEIS  Uma variável, é um espaço da memória do computador que "reservamos" para guardar

Uma variável, é um espaço da memória do computador que "reservamos" para guardar informações (dados). Como o próprio nome sugere, as variáveis, podem conter valores

diferentes a cada instante de tempo, ou seja, seu

conteúdo pode variar de acordo com as instruções do algoritmo.

diferentes a cada instante de tempo, ou seja, seu conteúdo pode variar de acordo com as

REGRAS PARA A FORMAÇÃO DE NOMES DE

VARIÁVEIS

O nome de variável é formado por um ou mais

caracteres;

Os caracteres permitidos são letras de “A” a “Z”, números de 0a 9”, e o caracter especial underline(_);

O primeiro caracter deve, obrigatoriamente, ser uma letra e os caracteres seguintes, letras ou

dígitos;

O underline(_), quando permitido, somente pode aparecer entre caracteres ou dígitos, nunca no

início ou no final;

 O underline(_), quando permitido, somente pode aparecer entre caracteres ou dígitos, nunca no início ou
 O tamanho de um nome de variável varia de linguagem para linguagem de programação;

O tamanho de um nome de variável varia de linguagem para linguagem de programação; Não pode ser uma palavra chave ou palavra reservada. Não pode haver espaços em branco entre os caracteres.

 Não pode ser uma palavra chave ou palavra reservada.  Não pode haver espaços em

VÁLIDAS E INVÁLIDAS:

V ÁLIDAS E I NVÁLIDAS :  Variáveis válidas: NOME, FONE, IDADE_FILHO, IdadeFilho, NOTA1, Est_Civil 

Variáveis válidas: NOME, FONE, IDADE_FILHO, IdadeFilho, NOTA1, Est_Civil

Variáveis inválidas: 3Endereco, Estado Civil, PARA, algoritmo, numero/complemento, Média

NOTA1, Est_Civil  Variáveis inválidas: 3Endereco, Estado Civil, PARA, algoritmo, numero/complemento, Média

TIPOS DE DADOS DAS VARIÁVEIS

As variáveis podem armazenar basicamente de três tipos básicos de dados: Numéricas, Alfanuméricas(Literais ou caracter) ou lógicas.

Numéricas Específicas para armazenamento de números,

que posteriormente poderão ser utilizados para cálculos.

Podem ser ainda classificadas como Inteiros ou Reais.

Inteiro: admite somente números inteiros. Geralmente é

usado para representar contagem (quantidade). Ex: idade,

número de sapato, número de casa, apto, etc

Real : admite números com ou sem casas decimais, onde a vírgula é substituída por ponto. Geralmente é usado para representar medição, valores monetários, etc.

onde a vírgula é substituída por ponto . Geralmente é usado para representar medição, valores monetários,
 Alfanuméricas Específicas para dados que contenham letras , números ou caracteres de pontuação .

Alfanuméricas Específicas para dados que contenham letras, números ou caracteres de pontuação. Pode em determinados momentos

conter somente dados numéricos ou somente literais. Se usado somente para armazenamento de números, não poderá ser utilizada para

operações matemáticas

Ex: endereço, data, etc

Lógicas Armazenam somente dados lógicos que

podem ser Verdadeiro ou Falso.

matemáticas Ex: endereço, data, etc  Lógicas Armazenam somente dados lógicos que podem ser Verdadeiro ou

ATRIBUIÇÃO

A TRIBUIÇÃO  A atribuição é uma notação utilizada para atribuir um valor a uma variável,

A atribuição é uma notação utilizada para atribuir um valor a uma variável, ou seja, para armazenar um determinado conteúdo em uma variável. A operação de atribuição, normalmente,

é representada por uma seta apontando para a

esquerda, mas existem outros símbolos para representar a atribuição, depende da forma de

representação do algoritmo.

esquerda, mas existem outros símbolos para representar a atribuição, depende da forma de representação do algoritmo.

EXEMPLOS

E XEMPLOS

OPERADOR DE ATRIBUIÇÃO

Uma variável nunca é eternamente igual a um valor, seu

conteúdo pode ser alterado a qualquer momento. Portanto

para “colocar” valores em variáveis devemos usar o sinal de uma seta( ) apontando para esquerda.

Exemplo 1 (correto)

Peso 78.7 // Este comando atribui à variável Peso o valor 78.7.

Nome João

à

variável Nome o valor João da Silva.

da

Silva

//

Este

comando

atribui

Exemplo 2 (incorreto)

É importante lembrar que só se pode atribuir às variáveis, valores do mesmo tipo da variável. Assim, o seguinte comando seria inválido:

às variáveis, valores do mesmo tipo da variável. Assim, o seguinte comando seria inválido: Salario 
às variáveis, valores do mesmo tipo da variável. Assim, o seguinte comando seria inválido: Salario 

SalarioInsuficiente

A variável Salário é do tipo real não pode armazenar conteúdo literal Exemplo 3 (incorreto)

A variável Salário é do tipo real não pode armazenar

conteúdo literal

Exemplo 3 (incorreto) 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:

2060 NumeroConta NumeroAgencia+digitoControle 2345 + 0

Assim, são incorretos os seguintes comandos: 2060  NumeroConta NumeroAgencia+digitoControle  2345 + 0

OPERADORES ARITMÉTICOS

O PERADORES A RITMÉTICOS  Muitas vezes, ao desenvolvermos algoritmos, é comum utilizarmos expressões matemáticas

Muitas vezes, ao desenvolvermos algoritmos, é comum utilizarmos expressões matemáticas para a resolução

de cálculos. Neste etápa são apresentados

os operadores aritméticos necessários para determinadas expressões.

de cálculos. Neste etápa são apresentados os operadores aritméticos necessários para determinadas expressões.

EXEMPLOS

E XEMPLOS OPERAÇÃO SÍMBOLO SINTAXE Adição + C  A+B Subtração - C  A-B

OPERAÇÃO

SÍMBOLO

SINTAXE

Adição

+

CA+B

Subtração

-

CA-B

Multiplicação

*

CA*B

Divisão

/

CA/B

Exponenciação

^

CA^B

Raiz Quadrada

SQRT

CSQRT(A)

Parte inteira de nº

TRUNC

CTRUNC(A)

Arredondamento de nº

ROUND

CROUND(A)

 
 

HORIZONTALIZAÇÃO

H ORIZONTALIZAÇÃO  Para o desenvolvimento de algoritmos que possuam cálculos matemáticos, as expressões

Para o desenvolvimento de algoritmos que possuam cálculos matemáticos, as expressões aritméticas devem estar

horizontalizadas, ou seja, linearizadas e

também não esquecendo de utilizar os operadores corretamente.

devem estar horizontalizadas, ou seja, linearizadas e também não esquecendo de utilizar os operadores corretamente.

EXEMPLO

E XEMPLO

OPERADORES RELACIONAIS

O PERADORES R ELACIONAIS  Operações relacionais são as comparações permitidas entres valores, variáveis,

Operações relacionais são as comparações permitidas entres valores, variáveis, expressões e constantes.

 Operações relacionais são as comparações permitidas entres valores, variáveis, expressões e constantes.

OPERADORES DE COMPARAÇÃO

O PERADORES DE C OMPARAÇÃO
O PERADORES DE C OMPARAÇÃO

EXEMPLOS

E XEMPLOS
E XEMPLOS

OPERADORES LÓGICOS

O PERADORES L ÓGICOS  Os operadores lógicos permitem que mais de uma condição seja testada

Os operadores lógicos permitem que mais de uma condição seja testada em uma única expressão, ou seja, pode-se fazer

mais de uma comparação (teste) ao mesmo

tempo.

condição seja testada em uma única expressão, ou seja, pode-se fazer mais de uma comparação (teste)

OPERADORES LÓGICOS

O PERADORES L ÓGICOS

EXEMPLO

E XEMPLO
E XEMPLO
E XEMPLOS DE T ESTES UTILIZANDO O PERADORES L ÓGICOS :

EXEMPLOS DE TESTES UTILIZANDO OPERADORES LÓGICOS:

E XEMPLOS DE T ESTES UTILIZANDO O PERADORES L ÓGICOS :

ESTRUTURA DO ALGORITMO

E STRUTURA DO A LGORITMO  Todo algoritmo é escrito uma estrutura chamada TOP-DOWN. Ou seja,

Todo

algoritmo

é

escrito

uma

estrutura chamada TOP-DOWN. Ou seja, a leitura e a escrita e feita de cima para

baixo.

em

Todo algoritmo é escrito uma estrutura chamada TOP-DOWN. Ou seja, a leitura e a escrita e

COMANDOS EM ALGORITMO

Leia

Escreva

Se

Senão

Enquanto

Para

C OMANDOS EM A LGORITMO  Leia  Escreva  Se  Senão  Enquanto 
COMANDOS DE I/O (INPUT/OUTPUT):  São os comandos que representam a comunicação entre o usuário

COMANDOS DE I/O (INPUT/OUTPUT):

São os comandos que representam a comunicação entre o usuário e a máquina.

LEIA é o comando de entrada que permite a leitura de Variáveis de Entrada. Nem todos os dados que um algoritmo manipula são gerados por ele. Um algoritmo (programa) de caixa

automático, por exemplo, tem que obter do usuário o

número da conta, a senha, a opção de serviço desejada, etc. Assim, deve haver um meio para que sejam digitados (ou fornecidos de outra maneira) dados para o algoritmo. Mais

uma vez, todas as linguagens de programação permitem

isto, e no nosso Português Estruturado usamos o comando leia. A sintaxe deste comando é:

nosso Português Estruturado usamos o comando leia . A sintaxe deste comando é:  Leia (nome

Leia (nome da variável de entrada)

ESCREVA é o comando de saída que exibe uma informação a qual pode ser o resultado de uma variável ou mensagem na tela do monitor. Em geral, um programa que faz seu processamento e não tem como mostrar seus resultados é inútil (imagine,

por exemplo, uma calculadora que realiza uma infinidade

de operações matemáticas, mas não tem um display para mostrar os resultados!). Portanto, em algum ponto do algoritmo geralmente deve ocorrer à exibição de valores,

e todas as linguagens de programação têm comandos para este fim. Em Português Estruturado usamos o comando escreva. A sintaxe deste comando é:

Escreva (nome da variável de saida) Escreva(‘mensagem’, variável de saida)

ou

A sintaxe deste comando é:  Escreva (nome da variável de saida) Escreva(‘mensagem’, variável de saida)
CORPO GERAL DE UM PROGRAMA PROGRAMA nomedoprograma VAR Listar as variaveis entre vírgula  definir

CORPO GERAL DE UM PROGRAMA

PROGRAMA nomedoprograma

VAR

Listar as variaveis entre vírgula definir o tipo de dado ÍNICIO COMANDOS DE ENTRADA PROCESSAMENTO COMANDOS DE SAÍDA

FIM.

variaveis entre vírgula  definir o tipo de dado ÍNICIO COMANDOS DE ENTRADA PROCESSAMENTO COMANDOS DE

ALGORITMO CALCULA E ESCREVE A MÉDIA OBTIDA.

PROGRAMA MEDIA_FINAL

VAR

E ESCREVE A MÉDIA OBTIDA . PROGRAMA MEDIA_FINAL VAR NOTA1, NOTA2, NOTA3, NOTA4, MEDIA: INTEIRO NOME

NOTA1, NOTA2, NOTA3, NOTA4, MEDIA:

INTEIRO

NOME : CARACTERE [35]

INICIO LEIA (NOME)

LEIA (NOTA1, NOTA2, NOTA3, NOTA4)

MEDIA (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4

ESCREVA (NOME, MEDIA)

FIM.

LEIA (NOME) LEIA (NOTA1, NOTA2, NOTA3, NOTA4) MEDIA  (NOTA1 + NOTA2 + NOTA3 + NOTA4)

ESTRUTURAS DE DECISÃO

ESTRUTURAS DE DECISÃO  Em algumas situações verificamos que na maioria das vezes necessitamos tomar decisões

Em algumas situações verificamos que na maioria das vezes necessitamos tomar decisões no andamento do algoritmo.

Essas decisões interferem diretamente no

andamento do programa. Trabalharemos com dois tipos de estrutura. A estrutura

de Decisão e a estrutura de Repetição

no andamento do programa. Trabalharemos com dois tipos de estrutura. A estrutura de Decisão e a

COMANDOS DE DECISÃO

C OMANDOS DE D ECISÃO  Os comandos de decisão ou desvio fazem parte das técnicas

Os comandos de decisão ou desvio fazem parte das técnicas de programação que conduzem a estruturas de programas que

não são totalmente seqüenciais. Com as

instruções de SALTO ou DESVIO pode-se fazer com que o programa proceda de uma

ou outra maneira, de acordo com as

decisões lógicas tomadas em função dos dados ou resultados anteriores. As

principais estruturas de decisão são: Se

Então”, “Se então Senão.

dados ou resultados anteriores. As principais estruturas de decisão são: “ Se Então ”, “ Se

SE

ENTÃO / IF

THEN

SE ENTÃO / IF THEN  A instrução se tem por finalidade tomar uma decisão e

A instrução se

tem por finalidade

tomar uma decisão e efetuar um desvio no processamento, dependendo, é claro, da

condição atribuída ser verdadeira ou falsa.

Sendo a condição verdadeira, será

executada a instrução que estiver escrita

Se a instrução

após a instrução se

for falsa, serão executadas as instruções

que estejam após as instruções

consideradas verdadeiras.

então

então.

for falsa , serão executadas as instruções que estejam após as instruções consideradas verdadeiras. então então

SINTAXE:

Sintaxe:

S INTAXE :  Sintaxe : se <condição> então <instrução para condição verdadeira >;

se <condição> então <instrução para condição verdadeira>; <instrução para condição falsa ou após condição ser verdadeira>; Vejamos um exemplo de um trecho de programa com o uso da instrução se então:

se (x > 10) então escreva(„O valor da variável X é maior que 10‟);

com o uso da instrução se então : se (x > 10) então escreva („O valor
 Caso venha a existir mais de uma instrução verdadeira para uma determinada condição, estas

Caso venha a existir mais de uma instrução verdadeira para uma determinada condição, estas deverão estar inseridas em um bloco. Um bloco é o conjunto de instruções estar entre inicio e fim

Sintaxe:

se <condição> então inicio <instrução para condição verdadeira>

<instrução para condição verdadeira>

<instrução para condição verdadeira> <instrução para condição verdadeira> fim;

<instrução para condição falsa ou após condição ser

verdadeira>

para condição verdadeira > fim; <instrução para condição falsa ou após condição ser verdadeira >

ENTÃO

SE

ELSE

SENÃO / IF

THEN

ENTÃO SE ELSE SENÃO / IF THEN  Assim instrução então, tem a por finalidade tomar

Assim

instrução

então,

tem

a

por

finalidade tomar uma decisão e efetuar

a

condição for verdadeira será executada a

a

condição falsa, será executada a instrução

a

instrução senão. O conceito de blocos de

instruções

instrução.

esta

instrução logo abaixo do

um desvio no

instrução se

como

a

se

então

senão

processamento.

Se

Sendo

se.

que estiver posicionada

logo

após

vale

também

para

instrução se como a se então senão processamento. Se Sendo se . que estiver posicionada logo

SINTAXE:

S INTAXE : se < condição > então < instruções para condição verdadeira > senão <

se <condição> então <instruções para condição verdadeira>

senão

<instruções para condição falsa>; Caso venha a existir mais de uma instrução verdadeira ou falsa para uma condição, estas deverão estar inseridas em um bloco.

Sintaxe:

se <condição> então inicio <instruções para condição verdadeira>;

<instruções para condição verdadeira>;

fim

senão

inicio

<instruções para condição falsa>;

<instruções para condição falsa>; fim;

fim senão inicio < instruções para condição falsa >; < instruções para condição falsa >; fim;
 Observe que nos dois casos abordados acima, qualquer instrução que antecede a instrução senão

Observe que nos dois casos abordados acima,

qualquer instrução que antecede a instrução senão está escrita sem o ponto-e-vírgula (;). Isto ocorre pelo fato de a instrução senão ser uma extensão da

e sendo assim, o final da

condição somente ocorre após o processamento da

instrução senão executado.

instrução se

então,

Em algoritmo ficaria assim:

SE MÉDIA >= 5.0 ENTÃO Escreva(‘ALUNO APROVADO’)

SENÃO

Escreva(‘ALUNO REPROVADO’)

algoritmo ficaria assim: SE MÉDIA >= 5.0 ENTÃO Escreva(‘ALUNO APROVADO’) SENÃO Escreva(‘ALUNO REPROVADO’)

ESTRUTURA DE REPETIÇÃO:

ENQUANTO-FAÇA / WHILE - DO

E STRUTURA DE R EPETIÇÃO : ENQUANTO-FAÇA / W HILE - D O  Na estrutura

Na estrutura Enquanto-Faça as instruções a serem repetidas podem não ser executadas nenhuma vez, pois o teste

fica no início da repetição, então a

execução das instruções (que estão "dentro" da repetição) depende do teste.

Nesta estrutura, a repetição é finalizada

quando o teste é Falso (F), ou seja, enquanto o teste for Verdadeiro as

instruções serão executadas e, quando for

Falso, o laço é finalizado.

ou seja, enquanto o teste for Verdadeiro as instruções serão executadas e, quando for Falso, o

SINTAXE

Início

Instruções Enquanto teste faça

Instruções

Fim_enquanto

Instruções

Fim.

S INTAXE Início Instruções Enquanto teste faça Instruções Fim_enquanto Instruções Fim.

ESTRUTURA DE REPETIÇÃO: PARA-

ATÉ-FAÇA / FOR-TO-DO

A estrutura de repetição Para-Até-Faça é um pouco diferente das outras duas (Repita-Até e Enquanto-Faça), pois possui

uma variável de controle, ou seja, com

esta estrutura é possível executar um conjunto de instruções um número

determinado de vezes. Através da variável

de controle, define-se a quantidade de repetições que o laço fará.

número determinado de vezes. Através da variável de controle, define-se a quantidade de repetições que o

SINTAXE

Início

Instruções Para VarControle:=1 até N faça

Instruções

Fim_para

Instruções

Fim.

S INTAXE Início Instruções Para VarControle:=1 até N faça Instruções Fim_para Instruções Fim .

FIM!

POR ENQUANTO

KKK

F IM ! P OR E NQUANTO KKK