Prévia do material em texto
ALGORITMOS E PROGRAMAÇÃO DE COMPUTADORES UIA 1 | INTRODUÇÃO À LINGUAGEM DE PROGRAMAÇÃO E ALGORITMOS VERSÃO PARA IMPRESSÃO Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 2 Este material é destinado exclusivamente aos alunos e professores do Centro Universitário IESB, contém informações e conteúdos protegidos e cuja divulgação é proibida por lei. O uso e/ou reprodução total ou parcial não autorizado deste conteúdo é proibido e está sujeito às penalidades cabíveis, civil e criminalmente. Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 3 SUMÁRIO Introdução .................................................................................................................................. 4 Aula 01 | Linguagem de Programação, Dados e Proposições ....................................................... 5 1. Linguagem de Programação .............................................................................................................. 5 2. Dados ................................................................................................................................................ 6 2.1 Variáveis e Constantes ......................................................................................................................... 7 3. Proposições ....................................................................................................................................... 7 Aula 02 | Algoritmos (Ações) ....................................................................................................... 9 4. Ações ................................................................................................................................................ 9 Aula 03 | Algoritmos (Estruturas: Sequência; Seleção; Repetição) ............................................. 15 5. Estrutura de Sequência ................................................................................................................... 15 6. Estrutura de Seleção ....................................................................................................................... 15 7. Estrutura de Repetição .................................................................................................................... 18 Aula 04 | Algoritmos (Leitura de um Algoritmo) ........................................................................ 19 Referências ............................................................................................................................... 29 Glossário ................................................................................................................................... 29 Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 4 INTRODUÇÃO A disciplina de "Algoritmos e Programação de Computadores” é uma das mais importantes para os alunos que ingressam em um curso superior de Tecnologia da Informação e Comunicação (TIC), pois os conhecimentos adquiridos nela vão influenciar diretamente o desempenho das demais disciplinas correlatas durante o restante do curso. O objetivo principal dessa disciplina é garantir que o discente possa desenvolver um algoritmo, que é uma sequência finita de ações para resolver um problema estabelecido. Essa sequência finita de ações será traduzida em um conjunto de instruções de uma linguagem de programação (o programa ou software) que o computador executará para a solução do problema. O processo de desenvolvimento do algoritmo e a sua tradução para uma linguagem de programação é denominado de construção de programa de computador e é uma das principais tarefas dos profissionais da área de Tecnologia da Informação (TI). No entanto, é importante entender que o estudo de Lógica de Programação não pode ser restrita ao estudo de uma linguagem de programação que é a ferramenta de concretização do produto de software, mas deve-se preocupar com o desenvolvimento das seguintes habilidades: § Conhecimento dos conceitos básicos que estejam relacionadas com algoritmos. § Entendimento das técnicas básicas de construção de algoritmos. § Análise de algoritmos. § Entendimento dos problemas de acordo com a sua complexidade. As habilidades acima listadas serão adquiridas por meio do conhecimento proveniente de estudos e da destreza proveniente da prática que virá com o tempo e com a prática. Bons estudos! Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 5 n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n Assista ao vídeo de abertura da UIA 1, disponível no link a seguir. http://tinyurl.com/ktcbgw2 n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n AULA 01 | LINGUAGEM DE PROGRAMAÇÃO, DADOS E PROPOSIÇÕES Nesta aula, começaremos estudando linguagens de programação, dados (variáveis e constantes) e proposições. Trata-se de uma introdução ao mundo e à área da Linguagem de Programação. Fique atento e boa aula! Um algoritmo é uma sequência finita de ações a ser traduzida em um conjunto de instruções de uma linguagem de programação (o programa ou software) que o computador executará para a solução do problema. Esta unidade tem como assunto a "Linguagem de Programação". 1. LINGUAGEM DE PROGRAMAÇÃO A finalidade de um computador é receber, manipular e armazenar dados, por meio de programa (ASCENCIO; CAMPOS, 2007). O programa de computador (ou, simplesmente, software) contém um conjunto de instruções que objetivam tratar os dados para atingir um objetivo preestabelecido (SOUZA et al., 2012). Esse programa é desenvolvido em uma linguagem de programação. O resultado desse desenvolvimento é denominado de código fonte, pois ele é a origem para a transformação do mesmo em uma linguagem entendível pelo computador. Para que o código-fonte possa ser entendido pelo computador, é necessário sua transformação, que depende da linguagem escolhida. No processo de transformação, há uma avaliação da sintaxe de cada uma das instruções do programa e o resultado é um código que é “entendível” pelo computador. Os processos de transformação de um código fonte são a compilação-linkeditação e a interpretação (CAPRON; JHONSON, 2004; NORTON, 1996). No processo de interpretação, há uma validação da sintaxe do código-fonte, e, caso não apresente erro, inicia-se a execução do programa. Na execução, cada uma das instruções são validadas semanticamente, e, em caso de erro, o programa é interrompido. Assim como no processo de interpretação, no processo de compilação, o programa é, primeiramente, avaliado sintaticamente. Não havendo erro, as instruções são traduzidas em um código intermediário e Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 6 não executável (o código-objeto). Este código-objeto é transformado por um programa denominado linkeditor em um código executável. Para iniciar a execução do programa, é necessário apenas acionar o programa executável gerado pelo linkeditor. As principais diferenças entre o processo de interpretação e compilação-linkedição são, de acordocom Capron e Jhonson (2004) e Norton (1996): 1. Para execução do programa interpretado é necessário fazer uma avaliação da sintaxe antes para a execução depois, enquanto no compilado-linkeditado, é só executar o programa. 2. O programa executável, o originado do processo compilado-linkeditado, para ser executado, requer APENAS que o computador tenha o mesmo Sistema Operacional no qual foi gerado, enquanto o interpretado, requer o interpretador também. Em ambos os processos, o interpretado e o compilado-linkeditado, a avaliação sintática corresponde à verificação da existência ou não dos componentes, obrigatórios ou facultativos de cada uma das instruções (CAMPOS, 2009 a 2013). Já na avaliação semântica, é verificado a coerência entre as instruções e os seus complementos obrigatórios ou facultativos (CAMPOS, 2009 a 2013). 2. DADOS Todo e qualquer programa, independentemente do seu objetivo, faz tratamento de dados (a entrada) para gerar informações (a saída), de acordo com as instruções contidas nele. O dado a ser trabalhado pelos programas é qualquer elemento identificado em sua forma bruta que, por si só, não conduz a uma compreensão de determinados fatos e situações. Ele representa eventos ocorridos na empresa ou circunstâncias físicas. A partir dos dados é que é possível gerar ou criar informação, que é o dado configurado de forma adequada ao entendimento e à utilização do ser humano. Como os dados são imprescindíveis para a geração de informação e são eles que serão armazenados nos sistemas de informação de uma organização, torna-se necessário conhecer e entender os tipos de básicos de dados, que são dois: o numérico e o não numérico. DADO NUMÉRICO é a representação de números sem a necessidade de utilização de uma tabela de conversão, normalmente, representado por um ou dois bytes1. Os dados numériocas dividem-se em dois grupos (ASCENCIO; CAMPOS, 2007; FORBELONE; EBERSPÄCHER, 2005): os inteiros e os decimais. 1 é o agrupamento de 8 bits (CAPRON e JOHNSON, 2004). Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 7 Qualquer número do conjunto dos números naturais (N) é um número inteiro, ou seja, qualquer número negativo (< 0) ou neutro (= 0) ou positivo (> 0) que não possua a parte decimal. São exemplos de número inteiros: -300; -2; 0; 9; 126. Um número decimal, também denominado de ponto flutuante, é aquele que possui, além da parte inteira, a parte decimal (utiliza-se a vírgula com delimitador da casa decimal), ou seja, pertence ao conjunto dos números reais (R). São exemplos de números decimais: -300,0; -2,0; -1,85; -0,3; 1,125; 78,4; 2158,387. DADO NÃO NUMÉRICO é um dado que não é numérico puro e é composto de uma sequência de caracteres (1 ou mais), sendo cada um dos caracteres representados em um byte. São exemplos de dados não-numéricos: "123"; "AB2"; "EDUARDO"; "44,33"; "@33#ABC". Normalmente, quando se deseja representar um conteúdo numérico como não numérico, escrevesse este conteúdo entre aspas ("123" ou "44,33"). Cada um dos caracteres é convertido de acordo com um padrão internacional adotado para a codificação de caracteres. A tabela de conversão mais utilizada, mas que não é a única, é a ASCII (American Standard Code for Information Interchange). Não deixe de observar a tabela de conversão ASCII acessando os links: http://tinyurl.com/ai4d http://tinyurl.com/4b4jee 2.1 VARIÁVEIS E CONSTANTES Os dados de um sistema são armazenados na memória2 do computador, independentemente de serem numéricos ou não numéricos. Eles podem ser: VARIÁVEIS Quando a cada ciclo de processamento do programa, podem ter os seus conteúdos alterados, mas um conteúdo a cada instante; CONSTANTES Quando os seus conteúdos são inalterado durante todos os ciclos de processamento do programa. Tanto a variável como a constante podem ser numéricas ou não numéricas. 3. PROPOSIÇÕES A proposição é toda e qualquer afirmação verbal da qual só se possa dizer que é falsa ou verdadeira, nunca ambos (FARRER et al., 1985). 2 é a área do computador para guardar os programas e os dados que serão utilizados pelos programas temporariamente, ou seja, enquanto o computador estiver ligado (NORTON, 1996; CAPRON e JOHNSON, 2004). Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 8 As sentenças abaixo são consideradas proposições, pois é possível afirmar ou que é verdadeiro ou que é falso: § "Ontem à noite choveu" § "A cor dos olhos de Mariana é verde" § "Santa Catarina tem mais descendentes de europeus no Brasil" As sentenças abaixo não são consideradas proposições, pois é IMPOSSÍVEL afirmar que são verdadeiras ou falsas: § "Onde José estava ontem à noite?" § "De onde Maria chegou?" Em um programa, a proposição representa uma relação possível entre dois elementos (duas variáveis ou uma variável e um conteúdo ou dois conteúdos) e está contida em uma expressão lógica. Para estabelecer as relações possíveis utiliza-se um dos seguintes operadores lógicos: = (Igual a) > (Maior que) ≥ (Maior ou igual) < (Menor que) ≤ (Menor ou igual) ≠ (Diferente) Quando a expressão lógica contém uma única proposição, ela é denominada de simples. Caso contrário, é dita composta. Uma expressão lógica composta requer a utilização de um conectivo entre pares de proposições, sendo os principais: § o "E", que indica que o resultado da expressão lógica só será verdadeira, se ambas as proposições forem verdadeiras, também. Proposição 1 Proposição 2 Resultado VERDADEIRO VERDADEIRO VERDADEIRO VERDADEIRO FALSO FALSO FALSO VERDADEIRO FALSO FALSO FALSO FALSO § o "OU", que indica que o resultado da expressão lógica só será falso, se ambas as proposições forem falsas. Proposição 1 Proposição 2 Resultado FALSO FALSO FALSO Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 9 VERDADEIRO FALSO VERDADEIRO FALSO VERDADEIRO VERDADEIRO VERDADEIRO VERDADEIRO VERDADEIRO Há, ainda, um outro conectivo, "NÃO" (de negação), cujo objetivo é inverter o resultado de uma proposição (simples ou composta), ou seja, se a mesma for verdadeira, o resultado final será falso: Proposição Nageção Resultado VERDADEIRO NÃO (VERDADEIRO) FALSO FALSO NÃO (FALSO) VERDADEIRO O que achou dessa primeira aula? Começamos aqui a estudar importantes pressupostos na área. Siga em frente e lembre-‐se, qualquer dúvida, retorne ao conteúdo ou busque esclarecimentos no Fórum de Dúvidas. Até breve! AULA 02 | ALGORITMOS (AÇÕES) Olá! Esta aula é dedicada aos algoritmos. Veremos aqui seu conceito e alguns exemplos de seu uso na Linguagem de Programação. Boa aula! O algoritmo é uma sequência finita de ações para resolver um problema estabelecido (FORBELONE; EBERSPÄCHER, 2005; FARRER et al., 1985). As ações devem ser claras e precisas (FARRER et al., 1985). A ação, que é o acontecimentoque, a partir do estado inicial, após um período de tempo finito, produzirá um estado final previsível e bem definido (FARRER et al., 1985). As ações sempre são executadas, em ordem, uma após a outra, de cima para baixo. Para a representação do algoritmo, será utilizada neste material o "pseudocódigo", que é uma linguagem com elementos da língua portuguesa (as ações), cuja principal vantagem é a possibilidade de codificá-lo em uma linguagem de programação mais rapidamente, pois há, na maioria dos casos, uma relação direta entre a ação do pseudocódigo com a instrução da linguagem de programação (ASCENCIO; CAMPOS, 2007). 4. AÇÕES Para Farrer et al. (1985), as ações contidas no algoritmo devem ser claras e precisas, e, neste, utilizaremos a proposta de Campos (2009 a 2013), ou seja, as ações que serão utilizadas na construção de um algoritmo são: INICIAR; TERMINAR; DEFINIR; ATRIBUIR; RECEBER; APRESENTAR; LER; GRAVAR; ABRIR; FECHAR. Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 10 Das ações, a INICIAR, que indica o início (e é ÚNICA), e a TERMINAR, que indica o fim (pode haver várias), são as ÚNICAS que devem existir em todo e qualquer algoritmo. Enquanto as demais ações existem somente quando necessário (CAMPOS, 2009 a 2013). Caso no algoritmo seja necessário utilizar variáveis para armazenamento de dados, a ação DEFINIR deve ser utilizada e possui a seguinte sintaxe: DEFINIR (<lista com o nome das variáveis, separadas por vírgulas>) <tipo de dado> § Cada uma das variáveis tem um nome que atende as seguintes regras: a. Pode conter letras (A a Z), algarismo (0 a 9) e o caractere especial sublinhado (_). b. Não pode conter espaços em branco e nem outros caracteres especiais, além do sublinhado. c. O primeiro caractere deve ser, obrigatoriamente, uma letra. d. O nome é único. e. E não pode ser uma palavra reservada3 e nem uma das ações. § O tipo de dado pode ser inteiro ou decimal ou caractere (quando não numérico). Não há necessidade de determinar o tamanho, mas na codificação do programa relativo ao algoritmo será necessário, dependendo da linguagem de programação a ser utilizada. Uma variável, por definição, terá o seu valor “default”, ou seja, se for numérica, será igual a zero. Caso seja CARACTER, será igual ao caractere branco “ “. Exemplos: a. Definindo as variáveis VALOR e NOTA como decimais: DEFINIR (VALOR, NOTA) DECIMAL b. Definindo as variáveis NÚMERO como inteiro: DEFINIR (NÚMERO) INTEIRO c. Definindo a variável NOME como caractere: DEFINIR (NOME) CARACTERE Para as operações de atribuição de conteúdo a uma variável seja ela um número ou uma cadeia de caracteres ou uma expressão aritmética utiliza-se a ação ATRIBUIR que tem a seguinte sintaxe: ATRIBUIR <variável a receber o conteúdo> = <conteúdo a ser atribuído a variável> Exemplos: De atribuição de conteúdo: 3 É uma palavra que representa uma ação, um conectivo, a estrutura de controle ou a estrutura de repetição, que pode ser utilizada num algoritmo (CAMPOS, 2009 a 2013). Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 11 a. Atribuindo o número 4,12 à variável VALOR: ATRIBUIR VALOR = 4,12 b. Atribuindo -3 à variável NÚMERO: ATRIBUIR NÚMERO = -3 c. Atribuindo a cadeia de caracteres “MARIA” à variável NOME: ATRIBUIR NOME = “MARIA” De atribuição do resultado de uma expressão aritmética: a. Atribuindo o resultado da expressão aritmética 4 vezes VALOR -3 à variável NOTA: ATRIBUIR NOTA = 4 * VALOR -3 b. Atribuindo o resultado do dobro do conteúdo atual da variável VALOR a ela mesma: ATRIBUIR VALOR = VALOR * 2 c. Atribuindo o resultado da soma de 1 ao conteúdo atual da variável CONTADOR: ATRIBUIR CONTADOR = CONTADOR + 1 OBSERVAÇÃO: Os seguintes operadores matemáticos são permitidos em uma expressão aritmética: + (adição) A ordem de execução dos operadores matemáticos é: § 1º, a multiplicação ou divisão; e § 2º, adição ou subtração. § No caso de dois operadores da mesma ordem (por exemplo, multiplicação e divisão), o 1º a ser executado é o mais à esquerda. - (subtração) * (multiplicação) / (divisão) Quando for necessário a recepção dos dados, via teclado, deve-se utilizar a ação RECEBER. A sua sintaxe é: RECEBER (<lista como nome das variáveis, separados por vírgulas>) O importante é lembrar que cada uma das variáveis da lista deve ter sido definida, anteriormente, pela ação DEFINIR. Exemplos: a. Recebendo um conteúdo que será armazenado na variável NÚMERO: RECEBER (NÚMERO) Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 12 b. Recebendo um conteúdo que será armazenado na variável NOTA: RECEBER (NOTA) c. Recebendo dois conteúdos que serão armazenados, respectivamente, nas variáveis NÚMERO e VALOR: RECEBER (NÚMERO, VALOR) d. Recebendo um conteúdo que será armazenado na variável NOME: RECEBER (NOME) OBSERVAÇÃO: § Em uma única ação RECEBER pode conter variáveis de tipos de dados diferentes, desde que os mesmos sejam informados de uma única vez. § Caso seja necessário receber cada um dos dados em momentos distintos, no algoritmo, será necessário várias ações RECEBER, uma em cada um dos momentos. Para apresentar dados na tela do usuário utiliza-se a ação APRESENTAR e a sua sintaxe é: APRESENTAR (<lista com o nome de todas as variáveis e/ou conjunto de caracteres – devem estar entre aspas – e/ou um número, separados por vírgulas>) Exemplos: a. Apresentando o conjunto de caracteres “APROVADO": APRESENTAR (“APROVADO”) b. Apresentando o número 6: APRESENTAR (6) c. Apresentando o conteúdo da variável NÚMERO: APRESENTAR (NÚMERO) d. Apresentando o conteúdo da variável NOME e NOTA: APRESENTAR (NOME, NOTA) Nos algoritmos que utilizam arquivos é necessário, primeiramente, ter conhecimento do nome do arquivo e do tipo de processamento que será executado no mesmo (apenas leitura, se os dados dos registros são recuperados e armazenados em uma ou mais variáveis na memória; apenas gravação, se os dados armazenados em uma ou mais variáveis em memória serão gravados em um dos registros do arquivo; ou para leitura e gravação, ao mesmo tempo). Com a identificação do tipo de utilização, através da ação ABRIR é que o arquivo é liberado para ser utilizado pelo algoritmo e a sua sintaxe é: Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 13 ABRIR (“<nome do arquivo – entre aspas –>”, <tipo de utilização>) Uma ação ABRIR só pode ser utilizada para um arquivo, ou seja, para cada arquivo a ser utilizado no algoritmo deverá existir uma ação ABRIR. Ela indica que o algoritmo em questão é o que tem o poder, até a sua conclusão de manipular (leitura e/ou gravação) os registros do arquivo. § Os tipos possíveis de utilização da ação ABRIR são: § ENTRADA, quando for para leitura apenas; § SAÍDA, quando for, apenas para a gravação; e § ENTRADA/SAÍDA, quando for para leitura e gravação ao mesmo tempo. OBSERVAÇÃO: § Para facilitar a memorização, lembre-se da sigla LEGS (LER -> ABRIR é ENTRADA; GRAVAR -> ABRIR é SAÍDA). Exemplos: a. Abrindo o arquivo CLIENTE para leitura: ABRIR (“CLIENTE”, ENTRADA) b. Abrindo o arquivo NOTA para gravação: ABRIR (“NOTA”, SAÍDA) c. Abrindo o arquivo COMPRA para leitura e gravação:ABRIR (“COMPRA”, ENTRADA/SAÍDA) Se um arquivo tiver sido aberto para leitura (tipo igual a ENTRADA), somente poderá ser referenciado pela ação LER cuja sintaxe é: LER (“<nome do arquivo – entre aspas –>”, <lista com os nomes das variáveis da memória>) Exemplos: a. Leitura do registro com os campos CODIGO e NOME do arquivo ALUNO: LER (“ALUNO”, CÓDIGO, NOME) b. Leitura do registro com o campo VALOR do arquivo COMPRA: LER (“COMPRA”, VALOR) A ação LER, até aqui apresentada, é de uma leitura sequencial (do 1º registro disponível – iniciando do 1º registro do arquivo – após o último recuperado ou então, da indicação de que não há mais registros). Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 14 Para a verificação da inexistência de mais registros a serem lidos, utilizamos a expressão lógica (EOF) (que corresponde a End of File4). Quando o tipo de utilização do arquivo for SAÍDA, só poderá ser utilizado a ação GRAVAR, cuja sintaxe é: GRAVAR (“<nome do arquivo – entre aspas –>”, <lista com os nomes das variáveis de memória ou um conjunto de caracteres entre aspas ou um número>) Exemplos: a. Gravando o conteúdo das variáveis NOME e NOTA no arquivo ALUNO: GRAVAR (“ALUNO”, NOME, NOTA) b. Gravando o conteúdo da variável NUMERO no arquivo NUMERO: GRAVAR (“NÚMERO”, NÚMERO) c. Gravando o conjunto de caracteres “UM TEXTO” no arquivo LIVRO: GRAVAR (“LIVRO”, “UM TEXTO”) d. Gravando o número 334 no arquivo NUMERO: GRAVAR (“NÚMERO”, 334) Todo arquivo após terminar a sua utilização, normalmente, ao final do algoritmo (antes da ação TERMINAR), deve ser fechado. Essa ação tem o objetivo de indicar o término da utilização do arquivo e deixá-lo disponível para outro algoritmo. A ação utilizada para indicar a conclusão da utilização do arquivo é a FECHAR, cuja sintaxe é: FECHAR (“<nome do arquivo – entre aspas –>”) Exemplos: a. Fechando o arquivo ALUNO: FECHAR (“ALUNO”) b. Fechando o arquivo COMPRA: FECHAR (“COMPRA”) c. Fechando o arquivo CLIENTE: FECHAR (“CLIENTE”) 4 é uma marca ou indicador que há em todos os arquivos para indicar a não existência de mais registros no arquivo. Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 15 Agora, tendo conceituado e exemplificado os algoritmos, é hora de seguir em frente para aprender ainda mais. A aula seguinte é uma continuação do estudo dos algoritmos. Mantenha a atenção e boa aula! AULA 03 | ALGORITMOS (ESTRUTURAS: SEQUÊNCIA; SELEÇÃO; REPETIÇÃO) Nesta aula, estudaremos ainda mais os algoritmos. Vamos, aqui, entender suas estruturas. Essas noções são essenciais para o dia a dia profissional e para o estudioso(a) da área. Boa aula! Em um algoritmo pode haver três tipos de estruturas: a sequência; a seleção; a repetição. 5. ESTRUTURA DE SEQUÊNCIA A estrutura de sequência corresponde a um conjunto de ações que são executadas, uma após outra, sem interrupção e, apenas, uma vez: 01 INICIAR 02 DEFINIR (NUMERO, CONTADOR) INTEIRO 03 BLOCOS DE AÇÕES 06 TERMINAR Exemplo: Um algoritmo para determinar a soma do conteúdo da variável NUMERO mais 1 e atribuir a variável CONTADOR e a variável NUMERO é igual a 32: 01 INICIAR 02 DEFINIR (NUMERO, CONTADOR) INTEIRO 03 ATRIBUIR NUMERO = 32 04 ATRIBUIR CONTADOR = CONTADOR + 1 05 APRESENTAR (NUMERO, CONTADOR) 06 TERMINAR No algoritmo acima, as ações ATRIBUIR e APRESENTAR serão executadas uma após a outra e, somente, uma vez. 6. ESTRUTURA DE SELEÇÃO A estrutura de seleção é representada pela condicional "SE", cuja a sintaxe é: SE (<expressão lógica>) ENTÃO <conjunto de ações a serem executadas, se a expressão lógica for verdadeira> SENÃO <conjunto de ações a serem executadas se a expressão lógica for falsa> FIM SE. Exemplos: a. Caso o conteúdo da variável CODIGO seja maior que 10, determinar a média aritmética das notas (NOTA1, NOTA2). Caso contrário, não fazer nada. Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 16 01 INICIAR 02 DEFINIR (CÓDIGO) INTEIRO 03 DEFINIR (MÉDIA) DECIMAL 04 RECEBER (CÓDIGO) 05 SE (CÓDIGO > 10) 06 ENTÃO 07 ATRIBUIR MÉDIA = (NOTA1 + NOTA2) / 2) 08 FIM-SE 09 TERMINAR No caso acima, não se utilizou o SENÃO, pois não havia conjunto de ações a serem executadas se a expressão lógica fosse falsa. b. Caso o conteúdo da variável CÓDIGO seja diferente de 10, determinar a média aritmética das notas (NOTA1, NOTA2). Caso contrário, não fazer nada. Possibilidade 1: 01 INICIAR 02 DEFINIR (CÓDIGO) INTEIRO 03 DEFINIR (MÉDIA) DECIMAL 04 RECEBER (CÓDIGO) 05 SE NÃO (CÓDIGO = 10) 06 ENTÃO 07 ATRIBUIR MÉDIA = (NOTA1 + NOTA2) / 2) 08 FIM-SE 09 TERMINAR No caso acima, foi utilizado o conectivo NÃO para implementar a diferença do conteúdo da variável CODIGO. Possibilidade 2: 01 INICIAR 02 DEFINIR (CÓDIGO) INTEIRO 03 DEFINIR (MÉDIA) DECIMAL 04 RECEBER (CÓDIGO) 05 SE (CÓDIGO ≠ 10) 06 ENTÃO 07 ATRIBUIR MÉDIA = (NOTA1 + NOTA2) / 2) 08 FIM-SE 09 TERMINAR No caso acima, foi utilizado o símbolo “≠” (diferente) para validar o conteúdo da variável CODIGO. c. Caso o conteúdo da variável CODIGO seja maior que 10, calcular a média aritmética das notas (NOTA1 e NOTA2). Caso contrário, não fazer nada: 01 INICIAR 02 DEFINIR (CÓDIGO) INTEIRO 03 DEFINIR (MÉDIA) DECIMAL 04 RECEBER (CÓDIGO) 05 SE (CÓDIGO > 10) 06 ENTÃO 07 ATRIBUIR MÉDIA = (NOTA1 + NOTA2) / 2) Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 17 08 FIM-SE 09 TERMINAR No caso acima, não se utilizou o SENÃO, pois não havia conjunto de ações a serem executadas se a expressão lógica fosse falsa. d. Caso o conteúdo da variável NUM1 seja maior que NUM2, calcular a diferença entre NUM1 menos NUM2. Caso contrário, calcular a diferença entre NUM2 menos NUM1: 01 INICIAR 02 DEFINIR (NUM1, NUM2) INTEIRO 03 RECEBER (NUM1, NUM2) 04 SE (NUM1 > NUM2) 05 ENTÃO 06 ATRIBUIR NUM1 = NUM1 - NUM2 07 SENÃO 08 ATRIBUIR NUM1 = NUM2 – NUM1 09 FIM-SE 10 TERMINAR No caso acima, utilizou o SENÃO, pois havia um conjunto de ações a serem executadas caso se a expressão lógica fosse falsa. Quando a expressão lógica é composta, ou seja, quando contém a representação de dois ou mais relacionamentos entre dois elementos é OBRIGATÓRIO a utilização do conectivo “E” ou do conectivo “OU”, de acordo com a necessidade. Exemplos: a. Caso o conteúdo da variável NUM1 seja maior que o das variáveis NUM2 e NUM3, calcular o produto da variável NUM1 vezes 2. Caso contrário, não fazer nada. 01 INICIAR 02 DEFINIR (NUM1, NUM2, NUM3) INTEIRO 03 RECEBER (NUM1, NUM2, NUM3) 04 SE (NUM1 > NUM2 E NUM1 > NUM3) 05 ENTÃO 06 ATRIBUIR NUM1 = NUM1 * 2 07 FIM-SE 08 TERMINAR b. Caso o conteúdo da variável NUM1 seja maior que o das variáveis NUM2 ou NUM3, calcular o produto da variável NUM1 vezes 3. Caso contrário, apresentar o conteúdo das variáveis NUM2 e NUM3. 01 INICIAR 02 DEFINIR (NUM1, NUM2, NUM3) INTEIRO 03 RECEBER (NUM1, NUM2, NUM3) 04 SE (NUM1 > NUM2 OU NUM1 > NUM3) 05 ENTÃO 06 ATRIBUIR NUM1 = NUM1 * 3 07 SENÃO Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB.Todos os direitos reservados. 18 08 APRESENTAR (NUM2, NUM3 09 FIM-SE 10 TERMINAR c. Caso o conteúdo da variável NUM1 seja menor que o da variável NUM2 ou seja maior que o da variável NUM3, apresentar o conteúdo da variável NUM1. Caso contrário, não fazer nada. 01 INICIAR 02 DEFINIR (NUM1, NUM2, NUM3) INTEIRO 03 RECEBER (NUM1, NUM2, NUM3) 04 SE (NUM1 < NUM2 OU NUM1 > NUM3) 05 ENTÃO 06 APRESENTAR (NUM1) 07 FIM-SE 08 TERMINAR d. Caso o conteúdo da variável NUM1 seja menor que o da variável NUM2 ou seja maior que o da variável NUM3, apresentar o conteúdo da variável NUM1. Caso contrário, apresentar o conteúdo das 3 variáveis. 01 INICIAR 02 DEFINIR (NUM1, NUM2, NUM3) INTEIRO 03 RECEBER (NUM1, NUM2, NUM3) 04 SE (NUM1 < NUM2 OU NUM1 > NUM3) 05 ENTÃO 06 APRESENTAR (NUM1) 07 SENÃO 08 APRESENTAR (NUM1, NUM2, NUM3) 09 FIM-SE 10 TERMINAR 7. ESTRUTURA DE REPETIÇÃO A estrutura de repetição, comumente denominada de loop ou processo repetitivo, contém um conjunto de instruções que devem ser executadas mais de uma vez, repetidamente. Para evitar que esse processo se torne um loop infinito, deve existir uma expressão lógica para garantir o encerramento do processo repetitivo. Uma estrutura de repetição é a FAÇA ENQUANTO. Nela, as ações inseridas serão executadas várias vezes enquanto uma expressão lógica seja verdadeira. A sua sintaxe é: FAÇA ENQUANTO (<expressão lógica>) (<ações a serem executadas e/ou estrutura de decisão>) FIM-FAÇA Exemplo: a. Determinar a soma dos 4 primeiros números inteiros. Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 19 01 INICIAR 02 DEFINIR (NÚMERO, SOMA, CONTADOR) INTEIRO 03 ATRIBUIR NÚMERO=1 04 FAÇA ENQUANTO (CONTADOR < 4) 05 ATRIBUIR SOMA = SOMA + NÚMERO 06 ATRIBUIR NÚMERO = NÚMERO + 1 07 ATRIBUIR CONTADOR = CONTADOR + 1 08 FIM-FAÇA 09 TERMINAR No exemplo acima, as duas ações ATRIBUIR serão executadas enquanto o conteúdo da variável CONTADOR for menor que 4. Quando for igual a 4, o processamento repetitivo será encerrado. Exemplo: b. Para apresentar todos os números entre 1 e 50. 01 INICIAR 02 DEFINIR (NÚMERO) INTEIRO 03 ATRIBUIR NÚMERO=1 04 FAÇA ENQUANTO (NÚMERO < 51) 05 APRESENTAR (NÚMERO)0 06 ATRIBUIR NÚMERO = NÚMERO + 1 07 FIM-FAÇA 08 TERMINAR E, agora, entendeu o que são as diferentes estruturas de um algoritmo? Ficou com alguma dúvida? Retorne ao conteúdo ou busque esclarecimentos no Fórum de Dúvidas. Se não, passe para nossa aula seguinte. Até lá. AULA 04 | ALGORITMOS (LEITURA DE UM ALGORITMO) Antes de iniciar o processo de construção, é necessário aprender a ler um algoritmo já pronto. E este é objetivo desta aula. Bons estudos! Para a leitura de um algoritmo é necessário: 1. A definição do problema que o algoritmo solucionou. 2. O algoritmo pronto. 3. Um conjunto de dados para testar o algoritmo. O objetivo desta parte é, utilizando o conjunto de dados, verificar se o resultado fornecido pelo algoritmo é igual ao esperado ou não. PROBLEMA 1: Determinar o dobro de um número inteiro informado, desde que esse número seja maior ou igual a zero. ALGORITMO: 01 INICIAR 02 DEFINIR (NÚMERO) INTEIRO 03 RECEBER (NÚMERO) Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 20 04 SE (NÚMERO ≥ 0) 05 ENTÃO 06 ATRIBUIR NÚMERO = NÚMERO * 2 07 APRESENTAR (NÚMERO) 08 FIM SE 09 TERMINAR Conjunto de Dados: (com todas as possibilidades) § 1 é maior que zero e será utilizado pelo algoritmo com apresentação de 2. § 0 é igual a zero e será utilizado pelo algoritmo com a apresentação de 0. § -1 é menor que zero e não será utilizado pelo algoritmo, portanto, não será apresentado nada. Processamento: 1. Receber (1) → 1 ≥ 0 → Verdadeiro → Número = 1 * 2 = 2 → Apresentar (2). OK 2. Receber (0) → 1 ≥ 0 → Verdadeiro → Número = 0 * 2 = 0 → Apresentar (0). OK 3. Receber (-1) → -1 ≥ 0 → Falso. OK BASEADO NO CONJUNTO DE DADOS, O ALGORITMO PARECE ESTAR CORRETO. Vamos analisar o Problema 2 agora! PROBLEMA 2: Determinar o dobro de um número inteiro informado, desde que esse número seja maior ou igual a zero. ALGORITMO: 01 INICIAR 02 DEFINIR (NÚMERO) INTEIRO 03 RECEBER (NÚMERO) 04 SE (NÚMERO > 0) 05 ENTÃO 06 ATRIBUIR NÚMERO = NÚMERO * 2 07 APRESENTAR (NÚMERO) 08 FIM SE 09 TERMINAR Conjunto de Dados: (com todas as possibilidades) § 1 é maior que zero e será utilizado pelo algoritmo com apresentação de 2. § 0 é igual a zero e será utilizado pelo algoritmo com a apresentação de 0. § -1 é menor que zero e não será utilizado pelo algoritmo, portanto, não será apresentado nada. Processamento: 1. Receber (1) → 1 > 0 → Verdadeiro → Número = 1 * 2 = 2 → Apresentar (2). OK 2. Receber (0) → 1 > 0 → Falso. Não OK 3. Receber (-1) → -1 > 0 → Falso. OK BASEADO NO CONJUNTO DE DADOS, O ALGORITMO TEM UM PROBLEMA QUANDO O NÚMERO INFORMADO FOR IGUAL A ZERO. Vamos analisar o próximo algoritmo! Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 21 PROBLEMA 3: Determinar o dobro de um número inteiro informado, desde que esse número seja maior ou igual a zero. ALGORITMO: 01 INICIAR 02 DEFINIR (NÚMERO) INTEIRO 03 RECEBER (NÚMERO) 04 SE (NÃO (NÚMERO < 0)) 05 ENTÃO 06 ATRIBUIR NÚMERO = NÚMERO * 2 07 APRESENTAR (NÚMERO) 08 FIM SE 09 TERMINAR Conjunto de Dados: (Com todas as possibilidades) § 1 é maior que zero e será utilizado pelo algoritmo com apresentação de 2. § 0 é igual a zero e será utilizado pelo algoritmo com a apresentação de 0. § -1 é menor que zero e não será utilizado pelo algoritmo, portanto, não será apresentado nada. Processamento: 1. Receber (1) → 1 < 0 → Não(Falso) → Verdadeiro → Número = 1 * 2 = 2 → Apresentar (2). OK 2. Receber (0) → 0 < 0 → Não(Falso) → Número = 0 * 0 = 0 → Apresentar (0). OK 3. Receber (-1) → -1 < 0 → Não(Verdadeiro). OK BASEADO NO CONJUNTO DE DADOS, O ALGORITMO TEM UM PROBLEMA QUANDO O NÚMERO INFORMADO FOR IGUAL A ZERO. Vamos analisar o próximo problema?? PROBLEMA 4: Determinar a relação entre dois números inteiros informados pelo usuário. ALGORITMO: 01 INICIAR 02 DEFINIR (NUM1, NUM2) INTEIRO 03 RECEBER (NUM1, NUM2) 04 SE (NUM1 = NUM2) 05 ENTÃO 06 APRESENTAR (“SÃO IGUAIS”) 07 FIM SE 08 SE (NUM1 > NUM2) 09 ENTÃO 10 APRESENTAR (“NUM1 MAIOR QUE NUM2”) 11 FIM SE 12 SE (NUM1 < NUM2) 13 ENTÃO 14 APRESENTAR (“NUM1 MENOR QUE NUM2”) 15 FIM SE 16 TERMINAR Conjunto de Dados: (com todas as possibilidades) Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 22 § 1 e 1, que são iguais. § 2 e 1, o primeiro é maior que o segundo. § 1 e 2, o primeiro é menor que o segundo. Processamento: 1. Receber (1,1) → 1 = 1 → Verdadeiro → Apresentar (“SÃO IGUAIS”). OK → 1 > 1 → Falso → 1 < 1 → Falso. 2. Receber (2, 1) → 2 = 1 → Falso → 2 > 1 → Verdadeiro → Apresentar (“NUM1 MAIOR QUE NUM2”). OK → 2 < 1 → Falso. 3. Receber (1, 2) → 1 = 2 → Falso → 1 > 2 -. Falso → 1 < 2 → Verdadeiro → Apresentar (“NUM1 MENOR QUE NUM2”). OK BASEADO NO CONJUNTO DE DADOS, ESTÁ CORRETO. Vamos analisar outro problema? PROBLEMA 5: Determinar a relação entre dois números inteiros informados pelo usuário. ALGORITMO: 01 INICIAR 02 DEFINIR (NUM1, NUM2) INTEIRO 03 RECEBER (NUM1, NUM2) 04 SE (NUM1 = NUM2) 05 ENTÃO 06 APRESENTAR (“SÃO IGUAIS”) 07 SENÃO 08 SE (NUM1 > NUM2) 09ENTÃO 10 APRESENTAR (“NUM1 MAIOR QUE NUM2”) 11 SENÃO 12 APRESENTAR (“NUM1 MENOR QUE NUM2”) 13 FIM SE 14 FIM SE 15 TERMINAR Conjunto de Dados: (com todas as possibilidades) § 1 e 1, que são iguais. § 2 e 1, o primeiro é maior que o segundo. § 1 e 2, o primeiro é menor que o segundo. Processamento: 1. Receber (1,1) → 1 = 1 → Verdadeiro → Apresentar (“SÃO IGUAIS”). OK 2. Receber (2, 1) → 2 = 1 → Falso → 2 > 1 → Verdadeiro → Apresentar (“NUM1 MAIOR QUE NUM2”). OK. 3. Receber (1, 2) → 1 = 2 → Falso → 1 > 2 -. Falso → 1 < 2 → Verdadeiro → Apresentar (“NUM1 MENOR QUE NUM2”). OK BASEADO NO CONJUNTO DE DADOS, ESTÁ CORRETO. Analisando mais um problema! Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 23 PROBLEMA 6: Determinar qual é o maior número inteiro de todos informados por um usuário (um por vez), até que um zero seja informado. ALGORITMO: 01 INICIAR 02 DEFINIR (NUM, MAIOR, MENOR) INTEIRO 03 ATRIBUIR NUM = 1 04 FAÇA ENQUANTO (NUM ≠ 0) 05 RECEBER (NUM) 06 SE (NUM ≠ 0) 07 ENTÃO 08 SE ((MAIOR = 0) E (MENOR = 0) 09 /* É A PRIMEIRA VEZ 10 ENTÃO 11 ATRIBUIR MAIOR = NUM 12 ATRIBUIR MENOR = NUM 13 FIM SE 14 SE (NUM > MAIOR) 15 ENTÃO 16 ATRIBUIR MAIOR = NUM 17 FIM SE 18 SE (NUM < MENOR) 19 ENTÃO 20 ATRIBUIR MENOR = NUM 21 FIM SE 22 FIM SE 23 FIM FAÇA 24 APRESENTAR (MAIOR, MENOR) 25 TERMINAR Conjunto de Dados: (possibilidades para encontrar Maior e Menor) § 5 (maior). § 3. § 4. § 2 (menor). § 0 (para finalizar). Processamento: (como tem uma estrutura de repetição, só haverá um processamento) 1. Após a ação DEFINIR (linha 2), o conteúdo das variáveis NUM, MAIOR e MENOR serão iguais a zero. 2. A ação a ser executada (linha 3) é a ATRIBUIR NUM = 1. 3. A proposição (NUM ≠ 0) da estrutura de repetição (linha 4) (FAÇA ENQUANTO) é verdadeira, pois NUM é igual a 1. Então, todo o processamento interno à estrutura de repetição será executado. 4. A ação a ser executada (linha 5) é a RECEBER (NUM). Como o número a ser informado (vide 1º elemento do conjunto de possibilidades) é 5, o conteúdo da variável NUM após a execução da ação será 5. 5. A proposição (NUM ≠ 0) (linha 6) é verdadeira, pois como o conteúdo da variável NUM é 5 (vide item anterior), portanto, diferente de 0. Assim sendo, as ações que serão executadas são as inseridas dentro da estrutura condicional. 6. O resultado da proposição ((MAIOR = 0) E (MENOR = 0) (linha 8) é verdadeira, pois o conteúdo das variáveis MAIOR e MENOR é igual a 0, pois as variáveis foram Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 24 definidas e, nessa primeira passagem, não foram alteradas. Por isso, as ações inseridas dentro da estrutura de decisão serão executadas. 7. A ação da linha 11 (ATRIBUIR MAIOR = NUM) fará com que o conteúdo da variável MAIOR seja igual ao conteúdo da variável NUM, ou seja, igual a 5 (1º elemento do conjunto de dados). 8. A ação da linha 12 (ATRIBUIR MENOR = NUM) fará com que o conteúdo da variável MENOR seja igual ao conteúdo da variável NUM, ou seja, igual a 5 (1º elemento do conjunto de dados). 9. O resultado da proposição (NUM > MAIOR) (linha 14) não é verdadeiro, pois o conteúdo de NUM é 5, e o conteúdo de MAIOR é 5, ou seja, são iguais. 10. O resultado da proposição (NUM < MENOR) (linha 18) não é verdadeiro, pois o conteúdo de NUM é 5, e o conteúdo de MENOR é 5, ou seja, são iguais. 11. Ao chegar na linha 23 (FIM FAÇA), retorna-se à linha 04 e a proposição é avaliada. 12. A proposição (NUM ≠ 0) da estrutura de repetição (linha 4) (FAÇA ENQUANTO) é verdadeira, pois NUM é igual a 5. Então, todo o processamento interno à estrutura de repetição será executado. 13. A ação a ser executada (linha 5) é a RECEBER (NUM). Como o número a ser informado (vide 2º elemento do conjunto de possibilidades) é 3, o conteúdo da variável NUM após a execução da ação será 3. 14. A proposição (NUM ≠ 0) (linha 6) é verdadeira, pois como o conteúdo da variável NUM é 3 (vide item anterior), portanto, diferente de 0. Assim sendo, as ações que serão executadas são as inseridas dentro da estrutura condicional. 15. O resultado da proposição ((MAIOR = 0) E (MENOR = 0) (linha 8) é falsa, pois o conteúdo das variáveis MAIOR e MENOR é igual a 5. Por isso, as ações inseridas dentro da estrutura de decisão NÃO serão executadas. 16. O resultado da proposição (NUM > MAIOR) (linha 14) não é verdadeiro, pois o conteúdo de NUM é 3 e o conteúdo de MAIOR é 5, ou seja, o 1º não é maior que o 2º. 17. O resultado da proposição (NUM < MENOR) (linha 18) é verdadeiro, pois o conteúdo de NUM é 3 e o conteúdo de MENOR é 5, ou seja, o 1º é menor que o 2º. Por isso, as ações dentro da estrutura condicional serão executadas. 18. A ação ATRIBUIR MENOR = NUM será executada e o resultado da variável será igual a 3. 19. Ao chegar na linha 23 (FIM FAÇA), retorna-se à linha 04 e a proposição é avaliada. 20. A proposição (NUM ≠ 0) da estrutura de repetição (linha 4) (FAÇA ENQUANTO) é verdadeira, pois NUM é igual a 3. 21. Então, todo o processamento interno à estrutura de repetição será executado. 22. A ação a ser executada (linha 5) é a RECEBER (NUM). Como o número a ser informado (vide 3º elemento do conjunto de possibilidades) é 4, o conteúdo da variável NUM após a execução da ação será 4. 23. A proposição (NUM ≠ 0) (linha 6) é verdadeira, pois como o conteúdo da variável NUM é 4 (vide item anterior), portanto, diferente de 0. Assim sendo, as ações que serão executadas são as inseridas dentro da estrutura condicional. 24. O resultado da proposição ((MAIOR = 0) E (MENOR = 0) (linha 8) é falsa, pois o conteúdo das variáveis MAIOR e MENOR são, respectivamente, iguais a 5 e 3. Por isso, as ações inseridas dentro da estrutura de decisão NÃO serão executadas. 25. O resultado da proposição (NUM > MAIOR) (linha 14) não é verdadeiro, pois o conteúdo de NUM é 4 e o conteúdo de MAIOR é 5, ou seja, o 1º não é maior que o 2º. Por isso, as ações dentro da estrutura condicional não serão executadas. 26. O resultado da proposição (NUM < MENOR) (linha 18) é falso, pois o conteúdo de NUM é 4 e o conteúdo de MENOR é 3, ou seja, o 1º não é menor que o 2º. Por isso, as ações dentro da estrutura condicional não serão executadas. 27. Ao chegar na linha 23 (FIM FAÇA), retorna-se à linha 04 e a proposição é avaliada. Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 25 28. A proposição (NUM ≠ 0) da estrutura de repetição (linha 4) (FAÇA ENQUANTO) é verdadeira, pois NUM é igual a 4. Então, todo o processamento interno à estrutura de repetição será executado. 29. A ação a ser executada (linha 5) é a RECEBER (NUM). Como o número a ser informado (vide 4º elemento do conjunto de possibilidades) é 2, o conteúdo da variável NUM após a execução da ação será 2. 30. A proposição (NUM ≠ 0) (linha 6) é verdadeira, pois como o conteúdo da variável NUM é 2 (vide item anterior), portanto, diferente de 0. Assim sendo, as ações que serão executadas são as inseridas dentro da estrutura condicional. 31. O resultado da proposição ((MAIOR = 0) E (MENOR = 0) (linha 8) é falsa, pois o conteúdo das variáveis MAIOR e MENOR são, respectivamente, iguais a 5 e 3. Por isso, as ações inseridas dentro da estrutura de decisão NÃO serão executadas. 32. O resultado da proposição (NUM > MAIOR) (linha 14) não é verdadeiro, pois o conteúdo de NUM é 2 e o conteúdo de MAIOR é 5, ou seja, o 1º não é maior que o 2º. Por isso, as ações dentro da estrutura condicional não serão executadas. 33. O resultado da proposição (NUM < MENOR) (linha 18) é verdadeiro,pois o conteúdo de NUM é 2 e o conteúdo de MENOR é 3, ou seja, o 1º é menor que o 2º. Por isso, as ações dentro da estrutura condicional serão executadas. 34. A ação ATRIBUIR MENOR = NUM será executada e o resultado da variável será igual a 2. 35. Ao chegar na linha 23 (FIM FAÇA), retorna-se à linha 04 e a proposição é avaliada. 36. A proposição (NUM ≠ 0) da estrutura de repetição (linha 4) (FAÇA ENQUANTO) é verdadeira, pois NUM é igual a 2. Então, todo o processamento interno à estrutura de repetição será executado. 37. A ação a ser executada (linha 5) é a RECEBER (NUM). Como o número a ser informado (vide 5º elemento do conjunto de possibilidades) é 0, o conteúdo da variável NUM após a execução da ação será 0. 38. A proposição (NUM ≠ 0) (linha 6) é falsa, pois como o conteúdo da variável NUM é 0 (vide item anterior), portanto, igual 0. Assim sendo, as ações NÃO serão executadas dentro da estrutura condicional. 39. Ao chegar na linha 23 (FIM FAÇA), retorna-se à linha 04 e a proposição é avaliada. 40. A proposição (NUM ≠ 0) da estrutura de repetição (linha 4) (FAÇA ENQUANTO) é falsa, pois NUM é igual a 0. Então, todo o processamento interno à estrutura de repetição não será executado e o processamento continua após o FIM FAÇA (linha 23). 41. A ação na linha 24 (APRESENTAR (MAIOR, MENOR)) será executada. 42. A ação TERMINAR (linha 25) encerrará o algoritmo. Vamos a mais um problema a ser analisado! PROBLEMA 7: Determinar qual é a média entre o maior e o menor de todos os números informados por um usuário (um por vez), até que um zero seja informado. ALGORITMO: 01 INICIAR 02 DEFINIR (NUM, MAIOR, MENOR) INTEIRO 03 DEFINIR (MEDIA) DECIMAL 04 ATRIBUIR NUM = 1 05 FAÇA ENQUANTO (NUM ≠ 0) 06 RECEBER (NUM) 07 SE (NUM ≠ 0) 08 ENTÃO 09 SE ((MAIOR = 0) E (MENOR = 0) Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 26 11 /* É A PRIMEIRA VEZ 12 ENTÃO 13 ATRIBUIR MAIOR = NUM 14 ATRIBUIR MENOR = NUM 15 FIM SE 16 SE (NUM > MAIOR) 17 ENTÃO 18 ATRIBUIR MAIOR = NUM 19 FIM SE 20 SE (NUM < MENOR) 21 ENTÃO 22 ATRIBUIR MENOR = NUM 23 FIM SE 24 FIM SE 25 FIM FAÇA 26 ATRIBUIR MEDIA = (MAIOR + MENOR) / 2 27 APRESENTAR (MEDIA, MAIOR, MENOR) 28 TERMINAR Conjunto de Dados: (possibilidades para encontrar Maior e Menor) § 3. § 4. § 1 (menor). § 5 (maior). § 0 (para finalizar). Processamento: 1. Após as ações DEFINIR (linha 2 e 3), o conteúdo das variáveis NUM, MAIOR, MENOR e MÉDIA será igual a zero. 2. A ação a ser executada (linha 4) é a ATRIBUIR NUM = 1. 3. A proposição (NUM ≠ 0) da estrutura de repetição (linha 5) (FAÇA ENQUANTO) é verdadeira, pois NUM é igual a 1. Então, todo o processamento interno à estrutura de repetição será executado. 4. A ação a ser executada (linha 6) é a RECEBER (NUM). Como o número a ser informado (vide 1º elemento do conjunto de possibilidades) é 3, o conteúdo da variável NUM após a execução da ação será 3. 5. A proposição (NUM ≠ 0) (linha 7) é verdadeira, pois como o conteúdo da variável NUM é 3 (vide item anterior), portanto, diferente de 0. Assim sendo, as ações que serão executadas são as inseridas dentro da estrutura condicional. 6. O resultado da proposição ((MAIOR = 0) E (MENOR = 0) (linha 9) é verdadeira, pois o conteúdo das variáveis MAIOR e MENOR é igual a 0), pois as variáveis foram definidas e, nessa primeira passagem, não foram alteradas. Por isso, as ações inseridas dentro da estrutura de decisão serão executadas. 7. A ação da linha 13 (ATRIBUIR MAIOR = NUM) fará com que o conteúdo da variável MAIOR seja igual ao conteúdo da variável NUM, ou seja, igual a 3 (1º elemento do conjunto de dados). 8. A ação da linha 14 (ATRIBUIR MENOR = NUM) fará com que o conteúdo da variável MENOR seja igual ao conteúdo da variável NUM, ou seja, igual a 3 (1º elemento do conjunto de dados). 9. O resultado da proposição (NUM > MAIOR) (linha 16) não é verdadeiro, pois o conteúdo de NUM é 3 e o conteúdo de MAIOR é 3, ou seja, são iguais. 10. O resultado da proposição (NUM < MENOR) (linha 20) não é verdadeiro, pois o conteúdo de NUM é 3 e o conteúdo de MENOR é 3, ou seja, são iguais. Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 27 11. Ao chegar na linha 25 (FIM FAÇA), retorna-se à linha 04 e a proposição é avaliada. 12. A proposição (NUM ≠ 0) da estrutura de repetição (linha 5) (FAÇA ENQUANTO) é verdadeira, pois NUM é igual a 3. Então, todo o processamento interno à estrutura de repetição será executado. 13. A ação a ser executada (linha 6) é a RECEBER (NUM). Como o número a ser informado (vide 2º elemento do conjunto de possibilidades) é 4, o conteúdo da variável NUM após a execução da ação será 3. 14. A proposição (NUM ≠ 0) (linha 7) é verdadeira, pois como o conteúdo da variável NUM é 4 (vide item anterior), portanto, diferente de 0. Assim sendo, as ações que serão executadas são as inseridas dentro da estrutura condicional. 15. O resultado da proposição ((MAIOR = 0) E (MENOR = 0) (linha 9) é falso, pois o conteúdo das variáveis MAIOR e MENOR é igual a 3). Por isso, as ações inseridas dentro da estrutura de decisão NÃO serão executadas. 16. O resultado da proposição (NUM > MAIOR) (linha 14) é verdadeiro, pois o conteúdo de NUM é 4 e o conteúdo de MAIOR é 3, ou seja, o 1º é maior que o 2º. Então, as ações inseridas na estrutura de controle serão executadas. 17. Na linha 18, a ação ATRIBUIR MAIOR = NUM será executada e, ao seu final, a variável MAIOR será igual a 4. 18. O resultado da proposição (NUM < MENOR) (linha 20) é falso, pois o conteúdo de NUM é 4 e o conteúdo de MENOR é 4, ou seja, o 1º não é menor que o 2º. Por isso, as ações dentro da estrutura condicional não serão executadas. 19. Ao chegar na linha 23 (FIM FAÇA), retorna-se à linha 04 e a proposição é avaliada. 20. A proposição (NUM ≠ 0) da estrutura de repetição (linha 4) (FAÇA ENQUANTO) é verdadeira, pois NUM é igual a 4. 21. Então, todo o processamento interno à estrutura de repetição será executado. 22. A ação a ser executada (linha 6) é a RECEBER (NUM). Como o número a ser informado (vide 3º elemento do conjunto de possibilidades) é 1, o conteúdo da variável NUM após a execução da ação será 1. 23. A proposição (NUM ≠ 0) (linha 7) é verdadeira, pois como o conteúdo da variável NUM é 1 (vide item anterior), portanto, diferente de 0. Assim sendo, as ações que serão executadas são as inseridas dentro da estrutura condicional. 24. O resultado da proposição ((MAIOR = 0) E (MENOR = 0) (linha 9) é falsa, pois o conteúdo das variáveis MAIOR e MENOR são, respectivamente, iguais a 4 e 3. Por isso, as ações inseridas dentro da estrutura de decisão NÃO serão executadas. 25. O resultado da proposição (NUM > MAIOR) (linha 16) é falso verdadeiro, pois o conteúdo de NUM é 1 e o conteúdo de MAIOR é 5, ou seja, o 1º não é maior que o 2º. Por isso, as ações dentro da estrutura condicional não serão executadas. 26. O resultado da proposição (NUM < MENOR) (linha 20) é verdadeiro, pois o conteúdo de NUM é 1 e o conteúdo de MENOR é 3, ou seja, o 1º é menor que o 2º. Por isso, as ações dentro da estrutura condicional serão executadas. 27. Na linha 22, o resultado da ação ATRIBUIR MENOR = NUM fará com que a variável NUM seja igual a 1. 28. Ao chegar na linha 25 (FIM FAÇA), retorna-se à linha 04 e a proposição é avaliada. 29. A proposição (NUM ≠ 0) da estrutura de repetição (linha 5) (FAÇA ENQUANTO) é verdadeira, pois NUM é igual a 1. Então, todo o processamento interno à estrutura de repetição será executado. 30. A ação a ser executada (linha 6) é a RECEBER (NUM). Como o número a ser informado (vide 4º elemento do conjunto de possibilidades) é 5, o conteúdoda variável NUM após a execução da ação será 5. 31. A proposição (NUM ≠ 0) (linha 7) é verdadeira, pois como o conteúdo da variável NUM é 5 (vide item anterior), portanto, diferente de 0. Assim sendo, as ações que serão executadas são as inseridas dentro da estrutura condicional. Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 28 32. O resultado da proposição ((MAIOR = 0) E (MENOR = 0) (linha 9) é falsa, pois o conteúdo das variáveis MAIOR e MENOR são, respectivamente, iguais a 4 e 1. Por isso, as ações inseridas dentro da estrutura de decisão NÃO serão executadas. 33. O resultado da proposição (NUM > MAIOR) (linha 16) é verdadeiro, pois o conteúdo de NUM é 5 e o conteúdo de MAIOR é 4, ou seja, o 1º é maior que o 2º. Por isso, as ações dentro da estrutura condicional serão executadas. 34. A ação ATRIBUIR MAIOR = NUM (linha 18) será executada e o conteúdo da variável MAIOR será igual a 5. 35. O resultado da proposição (NUM < MENOR) (linha 20) é falso, pois o conteúdo de NUM é 5 e o conteúdo de MENOR é 1, ou seja, o 1º não é menor que o 2º. Por isso, as ações dentro da estrutura condicional não serão executadas. 36. Ao chegar na linha 25 (FIM FAÇA), retorna-se à linha 04 e a proposição é avaliada. 37. A proposição (NUM ≠ 0) da estrutura de repetição (linha 5) (FAÇA ENQUANTO) é verdadeira, pois NUM é igual a 5. Então, todo o processamento interno à estrutura de repetição será executado. 38. A ação a ser executada (linha 6) é a RECEBER (NUM). Como o número a ser informado (vide 5º elemento do conjunto de possibilidades) é 0, o conteúdo da variável NUM após a execução da ação será 0. 39. A proposição (NUM ≠ 0) (linha 7) é falsa, pois como o conteúdo da variável NUM é 0 (vide item anterior), portanto, igual 0. Assim sendo, as ações NÃO serão executadas dentro da estrutura condicional. 40. Ao chegar na linha 25 (FIM FAÇA), retorna-se à linha 04 e a proposição é avaliada. 41. A proposição (NUM ≠ 0) da estrutura de repetição (linha 4) (FAÇA ENQUANTO) é falsa, pois NUM é igual a 0. Então, todo o processamento interno à estrutura de repetição não será executado e o processamento continua após o FIM FAÇA (linha 25). 42. A ação na linha 26 (ATRIBUIR MEDIA = (MAIOR + MENOR) / 2) será executada, ou seja, o resultado de MEDIA será igual a 3 que resultado de 6 (resultado da soma da variável MAIOR com a variável MENOR) dividido por 2. 43. A ação APRESENTAR (MEDIA, MAIOR, MENOR) será executada e 3, 5 e 2 serão apresentados por serem, respectivamente, o conteúdo das variáveis MEDIA, MAIOR, MENOR. 44. A ação TERMINAR (linha 28) encerrará o algoritmo. Estudantes, chegamos à última aula desta Unidade de Interação e Aprendizagem (UIA). Recapitulando, fizemos uma introdução à Linguagem de Programação, entendendo o que são dados, proposições, algoritmos e suas estruturas, bem como as maneiras de ler um algoritmo. Os conceitos apreendidos aqui têm grande valia para a formação nessa área. Continue estudando! Você terminou o estudo desta unidade. Agora, chegou o momento de testar seus conhecimentos e sua aprendizagem. Acesse o menu Verificação de Aprendizagem da unidade e responda as questões propostas. Ao resolver essas questões, você terá um feedback das suas respostas, com comentários das questões que você acertou e errou. Esta é a oportunidade de saber se você está dominando o conteúdo estudado. Se houver qualquer dificuldade em alguma parte específica do conteúdo, retome a leitura e os estudos da unidade. Boa sorte e até a próxima! Algoritmos e Programação de Computadores | UIA 1 | Copyright © 2014 Centro Universitário IESB. Todos os direitos reservados. 29 REFERÊNCIAS ASCENCIO, A. F. G; DE CAMPOS, E. A. V. de. Fundamentos de Programação de Computadores. 2. ed. São Paulo: Pearson Prentice Hall, 2007. CAMPOS, R. L. B. L. Lógica de Programação. 2009 a 2013. (Notas de aula). CAPRON, H. L.; JOHNSON, J. A. Introdução à Informática. São Paulo: Pearson Prentice Hall, 2004. FARRER, H. et al. Programação Estruturada de Computadores: algoritmos e estrutura de dados. Rio de Janeiro: Guanabara, 1985. FORBELLONE, A. L. V.; EBERSPÄCHER, H. F. Lógica de Programação: a construção de algoritmos e estrutura de dados. 3. ed. São Paulo: Prentice Hall, 2005. NORTON, Peter. Introdução à informática. São Paulo: Makron Books, 1996. SOUZA, M. A. F. de. et al. Algoritmos e Lógica de Programação: um texto introdutório para engenharia. 2. ed. São Paulo: Cengage Learning, 2012. GLOSSÁRIO Bit* (binary digit): É a unidade básica para armazenar dados na memória de um computador (CAPRON e JOHNSON, 2004). Byte: é o agrupamento de 8 bits (CAPRON e JOHNSON, 2004). End of File (EOF): É uma marca ou indicador que há em todos os arquivos para indicar a não existência de mais registros no arquivo. Memória: É a área do computador para guardar os programas e os dados que serão utilizados pelos programas temporariamente, ou seja, enquanto o computador estiver ligado (NORTON, 1996; CAPRON; JOHNSON, 2004). Palavra Reservada: É uma palavra que representa uma ação, um conectivo, a estrutura de controle ou a estrutura de repetição, que pode ser utilizada num algoritmo (CAMPOS, 2009 a 2013). * Termos que não aparecem no texto.