Prévia do material em texto
1 2 Algoritmos e Programação Estruturada Curso de Tecnologia em Sistemas para Internet Revisão O que é Algoritmo 3 Algoritmo É formalmente uma sequência finita de passos que levam à execução de uma tarefa. É uma sequência lógica, finita e ordenada de instruções, e não-ambíguas (sem redundância), que deve ser seguida para a solução de um determinado problema. 4 Quais são as características principais de um bom algoritmo? Ele deve ser fácil de entender, produzir resultados corretos, ser otimizado para execução rápida e ser facilmente mantido e modificado. Capacidade de resolução do problema proposto. Clareza Eficiência Precisão Legibilidade 5 6 Algoritmo Entrada Processamento Saída Um algoritmo deve possuir zero ou mais entradas. Estas são insumos ou quantidades que são processados pelos algoritmos durante a execução de seus passos. São os procedimentos utilizados para chegar ao resultado final Um algoritmo deve possuir uma ou mais saídas. Elas representam o resultado do trabalhado realizado pelos algoritmos. Todo algoritmo, seja ele computacional ou não, recebe uma entrada, processa-a e gera uma saída segundo seu conjunto de passos. 7 QUAIS OS TIPOS DE ALGORITMOS Descrição Narrativa Fluxograma Pseudocódigo Utiliza linguagem natural para descrever passo a passo como o algoritmo realiza uma tarefa. Representação gráfica que utiliza símbolos para representar diferentes passos do algoritmo, conectados por setas indicando a sequência de execução. utiliza uma linguagem simples e semântica próxima à linguagem humana para descrever a lógica de um algoritmo. 8 QUAIS OS TIPOS DE ALGORITMOS Diferenças entres esse tipos de algoritmos incluem o nível de formalidade e detalhamento. A descrição narrativa é mais informal, o fluxograma é visual e estruturado, enquanto o pseudocódigo oferece uma representação textual mais próxima da linguagem de programação. 9 Descrição Narrativa Fluxograma Pseudocódigo Descrição narrativa Muito simples de usar já que é bem conhecida pela pessoa que analisa o problema. Vantagens: A linguagem natural abre espaço para várias interpretações e tende a se tornar prolixa. Desvantagens: 10 Consiste em descrever a solução do problema utilizando uma linguagem natural, como, por exemplo, a língua portuguesa. Fluxograma Utiliza alguns símbolos pré-definidos, para identificar os passos a serem seguidos para chegar ao resultado. 11 O fluxograma, ou diagrama de blocos, utiliza figuras geométricas a fim de ilustrar os passos a serem seguidos para a resolução de um problema. 12 Fluxograma 13 É uma representação gráfica de um algoritmo. Fluxograma Utiliza alguns símbolos pré-definidos, para identificar os passos a serem seguidos para chegar ao resultado. Pseudocódigo 14 É uma forma de algoritmo que usa linguagem estruturada, com pequenas diferenças em relação à língua portuguesa, porém com uma sintaxe e regras bem definidas, chamada de português estruturado. “O pseudocódigo consiste em analisar o enunciado do problema e escrever, por meio de regras predefinidas, os passos a serem seguidos para sua resolução.” “O pseudocódigo é uma forma de descrever um algoritmo utilizando uma linguagem clara e acessível, que se aproxima de linguagem estruturada, facilitando sua conversão para uma linguagem de programação.” Pseudocódigo A principal vantagem da forma de representação em linguagem algorítmica está na facilidade com a qual um pseudocódigo pode ser transcrito para uma linguagem de programação. Vantagens: Assim como os fluxogramas, a desvantagem fica por conta da limitação do seu poder de expressão, devido às regras impostas para a elaboração das instruções. Desvantagens: 15 16 QUAIS OS TIPOS DE DADOS 17 Tipos de dados Dados são representados por letras, números ou valores lógicos que especificam os conjuntos de valores que poderão assumir. O computador reconhece quatro tipos primitivos de dados: • Numérico inteiro • Numérico real; • Caractere (literal), valores alfanuméricos • Lógico, valores Lógicos Verdadeiro e Falso 18 19 O QUE É A MEMÓRIA Meio físico para armazenar dados temporariamente ou permanentemente. Memória: Além de reservar a memoria, temos que informar ao computador como vamos nos referir a essa reserva, ou seja, como denominaremos, o espaço de memoria reservado. 20 21 O QUE SÃO VARIÁVEIS O nome dado a esse espaço é seu endereço. O conteúdo de uma variável pode mudar durante a execução do programa. Dizemos que os endereços nomeados de memória são as variáveis do programa. A memória alocada é liberada quando o programa é encerrado. Variáveis: São espaços alocados na memória RAM durante a execução do programa. 23 Elas são utilizadas para armazenar e representar informações dinâmicas, permitindo que o programa acesse, modifique e utilize dados de maneira flexível. Variáveis: Representam espaços de armazenamento que contêm dados ou valores manipulados durante a execução de um programa. 24 Variáveis: 25 Um espaço na memória que armazena um valor que pode mudar durante a execução do programa. Constante: é um determinado valor fixo que não se modificará ao longo do tempo, durante a execução do programa. 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. 26 Devem respeitar as seguintes regras:Identificadores • o primeiro caractere deve ser uma letra; • os demais podem ser letras, números ou sublinhado; • não são permitidos símbolos especiais (&, ?, !, +, -, /, *, :, ., dentre outros); • não se podem usar palavras reservadas do pseudocódigo ou da linguagem de programação. Não devemos utilizar acentos (‘, ^, ~). Isso porque as linguagens de programação classificam estes símbolos como caracteres especiais. 27 A característica da linguagem Javascript de atribuir a uma mesma variável tipos de dados diferentes lhe configura como uma linguagem fracamente tipada. Ou seja. Após declarada a variável pode ser sobrecarregada (atualizada) com novo tipo de dado. Variáveis no Javascript Fracamente Tipada: Isso significa que, em JavaScript, o tipo das variáveis não precisa ser declarado explicitamente e o tipo de dado pode mudar durante a execução do código. Fortemente Tipada: Onde as variáveis têm tipos fixos e não podem mudar durante a execução. Operações entre diferentes tipos de dados geralmente não são permitidas sem conversão explícita. 28 Algumas variáveis precisam de uma caractéristica especial, a imutabilidade – qualidade, estado ou condição de imutável. Essas variáveis são declaradas no Javascript usando a palavra-chave const seguido de um identificador. Constante no Javascript Além das regras de identificadores que a variável deve seguir temos algumas regras adicionais para o const: •É obrigatória a declaração de uma constante com atribuição de um valor; •Não será possível alterar o valor após a criação da variável. const CAPITAL_PI = “teresina”; const PI = 3.1416 ; const EULER = 2.7182 ; Não é uma regra utilizar todas as letras maiúsculas, porém melhora a legibilidade do código. 29 30 Em JavaScript, os tipos de dados básicos são fundamentais para armazenar e manipular informações. Number Armazena números inteiros e de ponto flutuante (decimais), como 5, 10.5, -3, 3.14. var idade = 30; // inteiro var altura = 1.75; // ponto flutuante 31 var nome = “Miller”; var saudacao = `olá ${nome}!`; String Armazena sequências de caracteres (texto) e é sempre definida entre aspas simples (' '), aspas duplas (" "), ou crase (` `) para strings com variáveis. 32 var maiorIdade = true; var aprovado = false; Boolean Armazena valores lógicos: true ou false. Muito usado em condições. Undefined Valor padrão de uma variável que foi declarada mas não foi inicializada.var nome; console.log(nome); //undefined Comando de entrada em Javascript Uma das formas mais simples de criar uma entrada de dados em JavaScript é utilizando a função prompt(), que exibe uma caixa de diálogo ao usuário para inserir os dados desejados. Veja um exemplo: 33 var nome = prompt("Digite seu nome: "); Neste exemplo, a variável “nome” irá armazenar o valor digitado pelo usuário. Comando de entrada em Javascript – Conversões ou Casting 34 Number(x): converte o dado x para um number. Caso x seja uma string que possua algo além de números a conversão retorna o valor NaN, representa um valor inválido. parseInt(x): Converte o dado x para um número inteiro. parseFloat(x): Converte o dado x para um número real. var idade = parseInt(prompt("Digite sua idade: ")); Comando de Saída em Javascript 35 var nome = prompt("Digite seu nome: "); Precisamos imprimir o valor variável nome. Como podemos fazer isso? Console.log (nome); Console.log (“Seu nome é”, nome); Console.log (“Seu nome é” + nome); Operadores aritméticos 36 Operadores aritméticos e exemplos 37 Operador Significado Expressões aritméticas + Adição X = 5 + 15; Y = X + 5; Z = 10 + Y; R = X + Y +Z; - Subtração X = 115 - 15; Y = X - 50; Z = 10 - Y; R = X - Y + Z; Operadores aritméticos e exemplos 38 Operador Significado Expressões aritméticas / Divisão X = 150/15; Y = X/5; Z = (10 + Y)/2; R = X – (Y / Z); * Multiplicação X = 4*2; Y = X*10; Z = 10 + Y*2; R = (10 + Y )* 2; Operadores aritméticos e exemplos 39 Operador Significado Expressões aritméticas ** Potência X = 3**2; // resultado 9 Y =2**3; // resultado 8 % Módulo (Resto da Divisão) X = 3%2; // resultado 1 Y = 5%3; // resultado 2 Z = 4%2; // resultado 0 A operação de % (módulo) é bastante útil para verificar a divisibilidade entre dois números. Por exemplo: se você quiser saber se um número x é par ou ímpar basta verificar o valor de x%2. Se o resultado for 0 é porque x é par (resto da divisão), se for 1 o número x é impar. Operadores Relacionais de igualdade e desigualdade 40 Operador Significado Expressões aritméticas == Igual X == 10; //falso X == Z ;//Verdadeiro Y == X ;//falso Y == “texto”; //Verdadeiro != Diferente X != Y //Verdadeiro Z != X // Falso var X = 50; var Y = “texto”; var Z = 50; Operadores Relacionais de comparação 41 Operador Significado Expressões aritméticas > Maior 23>10 //Verdadeiro X>10 //dependendo do valor de x = Maior ou igual 20>=20 //Verdadeiro 20>=30 //Falso 40) ;//Verdadeiro (Z >= 50) && (y == “nome”) ;//falso || OU lógico (X > Z) || ( X = 50) || (y == “nome”) ; //Verdadeiro ! Não lógico !( (X > Z) || ( X = 50) && !(y == “nome”) ;//Verdadeiro var X = 50; var Y = “texto”; var Z = 50; 43 QUAIS ESTRUTURAS UTILIZAMOS NA PROGRAMAÇÃO SEQUENCIAL DECISÃO REPETIÇÃO (LAÇOS) MODULARIZAÇÃO DADOS 44 QUAIS ESTRUTURAS UTILIZAMOS NA PROGRAMAÇÃO Estrutura Sequencial Um algoritmo que possui uma estrutura sequencial significa que suas instruções são executadas na sequência em que elas aparecem, sem nenhuma alteração no seu fluxo, a não ser, claro, que exista alguma instrução explícita para a mudança deste fluxo. 45 A estrutura de decisão ou condicional desempenha um papel crucial na programação, proporcionando controle sobre o fluxo de execução do código com base em condições específicas. Estrutura de Decisão 46 Estrutura de Decisão •If-Else (Se-Senão): Executa blocos de código com base em uma condição booleana. •Switch-Case (Escolha-Caso): Seleciona um bloco de código para execução com base em valores específicos. 47 Estrutura de Decisão SE Em Javascript utilizamos a palavra-chave if, e entre parênteses, informamos a condição necessária para que o bloco de instruções seja executado. 48 A condição deve retornar uma resposta lógica, ou seja, verdadeiro (true) ou falso (false), Estrutura de Decisão SE-Senão Em Javascript utilizamos a palavra-chave else no final do bloco de códigos do if, que indicará o nosso senão: 49 Todas as instruções que estiverem dentro do bloco else serão executadas caso a condição não for satisfeita. Estrutura de Decisão SE-Senão Em Javascript utilizamos a palavra-chave else no final do bloco de códigos do if, que indicará o nosso senão: 50 Todas as instruções que estiverem dentro do bloco else serão executadas caso a condição não for satisfeita. Estrutura de Decisão SE-Senão SE-Senão 51 Escolha ... caso Nessa estrutura, a variável de verificação deve ser discreta, por isso, em algumas linguagens de programação, o tipo deve ser caractere ou inteiro. Uma variável discreta pode assumir um número finito e contável de valores. 52 Essa estrutura de controle nos permite verificar várias condições diferentes pré-definidas, executando diferentes ações com base em cada condição definida. Escolha ... caso 53 Em Javascript utilizamos a palavra-chave switch A variável será testado entre uma lista de opções. Temos neste exemplo temos 2 casos (case), e o default será executado quando nenhum dos cases forem selecionados. 54 55 A escolha entre usar a estrutura de decisão if-else (se-senão) ou switch (escolha-caso) depende das necessidades e da clareza do código. Ambos são usados para tomar decisões com base em condições, mas cada um é mais adequado para certos cenários. if-else (se-senão) switch (escolha-caso) Ideal para: Condições complexas ou variáveis que não são previsíveis. Como funciona: Avalia uma condição e, se ela for true, executa o bloco de código correspondente; caso contrário, passa para o próximo bloco else if ou else. Ideal para: Casos em que se compara uma mesma variável ou expressão a vários valores específicos (como números, strings ou constantes). Como funciona: Verifica o valor de uma variável e executa o bloco de código correspondente ao case que corresponde a esse valor. Um default pode ser usado como opção final, se nenhum caso corresponder. Use if-else para comparações complexas, intervalos ou quando há necessidade de lógica mais específica. Use switch para comparar uma única variável a valores específicos e facilitar a leitura do código com várias opções conhecidas. As estruturas de repetição, também conhecidas como laços ou loops, são fundamentais na programação para executar um bloco de código várias vezes. Estrutura de Repetição Devemos utilizar estruturas de repetição quando: Houver a necessidade de executar um bloco de código várias vezes. O número de iterações não é conhecido antecipadamente. A execução de um bloco de código está condicionada a uma expressão booleana. 56 57 QUAIS ESTRUTURAS de REPETIÇÃO com teste no início, no fim ou com controle do número de iterações Há três formas de estruturar os laços de repetição: 58 •PARA: Realiza iterações um número específico de vezes. •ENQUANTO: Executa um bloco de código enquanto uma condição é verdadeira. •Faça - Enquanto: Similar ao “enquanto", mas garante a execução do bloco de código pelo menos uma vez. Estrutura de Repetição 59 Estrutura de Repetição ENQUANTO 60 Em Javascript utilizamos a palavra-chave while A variável será testado, caso condição seja verdadeira as instruções serão executadas 61 Estrutura de repetição com teste no fim (laço Faça - Enquanto) Essa estrutura no Javascript também é simples e semelhante ao while: Caso a condição seja verdadeira as instruções serão executadas novamente. Estrutura de repetição com controle de iterações (laço PARA) 62 Essa estrutura no Javascript se chama for: 63 O QUE É MODULARIZAÇÃO Modularizar 64 Modularizar um algoritmo é dividi-lo em partes, ou seja, estabelecer um módulo principal que faz chamadade outros módulos específicos para resolver problemas menores. Se o algoritmo é uma rotina que estrutura uma solução, os módulos são sub-rotinas. Modularizar 65 66 O QUE SÃO FUNÇÕES E PROCEDIMENTOS Uma função é um trecho de código que pode ser utilizado em vários algoritmos, e que retorna um valor. FUNÇÕES 67 São blocos de código que realizam uma tarefa específica, mas não retornam um valor explicitamente. Procedimentos 68 69 70 71 O QUE É RECURSIVIDADE 72 Esse efeito de uma imagem refletida infinitamente é uma ótima analogia para entender o conceito de recursividade. 73 Recursividade é quando uma função chama a si mesma. Recursividade em resumo: Ela resolve um problema em pequenos passos, repetindo a mesma tarefa, até atingir uma condição de parada (quando o problema está completamente resolvido). 74 Exemplo do espelho: é como ver um reflexo que se repete infinitamente, mas com a recursividade, o reflexo só continua até atingir o objetivo. Exemplo do dia a dia: Descascar uma cebola, camada por camada, até não sobrar mais nada para descascar. Recursividade em resumo: 75 O QUE É UM VETOR Um vetor, também conhecido como matriz unidimensional, é uma alocação de memória com um identificador único, indexada e dimensionada com um tamanho específico. 76 Um vetor é uma estrutura de dados homogênea unidimensional. Também conhecido como array, o vetor permite acessar seus elementos individualmente por meio de um índice ou posição. 77 Os vetores são amplamente utilizados para armazenar e manipular conjuntos de dados de maneira eficiente. Eles são essenciais em algoritmos e programação para lidar com coleções de elementos de forma organizada e acessível. 78 79 Em programação, um vetor pode guardar uma série de valores em sequência. Aqui está um exemplo de um vetor em JavaScript: var frutas = ["Maçã", "Banana", "Laranja", "Uva", "Morango"]; O vetor frutas guarda 5 frutas. Você pode acessar uma fruta específica pela posição (também chamada de índice). No mundo da programação, os índices geralmente começam em 0. Ou seja: frutas[0] é "Maçã" (a primeira fruta). frutas[1] é "Banana" (a segunda fruta), e assim por diante. 80 Um vetor é como uma fila de caixas organizadas, onde cada caixa tem uma posição. Em cada posição, você guarda algo, e pode acessar esse algo quando quiser. Resumo Vetor: 81 O QUE É UMA MATRIZ Matrizes O que é uma matriz? Uma matriz é uma alocação de memória com um identificador único, indexada em termos de linhas e colunas, daí o conceito de estrutura de dados composta, homogênea e bidimensional, cujos valores devem ser específicos. Uma estrutura de dados que contém várias variáveis do mesmo tipo, também denominadas Estrutura compostas homogênea multidimensionais 82 83 Resumo Matriz: Uma matriz é como uma tabela com linhas e colunas, onde você pode guardar informações organizadas em duas dimensões. É como ter várias filas de caixas, onde cada fila representa uma linha e cada caixa dentro de cada fila representa uma coluna. 84 O pseudocódigo segue uma sintaxe rígida semelhante às linguagens de programação formais, com regras específicas para cada comando. CERTA ERRADA Ao analisar essa declaração podemos afirmar que que ela esta? 85 O pseudocódigo é uma ferramenta que não depende de uma linguagem de programação específica, mas deve seguir padrões formais de sintaxe para evitar ambiguidades. CERTA ERRADA Ao analisar essa declaração podemos afirmar que que ela esta? 86 Uma das principais vantagens do pseudocódigo é sua independência de qualquer linguagem de programação, permitindo a implementação em diferentes plataformas. CERTA ERRADA Ao analisar essa declaração podemos afirmar que que ela esta? 87 O pseudocódigo é sempre utilizado em desenvolvimento de sistemas grandes, enquanto o fluxograma é mais adequado para pequenos projetos. CERTA ERRADA Ao analisar essa declaração podemos afirmar que que ela esta? 88 Tanto o pseudocódigo quanto o fluxograma são amplamente utilizados para facilitar a comunicação de ideias entre programadores e não programadores. CERTA ERRADA Ao analisar essa declaração podemos afirmar que que ela esta? 89 “No desenvolvimento de algoritmos, o pseudocódigo utiliza uma linguagem próxima à natural, o que facilita o entendimento por humanos, porém sem a rigidez de uma linguagem de programação. A estrutura que permite executar um conjunto de instruções várias vezes até que uma condição seja satisfeita é chamada de ________________________________.” Assinale a alternativa correta: A) repetição condicional B) condicional múltipla C) laço infinito D) estrutura de repetição E) função recursiva 90 “O pseudocódigo é uma técnica amplamente usada para representar algoritmos, utilizando uma linguagem descritiva e acessível, que não precisa seguir as regras de uma linguagem de programação específica. A estrutura de controle que permite escolher entre diferentes caminhos de execução com base em várias condições pré-definidas é denominada _________________.” Assinale a alternativa correta: A) estrutura condicional B) laço condicional C) estrutura de escolha múltipla D) laço de repetição E) estrutura iterativa 91 A estrutura de controle que permite verificar uma condição e, com base no resultado, executar diferentes blocos de instruções é chamada de ________________________________.” Assinale a alternativa que preenche corretamente a lacuna: A) condicional simples B) condicional múltipla C) laço iterativo D) função recursiva E) bloco de execução 92 Em um sistema de reserva de passagens aéreas, é necessário garantir que o usuário só possa realizar a compra se houver assentos disponíveis no voo. Qual estrutura de controle de fluxo seria mais adequada para garantir que a reserva só seja realizada se houver lugares suficientes? a) Função recursiva b) Estrutura de Laço while c) Estrutura switch-case d) Estrutura if-else e) Vetor 93 Em um sistema de monitoramento de sensores de temperatura, você precisa verificar constantemente se a temperatura atual excede um limite pré-definido. Caso o limite seja ultrapassado, um alerta é gerado. Qual estrutura de controle seria mais adequada para essa verificação contínua? a) Função recursiva b) Estrutura de Laço while c) Estrutura switch-case d) Estrutura if-else e) Vetor 94 Você está desenvolvendo um sistema de irrigação automática para um jardim. O sistema deve ligar o aspersor somente quando o solo estiver seco e a previsão do tempo não indicar chuva nas próximas horas. Qual das opções abaixo melhor representa esse controle em um algoritmo? a) if (solo == "úmido" && previsão == "chuva") b) if (solo == "seco" && previsão == "sem chuva") c) while (solo == "seco" && previsão == "chuva") d) for (solo = "seco"; solo == "úmido"; solo++) e) if (previsão == "sem chuva" && solo == "úmido") 95 Suponha que você esta desenvolvendo um jogo no qual o jogador receberá 5 pontos para cada moeda coletada. Qual das alternativas representa o código correto para calcular a pontuação ao final de uma fase? a) for (moedas = 0; moedas 0) { pontos += 5; } 96 Um aplicativo de transporte deseja verificar se o passageiro tem mais de 12 anos para permitir o uso sem acompanhante. Qual estrutura valida corretamente a idade? a) if (idade > 12) { acompanhante = false; } else { acompanhante = true; } b) while (idade 12; 97 Você precisa escrever uma função em JavaScript que aplique um desconto fixo de 50 unidades monetárias ao valor de uma compra. Qual é a forma correta de definir essa função? a) function aplicaDesconto(valor) { returnvalor * 0.5; } b) function aplicaDesconto(valor) { return valor - 50; } c) function aplicaDesconto() { valor = valor - 50; } d) function desconto(aplicaDesconto) { return valor - 50%; } e) function aplicaDesconto(valor) { return valor * 1.5; } 98 Em qual situação é mais adequado usar uma const ante em vez de uma variável? a) Quando o valor pode mudar durante a execução do programa. b) Quando o valor é fixo e não deve mudar. c) Quando o valor é desconhecido até o momento da execução. d) Quando o valor é uma string que pode ser concatenada. e) Quando o valor deve ser recalculado frequentemente. 99 Strings em JavaScript são delimitadas apenas por aspas duplas. CERTA ERRADA Ao analisar essa declaração podemos afirmar que que ela esta? 100 A função parseInt é utilizada para converter strings em números inteiros. CERTA ERRADA Ao analisar essa declaração podemos afirmar que que ela esta? 101 Arrays em JavaScript começam no índice 0. CERTA ERRADA Ao analisar essa declaração podemos afirmar que que ela esta? 102 A expressão !false resulta em VERDADEIRO. CERTA ERRADA Ao analisar essa declaração podemos afirmar que que ela esta? 103 O operador && retorna true somente se ambos os operandos forem verdadeiros. CERTA ERRADA Ao analisar essa declaração podemos afirmar que que ela esta? 104 A expressão ( true || false ) resulta em FALSO. CERTA ERRADA Ao analisar essa declaração podemos afirmar que que ela esta? 105 “A estrutura de controle ______ permite iterar um bloco de código enquanto uma condição é verdadeira.” “A estrutura de controle ______ permite verificar uma condição e executar um bloco de código se a condição for verdadeira.” Assinale a alternativa que completa corretamente as frases: A) SE ... ENTAO – PARA B) PARA – ESCOLHA CASO C) REPITA ATÉ – PARA D) ENQUANTO – Se ... ENTÃO E) ENQUANTO – FUNÇÃO 106 var X = 5; var Y = 10; var Z = 2; console.log(Z * (Y - X) > Z + Y / Z); a)10 b)15 c)“false” ou “falso” d)2 e)“true” ou “verdadeiro” O resultado da execução do pseudocódigo apresentado abaixo será? 107 Em que situação você escolheria usar uma função em vez de um procedimento? a) Quando não preciso de nenhum valor de retorno. b) Quando preciso retornar um valor após a execução. c) Quando a função não pode ter parâmetros. d) Quando o código deve ser executado apenas uma vez. e) Procedimentos e funções são intercambiáveis. Seção Padrão Slide 1 Slide 2 Slide 3: O que é Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42 Seção sem Título Slide 43 Slide 44 Slide 45 Slide 46 Slide 47 Slide 48 Slide 49 Slide 50 Slide 51 Slide 52 Slide 53 Slide 54 Slide 55 Slide 56 Slide 57 Slide 58 Slide 59 Slide 60 Slide 61 Slide 62 Slide 63 Slide 64 Slide 65 Slide 66 Slide 67 Slide 68 Slide 69 Slide 70 Slide 71 Slide 72 Slide 73 Slide 74 Slide 75 Slide 76 Slide 77 Slide 78 Slide 79 Slide 80 Slide 81 Slide 82 Slide 83 Questões Slide 84 Slide 85 Slide 86 Slide 87 Slide 88 Slide 89 Slide 90 Slide 91 Slide 92 Slide 93 Slide 94 Slide 95 Slide 96 Slide 97 Slide 98 Slide 99 Slide 100 Slide 101 Slide 102 Slide 103 Slide 104 Slide 105 Slide 106 Slide 107