Conceitos Básicos Luis Antonio Tavares. Problemas de lógicaTipos e variáveis Conceitos...

Post on 22-Apr-2015

110 views 1 download

Transcript of Conceitos Básicos Luis Antonio Tavares. Problemas de lógicaTipos e variáveis Conceitos...

AlgoritmoConceitos Básicos

Luis Antonio Tavares

EmentaProblemas de lógica Tipos e variáveis

Conceitos básicos Instruções básicas

Algoritmo cotidiano vs. computacional

Linearização de Expressões

Fluxograma Condições

Pseudocódigo Laços de repetição

Estrutura de um programa

Funções

O QUE É LÓGICA? Estudo das leis do raciocínio e do modo de aplicá-las corretamente na demonstração da verdade.

Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo.

A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas, ela permite definir a seqüência lógica de operação do programa.

Introdução

O QUE É ALGORITMO? Seqüência de passos que visam atingir um objetivo pré-definido e bem definido.

O algoritmo formado e bem definido que pode ser seguido por qualquer pessoa, e o objetivo será alcançado com certeza.

Introdução

Cada linha de um algoritmo é uma instrução.

Instruções são um conjunto de regras ou normas definidas para a realização ou emprego de algo.

Em informática, é o que indica a um computador uma ação elementar a executar.

Um programa é, nada mais, que um conjunto de instruções que executadas cumprem uma finalidade.

Introdução

O que é Programação: Processo de escrita, teste e manutenção de um programa de computador.

Os programas de computadores nada mais são do que algoritmos escritos numa linguagem de computador (Pascal, C, Delphi, Java, PHP entre outras) e que são interpretados e executados por um computador.

O algoritmo deve ser fácil de se interpretar e fácil de codificar. Ou seja, ele deve ser o intermediário entre a linguagem falada e a linguagem de programação.

Programação

Por que Algoritmo?

ALGORITMOCÓDIGO-FONTE EM

LINGUAGEM DEPROGRAMAÇÃO

ADAPTAÇÃO

LINGUAGEMNATURAL

INSTRUÇÕES

COMPILAÇÃO

(EXECUTÁVEL)LINGUAGEMDE MÁQUINA

TRADUÇÃO

01000101001....

PORTUGUÊS, INGLÊS...

ALTO NÍVEL

BAIXO NÍVEL

Por que criamos algoritmos?

Linguagem natural não pode ser interpretada por um computador;

Porém a linguagem algorítmica é similar a uma linguagem de programação e próxima à linguagem natural;

Logo, aprendendo a criar algoritmos, teremos facilidade em aprender uma linguagem de programação.

Para montar um algoritmo, precisamos primeiro dividir o problema apresentado em três fases fundamentais

ENTRADA: São os dados de entrada do algoritmoPROCESSAMENTO: São os procedimentos

utilizados para chegar ao resultado finalSAÍDA: São os dados já processados

Regras para fazer um algoritmo

Analogia com o Homem

Representações de um Algoritmo

Fluxograma ou Diagrama de Blocos.

Pseudocódigo, Português Estruturado ou Portugol.

SUBJETIVIDADE

PRECISÃO

Fluxograma é um tipo de diagrama, e pode ser entendido como uma representação esquemática de um processo.

Podemos entendê-lo, na prática, como a documentação dos passos necessários para a execução de um processo qualquer.

Fluxograma ou Diagrama de Blocos

Fluxograma

Fluxograma Exemplo

Pseudocódigo O pseudocódigo é uma maneira intermediária

entre a linguagem natural e uma linguagem de programação de representar um algoritmo.

Ela utiliza um conjunto restrito de palavras-chave, em geral na língua nativa do programador.

Pseudocódigo Exemplo

Algoritmo PROGRAMA_EXEMPLOVariáveis

A, B, SOMA: Inteiros;

Inicio ESCREVA("Digite o primeiro número:"); LEIA(A); ESCREVA("Digite o segundo número:"); LEIA(B); SOMA A + B;ESCREVA (“A SOMA É: “, SOMA);

