Lógica de Programação PROF. FLÁVIO IZO
Dúvidas! FLÁVIO IZO (28) 99986-5273 (somente urgência) fizo@ifes.edu.br
APRESENTAÇÃO DA DISCIPLINA
Objetivos 1.0 Apresentações: Área que mais gosta? 2.0 Ementa; 3.0 Horários das aulas; 4.0 Combinados Básicos; 5.0 Conceito de Algoritmo; 6.0 Algoritmo na prática; 7.0 Testes de fixação; 8.0 Exercícios; 9.0 Dado, informação e conhecimento
1.0 Apresentações Nome? Cidade? Trabalha? Área que mais identifica? Programação? Redes? Montagem e Manutenção?
2.0 Ementa Está no ftp. ftp.ci.ifes.edu.br (ou acessando pelo site do IFES CI) informatica/ flavio/ LGP/ Documentos/
3.0 Horário das Aulas Horário Terça-feira Quarta-feira 01º 18:00 LGP B LGP A 02º 18:50 LGP B LGP A INT 20:10 03º 20:20 LGP A LGP B 04º 21:10 LGP A LGP B ATENÇÃO: As aulas sempre ocorrerão no laboratório 2, com exceção das provas, que acontecerão na sala de aula. Exercícios: 90% das aulas com listas de exercícios.
3.0 Apostilas A apostila está no ftp ftp.ci.ifes.edu.br (ou acessando pelo site do IFES CI) informatica/ flavio/ LGP/ Apostila/
4.0 Combinados Básicos Como você pode se comportar perante as atividades? [ ] Fazer o que foi pedido [ ] Fazer e tentar melhorar o que foi pedido [ ] Copiar do colega [ ] Tentar achar algo parecido na internet e copiar [ ] Não fazer [ ] NDA E aí? Qual alternativa você escolherá?
4.0 Combinados Básicos Para responder a questão anterior, você deve responder para você mesmo: O que eu estou fazendo aqui no IFES? Onde eu quero chegar? Quem será o principal beneficiado ou prejudicado com minhas escolhas? Uma coisa eu garanto: há muito a ser explorado ainda na área de TI
4.0 Combinados Básicos Ter um caderno só para a disciplina LGP. Todos os exercícios deverão ser feitos no caderno para futuras consultas e estudos. Estudar, mesmo antes de ouvir a explicação do professor. Sem dúvidas isso irá facilitar seu aprendizado.
4.0 Combinados Básicos Chegar sempre no horário e evitar faltar às aulas; Sempre fazer os exercícios; Entregar os compromissos no dia combinado; A avaliação será individual, sempre! Método de avaliação: prova e participação! A aprendizagem só depende de VOCÊS!
5.0 Conceito de Algoritmo Um conjunto de instruções que são necessárias para realizar uma tarefa; Não utiliza necessariamente um computador; Deve ser bem definido; Pode-se repetir passos;
5.0 Conceito de Algoritmo Um algoritmo corretamente executado não irá resolver um problema se estiver implementado incorretamente ou se não for apropriado ao problema; Corretamente executado; Não irá resolver o problema; Se implementado incorretamente ou Não for apropriado ao problema;
5.0 Conceito de Algoritmo Um programa de computador é essencialmente um algoritmo que diz ao computador os passos específicos e em que ordem eles devem ser executados; Exemplo: cadastro de um cliente; cálculo da média de um aluno;
5.0 Conceito de Algoritmo A maneira mais simples de pensar um algoritmo é através de uma lista de procedimentos bem definida, com instruções que são executadas passo a passo; Sempre começará do início do algoritmo (podendo repetir passos); Exemplo: fluxograma;
5.0 Conceito de Algoritmo Posteriormente, para implementar os algoritmos existe uma gama grande de linguagens de computador; Exemplos de linguagens! Cada uma dessas linguagens possui características específicas, porém, a estrutura a qual devem seguir são os algorítmos;
5.0 Conceito de Algoritmo Um meio de exibir o algorítmo ao fim da lista é através do pseudocódigo em português estruturado, ou portugol;
6.0 Testes de fixação Faça Algoritmos de forma simples para: Atender ao telefone fixo (com fio); Ligar o computador (desktop); Chegar até o IFES; Como jogar sinuca;
Veja a seguir um exemplo de algoritmo para somar dois valores:
7.0 Algorítmo na prática (pseudocódigo) Algoritmo "SomaDeDoisValores" Variável: SOMA, A, B: inteiro inicio escreval("digite um numero") leia(a) // Lê do teclado o número e coloca na variável A (Ex. 4) escreval("digite outro numero") leia(b) // Lê do teclado o número e coloca na variável B (Ex. 5) soma <- A + B // executa a operação de soma escreval(soma) // escreve a soma na tela fim Qual a resposta?
7.0 Algorítmo na prática (pseudocódigo) Como já visto, todo algoritmo é composto por uma lista. Essa lista tem início e fim; E ao fim é gerado um resultado.
8.0 Atividades Extras O primeiro passo para desenvolver programas de computador é ter bom raciocínio lógico. A seguir foram colocados dois jogos para vocês treinar o seu raciocínio.
8.0 Atividades Extras http://www.nied.unicamp.br/?q=content/superlogo-30 http://projetologo.webs.com/slogo.html
8.0 Atividades Extras http://rachacuca.com.br/teste-de-einstein/
8.0 Atividades Extras: Sudoko
8.0 Academia de ensino https://pt.khanacademy.org/
9.0 Dado, informação e conhecimento Dado:? Informação:? Conhecimento:?
9.0 Exercícios para Casa Pense em 5 atividades que você executa no seu dia a dia. Agora descreva o passo a passo de cada uma delas, sempre começando a frase com um verbo.
INTRODUÇÃO A LÓGICA DE PROGRAMAÇÃO
Definições Básicas Lógica de programação: é a técnica de encadear pensamentos para atingir determinado objetivo. Sequência Lógica: são passos executados até atingir um objetivo ou solução de um problema.
Definições Básicas cont. 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 que deve ser executada.
Algoritmo Algoritmo: é uma sequência finita de passos que levam à execução de uma tarefa.
Exemplos de Algoritmos (i) Escovar os dentes. Pegar a escova Pegar o creme dental Colocar creme dental na escova Escovar os dentes Enxaguar a boca Pergunta que não quer calar: Pode-se inverter a ordem?
Exemplos de Algoritmos (ii) Escovar os dentes. Pegar a escova Pegar o creme dental Escovar os dentes Colocar creme dental na escova Enxaguar a boca Notar que a mudança da ordem das instruções fez com que o algoritmo ficasse incorreto.
Exemplos de Algoritmos (iii) Fritar Batatas Vamos supor a existência de uma dispensa onde se encontram as batatas e que haja um cesto para se colocar estas batatas. Vamos supor ainda que o óleo, a panela, a faca, o prato e o sal estejam em um armário.
Exemplos de Algoritmos (iv) Algoritmo para Fritar Batatas
Linguagem de Computador A Linguagem de Máquina é a forma de se representar os dois estados (ligado/desligado) da corrente elétrica utilizados nos circuitos eletrônicos dos computadores. É a única linguagem inteligível pelo computador.
Linguagem de Programação Como a Linguagem de Máquina é de difícil compreensão e manipulação, foram desenvolvidas linguagens intermediárias entre a da máquina e a do homem; estas linguagens denominam-se Linguagens de Programação. Dizemos que quanto mais próxima da linguagem humana for a linguagem de programação ela é de alto nível, caso contrário é considerado baixo nível
Programa Os programas de computadores nada mais são do que algoritmos escritos numa linguagem de programação (Visualg, Pascal, C, Cobol, Fortran, Visual Basic entre outras) e que são interpretados e executados por uma máquina, no caso um computador. Notem que dada esta interpretação rigorosa, um programa é por natureza muito específico e rígido em relação aos algoritmos da vida real
Compiladores Compiladores: convertem o programa escrito em uma linguagem de programação em linguagem de máquina uma única vez, a partir daí, toda vez que o programa é executado ele é executado já no formato binário.
Interpretadores Interpretadores: convertem o programa escrito em uma linguagem de programação em linguagem de máquina toda vez que ele for executado.
Exercícios Desejamos mover todos discos para a última haste, porém só podemos movimentar um disco de cada vez e um disco maior nunca pode ser colocado sobre um disco de menor tamanho.
Pseudo Código Os algoritmos são descritos em uma linguagem chamada pseudocódigo. Este nome é uma alusão à posterior implementação em uma linguagem de programação, ou seja, quando formos programar em uma linguagem, por exemplo C, estaremos gerando código em C. Por isso os algoritmos são independentes das linguagens de programação. Ao contrário de uma linguagem de programação não existe um formalismo rígido de como deve ser escrito o algoritmo.
Diretrizes para construção de algoritmos Usar somente um verbo (ação) 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 duplo;
Partes ENTRADA: São os dados de entrada do algoritmo. Em algoritmos de alto nível podem ser verbos como: Ler, Receber, etc. identificados por PROCESSAMENTO: São os procedimentos utilizados para chegar ao resultado final SAÍDA: São os dados já processados. Em algoritmos de alto nível podem ser identificados por verbos como: Retornar, Imprimir, Mostrar, etc.
Fases - Analogia com o homem
Exemplo de Algoritmo Identificando Fases Imagine o seguinte problema: Calcular a média final de um aluno. O aluno realizará quatro provas: P1, P2, P3 e P4. Onde: Média Final = (P1 + P2 + P3 + P4) / 4
Exemplo de Algoritmo Identificando Fases a) Quais são os dados de entrada? R: Os dados de entrada são P1, P2, P3 e P4 b) Qual será o processamento a ser utilizado? R: O procedimento será somar todos os dados de entrada e dividilos por 4 (quatro) c) Quais serão os dados de saída? R: O dado de saída é a média final
Exercícios Cap. 02 1. Identifique os dados de entrada, processamento e saída no algoritmo abaixo: Receba código da peça. Receba valor da peça. Receba Quantidade de peças. Calcule o valor total da peça (Quantidade * Valor da peça). Mostre o código da peça. Mostre o valor total.
Exercícios Cap. 02 1. Identifique os dados de entrada, processamento e saída no algoritmo abaixo: Receba código da peça. (Entrada) Receba valor da peça. (Entrada) Receba Quantidade de peças. (Entrada) Calcule o valor total da peça (Quantidade * Valor da peça). (Processamento) Mostre o código da peça. (Saída) Mostre o valor total. (Saída)
Exercícios Cap. 02 2. Faça um algoritmo para Calcular a média ponderada de um aluno, sendo que: MEDIAPONDERADA = ((NOTA01 * P1) + (NOTA02 * P2) + (NOTA03 * P3)) /TP 3. Teste o algoritmo anterior com dados definidos por você.
DIAGRAMA DE BLOCOS Referência: ISO / IEC 5807:1985
Definição O diagrama de blocos é uma forma padronizada e eficaz para representar os passos lógicos de um determinado processamento. Com o diagrama podemos definir uma sequência de símbolos, com significado bem definido, portanto, sua principal função é a de facilitar a visualização dos passos de um processamento.
SÍMBOLO Símbolos Utilizados FUNÇÃO TERMINAL Indica o INÍCIO ou FIM de um processamento. Exemplo: Início do Algoritmo. Saída Saída para impressora PROCESSAMENTO Processamento em geral. Exemplo: Cálculo de dois números Entrada Entrada manual (teclado) ENTRADA DE DADOS Operação de entrada e saída de dados. Exemplo: Leitura e gravação de arquivos. Indica uma decisão a ser tomada. Exemplo: Verificação de Sexo. DECISÃO Mostra informações ou resultados Exemplo: Mostre o resultado do cálculo. EXIBIR
Fluxo básico INÍCIO INÍCIO ENTRADA ENTRADA PROCESSAMENTO PROCESSAMENTO Saída DECISÃO SAÍDA SAÍDA FIM FIM
Vantagens e desvantagens Vantagem: É simples e utiliza pouca escrita Desvantagem: Deve-se conhecer os símbolos gráficos Se for grande, ficará confuso de entender
Exemplos de Diagrama de Bloco Chupar Bala INÍCIO PEGAR BALA RETIRAR O PAPEL CHUPAR A BALA JOGAR PAPEL NO LIXO FIM
Exemplos de Diagrama de Bloco cont. INÍCIO CALCULAR N1 INÍCIO MÉDIA DE 4 NOTAS N2 N3 ou N1, N2, N3, N4 MEDIA <- ( N1 + N2 + N3 + N4 ) / 4 N4 Media MEDIA <- ( N1 + N2 + N3 + N4 ) / 4 FIM MEDIA FIM
1) Faça a lista 01 Exercícios
ITENS FUNDAMENTAIS
Elementos de Manipulação Existem dois elementos básicos que um programa manipula: Constantes Variáveis
Constantes Definição: Uma constante é um determinado valor fixo que não se modificará ao longo do tempo, durante a execução do programa. Exemplo: X, Y, nome, telefone
Variáveis Definição: Na matemática, uma variável é a representação simbólica dos elementos de um certo conjunto.
Variáveis Na informática, uma variável é um espaço de memória em uma determinada posição, cujo conteúdo pode variar ao longo do tempo durante a execução de um programa, mas a cada instante existe um único valor. Exemplo: X, Y, nome, telefone
E quais os tipos de dados podemos armazenar em uma constante ou variável?
Tipo de dados Os tipos de dados podem ser: numérico: um número (como na Matemática); lógico: um valor lógico; ou literal/caracter: uma sequência de caracteres com algum significado para o problema em estudo.
Tipo de dados Tipo de dados Numérico: A representação de uma constante numérica nos algoritmos é feita no sistema decimal, podendo ser um número com ou sem parte fracionária Exemplos: 33 44.21-4
Tipo de dados Tipo de dados Lógico: É um valor lógico, isto é, só pode ser falso ou verdadeiro.
Tipo de dados Tipo de dados Literal/caracter: Uma constante deste tipo pode ser qualquer sequência de caracteres (literais, dígitos ou símbolos especiais) que forme um literal com algum significado para o problema em estudo.
Tipo de dados Tipo de dados Literal/caracter: Para que não ocorra confusão na identificação dos tipos literais elas são colocadas entre aspas Exemplos: JOÃO DE DEUS MK3227 08/11/2012
Existem regras para criar as constantes e variáveis?
Regras de criação de variáveis/constantes Toda constante/variável é definida por um nome ou identificador. Um identificador é uma sequência de caracteres alpha-numéricos válida na nomeação de constantes/variáveis.
Regras de criação de variáveis/constantes Nos compiladores atuais, uma sequência válida de caracteres alpha-numéricos é definida como: O primeiro caractere deve ser obrigatoriamente uma letra. Os caracteres seguintes devem ser letras ou dígitos, não sendo permitido o uso de caracteres especiais.
Regras de criação de variáveis/constantes Exemplos: Identificadores válidos Identificadores Não Válidos A 5B Nota (14)B5 X5 endereço A33C423 X Y FITTKM 5(KM32)
E como se faz para declarar as variáveis?
Declaração de variáveis Em visualg, as variáveis só podem armazenar valores de um mesmo tipo de dados. Como já vimos, esses tipos de dados podem ser classificadas em: numérico (inteiro ou real), Lógico, e literais/caracteres
Declaração de variáveis cont. A declaração de variáveis deve ser feita da seguinte forma: <Identificador> : <Nome do Tipo de dados >
Declaração de variáveis cont. Exemplos: idade: inteiro peso, altura, nota: real cidade, nome, sobrenome : literal flag, teste, maior_de_18 : logico Observe que o nome dos tipos deve estar sem acentos. Exemplos: inteiro, real, literal e lógico. No Visualg a palavra literal pode ser substituída por caracter, ambos representam o mesmo tipo.
E as expressões aritméticas, mudam em relação à matemática?
EXPRESSÕES ARITMÉTICAS Expressão aritmética é aquela que utiliza operadores aritméticos e cujo operandos são constantes e/ou variáveis do tipo numérico.
EXPRESSÕES ARITMÉTICAS cont. São operadores aritméticos: Adição: + Subtração: - Multiplicação: * Divisão: / Potenciação: X ^ Y Radiciação: X ^ (1/Y)
EXPRESSÕES ARITMÉTICAS cont. OPERADOR MATEMÁTICA (EXEMPLO) VISUALG (EXEMPLO) Adição A + B A + B Subtração A B A B Multiplicação A x B A * B Divisão A / B A / B Potenciação A B A ^ B Radiciação Y X X ^ (1/Y)
EXPRESSÕES ARITMÉTICAS cont. Exemplos: X + Y X Y 2 x NOTA = 2 * NOTA NOTA 2 = NOTA ^ 2
EXPRESSÕES ARITMÉTICAS cont. PRIORIDADE DAS OPERAÇÕES Assim como na matemática os operadores aritméticos obedecem a seguinte ordem: 1º Potenciação e Radiciação 2º Multiplicação e Divisão 3º Adição e Subtração Colchetes e Chaves não devem ser utilizados nas expressões aritméticas pois são usados nos algoritmos com outras finalidades. Para mudar a procedência podemos, como na matemática, utilizar parênteses.
E as expressões relacionais?
EXPRESSÕES RELACIONAIS Expressões Relacionais são aquelas que utilizam operadores relacionais, cujos operandos em uma relação são do mesmo tipo e cujo resultado é do tipo lógico. DESCRIÇÃO SÍMBOLO IGUAL A = DIFERENTE DE < > MAIOR QUE > MENOR QUE < MAIOR OU IGUAL A > = MENOR OU IGUAL A < =
EXPRESSÕES RELACIONAIS cont. Exemplo: EXPRESSÃO RESULTADO Suponhamos duas variáveis do tipo numérico: A = 50 B = 30 Ao fazermos comparações entre elas teríamos o seguinte quadro: A = B A <> B A > B A < B A >= B A <= B FALSO VERDADEIRO VERDADEIRO FALSO VERDADEIRO FALSO
E as expressões lógicas?
EXPRESSÕES LÓGICAS Expressões lógicas são aquelas que utilizam operadores lógicos e cujos operandos são expressões relacionais, pois seus resultados são constantes e/ou variáveis do tipo lógico. Toda expressão lógica tem como resultado um valor lógico VERDADEIRO ou FALSO.
EXPRESSÕES LÓGICAS cont. Os operadores lógicos são: E OU NAO E: Uma expressão lógica ( E ) é verdadeira se todos os seus operandos possuírem o valor VERDADEIRO. OU: Uma expressão lógica ( OU ) é verdadeira se algum de seus operandos possuir o valor VERDADEIRO. NAO: Uma expressão lógica ( NAO ) é verdadeira se seu operando é FALSO. E vice versa.
EXPRESSÕES LÓGICAS cont. 1º VALOR OPERADOR 2º VALOR RESULTADO VERDADEIRO E VERDADEIRO VERDADEIRO VERDADEIRO E FALSO FALSO FALSO E VERDADEIRO FALSO FALSO E FALSO FALSO VERDADEIRO OU VERDADEIRO VERDADEIRO VERDADEIRO OU FALSO VERDADEIRO FALSO OU VERDADEIRO VERDADEIRO FALSO OU FALSO FALSO VERDADEIRO NAO FALSO FALSO NAO VERDADEIRO
EXPRESSÕES LÓGICAS cont. Suponha que temos 3 variáveis A = 50, B = 80, e C = 10 Os resultados das expressões seriam: EXPRESSÕES RESULTADO A = B E B > C FALSO A < > B OU B < C VERDADEIRO A > B NAO VERDADEIRO A < B E B > C VERDADEIRO A >= B OU B = C FALSO A <= B NAO FALSO
Exercícios Resolva a Lista 02 Agora é com você
ITENS COMPLEMENTARES
Comentários Quando implementamos um algoritmo é fundamental a preocupação com a clareza (facilidade de entendimento) do algoritmo. O comentário é uma observação que se coloca no código de forma a possibilitar o entendimento do mesmo. No Visualg, os comentários são representados por um texto iniciado por duas barras (//).
Comentários cont. No seguinte exemplo a declaração das variáveis foi comentada de forma a explicar para que serve cada variável: matricula: literal // número da matrícula do aluno nota: real // nota do aluno codigo: inteiro // código do curso
Funções matemáticas Além dos operadores aritméticos normalmente utilizados, podemos usar funções disponibilizadas pela linguagem Visualg, que comumente estão presentes em muitas linguagens. Veremos no slide a seguir:
Funções matemáticas cont. NOME timer 1000 abs ( X ) int ( X ) X div Y RESULTADO Paralisa o tempo em 1 seg., por exemplo. Use timer <off> para sair Valor Absoluto de X Parte inteira de um número fracionário Quociente inteiro da divisão de X por Y X mod Y Resto da divisão de X por Y. Pode-se utilizar também o % limpatela aleatorio 0,100 pausa cronometro on interrompa Limpa a tela do visualg Todos os leias terão valores aleatórios. (min, máx) Interrompe o código. F9 para prosseguir sua execução normalmente. Mostra o tempo na saída padrão do visualg. cronômetro off desativa. Interrompe o código. Deve ser utilizado dentro de um bloco.
Funções matemáticas cont. Exemplo: Sendo A, B e X variáveis do tipo numérico, quais serão os resultados fornecidos por cada uma das seguintes funções, onde A = 10, B = 3 e X = 1.2 A div B é o mesmo que 10 div 3 = 3 A mod B é o mesmo que 10 mod 3 = 1 abs (B-A) é o mesmo que abs ( 3 10 ) = abs ( -7 ) = 7 int ( 4 * X ) é o mesmo que int ( 4 * 1.2 ) = int ( 4.8 ) = 4
Entrada, Processamento e Saída Sabe-se que os algoritmos são divididos em entrada, processamento e saída. Você lembra da diferença entre essas palavras? Então, veremos agora como podemos fazer a entrada e a saída utilizando a linguagem visualg.
COMANDO DE ENTRADA leia( )
Comandos de entrada leia (Nome da Variável) Onde: leia: é uma palavra-chave. ( ): Os parênteses delimitam o identificador da variável Nome da Variável: é o identificador onde será armazenado o valor proveniente do meio de entrada. É importante ressaltar que as linguagens de programação normalmente utilizadas obrigam a leitura variável a variável.
COMANDO DE SAÍDA escreva( ) ou escreval( )
Comandos de saída escreva (Lista de variáveis) ou escreval (Lista de variáveis) Onde: escreva: é uma palavra chave. escreval: é uma palavra chave. Quebra a linha. ( ): Os parênteses delimitam os identificadores das variáveis Lista de variáveis: são os nomes das variáveis, separados por vírgula, das quais serão obtidos os valores a serem escritos.
Comandos de entrada e saída cont. Exemplos de Comandos de Entrada e Saída: leia (nome) leia (salario) escreva (salario) escreval (nome, salario) escreva ( Nome:, nome, Salário:,salario) escreval ( O salário é:, salario) escreval (media + 5)
ATRIBUIÇÃO <-
Atribuição O comando responsável pela colocação de um valor em uma variável é o comando de atribuição. Tal comando pode ser apresentado da seguinte forma: Identificador <- Expressão
Atribuição Onde: Identificador: é o nome da variável à qual está sendo atribuído o valor. <- : é o símbolo de atribuição Expressão: pode ser uma expressão aritmética, expressão lógica ou expressão literal de cuja avaliação é obtido o valor a ser atribuído à variável.
Atribuição cont. Exemplos de Atribuição: nota <- 5 media <- nota + 3 media <- (nota1 + nota2 + nota3) / 3 nome <- Flávio valor <- 27.9
Exercícios Agora é com você Resolva os exercícios da lista 03
Dúvidas! FLÁVIO IZO (28) 99986-5273 (somente urgência) fizo@ifes.edu.br