Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIFACS – Universidade Salvador Prof. Carlos Helano Email:carloshelano@unifacs.br Introdução a Programação Algoritmos e Lógica de Programação – * – www.redes.unifacs.br – * – Objetivo Desenvolver a capacidade lógica para construção de algoritmos na resolução de problemas Apresentar uma visão geral do processo de programação – * – www.redes.unifacs.br – * – Bibliografia FARRER, Harry. Algoritmos estruturados. São Paulo LTC, 1999. FARRER, Harry. Pascal estruturado. 3 ed Rio de Janeiro LTC, 1989. FORBELLONE, André L. Lógica de programação. São Paulo: Makron Books, 1993. – * – www.redes.unifacs.br – * – Conteúdo Conceitos básicos; Algoritmos estruturados; Linguagens de programação; Estruturas de Controle Estruturas seqüenciais; Estruturas condicionais; Estruturas de repetição; – * – www.redes.unifacs.br – * – Conteúdo Estrutura de Dados Tipos de dados; Estruturas compostas de dados: vetores e matrizes; Comandos de Entrada e Saída de Dados – * – www.redes.unifacs.br – * – Conceitos Básicos Processamentos de Dados / Algoritmos o surgimento do PD se deu pela necessidade do homem em resolver problemas A tarefa do PD consiste em tomar certa informação, processá-la e obter o resultado desejado. – * – www.redes.unifacs.br – * – Conceitos Básicos Entrada : Conjunto de informações fornecidas ao computador Processamento : Transformação dos dados de entrada com o objetivo de obter a saída desejada. Saída : Resultado desejado. – * – www.redes.unifacs.br – * – Conceitos Básicos Unidade Central de Processamento Unidade de Entrada : (Periféricos), Teclado, Mouse, Vídeo Unidade de Saída : (Periféricos), Teclado, Mouse, Vídeo Memória : Armazena os dados Unidade Lógica e Aritmética : Unidade onde são feitos os cálculos Unidade de Controle : Controla a transferência dos dados – * – www.redes.unifacs.br – * – Conceitos Básicos Como utilizar o algoritmo para solução de problemas – * – www.redes.unifacs.br – * – Conceitos Básicos Situação Problema Calcular a média de 3 Provas. P1, P2, P3 1 – Identificar as Entradas P1, P2, P3 2 – Processamento (P1+P2+P3)/3 3 – Saída Média Final – * – www.redes.unifacs.br – * – Algoritmos estruturados Definição Algoritmo : Conjunto de comandos que, obedecidas as estruturas de controle, resultam numa sucessão finita de ações. (Visam um objetivo bem definido) – * – www.redes.unifacs.br – * – Algoritmos estruturados Estruturas de um Algoritmo 1 – Sequencial (Os Comandos serão executados um após o outro) 2 – Condicional (Os Comandos só serão executados se uma determinada condição for satisfeita) 3 – Repetitiva (Os Comandos serão executados enquanto uma determinada condição for satisfeita) – * – www.redes.unifacs.br – * – Algoritmos estruturados Regras para um bom Algoritmo 1 – Ações simples e bem definidas 2 – Seqüência ordenada de ações 3 – Seqüência finita de ações – * – www.redes.unifacs.br – * – Algoritmos estruturados Exemplo Prático Desejamos mover todos os discos para outra haste, porem só podemos movimentar um disco de cada vez e um disco maior nunca pode ser colocado sobre o disco menor. – * – www.redes.unifacs.br – * – Algoritmos estruturados Fluxograma Permite a representação gráfica de um algoritmo Permite que pessoas diversas participem do desenvolvimento. Ou melhor, pessoas de diversas áreas do conhecimento podem contribuir na construção do algoritmo. – * – www.redes.unifacs.br – * – Algoritmos estruturados Fluxograma (Símbolos) – * – www.redes.unifacs.br – * – Estruturas de Controle 1 – Seqüencial (Os Comandos executados um após o outro) – * – www.redes.unifacs.br – * – Estruturas de Controle 2 – Condicional (Os Comandos só serão executados se uma determinada condição for satisfeita) – * – www.redes.unifacs.br – * – Estruturas de Controle 1 – Repetição (Os Comandos só serão executados se uma determinada condição for satisfeita) – * – www.redes.unifacs.br – * – Algoritmos O Computador utiliza dois conceitos básicos para construir e interpretar algoritmos Estrutura de Dados (Manipulação das informações) Estrutura de Controle (Manipulação das ações) Seqüencial Condicional Repetição – * – www.redes.unifacs.br – * – Estrutura de Dados Tipos de dados a serem manipulados Numéricos: Inteiro (Ex: -1; -2; 0; 1; 2; 3) Real (Ex: 1,3; 3,0; 3,14; 8,1228) Não Numéricos Alfanuméricos (Ex: “CASA”; “Livro”; “18”) Literal Caracter String Lógicos (Booleano) (Ex: Verdadeiro; Falso) – * – www.redes.unifacs.br – * – Conceitos Constante: Representam valores constantes. Não variam no decorrer do algoritmo Variável: Representam informações que podem ser modificadas no decorrer do algoritmo. A variável possui dois elementos básicos: Conteúdo: Valor atual contido na variável Identificador: Nome dado a variável Variável também é definida como sendo o local na memória onde um determinado valor é armazenado – * – www.redes.unifacs.br – * – Conceitos Variável Conteúdo: Valor atual contido na variável Identificador: Nome dado a variável O Conteúdo da variável X é 10 – * – www.redes.unifacs.br – * – Conceitos Regras para identificadores: Pode ser formado por um ou mais caracteres sendo o 1º uma letra Não é permitido o uso de símbolos especiais (: , . ´ “ / ) . O caracter “_” é permitido O identificador deve representar de forma significativa o conteúdo desejado. – * – www.redes.unifacs.br – * – Conceitos Como manipular os dados ? Declaração de variáveis Operações Atribuição Aritméticas Relacionais Lógicas Comandos de Entrada e Saída Funções – * – www.redes.unifacs.br – * – Operações Declaração de variáveis Reservar espaço em memória para um determinado tipo de dado. Declare Nome da variável : Tipo Ex : Declare X, Y : Inteiro Declare Parcela: Real Declare Nome: Caracter ou Literal – * – www.redes.unifacs.br – * – Operações Atribuição Permite que se forneça um conteúdo a uma certa variável, onde a natureza deste conteúdo tem que ser compatível com o tipo da variável. Ex: X 7 Nome “Fulano” A B + C A (B + C) / 2 – * – www.redes.unifacs.br – * – Operações Operadores Aritméticos + - Soma e Subtração Ex : x = 5; y = 2 ; x +y = 7 ; x – y = 3 * / Multiplicação e Divisão Ex : x = 5; y = 2 ; x * y = 10 ; x / y = 2,5 ** Potenciação Ex : x = 3; y = 3 ; x ** y = 27 Div Quociente inteiro de uma divisão Ex: x = 9; y = 2 ; x Div y = 4 Mod Resto inteiro de uma divisão Ex: x = 9; y = 2 ; x Mod y = 1 – * – www.redes.unifacs.br – * – Operações Operadores Aritméticos Prioridades – * – www.redes.unifacs.br – * – Operações Operadores Relacionais > Maior que < Menor que >= Maior ou igual <= Menor ou igual a = Igual <> Diferente – * – www.redes.unifacs.br – * – Operações Operadores Lógicos Not (Não) Negação - Negação de uma proposição And (E) Conjunção - A Conjunção de duas proposições é verdadeira se somente se ambas são verdadeiras Or (Ou) Disjunção - A Disjunção de duas proposições é verdadeira se pelo menos uma for verdadeira – * – www.redes.unifacs.br – * – Operações Operadores Lógicos Tabela Verdade – * – www.redes.unifacs.br – * – Operações Prioridades entre as Operações – * – www.redes.unifacs.br – * – Comandos Comando de Entrada Leia(Variável) Comando de Saída Escreva(Variável) – * – www.redes.unifacs.br – * – Comandos Funções ABS(x) : Retorna o valor absoluto de x TRUNCA(x) : Retorna a parte inteira de um numero fracionário x ARREDONDA(x): Retorna um numero inteiro por meio de arredondamentoo número fracionário x QUOCIENTE(x, y) :Retorna o quociente inteiro da divisão de x por y RESTO(x, y) : Retorna o resto inteiro da divisão de x por y SQRT(x) : Retorna a raiz quadrada de x CONCATENAR(a,b) : Retorna a união das variáveis literais a e b – * – www.redes.unifacs.br – * – Exercícios Indique se os identificadores são válidos ou não. a) Valor e) JOSE b)3*4 f) N[1] c) XYZ g) NOME_ALUNO d) “NOTA” h) SALA-10 – * – www.redes.unifacs.br – * – Exercícios Indique se os comandos de atribuição são válidos ou não Sendo : SOMA, NUM, X ------ Variáveis numéricas NOME, COR, DIA ------ Variáveis literais TESTE, COD, TUDO ----- Variáveis lógicas a) NOME 5 f) X X + 1 b) SOMA NUM + 2 * X g) NUM “*ABC*” c) TUDO SOMA h) DIA “SEGUNDA” d) COR “PRETO” – 10 i) SOMA + 2 10 e) NUM 2**2 – * – www.redes.unifacs.br – * – Exercícios Sendo as seguintes variáveis numéricas : P = 2 ; Q = 3 ; R = 12 S = 4,5 . Responda qual o valor fornecido por cada expressão aritmética abaixo. a) 100 * QUOCIENTE(Q,P)+R b) P * RESTO(R,5) – Q/2 c) SQRT(R + P**2) + ARREDONDA(S) d) P + ARREDONDA(2,9 + TRUNCA(0,3 + S) * 2) – * – www.redes.unifacs.br – * – Exercícios Considerando as seguintes variáveis numéricas: A = 1 ; B = 4,5 ; C = 8 literais : NOME = “Tânia” ; COR = “Branco” lógicas : TESTE = Verdadeiro Determine os resultados obtidos das seguintes expressões lógicas a) A = 1 e TESTE b) NOME = “Pedro” ou COR <> “Branco” c) Não TESTE ou RESTO(B,2) = 0,5 d) C < 10 ou TESTE e COR = “Preto” e) TESTE e não TESTE – * – www.redes.unifacs.br – * – Resolução de Problemas – (1) 1 – Faça um algoritmo que receba o salário-base de um funcionário, calcule e mostre o salário a receber. Sabendo-se que esse funcionário tem gratificação de 5% sobre o salário-base e paga imposto de 7% também sobre o salário-base. 2 – Elabore um algoritmo que verifique se um dado número inteiro positivo é par ou impar. 3 – Faça um algoritmo que leia 2 valores numéricos e um símbolo. Caso o símbolo seja um dos relacionados abaixo efetue a operação correspondente com os valores. “+” “-” “*” “/” – * – www.redes.unifacs.br – * – Resolução de Problemas – (2) 1 – Faça um algoritmo que calcule a média ponderada de um aluno, a partir de suas 3 notas obtidas no curso. Sabendo-se que a primeira avaliação tem peso 2, a segunda tem peso 4,, a terceira tem peso 4. Mostre ao final a mensagem: “A MEDIA FINAL DE .........FOI .......”. Informar também se o aluno foi aprovado, Mostrando a mensagem “APROVADO”, caso a nota final seja maior ou igual a 7,0. 2 – Modifique a questão anterior para informar : APROVADO Caso a nota final seja entre 7 e 10 RECUPERAÇÃO Caso a nota final seja entre 5 e 7 REPROVADO Caso a nota final seja entre 0 e 5. 3 – Fazer um algoritmo que leia 3 valores inteiros e escreva o menor deles. – * – www.redes.unifacs.br – * – Resolução de Problemas – (3) 1 – A partir da leitura de um número indeterminado de valores não nulos, determinar e exibir quantos desses valores são positivos e quantos são negativos. Determinar também a soma dos positivos e a soma dos negativos. O último valor a ser lido é zero (0 é o flag). 2 – A partir da leitura de um numero indeterminado de notas, calcular e exibir a média aritmética dessas notas. O flag para indicar o fim das notas é –1. 3 – O mesmo exercício anterior fornecendo adicionalmente a maior e a menor nota lida. – * – www.redes.unifacs.br – * – Teste de Mesa Interprete o algoritmo abaixo utilizando o teste de mesa e descubra qual o seu objetivo – * – www.redes.unifacs.br Alguns pontos importantes para elaboração de um bom algoritmo. 1 - Identificação do problema : observar o objetivo do problema 2 - Identificação dos dados de entrada 3 - Identificação dos dados de saída 4 - Observar a declaração das variáveis 5 - Observar a organização e estrutura do algoritmo (Blocos de comandos) 6 - Observar se o objetivo foi atingido 7 - Elaboração do teste de mesa 8 - Elaboração do fluxograma – * – Check Points *
Compartilhar