Fim

ESCREVA(); - Responsável por escrever uma mensagem na tela.

LEIA(); - Responsável por ler um valor do teclado e armazenar numa variável, ou seja, num espaço em memória.

VARIÁVEIS – Responsável por definir todos as variáveis que serão necessárias no programa.

Início e Fim – Delimitam o corpo do programa.

Instruções Básicas do Pseudocódigo

Adição + Ex.: A+B Subtração - Ex.: A-B Multiplicação * Ex.: A*B Divisão / Ex.: A/B Potência Ex.: A^B

Operadores Aritméticos

Ex.: Resultado Preco * QtdOperador de Atribuição

As variáveis do exemplo anterior são A, B e SOMA.

Variáveis são espaços em memória usados para armazenar valores. A, B e SOMA são somente o nome desses espaços.

No programa, as variáveis A e B estão, por exemplo, usando um espaço em memória para armazenar os valores lidos do teclado. Assim, sempre que os nomes A e B forem mencionados, estarão fazendo referência a esses valores lidos.

Variáveis

Inteiros (Ex. de uso: armazenar idade)Ex.: 1 2 3 4 -5 -90 (números sem casa decimal)

Reais (Ex. de uso: preço, altura)Ex.: 2.5 -9.32 -11.1 (números com casa decimal)

Caracteres (Ex. de uso: nomes, endereços, CPF)Ex.: “IFSULDEMINAS”, “Rua da Casas, nº 25”(valores literais)

Tipos de Variáveis

1. Sempre começa com uma letra2. Não se pode utilizar o Ç e letras acentuadas3. Não se mistura letras maiúsculas e

minúsculas4. Podem ser utilizados algarismos de 0 a 95. Dos caracteres especiais, só pode ser

utilizado o sublinhado ou underscore ( _ )6. Não pode haver espaço em branco7. Não se pode utilizar palavras reservadas, ou

seja, palavras que significam comandos (escreva, leia, inteiro, real).

Nomes de Variáveis

É boa prática escolher nomes que significam alguma coisa no contexto do programa e indiquem a função da variável;

Recomenda-se que os nomes de variáveis sejam em letras minúsculas.

Nomes de Variáveis

1. O que é uma variável?

2. Classifique os conteúdos abaixo em [C] caractere, [I] inteiro ou [R] real:

a) 258.23 b) Yuri c) 127 d) Ae) Casa f) 1000.35 g) 10 h) 4.0

Exercícios

3. Quais dos seguintes nomes são válidos para uma variável:

a) 3ab b) inteiro c) X**X d) _sim

e) _A f) A123 g) N_a_o h) Y_2

i) y-2j) 00fim k) \meu l) 6y2

m) n_2 n) nota2 o) n4t p) &casa

Exercícios

As linguagens de programação não entendem uma expressão matemática da maneira que nós escrevemos.

Portanto é necessário converter uma expressão matemática para uma expressão de computador.

Por exemplo, converter: RESULTADO = N1 x N2 Para: RESULTADO N1 * N2

Linearização de Expressões

Linearização de expressões

Para construção de algoritmos que realizam cálculos matemáticos, TODAS expressões aritméticas devem ser linearizadas;

Linearizadas = Colocadas em uma únicas linha;

Numa expressão para computador, não deve haver {} ou []. Somente parênteses. Exemplos:

{80-[(5x4+1)÷3]} expressão matemática (80-((5*4+1)/3)) expressão linearizada

80 + (2 x 3) expressão matemática 40 80/40+(2*3) expressão linearizada

Linearização de Expressões

Ordem de precedência dos operadores:

1º () Parênteses 2º ^ Potência 3º */ Multiplicação ou Divisão (o que aparecer

primeiro) 4º +- Adição ou Subtração (o que aparecer

primeiro)

Linearização de Expressões

Passe as expressões abaixo para forma computacional:

a) {5 + [3x2 – (4+1)]}

