Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROF. MSC. CASSIUS GOMES cassiusunit@yahoo.com.br Linguagem de Programação ► A finalidade básica de um computador é realizar a tarefa de processamento de dados, ou seja, receber dados por um dispositivo de entrada (por exemplo, teclado, mouse, planilha, etc.), realizar operações com estes dados e gerar uma resposta que será expressa em um dispositivo de saída (monitor, impressora, etc.) ► Quando desejamos criar ou desenvolver um software para realizar determinado tipo de processamento de dados, devemos escrever um programa ou vários programas interligados. ► Para que o computador compreenda e execute este programa, devemos escrevê-lo utilizando uma linguagem que tanto o computador quanto o criador de software entendam. ► E uma das principais etapas no desenvolvimento de um programa é o chamado algoritmo Linguagem de Programação ► Basicamente, para o desenvolvimento de um programa para resolução de um problema são necessárias as seguintes etapas: ANÁLISE ALGORITMO CODIFICAÇÃO Estuda-se o enunciado do problema para definir os dados de entrada, o processamento e os dados de saída. Ferramentas do tipo descrição narrativa, fluxograma, ou português estruturado para descrever o problema com suas soluções O algoritmo é transformado em códigos da linguagem de programação escolhida para se trabalhar Linguagem de Programação ► Portanto, um programa é a codificação de um algoritmo em uma linguagem de programação (ASCENCIO, 1999); Conceitos para algoritmo: ► Sequência de passos que visa atingir um objetivo bem definido (FORBELLONE, 1999); ► Descrição de uma sequência de passos que deve ser seguida para a realização de uma tarefa (ASCENCIO, 1999); ► Regras formais para a obtenção de um resultado ou da solução de um problema, englobando fórmulas de expressões aritméticas (MANZANO, 1997); Linguagem de Programação Executamos no dia a dia vários algoritmos: ► Algoritmo 1: Fazer uma ligação telefônica Passo 1: Retirar o telefone do gancho; Passo 2: Esperar o sinal telefônico; Passo 3: Discar o número; Passo 4: Falar ao telefone: Passo 5: Encerrar a conversa; Passo 6: Encerrar a ligação (telefone no gancho) ► Algoritmo 2: Somar três números reais Passo 1: Receber os três números; Passo 2: Somar os três números; Passo 3: Mostrar o resultado obtido Linguagem de Programação ► Algoritmo 3: Resolver, através do método da secante, o seguinte problema: Um tanque de comprimento 𝐿, tem uma secção transversal no formato de um semicírculo com raio 𝑟 conforme a figura abaixo. Quando cheio de água até uma distância ℎ do topo o volume 𝑉 da água é dado por: 𝑉 = 𝐿 0.5 𝜋𝑟2 − 𝑟2𝑎𝑟𝑐𝑠𝑒𝑛 ℎ 𝑟 − ℎ 𝑟2 − ℎ2 Supondo que 𝐿 = 10 𝑚, 𝑟 = 1 𝑚 e 𝑉 = 12.4 𝑚3, determine uma aproximação para o valor da profundidade da água no tanque. Linguagem de Programação ► Para a construção de um programa é necessário um algoritmo, e para a construção de um algoritmo utilizamos a LÓGICA. Linguagem de Programação https://youtu.be/YL2AzBYoPSs ATIVIDADE 01: Você tem dois baldes: um com capacidade para comportar 5 litros, e outro que comporta 3 litros. Você não possui outros recipientes e os baldes não possuem marcações de volume. QUESTÃO 1: Escreva um algoritmo para retirar exatamente sete litros de água de uma bica, com esses baldes. QUESTÃO 2: Com os mesmos baldes, escreva como fazer para retirar exatamente 4 litros de água da mesma bica. Linguagem de Programação Possível resposta da QUESTÃO 01: ► Passo 1: Encher o balde de 5 litros; ► Passo 2: Despejar a água do balde de 5 litros no balde de 3 litros. Assim, no balde de 5 litros restam 2 litros. ► Passo 3: Jogar fora a água do balde de 3 litros; ► Passo 4: Despejar no balde de 3 litros, os 2 litros que estão no balde de 5 litros. ► Passo 5: Encher novamente o balde de 5 litros. ► Fim do algoritmo. Note que agora temos 5 litros no balde de 5 e 2 litros de água no balde de 3 litros. Linguagem de Programação Para a construção de qualquer tipo de algoritmo é necessário: ► Compreender completamente o problema a ser resolvido; ► Definir os dados de entrada, ou seja, quais dados serão fornecidos e quais objetos fazem parte do problema; ► Definir quais cálculos serão efetuados e quais as restrições para esses cálculos. O processamento é responsável pela transformação dos dados de entrada em dados de saída; ► Definir os dados de saída, ou seja, quais os tipos de dados esperados depois do processamento; ► Construir o algoritmo (escolher um dos tipos); ► Testar o algoritmo através de simulações. Método para a construção de algoritmos ► Não se aprende a construir algoritmos copiando algoritmos já prontos; ► Uma boa técnica para construção de algoritmos é construindo e testando os mesmos; ► O algoritmo é “apenas” uma sugestão de caminho para a solução do problema. ► Um mesmo problema pode ser resolvido com o “auxílio” de diferentes algoritmos ALGUMAS SUGESTÕES: Os tipos mais utilizados de algoritmos são: ► DESCRIÇÃO NARRATIVA: escrever o algoritmo utilizando uma linguagem natural (por exemplo, a língua portuguesa). Vantagem: não é necessário aprender nenhum conceito novo, pois, uma língua natural, neste ponto já é bem conhecida Desvantagem: Neste caso, abrimos espaço para várias interpretações, o que posteriormente dificultará a transcrição desse algoritmo para o programa; TIPOS DE ALGORITMOS ► FLUXOGRAMA (DIAGRAMA DE FLUXO): Consiste em analisar o problema e escrever o algoritmo utilizando símbolos gráficos predefinidos. Vantagem: o entendimento de elementos gráficos é mais simples que o entendimento de textos; Desvantagem: é necessário aprender a simbologia dos fluxogramas. O algoritmo resultante não apresenta muitos detalhes, dificultando a transcrição para um programa TIPOS DE ALGORITMOS Conjuntos de símbolos utilizados no fluxograma TIPOS DE ALGORITMOS TIPOS DE ALGORITMOS INÍCIO N1, N2 𝑀 = 4 ∗ 𝑁1 + 6 ∗ 𝑁2 10 𝑀 ≥ 6 APROVADO FIM REPROVADO SIM NÃO ► Para representação de algoritmos através de fluxogramas, existem também os chamados diagramas de Nassi-Shneirderman (Diagrama de Chapin). Por exemplo: A ideia básica deste diagrama é representar as ações de um algoritmo dentro de um único retângulo, subdividindo-o em retângulos menores, que representam os diferentes blocos de sequência de ações do algoritmo. TIPOS DE ALGORITMOS ► PSEUDOCÓDIGO OU PORTUGOL OU PORTUGUÊS ESTRUTURADO: Consiste em analisar o enunciado do problema e escrever por meio de regras predefinidas, os passos a serem seguidos para sua resolução. Vantagem: a passagem do algoritmo para qualquer linguagem de programação é quase imediata; Desvantagem: é necessário aprender as regras do pseudocódigo ► O PORTUGOL, é uma forma especial de linguagem bem mais restrita que a Língua Portuguesa e com significados bem definidos para todos os termos utilizados nas instruções (comandos). TIPOS DE ALGORITMOS ► O Português Estruturado na verdade é uma simplificação extrema da língua portuguesa, limitada a pouquíssimas palavras e estruturas que têm significado pré-definido, pois deve-se seguir um padrão. Emprega uma linguagem intermediária entre a linguagem natural e uma linguagem de programação, para descrever os algoritmos. TIPOS DE ALGORITMOS EXEMPLO DO “PORTUGOL” ATRAVÉS DO VISUALG TIPOS DE ALGORITMOS EXEMPLO 1: Mostrar o resultado da divisão do número real N1 pelo número real N2. Algoritmo em descrição narrativa ► Passo 1: Receber os números reais N1 e N2; ► Passo 2: Se N2 for igual azero, não poderá ser feita a divisão e assim temos o fim do algoritmo senão vá para o passo 3; ► Passo 3: Calcular N1/N2. EXEMPLOS DE ALGORITMOS Algoritmo em fluxograma EXEMPLOS DE ALGORITMOS N1, N2 𝐷 = 𝑁1 𝑁2 INÍCIO 𝑁2 = 0 D Não é possível dividir FIM Algoritmo em portugol (pseudocódigo) EXEMPLOS DE ALGORITMOS EXEMPLO 2: Faça os algoritmos em fluxograma e pseudocódigo para calcular o novo salário de cada funcionário de uma empresa. Sabe-se que os funcionários que recebem atualmente, salário de até R$ 1.000,00 terão aumento de 20% e os demais terão aumento de 10%. EXEMPLOS DE ALGORITMOS Algoritmo em fluxograma EXEMPLOS DE ALGORITMOS SAL_ATUAL 𝑁𝑆𝐴𝐿 = 𝑆𝐴𝐿𝐴𝑇𝑈𝐴𝐿 ∗ 1.10 INÍCIO 𝑺𝑨𝑳_𝑨𝑻𝑼𝑨𝑳 ≤ 𝟏𝟎𝟎𝟎 𝑵𝑺𝑨𝑳 FIM 𝑁𝑆𝐴𝐿 = 𝑆𝐴𝐿𝐴𝑇𝑈𝐴𝐿 ∗ 1.20 𝑵𝑺𝑨𝑳 SIM NÃO EXEMPLOS DE ALGORITMOS Algoritmo em pseudocódigo ► 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. ► As variáveis são referenciadas através de um nome (identificador) criado por você durante o desenvolvimento do algoritmo. Exemplos de nomes de variáveis: produto, idade, a, x, nota1, peso, preço, etc. VARIÁVEL ► Uma variável armazena 'apenas' um conteúdo de cada vez. Uma variável pode ser vista como uma caixa com um rótulo (nome) colado nela, que em um dado momento guarda um determinado objeto. O conteúdo desta caixa não é algo fixo, permanente. ► No exemplo abaixo, a caixa (variável) rotulada como FATOR, contém o valor 5. Em outro momento essa caixa poderá conter qualquer outro valor numérico. Entretanto, a cada instante, ela conterá um, e somente um, valor. VARIÁVEL Os tipos de dados utilizados em algoritmos são: ► NUMÉRICOS: Dividem-se em dois grupos: inteiros e reais. ► LÓGICOS: são também chamados de dados Booleanos (Álgebra d Boole), e podem assumir os valores verdadeiro ou falso. ► LITERAIS OU CARACTERES: São dados formados por um único caractere ou por uma cadeia de caracteres. Estes caracteres podem ser letras maiúsculas, minúsculas, números (não podem ser utilizados para cálculos) e os caracteres especiais (&,#,@,?,...). OBS: Um caractere é representado entre apóstrofos e um conjunto de caracteres é representado entre aspas. TIPOS DE DADOS EXEMPLO: Informações relativas a um funcionário de uma empresa: TIPOS DE DADOS Nome José da Silva Idade 34 Sexo M Salário R$7.500,00 ► São os nomes das variáveis, dos programas, das constantes, das rotinas, das unidades, etc. As regras básicas para a formação dos identificadores são: os caracteres que você pode utilizar na formação dos identificadores são: A. os números; B. o caractere sublinhado; C. as letras maiúsculas e minúsculas; o primeiro caractere deve ser sempre uma letra ou o caractere sublinhado; não são permitidos espaços em branco e caracteres especiais (@, $, +, –, %, !); não podemos usar palavras reservadas, ou seja, palavras que pertencem a uma linguagem de programação. IDENTIFICADORES Exemplos de identificadores válidos IDENTIFICADORES A nota NOTA X4 A32 nota_1 IDADE 5B Começa com número E 5 Contém espaço em branco x-y Contém caractere especial prova 2n Contém espaço em branco case Palavra reservada Exemplos de identificadores NÃO válidos ► 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. ATRIBUIÇÃO ATENÇÃO: Nas atribuições é a parte esquerda que irá receber algo. Assim, no lado esquerdo não pode haver nada além da variável. Assim, por exemplo, a atribuição: 𝑛𝑜𝑡𝑎_1 + 𝑛𝑜𝑡𝑎_2 ⟵ 𝑣𝑎𝑙𝑜𝑟 não é válida !!! ATRIBUIÇÃO ► Conjunto de variáveis e/ou valores separados por caracteres especiais, que indicam as operações que devem ser executadas. ► As operações básicas utilizadas em uma expressão podem ser classificadas em: Aritméticas Relacionais Lógicas EXPRESSÕES ► OPERADORES ARITMÉTICOS: EXPRESSÕES Operador Significado Exemplo Tipos de Operandos + Adição 𝑎 + 𝑏 Reais ou inteiros − Subtração 𝑎 − 𝑏 Reais ou inteiros ∗ Multiplicação 𝑎 ∗ 𝑏 Reais ou inteiros / Divisão real 𝑎 / 𝑏 Reais ou inteiros 𝐷𝐼𝑉 Divisão inteira 𝑎 𝐷𝐼𝑉 𝑏 Inteiros 𝑅𝐸𝑆𝑇𝑂 Resto da divisão inteira 𝑎 𝑅𝐸𝑆𝑇𝑂 𝑏 Inteiros ∗∗ ou ^ Exponenciação 𝑎 ∗∗ 𝑏 ou 𝑎^𝑏 Reais ou inteiros ► OPERADORES ARITMÉTICOS NO VISUALG EXPRESSÕES Hierarquia das Operações Aritméticas ► Dentro de uma mesma operação aritmética podem aparecer várias operações. Estas operações serão executadas de acordo com a seguinte ordem: (1) O que estiver entre parênteses; (2) Exponenciação; (3) Multiplicação, divisão real, divisão inteira, ou resto da divisão inteira; (4) Adição ou subtração; EXPRESSÕES IMPORTANTE: Quando existem duas ou mais operações da mesma hierarquia, estas são executadas na ordem em que aparecem na expressão, da esquerda para direita. Exemplo: Considere a expressão: 𝑦 = 2 + 𝑎 𝑏 − 3 − 2𝑥 + 𝑥3 O comando no algoritmo “portugol” é dado por: 𝑦 ⟵ 2 + 𝑎 𝑏 − 3 − 2 ∗ 𝑥 + 𝑥^3 OBS: Neste caso, dizemos que a expressão aritmética foi horizontalizada. EXPRESSÕES ► OPERADORES RELACIONAIS: EXPRESSÕES OPERADOR SIGNIFICADO EXEMPLO > Maior que Idade >12 > = Maior ou igual que Num_dep>=2.5 < Menor que Nota < 5.99 < = Menor ou igual que W <=3.55 = Igual que Nome=‘antonio’ <> Diferente de Det <>0 ► OPERADORES LÓGICOS: Vamos considerar apenas os operadores lógicos: E, OU, NÃO, XOU Os operadores lógicos Ou e E são aplicados sempre a dois operandos. O operador lógico NÃO é aplicado a um único operando Os operandos podem ser expressões desde que tenham como resultado um valor lógico (verdadeiro ou falso) EXPRESSÕES ► OPERADORES LÓGICOS: Exemplos: Foi_aprovado ⟵ (media >= 6.0) E (frequência >= 0.75) E_contribuinte ⟵ (salario > 2800.00) OU (idade < 75) Tem_sol ⟵ NÃO esta_nublado EXPRESSÕES OPERAÇÃO OPERADOR Negação NÃO Conjunção E Disjunção (não-exclusiva) OU Disjunção (exclusiva) XOU ► De uma forma geral, os resultados possíveis para os operadores lógicos podem ser visto na chamada TABELA VERDADE: EXPRESSÕES Expressão p1 Expressão p2 p1 E p2 p1 OU p2 NÃO p1 p1 XOU p2 𝐹 𝐹 𝐹 𝐹 𝑉 𝐹 𝐹 𝑉 𝐹 𝑉 𝑉 𝑉 𝑉 𝐹 𝐹 𝑉 𝐹 𝑉 𝑉 𝑉 𝑉 𝑉 𝐹 𝐹 ► Exemplos de testes utilizando operadores lógicos: EXPRESSÕES ► Um comando de entrada (leitura) tem por função transferir dados ao meio externo para a memória de trabalho do computador. Assim, por exemplo, quando executamos o comando: leia numero_alunos o computador fica aguardando um valor a ser digitado que será armazenado na variável numero_alunos COMANDOS DE ENTRADA E SAÍDA ► Um comando de saída é utilizado quando necessitamos apresentar valores ao meio externo. Por exemplo, se quisermos que o computador mostre o que esta armazenado na variável soma, executamos o comando: escreva soma ► Um comando escreva pode especificar a saída de vários valores. Por exemplo, escreva(“nome”, nome, “idade:”,idade) COMANDOS DE ENTRADA E SAÍDA QUESTÃO 1: Escreva um algoritmo atravésdo fluxograma e do pseudocódigo (portugol) que recebe 3 valores reais, e calcula a média aritmética entre estes valores. QUESTÃO 2: Escreva um algoritmo através do fluxograma e do pseudocódigo (portugol) que recebe três notas, e seus respectivos pesos e calcula e apresenta a média ponderada entre estas notas. QUESTÃO 3: Escreva um algoritmo através do fluxograma e do pseudocódigo (portugol) que recebe o salário do funcionário, calcula e mostra o novo salário sabendo que este teve um aumento de 25%. Atividades Práticas
Compartilhar