b) 5 x { [(4 + 2) x 2] – 3 x 2}

c) 80 – 7 x 3 + [(5 – 1) + 8] x 3

d) [5 + (8+4 – 4x2)]2

Exercícios

AlgoritmoCondições

Luis Antonio Tavares

Condições serão usadas sempre que precisarmos testar o valor de uma variável.

Desta forma podemos definir instruções que serão executadas caso uma condição seja verdadeira e instruções alternativas, caso a condição não seja verdadeira.

Condições

Formas Usadas no Fluxograma

Fluxograma Maior Número

Início

Escreva o 1º

número:

A

Escreva o 2º

número:

B

A > B

B

A

Fim

Verdadeiro

Falso

Algoritmo MAIOR_NUMEROVariaveis

A, B: REAIS;

Inicio ESCREVA ("Digite o primeiro numero: "); LEIA ( A ); ESCREVA ("Digite o segundo numero: "); LEIA ( B ); SE ( A > B ) ENTAO

ESCREVA (“O maior numero eh: ”, A);SENAO

ESCREVA (“O maior numero eh: ”, B);FIM_SE

Fim

Fluxograma Média

Início

Escreva o 1º

número:

A

Escreva o 2º

número:

B

MEDIA (A+B) / 2

MEDIA

MEDIA >= 60

Reprovado

Aprovado

Fim

Verdadeiro

Falso

Pseudocódigo ExemploAlgoritmo PROGRAMA_EXEMPLOVariaveis

A, B, MEDIA: REAIS;

Inicio ESCREVA ("Digite a nota da primeira prova:"); LEIA ( A ); ESCREVA("Digite a nota da segunda prova:"); LEIA ( B ); MEDIA (A + B) / 2;ESCREVA (“A MEDIA EH: “, MEDIA);SE (MEDIA >= 60) ENTAO

ESCREVA (“APROVADO!”);SENAO

ESCREVA (“REPROVADO!”);FIM_SE

Fim

Maior > Ex.: A > B Maior Igual >= Ex.: A >= B Menor < Ex.: A < B Menor Igual <= Ex.: A <= B Diferente != Ex.: A != B Igual == Ex.: A == B

Exemplo:SE ( NUM == 20 ) ENTAO

ESCREVA (“O NUMERO INFORMADO EH O NUMERO 20!”);

FIM_SE

Operadores Relacionais

Operador E Ex.: A > 60 && B < 40

Operador OU Ex.: A > 60 || B < 40

Operador NÃO Ex.: ! (A > 60)

Operadores Lógicos

Exemplo Operador E:SE ( NUM > 20 && NUM < 30 ) ENTAO

ESCREVA (“O NUMERO EH MAIOR QUE 20 E MENOR QUE 30!”);

FIM_SE

Exemplo Operador OU:SE ( NUM > 20 || NUM < 30 ) ENTAO

ESCREVA (“O NUMERO EH MAIOR QUE 20 OU MENOR QUE 30!”);

FIM_SE

Operadores Lógicos

Algoritmo PROGRAMA_EXEMPLOVariaveis

A, B, MEDIA: REAIS;

Inicio ESCREVA ("Digite a nota da primeira prova:"); LEIA ( A ); ESCREVA("Digite a nota da segunda prova:"); LEIA ( B ); MEDIA (A + B) / 2;ESCREVA (“A MEDIA EH: “, MEDIA);SE ( MEDIA >= 60 ) ENTAO

ESCREVA (“Aprovado!”);SENAO SE ( MEDIA >= 30 ) ENTAO

ESCREVA (“Recuperação!”);SENAO

ESCREVA (“Reprovado!”);FIM_SE

Fim

1. Sabendo que A = 3, B = 7 e C = 4, informe se as expressões abaixo são verdadeiras ou falsas:

a) (A + C) > B _______________b) B >= (A + 2) _______________c) C == (B – A) _______________d) (B + A) <= C _______________e) (C + A) > B _______________

Exercícios

2. Sabendo que A = 5, B = 4, C = 3 e D = 6, informe se as expressões abaixo são verdadeiras ou falsas:

a) (A > C) && (C <= D) _______________b) (A + B) == (C + D) _______________c) (A < B) || (D <= C) _______________d) (A < B) || (D >= C) _______________e) (C < 10) && (D > A) _______________f) (B > C) && (C >= A) _______________g) (B > C) || (C >= A) _______________

Exercícios

AlgoritmoLaços de RepetiçãoLuis Antonio Tavares

Os laços de repetição se encarregam de repetir determinado bloco de instruções enquanto uma condição for verdadeira.

Esses laços também podem ser chamados de loops.

Temos basicamente dois tipos de loops: O para e o enquanto.

Laços de Repetição

O primeiro loop que vamos conhecer é o enquanto. Pois se trata do loop mais simples.

Funcionamento: O bloco de código definido no loop enquanto fica em execução enquanto uma determinada condição for verdadeira. Cada vez que o bloco é iniciado, a condição é novamente testada, quando não for mais verdadeira, o loop é encerrado.

Laço de Repetição ENQUANTO

A sintaxe do loop ENQUANTOALGORITMO LOOP_ENQUANTOVARIAVEIS

CONT : INTEIRO;INICIO

CONT 1;ENQUANTO ( CONT < 5 ) FAÇA

ESCREVA (“Numero: ”, CONT);CONT CONT + 1;

FIM_ENQUANTOFIM

Loop ENQUANTO ExemploALGORITMO PROGRAMA_MEDIA_COM_LOOPVARIAVEIS

MEDIA, N1, N2: REAIS;NUM: INTEIRO;

INICIONUM 1;ENQUANTO ( NUM == 1 ) FAÇA

ESCREVA (“Informe a primeira nota: ”); LEIA ( N1 ); ESCREVA (“Informe a segunda nota: ”); LEIA ( N2 ); MEDIA ( N1 + N2 ) / 2; ESCREVA (“Sua media eh: ”, MEDIA); ESCREVA (“Digite 1 se deseja continuar no programa”); LEIA ( NUM );

FIM_ENQUANTOFIM

O loop para trabalha de uma forma um pouco diferente do loop enquanto.

Funcionamento: No loop para, uma variável pode ser inicializada com um valor qualquer, e o bloco de código definido neste loop vai ser executado até que a variável atinja um determinado valor. No loop também definidos um passo, ou seja, um valor que será incrementado na variável cada vez que o loop rodar.

Laço de Repetição PARA

A sintaxe do loop PARAALGORITMO LOOP_PARAVARIAVEIS

CONT : INTEIRO;INICIO

PARA CONT 1 ATÉ 5, PASSO 1, FAÇAESCREVA (“IF Sul de Minas”);

FIM_PARAFIM

A cada execução do loop dá-se o nome de iteração (iteração sem o N mesmo, não confunda com interação.)

Loop PARA Exemplo 1

ALGORITMO ESCREVE_ATE_5VARIAVEIS

CONT: INTEIRO;INICIO

PARA CONT 1 ATÉ 5, PASSO 1, FAÇAESCREVA (“Numero: ”, CONT);

FIM_PARAFIM

Loop PARA Exemplo 2

ALGORITMO EXIBE_PARESVARIAVEIS

CONT: INTEIRO;INICIO

PARA CONT 2 ATÉ 10, PASSO 2, FAÇAESCREVA (“Numero: ”, CONT);

FIM_PARAFIM

Loop PARA Exemplo 3ALGORITMO SOMA_NUMEROS_ATE_DEZVARIAVEIS

CONT, SOMA: INTEIRO;INICIO

SOMA 0;PARA CONT 1 ATÉ 10, PASSO 1, FAÇA

SOMA SOMA + CONT;

FIM_PARAESCREVA (“A soma dos numeros eh: ”, SOMA);

FIM

O loop faça... enquanto é uma derivação do loop enquanto. A diferença é que com esse loop o bloco de código é executado uma vez antes da condição ser verificada.

Laço de Repetição FAÇA ENQUANTO

A sintaxe do loop FAÇA... ENQUANTO

ALGORITMO LOOP_FACA_ENQUANTOVARIAVEIS

CONT: INTEIRO;INICIO

CONT 0;FAÇA

ESCREVA (“Numero: ”, CONT);CONT CONT + 1;

ENQUANTO ( CONT < 5 ) FIM

Algoritmo MAIOR_NUMEROVariaveis

A, B, NUM: REAIS;

Inicio FAÇA

ESCREVA ("Digite o primeiro numero: "); LEIA ( A ); ESCREVA ("Digite o segundo numero: "); LEIA ( B ); SE ( A > B ) ENTAO

ESCREVA (“O maior numero eh: ”, A);SENAO ESCREVA (“O maior numero eh: ”, B);FIM_SEESCREVA (“Para continuar digite o numero 1: "); LEIA (NUM);

ENQUANTO(NUM == 1)Fim

Algoritmo PROGRAMA_MEDIAVariaveis

A, B, MEDIA, NUM: REAIS;

Inicio FAÇA

ESCREVA ("Digite a nota da primeira prova:"); LEIA ( A ); ESCREVA("Digite a nota da segunda prova:"); LEIA ( B ); MEDIA (A + B) / 2;ESCREVA (“A MEDIA EH: “, MEDIA);SE (MEDIA >= 60) ENTAO

ESCREVA (“APROVADO!”);SENAO ESCREVA (“REPROVADO!”);FIM_SEESCREVA("Digite o numero 1 para continuar:"); LEIA (NUM);

ENQUANTO (NUM == 1)Fim

Maior > Ex.: A > B Maior Igual >= Ex.: A >= B Menor < Ex.: A < B Menor Igual <= Ex.: A <= B Diferente != Ex.: A != B Igual == Ex.: A == B

Exemplo:ENQUANTO ( NUM < 20 ) FAÇA

ESCREVA (“O NUMERO INFORMADO EH MENOR QUE 20!”);ESCREVA (“INFORME NOVAMENTE UM NUMERO: ”);LEIA ( NUM );

FIM_ENQUANTO

Operadores Relacionais

Exemplo Operador E:ENQUANTO ( NUM > 20 && NUM < 30 ) FAÇA

ESCREVA (“O NUMERO EH MAIOR QUE 20 E MENOR QUE 30!”);ESCREVA (“INFORME NOVAMENTE UM NUMERO: ”);LEIA ( NUM );

FIM_ENQUANTO

Exemplo Operador OU:ENQUANTO ( NUM > 20 || NUM < 30 ) FAÇA

ESCREVA (“O NUMERO EH MAIOR QUE 20 OU MENOR QUE 30!”);ESCREVA (“INFORME NOVAMENTE UM NUMERO: ”);LEIA ( NUM );

FIM_ENQUANTO

Operadores Lógicos

Algoritmo PROGRAMA_MEDIAVariaveis

A, B, MEDIA, CONT : REAIS;

Inicio PARA CONT 1 ATÉ 5, PASSO 1, FAÇA

ESCREVA ("Digite a nota da primeira prova:"); LEIA ( A ); ESCREVA("Digite a nota da segunda prova:"); LEIA ( B ); MEDIA (A + B) / 2;ESCREVA (“A MEDIA EH: “, MEDIA);SE ( MEDIA >= 60 ) ENTAO

ESCREVA (“Aprovado!”);SENAO SE ( MEDIA >= 30 ) ENTAO ESCREVA (“Recuperação!”);SENAO ESCREVA (“Reprovado!”);FIM_SE

FIM_PARAFim

Programa que calcula a média de 5 pessoas usando o loop para.

Exercícios

AlgoritmoFunções

Luis Antonio Tavares

São utilizadas para dividir um algoritmo maior (mais complexo) em partes menores (mais simples).

Quando uma mesma tarefa é realizada várias vezes em um programa, não é necessário duplicar o código, apenas faz-se a chamada da função que contém o código da tarefa.

Este processo é conhecido como modularização.

Funções

Reduzem o tamanho do algoritmo.

Melhoram a legibilidade do algoritmo.

Reaproveitamento de código.

Facilitam a manutenção.

Facilitam a divisão de trabalho.

Vantagens

Sintaxe de uma funçãoFUNÇÃO ANALISA_NUMERO (NUM : INTEIRO)INICIO

SE (NUM > 0) ENTAOESCREVA (“Numero Positivo”);

SENAO SE (NUM < 0) ENTAOESCREVA (“Numero Negativo”);

SENAOESCREVA (“Numero Zero”);

FIM_SEFIM_FUNÇÃO

Chamada de função

ALGORITMO PROGRAMA_EXEMPLOVARIAVEIS

NUM: INTEIRO;INICIO

ESCREVA (“Informe um numero: ”);LEIA ( NUM );ANALISA_NUMERO ( NUM );

FIM

Sintaxe de função com retorno

FUNÇÃO SOMA (A, B : REAIS)VARIAVEIS

RESULT : REAIS;INICIO

RESULT A + B;RETORNE RESULT;

FIM_FUNÇÃO

Chamada de funçãoALGORITMO PROGRAMA_SOMAVARIAVEIS

RESULT, A, B: REAIS;INICIO

ESCREVA (“Informe o primeiro numero: ”);LEIA ( A );ESCREVA (“Informe o segundo numero: ”);LEIA ( B );

RESULT SOMA ( A, B );ESCREVA (“A soma eh: ”, RESULT);

FIM

Alguns pontos importantes

Na chamada de uma função, os valores que são passados para esta função devem vir entre parênteses após o nome da mesma. Exemplo:

ANALISA_NUMERO ( NUM );

Esses valores passados para a função são chamados de argumentos ou parâmetros.

Alguns pontos importantes A linha de definição da função deve declarar os valores

recebidos e o tipo dos mesmos. Exemplo:

FUNÇÃO SOMA (A, B : REAIS)

Não há a necessidade das variáveis passadas para uma função terem os mesmos nomes dos argumentos declarados na função. Exemplo de chamada para a função do exemplo anterior:

RESULT SOMA (N1, N2);

Mas os parâmetros devem ser do mesmo tipo e estar em mesma quantidade que os valores passados.

Alguns pontos importantes Analisando os exemplos, podemos observar que

uma função pode retornar um valor ou não retornar nenhum valor.

Mas uma função nunca retorna mais de um valor.

Quando um função retorna um valor, em sua chamada deve haver uma variável recebendo esse valor, por exemplo:

RESULT SOMA ( A, B );

Alguns pontos importantes Quando necessário, é possível criar variáveis internas

à função, ou seja, que serão acessadas somente internamente no escopo da função. Como é o caso da variável RESULT no exemplo abaixo:

FUNÇÃO SOMA (A, B : REAIS)VARIAVEIS

RESULT : REAIS;INICIO

RESULT A + B;RETORNE RESULT;

FIM_FUNÇÃO

ALGORITMO PROGRAMA_MEDIAVARIAVEIS

A, B, RESULT, CONT : REAIS;

INICIO PARA CONT 1 ATÉ 5, PASSO 1, FAÇA

ESCREVA ("Digite a nota da primeira prova:"); LEIA ( A ); ESCREVA ("Digite a nota da segunda prova:"); LEIA ( B ); RESULT CALCULA_MEDIA ( A, B );ESCREVA (“A MEDIA EH: “, RESULT);

FIM_PARAFIM

FUNÇÃO CALCULA_MEDIA ( A, B : REAIS)VARIAVEIS

RESULT, SOMA : REAIS;INICIO

SOMA A + B;RESULT SOMA / 2;RETORNE RESULT;

FIM_FUNÇÃO

Programa que calcula a média de 5 pessoas usando o loop para e função.

Exercícios