Prévia do material em texto
<p>Daniela Resende Silva Orbolato</p><p>Ernani Cláudio Borges</p><p>Márcio Aparecido Arruda</p><p>Florisvaldo Cardozo Bomfim Júnior</p><p>Virgílio de Melo Langoni</p><p>Linguagens e técnicas de</p><p>programação, volume 1</p><p>Eletricidade aplicada e</p><p>equipamentos eletroeletrônicos,</p><p>volume 1</p><p>Catalogação elaborada pelo Setor de Referência da Biblioteca Central Uniube</p><p>L647 Linguagens e técnicas de programação, volume 1 ; Eletricidade</p><p>aplicada e equipamentos eletroeletrônicos, volume 1 / Daniela Resende</p><p>Silva Orbolato ... [et al.]. – Uberaba : Universidade de Uberaba,</p><p>2017.</p><p>204 p. : il.</p><p>Programa de Educação a Distância – Universidade de</p><p>Uberaba. Inclui bibliografia.</p><p>ISBN 978-85-7777-706-8</p><p>1. Programação (Computadores). 2. Linguagem de</p><p>programação</p><p>(Computadores). 3. Eletricidade. 4. Eletricidade – Equipamento e</p><p>acessórios. I. Orbolato, Daniela Resende Silva. II. Universidade de</p><p>Uberaba. Programa de Educação a Distância.</p><p>CDD 005.13</p><p>© 2017 by Universidade de Uberaba</p><p>Todos os direitos reservados. Nenhuma parte desta publicação poderá ser</p><p>reproduzida ou transmitida de qualquer modo ou por qualquer outro meio, eletrônico</p><p>ou mecânico, incluindo fotocópia, gravação ou qualquer outro tipo de sistema de</p><p>armazenamento e transmissão de informação, sem prévia autorização, por escrito,</p><p>da Universidade de Uberaba.</p><p>Universidade de Uberaba</p><p>Reitor</p><p>Marcelo Palmério</p><p>Pró-Reitor de Educação a Distância</p><p>Fernando César Marra e Silva</p><p>Coordenação de Graduação a Distância</p><p>Sílvia Denise dos Santos Bisinotto</p><p>Editoração e Arte</p><p>Produção de Materiais Didáticos-Uniube</p><p>Projeto da capa</p><p>Agência Experimental Portfólio</p><p>Edição</p><p>Universidade de Uberaba</p><p>Av. Nenê Sabino, 1801 – Bairro Universitário</p><p>Sobre os autores</p><p>Daniela Resende Silva Orbolato</p><p>Mestre em Ciência da Computação pela Universidade Federal de São Carlos,</p><p>gradua da em Ciência da Computação pela Universidade Federal de Uberlândia.</p><p>Professora do ensino básico, técnico e tecnológico do Instituto Federal de Educação,</p><p>Ciência e Tecnologia do Triângulo Mineiro. Tem experiência na área de Ciência da</p><p>Computação, com ênfase em Metodologia e Técnicas da Computação.</p><p>Ernani Cláudio Borges</p><p>Especialista em Formação de Professores em Educação a Distância pela Uni-</p><p>versidade Federal do Paraná – UFPR. Especialista em Análise de Sistemas pela</p><p>Universidade de Ribeirão Preto (SP) – Unaerp. Graduado em Tecnologia de</p><p>Processamento de Dados pela Universidade de Uberaba – Uniube. Professor</p><p>da Universidade de Uberaba – Uniube – e do Centro Federal de Educação Tec-</p><p>nológica de Uberaba – Cefet. Coordenador do Curso Superior de Tecnologia em</p><p>Análise e Desenvolvimento de Sistemas, no Cefet.</p><p>Florisvaldo Cardozo Bomfim Júnior</p><p>Bacharel em Engenharia da Computação e Engenharia Elétrica, com ênfase em</p><p>Automação Industrial, pela Universidade de Uberaba – Uniube. Formação em</p><p>diferentes cursos na área tecnológica e industrial. Professor nos cursos da área</p><p>de tecnologia na Universidade de Uberaba.</p><p>Márcio Aparecido Arruda</p><p>Engenheiro eletricista pela Universidade de Uberaba – Uniube. Professor titu-</p><p>lar nos cursos de Engenharia da Universidade de Uberaba. Tem experiência</p><p>na área de Engenharia Elétrica, com especialidade em sistemas elétricos de</p><p>potência.</p><p>IV UNIUBE</p><p>Virgílio de Melo Langoni</p><p>Mestre e graduado em Engenharia Elétrica pela Universidade Federal de Uber-</p><p>lândia. Professor da Universidade de Uberaba – Uniube. Tem experiência na</p><p>área de Engenharia Elétrica, com ênfase em Circuitos Eletrônicos e Inteligência</p><p>Artificial.</p><p>Sumário</p><p>Parte I Linguagens e técnicas de programação, volume 1 .......................1</p><p>Apresentação ...................................................................................................3</p><p>Capítulo 1 Lógica de programação, instruções matemáticas e tipos</p><p>de dados .........................................................................................5</p><p>1.1 Introdução à lógica de programação .............................................................................6</p><p>1.2 Algoritmos ....................................................................................................................11</p><p>1.3 Itens fundamentais da composição da estrutura de algoritmos ..................................12</p><p>1.3.1 Operadores aritméticos ......................................................................................12</p><p>1.3.2 Operadores lógicos ............................................................................................12</p><p>1.3.3 Operadores relacionais ......................................................................................13</p><p>1.3.4 Operadores caracteres (literais) .........................................................................13</p><p>1.3.5 Principais funções matemáticas .........................................................................14</p><p>1.3.6 Prioridade das operações ..................................................................................14</p><p>1.3.7 Conceito de constantes ......................................................................................15</p><p>1.3.8 Conceito de variáveis .........................................................................................15</p><p>1.3.9 Regras para dar nomes às variáveis ..................................................................16</p><p>1.3.10 Tipos de dados .................................................................................................17</p><p>1.3.11 Operação de atribuição ....................................................................................18</p><p>1.3.12 Comando de entrada ........................................................................................19</p><p>1.3.13 Comando de saída ...........................................................................................19</p><p>1.3.14 Comentários .....................................................................................................20</p><p>1.3.15 Estrutura de algoritmo ......................................................................................21</p><p>1.3.16 Estrutura sequencial e simulação ....................................................................22</p><p>VI UNIUBE</p><p>Capítulo 2 Estrutura condicional e estruturas de repetição ............................31</p><p>2.1 Algoritmos: retomando conceitos ................................................................................32</p><p>2.2 Estrutura condicional ...................................................................................................34</p><p>2.3 Estruturas de repetição ...............................................................................................46</p><p>2.4 Validação .....................................................................................................................60</p><p>Capítulo 3 Linguagem de programação PascalZim e modularização ............75</p><p>3.1 Comandos do aplicativo PascalZim ............................................................................76</p><p>3.1.1 Itens fundamentais para compor a estrutura de algoritmos ...............................78</p><p>3.1.2 Estrutura sequencial ...........................................................................................82</p><p>3.1.3 Estrutura condicional ..........................................................................................83</p><p>3.1.4 Estruturas de repetição ......................................................................................91</p><p>3.2 Modularização ...........................................................................................................106</p><p>3.2.1 Procedimento (procedure) ................................................................................106</p><p>3.2.2 Função (function) ............................................................................................. 111</p><p>Parte II Eletricidade aplicada e equipamentos</p><p>eletroeletrônicos, volume 1 ........................................................121</p><p>Apresentação ...............................................................................................123</p><p>Capítulo</p><p>leia (n3) leia (n3)</p><p>se (n3 < 0) ou (n3 > 10) entao</p><p>mostre (</p><p>senão</p><p>md</p><p>mostre (</p><p>{verificando se aprovado, recuperação ou reprovado}</p><p>se md >= 6 entao</p><p>mostre ( mostre (</p><p>senão senão</p><p>se md >= 4 entao se md >= 4 entao</p><p>mostre ( mostre (</p><p>senão</p><p>mostre (</p><p>fim-se fim-se</p><p>fim-se</p><p>fim-se</p><p>fim-se fim-se fim-se</p><p>mostre ( mostre (</p><p>leia (n3)</p><p>se (n3 < 0) ou (n3 > 10) entao</p><p>mostre ( mostre (</p><p>senão</p><p>md md</p><p>mostre (</p><p>{verificando se aprovado, recuperação ou reprovado} {verificando se aprovado, recuperação ou reprovado}</p><p>se md >= 6 entao</p><p>mostre (</p><p>senão</p><p>se md >= 4 entao</p><p>mostre (</p><p>senão senão</p><p>mostre ( mostre (</p><p>fim-se</p><p>fim-se fim-se</p><p>fim-se fim-se</p><p>mostre ( mostre (</p><p>mostre ( mostre ( mostre ( mostre ( mostre (</p><p>md md</p><p>mostre (</p><p>{verificando se aprovado, recuperação ou reprovado} {verificando se aprovado, recuperação ou reprovado}</p><p>se md >= 6 entao</p><p>mostre (</p><p>senão senão</p><p>se md >= 4 entao</p><p>mostre ( mostre (</p><p>senão senão</p><p>mostre (</p><p>fim-se</p><p>fim-se</p><p>md md</p><p>fim-se fim-se</p><p>mostre ( mostre ( mostre ( mostre ( mostre (</p><p>se md >= 4 entao se md >= 4 entao</p><p>mostre ( mostre (</p><p>senão</p><p>mostre (</p><p>fim-se</p><p>se md >= 4 entao se md >= 4 entao</p><p>fim-se fim-se</p><p>mostre ( mostre ( mostre ( mostre ( mostre (</p><p>mostre ( mostre ( mostre ( mostre ( mostre (</p><p>INDICAÇÃO DE LEITURA</p><p>Sugerimos agora a leitura do Capítulo 3, “Estrutura condicional”, do livro Fundamen-</p><p>tos da programação de computadores (ASCÊNCIO; CAMPOS, 2002). A leitura</p><p>permitirá a visualização de detalhes importantes relacionados aos conceitos já apre-</p><p>sentados até este momento sobre estrutura condicional. Nessa obra temos vários</p><p>exercícios e as respectivas soluções. As autoras trazem uma abordagem acerca dos</p><p>fundamentos da programação de computadores, enfocando a estrutura condicional</p><p>como uma forma de verificar a possibilidade de processar uma informação ou não,</p><p>em problemas matemáticos e computacionais.</p><p>44 UNIUBE</p><p>AGORA É A SUA VEZ</p><p>Atividade 1</p><p>Elaborar um algoritmo que receba o nome e sexo de uma pessoa. Verificar:</p><p>a) o nome não pode ser vazio ou um espaço em branco, caso seja, o algoritmo deverá</p><p>finalizar;</p><p>b) o sexo não pode ser diferente de “m” ou “f”, caso seja, o algoritmo deverá</p><p>finalizar.</p><p>Processar e mostrar, caso as opções de entradas sejam válidas, “Ilmo. Sr.” e/ou “Ilma.</p><p>Sra.”, seguido do nome da pessoa.</p><p>Atividade 2</p><p>Elaborar um algoritmo que receba dois números. Processar e mostrar o resultado</p><p>da diferença do maior pelo menor. Caso os números sejam iguais, mostrar uma</p><p>mensagem.</p><p>Atividade 3</p><p>Elaborar um algoritmo que receba um número. Processar e mostrar se ele é par,</p><p>ímpar ou zero.</p><p>RELEMBRANDO</p><p>A matemática diz que um número é par se o resto da divisão desse número por 2 for</p><p>igual a zero, senão, esse número é ímpar.</p><p>AGORA É A SUA VEZ</p><p>Atividade 1</p><p>Elaborar um algoritmo que receba o nome e sexo de uma pessoa. Verificar:</p><p>a) o nome não pode ser vazio ou um espaço em branco, caso seja, o algoritmo deverá</p><p>finalizar;</p><p>b) o sexo não pode ser diferente de “m” ou “f”, caso seja, o algoritmo deverá</p><p>finalizar.</p><p>Processar e mostrar, caso as opções de entradas sejam válidas, “Ilmo. Sr.” e/ou “Ilma.</p><p>Sra.”, seguido do nome da pessoa.</p><p>Atividade 2</p><p>Elaborar um algoritmo que receba dois números. Processar e mostrar o resultado</p><p>da diferença do maior pelo menor. Caso os números sejam iguais, mostrar uma</p><p>mensagem.</p><p>Atividade 3</p><p>Elaborar um algoritmo que receba um número. Processar e mostrar se ele é par,</p><p>ímpar ou zero.</p><p>RELEMBRANDO</p><p>A matemática diz que um número é par se o resto da divisão desse número por 2 for</p><p>igual a zero, senão, esse número é ímpar.</p><p>UNIUBE 45</p><p>AGORA É A SUA VEZ</p><p>Atividade 4</p><p>Sabe-se que, na matemática, mais especificamente na geometria, para formar um</p><p>retângulo, o valor da largura e do comprimento devem ser diferentes e maiores que</p><p>zero.</p><p>Elaborar um algoritmo que receba dois números. Processar as verificações necessá-</p><p>rias e mostrar o resultado do cálculo da área do retângulo.</p><p>Atividade 5</p><p>Elaborar um algoritmo que receba três números. Processar e mostrar qual desses</p><p>números é o menor.</p><p>Atividade 6</p><p>Uma determinada empresa paga para seus funcionários:</p><p>a) R$ 12,00 (doze reais) por hora trabalhada;</p><p>b) R$ 40,00 (quarenta reais) por dependente.</p><p>Elaborar um algoritmo que receba o nome de um funcionário, a quantidade de horas</p><p>que ele trabalhou e a quantidade de dependentes que ele tem. Processar as verifi-</p><p>cações necessárias e calcular, caso as entradas de dados sejam válidas:</p><p>a) o valor do salário bruto;</p><p>b) o valor do desconto de 5% do salário bruto para INSS;</p><p>c) o valor do desconto de 27,5% do salário bruto para IR (Imposto de Renda);</p><p>d) o valor do salário líquido a receber (salário bruto – INSS – IR).</p><p>Mostrar no vídeo: o nome do funcionário e os resultados dos cálculos indicados.</p><p>Atividade 7</p><p>O preço de um carro novo, quando chega ao mercado para o consumidor, é formado:</p><p>pelo preço de fábrica, pelo valor do lucro do distribuidor e pelo valor dos impostos.</p><p>46 UNIUBE</p><p>Elaborar um algoritmo que receba:</p><p>a) o valor do preço de fábrica;</p><p>b) o percentual do lucro do distribuidor;</p><p>c) o percentual do imposto.</p><p>Processar e mostrar:</p><p>a) o valor correspondente ao lucro do distribuidor;</p><p>a) o valor correspondente aos impostos;</p><p>b) o preço final do veículo.</p><p>2.3 Estruturas de repetição</p><p>A estrutura de repetição tem por característica a repetição das instruções que</p><p>estão dentro de seu bloco, até que uma determinada condição seja satisfeita.</p><p>As estruturas de repetição, também chamadas de blocos de repetição, podem</p><p>ser criadas em qualquer momento no algoritmo.</p><p>Podemos ter um bloco de repetição dentro de uma estrutura condicional SE e</p><p>SENAO, como, também, ter um bloco condicional SE e SENAO dentro de um</p><p>bloco de repetição. Podemos ter, ainda, blocos de repetição dentro de outros</p><p>blocos de repetição.</p><p>A utilização desses recursos será percebida durante a abstração do pro-</p><p>blema. Você irá perceber que precisa fazer uma verificação com SE, e</p><p>dentro do bloco correspondente a este SE, será necessário criar um bloco</p><p>de repetição.</p><p>Temos três tipos de estruturas de repetição: 1) Enquanto, 2) Repita, 3) Para.</p><p>UNIUBE 47</p><p>Veja essas estruturas, a seguir:</p><p>algoritmo exercicio_repeticao {nome do nosso algoritmo}</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>...... : tipo</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>.</p><p>.</p><p>{corpo do algoritmo}</p><p>.</p><p>.</p><p>Enquanto <condicao> faca</p><p>instrucao 1</p><p>instrucao 2</p><p>instrucoes n</p><p>fim-enquanto</p><p>.</p><p>.</p><p>Repita</p><p>instrucao 1</p><p>instrucao 2</p><p>instrucoes n</p><p>Ate-que condicao</p><p>.</p><p>.</p><p>Para x de var_inici ate var_fim faca</p><p>instrucao 1</p><p>instrucao 2</p><p>instrucoes n</p><p>Fim-para</p><p>.</p><p>.</p><p>mostre (‘acabou ... ’)</p><p>pausa</p><p>fim</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>{corpo do algoritmo}</p><p>Enquanto <condicao> faca Enquanto <condicao> faca</p><p>instrucao 1 instrucao 1</p><p>instrucao 2 instrucao 2</p><p>instrucoes n</p><p>fim-enquanto fim-enquanto</p><p>Repita</p><p>instrucao 1 instrucao 1</p><p>instrucao 2</p><p>instrucoes n</p><p>Ate-que condicao</p><p>.</p><p>Para Para</p><p>instrucao 1 instrucao 1</p><p>instrucao 2</p><p>instrucoes n</p><p>Fim-para</p><p>mostre ( mostre (</p><p>pausa</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>pausa pausa</p><p>instrucao 2</p><p>instrucoes n</p><p>fim-enquanto</p><p>instrucao 1</p><p>instrucao 2</p><p>instrucoes n</p><p>Ate-que condicao</p><p>instrucao 1</p><p>instrucao 2</p><p>instrucoes n</p><p>Fim-para</p><p>instrucao 1</p><p>48 UNIUBE</p><p>IMPORTANTE!</p><p>Na estrutura de repetição ENQUANTO, as instruções somente serão executadas</p><p>quando a condição for VERDADEIRA.</p><p>• A estrutura de repetição REPITA irá executar as instruções pelo menos uma vez</p><p>e, no final do bloco Repita, é verificada a condição e, caso ela seja FALSA, retornará</p><p>e</p><p>executará novamente as instruções.</p><p>• Na estrutura de repetição PARA tem-se um intervalo de números que vai de um</p><p>valor inicial até um valor final, variando de um em um, com incremento automático.</p><p>Podendo, ainda, começar de um valor final e decrescer até atingir um valor inicial,</p><p>variando de um em um, com decremento automático.</p><p>• Algumas linguagens de programação aceitam variações de incremento ou decre-</p><p>mento maiores que um.</p><p>• Todos os raciocínios lógicos aplicados com a estrutura ENQUANTO podem ser</p><p>aplicados, também, com a estrutura de repetição REPITA. Porém, nem todos podem</p><p>ser aplicados com a estrutura PARA.</p><p>Para entender melhor a análise e o padrão de comportamento de instruções,</p><p>veja o exemplo, a seguir, feito somente com uma estrutura sequencial e con-</p><p>dicional.</p><p>Elaborar um algoritmo que receba um número via teclado. Verificar para que</p><p>não seja menor que 1 e nem maior que 10. Processar e mostrar os cálculos da</p><p>tabuada de multiplicação desse número, conforme o exemplo, caso o número</p><p>seja 5:</p><p>5 * 1 = 5</p><p>5 * 2 = 10</p><p>5 * 3 = 15</p><p>5 * 4 = 20</p><p>IMPORTANTE!</p><p>Na estrutura de repetição ENQUANTO, as instruções somente serão executadas</p><p>quando a condição for VERDADEIRA.</p><p>• A estrutura de repetição REPITA irá executar as instruções pelo menos uma vez</p><p>e, no final do bloco Repita, é verificada a condição e, caso ela seja FALSA, retornará</p><p>e executará novamente as instruções.</p><p>• Na estrutura de repetição PARA tem-se um intervalo de números que vai de um</p><p>valor inicial até um valor final, variando de um em um, com incremento automático.</p><p>Podendo, ainda, começar de um valor final e decrescer até atingir um valor inicial,</p><p>variando de um em um, com decremento automático.</p><p>• Algumas linguagens de programação aceitam variações de incremento ou decre-</p><p>mento maiores que um.</p><p>• Todos os raciocínios lógicos aplicados com a estrutura ENQUANTO podem ser</p><p>aplicados, também, com a estrutura de repetição REPITA. Porém, nem todos podem</p><p>ser aplicados com a estrutura PARA.</p><p>UNIUBE 49</p><p>5 * 5 = 25</p><p>.</p><p>.</p><p>.</p><p>5 * 10 = 50</p><p>A resolução, a seguir, segue os padrões sequenciais que você aprendeu nos</p><p>estudos do módulo anterior. Veja:</p><p>algoritmo exercicio_sequencial_e_condicional {nome do nosso algoritmo}</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>nr, resp : inteiro</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>nr 0</p><p>resp 0</p><p>{corpo do algoritmo}</p><p>limpa-tela</p><p>mostre (‘digite um número maior que zero e menor que 11 ...’)</p><p>leia (nr)</p><p>se (nr <=0) ou (nr > 10) entao</p><p>mostre (‘número é inválido ... finalizando ...’)</p><p>senao</p><p>resp 5 * 1</p><p>mostre (nr, ‘ * 1 =’, resp)</p><p>resp 5 * 2</p><p>mostre (nr, ‘ * 2 =’, resp)</p><p>resp 5 * 3</p><p>mostre (nr, ‘ * 3 =’, resp)</p><p>resp 5 * 4</p><p>mostre (nr, ‘ * 4 =’, resp)</p><p>resp 5 * 5</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>nr</p><p>resp</p><p>{corpo do algoritmo}</p><p>limpa-tela limpa-tela</p><p>mostre (</p><p>leia (nr)</p><p>se (nr <=0) ou (nr > 10) entao se (nr <=0) ou (nr > 10) entao</p><p>mostre ( mostre (</p><p>senao senao</p><p>resp</p><p>mostre (nr, mostre (nr,</p><p>resp</p><p>mostre (nr,</p><p>resp resp</p><p>mostre (nr, mostre (nr,</p><p>resp</p><p>mostre (nr,</p><p>resp</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>mostre ( mostre ( mostre ( mostre ( mostre (</p><p>resp resp</p><p>mostre (nr, mostre (nr,</p><p>resp</p><p>mostre (nr,</p><p>resp resp</p><p>mostre (nr, mostre (nr,</p><p>resp</p><p>mostre (nr,</p><p>resp</p><p>resp resp</p><p>50 UNIUBE</p><p>mostre (nr, ‘ * 5 =’, resp)</p><p>resp 5 * 6</p><p>mostre (nr, ‘ * 6 =’, resp)</p><p>resp 5 * 7</p><p>mostre (nr, ‘ * 7 =’, resp)</p><p>resp 5 * 8</p><p>mostre (nr, ‘ * 8 =’, resp)</p><p>resp 5 * 9</p><p>mostre (nr, ‘ * 9 =’, resp)</p><p>resp 5 * 10</p><p>mostre (nr, ‘ * 10 =’, resp)</p><p>fim-se</p><p>mostre (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>Analise o algoritmo e veja que existem instruções repetidas dentro do bloco do</p><p>SENAO, e mudando somente o número que está multiplicando. Ou seja, estamos</p><p>multiplicando por 1 e mostrando o resultado; multiplicando por 2 e mostrando o</p><p>resultado; até chegar a 10.</p><p>Então, podemos perceber que estamos contando de 1 a 10, variando de 1 em</p><p>1, e mostrando o resultado de cada multiplicação pelo contador.</p><p>No algoritmo exercicio_sequencial_e_condicional, criamos as variáveis nr e</p><p>resp. Agora, vamos criar uma variável com o nome cont que irá representar o</p><p>contador de 1 a 10 e, utilizando a estrutura de REPETIÇÃO ENQUANTO, fa-</p><p>remos os cálculos. Veja a seguir:</p><p>algoritmo exercicio_sequencial_e_condicional_e_repeticao {nome do nosso</p><p>algoritmo}</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>nr, resp, cont : inteiro</p><p>{bloco do código principal}</p><p>mostre (nr, mostre (nr,</p><p>resp resp</p><p>mostre (nr,</p><p>resp</p><p>mostre (nr, mostre (nr,</p><p>resp resp</p><p>mostre (nr,</p><p>resp</p><p>mostre (nr,</p><p>resp resp</p><p>mostre (nr, mostre (nr,</p><p>fim-se fim-se</p><p>mostre (</p><p>pausa pausa pausa</p><p>mostre (nr, mostre (nr,</p><p>resp</p><p>mostre (nr,</p><p>resp</p><p>mostre (nr, mostre (nr,</p><p>resp resp</p><p>mostre (nr,</p><p>resp</p><p>mostre (nr,</p><p>mostre (nr, mostre (nr,</p><p>UNIUBE 51</p><p>inicio</p><p>{inicializar variáveis}</p><p>nr 0</p><p>resp 0</p><p>cont 1</p><p>{corpo do algoritmo}</p><p>limpa-tela</p><p>mostre (‘digite um número maior que zero e menor que 11 ...’)</p><p>leia (nr)</p><p>se (nr <=0) ou (nr > 10) então</p><p>mostre (‘número é inválido ... finalizando ...’)</p><p>senão</p><p>{o enquanto está perguntando se o cont é menor ou</p><p>igual a 10 o que, nessa primeira vez, é verdadeiro, pois}</p><p>inicializamos a variável cont com 1}</p><p>enquanto cont <= 10 faca</p><p>resp nr * cont</p><p>mostre (nr, ‘ *’, cont,’ =’, resp)</p><p>{fazendo o contador passar para o próximo número}</p><p>cont cont + 1</p><p>{o fim-enquanto, irá retornar ao enquanto, e verificar se o</p><p>cont ainda é menor ou igual a 10, lembrando que</p><p>o cont foi incrementado de mais 1 ao conteúdo anterior}</p><p>fim-enquanto</p><p>fim-se</p><p>mostre (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>Exemplos com as três estruturas</p><p>Exemplo 6 (uso de laços)</p><p>Elaborar um algoritmo que processe e mostre todos os números de 15 a 70,</p><p>variando de um em um.</p><p>Quando cont chegar a</p><p>11, a condição será falsa</p><p>e a sequência irá para a</p><p>primeira linha abaixo do</p><p>fim-enquanto.</p><p>O fim-enquanto fará com que a</p><p>sequência de instruções volte ao</p><p>enquanto e este verificará se a</p><p>condição ainda é verdadeira.</p><p>52 UNIUBE</p><p>Usando o ENQUANTO:</p><p>algoritmo exemplo_6_nrs_15_a_70_com_ENQUANTO</p><p>var</p><p>cont : inteiro</p><p>inicio</p><p>cont 15</p><p>limpa-tela</p><p>mostre (‘números de 15 a 70, variando de 1 em 1’)</p><p>mostre</p><p>enquanto cont <= 70 faca</p><p>mostre (cont, ‘ ’)</p><p>cont cont + 1</p><p>fim-enquanto</p><p>mostre</p><p>mostre (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>Outra forma de resolução usando o REPITA:</p><p>algoritmo exemplo_6_nrs_15_a_70_com_REPITA</p><p>var</p><p>cont : inteiro</p><p>inicio</p><p>cont 15</p><p>limpa-tela</p><p>mostre (‘números de 15 a 70, variando de 1 em 1’)</p><p>mostre</p><p>repita</p><p>mostre (cont, ‘ ‘)</p><p>cont cont + 1</p><p>até-que cont > 70</p><p>mostre</p><p>mostre (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>UNIUBE 53</p><p>Outra forma de resolução usando o PARA:</p><p>algoritmo exemplo_6_nrs_15_a_70_com_PARA</p><p>var</p><p>cont : inteiro</p><p>inicio</p><p>limpa-tela</p><p>mostre (‘números de 15 a 70, variando de 1 em 1’)</p><p>mostre</p><p>para cont de 15 ate 70 faca</p><p>Mostre (cont, ‘ ’)</p><p>Fim-para</p><p>mostre</p><p>mostre (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>PARADA OBRIGATÓRIA</p><p>Observe que, nas três formas de se fazer algoritmos, a única diferença entre as es-</p><p>truturas de repetição ENQUANTO e REPITA é que o ENQUANTO pergunta se pode</p><p>entrar no bloco e o REPITA pergunta se pode sair. Já a estrutura PARA tem duas</p><p>diferenças em relação ao ENQUANTO e REPITA. Descobriu quais são?</p><p>Veja que temos duas linhas a menos na estrutura de repetição PARA.</p><p>1) antes do “limpa-tela” não tem a inicialização de cont 15, pois, esta ini-</p><p>cialização é feita na abertura do bloco PARA, quando se escreve: “para</p><p>cont de 15...”;</p><p>2) dentro do bloco PARA não temos o contador: cont cont + 1, pois esse</p><p>incremento “mais 1” é feito, automaticamente, pela estrutura para.</p><p>INDICAÇÃO DE LEITURA</p><p>Sugerimos agora a leitura do Capítulo 4, “Estrutura repetição”, do livro Fundamentos</p><p>da programação de computadores, de Ana Fernanda Gomes Ascêncio e Edilene</p><p>Aparecida V. de Campos (2002).</p><p>Observe que, nas três</p><p>formas de se fazer algoritmos, a única diferença entre as es-</p><p>truturas de repetição ENQUANTO e REPITA é que o ENQUANTO pergunta se pode</p><p>entrar no bloco e o REPITA pergunta se entrar no bloco e o REPITA pergunta se entrar pode sair. Já a estrutura PARA tem duas</p><p>diferenças em relação ao ENQUANTO e REPITA. Descobriu quais são?</p><p>INDICAÇÃO DE LEITURA</p><p>Sugerimos agora a leitura do Capítulo 4, “Estrutura repetição”, do livro Fundamentos</p><p>da programação de computadores, de Ana Fernanda Gomes Ascêncio e Edilene</p><p>Aparecida V. de Campos (2002).</p><p>54 UNIUBE</p><p>Esse texto traz uma reflexão sobre os padrões de comportamento em algoritmos que</p><p>possibilitam uma construção de conhecimentos acerca das estruturas de repetição,</p><p>visando uma otimização da lógica de programação.</p><p>A leitura indicada lhe permitirá visualizar outros detalhes relativos aos conceitos</p><p>apresentados sobre estruturas de repetição, bem como lhe dará acesso a outros</p><p>exemplos. Você perceberá que a estrutura que a autora utiliza é bem próxima da</p><p>estrutura que lhe foi apresentada. A diferença é que a estrutura que está sendo es-</p><p>tudada por você, neste capítulo, é voltada para uma exemplificação de aplicações da</p><p>área comercial de sistemas.</p><p>Exemplo 7 (uso de laços)</p><p>Elaborar um algoritmo que processe e mostre todos os números pares existen-</p><p>tes no intervalo de 1 a 100 (inclusive), variando de 1 em 1.</p><p>Algoritmo exemplo_7_sequencial_condicional_repeticao {nome do nosso</p><p>algoritmo}</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>cont : inteiro</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>cont 1</p><p>{corpo do algoritmo}</p><p>limpa-tela</p><p>mostre (‘mostrando os números</p><p>pares existentes entre 1 e 100’)</p><p>mostre (‘variando de 1 em 1’)</p><p>{laço de repetição}</p><p>enquanto cont <= 100 faca</p><p>se (cont resto 2) = 0 entao</p><p>mostre (cont, ‘ ’)</p><p>fim-se</p><p>cont cont + 1</p><p>fim-enquanto</p><p>mostre</p><p>mostre (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>o cont foi inicializado com 1, certo?</p><p>Observe a pergunta que o enquanto</p><p>está fazendo:</p><p>“enquanto cont <= 100 faca”</p><p>A resposta para esta primeira pergunta</p><p>é verdadeira, fazendo com sejam</p><p>executadas as instruções SE. Se a</p><p>instrução SE retornar verdadeiro, será</p><p>executada a instrução mostre, caso</p><p>seja falso, será executada a instrução</p><p>incremento de 1 para a variável cont,</p><p>que passará a ter como conteúdo o</p><p>valor 2.</p><p>O fim-enquanto fará com que a</p><p>sequência retorne ao enquanto para</p><p>verificar se esse novo conteúdo de cont</p><p>ainda é “menor ou igual” a 100... e</p><p>assim por diante.</p><p>UNIUBE 55</p><p>O incremento da variável cont acontecerá independentemente do resultado da</p><p>instrução SE, pois, sendo par ou ímpar o último valor analisado, deve-se incre-</p><p>mentar cont para se chegar ao próximo valor a ser verificado.</p><p>Exemplo 8 (uso de laços)</p><p>Elaborar um algoritmo que receba um número para ser o limite da sequência exibida,</p><p>a seguir. Processar e mostrar a sequência enquanto o valor for menor ou igual a</p><p>esse número limite informado. Verificar se o número é “maior que” ou “igual”.</p><p>2 , 3 , 5 , 9 , 17, ..., N</p><p>algoritmo exemplo_8_laco {nome do nosso algoritmo}</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>cont, n, aux : inteiro</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>cont 2</p><p>n 0</p><p>aux 1</p><p>{corpo do algoritmo}</p><p>limpa-tela</p><p>mostre (‘mostrando a sequência: 2 , 3 , 5 , 9 , 17, ..., N’)</p><p>mostre</p><p>mostre (‘digite o número limite ....:’)</p><p>leia (n)</p><p>{verificação se o valor de n é inválido}</p><p>se n < 2 entao</p><p>mostre (‘número inválido ... finalizando ...’)</p><p>senao</p><p>{laço de repetição}</p><p>enquanto cont <= n faca</p><p>mostre (cont, ‘ ’)</p><p>cont cont + aux</p><p>aux aux * 2</p><p>fim-enquanto</p><p>fim-se</p><p>mostre</p><p>mostre (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>A sequência 2, 3, 5, 9, 17, até N é</p><p>formada pela soma das variações dos</p><p>intervalos com o valor de cont.</p><p>Os intervalos são formados pelo dobro</p><p>do intervalo anterior, representados pela</p><p>variável aux.</p><p>56 UNIUBE</p><p>Exemplo 9 (uso de laços)</p><p>Elaborar um algoritmo que receba um número para ser o limite da sequência</p><p>colocada a seguir. Processar e mostrar a sequência enquanto o valor for menor</p><p>ou igual a esse número limite. Verificar se o número é “maior que” ou “igual”.</p><p>9 , 16 , 25 , 36 , 49, ..., N</p><p>algoritmo exemplo_9_laco {nome do nosso algoritmo}</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>cont, n, aux : inteiro</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>cont 9</p><p>n 0</p><p>aux 7</p><p>{corpo do algoritmo}</p><p>limpa-tela</p><p>mostre (‘mostrando a sequência: 9 , 16 , 25 , 36 , 49, ..., N’ )</p><p>mostre</p><p>mostre (‘digite o número limite ...’)</p><p>leia (n)</p><p>{verificação se o valor de n é inválido}</p><p>se n < 9 entao</p><p>mostre (‘número inválido ... finalizando ...’)</p><p>senao</p><p>{laço de repetição}</p><p>enquanto cont <= n faca</p><p>mostre (cont, ‘ ’)</p><p>cont cont + aux</p><p>aux aux + 2</p><p>fim-enquanto</p><p>fim-se</p><p>mostre</p><p>mostre (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>A sequência 9, 16, 25, 36, 49, até N é</p><p>formada pela soma das variações dos</p><p>intervalos com o cont.</p><p>Os intervalos (variável aux) são</p><p>formados por números ímpares,</p><p>iniciando em 7, com incrementos de 2.</p><p>UNIUBE 57</p><p>Exemplo 10 (uso de laços)</p><p>Elaborar um algoritmo que receba uma lista de números via teclado; quando for</p><p>digitado o número zero, deve-se finalizar a entrada e mostrar:</p><p>a) quantos números dessa lista são positivos;</p><p>b) quantos números dessa lista são negativos;</p><p>c) quantos números são pares;</p><p>d) quantos números são ímpares.</p><p>Observação: Vamos analisar o problema. Imagine uma lista de vários números,</p><p>podendo ser números positivos ou negativos. Imaginou? Agora vamos, in-</p><p>formá-los, um a um, via teclado, e processar as seguintes verificações:</p><p>i) caso o número seja positivo, somar 1 à variável qtd_pos;</p><p>ii) caso seja negativo, acumular mais 1 à variável qtd_neg;</p><p>iii) caso seja par, somar 1 à variável qtd_par; e,</p><p>iv) caso seja ímpar, somar 1 à variável qtd_imp.</p><p>IMPORTANTE!</p><p>São vários números, e por isso vamos precisar de um laço de repetição para receber</p><p>o primeiro número e processá-lo, voltar e receber o segundo número e processá-lo,</p><p>voltar e receber o terceiro número e processá-lo, e assim por diante, até que seja</p><p>digitado o número 0 (zero), que será nossa CONDIÇÃO DE PARADA para entrada</p><p>dos dados.</p><p>IMPORTANTE!</p><p>São vários números, e por isso vamos precisar de um laço de repetição para receber</p><p>o primeiro número e processá-lo, voltar e receber o segundo número e processá-lo,</p><p>voltar e receber o terceiro número e processá-lo, e assim por diante, até que seja</p><p>digitado o número 0 (zero), que será nossa CONDIÇÃO DE PARADA para entrada</p><p>dos dados.</p><p>58 UNIUBE</p><p>Vejamos, então, o algoritmo:</p><p>algoritmo exemplo_10_laco {nome do nosso algoritmo}</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>n, qtd_pos, qtd_neg, qtd_par, qtd_imp : inteiro</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>n 0</p><p>qtd_pos 0</p><p>qtd_neg 0</p><p>qtd_par 0</p><p>qtd_imp 0</p><p>{corpo do algoritmo}</p><p>limpa-tela</p><p>mostre (‘digite o primeiro número ...: ’)</p><p>leia (n)</p><p>{laço de repetição}</p><p>enquanto n <> 0 faca</p><p>{verificando se o número é positivo senao negativo}</p><p>se n > 0 entao</p><p>qtd_pos qtd_pos + 1</p><p>senao</p><p>qtd_neg qtd_neg + 1</p><p>fim-se</p><p>{verificando se o número é par senao ímpar}</p><p>se (n resto 2) = 0 entao</p><p>qtd_par qtd_par + 1</p><p>senao</p><p>qtd_imp qtd_imp + 1</p><p>fim-se</p><p>{recebendo o próximo número, e o fim-enquanto irá voltar lá em cima</p><p>e verificar se ele é diferente de 0 (zero); caso seja verdadeiro, entrará</p><p>no bloco de repetição e fará as verificações novamente}</p><p>mostre (‘digite o próximo número ...’)</p><p>leia (n)</p><p>UNIUBE 59</p><p>fim-enquanto</p><p>mostre (‘resultados finais processados’)</p><p>mostre (‘quantidade de números positivos =’, qtd_pos)</p><p>mostre (‘quantidade de números negativos =’, qtd_neg)</p><p>mostre (‘quantidade de números pares =’, qtd_par)</p><p>mostre (‘quantidade de números impares =’, qtd_imp)</p><p>mostre (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>AGORA É A SUA VEZ</p><p>Atividade 8</p><p>Elaborar um algoritmo para cada uma das sequências de números colocadas a seguir.</p><p>Em alguns casos, será necessário receber o número limite.</p><p>Você deverá fazer a ve-</p><p>rificação e mostrar a sequência até esse número.</p><p>Observação: O valor de N deverá ser informado via teclado e deverão ser VERIFI-</p><p>CADAS as entradas.</p><p>8a – 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15</p><p>8b – 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0</p><p>8c – 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... , N</p><p>8d – 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, ..., N (Nesta sequência, o valor deve ser</p><p>mostrado variando-se de 1 em 1, enquanto for menor ou igual ao número limite.)</p><p>Atividade 9</p><p>Elaborar um algoritmo que receba um número maior ou igual a zero. Processar e</p><p>mostrar o fatorial desse número.</p><p>Na matemática, o fatorial é representado pelo símbolo de exclamação. Sabe-se que</p><p>o fatorial de um número é a multiplicação de todos seus termos começando por 1,</p><p>variando-se de 1 em 1, até chegar ao número desejado. Como exemplo, vejamos o</p><p>fatorial do número 5.</p><p>5! = 1 * 2 * 3 * 4 * 5 = 120</p><p>AGORA É A SUA VEZ</p><p>Atividade 8</p><p>Elaborar um algoritmo para cada uma das sequências de números colocadas a seguir.</p><p>Em alguns casos, será necessário receber o número limite. Você deverá fazer a ve-</p><p>rificação e mostrar a sequência até esse número.</p><p>Observação: O valor de N deverá ser informado via teclado e deverão ser VERIFI-</p><p>CADAS as entradas.</p><p>8a – 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15</p><p>8b – 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0</p><p>8c – 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... , N</p><p>8d – 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, ..., N (Nesta sequência, o valor deve ser</p><p>mostrado variando-se de 1 em 1, enquanto for menor ou igual ao número limite.)</p><p>Atividade 9</p><p>Elaborar um algoritmo que receba um número maior ou igual a zero. Processar e</p><p>mostrar o fatorial desse número.</p><p>Na matemática, o fatorial é representado pelo símbolo de exclamação. Sabe-se que</p><p>o fatorial de um número é a multiplicação de todos seus termos começando por 1,</p><p>variando-se de 1 em 1, até chegar ao número desejado. Como exemplo, vejamos o</p><p>fatorial do número 5.</p><p>5! = 1 * 2 * 3 * 4 * 5 = 120</p><p>60 UNIUBE</p><p>Observações:</p><p>• Não existe fatorial de número negativo.</p><p>• O fatorial de zero é, por definição, igual a 1.</p><p>2.4 Validação</p><p>Validação é um recurso importante para a entrada e a saída dos dados, pois</p><p>visa garantir a integridade e a veracidade dos mesmos.</p><p>É utilizada, principalmente, em processos de entrada de dados. Existem várias</p><p>formas de uso, dentre elas podemos destacar:</p><p>• Validação simples (off time): é aquela que permite a entrada de todos os</p><p>dados e em seguida inicia-se o processo de validação, encerrando-se quando</p><p>é detectado o primeiro erro.</p><p>• Validação simples (in time): é aquela que, ao primeiro erro de entrada, can-</p><p>cela o processo. Não é utilizada com frequência, pois não permite a correção</p><p>do erro e encerra o algoritmo, desconsiderando as entradas que estavam</p><p>corretas. Esta foi a que usamos até agora.</p><p>• Validação corretiva (off time): é aquela que permite a correção do erro após ter</p><p>sido completado o processo de entrada inicial utilizando também as estruturas de</p><p>repetição; neste caso, todas as entradas são executadas, certas ou erradas, e,</p><p>posteriormente, é feita a correção somente daquelas que foram feitas com erro.</p><p>• Validação corretiva (in time): é aquela que permite a correção do erro durante</p><p>o processo de entrada, através da utilização de estruturas de repetição (en-</p><p>quanto, repita); neste caso, a cada entrada errada a próxima não é efetuada</p><p>enquanto o dado não for corrigido. Esta é a mais utilizada!</p><p>Para as validações corretivas é ideal a utilização da estrutura ENQUANTO,</p><p>pois sua construção permite avaliar a condição antes da entrada no bloco de</p><p>repetição. A estrutura REPITA, por sua vez, entra no bloco, executa alguma</p><p>instrução e avalia ao final, fazendo com que seja necessária a inclusão de uma</p><p>estrutura condicional fora ou dentro da estrutura de repetição.</p><p>Observações:</p><p>• Não existe fatorial de número negativo.</p><p>• O fatorial de zero é, por definição, igual a 1.</p><p>UNIUBE 61</p><p>Este processo faz com que o algoritmo se torne mais lento. Nos exemplos apre-</p><p>sentados, a estrutura REPITA foi usada para que você possa aprender a utilizá-la,</p><p>quando necessário.</p><p>Vamos aos exemplos de validação corretiva (in time).</p><p>Exemplo 11 (uso de laço corretivo)</p><p>Elaborar um algoritmo que receba o nome, o sexo, o valor da hora trabalhada</p><p>e a quantidade de horas trabalhadas no mês.</p><p>Consistências:</p><p>a) o nome é obrigatório, não podendo ser vazio (vazio é quando o usuário</p><p>pressiona ENTER sem digitar nada);</p><p>b) o valor da hora trabalhada não pode ser nulo (zero) ou inferior a zero;</p><p>c) a carga horária mensal não pode ser nula (zero) ou inferior a zero.</p><p>Processar e mostrar: o nome, sexo e o valor do salário a receber.</p><p>Resolução do Exemplo 11 utilizando o ENQUANTO para as validações de</p><p>entrada:</p><p>algoritmo exemplo_11_laco_corretivo_com_enquanto {nome do nosso algoritmo}</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>nm : caracter</p><p>sal, vl_ht, nr_ht : real</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>nm ‘ ’</p><p>sal 0</p><p>vl_ht 0</p><p>nr_ht 0</p><p>{corpo do algoritmo}</p><p>limpa-tela</p><p>mostre (‘digite o nome do funcionário ...’)</p><p>leia (nm)</p><p>{laço para validar corretivamente o nome para não ser VAZIO, representado</p><p>pelas}</p><p>62 UNIUBE</p><p>{aspas simples JUNTAS }</p><p>enquanto (nm = ‘‘) faca</p><p>mostre (‘nome inválido... digite outro ...’)</p><p>leia (nm)</p><p>fim-enquanto</p><p>mostre (‘digite o valor da hora trabalhada ...’)</p><p>leia (vl_ht)</p><p>{laço para validar corretivamente para ser maior que zero}</p><p>enquanto vl_ht <= 0 faca</p><p>mostre (‘valor da hora trabalhada está inválido... digite outro ...’)</p><p>leia (vl_ht)</p><p>fim-enquanto</p><p>mostre (‘digite o número de hora que ele trabalhou no mês ...’)</p><p>leia (nr_ht)</p><p>{laço para validar corretivamente para ser maior que zero}</p><p>enquanto nr_ht <= 0 faca</p><p>mostre (‘número de horas trabalhadas inválido... digite outro ...’)</p><p>leia (nr_ht)</p><p>fim-enquanto</p><p>{cálculo do salário, após ter certeza de que todos os dados estão CORRETOS}</p><p>sal vl_ht * nr_ht</p><p>mostre (nm, ‘ irá receber R$’, sal)</p><p>mostre (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>Resolução do Exemplo 11 utilizando o REPITA para as validações de entrada:</p><p>algoritmo exemplo_11_laco_corretivo_com_repita {nome do nosso algoritmo}</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>nm : caracter</p><p>sal, vl_ht, nr_ht : real</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>nm ‘ ’</p><p>sal 0</p><p>vl_ht 0</p><p>nr_ht 0</p><p>{corpo do algoritmo}</p><p>limpa-tela</p><p>mostre (</p><p>leia (nm)</p><p>mostre ( mostre (</p><p>UNIUBE 63</p><p>mostre (‘digite o nome do funcionário ...’)</p><p>leia (nm)</p><p>{laço para validar corretivamente o nome para não ser VAZIO, representado</p><p>pelas aspas simples JUNTAS }</p><p>se nm = ‘‘ entao</p><p>repita</p><p>mostre (‘nome inválido... digite outro ...’)</p><p>leia (nm)</p><p>ate-que nm <>”</p><p>fim-se</p><p>mostre (‘digite o valor da hora trabalhada ...’)</p><p>leia (vl_ht)</p><p>{laço para validar corretivamente para ser maior que zero}</p><p>se vl_ht <= 0 entao</p><p>repita</p><p>mostre (‘valor da hora trabalhada está inválido... digite outro ...’)</p><p>ate-que vl_ht > 0</p><p>fim-se</p><p>mostre (‘digite o número de hora que ele trabalhou no mês ...’)</p><p>leia (nr_ht)</p><p>{laço para validar corretivamente para ser maior que zero}</p><p>se nr_ht <= 0 entao</p><p>repita</p><p>mostre (‘número de horas trabalhadas inválido... digite outro ...’)</p><p>leia (nr_ht)</p><p>ate-que nr_ht > 0</p><p>fim-se</p><p>{cálculo do salário, após ter certeza de que todos os dados estão CORRETOS}</p><p>sal vl_ht * nr_ht</p><p>mostre (nm, ‘irá receber R$’, sal)</p><p>mostre (‘acabou ...’ )</p><p>pausa</p><p>fim</p><p>Exemplo 12 (uso de laço corretivo)</p><p>Elaborar um algoritmo para cada uma das sequências abaixo. Receber o número</p><p>inicial da sequência e validar para que este seja inserido corretamente.</p><p>Observe que a</p><p>estrutura diz:</p><p>REPITA...</p><p>ATÉ-QUE</p><p>Então, só sairá do</p><p>bloco quando a</p><p>condição for</p><p>verdadeira.</p><p>64 UNIUBE</p><p>a) N, ..., 8, 7, 6, 5, 4, 3, 2, 1, 0</p><p>Resolução do Exemplo 12a utilizando o ENQUANTO para as validações de</p><p>entrada e amostragem da sequência:</p><p>Algoritmo exemplo_12_a_laco_corretivo_com_enquanto {nome do nosso algoritmo}</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>n : inteiro</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>n 0</p><p>{corpo do algoritmo}</p><p>limpa-tela</p><p>mostre (‘digite número limite inicial...’)</p><p>leia (n)</p><p>{laço para validar corretivamente o nome para não ser vazio, representado</p><p>pelas aspas simples juntas}</p><p>enquanto n <= 0 faca</p><p>mostre (‘número inválido... digite outro positivo...’)</p><p>leia (n)</p><p>fim-enquanto</p><p>{laço para o cálculo da sequência}</p><p>enquanto n >= 0 faca</p><p>mostre (‘número inválido... digite outro positivo...’)</p><p>leia (n)</p><p>fim-enquanto</p><p>{laço para o cálculo da sequência’}</p><p>enquanto n >= 0 faca</p><p>mostre (n, ‘ ’)</p><p>n n – 1</p><p>fim-enquanto</p><p>mostre</p><p>mostre (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>Enquanto o</p><p>usuário digitar</p><p>um valor</p><p>negativo ou</p><p>nulo (zero),</p><p>deverá digitar</p><p>outro número.</p><p>Enquanto o</p><p>conteúdo de n for</p><p>maior ou igual a</p><p>zero será</p><p>mostrado esse</p><p>conteúdo. Observe</p><p>que estamos</p><p>subtraindo 1 do</p><p>conteúdo da</p><p>variável n.</p><p>UNIUBE 65</p><p>a) N, ..., 8, 7, 6, 5, 4, 3, 2, 1, 0</p><p>Resolução do Exemplo 12a utilizando o REPITA para as validações de</p><p>entrada e amostragem da sequência:</p><p>algoritmo exemplo_12_a_laco_corretivo_com_repita {nome do nosso algoritmo}</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>n : inteiro</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>n 0</p><p>{corpo do algoritmo}</p><p>limpa-tela</p><p>mostre (‘digite número limite inicial...’)</p><p>leia (n)</p><p>{laço para validar corretivamente o nome para não ser vazio, representado</p><p>pelas aspas simples juntas}</p><p>Se n <= 0 entao</p><p>Repita</p><p>mostre (‘número inválido... digite outro positivo....: ’)</p><p>leia (n)</p><p>ate-que n > 0</p><p>fim-se</p><p>{laço para o cálculo da sequência}</p><p>repita</p><p>mostre (n, ‘ ’)</p><p>n n – 1</p><p>ate-que n < 0</p><p>mostre</p><p>mostre (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>b) N, ..., 5, 4, 3, 2, 1, 0, –1, –2, –3, –4, –5, ..., –N</p><p>Nesta sequência, o valor de N negativo será o mesmo valor N positivo,</p><p>então, receber o N positivo e multiplicá-lo por –1, armazenando o resultado</p><p>Se o conteúdo de n for menor ou igual</p><p>a zero, o bloco de repetição repita irá</p><p>repetir até que n seja maior que zero.</p><p>O repita mostra o número uma vez e,</p><p>no final, pergunta se pode voltar e</p><p>mostrar novamente. Observe que</p><p>estamos subtraindo 1 do conteúdo da</p><p>variável n. mostre (n,</p><p>n</p><p>mostre (n, mostre (n,</p><p>66 UNIUBE</p><p>em outra variável. Lembrando que não podemos criar nomes de variáveis</p><p>com símbolos.</p><p>Resolução do Exemplo 12b utilizando o ENQUANTO para as validações de</p><p>entrada e REPITA para amostragem da sequência:</p><p>algoritmo exemplo_12_b_laco_corretivo {nome do nosso algoritmo}</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>n, aux : inteiro</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>n 0</p><p>aux 0</p><p>{corpo do algoritmo}</p><p>limpa-tela</p><p>mostre (‘digite número limite inicial...’)</p><p>leia (n)</p><p>{laço para validar corretivamente o nome para não ser vazio, representado</p><p>pelas aspas simples juntas}</p><p>Se n <= 0 entao</p><p>Repita</p><p>mostre (‘número inválido... digite outro positivo...’)</p><p>leia (n)</p><p>ate-que n > 0</p><p>fim-se</p><p>{recebendo o valor de n e tornando-o negativo}</p><p>aux n * ( –1 )</p><p>aux n * ( –1 )</p><p>{laço para o cálculo da sequência}</p><p>repita</p><p>mostre (n, ‘ ’)</p><p>n n – 1</p><p>ate-que n >= aux</p><p>mostre</p><p>mostre (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>Se o conteúdo de n for menor ou igual</p><p>a zero, o bloco de repetição repita irá</p><p>repetir até que n seja maior que zero.</p><p>UNIUBE 67</p><p>c) 1, 2, 3, 4, 8, 9, 10, 11, 22, 23, 24, 25, ..., N</p><p>Resolução do Exemplo 12c utilizando o REPITA para as validações de</p><p>entrada e ENQUANTO para amostragem da sequência:</p><p>algoritmo exemplo_12_c_laco_corretivo {nome do nosso algoritmo}</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>n, cont1, cont2 : inteiro</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>n 0</p><p>cont1 1</p><p>cont2 1</p><p>{corpo do algoritmo}</p><p>limpa-tela</p><p>mostre (‘digite número limite inicial...’)</p><p>leia (n)</p><p>{laço para validar corretivamente o nome para não ser vazio, representado</p><p>pelas aspas simples juntas}</p><p>se n <= 0 entao</p><p>repita</p><p>mostre (‘número inválido... digite outro positivo..’)</p><p>leia (n)</p><p>ate-que n > 0</p><p>fim-se</p><p>{laço para o cálculo da sequência}</p><p>enquanto cont1 <= n faca</p><p>enquanto (cont2 <= 4) e (cont1 <= n) faca</p><p>mostre (cont1, ‘ ’)</p><p>cont1 cont1 + 1</p><p>cont2 cont2 + 1</p><p>fim-enquanto</p><p>cont2 1</p><p>cont1 (cont1 – 1) * 2</p><p>fim-enquanto</p><p>mostre</p><p>mostre (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>Se o conteúdo de n for menor ou igual</p><p>a zero, o bloco de repetição repita irá</p><p>repetir até que n seja maior que zero.</p><p>Este primeiro ENQUANTO é o</p><p>responsável por VARIAR de 1 até n (1, 2,</p><p>3, 4, 8, 9, 10, 11, 22, 23, ... n).</p><p>Veja que o valor de cont1 passa de 4 a</p><p>8, ... de 11 a 22, ... e assim por diante.</p><p>FAÇA A SIMULAÇÃO para você</p><p>entender por que utilizamos o “–1”.</p><p>O segundo ENQUANTO é o</p><p>responsável pela exibição dos</p><p>números em grupos de quatro, ou seja,</p><p>1, 2, 3, 4 – 8, 9, 10, 11... etc.</p><p>68 UNIUBE</p><p>d) N, ..., 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, ..., N</p><p>Resolução do Exemplo 12d utilizando o REPITA para as validações de</p><p>entrada e ENQUANTO para amostragem da sequência:</p><p>algoritmo exemplo_12_d_laco_corretivo {nome do nosso algoritmo}</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>n, aux : inteiro</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>n 0</p><p>aux 1</p><p>{corpo do algoritmo}</p><p>limpa-tela</p><p>mostre (‘digite número limite inicial...: ’)</p><p>leia (n)</p><p>{laço para validar corretivamente o nome para não ser vazio, representado</p><p>pelas aspas simples juntas}</p><p>se n <= 0 entao</p><p>repita</p><p>mostre (‘número inválido... digite outro positivo..:’)</p><p>leia (n)</p><p>ate-que n > 0</p><p>fim-se</p><p>{guardando o conteúdo de n para o final}</p><p>aux n</p><p>{laço para o cálculo da sequência}</p><p>enquanto n >=0 faca</p><p>mostre (n, ‘ ’)</p><p>n n – 1</p><p>fim-enquanto</p><p>n 1</p><p>enquanto n <= aux faca</p><p>mostre (n, ‘ ’)</p><p>n n + 1</p><p>fim-enquanto</p><p>mostre</p><p>mostre (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>Se o conteúdo de n for menor ou igual</p><p>a zero, o bloco de repetição repita, irá</p><p>repetir até que n seja maior que zero.</p><p>Este bloco de repetição ENQUANTO é</p><p>o responsável por mostrar os valores</p><p>de N até 0.</p><p>Observe que n está sendo</p><p>decrementado em 1, ou seja,</p><p>subtraímos 1 do conteúdo de n.</p><p>Este é o responsável por mostrar de 1</p><p>até AUX.</p><p>Lembre-se de que usamos o aux para</p><p>guardar o valor original de n (valor de</p><p>entrada).</p><p>UNIUBE 69</p><p>e) 0, 1, 2, 3, 4, ..., N, ..., 4, 3, 2, 1, 0</p><p>Resolução do Exemplo 12e utilizando o REPITA para as validações de</p><p>entrada e ENQUANTO para amostragem da sequência:</p><p>algoritmo exemplo_12_e_laco_corretivo {nome do nosso algoritmo}</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>n, aux : inteiro</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>n 0</p><p>aux 0</p><p>{corpo do algoritmo}</p><p>limpa-tela</p><p>mostre (‘digite número limite inicial...’)</p><p>leia (n)</p><p>{laço para validar corretivamente o nome para não ser vazio, representado</p><p>pelas aspas simples juntas}</p><p>se n <= 0 entao</p><p>repita</p><p>mostre (‘número inválido... digite outro positivo....: ’)</p><p>leia (n)</p><p>ate-que n > 0</p><p>fim-se</p><p>{laço para o cálculo da sequência, AUX variando de até (N – 1)}</p><p>enquanto aux < n faca</p><p>mostre (aux, ‘ ‘)</p><p>aux aux + 1</p><p>fim-enquanto</p><p>{laço para o cálculo da sequência, N variando de N até 0}</p><p>enquanto n >= 0 faca</p><p>mostre (n, ‘ ’)</p><p>n n – 1</p><p>fim-enquanto</p><p>mostre</p><p>mostre (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>Se o conteúdo de n for menor ou igual</p><p>a zero, o bloco de repetição repita, irá</p><p>repetir até que n seja maior que zero.</p><p>70 UNIUBE</p><p>AGORA É A SUA VEZ</p><p>As atividades a seguir deverão ser desenvolvidas utilizando as três estruturas de</p><p>repetição (enquanto, repita e para).</p><p>Atividade 10 (uso do laço):</p><p>Elabore um algoritmo que receba 50 números inteiros. Processar e mostrar quantos</p><p>desses números são: positivos, negativos, quantos são maiores que 500, qual é o</p><p>maior e qual é o menor número da lista.</p><p>Atividade 11 (uso do laço):</p><p>Analise o padrão de comportamento da sequência:</p><p>0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ..., N</p><p>Elaborar um algoritmo que processe e mostre no vídeo</p><p>a variação desta sequência.</p><p>Para tal, receber um número N que será o limite, ou seja, processar e mostrar a</p><p>sequência enquanto for menor ou igual a N. Fazer com que a entrada do número limite</p><p>seja maior que 1.</p><p>Atividade 12 (uso do laço):</p><p>Uma rainha requisitou os serviços de um monge e disse-lhe que pagaria qualquer</p><p>preço. O monge, necessitando de alimentos, indagou à rainha sobre o pagamento,</p><p>se poderia ser feito com grãos de trigo dispostos num tabuleiro de xadrez, de tal</p><p>forma que o primeiro quadro deveria conter apenas um grão e os quadros subse-</p><p>quentes, o dobro do quadro anterior. A rainha achou o trabalho barato e pediu que</p><p>o serviço fosse executado, sem se dar conta de que seria impossível efetuar o</p><p>pagamento.</p><p>Elabore um algoritmo que calcule e mostre o somatório do número de grãos que o</p><p>monge esperava receber, sabendo que um tabuleiro de xadrez possui 64 quadrantes.</p><p>IMPORTANTE!</p><p>Neste exercício será necessário utilizar o tipo real para declaração das variáveis. Faça</p><p>o teste e explique o porquê desse cuidado.</p><p>AGORA É A SUA VEZ</p><p>As atividades a seguir deverão ser desenvolvidas utilizando as três estruturas de</p><p>repetição (enquanto, repita e para).</p><p>Atividade 10 (uso do laço):</p><p>Elabore um algoritmo que receba 50 números inteiros. Processar e mostrar quantos</p><p>desses números são: positivos, negativos, quantos são maiores que 500, qual é o</p><p>maior e qual é o menor número da lista.</p><p>Atividade 11 (uso do laço):</p><p>Analise o padrão de comportamento da sequência:</p><p>0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ..., N</p><p>Elaborar um algoritmo que processe e mostre no vídeo a variação desta sequência.</p><p>Para tal, receber um número N que será o limite, ou seja, processar e mostrar a</p><p>sequência enquanto for menor ou igual a N. Fazer com que a entrada do número limite</p><p>seja maior que 1.</p><p>Atividade 12 (uso do laço):</p><p>Uma rainha requisitou os serviços de um monge e disse-lhe que pagaria qualquer</p><p>preço. O monge, necessitando de alimentos, indagou à rainha sobre o pagamento,</p><p>se poderia ser feito com grãos de trigo dispostos num tabuleiro de xadrez, de tal</p><p>forma que o primeiro quadro deveria conter apenas um grão e os quadros subse-</p><p>quentes, o dobro do quadro anterior. A rainha achou o trabalho barato e pediu que</p><p>o serviço fosse executado, sem se dar conta de que seria impossível efetuar o</p><p>pagamento.</p><p>Elabore um algoritmo que calcule e mostre o somatório do número de grãos que o</p><p>monge esperava receber, sabendo que um tabuleiro de xadrez possui 64 quadrantes.</p><p>IMPORTANTE!</p><p>Neste exercício será necessário utilizar o tipo real para declaração das variáveis. Faça</p><p>o teste e explique o porquê desse cuidado.</p><p>UNIUBE 71</p><p>Resumo</p><p>Neste capítulo, dentre os assuntos abordados, enfatizamos:</p><p>• estrutura condicional (SE) – executa ação(ões) de acordo com o resultado</p><p>da(s) condição(ões) analisada(s). Neste caso, podemos ter estrutura simples,</p><p>composta ou, ainda, múltipla.</p><p>Exemplo de estrutura condicional simples:</p><p>se condicao entao</p><p>instrucao 1</p><p>instrucao 2</p><p>fim-se</p><p>Exemplo de estrutura condicional composta:</p><p>se condicao entao</p><p>instrucao 1</p><p>instrucao 2</p><p>senao</p><p>instrucao 3</p><p>instrucao 4</p><p>fim-se</p><p>• estruturas de repetição: são utilizadas para tarefas que se repetem de acordo</p><p>com uma ou mais condições. Temos:</p><p>I. Enquanto: as instruções são executadas enquanto uma condição for verda-</p><p>deira. Neste caso, a condição é testada já na primeira execução.</p><p>instrucao 1</p><p>instrucao 2</p><p>instrucao 1 instrucao 1</p><p>instrucao 2 instrucao 2</p><p>instrucao 1</p><p>instrucao 2</p><p>instrucao 1 instrucao 1</p><p>instrucao 2 instrucao 2</p><p>instrucao 3</p><p>instrucao 4</p><p>instrucao 3 instrucao 3</p><p>instrucao 4 instrucao 4</p><p>72 UNIUBE</p><p>Enquanto <condicao> faca</p><p>instrucao 1</p><p>instrucao 2</p><p>instrucoes n</p><p>fim-enquanto</p><p>II. Repita: nessa estrutura, temos a execução das instruções pelo menos uma</p><p>vez e, no final do bloco repita, é verificada a condição e, caso ela seja FALSA,</p><p>retornará e executará novamente as instruções.</p><p>Repita</p><p>instrucao 1</p><p>instrucao 2</p><p>instrucoes n</p><p>Ate-que condicao</p><p>III. Para: nessa estrutura temos um intervalo de números que vai de um valor</p><p>inicial até um valor final, variando de um em um, com incremento automático.</p><p>Pode, ainda, começar de um valor final e decrescer até atingir um valor inicial,</p><p>variando de um em um, com decremento automático.</p><p>Para x de var_inici ate var_fim faca</p><p>instrucao 1</p><p>instrucao 2</p><p>instrucoes n</p><p>Fim-para</p><p>instrucao 1 instrucao 1</p><p>instrucao 2 instrucao 2</p><p>instrucoes n</p><p>instrucao 1 instrucao 1</p><p>instrucoes n instrucoes n</p><p>instrucao 1 instrucao 1</p><p>instrucao 2 instrucao 2</p><p>instrucoes n</p><p>instrucao 1 instrucao 1</p><p>instrucoes n instrucoes n</p><p>instrucao 1 instrucao 1</p><p>instrucao 2 instrucao 2</p><p>instrucoes n</p><p>instrucao 1 instrucao 1</p><p>instrucoes n instrucoes n</p><p>UNIUBE 73</p><p>Referências</p><p>ASCÊNCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida V. de. Fundamentos da</p><p>programação de computadores. São Paulo: Pearson Prentice Hall, 2002.</p><p>FARRER, Harry. Algoritmos estruturados. Rio de Janeiro: LTC, 1999.</p><p>FORBELLONE, André Luiz Villar. Lógica de programação: a construção de algoritmos e</p><p>estruturas de dados. São Paulo: Pearson Prentice Hall, 2005.</p><p>MANZANO, José Augusto. Algoritmos: lógica para desenvolvimento de programação. São</p><p>Paulo: Érica, 1996.</p><p>UNIUBE 75</p><p>Daniela Resende Silva Orbolato / Ernani Cláudio Borges</p><p>Introdução</p><p>Caro(a) aluno(a),</p><p>A partir deste capítulo, a utilização do computador será de fundamental</p><p>importância, pois, após fazermos uma breve recordação de exercícios</p><p>dos capítulos anteriores, vamos aproveitar para codificá-los para a</p><p>linguagem de programação PascalZim.</p><p>Na sequência, serão apresentados os conceitos de “modularização” e</p><p>sua utilização na otimização do código de algoritmos.</p><p>Objetivos</p><p>Ao final deste capítulo, você deverá ser capaz de:</p><p>• identificar os principais comandos da linguagem de programação</p><p>PascalZim;</p><p>• identificar diferenças entre os módulos de procedimentos e</p><p>funções;</p><p>• analisar a reutilização de blocos de algoritmos na solução de</p><p>problemas matemáticos e computacionais;</p><p>• otimizar programas com a utilização de módulos de algoritmos.</p><p>INDICAÇÃO DE LEITURA</p><p>Para aprofundar os conceitos e exemplos apresentados, sugerimos a leitura</p><p>do Capítulo 10, “Sub-rotinas”, do livro Fundamentos da programação de</p><p>computadores, de autoria Ana Fernanda Gomes Ascêncio e Edilene Apa-</p><p>recida V. de Campos (2002).</p><p>INDICAÇÃO DE LEITURA</p><p>Para aprofundar os conceitos e exemplos apresentados, sugerimos a leitura</p><p>do Capítulo 10, “Sub-rotinas”, do livro Fundamentos da programação de</p><p>computadores, de autoria Ana Fernanda Gomes Ascêncio e Edilene Apa-</p><p>recida V. de Campos (2002).</p><p>Linguagem de</p><p>programação</p><p>PascalZim e</p><p>modularização</p><p>Capítulo</p><p>3</p><p>76 UNIUBE</p><p>Esquema</p><p>3.1 Comandos do aplicativo PascalZim</p><p>3.1.1 Itens fundamentais para compor a estrutura de</p><p>algarismos</p><p>3.1.2 Estrutura sequencial</p><p>3.1.3 Estrutura condicional</p><p>3.1.4 Estrutura de repetição</p><p>3.2 Modularização</p><p>3.2.1 Procedimento (procedure)</p><p>3.2.2 Função (function)</p><p>3.1 Comandos do aplicativo PascalZim</p><p>Iniciaremos nossos estudos pelos tipos de dados. Vamos recordá-los!</p><p>Temos os tipos inteiro, inteiro-longo, o real, o lógico e o caracter.</p><p>Agora, analise o Quadro 1, e conheça esses tipos na linguagem de programação</p><p>PASCALZIM:</p><p>Quadro 1: Comparativo Algoritmo x PascalZim.</p><p>EM ALGORITMO EM PASCALZIM</p><p>CAPACIDADE DE ARMAZENAMENTO</p><p>VALOR MÍNIMO VALOR MÁXIMO</p><p>Inteiro Integer – 32.767 +32.768</p><p>Inteiro-longo Longint – 2.147.483.648 2.147.483.647</p><p>Real Real 2.9 x 10-39 1.7 x 1038</p><p>Lógico Boolean True (verdadeiro) / false (falso)</p><p>Caracter String 255 caracteres</p><p>Caracter (um caracter) Char 1 caracter</p><p>Continuando a relembrar:</p><p>Qual é a função do comando mostre?Qual é a função do comando mostre?</p><p>UNIUBE 77</p><p>O comando mostre serve para mostrar ou escrever, no vídeo,</p><p>uma mensagem ou conteúdo de variável. Em PascalZim, es-</p><p>creve-se “WRITE”, e como vamos trabalhar visualizando as</p><p>saídas no vídeo, vamos acrescentar o sufixo “LN” ao comando</p><p>WRITE, ou seja, “WRITELN”.</p><p>E a função do comando leia?</p><p>O comando leia irá</p><p>receber uma informação pelo teclado e irá armazená-la em</p><p>uma variável. Em PascalZim, será escrito “READ” ou “READLN”.</p><p>Você se lembra qual a função seta para esquerda ( )?</p><p>Ela representa uma atribuição interna (como colocar um dado em uma variável).</p><p>Na linguagem PascalZim, em seu lugar, utilizaremos “dois pontos igual” ( := ).</p><p>Exemplo</p><p>EM ALGORITMO EM PASCALZIM</p><p>x 9.75 x := 9.75</p><p>nome ‘carla’ nome := ‘carla’</p><p>resp verdadeiro resp := true</p><p>E a função do comando leia?</p><p>Você se lembra qual a função seta para esquerda ( )?</p><p>LN</p><p>O sufixo “LN” pode-se</p><p>traduzir em “NEXT</p><p>LINE”, que em nossa</p><p>linguagem representa</p><p>“PRÓXIMA LINHA”. A</p><p>função do “LN” é fazer</p><p>com que o “cursor</p><p>piscante” que está no</p><p>vídeo passe para a</p><p>linha abaixo.</p><p>78 UNIUBE</p><p>3.1.1 Itens fundamentais para compor a estrutura de algoritmos</p><p>Os principais operadores e operandos que iremos utilizar em algoritmos são:</p><p>• Operadores aritméticos em PascalZim</p><p>Adição +</p><p>Subtração –</p><p>Multiplicação *</p><p>Divisão /</p><p>• Operadores lógicos em PascalZim</p><p>ALGORITMO PASCALZIM</p><p>Conjunção e and</p><p>Disjunção ou or</p><p>Negação não not</p><p>Tabela 1: Tabela verdade dos operadores lógicos.</p><p>AND (E) OR (OU) NOT (NÃO)</p><p>A B RESULTADO A B RESULTADO not V F</p><p>V V V V V V not F V</p><p>V F F V F V</p><p>F V F F V V</p><p>F F F F F F</p><p>IMPORTANTE!</p><p>• Note que o operador lógico “AND” só terá resultado verdadeiro se as condições</p><p>de A e B forem verdadeiras; caso contrário, o resultado será falso.</p><p>• O operador lógico “OR” somente terá resultado falso se ambas as condições forem</p><p>falsas.</p><p>IMPORTANTE!</p><p>• Note que o operador lógico “AND” só terá resultado verdadeiro se as condições</p><p>de A e B forem verdadeiras; caso contrário, o resultado será falso.</p><p>• O operador lógico “OR” somente terá resultado falso se ambas as condições forem</p><p>falsas.</p><p>UNIUBE 79</p><p>• Já o operador “NOT” serve para inverter o resultado; o que não é verdadeiro é falso,</p><p>e o que não é falso é verdadeiro.</p><p>• Operadores relacionais em PascalZim</p><p>EM PASCALZIM</p><p>igual a =</p><p>diferente de <></p><p>maior que ></p><p>menor que <</p><p>maior ou igual a >=</p><p>menor ou igual a <=</p><p>• Operadores caracteres (literais)</p><p>concatenação positiva +</p><p>Também conhecida por “união de</p><p>caracteres”</p><p>• Principais funções matemáticas</p><p>ALGORITMO PASCALZIM DESCRIÇÃO DA FUNÇÃO</p><p>quadrado ( ) sqr ( ) = retorna o quadrado de um número</p><p>raiz ( ) sqrt ( ) = retorna a raiz quadrada de um número</p><p>resto mod = retorna o resto da divisão entre dois números</p><p>INTEIROS</p><p>quociente div = retorna o quociente da divisão entre dois números</p><p>INTEIROS</p><p>parte-inteira ( ) int ( ) = retorna a parte inteira de número fracionário</p><p>trunca trunc ( ) = converte o tipo fracionário (real) para tipo inteiro</p><p>80 UNIUBE</p><p>• Prioridade das operações</p><p>EM ALGORITMOS E PASCALZIM</p><p>1º - parênteses ( )</p><p>2º - funções</p><p>3º - multiplicação / divisão</p><p>4º - adição / subtração</p><p>5º - operadores lógicos</p><p>Vamos, agora, rever a estrutura de um algoritmo:</p><p>RELEMBRANDO</p><p>Dentro das ASPAS simples e dentro das CHAVES podemos utilizar acento, cedilha,</p><p>símbolos, dentre outros caracteres.</p><p>SAIBA MAIS</p><p>UNIT – É uma coleção de constantes, tipos de dados, variáveis, procedimentos e</p><p>funções. Cada UNIT é um programa separado, sendo considerada uma “BIBLIO-</p><p>TECA”. As principais UNITs são: CRT, DOS, GRAPH.</p><p>No exemplo, usamos a CRT, a qual possui rotinas relativas à tela do computador,</p><p>como o tipo, cor da letra, cor do fundo, coordenadas de linhas e colunas, dentre</p><p>outras.</p><p>RELEMBRANDO</p><p>Dentro das ASPAS simples e dentro das CHAVES podemos utilizar acento, cedilha,</p><p>símbolos, dentre outros caracteres.</p><p>SAIBA MAIS</p><p>UNIT – É uma coleção de constantes, tipos de dados, variáveis, procedimentos e</p><p>funções. Cada UNIT é um programa separado, sendo considerada uma “BIBLIO-</p><p>TECA”. As principais UNITs são: CRT, DOS, GRAPH.</p><p>No exemplo, usamos a CRT, a qual possui rotinas relativas à tela do computador,</p><p>como o tipo, cor da letra, cor do fundo, coordenadas de linhas e colunas, dentre</p><p>outras.</p><p>UNIUBE 81</p><p>ALGORITMO PASCALZIM</p><p>algoritmo nome_tal</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>a, b : inteiro</p><p>resp : logica</p><p>nome : caracter</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis é bom para tirar</p><p>lixo de memória e sabermos qual o</p><p>conteúdo inicial da variável}</p><p>A 0</p><p>B 0</p><p>resp verdadeiro</p><p>nome ‘ ’</p><p>{quando for caracter, irá receber espaço</p><p>em branco entre aspas}</p><p>{corpo do algoritmo, instruções e</p><p>comandos}</p><p>Comando 1</p><p>Comando 2</p><p>Comando 3</p><p>....</p><p>Pausa {pausa fixa}</p><p>fim</p><p>program nome_tal;</p><p>{UNIT – biblioteca de vídeo. Necessária no PASCAL}</p><p>{no PascalZim não é preciso, pois já está</p><p>implementado}</p><p>uses crt;</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>a, b : integer;</p><p>resp : boolean;</p><p>nome : string;</p><p>{bloco do código principal}</p><p>begin</p><p>{inicializar variáveis é bom para tirar lixo de</p><p>memória e sabermos qual o conteúdo</p><p>inicial da variável}</p><p>A := 0;</p><p>B := 0;</p><p>resp := true;</p><p>nome := ‘ ’;</p><p>{quando for caracter, irá receber espaço</p><p>em branco entre aspas}</p><p>{corpo do algoritmo, instruções e</p><p>comandos}</p><p>Comando 1;</p><p>Comando 2;</p><p>Comando 3 ;</p><p>....</p><p>Readln; {pausa fixa}</p><p>end.</p><p>IMPORTANTE!</p><p>• O “ponto e vírgula” ( ; ) na linguagem PascalZim indica que a instrução está fina-</p><p>lizada e poderá passar para a próxima instrução ou linha de comando;</p><p>• No PascalZim o “end.” no final do programa deverá ser acompanhado do ponto</p><p>final;</p><p>• Só “não” terá ponto e vírgula em abertura de blocos, como o tipo:</p><p>• var</p><p>• begin</p><p>a, b : inteiro a, b : inteiro</p><p>resp : logica resp : logica</p><p>nome : caracter</p><p>a, b : inteiro a, b : inteiro</p><p>nome : caracter nome : caracter</p><p>{inicializar variáveis é bom para tirar {inicializar variáveis é bom para tirar</p><p>A A</p><p>B B</p><p>resp resp</p><p>nome nome</p><p>{corpo do algoritmo, instruções e</p><p>Comando 1</p><p>Comando 2 Comando 2</p><p>Comando 3 Comando 3</p><p>{inicializar variáveis é bom para tirar {inicializar variáveis é bom para tirar</p><p>Pausa</p><p>a, b : integer; a, b : integer;</p><p>resp : boolean; resp : boolean;</p><p>nome : string;</p><p>a, b : integer; a, b : integer;</p><p>nome : string; nome : string;</p><p>{inicializar variáveis é bom para tirar lixo de {inicializar variáveis é bom para tirar lixo de</p><p>A := 0; A := 0;</p><p>B := 0;</p><p>resp := true; resp := true;</p><p>nome := nome :=</p><p>{corpo do algoritmo, instruções e {corpo do algoritmo, instruções e</p><p>Comando 1;</p><p>Comando 2;</p><p>Comando 3 ; Comando 3 ;</p><p>{inicializar variáveis é bom para tirar lixo de {inicializar variáveis é bom para tirar lixo de</p><p>....</p><p>IMPORTANTE!</p><p>• O “ponto e vírgula” ( ; ) na linguagem PascalZim indica que a instrução está fina-</p><p>lizada e poderá passar para a próxima instrução ou linha de comando;</p><p>• No PascalZim o “end.” no final do programa deverá ser acompanhado do ponto</p><p>final;</p><p>• Só “não” terá ponto e vírgula em abertura de blocos, como o tipo:</p><p>• var</p><p>• begin</p><p>82 UNIUBE</p><p>• if ... then</p><p>• while ... do</p><p>• repeat</p><p>• case</p><p>3.1.2 Estrutura sequencial</p><p>Exemplo 1</p><p>• Receber um número, processar e mostrar o valor de seu quadrado (conside-</p><p>rar números positivos).</p><p>ALGORITMO PASCALZIM</p><p>algoritmo quadrado</p><p>{declarar o nome e tipo das variáveis}</p><p>var</p><p>n, r : inteiro</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>n 0</p><p>r 0</p><p>limpa-tela</p><p>mostre (‘digite um número ...: ’)</p><p>leia-pl (n)</p><p>{calculo do quadrado}</p><p>r quadrado (n)</p><p>{saindo com o resultado para o</p><p>vídeo}</p><p>mostre-pl (‘resultado = ’, r)</p><p>mostre-pl (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>program quadrado;</p><p>{uses CRT;} {UNIT – biblioteca de vídeo</p><p>para o Pascal}</p><p>{declarar o nome e tipo das variáveis}</p><p>var</p><p>n, r : integer;</p><p>{bloco do código principal}</p><p>begin</p><p>{inicializar variáveis}</p><p>n := 0;</p><p>r := 0;</p><p>clrscr; {limpar a tela}</p><p>write (‘digite um número ...: ’);</p><p>readln (n);</p><p>{calculo do quadrado}</p><p>r := sqr (n);</p><p>{saindo com o resultado para o</p><p>vídeo}</p><p>writeln (‘resultado = ’, r);</p><p>writeln (‘acabou ...’);</p><p>readln; {pausa fixa}</p><p>end.</p><p>UNIUBE 83</p><p>3.1.3 Estrutura condicional</p><p>A estrutura condicional é muito importante, pois permite a escolha do conjunto</p><p>de instruções caso a condição seja verdadeira, ou ainda outro conjunto de ins-</p><p>truções caso a condição seja falsa.</p><p>A Tabela 2 representa a codificação do comando “SE” para “PascalZim”.</p><p>Tabela 2: Estrutura condicional.</p><p>ALGORITMO PASCALZIM</p><p>se if</p><p>entao then</p><p>senão else</p><p>inicio begin</p><p>fim end</p><p>IMPORTANTE!</p><p>A estrutura condicional “IF” e “ELSE” na linguagem de programação PascalZim: quando</p><p>se têm mais de uma linha de comando dentro de cada bloco (“verdadeiro” e/ou falso)</p><p>é necessário utilizar o “Begin” e “end” para marcar o início e o fim do bloco, tendo o</p><p>“ponto e vírgula” no final de todas as linhas de instruções, exceto IF, BEGIN, ELSE</p><p>e END.</p><p>Caso só tenha uma linha, não é preciso do “begin” e “end”, e caso tenha o “else”,</p><p>não colocar o ponto e virgula, para não fechar o “if”.</p><p>Observe o exemplo a seguir.</p><p>3.1.3.1 Estrutura condicional (composta)</p><p>Exemplo 2 (uso do SE (IF))</p><p>• receber um número, verificar se ele é positivo (maior que zero); caso verda-</p><p>deiro, mostrar o valor de seu quadrado; caso seja falso, mostrar uma mensa-</p><p>gem: “o número é zero ou negativo”.</p><p>A estrutura condicional “IF” e “ELSE” na linguagem de programação PascalZim: quando</p><p>se têm mais de uma linha de comando dentro de cada bloco (“verdadeiro” e/ou falso)</p><p>é necessário utilizar o “Begin” e “end” para marcar o início e o fim do bloco, tendo o</p><p>“ponto e vírgula” no final de todas as linhas de instruções, exceto IF, BEGIN, ELSE</p><p>e END.</p><p>Caso só tenha uma linha, não é preciso do “begin” e “end”, e caso tenha o “else”,</p><p>não colocar o ponto e virgula, para não fechar o “if”.</p><p>84 UNIUBE</p><p>ALGORITMO PASCALZIM</p><p>algoritmo quadrado</p><p>{declarar o nome e tipo das variáveis}</p><p>var</p><p>n, r : inteiro</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>n 0</p><p>r 0</p><p>limpa-tela</p><p>mostre (‘digite um número ...: ’)</p><p>leia-pl (n)</p><p>{verificando se número válido}</p><p>se n <= 0 entao</p><p>mostre-pl (‘o número é</p><p>zero ou negativo’)</p><p>senao</p><p>{cálculo do quadrado}</p><p>r quadrado (n)</p><p>{saindo com o resultado</p><p>para o vídeo}</p><p>mostre-pl (‘resultado = ’, r)</p><p>fim-se</p><p>mostre-pl (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>program quadrado;</p><p>{declarar o nome e tipo das variáveis}</p><p>var</p><p>n, r : integer;</p><p>{bloco do código principal}</p><p>begin</p><p>{inicializar variáveis}</p><p>n := 0;</p><p>r := 0;</p><p>clrscr; {limpar a tela}</p><p>write (‘digite um número ...: ’);</p><p>readln (n);</p><p>{verificando se o número é válido}</p><p>if n <= 0 then</p><p>writeln (‘o número é zero</p><p>ou negativo’)</p><p>else</p><p>begin</p><p>{cálculo do quadrado}</p><p>r := sqr (n);</p><p>{saindo com o resultado</p><p>para o vídeo}</p><p>writeln (‘resultado = ’, r);</p><p>end ;</p><p>{Ponto e vírgula acima, fecha o IF</p><p>e o “end” fecha o “Begin”}</p><p>writeln (‘acabou ...’);</p><p>readln; {pausa fixa}</p><p>end.</p><p>Exemplo 3</p><p>Elaborar um algoritmo para receber o valor de raio de um círculo. Validar corre-</p><p>tivamente durante a entrada para que seja maior que zero. Logo a seguir, pro-</p><p>cessar o cálculo da área e mostrar o resultado no vídeo.</p><p>Sabe-se que a fórmula é: área = p R2</p><p>Só para recordar, a descrição a seguir é um algoritmo “narrativo”.</p><p>UNIUBE 85</p><p>Interpretando o texto, sabemos que:</p><p>• será necessário criar as variáveis “area” e “raio”;</p><p>• será necessário inicializar as duas;</p><p>• trabalharemos com o valor de pi ( p ), que é constante = 3.1415;</p><p>• iremos receber o valor do raio via teclado;</p><p>• validar com estrutura de repetição “enquanto” ou “repita”, para que o valor</p><p>seja maior que zero;</p><p>• calcular o valor da área e mostrá-lo no vídeo;</p><p>• determinaremos: pausa e fim.</p><p>Acompanhe a estrutura:</p><p>ALGORITMO – EXEMPLO 3 PASCALZIM – EXEMPLO 3</p><p>algoritmo area_circulo</p><p>{declarar o nome e tipo das variáveis}</p><p>var</p><p>a, r : real</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>a 0</p><p>r 0</p><p>limpa-tela</p><p>mostre (‘digite um valor para o</p><p>raio maior que zero: ’)</p><p>leia-pl (r)</p><p>{verificando se o valor do raio é</p><p>válido}</p><p>program area_circulo;</p><p>{declaração da UNIT para o caso de usar</p><p>o PASCAL}</p><p>{uses CRT;}</p><p>{declarar o nome e tipo das variáveis}</p><p>var</p><p>a, r : real;</p><p>{bloco do código principal}</p><p>begin</p><p>{inicializar variáveis}</p><p>a := 0;</p><p>r := 0;</p><p>clrscr; {limpar a tela – no</p><p>PASCAL, só é reconhecido se a</p><p>UNIT CRT estiver ativa no início</p><p>programa}</p><p>write (‘digite um valor para o raio</p><p>maior que zero.: ’);</p><p>readln (r);</p><p>{verificando se o número é válido}</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>a a</p><p>r r</p><p>limpa-tela limpa-tela</p><p>mostre (</p><p>leia-pl (r) leia-pl (r)</p><p>{verificando se o valor do raio é {verificando se o valor do raio é</p><p>{inicializar variáveis} {inicializar variáveis} {inicializar variáveis} {inicializar variáveis}</p><p>a := 0;</p><p>r := 0; r := 0;</p><p>clrscr; {limpar a tela – no clrscr; {limpar a tela – no</p><p>write ( write (</p><p>readln (r);</p><p>{verificando se o número é válido}</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>86 UNIUBE</p><p>se r <= 0 entao</p><p>mostre (‘valor negativo ou</p><p>zero.’)</p><p>senão</p><p>{cálculo área}</p><p>a 3.1415 * quadrado (r)</p><p>{saindo com o resultado</p><p>para o vídeo}</p><p>mostre (‘área do círculo = ’, a)</p><p>fim-se</p><p>mostre (‘acabou ... ’)</p><p>pausa</p><p>fim</p><p>if r <= 0 then</p><p>begin</p><p>write (‘valor negativo ou</p><p>zero ... ’);</p><p>end</p><p>else</p><p>begin</p><p>{cálculo área}</p><p>a := 3.1415 * sqr (r);</p><p>{saindo com o resultado</p><p>para o vídeo}</p><p>writeln (‘resultado = ’,</p><p>a:2:1);</p><p>end ; {o “end” fecha o “Begin” e</p><p>“ ; ” fecha o IF}</p><p>writeln (‘acabou ...’);</p><p>readln; {pausa fixa}</p><p>end.</p><p>Exemplo 4 (uso do SE (IF))</p><p>Elaborar um algoritmo que receba o valor do salário de um funcionário. Proces-</p><p>sar e mostrar esse salário acrescido em 12%.</p><p>Em algoritmo, não podemos usar o símbolo de percentual (%). Então, vamos des-</p><p>membrar essa informação, podendo ser: 12/100 ou 0.12.</p><p>Interpretando o texto, sabemos que será necessário:</p><p>• criar as variáveis: “sal” (para receber valor do salário) e “resp” (para receber</p><p>o cálculo do aumento do salário);</p><p>• inicializar as duas;</p><p>• receber o valor do salário via teclado;</p><p>• verificar se o valor do salário é inválido ou válido;</p><p>se r <= 0 entao</p><p>mostre ( mostre (</p><p>senão senão</p><p>{cálculo área} {cálculo área}</p><p>a</p><p>{saindo com o resultado</p><p>mostre ( mostre (</p><p>fim-se</p><p>mostre (</p><p>pausa pausa pausa</p><p>mostre ( mostre ( mostre ( mostre (</p><p>{cálculo área} {cálculo área}</p><p>a a</p><p>{saindo com o resultado {saindo com o resultado</p><p>mostre (</p><p>{cálculo área} {cálculo área}</p><p>mostre ( mostre (</p><p>if r <= 0 then</p><p>begin begin</p><p>write (</p><p>end</p><p>else</p><p>begin</p><p>{cálculo área}</p><p>a := 3.1415 * sqr (r); a := 3.1415 * sqr (r);</p><p>{saindo com o resultado {saindo com o resultado</p><p>writeln (</p><p>end</p><p>writeln (</p><p>readln; {pausa fixa} readln; {pausa fixa} readln; {pausa fixa}</p><p>write ( write ( write (</p><p>{cálculo área} {cálculo área}</p><p>a := 3.1415 * sqr (r); a := 3.1415 * sqr (r);</p><p>{saindo com o resultado</p><p>writeln (</p><p>{cálculo área} {cálculo área}</p><p>Em algoritmo, não podemos usar o símbolo de percentual (%). Então, vamos des-</p><p>membrar essa informação, podendo ser: 12/100 ou 0.12.</p><p>UNIUBE 87</p><p>• caso seja inválido, mostrar uma mensagem;</p><p>• caso seja válido, fazer o cálculo da área e mostrá-lo no vídeo;</p><p>• pausa e fim.</p><p>PASCALZIM –</p><p>program salario;</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>sal, resp : real;</p><p>{bloco do código principal}</p><p>begin</p><p>{inicializar variáveis}</p><p>resp := 0;</p><p>sal := 0;</p><p>{corpo do algoritmo}</p><p>write (‘digite o valor do salário: ’);</p><p>readln (sal);</p><p>{validação corretiva durante a entrada para o salário ser maior que zero}</p><p>If sal <= 0 then</p><p>writeln (‘o valor do salário é inválido ... ’)</p><p>else</p><p>begin</p><p>resp := sal + ( sal * 12/100);</p><p>writeln (‘salário acrescido em 12% = ‘, resp:2:2);</p><p>end; {o “end” fecha o “Begin” e “ ; ” fecha o IF}</p><p>writeln (‘acabou ... ’);</p><p>readln; {pausa fixa}</p><p>end.</p><p>Exemplo 5 (uso do SE)</p><p>Elaborar um algoritmo que recebe dois números. Processar a verificação de</p><p>qual é o maior número, mostrando seu valor no vídeo.</p><p>{inicializar variáveis}</p><p>resp := 0; resp := 0;</p><p>sal := 0;</p><p>{corpo do algoritmo}</p><p>write (</p><p>readln (sal); readln (sal);</p><p>{validação corretiva durante a entrada para o salário ser maior que zero}</p><p>If sal <= 0 then If sal <= 0 then</p><p>writeln ( writeln (</p><p>else</p><p>begin</p><p>resp := sal + ( sal * 12/100);</p><p>writeln ( writeln (</p><p>end; {o “end” fecha o “Begin” e “ ; ” fecha o IF} end;</p><p>{o “end” fecha o “Begin” e “ ; ” fecha o IF}</p><p>writeln (</p><p>readln; {pausa fixa}</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>readln; {pausa fixa} readln; {pausa fixa}</p><p>88 UNIUBE</p><p>ALGORITMO – EXEMPLO 5 PASCALZIM – EXEMPLO 5</p><p>algoritmo maior</p><p>var</p><p>nr1, nr2 : real</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>nr1 0</p><p>nr2 0</p><p>{corpo do algoritmo}</p><p>limpa-tela</p><p>mostre (‘digite o primeiro número: ’)</p><p>leia-pl (nr1)</p><p>mostre (‘digite o segundo número: ’);</p><p>leia-pl (nr2)</p><p>{verificando}</p><p>Se nr1 > nr2 entao</p><p>mostre (‘o primeiro</p><p>número é o maior, e seu</p><p>valor = ’, nr1)</p><p>senao</p><p>se nr2 > nr1 entao</p><p>mostre (‘o</p><p>segundo número</p><p>é o maior, e seu</p><p>valor = ’, nr2)</p><p>senao</p><p>mostre (‘os dois</p><p>números são</p><p>iguais ’)</p><p>fim-se</p><p>fim-se</p><p>mostre (‘acabou ... ’)</p><p>pausa</p><p>fim</p><p>program maior;</p><p>var</p><p>nr1, nr2 : real;</p><p>{bloco do código principal}</p><p>begin</p><p>{inicializar variáveis}</p><p>nr1 := 0;</p><p>nr2 := 0;</p><p>{corpo do algoritmo}</p><p>clrscr;</p><p>write (‘digite o primeiro número: ’);</p><p>readln (nr1);</p><p>write (‘digite o segundo número:</p><p>’);</p><p>readln (nr2);</p><p>{verificando}</p><p>if nr1 > nr2 then</p><p>writeln (‘o primeiro</p><p>número é o maior, e seu</p><p>valor =</p><p>‘, nr1)</p><p>else</p><p>begin</p><p>if nr2 > nr1 then</p><p>writeln (‘o segundo</p><p>número é o maior, e seu</p><p>valor =</p><p>‘, nr2)</p><p>else</p><p>writeln (‘os dois números</p><p>são iguais ’)</p><p>; { “ ; ” fecha o IF}</p><p>end;</p><p>writeln (‘acabou ... ’);</p><p>readln;</p><p>end.</p><p>{inicializar variáveis}</p><p>nr1 nr1</p><p>nr2</p><p>{corpo do algoritmo} {corpo do algoritmo}</p><p>limpa-tela</p><p>mostre (</p><p>leia-pl (nr1) leia-pl (nr1)</p><p>mostre ( mostre (</p><p>leia-pl (nr2)</p><p>{verificando}</p><p>Se nr1 > nr2 entao Se nr1 > nr2 entao</p><p>mostre ( mostre (</p><p>senao senao</p><p>se nr2 > nr1 entao</p><p>mostre ( mostre (</p><p>senao</p><p>mostre (</p><p>fim-se</p><p>fim-se</p><p>mostre (</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>mostre ( mostre (</p><p>mostre ( mostre ( mostre ( mostre (</p><p>se nr2 > nr1 entao</p><p>mostre ( mostre (</p><p>senao</p><p>mostre (</p><p>se nr2 > nr1 entao se nr2 > nr1 entao</p><p>mostre ( mostre ( mostre ( mostre (</p><p>mostre ( mostre ( mostre ( mostre (</p><p>{inicializar variáveis}</p><p>nr1 := 0; nr1 := 0;</p><p>nr2 := 0; nr2 := 0;</p><p>{corpo do algoritmo} {corpo do algoritmo}</p><p>clrscr;</p><p>write (</p><p>readln (nr1); readln (nr1);</p><p>write ( write (</p><p>);</p><p>readln (nr2);</p><p>{verificando} {verificando}</p><p>if nr1 > nr2 then</p><p>writeln (</p><p>else</p><p>begin</p><p>if nr2 > nr1 then if nr2 > nr1 then</p><p>writeln ( writeln (</p><p>else</p><p>writeln ( writeln (</p><p>; { “ ; ” fecha o IF}</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>; { “ ; ” fecha o IF} ; { “ ; ” fecha o IF}</p><p>writeln ( writeln ( writeln ( writeln (</p><p>if nr2 > nr1 then if nr2 > nr1 then</p><p>writeln ( writeln (</p><p>else</p><p>writeln (</p><p>if nr2 > nr1 then if nr2 > nr1 then</p><p>UNIUBE 89</p><p>Exemplo 6 (uso do SE)</p><p>Elaborar um algoritmo que receba o sexo (“m” para masculino ou “f” para femi-</p><p>nino) e a altura (maior que zero) de uma pessoa em centímetros. Processar e</p><p>mostrar o peso ideal dessa pessoa, utilizando a fórmula, a seguir:</p><p>Caso o sexo masculino: peso = (72.7 * altura) – 58</p><p>Caso o sexo feminino: peso = (62.1 * altura) – 44.77</p><p>DICAS</p><p>Converter a altura para metros (dividir altura por 100).</p><p>Para resolvermos o Exemplo 6, teremos de verificar as condições de validade</p><p>das informações para as variáveis sexo e altura, e, só depois, processarmos o</p><p>cálculo de acordo com o sexo.</p><p>Os passos podem ser:</p><p>• criar as variáveis;</p><p>• inicializar as variáveis;</p><p>• receber o sexo;</p><p>• verificar a validade da informação para sexo;</p><p>• caso o sexo seja válido, receber a altura;</p><p>• verificar a validade da informação para altura;</p><p>• caso a altura seja válida, verificar se o sexo é masculino ou feminino e pro-</p><p>cessar os cálculos conforme essa informação;</p><p>• pausa/fim de algoritmo.</p><p>DICAS DICAS</p><p>Converter a altura para metros (dividir altura por 100).</p><p>90 UNIUBE</p><p>Exemplo 6: Resolução em PascalZim</p><p>program peso_ideal ;</p><p>{bloco das variáveis}</p><p>var</p><p>peso, alt : real;</p><p>sx : string;</p><p>{bloco do código principal}</p><p>begin</p><p>{inicializar variáveis}</p><p>alt := 0;</p><p>peso := 0;</p><p>sx := ‘ ‘;</p><p>{corpo do algoritmo}</p><p>write (‘digite o sexo dessa pessoa, m ou f ...: ’);</p><p>readln (sx);</p><p>if (sx <> ‘f’) and (sx <> ‘m’) and (sx <> ‘F’) and</p><p>(sx <> ‘M’) then</p><p>writeln (‘sexo inválido .... ’)</p><p>else</p><p>begin</p><p>write (‘digite a altura da pessoa em</p><p>centímetros ..: ’);</p><p>readln (alt);</p><p>if alt <= 0 then</p><p>writeln (‘altura inválida ... ’)</p><p>else</p><p>begin</p><p>if (sx = ‘m’) or (sx = ‘M’) then</p><p>peso := (72.7 * (alt / 100)) – 58</p><p>else</p><p>peso := (62.1 * (alt / 100)) – 44.77</p><p>; {fechamento do IF}</p><p>Como só temos</p><p>uma linha de</p><p>comando, não é</p><p>preciso colocar o</p><p>“BEGIN” e “end”.</p><p>E, por</p><p>consequência, não</p><p>colocamos o “ponto</p><p>e vírgula” nesta</p><p>linha, pois, se o</p><p>colocarmos, o</p><p>interpretador</p><p>(compilador) não irá</p><p>reconhecer o “else”.</p><p>Converter altura</p><p>para metro.</p><p>UNIUBE 91</p><p>writeln (‘O peso ideal para esta pessoa é = ’, peso:2:1);</p><p>end;</p><p>end;</p><p>writeln (‘Acabou ... ’);</p><p>readln;</p><p>end.</p><p>3.1.4 Estruturas de repetição</p><p>Recorde-se que as estruturas de repetição têm por característica a repetição</p><p>das instruções que estão dentro de seu bloco, até que uma determinada condi-</p><p>ção seja satisfeita.</p><p>As estruturas de repetição, também chamadas de blocos de repetição, podem</p><p>ser criadas em qualquer momento no algoritmo.</p><p>Podemos ter um bloco de repetição dentro de uma estrutura condicional SE e</p><p>SENAO, como, também, ter um bloco condicional SE e SENAO dentro de um</p><p>bloco de repetição. Podemos ter, ainda, blocos de repetição dentro de outros</p><p>blocos de repetição.</p><p>A sintaxe das estruturas de repetição em PascalZim</p><p>ALGORITMO PASCALZIM</p><p>Enquanto While</p><p>Repita Repeat</p><p>Para For</p><p>peso:2:1 → representa uma MÁSCARA de</p><p>apresentação em VÍDEO, evitando que o</p><p>conteúdo da variável seja mostrado em</p><p>NOTAÇÃO CIENTÍFICA, em que:</p><p>peso → é a variável do tipo real;</p><p>:2 → representa a quantidade casas na</p><p>inteira; e,</p><p>:1 → representa a quantidade casas</p><p>decimais.</p><p>92 UNIUBE</p><p>Veja as estruturas, a seguir:</p><p>• Estrutura: ENQUANTO / WHILE</p><p>algoritmo ex_enquanto</p><p>{declaração das variáveis}</p><p>var</p><p>...... : tipo</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>.</p><p>.</p><p>{corpo do algoritmo}</p><p>.</p><p>. {exemplo com</p><p>enquanto}</p><p>enquanto</p><p><condicao> faca</p><p>instrucao 1</p><p>instrucao 2</p><p>instrucoes n</p><p>fim-enquanto</p><p>.</p><p>.</p><p>.</p><p>mostre (‘acabou ... ’)</p><p>pausa</p><p>fim</p><p>Condição</p><p>Instrução 1</p><p>F</p><p>Instrução 2</p><p>Instrução N</p><p>V</p><p>program ex_enquanto;</p><p>{declaração das variáveis}</p><p>var</p><p>...... : tipo;</p><p>{bloco do código principal}</p><p>begin</p><p>{inicializar variáveis}</p><p>. ;</p><p>. ;</p><p>{corpo do algoritmo}</p><p>. ;</p><p>. {exemplo com</p><p>enquanto}</p><p>while <condicao></p><p>do begin</p><p>instrucao 1;</p><p>instrucao 2;</p><p>instrucoes n;</p><p>end;</p><p>{o “end” fecha o</p><p>“begin” e</p><p>o “ ; “ fecha o “while”}</p><p>.</p><p>.</p><p>.</p><p>writeln (‘acabou ... ’);</p><p>readln; {pausa fixa}</p><p>end.</p><p>{inicializar variáveis}</p><p>{corpo do algoritmo} {corpo do algoritmo}</p><p>enquanto enquanto</p><p>instrucao 1 instrucao 1</p><p>instrucao 2</p><p>instrucoes n</p><p>fim-enquanto</p><p>.</p><p>mostre (</p><p>pausa</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>pausa pausa</p><p>instrucao 1</p><p>instrucao 2 instrucao 2</p><p>instrucoes n</p><p>instrucao 1 instrucao 1</p><p>instrucoes n instrucoes n</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>{corpo do algoritmo}</p><p>while <condicao> while <condicao></p><p>instrucao 1;</p><p>instrucao 2;</p><p>instrucoes n; instrucoes n;</p><p>end; end;</p><p>{o “end” fecha o {o “end” fecha o</p><p>o “ ; “ fecha o “while”}</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>instrucao 1;</p><p>instrucao 2;</p><p>instrucoes n;</p><p>instrucao 1; instrucao 1;</p><p>instrucoes n; instrucoes n;</p><p>UNIUBE 93</p><p>• Estrutura: REPITA / REPEAT</p><p>algoritmo ex_repita</p><p>{declaração variáveis}</p><p>var</p><p>...... : tipo</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>.</p><p>.</p><p>{corpo do algoritmo}</p><p>.</p><p>. {exemplo com</p><p>REPITA}</p><p>Repita</p><p>instrucao 1</p><p>instrucao 2</p><p>instrucoes n</p><p>Ate-que condicao</p><p>.</p><p>.</p><p>.</p><p>mostre (‘acabou ... ’)</p><p>pausa</p><p>fim</p><p>Instrução 1</p><p>Instrução 2</p><p>Instrução N</p><p>Condição</p><p>V</p><p>F</p><p>program ex_repita;</p><p>{declaração variáveis}</p><p>var</p><p>...... : tipo;</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>. ;</p><p>. ;</p><p>{corpo do algoritmo}</p><p>. ;</p><p>. ; {exemplo com</p><p>REPITA}</p><p>repeat</p><p>instrucao 1;</p><p>instrucao 2;</p><p>instrucoes n;</p><p>until condição;</p><p>{não precisa de</p><p>“begin”}</p><p>{o “ ; “ fecha o</p><p>“while”}</p><p>.</p><p>.</p><p>writeln (‘acabou ... ’);</p><p>readln; {pausa fixa}</p><p>end.</p><p>{inicializar variáveis}</p><p>{corpo do algoritmo}</p><p>Repita</p><p>instrucao 1 instrucao 1</p><p>instrucao 2</p><p>instrucoes n</p><p>Ate-que condicao</p><p>.</p><p>mostre (</p><p>pausa</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>pausa pausa</p><p>instrucao 1</p><p>instrucao 2 instrucao 2</p><p>instrucoes n</p><p>instrucao 1 instrucao 1</p><p>instrucoes n instrucoes n</p><p>{inicializar variáveis}</p><p>{corpo do algoritmo}</p><p>repeat</p><p>instrucao 1; instrucao 1;</p><p>instrucao 2; instrucao 2;</p><p>instrucoes n;</p><p>until condição;</p><p>{não precisa de</p><p>{o “ ; “ fecha o {o “ ; “ fecha o</p><p>.</p><p>writeln (</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>writeln ( writeln (</p><p>instrucao 1;</p><p>instrucao 2;</p><p>instrucoes n;</p><p>instrucao 1; instrucao 1;</p><p>instrucoes n; instrucoes n;</p><p>94 UNIUBE</p><p>• Estrutura: PARA / FOR</p><p>algoritmo exercicio_PARA</p><p>{declaração das variáveis}</p><p>var</p><p>...... : tipo</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>.</p><p>.</p><p>{corpo do algoritmo}</p><p>.</p><p>. {exemplo com</p><p>PARA}</p><p>Para x de inicio ate</p><p>fim faca</p><p>instrucao 1</p><p>instrucao 2</p><p>instrucoes n</p><p>Fim-para</p><p>.</p><p>.</p><p>.</p><p>mostre (‘acabou ... ’)</p><p>pausa</p><p>fim</p><p>Instrução 1</p><p>Instrução 2</p><p>Instrução N</p><p>Para x de inicio</p><p>até fim</p><p>(incremento de + 1</p><p>automático)</p><p>algoritmo exercicio_</p><p>PARA;</p><p>{declaração das variáveis}</p><p>var</p><p>...... : tipo;</p><p>{bloco do código principal}</p><p>Begin</p><p>{inicializar variáveis}</p><p>. ;</p><p>. ;</p><p>{corpo do algoritmo}</p><p>. ;</p><p>. {exemplo com</p><p>PARA}</p><p>for x := inicio to fim</p><p>do</p><p>begin</p><p>instrucao 1;</p><p>instrucao 2;</p><p>instrucoes</p><p>n;</p><p>end;</p><p>{o “end” fecha o</p><p>“begin” e</p><p>o “ ; “ fecha o “for” }</p><p>. ;</p><p>. ;</p><p>Writeln (‘acabou ...’);</p><p>Readln;</p><p>end.</p><p>Exemplo 7</p><p>Vejamos a demonstração do cálculo da tabuada de multiplicação de um número.</p><p>Deverá, durante a entrada, ter VALIDAÇÃO corretivamente (in time), para que</p><p>não seja menor que 1 e nem maior que 10. Neste sentido, considerando que o</p><p>número seja 5, temos:</p><p>5 * 1 = 5</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>{corpo do algoritmo}</p><p>Para Para</p><p>instrucao 1</p><p>instrucao 2 instrucao 2</p><p>instrucoes n instrucoes n</p><p>Fim-para Fim-para</p><p>.</p><p>mostre (</p><p>pausa</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>pausa pausa</p><p>instrucao 1</p><p>instrucao 2 instrucao 2</p><p>instrucoes n</p><p>instrucao 1 instrucao 1</p><p>instrucoes n instrucoes n</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>{corpo do algoritmo}</p><p>for for</p><p>do</p><p>begin</p><p>instrucao 1;</p><p>instrucao 2; instrucao 2;</p><p>instrucoes</p><p>end; end;</p><p>{o “end” fecha o {o “end” fecha o</p><p>o “ ; “ fecha o “for” }</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>. ;</p><p>instrucao 1;</p><p>instrucao 2;</p><p>instrucoes</p><p>instrucao 1; instrucao 1;</p><p>instrucoes instrucoes</p><p>UNIUBE 95</p><p>5 * 2 = 10</p><p>5 * 3 = 15</p><p>:</p><p>:</p><p>5 * 10 = 50</p><p>{nome do nosso algoritmo}</p><p>program exemplo7_tabuada_multiplicacao;</p><p>{uses crt; {caso utilize o pascal} }</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>nr, resp, cont : integer;</p><p>{bloco do código principal}</p><p>begin</p><p>{inicializar variáveis}</p><p>nr := 0; resp := 0; cont := 1;</p><p>{corpo do algoritmo}</p><p>clrscr;</p><p>write (‘digite um número maior que zero e menor que 11 ...: ’);</p><p>readln (nr);</p><p>{validação corretiva durante a entrada para que o NR esteja no intervalo 0 a 10</p><p>(inclusive)}</p><p>while (nr <=0) or (nr > 10) do</p><p>begin</p><p>write (‘número é inválido ... digite outro entre 1 a 10 ...: ’);</p><p>readln (nr);</p><p>end;</p><p>{laço para efetuar o cálculo da tabuada de multiplicação}</p><p>while cont <= 10 do</p><p>begin</p><p>resp := nr * cont;</p><p>writeln (nr, ‘ * ’, cont, ‘ = ’, resp);</p><p>{fazendo o contador passar para o próximo número}</p><p>cont := cont + 1;</p><p>end;</p><p>writeln (‘acabou .... pressione enter ’);</p><p>readln; {pausa fixa}</p><p>end.</p><p>96 UNIUBE</p><p>Exemplo 8 (uso de laços)</p><p>Elaborar um algoritmo (em pascal ou pascalzim) que processe e mostre todos</p><p>os números de 15 a 70, variando de um em um.</p><p>Demonstraremos a resolução nas três estruturas de repetição “while”, “repeat”</p><p>e “for”.</p><p>EXEMPLIFICANDO!</p><p>Faça o teste de mês (simulação), visando compreender a execução nas três formas.</p><p>Veja a seguir a resolução do teste, utilizando a estrutura de repetição “while”.</p><p>program exemplo_8_nrs_15_a_70_com_while;</p><p>var</p><p>cont : integer;</p><p>begin</p><p>cont := 15;</p><p>clrscr;</p><p>{título na tela, demonstrando ao usuário o que será apresentado}</p><p>writeln (‘Mostrando os números de 15 a 70, variando de 1 em 1’);</p><p>writeln;</p><p>while cont <= 70 do</p><p>begin</p><p>write (cont, ‘ ’);</p><p>cont := cont + 1;</p><p>end;</p><p>writeln; {pular uma linha em branco}</p><p>writeln (‘acabou ... ’);</p><p>readln; {pausa fixa}</p><p>END.</p><p>Agora, demonstraremos a resolução do mesmo enunciado, usando a estrutura de</p><p>repetição “Repeat”.</p><p>EXEMPLIFICANDO!</p><p>Faça o teste de mês (simulação), visando compreender a execução nas três formas.</p><p>Veja a seguir a resolução do teste, utilizando a estrutura de repetição “while”.</p><p>program exemplo_8_nrs_15_a_70_com_while;</p><p>var</p><p>cont : integer;</p><p>begin</p><p>cont := 15;</p><p>clrscr;</p><p>{título na tela, demonstrando ao usuário o que será apresentado}</p><p>writeln (‘Mostrando os números de 15 a 70, variando de 1 em 1’);</p><p>writeln;</p><p>while cont <= 70 do</p><p>begin</p><p>write (cont, ‘ ’);</p><p>cont := cont + 1;</p><p>end;</p><p>writeln; {pular uma linha em branco}</p><p>writeln (‘acabou ... ’);</p><p>readln; {pausa fixa}</p><p>END.</p><p>Agora, demonstraremos a resolução do mesmo enunciado, usando a estrutura de</p><p>repetição “Repeat”.</p><p>UNIUBE 97</p><p>program exemplo_8_nrs_15_a_70_com_REPEAT;</p><p>var</p><p>cont : integer;</p><p>begin</p><p>cont := 15;</p><p>clrscr;</p><p>writeln (‘números de 15 a 70, variando de 1 em 1’);</p><p>writeln;</p><p>repeat</p><p>write (cont, ‘ ’);</p><p>cont := cont + 1;</p><p>until cont > 70; {o “ ponto e vírgula ” fecha o repeat}</p><p>writeln;</p><p>writeln (‘acabou ... ’);</p><p>readln; {pausa fixa}</p><p>end.</p><p>E, por fim, a resolução usando a estrutura de repetição “for”:</p><p>program exemplo_8_nrs_15_a_70_com_for;</p><p>var</p><p>cont : integer;</p><p>begin</p><p>clrscr;</p><p>writeln (‘números de 15 a 70, variando de 1 em 1’);</p><p>writeln;</p><p>for cont := 15 to 70 do</p><p>begin</p><p>write (cont, ‘ ’) ; {o “for” tem incremento automático de + 1,}</p><p>{não sendo necessário utilizar cont := cont + 1}</p><p>end;</p><p>writeln;</p><p>writeln (‘acabou ... ’);</p><p>readln; {pausa fixa}</p><p>end.</p><p>Exemplo 9 (uso de laços)</p><p>Elaborar um algoritmo (em Pascal ou PascalZim) que receba dois números in-</p><p>teiros, processar e mostrar todos os números pares existentes no intervalo do</p><p>menor número até o maior número, variando de 1 em 1. Logo após, mostrar o</p><p>valor da soma dos números ímpares.</p><p>98 UNIUBE</p><p>Observações:</p><p>• para um número ser PAR, basta dividi-lo por 2, verificando se o RESTO é igual</p><p>a ZERO. Caso seja diferente de ZERO, ele é ÍMPAR;</p><p>• no Pascal ou PascalZim, temos uma função chamada MOD (lembra?), então</p><p>vamos utilizá-la;</p><p>• caso os números sejam iguais, dar uma mensagem e não precisa verificar se</p><p>é par ou ímpar.</p><p>{nome do nosso algoritmo}</p><p>program exemplo_9_pares_impares;</p><p>{bloco das variáveis}</p><p>var</p><p>n1, n2 : integer;</p><p>somaimp : real;</p><p>{bloco do código principal}</p><p>begin</p><p>{inicializar variáveis}</p><p>N1 := 1; n2 := 0; somaimp := 0;</p><p>{corpo do algoritmo}</p><p>clrscr;</p><p>writeln (‘mostrando os números pares existente entre dois números, variando</p><p>de 1 em 1’);</p><p>writeln; {linha em branco}</p><p>write (‘digite o primeiro número ...: ’);</p><p>readln (n1);</p><p>write (‘digite o segundo número ..: ’);</p><p>readln (n2);</p><p>{verificando qual é menor}</p><p>if n1 < n2 then</p><p>begin</p><p>{laço de repetição}</p><p>while n1 <= n2 do</p><p>begin</p><p>if n1 mod 2 = 0 then</p><p>write (n1, ‘ ’)</p><p>else</p><p>somaimp := somaimp + n1;</p><p>{fechamento do if}</p><p>n1 := n1 + 1;</p><p>end; {fechamento do laço de repetição while}</p><p>writeln;</p><p>writeln (‘soma dos números ímpares = ’, somaimp:2:0);</p><p>end</p><p>UNIUBE 99</p><p>else</p><p>begin</p><p>if n2 < n1 then</p><p>begin</p><p>while n2 <= n1 do</p><p>begin</p><p>if n2 mod 2 = 0 then</p><p>write (n2, ‘ ‘)</p><p>else</p><p>somaimp := somaimp + n2;</p><p>{fechamento do if}</p><p>n2 := n2 + 1;</p><p>end; {fechamento do laço de repetição while}</p><p>writeln (‘soma dos números ímpares = ’, somaimp:2:0);</p><p>end</p><p>else</p><p>begin</p><p>writeln (‘números são iguais’);</p><p>end;</p><p>4 Introdução à eletricidade .............................................................125</p><p>4.1 Sistema Internacional de Medidas, arredondamento e potência de dez ..................127</p><p>4.1.1 Histórico das unidades de medidas .................................................................128</p><p>4.1.2 Sistema Internacional de Medidas – SI ............................................................130</p><p>4.1.3 Algarismos significativos ..................................................................................131</p><p>4.1.4 Erros .................................................................................................................131</p><p>4.1.5 Arredondamento ...............................................................................................134</p><p>4.1.6 Notação científica .............................................................................................134</p><p>4.1.7 Prefixos do Sistema Internacional ....................................................................136</p><p>4.2 Corrente e tensão ......................................................................................................137</p><p>4.2.1 Condutores e isolantes .....................................................................................138</p><p>4.2.2 Corrente elétrica ...............................................................................................139</p><p>4.2.3 Tensão ..............................................................................................................142</p><p>UNIUBE VII</p><p>4.3 Resistência ................................................................................................................146</p><p>4.3.1 Resistência em condutores ..............................................................................146</p><p>4.3.2 Condutância .....................................................................................................148</p><p>4.3.3 Aspectos construtivos dos resistores ...............................................................148</p><p>4.3.4 Coeficiente de temperatura α ...........................................................................151</p><p>Capítulo 5 Lei de Ohm e análise de circuitos elétricos.................................155</p><p>5.1 Conhecendo a Lei de Ohm........................................................................................156</p><p>5.1.1 Potência e energia ...........................................................................................158</p><p>5.2 Circuitos em série ......................................................................................................161</p><p>5.2.1 Resistência total em um circuito em série ........................................................162</p><p>5.2.2 Resistência e potência em um circuito em série ..............................................162</p><p>5.2.3 Lei de Kirchhoff para tensão (LKT) ..................................................................165</p><p>5.2.4 Fontes de tensão em série ...............................................................................166</p><p>5.2.5 Regras do divisor de tensão .............................................................................166</p><p>5.2.6 Resistência interna das fontes de tensão ........................................................167</p><p>5.3 Circuitos em paralelo .................................................................................................169</p><p>5.3.1 Elementos em paralelo .....................................................................................169</p><p>5.3.2 Condutância e resistência totais ......................................................................170</p><p>5.3.3 Tensão e corrente em circuitos em paralelo .....................................................172</p><p>5.3.4 Lei de Kirchhoff para corrente ..........................................................................173</p><p>5.3.5 Regra do divisor de corrente ............................................................................174</p><p>5.3.6 Fontes de tensão em paralelo ..........................................................................175</p><p>5.4 Circuitos em série-paralelo ........................................................................................177</p><p>5.4.1 Resolução de circuito aplicando matriz ............................................................182</p><p>Linguagens e técnicas</p><p>de programação, volume 1</p><p>Linguagens e técnicas</p><p>Parte I</p><p>Apresentação</p><p>Prezado(a) aluno(a),</p><p>Neste componente, contaremos com 3 capítulos que são:</p><p>• Lógica de programação, instruções matemáticas e tipos de dados;</p><p>• Estrutura condicional e estruturas de repetição;</p><p>• Linguagem de programação PascalZim e modularização.</p><p>No Capítulo 1, você iniciará seus estudos sobre lógica computacional. Para</p><p>tanto, faremos uma introdução à lógica de programação e seu uso na resolução</p><p>de problemas cotidianos por meio da criação de algoritmos com instruções</p><p>matemáticas. Também neste capítulo, são descritos os itens fundamentais para</p><p>compor a estrutura de um algoritmo. As definições desses itens são acompa-</p><p>nhadas de exemplos que facilitam o aprendizado e de exercícios para fixação</p><p>do conhecimento.</p><p>No Capítulo 2, você estudará as estruturas de controle do fluxo de execução de</p><p>um algoritmo, chamadas de estruturas condicionais e estruturas de repetição.</p><p>Ao longo do capítulo, a utilização dessas estruturas na resolução de problemas</p><p>é discutida e vários exemplos são apresentados com o objetivo de levá-lo a</p><p>distinguir as situações em que as mesmas são necessárias e aplicáveis.</p><p>No Capítulo 3, o ensino de algoritmos passa a ser instrumentalizado com o uso</p><p>da ferramenta de programação PascalZim, tornando possível a você escrever,</p><p>implementar e executar algoritmos em um computador, materializando as solu-</p><p>ções dos problemas já vistos. Neste contexto, apresentaremos as sintaxes dos</p><p>itens fundamentais de um algoritmo na linguagem PascalZim. Também são in-</p><p>troduzidos os conceitos de modularização de programas que têm por objetivo</p><p>estruturar melhor o algoritmo, possibilitando o reuso de trechos de programas</p><p>mais facilmente.</p><p>Newton Gonçalves Garcia / Renata de Oliveira</p><p>Introdução</p><p>Iniciamos, aqui, parte fundamental da sua formação como professor de</p><p>língua inglesa: a fonética. Porém, além de se dedicar ao estudo dessa</p><p>importante faceta da língua, você deve se preparar para ensiná-la ao</p><p>seu grupo de alunos.</p><p>Você que já iniciou ou inicia agora seus estudos da língua inglesa cer-</p><p>tamente já teve dificuldades com a pronúncia desse idioma. Isso é algo</p><p>esperado de ocorrer já que se trata de um idioma com origens na língua</p><p>anglo-saxã, portanto, com características distintas de nosso idioma de</p><p>origem latina.</p><p>Apesar desse aspecto, por meio do estudo da fonética, é possível con-</p><p>seguir uma pronúncia inteligível aos falantes nativos e não nativos do</p><p>idioma, como frisa Underhill (200?, p.92) em:</p><p>The aim of pronunciation teaching can no longer be to get</p><p>students to sound [...] like native speakers, or more like the</p><p>teacher […]. The primary aim must be to help learners to com-</p><p>municate successfully when they listen or speak in English,</p><p>often with other non-native speakers.</p><p>O objetivo do ensino da pronúncia não pode ser mais fazer com que</p><p>os alunos soem como falantes nativos ou como seu professor. O</p><p>objetivo primário deve ser ajudar os aprendizes a se comunicar</p><p>com</p><p>Fonética: a sonoridade</p><p>da língua inglesa</p><p>Capítulo</p><p>1</p><p>Daniela Resende Silva Orbolato / Ernani Cláudio Borges</p><p>Introdução</p><p>Caro(a) aluno(a),</p><p>Iniciaremos o estudo de algoritmos com informações que lhe permitirão</p><p>utilizar, de forma adequada e eficiente, os conhecimentos deste assunto</p><p>tanto em seu cotidiano quanto em suas atividades de desenvolvimento</p><p>de softwares.</p><p>Leia, com atenção, o texto e realize todas as atividades propostas. Não</p><p>será necessário, neste momento, o uso do computador, pois iremos traba-</p><p>lhar o raciocínio lógico, com os conceitos de técnicas de programação.</p><p>Objetivos</p><p>Ao final deste capítulo, você deverá ser capaz de:</p><p>• analisar diferentes tipos de problemas;</p><p>• criar soluções</p><p>end;</p><p>writeln;</p><p>writeln;</p><p>writeln (‘acabou ... ’);</p><p>readln;</p><p>end.</p><p>Exemplo 10 (uso de laços)</p><p>Elaborar um algoritmo que receba um número para ser o limite da sequência exibida,</p><p>a seguir. Processar e mostrar a sequência enquanto o valor for menor ou igual a</p><p>esse número limite informado. Validar para que o número seja maior que dois.</p><p>2 , 3 , 5 , 9 , 17, ..., N</p><p>{nome do nosso algoritmo}</p><p>program exemplo_10_laco;</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>cont, n, aux : integer;</p><p>{bloco do código principal}</p><p>100 UNIUBE</p><p>begin</p><p>{inicializar variáveis}</p><p>cont := 2;</p><p>n := 0;</p><p>aux := 1;</p><p>{corpo do algoritmo}</p><p>Clrscr;</p><p>writeln (‘mostrando a sequência: 2 , 3 , 5 , 9 , 17, ..., N’);</p><p>writeln;</p><p>write (‘digite o número limite ....: ’);</p><p>readln (n);</p><p>{verificação se o valor de n é inválido}</p><p>while n < 2 do</p><p>begin</p><p>write (‘número inválido ... digite outro maior que dois ...: ’);</p><p>readln (n);</p><p>end;</p><p>{laço de repetição}</p><p>while cont <= n do</p><p>begin</p><p>write (cont, ‘ ’);</p><p>cont := cont + aux;</p><p>aux := aux * 2;</p><p>end;</p><p>writeln;</p><p>writeln (‘acabou ... ’);</p><p>readln;</p><p>end.</p><p>Exemplo 11 (uso de laços)</p><p>Elaborar um algoritmo que receba um número para ser o limite da sequência</p><p>apresentada a seguir. Processar e mostrar a sequência enquanto o valor dela</p><p>for menor ou igual a esse número limite. Validar corretivamente para que o nú-</p><p>mero limite seja maior ou igual a nove.</p><p>9 , 16 , 25 , 36 , 49, ..., N</p><p>{nome do nosso algoritmo}</p><p>program exemplo_11_laco;</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>UNIUBE 101</p><p>var</p><p>cont, n, aux : integer;</p><p>{bloco do código principal}</p><p>begin</p><p>{inicializar variáveis}</p><p>cont := 9;</p><p>n := 0;</p><p>aux := 7;</p><p>{corpo do algoritmo}</p><p>Clrscr;</p><p>write (‘mostrando a sequência: 9 , 16 , 25 , 36 , 49, ..., N’);</p><p>writeln;</p><p>write (‘digite o número limite ....:’);</p><p>readln (n);</p><p>{verificação se o valor de n é inválido}</p><p>while n < 9 do</p><p>begin</p><p>write (‘número inválido ... digite outro maior ou igual a nove ...: ’);</p><p>readln (n);</p><p>end;</p><p>{laço de repetição para mostrar a sequência}</p><p>while cont <= n do</p><p>begin</p><p>write (cont, ‘ ’);</p><p>cont := cont + aux;</p><p>aux := aux + 2;</p><p>end;</p><p>writeln;</p><p>writeln (‘acabou ... ’);</p><p>readln;</p><p>end.</p><p>Exemplo 12 (uso de laços)</p><p>Elaborar um algoritmo (em Pascal ou PascalZim) que receba uma lista de nú-</p><p>meros inteiros via teclado. Para finalizar a entrada dos números, será digitado</p><p>o número zero, o qual não fará parte da contagem, e, ao final, mostrar:</p><p>a) quantos números foram digitados;</p><p>b) quantos números dessa lista são positivos;</p><p>102 UNIUBE</p><p>c) quantos números dessa lista são negativos;</p><p>d) quantos números são pares;</p><p>e) quantos números são ímpares;</p><p>f) média dos números positivos.</p><p>DICAS</p><p>Na amostragem, verificar se houve ou não entrada dos itens anteriores.</p><p>Veja:</p><p>{nome do nosso algoritmo}</p><p>program exemplo_12_laco;</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>n, tot, qtd_pos, qtd_neg, qtd_par, qtd_imp : integer;</p><p>md : real;</p><p>{bloco do código principal}</p><p>begin</p><p>{inicializar variáveis}</p><p>n := 0; qtd_pos := 0; qtd_neg := 0;</p><p>qtd_par := 0; qtd_imp := 0; tot := 0;</p><p>md := 0;</p><p>{corpo do algoritmo}</p><p>Clrscr;</p><p>write (‘digite o primeiro número ...: ’);</p><p>readln (n);</p><p>{laço de repetição}</p><p>while n <> 0 do</p><p>begin</p><p>{verificando se o número é positivo senao negativo}</p><p>if n > 0 then</p><p>begin</p><p>qtd_pos := qtd_pos + 1;</p><p>{somando os números para cálculo da média}</p><p>md := md + n;</p><p>Na amostragem, verificar se houve ou não entrada dos itens anteriores.</p><p>UNIUBE 103</p><p>end</p><p>else</p><p>qtd_neg := qtd_neg + 1;</p><p>{fechamento do if}</p><p>{verificando se o número é par senao ímpar}</p><p>if (n mod 2) = 0 then</p><p>qtd_par := qtd_par + 1</p><p>else</p><p>qtd_imp := qtd_imp + 1;</p><p>{fechamento do if}</p><p>write (‘digite o próximo número ...: ’);</p><p>readln (n);</p><p>end;</p><p>clrscr;</p><p>writeln (‘resultados finais processados’);</p><p>writeln; {pulando um linha em branco}</p><p>if tot = 0 then</p><p>writeln (‘não houve entrada de dados’)</p><p>else</p><p>begin</p><p>writeln (‘total de números digitados =’, tot);</p><p>if qtd_pos = 0 then</p><p>writeln (‘não houve entrada de número positivo’)</p><p>else</p><p>begin</p><p>md := md / tot;</p><p>writeln (‘quantidade de números positivos =’, qtd_pos);</p><p>writeln (‘media dos números positivos =’, md:2:1);</p><p>end;</p><p>if qtd_neg = 0 then</p><p>writeln (‘não houve entrada de números negativos’)</p><p>else</p><p>writeln (‘quantidade de números negativos =’, qtd_neg);</p><p>If qtd_par = 0 then</p><p>writeln (‘não houve entrada de números pares’)</p><p>else</p><p>writeln (‘quantidade de números pares =’, qtd_par);</p><p>104 UNIUBE</p><p>if qtd_imp = 0 then</p><p>writeln (‘não houve entrada de números negativos’)</p><p>else</p><p>writeln (‘quantidade de números impares =’, qtd_imp);</p><p>end;</p><p>writeln; {pulando uma linha em branco}</p><p>writeln (‘acabou ...’);</p><p>readln;</p><p>end.</p><p>AGORA É A SUA VEZ</p><p>Atividade 1</p><p>Elabore um algoritmo para cada uma das sequências de números colocadas a seguir.</p><p>Em alguns casos, será necessário receber o número limite. Você deverá fazer a va-</p><p>lidação corretiva desse “N”, e, depois, mostrar a sequência até esse número.</p><p>Observação 1: o valor de N de cada exercício deverá ser informado via teclado e</p><p>deverá ser maior que o início da sequência (isso para os exercícios 8c e 8d); caso</p><p>contrário, dar uma mensagem de número inválido e finalizar o algoritmo.</p><p>1a) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15</p><p>1b) 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0</p><p>1c) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... , N</p><p>1d) 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, ..., N</p><p>Observação para 1d:</p><p>• valide corretivamente para que “N” seja maior que zero e ímpar;</p><p>• a variação será de 1 em 1; então, você deverá “verificar” se o contador é par ou</p><p>ímpar. Sabe-se que um número para ser “par” o resto da divisão desse número por</p><p>2 deverá ser zero.</p><p>1e) N, ..., 8, 7, 6, 5, 4, 3, 2, 1, 0</p><p>1f) N, ... , 5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5, ..., –N</p><p>Observação para 1f:</p><p>• valide corretivamente para que “N” seja maior que zero;</p><p>AGORA É A SUA VEZ</p><p>Atividade 1</p><p>Elabore um algoritmo para cada uma das sequências de números colocadas a seguir.</p><p>Em alguns casos, será necessário receber o número limite. Você deverá fazer a va-</p><p>lidação corretiva desse “N”, e, depois, mostrar a sequência até esse número.</p><p>Observação 1: o valor de N de cada exercício deverá ser informado via teclado e</p><p>deverá ser maior que o início da sequência (isso para os exercícios 8c e 8d); caso</p><p>contrário, dar uma mensagem de número inválido e finalizar o algoritmo.</p><p>1a) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15</p><p>1b) 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0</p><p>1c) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... , N</p><p>1d) 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, ..., N</p><p>Observação para 1d:</p><p>• valide corretivamente para que “N” seja maior que zero e ímpar;</p><p>• a variação será de 1 em 1; então, você deverá “verificar” se o contador é par ou</p><p>ímpar. Sabe-se que um número para ser “par” o resto da divisão desse número por</p><p>2 deverá ser zero.</p><p>1e) N, ..., 8, 7, 6, 5, 4, 3, 2, 1, 0</p><p>1f) N, ... , 5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5, ..., –N</p><p>Observação para 1f:</p><p>• valide corretivamente para que “N” seja maior que zero;</p><p>UNIUBE 105</p><p>• não existe nome de variável com símbolos –N; então, você deverá criar uma variá-</p><p>vel “AUX” para receber a conversão do conteúdo de N multiplicado por –1.</p><p>1g) 1, 2, 3, 4, 8, 9, 10, 11, 22, 23, 24, 25, ..., N</p><p>1h) N, ..., 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, ..., N</p><p>1i) 0, 1, 2, 3, 4, ..., N, ..., 4, 3, 2, 1</p><p>Atividade 2</p><p>Elabore um algoritmo (em Pascal ou PascalZim) que receba dois números, o primeiro</p><p>irá representar a base e deverá ser positivo, o segundo irá representar o expoente,</p><p>podendo ser negativo, zero ou positivo.</p><p>Processar e mostrar o resultado do primeiro elevado ao segundo. Para tal, NÃO usar</p><p>funções prontas que calculam a exponenciação como o tipo: exp(), ln(), ^, **, dentre</p><p>outras. Usar estrutura de repetição.</p><p>Exemplos:</p><p>• caso a base seja 2, e o expoente seja 0:</p><p>Resultado = 1, pois, todo número elevado a zero é igual a um.</p><p>• Caso a base seja 2, e o expoente seja 5:</p><p>Resultado = 32</p><p>• Caso a base seja 2, e o expoente seja –5:</p><p>• Quando o expoente é negativo, a fórmula é igual a:</p><p>5</p><p>1</p><p>2</p><p>resultado = 0,03125</p><p>Atividade 3</p><p>Na matemática, o fatorial é representado pelo símbolo de exclamação. Sabe-se que</p><p>FATORIAL é a multiplicação de todos seus termos de um número, começando pelo</p><p>1, variando-se de 1 em 1, até chegar ao número desejado.</p><p>Como exemplo, vejamos o fatorial do número 5.</p><p>5! = 1 * 2 * 3 * 4 * 5 = 120</p><p>106 UNIUBE</p><p>Observações:</p><p>• não existe fatorial de número negativo;</p><p>• o fatorial de zero é, por definição, igual a 1.</p><p>3.2 Modularização</p><p>Modularização são blocos (módulos) ou subprogramas de algoritmos com o</p><p>propósito de permitir sua reutilização a qualquer momento pelo código principal</p><p>ou programa principal. Possuindo algumas vantagens:</p><p>• economia do código fonte;</p><p>• facilidade de alteração do código, pois, altera-se só o módulo, e não as cha-</p><p>madas que estão no código principal;</p><p>• generalidade de código com uso de parâmetros. Podendo os módulos ser ge-</p><p>néricos.</p><p>As variáveis que são criadas na abertura do programa são chamadas de VA-</p><p>RIÁVEIS GLOBAIS, por terem seus conteúdos visíveis dentro de qualquer</p><p>módulo e código principal. Já as variáveis que são criadas DENTRO dos módu-</p><p>los são chamadas “LOCAIS”, por terem seus conteúdos visíveis somente ao</p><p>módulo que as criou. São dois tipos de módulos: procedimento e função.</p><p>3.2.1 Procedimento (procedure)</p><p>O procedimento tem por característica, executar seus comandos internos, podendo</p><p>ou não retornar alguma informação. Nós expressamos essa característica por:</p><p>“Procedimento SEM parâmetro”, “Procedimento COM Parâmetro” por valor</p><p>e/ou por referência.</p><p>O procedimento sem parâmetro:</p><p>• quando é chamado pelo código principal, executa suas instruções e volta ao</p><p>código principal, sem retornar nenhuma informação.</p><p>UNIUBE 107</p><p>O procedimento com passagem de parâmetro:</p><p>• por valor: vai junto com sua chamada, uma ou mais variáveis com informa-</p><p>ção a ser utilizada nos cálculos e processos, porém, quando retorna, NÃO</p><p>traz nenhum dado com ela;</p><p>• por referência: vai junto com sua chamada, uma ou mais variáveis com</p><p>informação a ser utilizada nos cálculos e processos, porém, quando retorna,</p><p>atualiza a variável ou as variáveis da chamada.</p><p>IMPORTANTE!</p><p>Na abertura do módulo, junto ao nome do procedimento, acrescenta-se a palavra</p><p>VAR antes das variáveis para representar quando for por REFERÊNCIA.</p><p>Observação:</p><p>Podemos chamar um ou mais procedimentos dentro de outro procedimento, porém,</p><p>devem-se criar os procedimentos na parte superior desse procedimento, ou seja,</p><p>vamos imaginar o procedimento com nome de “teste”, dentro deste, temos as se-</p><p>guintes chamadas: validar, calcular. Então, os procedimentos “validar” e “calcular”</p><p>devem ser criados acima do procedimento “teste”.</p><p>Vejamos os exemplos, a seguir:</p><p>Exemplo 13 (Procedimento SEM parâmetro)</p><p>Elaborar um algoritmo (em Pascal ou PascalZim), que crie um procedimento</p><p>para receber dois números, processar e mostrar a soma entre eles. Observe</p><p>que não haverá necessidade de criar variáveis GLOBAIS, o código principal</p><p>servirá somente para fazer a chamada do módulo.</p><p>IMPORTANTE!</p><p>Na abertura do módulo, junto ao nome do procedimento, acrescenta-se a palavra</p><p>VAR antes das variáveis para representar quando for por REFERÊNCIA.</p><p>Observação:</p><p>Podemos chamar um ou mais procedimentos dentro de outro procedimento, porém,</p><p>devem-se criar os procedimentos na parte superior desse procedimento, ou seja,</p><p>vamos imaginar o procedimento com nome de “teste”, dentro deste, temos as se-</p><p>guintes chamadas: validar, calcular. Então, os procedimentos “validar” e “calcular”</p><p>devem ser criados acima do procedimento “teste”.</p><p>108 UNIUBE</p><p>program exemplo_13_procedimento_sem_parametro;</p><p>{var}</p><p>{não vamos precisar de variáveis globais}</p><p>{área de criação dos procedimentos}</p><p>procedure entrada;</p><p>var</p><p>n1, n2, soma : integer;</p><p>begin</p><p>{inicializar variáveis locais}</p><p>n1 := 0; n2 := 0; soma := 0;</p><p>clrscr;</p><p>write (‘digite o primeiro número ...: ’);</p><p>readln (n1);</p><p>write (‘digite o segundo número ...: ’);</p><p>readln (n2);</p><p>{processando a soma}</p><p>soma := n1 + n2;</p><p>writeln;</p><p>writeln (‘resultado = ’, soma);</p><p>end; {fim do procedimento}</p><p>{--------------------------------------------------------------}</p><p>{código principal}</p><p>begin</p><p>clrscr;</p><p>entrada;</p><p>writeln; {pulando uma linha em branco}</p><p>writeln (‘acabou ... ’);</p><p>readln;</p><p>end.</p><p>Exemplo 14 (Procedimento COM parâmetro)</p><p>Elaborar um algoritmo (em Pascal ou PascalZim) que receba no código principal</p><p>um número, criar um procedimento com passagem de parâmetro por referência</p><p>que receba esse número e validá-lo corretivamente para que esse número seja</p><p>positivo. Criar outro procedimento com passagem de parâmetro por valor que</p><p>receba esse número. Calcule e mostre a raiz quadrada desse número.</p><p>UNIUBE 109</p><p>program exemplo_14_procedimento_com_parametro;</p><p>{variáveis globais}</p><p>var</p><p>n : real;</p><p>{área de criação dos procedimentos}</p><p>procedure validar ( var x : real );</p><p>{não é necessário criar variável local para esse procedimento}</p><p>begin</p><p>while (x <= 0) do</p><p>begin</p><p>write (‘inválido … digite outro número inteiro e positive …:’);</p><p>readln (x);</p><p>end;</p><p>end; {fim do procedimento}</p><p>{--------------------------------------------------------------}</p><p>procedimento calculo ( x : real);</p><p>begin</p><p>x := sqrt (x);</p><p>writeln (‘raiz quadrada =’, x:2:2);</p><p>end; {fim do procedimento}</p><p>{--------------------------------------------------------------}</p><p>{código principal}</p><p>begin</p><p>clrscr;</p><p>write (‘digite um número inteiro e positivo ...:’);</p><p>readln (n);</p><p>validar (n);</p><p>calculo (n);</p><p>writeln; {pulando uma linha em branco}</p><p>writeln (‘acabou ...’);</p><p>readln;</p><p>end.</p><p>110 UNIUBE</p><p>Exemplo 15 (Procedimento COM mais de um parâmetro)</p><p>Elaborar um algoritmo (em Pascal ou PascalZim) que, dentro do código principal,</p><p>receba duas notas e o nome de um aluno. Criar um procedimento com passagem</p><p>de parâmetro por referência para validar corretivamente a nota para que esteja</p><p>entre 0 a 10 (inclusive eles). Criar um outro procedimento com passagem de</p><p>parâmetro por valor, para receber as duas notas e, por referência, para retornar</p><p>o resultado da média, a qual será mostrada no código principal.</p><p>program exemplo_15_procedimento_com_mais_parametros;</p><p>{variáveis globais}</p><p>var</p><p>n1, n2, res : real;</p><p>nm : string;</p><p>{área de criação dos procedimentos}</p><p>procedure validar ( var x : real );</p><p>{não é necessário criar variável local para esse procedimento}</p><p>begin</p><p>while (x < 0) or (x > 10) do</p><p>begin</p><p>write (‘inválido … digite outra entre 0 a 10 …:’);</p><p>readln (x);</p><p>end;</p><p>end; {fim do procedimento}</p><p>{--------------------------------------------------------------}</p><p>procedure calculo (a, c : real ; var d : real);</p><p>begin</p><p>d := (a + b) / 2;</p><p>end; {fim do procedimento}</p><p>{--------------------------------------------------------------}</p><p>{código principal}</p><p>begin</p><p>n1 := 0; n2 := 0; res := 0; nm := ‘ ‘;</p><p>clrscr;</p><p>write (‘digite o nome do aluno ...:’);</p><p>readln (nm);</p><p>UNIUBE 111</p><p>write (‘digite a primeira nota entre 0 a 10 ...:’);</p><p>readln (n1);</p><p>validar (n1);</p><p>write (‘digite a segunda nota entre 0 a 10 ...:’);</p><p>readln (n2);</p><p>validar (n2);</p><p>calculo (n1, n2, res);</p><p>writeln; {pulando uma linha em branco}</p><p>writeln (‘cálculo da média =’, res:2:1);</p><p>writeln; {pulando uma linha em branco}</p><p>writeln (‘acabou ...’);</p><p>readln;</p><p>end.</p><p>3.2.2 Função (function)</p><p>As funções são bem semelhantes aos procedimentos. A principal diferença é</p><p>que elas sempre retornam ao código principal um valor associado ao nome que</p><p>a chamou.</p><p>Exemplo 16 (Função)</p><p>Elaborar um algoritmo (em Pascal ou PascalZim) que, dentro do código principal,</p><p>receba duas notas de um aluno. Criar um procedimento com passagem de pa-</p><p>râmetro por referência para validar corretivamente as notas para que estejam</p><p>entre 0 a 10 (inclusive eles). Criar uma função para calcular a média.</p><p>program exemplo_16_funcao_sem_parametro;</p><p>{variáveis globais}</p><p>var</p><p>n1, n2 : real;</p><p>{área de criação dos procedimentos}</p><p>procedure validar ( var x : real );</p><p>{não é necessário criar variável local para esse procedimento}</p><p>begin</p><p>while (x < 0) or (x > 10) do</p><p>begin</p><p>112 UNIUBE</p><p>write (‘inválido … digite</p><p>outra entre 0 a 10 …:’);</p><p>readln (x);</p><p>end;</p><p>end; {fim do procedimento}</p><p>{--------------------------------------------------------------}</p><p>function media : real;</p><p>begin</p><p>media := (n1 + n2) / 2;</p><p>end; {fim do procedimento}</p><p>{--------------------------------------------------------------}</p><p>{código principal}</p><p>begin</p><p>n1 := 0; n2 := 0;</p><p>clrscr;</p><p>write (‘digite a primeira nota entre 0 a 10 ...:’);</p><p>readln (n1);</p><p>validar (n1);</p><p>write (‘digite a segunda nota entre 0 a 10 ...:’);</p><p>readln (n2);</p><p>validar (n2);</p><p>writeln; {pulando uma linha em branco}</p><p>writeln (‘valor da média =’,media:2:1);</p><p>writeln; {pulando uma linha em branco}</p><p>writeln (‘acabou ...’);</p><p>readln;</p><p>end.</p><p>Exemplo 17 (Função)</p><p>Escreva uma função chamada MEDIA que retorne a média de 3 valores reais</p><p>(A, B e C) passados como parâmetros. Escreva um programa que, para um</p><p>número indeterminado de alunos, faça para cada uma deles:</p><p>• ler as 3 notas do aluno (criar um flag [forma de finalizar ou voltar e executar</p><p>novamente]);</p><p>• calcular e mostrar o valor da média do aluno (usando a função MEDIA).</p><p>Observe que a</p><p>chamada está</p><p>associada ao nome da</p><p>função e sua tipagem.</p><p>E o :2:1 é máscara</p><p>UNIUBE 113</p><p>program exemplo_17_funcao;</p><p>{variáveis globais}</p><p>var</p><p>n1, n2, n3 : real;</p><p>{área de criação dos procedimentos}</p><p>procedure validar ( var x : real );</p><p>{não é necessário criar variável local para esse procedimento}</p><p>begin</p><p>while (x < 0) or (x > 10) do</p><p>begin</p><p>write (‘inválido … digite outra entre 0 a 10 …:’);</p><p>readln (x);</p><p>end;</p><p>end; {fim do procedimento}</p><p>{--------------------------------------------------------------}</p><p>function media (a, b, c : real ) : real;</p><p>begin</p><p>media := (a + b + c) / 3;</p><p>end; {fim do procedimento}</p><p>{--------------------------------------------------------------}</p><p>{código principal}</p><p>begin</p><p>repeat</p><p>n1 := 0; n2 := 0; n3 := 0;</p><p>clrscr;</p><p>write (‘digite a primeira nota entre 0 a 10 ...:’);</p><p>readln (n1);</p><p>validar (n1);</p><p>write (‘digite a segunda nota entre 0 a 10 ...:’);</p><p>readln (n2);</p><p>validar (n2);</p><p>write (‘digite a terceira nota entre 0 a 10 ...:’);</p><p>readln (n3);</p><p>validar (n3);</p><p>writeln; {pulando uma linha em branco}</p><p>writeln (‘valor da média =’,media (n1,n2,n3) :2:1);</p><p>Observe que estamos</p><p>mandando três</p><p>parâmetros (notas).</p><p>E o :2:1 é máscara</p><p>114 UNIUBE</p><p>writeln; writeln; {pulando duas linhas em branco}</p><p>write (‘digite 1 para executar com outras notas ou 2 para sair ...:’);</p><p>readln (n1);</p><p>while (n1 < 1) or (n1 > 2) do</p><p>begin</p><p>write (‘inválido ... digite 1 ou 2 ...:’);</p><p>readln (n1);</p><p>end;</p><p>until n1 = 2;</p><p>writeln; {pulando uma linha em branco}</p><p>writeln (‘acabou ...’);</p><p>readln;</p><p>end.</p><p>Exemplo 18 (Função)</p><p>Escreva um programa Pascal que leia as 2 notas e o número de faltas de</p><p>um aluno; calcule a sua média e determine e exiba a sua situação. Caso a</p><p>aluno tenha mais de 10 faltas, ele está REPROVADO POR FALTA. Caso</p><p>contrário, estará REPROVADO se sua média for menor que 7.0 ou APRO-</p><p>VADO se sua média for maior ou igual a 7.0.</p><p>Observações:</p><p>a) utilize uma função para calcular a média e um procedimento para determinar</p><p>e exibir a situação do aluno;</p><p>b) não utilize variáveis globais.</p><p>program exemplo_18_funcao;</p><p>{variáveis globais – não tem para esse algoritmo}</p><p>{área de criação dos procedimentos}</p><p>{--------------------------------------------------------------}</p><p>function calculo (a, b : real) : real;</p><p>begin</p><p>calculo := (a + b) / 2;</p><p>end; {fim do procedimento}</p><p>{--------------------------------------------------------------}</p><p>UNIUBE 115</p><p>procedure verificar (x : integer ; z : real);</p><p>begin</p><p>if x > 10 then</p><p>begin</p><p>writeln;</p><p>writeln (‘aluno reprovado por infrequência.’);</p><p>end</p><p>else</p><p>begin</p><p>if z >= 7 then</p><p>writeln (‘aprovado com média =’, z:2:1)</p><p>else</p><p>writeln (‘reprovado com média =’, z:2:1);</p><p>end;</p><p>end;</p><p>{--------------------------------------------------------------}</p><p>procedure validar (var x : real);</p><p>{não é necessário criar variável local para esse procedimento}</p><p>begin</p><p>while (x < 0) or (x > 10) do</p><p>begin</p><p>write (‘inválido … digite outra entre 0 a 10 …:’);</p><p>readln (x);</p><p>end;</p><p>end; {fim do procedimento}</p><p>{--------------------------------------------------------------}</p><p>procedure entrada;</p><p>var</p><p>n1, n2 : real;</p><p>nrfaltas : integer;</p><p>begin</p><p>clrscr;</p><p>write (‘digite a primeira nota entre 0 a 10 ...:’);</p><p>readln (n1);</p><p>116 UNIUBE</p><p>validar (n1);</p><p>write (‘digite a segunda nota entre 0 a 10 ...:’);</p><p>readln (n2);</p><p>validar (n2);</p><p>{guardando o resultdo da media em n2}</p><p>n2 := calculo (n1,n2);</p><p>write (‘digite o número de faltas do aluno maior ou igual a zero ..:’);</p><p>readln (nrfaltas);</p><p>while (nrfaltas < 0) do</p><p>begin</p><p>write (‘inválido ... digite outro maior ou igual a zero ..:’);</p><p>readln (nrfaltas);</p><p>end;</p><p>verificar (nrfaltas, n2);</p><p>end;</p><p>{--------------------------------------------------------------}</p><p>{código principal}</p><p>begin</p><p>entrada;</p><p>writeln;</p><p>writeln (‘acabou ...’);</p><p>readln;</p><p>end.</p><p>INDICAÇÃO DE LEITURA</p><p>Sugerimos a agora a leitura do Capítulo 10, “Sub-rotinas”, do livro Fundamentos</p><p>da programação de computadores (ASCÊNCIO; CAMPOS, 2002). As autoras</p><p>propõem, neste capítulo, a divisão de problemas referentes à programação por meio</p><p>de modularização também chamada de sub-rotinas. As funções e os procedimentos</p><p>proporcionam a reutilização desses módulos de algoritmos – uma ação que contri-</p><p>bui para a manutenção dos programas.</p><p>INDICAÇÃO DE LEITURA</p><p>Sugerimos a agora a leitura do Capítulo 10, “Sub-rotinas”, do livro Fundamentos</p><p>da programação de computadores (ASCÊNCIO; CAMPOS, 2002). As autoras</p><p>propõem, neste capítulo, a divisão de problemas referentes à programação por meio</p><p>de modularização também chamada de sub-rotinas. As funções e os procedimentos</p><p>proporcionam a reutilização desses módulos de algoritmos – uma ação que contri-</p><p>bui para a manutenção dos programas.</p><p>UNIUBE 117</p><p>AGORA É A SUA VEZ</p><p>Atividade 4</p><p>Elabore um algoritmo (em Pascal ou PascalZim) que escreva um procedimento cha-</p><p>mado VERIFICAR que receba como parâmetro um valor N inteiro e escreva a palavra</p><p>POSITIVO se N for um número maior que zero, NEGATIVO se N for menor que zero,</p><p>ou ZERO se N for igual a zero.</p><p>O número será recebido no código principal e a respectiva mensagem será dentro do</p><p>procedimento.</p><p>Atividade 5</p><p>Elabore um algoritmo (em Pascal ou PascalZim) que crie uma função com o nome</p><p>de “cálculo”, que receba um valor (número) como parâmetro, e retorne o resultado</p><p>de seu triplo.</p><p>Crie um procedimento que faça a validação corretiva para que o número seja positivo</p><p>e, no código principal, receber esse número e mostrar o resultado de seu triplo.</p><p>PARADA OBRIGATÓRIA</p><p>As atividades a seguir deverão ser desenvolvidas utilizando-se procedimento e função.</p><p>Lembre-se de que o processo de modularização visa dividir o problema, gerando</p><p>bloco(s) módulo(s) de algoritmos que podem ser reutilizados.</p><p>AGORA É A SUA VEZ</p><p>Atividade 6</p><p>Faça um procedimento que receba três números inteiros como parâmetros (por valor),</p><p>representando horas, minutos e segundos, processar e mostrar o resultado da con-</p><p>versão desses números em segundos.</p><p>Exemplo: 2h, 40 min e 10 seg correspondem a 9610 segundos.</p><p>Atividade 4</p><p>Elabore um algoritmo (em Pascal ou PascalZim) que escreva um procedimento cha-</p><p>mado VERIFICAR que receba como parâmetro um valor N inteiro e escreva a palavra</p><p>POSITIVO se N for um número maior que zero, NEGATIVO se N for menor que zero,</p><p>ou ZERO se N for igual a zero.</p><p>O número será recebido no código principal e a respectiva mensagem será dentro do</p><p>procedimento.</p><p>Atividade 5</p><p>Elabore um algoritmo (em Pascal ou PascalZim) que crie uma função com o nome</p><p>de “cálculo”, que receba um valor (número) como parâmetro, e retorne o resultado</p><p>de seu triplo.</p><p>Crie um procedimento que faça a validação corretiva para que o número seja positivo</p><p>e, no código principal, receber esse número e mostrar o resultado de seu triplo.</p><p>PARADA OBRIGATÓRIA</p><p>As atividades a seguir deverão ser desenvolvidas utilizando-se procedimento e função.</p><p>Lembre-se de que o processo de modularização visa dividir o problema, gerando</p><p>bloco(s) módulo(s) de algoritmos que podem ser reutilizados.</p><p>AGORA É A SUA VEZ</p><p>Atividade 6</p><p>Faça um procedimento que receba três números inteiros como parâmetros (por valor),</p><p>representando horas, minutos e segundos, processar e mostrar o resultado da con-</p><p>versão desses números em segundos.</p><p>Exemplo: 2h, 40 min e 10 seg correspondem a 9610 segundos.</p><p>118 UNIUBE</p><p>Atividade 7</p><p>Uma loja de confecções femininas trabalha com dois tipos de vendas: V – vista, P –</p><p>prazo. A loja determinou que todas as contas a prazo serão em 5 parcelas. Para</p><p>melhor gerenciar, o proprietário contratou seus serviços para desenvolver um algoritmo</p><p>(em Pascal ou em PascalZim), que mostre os seguintes relatórios:</p><p>a) quantidade de vendas à vista no dia;</p><p>b) quantidade de vendas a prazo no dia;</p><p>c) o valor total das vendas à vista;</p><p>d) o valor total das vendas a prazo;</p><p>e) o valor total das primeiras parcelas das vendas a prazo;</p><p>f) média geral de vendas (à vista e a prazo).</p><p>Observações:</p><p>• a forma de finalizar será o valor da venda igual a zero;</p><p>• criar os seguintes módulos:</p><p>• procedimento “validar” com passagem de parâmetro por referência para validar</p><p>o valor da venda para ser positivo ou zero;</p><p>• função “calcular” para calcular o valor da primeira prestação da venda a prazo.</p><p>Resumo</p><p>Nesse capítulo, abordamos o uso de uma linguagem de programação denomi-</p><p>nada PascalZim. Nesse trabalho foi necessário aprender a codificar um pro-</p><p>grama, ou seja, o que você fazia no algoritmo, porém, agora, para a linguagem</p><p>mencionada. Tivemos o cuidado de utilizar comparações entre a escrita dos</p><p>algoritmos e dos programas em PascalZim. Enfocamos, ainda, a modularização</p><p>de blocos de comandos, seja por meio de procedimentos ou por função possi-</p><p>bilitando que você estabeleça as diferenças entre elas, assim como, identifique</p><p>sua utilização na reutilização de códigos de programação e eficiência nas ma-</p><p>nutenções e otimizações.</p><p>UNIUBE 119</p><p>Referências</p><p>ASCÊNCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida V. de. Fundamentos da</p><p>programação de computadores. São Paulo: Pearson Prentice Hall, 2002.</p><p>FARRER, Harry. Algoritmos estruturados. Rio de Janeiro: LTC, 1999.</p><p>FORBELLONE, André Luiz Villar. Lógica de programação: a construção de algoritmos e</p><p>estruturas de dados. São Paulo: Pearson Prentice Hall, 2005.</p><p>MANZANO, José Augusto. Algoritmos: lógica para desenvolvimento de programação. São</p><p>Paulo: Érica, 1996.</p><p>Eletricidade aplicada e</p><p>equipamentos eletroeletrônicos,</p><p>volume 1</p><p>Parte II</p><p>Apresentação</p><p>Prezado(a) aluno(a)</p><p>Neste componente contaremos com dois capítulos:</p><p>• Introdução à eletricidade</p><p>• Lei de Ohm e análise de circuitos elétricos</p><p>No Capítulo 4, você estudará a representação de uma grandeza pelo Sistema</p><p>Internacional de Medidas e também o arredondamento e a representação de</p><p>um número por intermédio de notação científica e da utilização de prefixos. Após</p><p>este estudo inicial de grande relevância, você verá os conceitos básicos rela-</p><p>cionados à eletricidade como corrente e tensão elétricas. Estudará, também, o</p><p>conceito de resistência elétrica.</p><p>No Capítulo 5, você terá a oportunidade de estudar as três leis básicas utilizadas</p><p>na análise de circuitos elétricos: a Lei de Ohm e as duas Leis de Kirchhoff. Em</p><p>seguida, poderá utilizá-las na análise de circuitos elétricos em configurações</p><p>conhecidas como série, paralela e série‑paralela (mista). Estudará os conceitos</p><p>de fonte de tensão e fonte de corrente.</p><p>Bom desempenho!</p><p>Introdução à</p><p>eletricidade</p><p>Capítulo</p><p>4</p><p>Márcio Aparecido Arruda / Virgílio de Melo Langoni</p><p>Introdução</p><p>Nos estudos sobre a eletricidade, é de grande importância saber traba-</p><p>lhar com números. Constantemente são realizados cálculos envolvendo</p><p>medidas das grandezas envolvidas em um circuito elétrico. Como nem</p><p>sempre os resultados dos cálculos são números exatos, saber como</p><p>arredondar esses números proporcionará ao estudante trabalhar com</p><p>um valor aproximado causando o menor erro possível.</p><p>É abordada, neste capítulo, a correta forma de manipulação de valores</p><p>medidos das grandezas elétricas, com ênfase no correto arredonda-</p><p>mento desses valores. Trata ainda da transformação dos valores,</p><p>expressando-os em notação de potência de dez e ainda sobre o uso</p><p>dos prefixos gregos utilizados em substituição à potência de dez. Em</p><p>muitos casos, principalmente quando manipulando valores muito gran-</p><p>des ou muito pequenos, torna-se cômodo expressar e manipular esses</p><p>valores em potência de dez.</p><p>Tão importante quanto expressar corretamente uma grandeza é saber</p><p>atribuir a ela uma unidade correta. Por exemplo, não podemos expres-</p><p>sar um valor medido de uma determinada massa em metros. Não faz</p><p>sentido algum. Assim, apresentamos neste capítulo o Sistema Interna-</p><p>cional de Medidas, que irá orientá-lo(a) quanto ao correto uso das</p><p>unidades atribuídas às grandezas. Ainda com relação ao uso de unida-</p><p>des, é importante observarmos que às vezes nos deparamos com uma</p><p>grandeza expressa em um unidade diferente daquela a qual estamos</p><p>acostumados, por exemplo, um comprimento expresso em pés e não</p><p>em metros. Neste sentido, em várias situações será necessário conver-</p><p>ter uma unidade em outra a fim de facilitar os cálculos que envolvem</p><p>determinada grandeza.</p><p>126 UNIUBE</p><p>Para que você tenha um bom aproveitamento, é desejável que os con-</p><p>ceitos relacionados ao arredondamento de valores e o correto uso de</p><p>unidades sejam compreendidos. Ainda, é desejável que compreenda a</p><p>respeito da conversão entre unidades e da utilização do Sistema Inter-</p><p>nacional de Unidades.</p><p>Objetivos</p><p>Ao final deste capítulo, você deverá ser capaz de:</p><p>• definir Sistema Internacional de Medidas;</p><p>• conhecer os diferentes instrumentos de medidas;</p><p>• utilizar as diferentes unidades de medidas, em seu dia a dia;</p><p>• converter uma unidade de medida em outra correspondente;</p><p>• arredondar um número, considerando os algarismos significa-</p><p>tivos;</p><p>• transformar um número utilizando a notação científica padroni-</p><p>zada;</p><p>• aplicar corretamente prefixos gregos em substituição à potência</p><p>de dez.</p><p>• compreender o funcionamento de circuitos que operam em re-</p><p>gime de corrente contínua.</p><p>Esquema</p><p>4.1 Sistema Internacional de Medidas, arredondamento e potência de</p><p>dez</p><p>4.1.1 Histórico das unidades de medidas</p><p>4.1.2 Sistema Internacional de Medidas – SI</p><p>4.1.3 Algarismos significativos</p><p>4.1.4 Erros</p><p>4.1.5 Arredondamento</p><p>4.1.6 Notação científica</p><p>INDICAÇÃO DE LEITURA</p><p>Para aprofundar os conceitos e exemplos sugerimos a leitura de algumas seções</p><p>do livro Introdução à análise de circuitos de autoria de Robert L. Boylestad</p><p>(2004).</p><p>INDICAÇÃO DE LEITURA</p><p>Para aprofundar os conceitos e exemplos sugerimos a leitura de algumas seções</p><p>do livro Introdução à análise de circuitos de autoria de Robert L. Boylestad</p><p>(2004).</p><p>UNIUBE 127</p><p>4.1.7 Prefixos do Sistema Internacional</p><p>4.2 Corrente e tensão</p><p>4.2.1 Condutores e isolantes</p><p>4.2.2 Corrente elétrica</p><p>4.2.3 Tensão</p><p>4.3 Resistência</p><p>4.3.1 Resistência em condutores</p><p>4.3.2 Condutância</p><p>4.3.3 Aspectos construtivos dos resistores</p><p>4.3.4 Coeficiente de temperatura α</p><p>4.1 Sistema Internacional de Medidas, arredondamento e</p><p>potência de dez</p><p>O Sistema Internacional de Medidas, conhecido por SI, foi criado com o objetivo</p><p>de estabelecer o uso adequado das unidades de medida para que uma grandeza</p><p>seja expressa e compreendida de forma correta.</p><p>Você já usou por várias vezes esse sistema de medidas em diferentes situações</p><p>de seu cotidiano. Já mediu, por exemplo, uma folha para ver se era do tamanho</p><p>ofício; já usou medidas proporcionais, para desenhar figuras em quadrinhos; já</p><p>mediu uma parede de seu quarto, para ver se comportava um guarda-roupa ou</p><p>um outro móvel.</p><p>Nesse sentido, você já sabe que o ato de medir significa avaliar ou determinar</p><p>a medida de algum objeto. Sabe também que, para a realização de uma medi-</p><p>ção, necessitamos de um padrão de comparação da mesma espécie da quan-</p><p>tidade a ser medida. A esse padrão nomeamos unidade de medida.</p><p>Você conhece também várias unidades de medida e alguns instrumentos utili-</p><p>zados para fazer medição. Sabemos que a medição deve ser executada com</p><p>um</p><p>instrumento de medida calibrado e uma forma padronizada de escrever o</p><p>valor da medida conforme a sua unidade. Veja, a seguir, algumas unidades de</p><p>medida e alguns instrumentos:</p><p>Unidade de medida: metro, quilo, litro, Volt’s etc.</p><p>Instrumento de medida: trena, régua, balança, voltímetro, amperímetro etc.</p><p>128 UNIUBE</p><p>Observe, atentamente, a Figura 1. Nela temos a medição de um objeto por meio</p><p>do instrumento régua.</p><p>Figura 1: Medida e padrão de medida.</p><p>Fonte: Márcio Arruda (2008).</p><p>10 20 30</p><p>Objeto a ser medido</p><p>Medida = 23,3 cm</p><p>Instrumento: régua graduada de 30 cm.</p><p>Padrão de medida = centímetros</p><p>Nota: 0,3 cm é uma aproximação, para uma medida exata a régua deveria ser dotada de</p><p>graduação em milímetros.</p><p>4.1.1 Histórico das unidades de medidas</p><p>É indispensável ao profissional da área tecnológica conhecer e compreender as</p><p>unidades de medida.</p><p>Antigamente, essas unidades de medida eram representadas pelas partes do</p><p>corpo humano. A jarda, por exemplo, era tida como a medida de um cinturão</p><p>masculino da época, que recebia esse nome, e no século XII, foi estabelecida</p><p>como sendo a distância entre o nariz e o polegar do braço estendido do rei da</p><p>Inglaterra Henrique I.</p><p>IMPORTANTE!</p><p>O símbolo da jarda é yd, do inglês yard. A relação oficial entre jardas e metros é de</p><p>3600 m para 3937,0113 jarda. Isso significa que cada jarda corresponde a aproxima-</p><p>damente 0,91 439 920 429 metros.</p><p>A jarda tem como múltiplos:</p><p>• a braça, que equivale a 2 jardas;</p><p>• a milha terrestre, que equivale a 1 760 jardas;</p><p>IMPORTANTE!</p><p>O símbolo da jarda é yd, do inglês yard. A relação oficial entre jardas e metros é de</p><p>3600 m para 3937,0113 jarda. Isso significa que cada jarda corresponde a aproxima-</p><p>damente 0,91 439 920 429 metros.</p><p>UNIUBE 129</p><p>• a légua terrestre, que equivale a 3 milhas, ou seja, 5 280 jardas.</p><p>Os submúltiplos da jarda são o pé e a polegada. Uma jarda contém 36 polega-</p><p>das ou 3 pés. Temos, ainda, o palmo que é equivalente a 8 polegadas, ou seja,</p><p>1 jarda contém 4,5 palmos (Figura 2).</p><p>Observe, com atenção, a Figura 2. Veja a relação feita do corpo humano com</p><p>as unidades de medidas.</p><p>Figura 2: Medidas no corpo humano.</p><p>Com a necessidade de medidas exatas, novos padrões de medidas foram pos-</p><p>teriormente estabelecidos. Por exemplo: o metro e o segundo. Acompanhe, a</p><p>seguir, as suas definições:</p><p>• metro: comprimento do trajeto percorrido pela luz no vácuo, durante o intervalo</p><p>de tempo de 1 / 299 792 458 de segundo;</p><p>• segundo: duração de 9 192 631 770 períodos da radiação correspondente à</p><p>transição entre dois níveis hiperfinos do estado fundamental do átomo de</p><p>Césio 133.</p><p>130 UNIUBE</p><p>4.1.2 Sistema Internacional de Medidas – SI</p><p>Trata-se de um sistema de unidades coerentes, cujas unidades são escolhidas</p><p>de tal forma que as equações entre valores numéricos ou equações correspon-</p><p>dentes ou as equações correspondentes entre grandezas tenham exatamente</p><p>a mesma forma. Acompanhe, no Quadro 1, algumas correspondências.</p><p>Quadro 1: Unidades fundamentais.</p><p>GRANDEZA SÍMBOLO NOME</p><p>Comprimento m metro</p><p>Massa kg quilograma</p><p>Tempo s segundo</p><p>Intensidade corrente elétrica A ampere</p><p>Temperatura K kelvin</p><p>Intensidade luminosa cd candela</p><p>4.1.2.1 A grafia das medidas</p><p>Ao expressar uma medida não é permitida a utilização de símbolos diferentes</p><p>dos legais e a utilização de ponto após qualquer símbolo, a não ser o ponto final</p><p>de uma sentença.</p><p>O valor de uma grandeza deve sempre ser expresso por meio de uma só unidade</p><p>de medida da mesma espécie, exceto as medidas de tempo e ângulo, que uti-</p><p>lizam hora, minuto e segundos, no caso do tempo e graus, minutos e segundos</p><p>em medidas de ângulo.</p><p>A parte inteira é separada de sua parte decimal por meio de uma vírgula, para</p><p>facilitar a leitura e compreensão. O número pode ser dividido em grupos de</p><p>três algarismos, quer à esquerda, quer à direita da vírgula, sendo que esses</p><p>grupos se separam por um espaço correspondente ao que seria ocupado por</p><p>um algarismo.</p><p>4.1.2.2 Mudança de unidades</p><p>Constantemente nos deparamos com a necessidade de converter uma unidade</p><p>em outra que nos seja mais conveniente. Apesar de, no Brasil, a unidade de</p><p>medida para volume utilizada ser o litro e seus múltiplos, encontramos produtos</p><p>comercializados em galão, por exemplo: galão de tintas. Um outro exemplo in-</p><p>UNIUBE 131</p><p>teressante se refere às dimensões da tela de um aparelho de televisão ou</p><p>computador. Elas são fornecidas em polegadas, enquanto a nossa unidade de</p><p>medida padrão é o metro.</p><p>Em instalações elétricas, esse problema é constante, sobretudo em ferragens,</p><p>conexões e bitolas de cabos. Acompanhe, no Quadro 2, algumas conversões</p><p>de unidades.</p><p>Quadro 2: Conversão de unidades.</p><p>SÍMBOLO UNIDADE CONVERSÃO</p><p>PARA</p><p>FATOR DE</p><p>MULTIPLICAÇÃO</p><p>Bb OU Bbs BARRIL LITROS 158,988</p><p>lb/pol2 LIBRA POR</p><p>POLEGADA</p><p>QUADRADA</p><p>kgf/cm2 0,0703</p><p>lb LIBRA (PESO) kg 0,4536</p><p>pé PÉ m 0,3048</p><p>pol POLEGADA m 0,0254</p><p>4.1.3 Algarismos significativos</p><p>Algarismos significativos de uma grandeza são aqueles cujos valores garantem</p><p>o resultado prático da medida, de acordo com a precisão e graduação da escala</p><p>do instrumento utilizado na medição.</p><p>4.1.4 Erros</p><p>O erro de uma medida é a diferença teórica entre o valor verdadeiro da grandeza</p><p>e o valor que é possível medir com o instrumento utilizado.</p><p>4.1.4.1 Erro absoluto</p><p>O erro absoluto é definido como sendo o módulo da diferença entre o valor exato</p><p>e o valor aproximado de um número. Suponha, por exemplo, que as massas de</p><p>dois objetos sejam medidas. A massa do primeiro objeto é exatamente igual a</p><p>10 kg, mas a medida resultou em 9 kg. Para a massa do segundo objeto, o seu</p><p>132 UNIUBE</p><p>valor exato é de 20 kg, contudo, a medida resultou em 21 kg. Assim, os erros</p><p>absolutos são:</p><p>1</p><p>2</p><p>10 9 1</p><p>20 21 1</p><p>E kg</p><p>E kg</p><p>= − =</p><p>= − =</p><p>1</p><p>2</p><p>1 kg 0,1 10%</p><p>10 kg</p><p>1 kg 0,02 2%</p><p>20</p><p>R</p><p>R</p><p>E ou</p><p>E ou</p><p>kg</p><p>= =</p><p>= =</p><p>4.1.4.2 Erro relativo</p><p>O erro relativo é definido como sendo a relação entre o erro absoluto e o módulo</p><p>do valor exato do número. Assim, utilizando os erros absolutos calculados ante-</p><p>riormente, tem-se:</p><p>1</p><p>2</p><p>10 9 1</p><p>20 21 1</p><p>E kg</p><p>E kg</p><p>= − =</p><p>= − =</p><p>1</p><p>2</p><p>1 kg 0,1 10%</p><p>10 kg</p><p>1 kg 0,02 2%</p><p>20</p><p>R</p><p>R</p><p>E ou</p><p>E ou</p><p>kg</p><p>= =</p><p>= =</p><p>As medidas realizadas dos erros absolutos se mostraram iguais, contudo, ao se</p><p>calcular o erro relativo, pode-se observar que o erro cometido na primeira medida</p><p>foi 5 vezes maior do que o erro cometido na segunda medida. Conclui-se, assim,</p><p>que o erro relativo produz um resultado com informações mais úteis do que o</p><p>erro absoluto, quando da comparação entre erros.</p><p>4.1.4.3 Valor verdadeiro</p><p>No ponto de vista da teoria de erros, costuma-se idealizar que toda grandeza física</p><p>possui um valor bem definido, ou exato, que aqui chamaremos de valor verdadeiro</p><p>da grandeza.</p><p>Quando se repete a medição de uma grandeza, na maioria das vezes, os su-</p><p>cessivos resultados não coincidem. Nesses casos, temos duas situações:</p><p>• os erros encontrados podem ser sistemáticos, ou seja, o valor medido fica</p><p>fora dos padrões ou faixas de erros apresentados. Nesse caso, essas medi-</p><p>ções devem ser expurgadas do cálculo do valor mais provável da medição.</p><p>• os erros encontrados podem ser estatísticos, ou seja, os valores medidos se</p><p>encontram dentro de uma faixa aceitável de erro.</p><p>UNIUBE 133</p><p>4.1.4.4 Valor mais provável e precisão</p><p>Na impossibilidade de se conhecer o valor exato de uma grandeza física, esta-</p><p>mos diante da seguinte questão:</p><p>Que valor devemos adotar para tal grandeza?</p><p>Consideremos as medidas sucessivas diferentes x1, x2, ..., xn, que são obtidas</p><p>para uma grandeza física e valor médio (média aritmética) dessas medidas:</p><p>x =</p><p>n</p><p>1 ∑</p><p>i</p><p>ix , (i = 1, 2, 3, ..., n)</p><p>Admitindo-se que os erros sistemáticos tenham sido eliminados, espera-se que,</p><p>quanto maior o número de medidas obtidas, mais próximo estará o valor médio</p><p>obtido do valor verdadeiro da grandeza.</p><p>Exemplo</p><p>Considere as seis medidas apontadas, a seguir, obtidas para a massa de um</p><p>corpo, expressa em gramas: 13,62; 13,63; 13,64; 13,63; 13,60; 13,61.</p><p>O valor mais provável da massa</p><p>do corpo será:</p><p>m = (13,62 + 13,63 +13,64 + 13,63 + 13,60 + 13,61) g / 6 = 81,73 g / 6 = 13,621 g.</p><p>Então, com quantos algarismos devemos escrever o resultado acima?</p><p>A resposta dependerá do valor obtido para o erro médio absoluto, uma vez que</p><p>este fornece a incerteza do valor mais provável.</p><p>Calculando os desvios (diferença entre o valor verdadeiro e o valor medido) ∆mi de</p><p>cada uma das medidas, obtemos: +0,001; –0,009; –0,019; –0,009; +0,021; +0,011.</p><p>Assim, o erro médio absoluto será: = (0,001 + 0,009 + 0,019 + 0,009 + 0,021 +</p><p>0,011) / 6 = 0,70 g / 6 = 0,01166 g.</p><p>A incerteza no valor mais provável da medida se manifesta a partir da segunda</p><p>casa decimal (casa dos centésimos). Portanto, é inútil manter algarismos que</p><p>Que valor devemos adotar para tal grandeza?</p><p>134 UNIUBE</p><p>estão situados além da casa dos centésimos, tanto no erro médio como no</p><p>valor mais provável. O valor final para a massa do corpo será escrito como:</p><p>m = (13,62 ± 0,01) g</p><p>4.1.5 Arredondamento</p><p>Por arredondamento entende-se o ato de desprezar algarismos significativos de</p><p>uma medida excessivamente precisa para a operação desejada, adotando-se a</p><p>seguinte regra:</p><p>• se o último algarismo abandonado é menor do que cinco, simplesmente</p><p>desprezam-se os algarismos excedentes, conservando o valor do número</p><p>arredondado.</p><p>• se o último algarismo abandonado é maior ou igual a cinco, desprezam-se os</p><p>algarismos excedentes, adicionando uma unidade à última casa decimal do</p><p>valor do número arredondado;</p><p>Exemplo de arredondamento</p><p>Arredondar o número 36,65492 para duas, três e quatro casas após a vírgula,</p><p>considerando os algarismos significativos:</p><p>• duas casas: 36,65;</p><p>• três casas: 36,655;</p><p>• quatro casas: 36,6549.</p><p>4.1.6 Notação científica</p><p>A notação científica é um artifício utilizado para representar números muito</p><p>grandes ou muito pequenos. É baseado no uso de potências de 10. Acompanhe</p><p>os exemplos, a seguir:</p><p>Exemplo 1</p><p>Para escrevermos um número muito grande, como o número de elétrons em um</p><p>Coulomb que é de 6,242 x 1018 elétrons, sem a utilização da potência de dez,</p><p>teríamos que escrever 6. 242 000 000 000 000 000 elétrons.</p><p>UNIUBE 135</p><p>Exemplo 2</p><p>Assim, para escrevermos um número muito pequeno, a capacitância de um</p><p>capacitor cerâmico de 4,7 x 10–9 Farads, sem a utilização da potência de dez,</p><p>teríamos que escrever: 0,000 000 0047 Farads.</p><p>Nesses casos, a representação dos números, na forma convencional, torna-se</p><p>difícil em função da quantidade de zeros extremamente alta para a velocidade</p><p>normal de leitura dos números.</p><p>PARADA OBRIGATÓRIA</p><p>Um número escrito em notação científica deve seguir o seguinte modelo: m x 10e. O</p><p>número “m” é denominado mantissa e “e”, a ordem de grandeza. A notação científica</p><p>padronizada é aquela em que a mantissa deve ser maior ou igual a 1 e menor que</p><p>10. Desse modo, cada número é representado de uma única maneira. Assim, para</p><p>transformar um número qualquer para a notação científica padronizada, devemos</p><p>deslocar a vírgula, obedecendo ao princípio de equilíbrio, como 123456,78. Como a</p><p>notação científica padronizada exige que a mantissa esteja entre 1 e 10, o valor ade-</p><p>quado seria 1,2345678 x 105.</p><p>Acompanhe, passo a passo, o princípio do equilíbrio:</p><p>123456,78 x 100</p><p>12345,678 x 101</p><p>1234,5678 x 102</p><p>123,45678 x 103</p><p>12,345678 x 104</p><p>1,2345678 x 105</p><p>Veja outro exemplo com valor menor que 1:</p><p>0,000000673</p><p>0,000000673 x 100</p><p>0,00000673 x 10–1</p><p>PARADA OBRIGATÓRIA</p><p>Um número escrito em notação científica deve seguir o seguinte modelo: m x 10e. O</p><p>número “m” é denominado mantissa e “e”, a ordem de grandeza. A notação científica</p><p>padronizada é aquela em que a mantissa deve ser maior ou igual a 1 e menor que</p><p>10. Desse modo, cada número é representado de uma única maneira. Assim, para</p><p>transformar um número qualquer para a notação científica padronizada, devemos</p><p>deslocar a vírgula, obedecendo ao princípio de equilíbrio, como 123456,78. Como a</p><p>notação científica padronizada exige que a mantissa esteja entre 1 e 10, o valor ade-</p><p>quado seria 1,2345678 x 105.</p><p>136 UNIUBE</p><p>0,0000673 x 10–2</p><p>0,000673 x 10–3</p><p>0,00673 x 10–4</p><p>0,0673 x 10–5</p><p>0,673 x 10–6</p><p>6,73 x 10–7</p><p>4.1.7 Prefixos do Sistema Internacional</p><p>Os prefixos do SI permitem escrever quantidades sem o uso da notação cientí-</p><p>fica, de maneira mais simples. Acompanhe, no Quadro 3:</p><p>Quadro 3: Prefixos utilizados no Sistema Internacional.</p><p>10N PREFIXO SÍMBOLO ESCALA</p><p>EQUIVALENTE</p><p>DECIMAL</p><p>1012 tera T Trilhão 1000 000 000 000</p><p>109 giga G Bilhão 1 000 000 000</p><p>106 mega M Milhão 1 000 000</p><p>103 quilo k Milhar 1 000</p><p>102 hecto h Centen 100</p><p>101 deca da Dezena 10</p><p>100</p><p>10–1 deci d Décimo 0,1</p><p>10−2 centi c Centésimo 0,01</p><p>10−3 mili m Milésimo 0,001</p><p>10−6 micro m Milionésimo 0,000 001</p><p>10−9 nano n Bilionésimo 0,000 000 001</p><p>10−12 pico p Trilionésimo 0,000 000 000 001</p><p>UNIUBE 137</p><p>Para utilizar esses prefixos, primeiro precisamos “preparar” o número para</p><p>substituição da potência de dez. Preparar o número significa colocá-lo em no-</p><p>tação científica, não necessariamente padronizada, e aplicar o prefixo grego em</p><p>substituição a potência de dez.</p><p>Os prefixos mais utilizados nos estudos de eletricidade são:</p><p>• quilo;</p><p>• mega;</p><p>• giga;</p><p>• mili;</p><p>• micro;</p><p>• nano;</p><p>• pico.</p><p>IMPORTANTE!</p><p>Observe que todas as potências de dez dos prefixos citados são múltiplos de três.</p><p>Veja, a seguir, o exemplo de uma aplicação:</p><p>4 700 Ω = 4,7 x 103 Ω = 4,7 kΩ.</p><p>0,003 amperes = 3 x 10-3 A = 3 mA.</p><p>1 000 000 volts = 1 x 106 V = 1 MV.</p><p>4.2 Corrente e tensão</p><p>Nossa abordagem abrangerá a importância de conhecer os condutores e iso-</p><p>lantes de corrente e tensão, compreendendo o que é a corrente elétrica e as</p><p>forças que atuam sobre o fluxo dessa corrente.</p><p>Observe que todas as potências de dez dos prefixos citados são múltiplos de três.</p><p>Veja, a seguir, o exemplo de uma aplicação:</p><p>4 700 Ω = 4,7 x 103 Ω = 4,7 kΩ.</p><p>0,003 amperes = 3 x 10-3 A= 3 mA.</p><p>1 000 000 volts = 1 x 106 V = 1 MV.</p><p>138 UNIUBE</p><p>4.2.1 Condutores e isolantes</p><p>Na natureza, há materiais em que o movimento das cargas elétricas ocorre com</p><p>facilidade. Esses materiais são chamados de CONDUTORES. Por exemplo: o</p><p>cobre, o ferro, o alumínio, a prata, entre outros, são condutores de corrente</p><p>elétrica.</p><p>Existem também aqueles em que o movimento das cargas elétricas é extrema-</p><p>mente difícil, em função da sua própria estrutura molecular. Esses materiais são</p><p>chamados de ISOLANTES. Como exemplos temos a borracha, a porcelana, o</p><p>vidro, a madeira seca, entre outros.</p><p>4.2.1.1 Materiais condutores</p><p>Nos átomos dos materiais CONDUTORES, os elétrons que se movem nas ca-</p><p>madas mais distantes do núcleo atômico são fracamente atraídos pelo núcleo,</p><p>podendo escapar de um átomo para outro, constituindo-se nos ELÉTRONS</p><p>LIVRES, abundantes nos metais. Acompanhe esse movimento na Figura 3, a</p><p>seguir.</p><p>Figura 3: Materiais condutores.</p><p>Material condutor = muitos elétrons livres</p><p>4.2.1.2 Materiais isolantes</p><p>Nos átomos dos materiais ISOLANTES, a forte atração exercida pelo núcleo</p><p>atômico sobre os elétrons das camadas mais externas do átomo não possibilitam</p><p>a existência dos ELÉTRONS LIVRES. A Figura 4 ilustra a referida força.</p><p>UNIUBE 139</p><p>Figura 4: Materiais isolantes.</p><p>Material isolante = poucos elétrons livres</p><p>Outro aspecto importante a considerar é que não existem condutores perfeitos</p><p>nem isolantes perfeitos. Isso significa que um isolante pode conduzir corrente</p><p>elétrica em determinadas condições.</p><p>Exemplo</p><p>A madeira, quando seca, tem propriedade de ser isolante. No entanto, úmida</p><p>funciona como um condutor elétrico.</p><p>IMPORTANTE!</p><p>Na verdade, um isolante pode ser interpretado como um mau condutor de eletricidade.</p><p>Vale lembrar que os materiais isolantes têm tanta importância na eletricidade quanto</p><p>os condutores. Os condutores é que nos permitem trabalhar com a eletricidade de</p><p>forma segura.</p><p>4.2.2 Corrente elétrica</p><p>Todas as substâncias, gasosas, líquidas ou sólidas, são constituídas de pequenas</p><p>partículas invisíveis a olho nu. Essas partículas são denominadas átomos.</p><p>O átomo é composto de três partículas básicas.</p><p>São elas:</p><p>• os prótons;</p><p>• os nêutrons;</p><p>• os elétrons.</p><p>IMPORTANTE!</p><p>Na verdade, um isolante pode ser interpretado como um mau condutor de eletricidade.</p><p>Vale lembrar que os materiais isolantes têm tanta importância na eletricidade quanto</p><p>os condutores. Os condutores é que nos permitem trabalhar com a eletricidade de</p><p>forma segura.</p><p>140 UNIUBE</p><p>Os prótons e os nêutrons formam o núcleo do átomo. O próton possui carga</p><p>elétrica positiva e o nêutron não possui carga elétrica. As suas massas são</p><p>equivalentes.</p><p>O elétron possui uma carga negativa e a sua massa, por ser muito pequena, é</p><p>desprezível.</p><p>Em um átomo, o número de elétrons é igual ao número de prótons, sendo, por-</p><p>tanto, o átomo eletricamente neutro, pois a soma das cargas dos elétrons (ne-</p><p>gativas) com as cargas dos prótons (positivas) é igual a zero.</p><p>A carga elétrica de um elétron é de 1,6 x 10–19 Coulombs. O Coulomb é uma</p><p>unidade fundamental do Sistema Internacional de unidades (SI) utilizada para</p><p>quantificar a carga elétrica presente em um corpo. Essa unidade recebeu este</p><p>nome em homenagem ao físico francês Charles Augustin de Coulomb.</p><p>Para que tenhamos uma carga elétrica correspondente a 1C (um Coulomb), é</p><p>necessário somarmos a carga elétrica de 6,242 x 1018 elétrons.</p><p>Os elétrons, quando presentes em um material considerado bom condutor de</p><p>eletricidade (metais por exemplo), estão em constante movimento desordenado</p><p>ganhando e perdendo energia o tempo todo (Figura 5).</p><p>Figura 5: Movimento desordenado de elétrons.</p><p>Íon</p><p>+</p><p>Íon</p><p>+</p><p>Íon</p><p>+</p><p>Íon</p><p>+</p><p>Íon</p><p>+Íon</p><p>+</p><p>Íon</p><p>+</p><p>UNIUBE 141</p><p>Neste estado, o movimento resultante da agitação dos elétrons livres é nulo. Ou</p><p>seja, na ausência de uma força externa (campo elétrico por exemplo), o fluxo</p><p>de carga líquida em um condutor é nulo em qualquer direção.</p><p>Quando submetemos as extremidades desse condutor a uma diferença de potencial,</p><p>provocamos nele um deslocamento de elétrons ordenados segundo a polaridade</p><p>dessa diferença de potencial. Observe, com atenção, na Figura 6 a seguir:</p><p>Figura 6: Corrente elétrica.</p><p>15W</p><p>12V</p><p>BATERIA</p><p>Conclusão: esse fluxo ordenado de elétrons chama-se corrente elétrica.</p><p>4.2.2.1 Conceito de corrente elétrica</p><p>Quando 6,242 x 1018 elétrons (1 Coulomb = 1 C) atravessam, em 1 segundo,</p><p>com velocidade uniforme, a seção reta circular de um condutor, podemos dizer</p><p>que este escoamento de carga corresponde a 1 ampere (A).</p><p>t</p><p>QI =</p><p>Onde:</p><p>I = intensidade de corrente (A)</p><p>Q = carga elétrica (C)</p><p>t = tempo (s)</p><p>142 UNIUBE</p><p>O fluxo da corrente elétrica se dá do potencial com excesso de cargas negativas</p><p>(–) em direção ao potencial com falta de cargas elétricas negativas (+). Este</p><p>sentido da corrente (saindo do polo negativo em direção ao polo positivo) é</p><p>denominado sentido “real” ou “eletrônico” da corrente elétrica.</p><p>Em função de definições anteriores, a comprovação desse fato, segundo as li-</p><p>teraturas sobre eletricidade, consideram para efeito de estudo que o fluxo da</p><p>corrente se dá do terminal positivo de uma fonte para o terminal negativo. Este</p><p>sentido é denominado de “sentido convencional” da corrente elétrica.</p><p>SAIBA MAIS</p><p>André Marie Ampère (1775-1836) introduziu um novo campo de estudos em 18 de</p><p>setembro de 1820. Esse estudo foi denominado eletrodinâmica. Tem como objetivo</p><p>estudar os efeitos causados por cargas elétricas em movimento. O instrumento gal-</p><p>vanômetro é destinado a medir intensidade de corrente elétrica. Em homenagem a</p><p>André Marie Ampère, foi dado o nome de ampere (A) à unidade de medida da corrente</p><p>elétrica.</p><p>PESQUISANDO NA WEB</p><p>Para conhecer um pouco mais sobre André Marie Ampère e seus trabalhos científicos,</p><p>acesse <http://pt.wikipedia.org/wiki/Andr%C3%A9-Marie_Amp%C3%A8re>.</p><p>4.2.3 Tensão</p><p>4.2.3.1 Energia potencial</p><p>O fluxo ordenado de cargas elétricas é provocado por uma diferença de poten-</p><p>cial. A energia potencial é a capacidade que um corpo possui para realizar um</p><p>trabalho.</p><p>O trabalho é a grandeza cuja variação é igual ao produto escalar de uma força</p><p>pelo vetor deslocamento infinitesimal de seu ponto de aplicação [símbolo: W ].</p><p>SAIBA MAIS</p><p>André Marie Ampère (1775-1836) introduziu um novo campo de estudos em 18 de</p><p>setembro de 1820. Esse estudo foi denominado eletrodinâmica. Tem como objetivo</p><p>estudar os efeitos causados por cargas elétricas em movimento. O instrumento gal-</p><p>vanômetro é destinado a medir intensidade de corrente elétrica. Em homenagem a</p><p>André Marie Ampère, foi dado o nome de ampere (A) à unidade de medida da corrente</p><p>elétrica.</p><p>PESQUISANDO NA WEB</p><p>Para conhecer um pouco mais sobre André Marie Ampère e seus trabalhos científicos,</p><p>acesse <http://pt.wikipedia.org/wiki/Andr%C3%A9-Marie_Amp%C3%A8re>.</p><p>UNIUBE 143</p><p>4.2.3.2 Energia potencial gravitacional</p><p>Se um corpo de massa m for elevado a uma altura (h) de um metro acima de</p><p>um plano de referência, ao ser liberado, cai sobre este plano e realiza determi-</p><p>nado trabalho. Se, por sua vez, o mesmo corpo for elevado a uma altura de dois</p><p>metros acima do plano de referência, ao ser liberado e cair sobre o plano de</p><p>referência, o trabalho realizado será o dobro do primeiro caso.</p><p>Nos dois casos, ao elevarmos o corpo, estamos adicionando a ele uma energia</p><p>potencial gravitacional que é expressa por:</p><p>hgmhFdFW .... ===</p><p>Onde, W = Energia potencial expressa em joules, J.</p><p>Como nos dois casos a massa do corpo é a mesma, podemos afirmar, então,</p><p>que o trabalho a ser realizado é uma função da altura:</p><p>hkW '= ou ( )hfW =</p><p>Portanto, é possível conhecer o quanto de trabalho gravitacional é realizado em</p><p>função da diferença de altura entre o objeto (corpo) e o plano de referência.</p><p>4.2.3.3 Energia potencial elétrica</p><p>Em uma fonte de energia como, por exemplo, uma bateria, as reações químicas</p><p>internas estabelecem uma diferença de potencial elétrico entre os polos positivo</p><p>e negativo por meio do acúmulo de elétrons em um polo (–) e a falta destes no</p><p>outro polo (+). Existe, portanto, entre os polos da bateria uma energia potencial</p><p>elétrica. Se ligarmos os dois polos com um material condutor, os elétrons acu-</p><p>mulados no polo negativo terão energia suficiente para se deslocarem até o polo</p><p>positivo.</p><p>Diante disso, podemos dizer que existe uma diferença de potencial de 1 volt</p><p>(V) entre dois pontos se acontece uma troca de energia de 1 joule (J) quando</p><p>se desloca uma carga de 1 Coulomb (C) entre estes dois pontos (xy). Portanto</p><p>é necessário gastar uma energia de 1 J para deslocar uma carga elétrica de</p><p>1 C entre os pontos xy, se a diferença de energia potencial entre os pontos for</p><p>igual a 1 V.</p><p>144 UNIUBE</p><p>Você sabia que a unidade de medida da tensão elétrica é o Volt (V)?</p><p>Essa medida recebeu este nome em homenagem a Alessandro Giuseppe An-</p><p>tonio Anastasio Volta – físico alemão, inventor da bateria.</p><p>PESQUISANDO NA WEB</p><p>Para conhecer um pouco mais sobre esse físico, acesse:</p><p><http://pt.wikipedia.org/wiki/Alessandro_Volta>.</p><p>Veja, a seguir, a fórmula:</p><p>Q</p><p>WVxy =</p><p>Onde:</p><p>W = Trabalho realizado (joule, J);</p><p>Q = Carga elétrica (Coulomb, C);</p><p>Vxy = Diferença de potencial elétrico (ddp) entre os pontos x e y (Volts, V).</p><p>Assim, para uma carga Q constante, temos:</p><p>Q</p><p>WVxy = ou</p><p>WkVxy '= Portanto, )(WfVxy =</p><p>Logo, a diferença de potencial entre dois pontos de um circuito é um indicador</p><p>de quanta energia é necessária para deslocar uma carga entre estes dois pon-</p><p>tos (x e y).</p><p>Você sabia que a unidade de medida da tensão elétrica é o Volt (V)?</p><p>PESQUISANDO NA WEB</p><p>Para conhecer um pouco mais sobre esse físico, acesse:</p><p><http://pt.wikipedia.org/wiki/Alessandro_Volta>.</p><p>UNIUBE 145</p><p>4.2.3.4 Paralelo entre energia potencial gravitacional e energia potencial</p><p>elétrica</p><p>Podemos estabelecer um paralelo entre a energia potencial gravitacional e a</p><p>energia elétrica. Acompanhe.</p><p>• potencial gravitacional: quanto mais alto (h) estiver o objeto (massa) do</p><p>solo, maior será a energia disponível para provocar a queda do objeto ao</p><p>solo;</p><p>( )hfW =</p><p>• potencial elétrico: quanto mais alta for a diferença de potencial fornecida por</p><p>uma fonte, maior será a quantidade</p><p>de energia disponível para provocar o</p><p>escoamento de cargas elétricas (corrente elétrica) em um circuito.</p><p>)(WfVxy =</p><p>IMPORTANTE!</p><p>1. A determinação de uma diferença de potencial ou de uma tensão envolve sempre</p><p>dois pontos de um sistema. Se modificarmos a escolha de qualquer um destes pon-</p><p>tos, a diferença de potencial não será mais, em geral, a mesma.</p><p>2. A notação utilizada para tensões de fontes elétricas é igual a E.</p><p>3. A notação utilizada para as quedas de tensões é igual a V.</p><p>4.2.3.5 Simbologia de fonte de tensão</p><p>Observe, com atenção, a Figura 7. O símbolo mostra que o ponto x está em E</p><p>volts mais alto que o ponto y. Assim, a diferença de potencial elétrico entre x e</p><p>y é de: E volts. Ou seja:</p><p>EVxy =</p><p>IMPORTANTE!</p><p>1. A determinação de uma diferença de potencial ou de uma tensão envolve sempre</p><p>dois pontos de um sistema. Se modificarmos a escolha de qualquer um destes pon-</p><p>tos, a diferença de potencial não será mais, em geral, a mesma.</p><p>2. A notação utilizada para tensões de fontes elétricas é igual a E.</p><p>3. A notação utilizada para as quedas de tensões é igual a V.</p><p>146 UNIUBE</p><p>E</p><p>y x</p><p>+–</p><p>Figura 7: Simbologia de fonte de tensão.</p><p>Fonte: Márcio Arruda (2008).</p><p>4.3 Resistência</p><p>Os elétrons livres, durante o movimento em um condutor, colidem com átomos</p><p>deste condutor, perdendo parte de sua energia cinética sob a forma de calor.</p><p>Essas colisões internas ao condutor que provocam a perda de energia são de-</p><p>nominadas de resistência do material.</p><p>PONTO-CHAVE</p><p>A resistência, então, é a propriedade do material em se opor ou resistir ao movi-</p><p>mento dos elétrons. A unidade da resistência no SI é ohm (Ω) e é representada</p><p>pela variável R.</p><p>4.3.1 Resistência em condutores</p><p>A resistência de um condutor de seção reta e uniforme (Figura 8) é diretamente</p><p>proporcional ao seu comprimento e inversamente proporcional à área da seção</p><p>reta. A resistência de um condutor é dada por:</p><p>Onde:</p><p>ρ = resistividade (Ω.mm² /m);</p><p>L = comprimento do condutor (m);</p><p>S = área da seção transversal (mm²).</p><p>PONTO-CHAVE</p><p>A resistência, então, é a propriedade do material em se opor ou resistir ao movi-</p><p>mento dos elétrons. A unidade da resistência no SI é ohm (Ω) e é representada</p><p>pela variável R.</p><p>UNIUBE 147</p><p>R = ρ L</p><p>S</p><p>L</p><p>S</p><p>Figura 8: Resistência de um condutor.</p><p>A resistividade é uma propriedade que depende do tipo do material e os metais</p><p>mais usados para condução de energia elétrica são:</p><p>• Prata: utilizada em pastilhas de contato de contatores, relés etc.</p><p>Sua resistividade média é 0,016 Ωmm2/m a 20º C.</p><p>• Cobre: utilizado na fabricação de fios em geral e equipamentos elétricos</p><p>(chaves, interruptores, tomadas etc.).</p><p>Resistividade média do cobre duro é 0,0179 Ωmm2/m a 20º C.</p><p>• Alumínio: utilizado na fabricação de condutores para linhas e redes por ser</p><p>mais leve e de custo mais baixo. Os condutores de alumínio podem ser de:</p><p>• CA – alumínio sem alma de aço;</p><p>• CAA – alumínio enrolado sobre um fio ou cabo de aço (alma de aço);</p><p>• Sua resistividade média é 0,028 Ωmm2/m a 20º C.</p><p>COMPARANDO</p><p>Comparando os valores de resistividade do cobre e alumínio, pode ser verificado que</p><p>o cobre apresenta menor resistividade, consequentemente, para uma mesma seção</p><p>(mm2), os condutores de cobre conduzem mais corrente elétrica.</p><p>COMPARANDO COMPARANDO</p><p>Comparando os valores de resistividade do cobre e alumínio, pode ser verificado que</p><p>o cobre apresenta menor resistividade, consequentemente, para uma mesma seção</p><p>(mm2), os condutores de cobre conduzem mais corrente elétrica.</p><p>148 UNIUBE</p><p>4.3.2 Condutância</p><p>O inverso da resistência elétrica, ou seja, a facilidade que um determinado ma-</p><p>terial oferece à passagem da corrente elétrica é definido como a condutância</p><p>elétrica, representada pela letra G.</p><p>A unidade derivada do SI de condutância é Siemens (S).</p><p>Logo, podemos escrever:</p><p>4.3.3 Aspectos construtivos dos resistores</p><p>Os resistores são usados basicamente para controlar a corrente em um circuito</p><p>elétrico. Os materiais mais utilizados para a fabricação de resistores são o carbono</p><p>e alguns tipos de ligas como a manganina, o constantan e o níquel-cromo.</p><p>Os resistores são construídos, em sua maioria, segundo uma das seguintes</p><p>técnicas: composição, fio, película. Vejamos:</p><p>• Técnica da composição</p><p>Os resistores construídos, segundo a técnica da composição, são constituídos</p><p>por um elemento de carvão pulverizado e misturado com uma resina aglutinante,</p><p>uma resina fenólica para proteção do elemento resistivo e terminais metálicos</p><p>para a fixação.</p><p>De acordo com as porcentagens nas misturas de carbono e do aglutinante, são</p><p>obtidos os vários valores de resistências encontrados comercialmente. As van-</p><p>tagens que essa técnica apresenta são baixo custo final e pequeno volume,</p><p>porém esses resistores são sujeitos a “ruídos” (interferências) por apresentarem</p><p>partículas de carbono com pequena área de contato entre si.</p><p>• Técnica de fio</p><p>Os resistores de fio são fabricados utilizando fios de materiais de resistividade con-</p><p>siderada e enrolados sobre um tubo de porcelana. Após as fixações dos terminais,</p><p>o conjunto é recoberto por uma mistura de pó de cerâmica com aglutinante.</p><p>Os resistores de fio são utilizados para grandes dissipações que, obviamente,</p><p>geram grande quantidade de calor e, portanto, apresentam normalmente gran-</p><p>G =</p><p>1</p><p>R</p><p>UNIUBE 149</p><p>des proporções. São fabricados desde alguns ohms a algumas dezenas de</p><p>quilo-ohms e com potências variáveis desde 5 W até 50 W.</p><p>• Técnica de película</p><p>Os resistores de película são fabricados utilizando película de carbono ou película</p><p>metálica. Os resistores de película de carbono ou carbon film resistor são constituí-</p><p>dos por um cilindro de porcelana sobre o qual é aplicada uma fina película de</p><p>carbono. Para resistências elevadas, faz-se um sulco sobre a película de carvão</p><p>tal que a resistência seja uma faixa helicoidal sobre o cilindro de porcelana.</p><p>Pode-se controlar os vários valores de resistência, alternando a espessura da pelí-</p><p>cula de carbono ou mudando o passo da faixa helicoidal sobre o cilindro cerâmico.</p><p>Nos resistores de fio, as características desse componente são impressas dire-</p><p>tamente no seu próprio corpo. Já em outros resistores, em função do seu tamanho,</p><p>as características são expressas por código de cores impressos em seu corpo.</p><p>Os códigos de cores impressos nos resistores nos dão as informações sobre o</p><p>valor da resistência em Ohms e a tolerância. A tolerância dos resistores indica</p><p>uma faixa de valores em que o valor real da resistência se encontra.</p><p>Exemplo 1</p><p>Um resistor de 100 Ω e tolerância de 5% pode ter o seu valor real entre 95 Ω e</p><p>105 Ω.</p><p>A Tabela 1 traz os códigos de cores utilizados para identificação do valor da</p><p>resistência em um resistor. Leia-a com muita atenção.</p><p>Tabela 1: Tabela de cores dos resistores.</p><p>COR 1º ALGARISMO 2º ALGARISMO</p><p>FATOR</p><p>MULTIPLICATIVO</p><p>TOLERÂNCIA</p><p>Preto -- 0 ×10 0 --</p><p>Marrom 1 1 ×101 ± 1%</p><p>Vermelho 2 2 ×102 ± 2%</p><p>Laranja 3 3 ×103 --</p><p>Amarelo 4 4 ×104 --</p><p>Verde 5 5 ×105 --</p><p>Azul 6 6 ×106 --</p><p>Violeta 7 7 ×107 --</p><p>150 UNIUBE</p><p>Cinza 8 8 ×108 --</p><p>Branco 9 9 ×109 --</p><p>Ouro -- -- ×10-1 ± 5%</p><p>Prata -- -- ×10-2 ± 10%</p><p>Observação 1: A cor preta não é utilizada como primeiro algarismo.</p><p>Observação 2: Normalmente, o 1º algarismo é a cor mais próxima de uma das</p><p>extremidades do resistor.</p><p>Exemplo 2</p><p>Suponha que um resistor possua a seguinte sequência de cores:</p><p>1ª cor = marrom</p><p>2ª cor = preto</p><p>3ª cor = vermelho</p><p>4ª cor = ouro</p><p>Qual o valor da resistência desse resistor incluindo sua tolerância?</p><p>Resposta</p><p>As duas primeiras cores são o 1º e o 2º algarismos, respectivamente. Portanto,</p><p>temos os valores 1 (marrom) e 0 (preto). A terceira cor indica o fator multiplica-</p><p>tivo, que neste exemplo vale 102. Por fim, temos a quarta cor, que é a tolerância;</p><p>neste caso, 5%. Resumindo, tem-se:</p><p>Resistência = 10 × 102 ± 5% = 1000 Ω ± 5% ou 1k Ω ± 5%.</p><p>A tolerância neste caso indica que se utilizarmos um instrumento (ohmímetro)</p><p>para “ler” o valor desse resistor, devemos encontrar uma resistência entre 950 Ω</p><p>e 1050 Ω.</p><p>Um outro fator</p><p>a ser identificado nos resistores é a potência que ele pode dissi-</p><p>par. Essa característica é determinada pelo tamanho físico do resistor, ou seja,</p><p>quanto maior o resistor, maior será a potência de sua dissipação.</p><p>UNIUBE 151</p><p>Os resistores variáveis são utilizados para variar ou mudar a resistência de um</p><p>circuito. São conhecidos como potenciômetros ou reostatos. À medida que o</p><p>braço deslizante gira seu ponto de contato com o elemento resistivo muda.</p><p>4.3.4 Coeficiente de temperatura α</p><p>O coeficiente de temperatura da resistência indica a quantidade de variação da</p><p>resistência para uma variação na temperatura. Um valor positivo de α indica que</p><p>R aumenta com a temperatura; um valor negativo de α significa que R diminui;</p><p>e um valor zero para α indica que R é constante, isto é, não varia com a tempe-</p><p>ratura. Os valores típicos de α são apresentados na Tabela 2 e o valor final da</p><p>resistência de um material é determinada por:</p><p>).1.( To ∆+= αρ ρ</p><p>Onde:</p><p>ρ = resistividade do material, em [Ω.m], à temperatura T;</p><p>ρo = resistividade do material, em [Ω.m], à uma temperatura de referência To;</p><p>ΔT = T – To = variação da temperatura, em [ºC];</p><p>α = coeficiente de temperatura do material, em [ºC–1].</p><p>Tabela 2: Coeficientes de temperatura.</p><p>CLASSIFICAÇÃO MATERIAL COEFICIENTE a</p><p>METAL</p><p>PRATA 0,0038</p><p>ALUMÍNIO 0,0039</p><p>COBRE 0,004</p><p>TUNGSTÊNIO 0,0048</p><p>LIGA</p><p>CONSTANTÃ VALOR MÉDIO = 0</p><p>NÍQUEL -CROMO 0,00017</p><p>LATÃO 0,0015</p><p>CARBONO GRAFITE −0,0002 A −0,0008</p><p>152 UNIUBE</p><p>INDICAÇÃO DE LEITURA</p><p>Sugerimos a leitura de Introdução à análise de circuitos, referência aos estudos</p><p>de eletricidade. Trata-se do livro de autoria de Robert L. Boylestad (2004), fundamen-</p><p>tal a esses estudos, uma vez que aborda, de forma muito clara, os conceitos mais</p><p>importantes e necessários à compreensão dos conteúdos da referida área. A obra é</p><p>conhecida como a Bíblia dos estudiosos da eletricidade.</p><p>Sugerimos a leitura das seguintes seções: 2.1, 2.2, 2.3, 2.4 e 2.5. Sugerimos, também,</p><p>a resolução dos seguintes exercícios:</p><p>• Seção 2.2: exercícios 8, 9 e 14;</p><p>• Seção 2.3: exercícios 18, 19 e 23;</p><p>• Seção 2.4: exercícios 26 e 27.</p><p>Resumo</p><p>Neste capítulo abordamos os conceitos básicos relacionados à manipulação de</p><p>números como arredondamento e notação científica. Tratamos, ainda, a forma</p><p>correta de representação de uma grandeza com base no Sistema Internacional</p><p>de Medidas e o uso de prefixos em substituição à notação científica.</p><p>A segunda e a terceira partes do capítulo tratam de corrente, tensão e resistên-</p><p>cia elétricas. Estas grandezas são de grande importância no estudo da eletrici-</p><p>dade e é a base para futuros estudos dos circuitos elétricos.</p><p>Atividades</p><p>Atividade 1</p><p>Faça a conversão das seguintes unidades:</p><p>a) 30 metros em pés;</p><p>b) 50 litros em barris;</p><p>c) 15 metros em polegadas.</p><p>INDICAÇÃO DE LEITURA</p><p>Sugerimos a leitura de Introdução à análise de circuitos, referência aos estudos</p><p>de eletricidade. Trata-se do livro de autoria de Robert L. Boylestad (2004), fundamen-</p><p>tal a esses estudos, uma vez que aborda, de forma muito clara, os conceitos mais</p><p>importantes e necessários à compreensão dos conteúdos da referida área. A obra é</p><p>conhecida como a Bíblia dos estudiosos da eletricidade.</p><p>Sugerimos a leitura das seguintes seções: 2.1, 2.2, 2.3, 2.4 e 2.5. Sugerimos, também,</p><p>a resolução dos seguintes exercícios:</p><p>• Seção 2.2: exercícios 8, 9 e 14;</p><p>• Seção 2.3: exercícios 18, 19 e 23;</p><p>• Seção 2.4: exercícios 26 e 27.</p><p>UNIUBE 153</p><p>Atividade 2</p><p>Em um teste de bancada, medimos a resistência de um resistor 6 vezes, encon-</p><p>trando os valores: 4 713 Ω; 4705 Ω; 4 661 Ω; 4685 Ω, 4647 Ω e 4638 Ω. Qual</p><p>é o valor verdadeiro dessa resistência, com arredondamento de duas casas</p><p>após a vírgula?</p><p>Atividade 3</p><p>Escreva os valores a seguir, utilizando os prefixos do Sistema Internacional</p><p>indicados:</p><p>a) 10 000 metros em quilômetros;</p><p>b) 0,000 000 1 Faraday em microfaradays;</p><p>c) 6 000 000 de Watts em megawatts;</p><p>d) 100 Niltons em decaniltons.</p><p>Atividade 4</p><p>Um resistor a fio tem estampado em seu corpo o valor de 20 MΩ. Determine o</p><p>valor em Ohm’s (Ω) desse resistor.</p><p>Atividade 5</p><p>Uma usina hidroelétrica tem a capacidade de geração de 750 000 Watt’s (W).</p><p>Expresse essa potência em quilowatt’s.</p><p>Atividade 6</p><p>Calcular a corrente elétrica em um fio percorrido por 1,04 x 1018 elétrons no in-</p><p>tervalo de 260 ms.</p><p>Atividade 7</p><p>Determine o tempo necessário para que 2 x 1016 elétrons atravessem a seção</p><p>reta de um condutor, se a corrente for 3 mA.</p><p>Atividade 8</p><p>Existe um escoamento elétrico através de um condutor, à taxa de 840 Coulombs</p><p>por minuto. Se, em 45 segundos, são convertidos em calor 1 484 joules, qual é</p><p>a queda de tensão através do condutor?</p><p>154 UNIUBE</p><p>Atividade 9</p><p>Determine a resistência de 280 metros de um fio de cobre com seção nominal</p><p>de 2,5 mm2.</p><p>Atividade 10</p><p>Considerando o código de identificação dos resistores, responda:</p><p>10.1 Qual é o valor de um resistor que tem impresso em seu corpo as seguintes</p><p>cores:</p><p>a) vermelho, vermelho, laranja e prata;</p><p>b) marrom, preto, verde e ouro;</p><p>c) verde, cinza, verde e prata.</p><p>10.2 Qual é o valor de um resistor e sua tolerância, que tem impresso em seu</p><p>corpo as seguintes cores:</p><p>a) vermelho, branco, vermelho e ouro;</p><p>b) laranja, azul, laranja e prata;</p><p>c) azul, verde e marrom.</p><p>10.3 Identifique com cores os seguintes resistores:</p><p>a) 8M Ω, tolerância de 10%;</p><p>b) 100k Ω, tolerância de 5%;</p><p>c) 390 Ω, tolerância de 20%.</p><p>Referências</p><p>BOYLESTAD, Robert L. Corrente e tensão. In: ______. Introdução à análise de circuitos.</p><p>10. ed. São Paulo: Pearson Education, 2004.</p><p>CAPUANO, Francisco Gabriel; MARINO, Maria Aparecida Mendes. Laboratório de</p><p>eletricidade e eletrônica. 24. ed. São Paulo: Érica, 2007.</p><p>UNIUBE 155</p><p>Lei de Ohm e análise</p><p>de circuitos elétricos</p><p>Capítulo</p><p>5</p><p>Florisvaldo Cardozo Bomfim Júnior / Márcio Aparecido Arruda</p><p>Introdução</p><p>Neste capítulo, abordamos a aplicação de lei de Ohm, fórmulas e tipos</p><p>de cálculo. Os conceitos que iremos trabalhar constituem o requisito</p><p>básico para a compreensão e a avaliação de circuitos elétricos.</p><p>Recomendamos que, sempre que possível, organize um grupo de es-</p><p>tudos para que amplie seu conhecimento.</p><p>Objetivos</p><p>Ao final deste capítulo, você deverá ser capaz de:</p><p>• explicar a lei de Ohm;</p><p>• avaliar o funcionamento de diferentes circuitos;</p><p>• analisar o funcionamento de circuitos em corrente contínua;</p><p>• aplicar teoremas coerentes em análise de circuitos de corrente</p><p>contínua;</p><p>• diferenciar circuitos em série e circuitos em paralelo;</p><p>• simular diferentes circuitos em corrente contínua.</p><p>INDICAÇÃO DE LEITURA</p><p>Para aprofundar os conceitos e exemplos apresentados, sugerimos, ao longo</p><p>do texto, a leitura de alguns capítulos do livro Introdução à análise de circuitos,</p><p>de autoria de Robert L. Boylestad (2004).</p><p>INDICAÇÃO DE LEITURA</p><p>Para aprofundar os conceitos e exemplos apresentados, sugerimos, ao longo</p><p>do texto, a leitura de alguns capítulos do livro Introdução à análise de circuitos,</p><p>de autoria de Robert L. Boylestad (2004).</p><p>156 UNIUBE</p><p>Esquema</p><p>5.1 Conhecendo a Lei de Ohm</p><p>5.1.1 Potência e energia</p><p>5.2 Circuitos em série</p><p>5.2.1 Resistência total em um circuito em série</p><p>5.2.2 Resistência e potência em um circuito em série</p><p>5.2.3 Lei de Kirchhoff para tensão (LKT)</p><p>5.2.4 Fontes de tensão em série</p><p>5.2.5 Regras do divisor de tensão</p><p>5.2.6 Resistência interna das fontes de tensão</p><p>5.3 Circuitos em paralelo</p><p>5.3.1 Elementos em paralelo</p><p>5.3.2 Condutância e resistência totais</p><p>5.3.3 Tensão e corrente em circuitos em paralelo</p><p>5.3.4 Lei de Kirchhoff para corrente</p><p>5.3.5 Regra do divisor de corrente</p><p>5.3.6 Fontes de tensão em paralelo</p><p>5.4 Circuitos em série-paralelo</p><p>5.4.1 Resolução de circuito aplicando matriz</p><p>5.1 Conhecendo a Lei de Ohm</p><p>Observe a relação, a seguir, expressa na equação:</p><p>EFEITO =</p><p>OPOSIÇÃO</p><p>CAUSA</p><p>Para entender essa relação, devemos nos ater aos seguintes aspectos:</p><p>1. qualquer processo de conversão de energia pode ser relacionado a esta</p><p>equação. Em circuitos elétricos, o efeito que nós necessitamos estabele-</p><p>cer é o fluxo da carga ou da corrente. A diferença</p><p>potencial, ou seja, a</p><p>tensão entre dois pontos é a causa (pressão) e a resistência é a oposição</p><p>encontrada;</p><p>UNIUBE 157</p><p>2. para uma resistência fixa, quanto maior a tensão (ou pressão) aplicada aos</p><p>terminais de um resistor, maior será a corrente;</p><p>3. para uma tensão fixa, quanto maior for a resistência, menor será a cor-</p><p>rente.</p><p>Diante do exposto, o que podemos concluir?</p><p>Concluímos que a corrente é proporcional à tensão aplicada e inversamente</p><p>proporcional à resistência.</p><p>Verifique, com atenção, a Figura 1, a seguir:</p><p>Figura 1: Lei de Ohm.</p><p>Na qual: I = corrente (amperes, A)</p><p>E = tensão (volts, V)</p><p>R = resistência (ohms, Ω)</p><p>O símbolo utilizado para designar a tensão na fonte (bateria) é a letra maiúscula</p><p>E, enquanto a queda de energia potencial sobre o resistor é simbolizada por V.</p><p>A polaridade da queda de tensão (V) sobre o resistor é determinada pela pola-</p><p>ridade da fonte, porque os terminais da bateria são conectados diretamente aos</p><p>terminais do resistor.</p><p>Diante do exposto, o que podemos concluir?</p><p>158 UNIUBE</p><p>Para um elemento resistivo isolado, a polaridade da queda de tensão (V) é in-</p><p>dicada em função da direção da corrente. Assim, o sentido da corrente conven-</p><p>cional no circuito é indicado por meio de uma seta.</p><p>Vale destacar que o ponto de entrada da seta em um elemento do circuito indica</p><p>a polaridade positiva. Observe na Figura 2, a seguir:</p><p>Figura 2: Polaridade da queda de tensão.</p><p>INDICAÇÃO DE LEITURA</p><p>Sugerimos a leitura das seções 4.1 e 4.2 do livro Introdução à análise de circuitos</p><p>de autoria de Robert L. Boylestad (2004). Essa obra é referência aos seus estudos de</p><p>eletricidade, porque ela aborda os conceitos mais importantes e necessários à com-</p><p>preensão dos conteúdos da referida área. Sugerimos, além da leitura das seções, a</p><p>resolução dos exercícios indicados, a seguir:</p><p>• Seção 4.1: exercícios de 1 a 12.</p><p>• Seção 4.2: exercícios 14 e 16.</p><p>5.1.1 Potência e energia</p><p>Para Boylestad (2004, p. 64), “a potência é a grandeza que mede quanto trabalho</p><p>pode ser analisado em certo período de tempo”. Há diferentes tipos de potência.</p><p>• Potência mecânica</p><p>Um sistema apresenta elevada potência se ele consegue realizar muito trabalho</p><p>em pouco tempo. Assim, potência é a relação entre a energia gasta por um</p><p>sistema e o tempo.</p><p>energiaP</p><p>tempo</p><p>=</p><p>INDICAÇÃO DE LEITURA</p><p>Sugerimos a leitura das seções 4.1 e 4.2 do livro Introdução à análise de circuitos</p><p>de autoria de Robert L. Boylestad (2004). Essa obra é referência aos seus estudos de</p><p>eletricidade, porque ela aborda os conceitos mais importantes e necessários à com-</p><p>preensão dos conteúdos da referida área. Sugerimos, além da leitura das seções, a</p><p>resolução dos exercícios indicados, a seguir:</p><p>• Seção 4.1: exercícios de 1 a 12.</p><p>• Seção 4.2: exercícios 14 e 16.</p><p>UNIUBE 159</p><p>Na qual:</p><p>Energia = joules = J</p><p>Tempo = segundos = s</p><p>Potência = J/s = watt = W</p><p>• Potência elétrica</p><p>A potência elétrica (P) expressa a quantidade de trabalho realizado em um es-</p><p>paço de tempo por um equipamento elétrico. No caso de nossos estudos em</p><p>corrente contínua e com circuitos puramente resistivos, a potência elétrica me-</p><p>dida em Watts é o produto da corrente elétrica pela tensão aplicada ao elemento</p><p>do circuito, ou seja:</p><p>P = V x I</p><p>Na qual:</p><p>P = Potência elétrica medida em Watts;</p><p>V = Tensão, medida em Volts (V);</p><p>I = Corrente elétrica, medida em amperes (A).</p><p>Da equação, podemos obter, ainda:</p><p>Como V = R x I, teremos: P = (R x I) x I, então:</p><p>Como I = V / R, teremos: P = V x (V / R), então:</p><p>P = V2</p><p>R</p><p>Acompanhe o exemplo a seguir:</p><p>Qual a potência elétrica de um ferro de passar roupas que, quando alimentado</p><p>por uma tensão de 127 Volts, solicita uma corrente elétrica de 7,48 amperes?</p><p>P = R x I2</p><p>160 UNIUBE</p><p>P = V x I = 127V x 7,48A = 949,96VA</p><p>P ≈ 950 Watts</p><p>Para circuitos puramente resistivos, a potência aparente medida em Volt amperes</p><p>(VA) é igual à potência útil medida em Watts (W).</p><p>• Energia elétrica</p><p>A energia elétrica que pagamos mensalmente na conta de energia expressa em</p><p>kWh é o produto da potência elétrica dos equipamentos medida em kW, pelo</p><p>período de sua utilização em hora. Veja a equação:</p><p>E = P x T</p><p>Na qual:</p><p>E = Energia elétrica consumida (kWh);</p><p>P = Potência elétrica (kW);</p><p>T = Tempo (horas).</p><p>Exemplo</p><p>Qual a energia elétrica consumida pelo ferro elétrico (exemplo anterior), se este</p><p>permanecer ligado por 45 minutos?</p><p>Resolução:</p><p>E = P x T</p><p>Potência do equipamento = 950 Watts ou 0,95 kW</p><p>Tempo em horas = 45 minutos / 60 minutos = 0,75 horas</p><p>E = 0,95 kW x 0,75 horas</p><p>E = 0,7125 kWh</p><p>Para circuitos puramente resistivos, a potência aparente medida em Volt amperes</p><p>(VA) é igual à potência útil medida em Watts (W).</p><p>UNIUBE 161</p><p>INDICAÇÃO DE LEITURA</p><p>Sugerimos a leitura das seções e a resolução dos exercícios indicados a seguir do</p><p>livro Introdução à análise de circuitos, de autoria de Robert L. Boylestad (2004).</p><p>• Leitura das seções 4.3, 4.4, 4.5 e 4.6;</p><p>• Exercícios referentes à seção 4.3 (exercícios 19, 21 e 22);</p><p>• Exercícios referentes à seção 4.5 (exercício 41);</p><p>• Exercícios referentes à seção 4.6 (exercícios 52, 55 e 57).</p><p>A leitura dessas seções e a resolução dos exercícios indicados possibilitam a você,</p><p>aluno(a) do curso de Engenharia, aprofundar seus estudos e vivenciar as informações</p><p>teóricas recebidas, em tarefas simples como, por exemplo, aquecer uma refeição em</p><p>um forno de micro-ondas.</p><p>5.2 Circuitos em série</p><p>Atualmente, dois tipos de corrente elétrica são usados nos equipamentos elé-</p><p>tricos. São eles: o de corrente contínua (CC) e o de corrente alternada (CA).</p><p>Abordaremos em nossos estudos somente o primeiro tipo – o de corrente</p><p>contínua.</p><p>No circuito, a corrente elétrica só possui um caminho a seguir, desde que sai do</p><p>polo positivo de uma fonte até retornar ao polo negativo desta mesma fonte</p><p>(sentido convencional). Portanto, nos circuitos em série, a corrente I é a mesma</p><p>em todos os elementos que compõem este circuito. Em outras palavras, a cor-</p><p>rente que atravessa o resistor R1 é a mesma que atravessa os resistores R2 e</p><p>R3, e é exatamente aquela fornecida pela fonte.</p><p>Observando a Figura 3, podemos observar que dois elementos estão em série se:</p><p>• possuem somente um terminal em comum;</p><p>• o ponto comum entre os dois elementos não está conectado a outro elemento</p><p>percorrido por corrente.</p><p>INDICAÇÃO DE LEITURA</p><p>Sugerimos a leitura das seções e a resolução dos exercícios indicados a seguir do</p><p>livro Introdução à análise de circuitos, de autoria de Robert L. Boylestad (2004).</p><p>• Leitura das seções 4.3, 4.4, 4.5 e 4.6;</p><p>• Exercícios referentes à seção 4.3 (exercícios 19, 21 e 22);</p><p>• Exercícios referentes à seção 4.5 (exercício 41);</p><p>• Exercícios referentes à seção 4.6 (exercícios 52, 55 e 57).</p><p>A leitura dessas seções e a resolução dos exercícios indicados possibilitam a você,</p><p>aluno(a) do curso de Engenharia, aprofundar seus estudos e vivenciar as informações</p><p>teóricas recebidas, em tarefas simples como, por exemplo, aquecer uma refeição em</p><p>um forno de micro-ondas.</p><p>162 UNIUBE</p><p>Figura 3: Circuito em série.</p><p>Assim, se todos os elementos do circuito estão em série, o circuito é chamado</p><p>circuito em série, e a corrente elétrica é a mesma em todos os elementos de</p><p>um circuito em série.</p><p>5.2.1 Resistência total em um circuito em série</p><p>A resistência total de um circuito em série é a soma das resistências do</p><p>circuito.</p><p>RT = R1 + R2 + R3 + R4 ….+ RN</p><p>Essa resistência total (RT) é a resistência “vista” pela fonte.</p><p>5.2.2 Resistência e potência em um circuito em série</p><p>Uma vez conhecida a resistência total RT, podemos determinar a corrente dre-</p><p>nada da fonte, utilizando a lei de Ohm:</p><p>E</p><p>Rt</p><p>Is =</p><p>Como a tensão da fonte (E) é fixa, a intensidade da corrente depende somente</p><p>do valor de Rt.</p><p>De posse do valor da corrente elétrica em um circuito série, que é a mesma que</p><p>percorre todos os elementos do circuito, podemos aplicar a lei de Ohm para</p><p>UNIUBE 163</p><p>calcular o valor da tensão que fica retida em cada um dos elementos do circuito.</p><p>Verifique, a seguir:</p><p>V1 = I x R1;</p><p>V2 = I x R2;</p><p>a partir do processo de abstração de um determi-</p><p>nado problema, utilizando recursos matemáticos;</p><p>Lógica de</p><p>programação,</p><p>instruções matemáticas</p><p>e tipos de dados</p><p>Capítulo</p><p>1</p><p>INDICAÇÃO DE LEITURA</p><p>Para aprofundar os conceitos e exemplos apresentados, sugerimos a leitura</p><p>do capítulo “Estrutura sequencial” do livro Fundamentos da programação</p><p>de computadores de Ana Fernanda Gomes Ascêncio e Edilene Aparecida</p><p>V. de Campos (2002).</p><p>INDICAÇÃO DE LEITURA</p><p>Para aprofundar os conceitos e exemplos apresentados, sugerimos a leitura</p><p>do capítulo “Estrutura sequencial” do livro Fundamentos da programação</p><p>de computadores de Ana Fernanda Gomes Ascêncio e Edilene Aparecida</p><p>V. de Campos (2002).</p><p>6 UNIUBE</p><p>• entender os conceitos de algoritmo e estrutura sequencial;</p><p>• aplicar estruturas básicas de algoritmos na solução de problemas,</p><p>por meio de uma organização lógica e metodológica e fazer uso</p><p>eficiente e eficaz da lógica no desenvolvimento de programas</p><p>em diversas linguagens de programação.</p><p>Esquema</p><p>1.1 Introdução à lógica de programação</p><p>1.2 Algoritmos</p><p>1.3 Itens fundamentais da composição da estrutura de algoritmos</p><p>1.3.1 Operadores aritméticos</p><p>1.3.2 Operadores lógicos</p><p>1.3.3 Operadores relacionais</p><p>1.3.4 Operadores caracteres (literais)</p><p>1.3.5 Principais funções matemáticas</p><p>1.3.6 Prioridade das operações</p><p>1.3.7 Conceito de constantes</p><p>1.3.8 Conceito de variáveis</p><p>1.3.9 Regras para dar nomes às variáveis</p><p>1.3.10 Tipos de dados</p><p>1.3.11 Operação de atribuição</p><p>1.3.12 Comando de entrada</p><p>1.3.13 Comando de saída</p><p>1.3.14 Comentários</p><p>1.3.15 Estrutura de algoritmo</p><p>1.3.16 Estrutura sequencial e simulação</p><p>1.1 Introdução à lógica de programação</p><p>Um dos objetivos da lógica é estabelecer uma linguagem, por meio da qual</p><p>podemos expressar, com clareza e precisão, a sequência de ações para so-</p><p>lucionar um determinado problema. Em nosso cotidiano, deparamo-nos com</p><p>diversos problemas que exigem soluções rápidas e racionalizadas, sendo que,</p><p>nesses momentos, temos que expressar nosso pensamento de forma clara, obje-</p><p>tiva e organizada.</p><p>Segundo Forbellone (2005, p. 2), poderíamos dizer que lógica é a “arte de bem</p><p>pensar”. Vamos considerar a “arte de bem pensar” como sendo a organização</p><p>UNIUBE 7</p><p>do pensamento e vamos perceber que, quando temos um problema, consegui-</p><p>mos criar estratégias, ações passo a passo e, assim, executando as ações de</p><p>forma sequencial, chegamos à resolução do problema.</p><p>No primeiro momento de nosso estudo, vamos analisar a lógica não computa-</p><p>cional, com exemplos de matemática e do nosso dia a dia, visando criar uma</p><p>sequência de ações de forma que qualquer pessoa possa “seguir essas instru-</p><p>ções” e solucionar problemas.</p><p>Faremos, ao longo deste capítulo, várias atividades, a fim de, gradativamente,</p><p>chegarmos à lógica da programação.</p><p>Exemplo</p><p>1. Uma pessoa possui uma garrafa com 5 litros de gasolina. Ela necessita se-</p><p>parar 4 litros desse produto e só pode utilizar 3 garrafas, sendo que: uma é</p><p>a que está cheia (a que tem 5 litros será chamada de garrafa “A”) e mais duas</p><p>garrafas, que suportam 3 e 2 litros, que estão vazias. São, respectivamente,</p><p>a garrafa “B” e a garrafa “C”. As três garrafas (A, B e C) não possuem marcas</p><p>de medida. A única certeza é que elas suportam 5, 3 e 2 litros. Além disso,</p><p>não podemos utilizar nenhum tipo de auxílio de outros equipamentos. Então,</p><p>nosso único recurso é despejar a gasolina nas garrafas até conseguir separar</p><p>os 4 litros desejados.</p><p>Veja que uma possível solução está descrita a seguir. Tente acompanhar o ra-</p><p>ciocínio lógico de cada instrução.</p><p>Passo 1: encher a garrafa B com a gasolina da garrafa A.</p><p>Passo 2: encher a garrafa C com a gasolina da garrafa B.</p><p>Passo 3: despejar a gasolina da garrafa C na garrafa A.</p><p>Acompanhe, a seguir, a análise do raciocínio lógico das instruções anteriores:</p><p>1) após executar o passo 1, teremos 2 litros na garrafa A e 3 litros na garrafa B;</p><p>2) após executar o passo 2, teremos 2 litros na garrafa A, 1 litro na garrafa B e</p><p>2 litros na garrafa C;</p><p>3) após executar o passo 3, teremos 4 litros na garrafa A e 1 litro na garrafa B.</p><p>8 UNIUBE</p><p>Se você acompanhou atentamente o raciocínio lógico dessas instruções, deve</p><p>ter compreendido a resolução.</p><p>Agora, elabore instruções do tipo passo a passo, para resolver a situação-</p><p>-problema, a seguir:</p><p>2. Certa regra foi aplicada nos quadrantes numéricos, a seguir. Faça a análise</p><p>da tabela de forma que você consiga completar a próxima. Observe que a</p><p>regra é aplicada tanto na vertical quanto na horizontal.</p><p>15 3 5</p><p>5 1 5</p><p>3 3 1</p><p>Baseando-se no raciocínio lógico desses quadrantes, determine os números</p><p>que estão faltando nos quadrantes, a seguir.</p><p>24 4 6</p><p>6 1</p><p>4 1</p><p>Observe com muita atenção. Em seguida, descreva os passos para a solução</p><p>do problema. Tentou? Conseguiu? Que bom!</p><p>Você deve ter pegado o elemento da primeira linha, da primeira coluna, e dividido</p><p>pelo elemento da segunda linha, primeira coluna. Ou seja: 24 ÷ 6 = 4.</p><p>Em seguida, você deve ter pegado o elemento da segunda coluna, primeira linha</p><p>e dividido pelo elemento da segunda linha da mesma coluna. Então, você con-</p><p>firmou que é o elemento 4, pois 4 ÷ 1 = 4. Assim, deve ter chegado à conclusão</p><p>de que o elemento 6 é o que ocupará a segunda linha, da terceira coluna, pois</p><p>6 ÷ 6 = 1.</p><p>AGORA É A SUA VEZ</p><p>Atividade 1</p><p>Considerando os fundamentos de um raciocínio lógico, analise, atentamente, a</p><p>sequência de números apresentada a seguir. Você perceberá que há uma lógica</p><p>na sequência. Em seguida, complete as duas últimas linhas com seus respectivos</p><p>números.</p><p>Atividade 1</p><p>Considerando os fundamentos de um raciocínio lógico, analise, atentamente, a</p><p>sequência de números apresentada a seguir. Você perceberá que há uma lógica</p><p>na sequência. Em seguida, complete as duas últimas linhas com seus respectivos</p><p>números.</p><p>UNIUBE 9</p><p>1</p><p>2 4</p><p>3 6 9</p><p>4 8 12 16</p><p>5 10 15 20 25</p><p>6 12 18 24 30 36</p><p>Exemplo</p><p>Analise, atentamente, a sequência de números e determine qual será o próximo</p><p>número. Escreva qual foi o seu raciocínio.</p><p>9 , 16 , 25 , 36 , 49 , ____</p><p>Fez a análise? Percebeu que há uma relação lógica entre eles?</p><p>Você deve ter percebido que o próximo número será 64, pois:</p><p>a) a diferença de 9 para 16 = 7;</p><p>b) a diferença de 16 para 25 = 9;</p><p>c) a diferença de 25 para 36 = 11;</p><p>d) a diferença de 36 para 49 = 13;</p><p>e) a diferença de 49 para o próximo = 15, pois, somando 49 + 15 = 64.</p><p>IMPORTANTE!</p><p>O resultado das diferenças são os números ímpares: 7, 9, 11, 13, 15, e assim por</p><p>diante.</p><p>IMPORTANTE!</p><p>O resultado das diferenças são os números ímpares: 7, 9, 11, 13, 15, e assim por</p><p>diante.</p><p>10 UNIUBE</p><p>Você percebeu que é preciso muita atenção. Para trabalharmos com a lógica,</p><p>necessitamos muito da habilidade de observação, a fim de estabelecer relações</p><p>coerentes.</p><p>AGORA É A SUA VEZ</p><p>Atividade 2</p><p>Analise, com atenção, a sequência a seguir. Observe que entre os números existe</p><p>uma relação lógica.</p><p>a) Determine qual é o número seguinte. 2 , 3 , 5 , 9 , 17 , ___</p><p>b) Descreva os passos para a solução do problema.</p><p>Atividade 3</p><p>Uma família composta de cinco integrantes passeava em um bosque e chegou a uma</p><p>ponte. Toda a família teria que atravessar a ponte em um tempo total de 30 segundos.</p><p>A ponte suporta, no máximo, dois integrantes por vez. Mas, como era noite, necessi-</p><p>tava-se de uma lanterna para facilitar a travessia. Porém, a lanterna teria que voltar</p><p>com alguém. Ao atravessarem em duplas, o mais lento ia à frente. Cada integrante</p><p>da família gasta um determinado tempo para atravessar a ponte. O tempo que cada</p><p>pessoa gasta para uma parte do percurso (ida ou volta) é:</p><p>1º integrante 1 segundo;</p><p>2º integrante 3 segundos;</p><p>3º integrante 6 segundos;</p><p>4º integrante 8 segundos;</p><p>5º integrante 12 segundos.</p><p>Descreva os passos necessários para que os cinco integrantes da família atravessem</p><p>a ponte em tempo hábil.</p><p>PASSOS INTEGRANTES TEMPO GASTO</p><p>Atividade 2</p><p>Analise, com atenção, a sequência a seguir. Observe que entre os números existe</p><p>uma relação lógica.</p><p>a) Determine qual é o número seguinte. 2 , 3 , 5 , 9 , 17 ,</p><p>V3 = I x R3;</p><p>VN = I x RN;</p><p>VT = V1 + V2 +V3 +....+VN.</p><p>Da mesma forma, podemos calcular a potência dissipada em cada resistor. E a</p><p>potência total fornecida pela fonte será a somatória de todas as potências dis-</p><p>sipadas em cada resistor do circuito:</p><p>P1 = V1 x I;</p><p>P2 = V2 x I;</p><p>P3 = V3 x I;</p><p>PN = VN x I;</p><p>PT = P1 + P2 + P3 +…+ PN</p><p>Exemplo 1</p><p>No circuito em série apresentado na Figura 4, determine a:</p><p>a) resistência total do circuito;</p><p>b) corrente fornecida pela fonte;</p><p>c) queda de tensão em cada resistor e a tensão total fornecida pela fonte;</p><p>d) potência dissipada em cada resistor;</p><p>e) potência total fornecida pela fonte.</p><p>164 UNIUBE</p><p>R3 = 6 ohms</p><p>Figura 4: Exemplo de circuito em série 2.</p><p>R1 = 10 ohms</p><p>IE = 48 V R2 = 8 ohms</p><p>Resolução:</p><p>a) RT = R1 + R2 + R3 >>> RT = 10 Ω + 8 Ω + 6 Ω RT = 24Ω</p><p>b) Is = E / RT Is = 48 V / 24 Ω Is = 2 A;</p><p>c) Queda de tensão nos resistores:</p><p>• VR1 = R1 x Is VR1 = 10 Ω x 2A VR1 = 20 V;</p><p>• VR2 = R2 x Is VR2 = 8 Ω x 2A VR2 = 16 V;</p><p>• VR3 = R3 x Is VR3 = 6 Ω x 2 A VR3 = 12 V;</p><p>• E = VR1 + VR2 + VR3 E = 20 V + 16 V + 12 V E = 48 V.</p><p>d) Potência dissipada em cada resistor:</p><p>• PR1 = VR1 x I PR1 = 20 V x 2 A PR1 = 40 Watts;</p><p>• PR2 = VR2 x I PR2 = 16 V x 2 A PR1 = 32 Watts;</p><p>• PR3 = VR3 x I PR3 = 12 V x 2 A PR1 = 24 Watts.</p><p>e) PT = PR1 + PR2 + PR3 PT = 40 W + 32 W + 24 W PT = 96 Watts.</p><p>UNIUBE 165</p><p>5.2.3 Lei de Kirchhoff para tensão (LKT)</p><p>Essa lei aponta que a somatória das quedas de tensão, nos elementos de um</p><p>circuito em série, será igual à tensão fornecida pela fonte. No caso de duas ou</p><p>mais fontes em um único circuito em série, a polaridade delas devem ser con-</p><p>sideradas. Então, podemos dizer que a soma algébrica das elevações e das</p><p>quedas de potencial em uma malha fechada será sempre zero (Figura 5).</p><p>Figura 5: Lei de Kirchhoff para tensão.</p><p>R2</p><p>R1</p><p>E V2</p><p>V1</p><p>LKT</p><p>a b</p><p>II</p><p>I I</p><p>cd</p><p>A tensão aplicada a um circuito em série é igual a soma das quedas de tensão</p><p>nos elementos em série: ∑ V elevações = ∑ V quedas.</p><p>Para aplicarmos a Lei de Kirchhoff para a tensão, a soma das elevações e quedas</p><p>de potencial precisa ser feita percorrendo a malha em certo sentido que, por con-</p><p>venção, será usado o sentido horário para todas as aplicações da LKT.</p><p>Um sinal positivo indica uma elevação de potencial (de – para +), e um sinal</p><p>negativo, uma queda de potencial (de + para –).</p><p>No circuito apresentado anteriormente, a corrente percorre o caminho abcda,</p><p>formando uma malha fechada.</p><p>Aplicando a lei de Kirchhoff’s para tensão (LKT), no exemplo, a seguir, teremos:</p><p>V1 – V2 + E = 0, portanto: E = V1 + V2</p><p>166 UNIUBE</p><p>5.2.4 Fontes de tensão em série</p><p>As fontes de tensão podem ser conectadas em série para aumentar ou diminuir</p><p>a tensão aplicada a um sistema. Acompanhe, na Figura 6, a seguir:</p><p>Figura 6: Fontes de tensão em série.</p><p>E1 = 1,5V</p><p>E2 = 1,5V</p><p>E3 = 1,5V</p><p>E4 = 1,5V</p><p>VR1 = 6V</p><p>A tensão resultante é determinada somando-se as tensões das fontes de mesma</p><p>polaridade e subtraindo-se as de polaridades diferentes.</p><p>Veja: ET = E2 + E3 – E1</p><p>Atenção! A polaridade resultante é aquela para a qual a soma é maior.</p><p>5.2.5 Regras do divisor de tensão</p><p>A tensão entre os terminais dos elementos resistivos divide-se na mesma pro-</p><p>porção que os valores de resistência. O resistor de maior valor captura a maior</p><p>parte da tensão aplicada, enquanto o menor fica com a menor parte.</p><p>A regra dos divisores de tensão nos permite determinar as tensões em cada</p><p>resistor do circuito. Para isso, devemos utilizar:</p><p>Vx = RxE</p><p>RT</p><p>UNIUBE 167</p><p>A tensão entre os terminais de um resistor em um circuito em série será igual</p><p>ao valor deste resistor multiplicado pela tensão total aplicada aos elementos em</p><p>série do circuito, dividida pela resistência total dos elementos em série.</p><p>Exemplo 2</p><p>No circuito divisor de tensão, a seguir, determine as quedas de tensão em cada</p><p>resistor, na Figura 7.</p><p>100V</p><p>R1 = 30 ohms</p><p>R2 = 50 ohms</p><p>R2 = 20 ohms</p><p>VR1 = (R1 x E) / RT VR1 = (30 Ω x 100 V) / (30 Ω + 50 Ω + 20 Ω) VR1 = 30 V;</p><p>VR2 = (R2 x E) / RT VR1 = (50 Ω x 100 V) / (30 Ω + 50 Ω + 20 Ω) VR1 = 50 V;</p><p>VR3 = (R3 x E) / RT VR1 = (20 Ω x 100 V) / (20 Ω + 50 Ω + 20 Ω) VR1 = 20 V.</p><p>5.2.6 Resistência interna das fontes de tensão</p><p>Toda fonte de tensão (gerador, bateria, fontes de laboratório) possui uma resis-</p><p>tência interna. A fonte de tensão ideal não possui resistência interna e a sua</p><p>tensão de saída será sempre E com carga ou sem carga ligada em seus termi-</p><p>nais.</p><p>A tensão nos terminais de uma fonte de tensão com resistência interna é calcu-</p><p>lada usando a seguinte fórmula:</p><p>Vint = IFL x Rint.</p><p>168 UNIUBE</p><p>Na qual:</p><p>V int = queda de tensão interna da fonte de tensão (V);</p><p>IFL = corrente de carga (A);</p><p>Rint. = resistência interna da fonte (Ω).</p><p>Exemplo</p><p>No circuito a seguir (Figura 8), determine o valor da tensão nos terminais da</p><p>carga.</p><p>Figura 8: Resistência interna das fontes de tensão.</p><p>E = 96V RL (Carga)</p><p>Rint = 18 ohms</p><p>I(LF) = 50 mA</p><p>VL = ?</p><p>Vint = IFL x Rint V int = 500 × 10–3 × 18 Ω V int = 9 V</p><p>Tensão na carga = VL = E – V int VL = 96 V – 9 V VL = 87 V</p><p>PARADA OBRIGATÓRIA</p><p>Com base nos resultados obtidos, o que podemos concluir?</p><p>Isso significa que dos 96 Volts fornecidos pela fonte, 9 Volts ficam retidos na resis-</p><p>tência interna da fonte e são dissipados na forma de calor, ficando a carga submetida</p><p>a uma tensão de 87 Volts.</p><p>INDICAÇÃO DE LEITURA</p><p>Sugerimos a leitura das seções e resoluções dos exercícios do livro Introdução à</p><p>análise de circuitos, de autoria de Robert L. Boylestad (2004), conforme indicado</p><p>a seguir.</p><p>PARADA OBRIGATÓRIA</p><p>Com base nos resultados obtidos, o que podemos concluir?</p><p>Isso significa que dos 96 Volts fornecidos pela fonte, 9 Volts ficam retidos na resis-</p><p>tência interna da fonte e são dissipados na forma de calor, ficando a carga submetida</p><p>a uma tensão de 87 Volts.</p><p>INDICAÇÃO DE LEITURA</p><p>Sugerimos a leitura das seções e resoluções dos exercícios do livro Introdução à</p><p>análise de circuitos, de autoria de Robert L. Boylestad (2004), conforme indicado</p><p>a seguir.</p><p>UNIUBE 169</p><p>• Leitura das seções de 5.1 a 5.9.</p><p>• Exercícios referentes à seção 5.2 (exercícios 1, 2 e 3).</p><p>• Exercícios referentes à seção 5.3 (exercício 5).</p><p>• Exercícios referentes à seção 5.4 (exercícios 9 e 10).</p><p>• Exercícios referentes à seção 5.6 (exercício 15).</p><p>• Exercícios referentes à seção 5.7 (exercícios 24, 25 e 26).</p><p>• Exercícios referentes à seção 5.8 (exercício 35).</p><p>Nessa leitura, você encontrará importantes informações sobre a utilização correta e</p><p>segura dos equipamentos utilizados para medição das grandezas elétricas, corrente</p><p>e tensão. Para uma melhor fixação dos conceitos dos circuitos em série, faça os</p><p>exercícios indicados, a fim de compreender melhor o conteúdo abordado.</p><p>5.3 Circuitos em paralelo</p><p>5.3.1 Elementos em paralelo</p><p>Dois elementos, ramos ou circuitos estão conectados em paralelo quando pos-</p><p>suem dois pontos em comum. Observe, com atenção, a Figura 9:</p><p>Figura 9: Elementos em paralelo.</p><p>170 UNIUBE</p><p>5.3.2 Condutância e resistência totais</p><p>No caso de elementos em paralelo, a condutância total é a soma das condutân-</p><p>cias individuais.</p><p>GT = + G1 + G2 + G3 +… + GN</p><p>À medida que o número de resistores em paralelo aumenta, a corrente na en-</p><p>trada do circuito também aumenta, para uma tensão de entrada constante. Efeito</p><p>contrário ao que acontece no caso de resistores em série.</p><p>Como G = 1/R, a resistência total do circuito será:</p><p>R R R R R</p><p>Note que o resultado desta equação nos dá o inverso da resistência total. Uma</p><p>vez executados os cálculos, devemos inverter o resultado para obtermos a re-</p><p>sistência total.</p><p>IMPORTANTE!</p><p>1. A resistência total de um conjunto de resistores em paralelo é sempre menor que</p><p>a do resistor de menor resistência do conjunto.</p><p>Quanto maior for a diferença entre o valor de duas resistências em paralelo, mais o</p><p>valor da resistência total se aproxima do valor da menor resistência. A equação, a</p><p>seguir, é utilizada para calcular a resistência total de resistores de valores iguais em</p><p>paralelo.</p><p>2. A resistência total referente a dois resistores em paralelo</p><p>é o produto das duas</p><p>resistências dividido pela sua soma:</p><p>R R</p><p>R</p><p>R</p><p>R</p><p>R</p><p>N</p><p>R</p><p>Elementos em paralelo podem ser intercambiados sem alterar a resistência total ou</p><p>corrente total.</p><p>IMPORTANTE!</p><p>1. A resistência total de um conjunto de resistores em paralelo é sempre menor que</p><p>a do resistor de menor resistência do conjunto.</p><p>Quanto maior for a diferença entre o valor de duas resistências em paralelo, mais o</p><p>valor da resistência total se aproxima do valor da menor resistência. A equação, a</p><p>seguir, é utilizada para calcular a resistência total de resistores de valores iguais em</p><p>paralelo.</p><p>R R</p><p>NN</p><p>2. A resistência total referente a dois resistores em paralelo é o produto das duas</p><p>resistências dividido pela sua soma:</p><p>R</p><p>R</p><p>R</p><p>R</p><p>R</p><p>Elementos em paralelo podem ser intercambiados sem alterar a resistência total ou</p><p>corrente total.</p><p>UNIUBE 171</p><p>Exemplo 3</p><p>Nos circuitos a seguir (Figura 10), calcular a resistência total:</p><p>Circuito 1:</p><p>100Ω 100Ω 100Ω 100Ω</p><p>Figura 10: Resistores em paralelo.</p><p>Quando os resistores têm o mesmo valor, utilizamos a seguinte fórmula:</p><p>R R</p><p>NN</p><p>RT = 100 Ω / 4</p><p>RT = 25 Ω</p><p>Circuito 2:</p><p>Figura 11: Resistores em paralelo.</p><p>500Ω 750Ω</p><p>Observe a Figura 11. Percebeu que os resistores são de valores diferentes?</p><p>Neste caso, utilizamos a seguinte fórmula:</p><p>R R</p><p>R</p><p>R</p><p>R</p><p>R</p><p>N</p><p>R</p><p>RT = (500 Ω x 750 Ω) / (500 Ω + 750 Ω)</p><p>RT = 300 Ω</p><p>172 UNIUBE</p><p>Reestruturação da fórmula para 3 resistores em circuito paralelo.</p><p>1 1 1 1</p><p>Re 1 2 3</p><p>1 2 3 1 3 1 2</p><p>Re 1 2 3</p><p>1 2 3Re</p><p>2 3 1 3 1 2</p><p>q R R R</p><p>R R R R R R</p><p>q R R R</p><p>R R Rq</p><p>R R R R R R</p><p>= + +</p><p>⋅ + ⋅ + ⋅</p><p>=</p><p>⋅ ⋅</p><p>⋅ ⋅</p><p>=</p><p>⋅ + ⋅ + ⋅</p><p>R</p><p>R</p><p>R</p><p>Exemplo 4</p><p>Determine a resistência equivalente do circuito representado na Figura 12.</p><p>Figura 12: Circuito paralelo.</p><p>20 ohms 10 ohms 5 ohms</p><p>1 2 3 20 10 5Re</p><p>2 3 1 3 1 2 10 5 20 5 20 10</p><p>1 000 1 000Re 2,86</p><p>50 100 200 350</p><p>R R Rq</p><p>R R R R R R</p><p>q</p><p>⋅ ⋅ ⋅ ⋅</p><p>==</p><p>⋅ + ⋅ + ⋅ ⋅ + ⋅ + ⋅</p><p>= → = Ω</p><p>+ +</p><p>R</p><p>R</p><p>5.3.3 Tensão e corrente em circuitos em paralelo</p><p>A corrente total fornecida pela fonte é: Is = E / RT. Como a tensão obtida entre</p><p>os terminais de elementos em paralelo são iguais, ou seja, V1 = V2 = E, as</p><p>correntes nos ramos serão então: I1 = V1/R1, I2 = V2/R2,......,IN = VN/RN</p><p>(Figura 13).</p><p>UNIUBE 173</p><p>Figura 13: Tensão e corrente em circuitos paralelos.</p><p>E</p><p>IS</p><p>V1 V2R1 R2</p><p>I1 I2</p><p>IS</p><p>Para circuitos em paralelo com apenas uma fonte, a corrente fornecida pela</p><p>fonte (Is) é igual à soma das correntes em cada um dos ramos do circuito. Is =</p><p>I1 + I2.</p><p>5.3.4 Lei de Kirchhoff para corrente</p><p>A Lei de Kirchhoff para a corrente (LKC) afirma que a soma algébrica das cor-</p><p>rentes que entram em um nó é igual à soma algébrica das correntes que saem</p><p>deste nó. Veja a Figura 14:</p><p>Σ I.entram = Σ I.saem</p><p>Figura 14: Tensão e corrente em circuitos paralelos.</p><p>E</p><p>IS</p><p>IS</p><p>I1 I2</p><p>R1 R2</p><p>174 UNIUBE</p><p>Acompanhe no nó a da Figura 13:</p><p>Σ I.entram = Is</p><p>Σ I.saem = I1 + I2 ou seja: Is = I1 + I2.</p><p>5.3.5 Regra do divisor de corrente</p><p>A regra do divisor de corrente (RDC) diz que a corrente que entra em um con-</p><p>junto de elementos em paralelos se dividirá entre estes elementos. No caso</p><p>de dois elementos em paralelo com resistências iguais, a corrente se dividirá</p><p>igualmente entre eles. Se os elementos em paralelo tiverem resistências dife-</p><p>rentes, o elemento de menor resistência será percorrido pela maior fração da</p><p>corrente.</p><p>A razão entre os valores de corrente nos dois ramos será inversamente propor-</p><p>cional à razão entre as suas resistências (Figura 15).</p><p>Figura 15: Divisor de corrente.</p><p>O valor da corrente em cada ramo será:</p><p>RT</p><p>RxIx = I</p><p>UNIUBE 175</p><p>Analise a Figura 16 a seguir:</p><p>56,25V</p><p>Is = 3A I(1)</p><p>30 ohms 50 ohms</p><p>I(2)</p><p>a</p><p>b</p><p>Figura 16: Divisor de corrente.</p><p>No caso particular de dois resistores em paralelo, como o da figura anterior,</p><p>utilizamos as seguintes fórmulas:</p><p>R2 x I</p><p>R1 + R2</p><p>I1 =</p><p>R1 x I</p><p>R1 + R2</p><p>I2 =</p><p>I 1 = (50 Ω x 3 A) / (30 Ω + 50 Ω) = 1,87 A;</p><p>I 2 = (30Ω x 3 A) / (30 Ω + 50 Ω) = 1,13 A.</p><p>5.3.6 Fontes de tensão em paralelo</p><p>As fontes de tensão podem ser colocadas em paralelo somente se as tensões</p><p>nos terminais forem idênticas (Figura 17).</p><p>A razão para colocarmos fontes de tensão em paralelo é a obtenção de uma</p><p>intensidade de corrente maior (e, como consequência, uma potência maior):</p><p>A corrente total será:</p><p>IS = I1 + I2 +… IN</p><p>176 UNIUBE</p><p>Figura 17: Fontes de tensão em paralelo.</p><p>E E E</p><p>I(1) I(2) I(3) Is = I(1) + I(2) + I(3)</p><p>Se colocarmos duas baterias de diferentes tensões em paralelo, a bateria de</p><p>maior tensão tende a descarregar rapidamente até o seu valor de tensão igua-</p><p>lar-se ao de menor tensão.</p><p>As resistências internas relativamente pequenas das fontes de tensão são as únicas</p><p>limitadoras para a corrente entre elas, resultando em uma rápida descarga na bate-</p><p>ria com maior valor de tensão e um impacto destrutivo na fonte de menor tensão.</p><p>INDICAÇÃO DE LEITURA</p><p>Sugerimos a leitura das seções e resolução do Capítulo 6 do livro Introdução à</p><p>análise de circuitos, de autoria de Robert L. Boylestad (2004).</p><p>• Leitura das seções de 6.1 a 6.10.</p><p>• Exercício referente à seção 6.2 (exercício 2).</p><p>• Exercícios referentes à seção 6.3 (exercícios 3, 4 e 6).</p><p>• Exercícios referentes à seção 6.4 (exercícios 8, 10 e 12).</p><p>• Exercícios referentes à seção 6. 5 (exercícios 18,19 e 21).</p><p>• Exercícios referentes à seção 6.6 (exercícios 22, 24 e 27).</p><p>• Exercício referente à seção 6.7 (exercício 28).</p><p>Ao fazer o estudo sugerido, observe a influência da resistência interna dos equipa-</p><p>mentos de medição, especificamente o voltímetro, no resultado das medições e as</p><p>precauções que devem ser tomadas para evitar esses erros.</p><p>INDICAÇÃO DE LEITURA</p><p>Sugerimos a leitura das seções e resolução do Capítulo 6 do livro Introdução à</p><p>análise de circuitos, de autoria de Robert L. Boylestad (2004).</p><p>• Leitura das seções de 6.1 a 6.10.</p><p>• Exercício referente à seção 6.2 (exercício 2).</p><p>• Exercícios referentes à seção 6.3 (exercícios 3, 4 e 6).</p><p>• Exercícios referentes à seção 6.4 (exercícios 8, 10 e 12).</p><p>• Exercícios referentes à seção 6. 5 (exercícios 18,19 e 21).</p><p>• Exercícios referentes à seção 6.6 (exercícios 22, 24 e 27).</p><p>• Exercício referente à seção 6.7 (exercício 28).</p><p>Ao fazer o estudo sugerido, observe a influência da resistência interna dos equipa-</p><p>mentos de medição, especificamente o voltímetro, no resultado das medições e as</p><p>precauções que devem ser tomadas para evitar esses erros.</p><p>UNIUBE 177</p><p>5.4 Circuitos em série-paralelo</p><p>De acordo com Boylestad (2004), “Circuitos em série-paralelo são os que contêm</p><p>componentes em série e em paralelo.”</p><p>Para determinar a resistência equivalente em um circuito composto por uma</p><p>associação de resistores, calcula-se inicialmente a resistência equivalente das</p><p>associações em série e, em seguida, parte-se as associações em paralelo.</p><p>Acompanhe na Figura 18:</p><p>6 ohms</p><p>12V</p><p>6 ohms 8 ohms</p><p>8 ohms</p><p>Figura 18: Circuito em paralelo.</p><p>Como exemplo, vamos considerar o circuito representado na Figura 18.</p><p>Como determinar a resistência equivalente do circuito?</p><p>Em primeiro lugar, reorganizamos o circuito. Veja como isso é feito na Figura 19.</p><p>6 ohms</p><p>6 ohms</p><p>8 ohms</p><p>8 ohms12V</p><p>Figura 19: Circuito em série paralelo 2.</p><p>Como determinar a resistência equivalente do circuito?</p><p>178 UNIUBE</p><p>Os dois resistores de 6 Ω em paralelo podem ser simplificados como:</p><p>R R</p><p>R</p><p>R</p><p>R</p><p>R</p><p>N</p><p>R</p><p>RT = 6 Ω / 2</p><p>RT = 3 Ω</p><p>Reorganizando o circuito (Figura 20):</p><p>3 ohms</p><p>8 ohms</p><p>8 ohms12V</p><p>Figura 20: Circuito em série paralelo reduzido.</p><p>Os resistores de 3 Ω e 8 Ω podem ser simplificados, utilizando-se a seguinte</p><p>fórmula:</p><p>R R</p><p>R</p><p>R</p><p>R</p><p>R</p><p>N</p><p>R</p><p>RT = (3 Ω x 8 Ω) / (3 Ω + 8 Ω)</p><p>RT = 2,18 Ω</p><p>Reorganizando o circuito (Figura 21).</p><p>Figura 21: Circuito em série paralelo reduzido 2.</p><p>2,18 ohms</p><p>8 ohms12V</p><p>UNIUBE 179</p><p>Os resistores agora estão em série. Para obter a resistência total, basta somar</p><p>o valor das duas resistências (Figura 22).</p><p>10,18 ohms12V</p><p>Figura 22: Resistência equivalente de um</p><p>circuito em série paralelo.</p><p>Rt = 2,18 Ω + 8 Ω</p><p>Rt = 10,18 Ω</p><p>Exemplo 5</p><p>Determine as tensões V1, V2, V3 e V4, a corrente fornecida pela</p><p>fonte e a po-</p><p>tência dissipada em cada resistor do circuito apresentado na Figura 23.</p><p>4 ohms 6 ohms</p><p>5 ohms</p><p>12V24V</p><p>3 ohms</p><p>Figura 23: Exemplo de circuito em série paralelo.</p><p>Acompanhe os procedimentos!</p><p>Redesenhar o circuito, agrupando as fontes que estão em série, assim como os</p><p>resistores (Figura 24).</p><p>Req1 = R3 + R4 = 4 Ω + 6 Ω</p><p>Req1 = 10 Ω</p><p>180 UNIUBE</p><p>Req2 = R1 + R2 = 3 Ω + 5 Ω</p><p>Req1 = 8 Ω</p><p>Eeq = –24 V + 12 V</p><p>Eeq = –12 V</p><p>12V 10 ohms 8 ohms</p><p>Is I(1) I(2)</p><p>Figura 24: Circuito em série paralelo redução.</p><p>R R</p><p>R</p><p>R</p><p>R</p><p>R</p><p>N</p><p>R</p><p>RT = (10 Ω X 8 Ω) / (10 Ω + 8 Ω)</p><p>RT = 4,44 Ω</p><p>Cálculo da corrente total fornecida pela fonte (Is):</p><p>Is = E / RT</p><p>Is = 12V / 4,44 Ω</p><p>Is = 2,7 A</p><p>Podemos aplicar, agora, a regra do divisor de corrente e determinar a corrente</p><p>em cada ramo:</p><p>R2 x I</p><p>R1 + R2</p><p>I1 =</p><p>I1 = (10 Ω x 2,7 A) / (10 Ω + 8 Ω)</p><p>I1 = 1,5 A</p><p>UNIUBE 181</p><p>R1 x I</p><p>R1 + R2</p><p>I2 =</p><p>I2 = (8 Ω x 2,7 A) / (10 Ω + 8 Ω)</p><p>I2 = 1,2 A</p><p>Redesenhando o circuito (Figura 25).</p><p>6 ohms5 ohms</p><p>3 ohms</p><p>12V</p><p>4 ohms</p><p>Is = 2,7A I(1) = 1,5A I(2) = 1,2A</p><p>Figura 25: Circuito em série paralelo divisor de corrente.</p><p>Conhecendo a corrente em cada ramo, podemos agora calcular a queda de</p><p>tensão em cada resistor por meio da lei de Ohm:</p><p>V1 = R1 x I1</p><p>V1 = 3 Ω x 1,5 A</p><p>V1 = 4,5 V</p><p>V2 = R2 x I1</p><p>V2 = 5 Ω x 1,5 A</p><p>V2 = 7,5 V</p><p>V3 = R3 x I2</p><p>V3 = 4 Ω x 1,2 A</p><p>182 UNIUBE</p><p>V3 = 4,8 V</p><p>V4 = R 4 x I 2</p><p>V4 = 6 Ω x 1,2 A</p><p>V4 = 7,2 V</p><p>Conhecendo o valor da tensão e corrente em cada resistor, podemos calcular</p><p>a potência dissipada em cada um deles:</p><p>P1 = V 1 x I 1</p><p>P1 = 4,5 V x 1,5 A</p><p>P1 = 6,75 W</p><p>P2 = V2 x I1</p><p>P2 = 7,5V x 1,5A</p><p>P2 = 11,25 W</p><p>P3 = V 3 x I 2</p><p>P3 = 4,8 V x 1,2 A</p><p>P3 = 5,76 W</p><p>P4 = V 4 x I 2</p><p>P4 = 7,2 V x 1,2 A</p><p>P4 = 8,64 W</p><p>5.4.1 Resolução de circuito aplicando matriz</p><p>Para compreender esse método de resolução de circuitos em paralelos, veja as</p><p>comparações entre ele e o método de malhas nos exemplos, a seguir.</p><p>UNIUBE 183</p><p>Exemplo 6</p><p>Determine os valores da corrente I1 e I2 e os valor de tensão nos resistores R1,</p><p>R2 e R3 do circuito representado na Figura 26:</p><p>Figura 26: Circuito paralelo.</p><p>10 ohms</p><p>10 ohms</p><p>20V 20 ohms</p><p>Resolução pelo método de malhas:</p><p>Encontrado o valor da corrente total do circuito, iremos agora calcular a corrente</p><p>e a tensão em cada resistor.</p><p>(Resistor1) 1,2</p><p>(Resistor1) 1,2 10 12</p><p>I It A</p><p>V A V</p><p>= =</p><p>= ⋅ =</p><p>(Resistor2) (Resistor3) 20 12 8 VV V V V= = − =</p><p>8(Resistor2) 0,8</p><p>10</p><p>8(Resistor3) 0,</p><p>20</p><p>I A</p><p>I A</p><p>= =</p><p>= =</p><p>Resolução pelo método da matriz:</p><p>2301100</p><p>212020</p><p>)2(20)12(100</p><p>)21(1011020</p><p>II</p><p>II</p><p>III</p><p>III</p><p>⋅+⋅−=</p><p>−⋅=</p><p>+−⋅=</p><p>−⋅+⋅=</p><p>184 UNIUBE</p><p>Montando a matriz, teremos </p><p></p><p></p><p></p><p></p><p></p><p>=</p><p></p><p></p><p></p><p></p><p></p><p>⋅</p><p></p><p></p><p></p><p></p><p></p><p>−</p><p>−</p><p>0</p><p>20</p><p>2</p><p>1</p><p>3010</p><p>1020</p><p>I</p><p>I</p><p>.</p><p>Calculando o valor de I1 e I2:</p><p>,</p><p>,</p><p>, , ,</p><p>,</p><p>,</p><p>,</p><p>,</p><p>,</p><p>Encontrado o valor das correntes I1 e I2 do circuito, iremos agora calcular a</p><p>corrente e a tensão em cada resistor.</p><p>,</p><p>,</p><p>, , ,</p><p>,</p><p>,</p><p>,</p><p>,</p><p>,</p><p>UNIUBE 185</p><p>Exemplo 7</p><p>Façamos, agora, com base no circuito representado na Figura 27.</p><p>1 ohms</p><p>1 ohms</p><p>2 ohms</p><p>4 ohms</p><p>10V</p><p>I1</p><p>I2</p><p>I33 ohms</p><p>Montando cada malha do circuito.</p><p>,</p><p>,</p><p>, , ,</p><p>,</p><p>,</p><p>,</p><p>,</p><p>,</p><p>Montando a representação em forma de matriz.</p><p>,</p><p>,</p><p>, , ,</p><p>,</p><p>,</p><p>,</p><p>,</p><p>,</p><p>Calculando o determinante da matriz encontrada:</p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p>−−</p><p>−−</p><p>−−</p><p>813</p><p>141</p><p>314</p><p>74843233128 =−−−−−=Det</p><p>186 UNIUBE</p><p>Esse valor será usado para calcular a corrente desejada. Para encontrar o valor</p><p>da corrente I1 do circuito, basta substituir a matriz resultado</p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p>0</p><p>0</p><p>10</p><p>na linha cor-</p><p>respondente à corrente, como no exemplo, a corrente I1 se encontra na coluna</p><p>1, a I2 na coluna 2 e assim sucessivamente.</p><p>Calculado o valor das correntes I1, I2 e I3:</p><p>Teremos então que as seguintes correntes em cada resistor:</p><p>UNIUBE 187</p><p>Agora iremos calcular o valor da tensão e da potência de cada resistor.</p><p>RELEMBRANDO</p><p>Lembre-se de que a potência é igual o valor da tensão no resistor vezes a corrente</p><p>que passa por ele.</p><p>Potência no Resistor R1</p><p>( 1) 1 ( 1) 2,71V R R I R V= ⋅ =</p><p>P (R1) = 2,71 V.2,71 A= 7,34 W</p><p>Potência no Resistor R2</p><p>( 2) 2 ( 2) 2,96</p><p>( 2) 2,96 1,48 4,38</p><p>V R R I R V</p><p>P R V A W</p><p>= ⋅ =</p><p>= ⋅ =</p><p>( 3) 3 ( 3) 0, 27V R R I R V= ⋅ =</p><p>( 4) 4 ( 4) 7,32V R R I R V= ⋅ =</p><p>( 5) 5 ( 5) 7</p><p>( 5) 7 1,75 12,25</p><p>V R R I R V</p><p>P R V A W</p><p>= ⋅ =</p><p>= ⋅ =</p><p>P (R3) = 0,27 V . 0,27A = 72,9 mW</p><p>P (R4) = 7,32 V . 2,44 A = 17,86 W</p><p>Potência no Resistor R3</p><p>( 2) 2 ( 2) 2,96</p><p>( 2) 2,96 1,48 4,38</p><p>V R R I R V</p><p>P R V A W</p><p>= ⋅ =</p><p>= ⋅ =</p><p>( 3) 3 ( 3) 0, 27V R R I R V= ⋅ =</p><p>( 4) 4 ( 4) 7,32V R R I R V= ⋅ =</p><p>( 5) 5 ( 5) 7</p><p>( 5) 7 1,75 12,25</p><p>V R R I R V</p><p>P R V A W</p><p>= ⋅ =</p><p>= ⋅ =</p><p>P (R3) = 0,27 V . 0,27A = 72,9 mW</p><p>P (R4) = 7,32 V . 2,44 A = 17,86 W</p><p>Potência no Resistor R4</p><p>( 2) 2 ( 2) 2,96</p><p>( 2) 2,96 1,48 4,38</p><p>V R R I R V</p><p>P R V A W</p><p>= ⋅ =</p><p>= ⋅ =</p><p>( 3) 3 ( 3) 0, 27V R R I R V= ⋅ =</p><p>( 4) 4 ( 4) 7,32V R R I R V= ⋅ =</p><p>( 5) 5 ( 5) 7</p><p>( 5) 7 1,75 12,25</p><p>V R R I R V</p><p>P R V A W</p><p>= ⋅ =</p><p>= ⋅ =</p><p>P (R3) = 0,27 V . 0,27A = 72,9 mW</p><p>P (R4) = 7,32 V . 2,44 A = 17,86 W</p><p>Potência no Resistor R5</p><p>( 2) 2 ( 2) 2,96</p><p>( 2) 2,96 1,48 4,38</p><p>V R R I R V</p><p>P R V A W</p><p>= ⋅ =</p><p>= ⋅ =</p><p>( 3) 3 ( 3) 0, 27V R R I R V= ⋅ =</p><p>( 4) 4 ( 4) 7,32V R R I R V= ⋅ =</p><p>( 5) 5 ( 5) 7</p><p>( 5) 7 1,75 12,25</p><p>V R R I R V</p><p>P R V A W</p><p>= ⋅ =</p><p>= ⋅ =</p><p>P (R3) = 0,27 V . 0,27A = 72,9 mW</p><p>P (R4) = 7,32 V . 2,44 A = 17,86 W</p><p>DICAS</p><p>Se alguma corrente encontrada possuir um valor negativo, quer dizer que ela está no</p><p>sentido contrário ao adotado.</p><p>Lembre-se de que a potência é igual o valor da tensão no resistor vezes a corrente</p><p>que passa por ele.</p><p>Se alguma corrente encontrada possuir um valor negativo, quer dizer que ela está no</p><p>sentido contrário ao adotado.</p><p>188 UNIUBE</p><p>Exemplo 8</p><p>Dado o circuito representado na Figura 28, encontre as correntes, as tensões e</p><p>as potências dos resistores.</p><p>Figura 28: Circuito paralelo.</p><p>10 ohms</p><p>2 ohms</p><p>10V</p><p>40 ohms 50 ohms</p><p>20 ohms</p><p>10 ohmsI4</p><p>I3</p><p>I2</p><p>I1</p><p>Montando cada malha do circuito.</p><p>10450)34(20)24(0</p><p>50)43(2)23(40)13(0</p><p>20)42(2)32(10)12(0</p><p>40)31(10)21(10</p><p>⋅+⋅−+⋅−=</p><p>⋅−+⋅−+⋅−=</p><p>⋅−+⋅−+⋅−=</p><p>⋅−+⋅−=</p><p>IIIII</p><p>IIIIII</p><p>IIIIII</p><p>IIII</p><p>Reorganizando em forma de matriz, temos:</p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p>=</p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p>−−</p><p>−−−</p><p>−−−</p><p>−−</p><p>0</p><p>0</p><p>0</p><p>10</p><p>4</p><p>3</p><p>2</p><p>1</p><p>.</p><p>8050200</p><p>5092240</p><p>2023210</p><p>0401050</p><p>I</p><p>I</p><p>I</p><p>I</p><p>Calculando o determinante da matriz encontrada:</p><p>UNIUBE 189</p><p>Calculado o valor das correntes I1, I2, I3 e I4.</p><p>,</p><p>,</p><p>,</p><p>,</p><p>,</p><p>,</p><p>,</p><p>Teremos então que as seguintes correntes em cada resistor:</p><p>,</p><p>,</p><p>,</p><p>,</p><p>,</p><p>,</p><p>,</p><p>190 UNIUBE</p><p>,</p><p>,</p><p>,</p><p>, ,</p><p>,</p><p>,</p><p>,</p><p>,</p><p>,,</p><p>,</p><p>, ,</p><p>, ,V A W</p><p>,</p><p>,</p><p>,</p><p>,</p><p>Encontrado o valor da corrente em cada resistor, iremos calcular agora o valor</p><p>da tensão e da potência dos mesmos:</p><p>,</p><p>,</p><p>,</p><p>, ,</p><p>,</p><p>,</p><p>,</p><p>,</p><p>,,</p><p>,</p><p>, ,</p><p>, ,V A W</p><p>,</p><p>,</p><p>,</p><p>,</p><p>UNIUBE 191</p><p>Resumo</p><p>Neste capítulo, enfocamos o teorema da Lei de Ohm e os métodos de re-</p><p>solução de circuitos em série e paralelo. Também apresentamos as resolu-</p><p>ções usando os sistemas de malhas e de matrizes, tornando assim possível</p><p>o cálculo das correntes e potências de cada resistor contido no circuito</p><p>analisado.</p><p>Esperamos que você tenha assimilado os conteúdos que foram abordados e,</p><p>sempre que necessário, retome-os. Lembre-se de que as leituras indicadas e</p><p>as atividades solicitadas contribuirão para a sua aprendizagem.</p><p>Atividades</p><p>Atividade 1</p><p>Considerando os estudos realizados, resolva as seguintes questões:</p><p>a) determine a corrente resultante quando conectamos uma bateria de 9 Volts</p><p>aos terminais de um circuito, cuja resistência é 2,2 Ohms;</p><p>b) calcule a resistência de uma lâmpada de 60 W se uma corrente de 500 mA</p><p>for estabelecida em função de uma tensão aplicada de 220 Volts;</p><p>c) calcule a corrente através do resistor de 2 KΩ, se a queda de tensão entre</p><p>os seus terminais for de 16 Volts;</p><p>d) calcule o valor da queda de tensão através de um resistor de 1,5MΩ, sabendo</p><p>que a corrente que passa por ele é de 24 µA;</p><p>e) calcule a corrente elétrica necessária para alimentar uma lâmpada de 60 W</p><p>cuja tensão de alimentação é de 120 Volts. Repita este procedimento para uma</p><p>lâmpada de 150 W e para outra de</p><p>300 W. Explique o que acontece (observe a</p><p>proporção) com a corrente elétrica à medida que a potência aumenta, man-</p><p>tendo-se constante a tensão de alimentação.</p><p>192 UNIUBE</p><p>Atividade 2</p><p>Determine a resistência total e a corrente para o circuito mostrado na figura a</p><p>seguir:</p><p>20 ohms10 ohms</p><p>36 ohms</p><p>12V</p><p>40 ohms</p><p>Atividade 3</p><p>Determine o valor da resistência desconhecida na figura a seguir.</p><p>3,6 ohms</p><p>10 Kohms</p><p>5,8 Kohms</p><p>I = 1,99 mA</p><p>R1 = ?</p><p>48V</p><p>Atividade 4</p><p>No circuito dado, indique a polaridade e calcule o valor da queda de tensão em</p><p>cada resistor.</p><p>48V</p><p>600 ohms 200 ohms</p><p>36V</p><p>1,2 Kohms 2,4 Kohms</p><p>UNIUBE 193</p><p>Atividade 5</p><p>Determine os valores de R1 e R3, no circuito a seguir:</p><p>12V</p><p>R1</p><p>R3</p><p>R2 = 8 ohms</p><p>4V</p><p>4V</p><p>8V</p><p>Atividade 6</p><p>Determine o valor desconhecido da resistência, usando a regra dos divisores</p><p>de tensão.</p><p>6k</p><p>48V 12V</p><p>R = ?</p><p>1K</p><p>2k</p><p>+</p><p>–</p><p>194 UNIUBE</p><p>Referências</p><p>BOYLESTAD, Robert L. Introdução à análise de circuitos. 10. ed. São Paulo: Pearson</p><p>Education, 2004.</p><p>____; NASHELSKY, Louis. Dispositivos eletrônicos e teoria dos circuitos. 8. ed. São</p><p>Paulo: Pearson Education, 2004.</p><p>Anotações</p><p>____________________________________________________________________</p><p>____________________________________________________________________</p><p>____________________________________________________________________</p><p>____________________________________________________________________</p><p>____________________________________________________________________</p><p>____________________________________________________________________</p><p>____________________________________________________________________</p><p>____________________________________________________________________</p><p>____________________________________________________________________</p><p>____________________________________________________________________</p><p>____________________________________________________________________</p><p>____________________________________________________________________</p><p>____________________________________________________________________</p><p>____________________________________________________________________</p><p>____________________________________________________________________</p><p>____________________________________________________________________</p><p>____________________________________________________________________</p><p>____________________________________________________________________</p><p>____________________________________________________________________</p><p>____________________________________________________________________</p><p>____________________________________________________________________</p><p>___</p><p>b) Descreva os passos para a solução do problema.</p><p>Atividade 3</p><p>Uma família composta de cinco integrantes passeava em um bosque e chegou a uma</p><p>ponte. Toda a família teria que atravessar a ponte em um tempo total de 30 segundos.</p><p>A ponte suporta, no máximo, dois integrantes por vez. Mas, como era noite, necessi-</p><p>tava-se de uma lanterna para facilitar a travessia. Porém, a lanterna teria que voltar</p><p>com alguém. Ao atravessarem em duplas, o mais lento ia à frente. Cada integrante</p><p>da família gasta um determinado tempo para atravessar a ponte. O tempo que cada</p><p>pessoa gasta para uma parte do percurso (ida ou volta) é:</p><p>1º integrante 1 segundo;</p><p>2º integrante 3 segundos;</p><p>3º integrante 6 segundos;</p><p>4º integrante 8 segundos;</p><p>5º integrante 12 segundos.</p><p>Descreva os passos necessários para que os cinco integrantes da família atravessem</p><p>a ponte em tempo hábil.</p><p>PASSOS INTEGRANTES TEMPO GASTO</p><p>UNIUBE 11</p><p>1.2 Algoritmos</p><p>Após termos visualizado diferentes tipos de problemas, com abstrações e se-</p><p>quências de ações distintas para solucioná-los, percebemos que, além de criar-</p><p>mos as instruções, é muito importante segui-las passo a passo, não se esquecendo</p><p>de nenhuma etapa.</p><p>Vamos, agora, conhecer conceitos da lógica computacional, também denominada</p><p>de algoritmos.</p><p>A palavra algoritmos, a princípio, parece-nos estranha, embora façamos uso</p><p>constante de algoritmos em nosso dia a dia. Veja alguns exemplos desse uso:</p><p>• a maneira como analisamos os exercícios anteriores para chegar ao resul-</p><p>tado;</p><p>• a forma como atravessamos uma rua;</p><p>• uma receita de bolo;</p><p>• a sequência de ações para a troca de um pneu furado de carro.</p><p>IMPORTANTE!</p><p>Dessa forma, podemos definir algoritmos como um conjunto de ações (instruções)</p><p>bem definidas (objetivas e claras), dadas em sequência, visando solucionar determi-</p><p>nado problema.</p><p>Veja alguns conceitos de algoritmos:</p><p>“Ação é uma acontecimento que, a partir de um estado inicial, após um pe-</p><p>ríodo de tempo finito, produz um estado final previsível e bem definido”</p><p>(FARRER, 1999, p. 14).</p><p>“Algoritmo é um processo de cálculo matemático ou de resolução de um grupo de</p><p>problemas semelhantes, em que se estipulam, com generalidade e sem restrições</p><p>[...] regras formais para obtenção de um resultado ou da solução de um problema,</p><p>englobando fórmulas de expressão aritméticas” (MANZANO, 1996, p. 7).</p><p>IMPORTANTE!</p><p>Dessa forma, podemos definir algoritmos como um conjunto de ações (instruções)</p><p>bem definidas (objetivas e claras), dadas em sequência, visando solucionar determi-</p><p>nado problema.</p><p>12 UNIUBE</p><p>“[...] uma sequência de passos que visam a atingir um objetivo bem definido”</p><p>(FORBELLONE, 2005, p. 3).</p><p>“Processo de cálculo; encadeamento das ações necessárias para o cumprimento</p><p>de uma tarefa; processo efetivo, que produz uma solução para um problema</p><p>num número finito de etapas” (HOUAISS, 2007, p. 155).</p><p>1.3 Itens fundamentais da composição da estrutura de</p><p>algoritmos</p><p>A seguir, apresentaremos os principais operadores e operandos que utilizaremos</p><p>em algoritmos.</p><p>INDICAÇÃO DE LEITURA</p><p>Você aprenderá mais sobre esses operadores com a leitura do Capítulo 2 do livro</p><p>Fundamentos de programação de computadores, de Ascêncio e Campos (2002),</p><p>que apresenta e explora algoritmos com operadores nas linguagens de programação</p><p>C e Pascal.</p><p>1.3.1 Operadores aritméticos</p><p>Adição +</p><p>Subtração -</p><p>Multiplicação *</p><p>Divisão /</p><p>1.3.2 Operadores lógicos</p><p>Conjunção e</p><p>Disjunção ou</p><p>Negação não</p><p>INDICAÇÃO DE LEITURA</p><p>Você aprenderá mais sobre esses operadores com a leitura do Capítulo 2 do livro</p><p>Fundamentos de programação de computadores, de Ascêncio e Campos (2002),</p><p>que apresenta e explora algoritmos com operadores nas linguagens de programação</p><p>C e Pascal.</p><p>UNIUBE 13</p><p>Tabela 1: Tabela verdade dos operadores lógicos.</p><p>E OU NÃO</p><p>A B RESULTADO A B RESULTADO NÃO V F</p><p>V V V V V V NÃO F V</p><p>V F F V F V</p><p>F V F F V V</p><p>F F F F F F</p><p>• Note que o operador lógico “E” só terá resultado verdadeiro se as condições de</p><p>A e B forem verdadeiras; caso contrário, o resultado será falso.</p><p>• O operador lógico “OU” somente terá resultado falso se ambas as condições</p><p>forem falsas.</p><p>• Já o operador “NÃO” serve para inverter o resultado; o que não é verdadeiro</p><p>é falso, e o que não é falso é verdadeiro.</p><p>1.3.3 Operadores relacionais</p><p>igual a =</p><p>diferente de <></p><p>maior que ></p><p>menor que <</p><p>maior ou igual a >=</p><p>menor ou igual a <=</p><p>1.3.4 Operadores caracteres (literais)</p><p>concatenação positiva +</p><p>Também conhecida por “união de caracteres”.</p><p>14 UNIUBE</p><p>1.3.5 Principais funções matemáticas</p><p>Quadrado ( ) = retorna o quadrado de um número</p><p>Raiz ( ) = retorna a raiz quadrada de um número</p><p>Resto ( ) = retorna o resto da divisão entre dois</p><p>números inteiros</p><p>Quociente ( ) = retorna o quociente da divisão entre dois</p><p>números inteiros</p><p>Parte-inteira ( ) = retorna a parte inteira de número fracionário</p><p>Trunca ( ) = converte o tipo fracionário (real) para tipo</p><p>inteiro</p><p>1.3.6 Prioridade das operações</p><p>1º – parênteses ( )</p><p>2º – funções</p><p>3º – multiplicação / divisão</p><p>4º – adição / subtração</p><p>5º – operadores lógicos</p><p>Exemplos com operadores lógicos e aritméticos:</p><p>Considere os seguintes valores: A = 8, B = 13 e C = 3.</p><p>Os resultados das expressões serão:</p><p>FÓRMULA ANÁLISE RESULTADO</p><p>A = B e B > C F e V falso</p><p>A <> B ou B < C V ou F verdadeiro</p><p>não A > B Não F verdadeiro</p><p>A < B e B > C V e V verdadeiro</p><p>A >= B ou B = C F ou F falso</p><p>não A <= B Não V falso</p><p>A resto C = 1 F falso</p><p>A quociente C = 2 V verdadeiro</p><p>Parte-inteira (10.8) – 10.0</p><p>Trunca (10.8) – 10</p><p>A = C e A < B ou B > C F e V ou V verdadeiro</p><p>Os tipos fracionário e</p><p>inteiro serão</p><p>estudados ainda</p><p>neste capítulo.</p><p>UNIUBE 15</p><p>IMPORTANTE!</p><p>Para executar a fórmula da última linha, temos que ficar atentos quanto à prioridade</p><p>de execução, em que o operador lógico “E” é executado primeiro e depois o operador</p><p>lógico “OU”.</p><p>Você compreendeu como resolver fórmulas com os operadores? Neste ponto, es-</p><p>peramos que você seja capaz de resolvê-las, apontando o resultado correta-</p><p>mente.</p><p>1.3.7 Conceito de constantes</p><p>É um determinado valor fixo que não possui variação durante a execução do</p><p>algoritmo. Veja os exemplos:</p><p>• o valor de pi ( p ) na matemática é constante e seu valor é 3.1415;</p><p>• a média aritmética é a soma dos elementos dividido pela quantidade de</p><p>elementos.</p><p>EXEMPLIFICANDO!</p><p>Para calcular a média aritmética de 4 notas de um aluno, devemos somar as quatro</p><p>notas e dividir por 4. Nesse caso, o valor 4 é fixo, ou seja, é uma constante.</p><p>1.3.8 Conceito de variáveis</p><p>Variável na matemática é a representação simbólica de certa informação. Por</p><p>exemplo: sabemos que o DELTA de uma equação de segundo grau é dado pela</p><p>fórmula:</p><p>DELTA = B2 – 4 . A . C</p><p>IMPORTANTE!</p><p>Para executar a fórmula da última linha, temos que ficar atentos quanto à prioridade</p><p>de execução, em que o operador lógico “E” é executado primeiro e depois o operador</p><p>lógico “OU”.</p><p>Você compreendeu como resolver fórmulas com os operadores? Neste ponto, es-</p><p>peramos que você seja capaz de resolvê-las, apontando o resultado correta-</p><p>mente.</p><p>Para calcular a média aritmética de 4 notas de um aluno, devemos somar as quatro</p><p>notas e dividir por 4. Nesse caso, o valor 4 é fixo, ou seja, é uma constante.</p><p>16 UNIUBE</p><p>Vamos considerar os valores de A = 2, B = 6, C = 3. Então, a solução para tal</p><p>equação será substituir os valores de A, B e C, tendo assim:</p><p>Delta = 62 – 4 * 2 * 3</p><p>Delta = 36 – 24</p><p>Delta = 12</p><p>Os valores de A, B e C podem variar dependendo do exercício, ou seja, eles</p><p>sofrerão alterações ao longo do tempo.</p><p>IMPORTANTE!</p><p>Podemos, então, conceituar, em algoritmos, variáveis como sendo caixas (espaços)</p><p>de memória que irão receber um dado de cada vez.</p><p>Toda variável é identificada por um nome. Como nos exemplos anteriores, A, B, C e</p><p>DELTA são os nomes das variáveis que correspondem a quatro posições de memória.</p><p>1.3.9 Regras para dar nomes às variáveis</p><p>1) o nome deve começar sempre com uma letra;</p><p>2) não pode haver espaço em branco;</p><p>3) não se deve inserir acentos, nem cedilha, como “ç”.</p><p>4) não pode haver símbolos, exceto</p><p>o caractere _ (underline).</p><p>5) não pode haver nomes de palavras reservadas do algoritmo, como: quadrado,</p><p>raiz, leia, mostre, enquanto, entre outros.</p><p>Exemplo de nomes válidos:</p><p>Endereço nome x1</p><p>CPF Inss FGTS</p><p>Imposto_renda yx49 C</p><p>IMPORTANTE!</p><p>Podemos, então, conceituar, em algoritmos, variáveis como sendo caixas (espaços)</p><p>de memória que irão receber um dado de cada vez.</p><p>Toda variável é identificada por um nome. Como nos exemplos anteriores, A, B, C e</p><p>DELTA são os nomes das variáveis que correspondem a quatro posições de memória.</p><p>UNIUBE 17</p><p>Exemplo de nomes inválidos:</p><p>1x salário 1x1</p><p>endereço Imposto renda Canção</p><p>Nota do aluno 5senha Salário</p><p>IMPORTANTE!</p><p>Os nomes de comandos e de variáveis podem ser escritos em MAIÚSCULO e/ou</p><p>minúsculo ou pode haver a combinação deles, não havendo distinção.</p><p>1.3.10 Tipos de dados</p><p>As variáveis podem ser tratadas basicamente por cinco tipos:</p><p>• inteiro</p><p>recebe somente os números inteiros (positivos, negativos e o zero);</p><p>limite de armazenamento é de: – 32678 a +32677;</p><p>• inteiro-longo</p><p>recebe somente os números inteiros (positivos, negativos e o zero);</p><p>limite de armazenamento é de: – 2.147.483.648 a + 2.147.483.647;</p><p>• real</p><p>recebe todos os números inteiros e fracionários (positivos, negativos e o</p><p>zero);</p><p>limite de armazenamento é de: 2.9 * 10-39 a + 1.7 * 1038;</p><p>• lógicas</p><p>recebe somente valores lógicos (verdadeiro ou falso);</p><p>IMPORTANTE!</p><p>Os nomes de comandos e de variáveis podem ser escritos em MAIÚSCULO e/ou</p><p>minúsculo ou pode haver a combinação deles, não havendo distinção.</p><p>18 UNIUBE</p><p>• caracteres ou literais</p><p>recebe todos os tipos de informação, sejam elas: letras, símbolos, símbolos</p><p>numéricos, espaço em branco, DESDE que estejam entre aspas (simples ou</p><p>duplas).</p><p>Veja os exemplos, a seguir:</p><p>• ‘joão’</p><p>• ‘digite uma frase ....: ’</p><p>• ‘x3y9&@’</p><p>• ‘estamos trabalhando na obra literária’</p><p>1.3.11 Operação de atribuição</p><p>Forma de colocar um dado dentro de uma variável. Para representar a atribuição,</p><p>usaremos a seta para a esquerda ( ). Veja os exemplos:</p><p>1) x 2 4) nome ‘maria‘ 7) média soma / 3</p><p>2) x1 2.89 5) pi 3.1415 8) senha ‘r9mw47’</p><p>3) b x 6) resp verdadeiro 9) a 1000 * 10000</p><p>Analisando os exemplos anteriores, conseguimos identificar o tipo de cada</p><p>variável:</p><p>1) x é uma variável do tipo inteiro</p><p>2) x1 é uma variável do tipo real</p><p>3) b é uma variável do tipo inteiro (considerando o item 1)</p><p>4) nome é uma variável do tipo caracter</p><p>5) pi é uma variável do tipo real</p><p>6) resp é uma variável do tipo lógica</p><p>7) média é uma variável do tipo real</p><p>8) senha é uma variável do tipo caracter</p><p>9) a é uma variável do tipo inteiro-longo</p><p>UNIUBE 19</p><p>1.3.12 Comando de entrada</p><p>Para que possamos entrar com um dado na máquina através do teclado e o algo-</p><p>ritmo possa armazená-lo dentro de uma variável, utilizaremos um comando chamado</p><p>LEIA, acompanhado de parênteses e a variável dentro. Veja os exemplos:</p><p>Leia (nome)</p><p>Leia (cpf)</p><p>Leia (nota1)</p><p>1.3.13 Comando de saída</p><p>Forma de mostrarmos no vídeo mensagens e/ou conteúdo de variáveis. Vamos</p><p>chamá-lo de MOSTRE e deverá sempre estar acompanhado de parênteses e,</p><p>caso seja uma mensagem, ela deverá estar entre aspas simples; quando dese-</p><p>jarmos mostrar o conteúdo de uma variável, não podemos colocar aspas. Veja</p><p>os exemplos, a seguir:</p><p>mostre (‘digite o valor da nota1: ’)</p><p>leia (n1)</p><p>mostre (‘digite o valor da nota2: ’)</p><p>leia (n2)</p><p>mostre (‘digite o valor da nota3: ’)</p><p>leia (n3)</p><p>md (n1 + n2 + n3) / 3</p><p>mostre (‘resultado da média = ’, md)</p><p>SAIBA MAIS</p><p>Por meio do comando MOSTRE, é possível visualizar, no vídeo, mensagens e con-</p><p>teúdos de variáveis.</p><p>Variável não pode ter aspas.</p><p>Por meio do comando MOSTRE, é possível visualizar, no vídeo, mensagens e con-</p><p>teúdos de variáveis.</p><p>20 UNIUBE</p><p>O comando Mostre e o comando Leia normalmente são utilizados juntos, pois</p><p>o Mostre irá indicar, no vídeo, a mensagem para o usuário saber o que deverá</p><p>ser feito. Caso o usuário necessite entrar com alguma informação, o comando</p><p>Leia irá recebê-la e guardá-la em uma variável.</p><p>1.3.14 Comentários</p><p>Em qualquer parte do algoritmo, poderemos utilizar comentários com a finalidade</p><p>de aumentar a clareza de nosso pensamento (instruções). Esses comentários</p><p>deverão estar entre CHAVES. Os comentários facilitam a interpretação pelos</p><p>programadores.</p><p>Os comentários existentes no corpo dos programas (fontes) facilitam a leitura e</p><p>a interpretação por um outro programador que porventura necessite dar manu-</p><p>tenção ao referido programa. Só para exemplificar: imagine um algoritmo que</p><p>calcule e mostre o resultado das fórmulas a seguir:</p><p>X1 ( – b + ( raiz ( quadrado (b) – 4*a*c ) ) ) / ( 2 * a)</p><p>X2 ( – b – ( raiz ( quadrado (b) – 4*a*c ) ) ) / ( 2 * a)</p><p>Após a leitura das fórmulas, vem a pergunta: qual a função dessas fórmulas?</p><p>Com o comentário ficará assim:</p><p>{fórmulas para cálculo da equação de 2º grau}</p><p>X1 ( – b + ( raiz ( quadrado (b) – 4*a*c ) ) ) / ( 2 * a)</p><p>X2 ( – b – ( raiz ( quadrado (b) – 4*a*c ) ) ) / ( 2 * a)</p><p>Atente-se para os conceitos estudados até então.</p><p>AGORA É A SUA VEZ</p><p>Atividade 4</p><p>Considerando os conteúdos estudados, responda objetivamente as questões propos-</p><p>tas a seguir:</p><p>a) O que é variável?</p><p>Atividade 4</p><p>Considerando os conteúdos estudados, responda objetivamente as questões propos-</p><p>tas a seguir:</p><p>a) O que é variável?</p><p>UNIUBE 21</p><p>b) Qual é o símbolo que utilizamos para atribuir conteúdo a variáveis? Dê três exemplos.</p><p>c) Apresente o comando de entrada de dados e sua sintaxe.</p><p>d) Quais são os cinco tipos de dados?</p><p>e) Qual é o comando de saída de dados e qual é a sua sintaxe?</p><p>f) Quais são as regras para nomear as variáveis?</p><p>1.3.15 Estrutura de algoritmo</p><p>Vamos padronizar uma estrutura de algoritmos de forma que possamos utilizá-la</p><p>nos próximos módulos de estudo.</p><p>Observe, com atenção:</p><p>Observe que temos um</p><p>RECUO no bloco das</p><p>VARIÁVEIS e outro</p><p>recuo no bloco INÍCIO</p><p>e FIM.</p><p>Esse recuo chama-se</p><p>IDENTAÇÃO e serve</p><p>para facilitar a</p><p>visualização do início</p><p>e do fim de um conjunto</p><p>de códigos que fazem</p><p>parte de um mesmo</p><p>nível de execução.</p><p>algoritmo nome_tal {vamos dar um nome ao nosso algoritmo}</p><p>var {bloco para criar e determinar os tipos de variáveis}</p><p>a, b: inteiro</p><p>resp: logica</p><p>nome: caracter</p><p>{bloco do código principal}</p><p>inicio</p><p>{iniciar variáveis é bom para tirar lixo de memória e</p><p>sabermos qual o conteúdo inicial da variável}</p><p>A 0</p><p>B 0</p><p>resp verdadeiro</p><p>nome ‘ ’ {quando for caracter, irá receber</p><p>espaço em branco entre aspas}</p><p>{corpo do algoritmo, instruções e comandos}</p><p>comando 1</p><p>comando 2</p><p>comando 3</p><p>comando n</p><p>pausa</p><p>fim</p><p>22 UNIUBE</p><p>1.3.16 Estrutura sequencial e simulação</p><p>Em um algoritmo, os comandos deverão ser executados numa sequência linear,</p><p>seguindo o texto de cima para baixo.</p><p>A simulação é um teste que fazemos com valores diversos, a fim de confirmar</p><p>se a sequência de comandos está correta e bem definida. Criaremos uma tabela</p><p>com as variáveis e vamos entrar com valores e executar as instruções. No final,</p><p>teremos o resultado em cada variável.</p><p>Exemplo</p><p>a) Determine os valores finais de A, B e C, após a execução do trecho do algo-</p><p>ritmo na simulação apresentada a seguir:</p><p>ALGORITMO</p><p>Instrução 1 A 0</p><p>Instrução 2 B 1</p><p>Instrução 3 C A + B</p><p>Instrução 4 A A + 1</p><p>Instrução 5 B A + B + C</p><p>Instrução 6 A B * 3</p><p>Instrução 7 C C + A</p><p>VARIÁVEIS (SIMULAÇÃO)</p><p>A B C</p><p>0 1 1</p><p>1 3 10</p><p>9</p><p>O conteúdo final das variáveis foi: A = 9, B = 3, C = 10</p><p>Observe que a ordem de execução é muito importante, pois vamos simular um</p><p>erro executando a instrução 6 antes da instrução 5 da simulação anteriormente</p><p>apresentada:</p><p>ALGORITMO</p><p>Instrução 1 A 0</p><p>Instrução 2 B 1</p><p>Instrução 3 C A + B</p><p>UNIUBE 23</p><p>Instrução 4 A A + 1</p><p>Instrução 6 A B * 3</p><p>Instrução 5 B A + B + C</p><p>Instrução 7 C C + A</p><p>VARIÁVEIS</p><p>A B C</p><p>0 1 1</p><p>1 5 4</p><p>3</p><p>O conteúdo final das variáveis foi: A = 3, B = 5, C = 2</p><p>Note que todas as instruções foram executadas. Porém, as instruções 6 e 5</p><p>foram trocadas. Nessa troca, obtivemos um resultado diferente do resultado</p><p>esperado.</p><p>Desse momento em diante,</p><p>utilizaremos a estrutura do algoritmo para demons-</p><p>trar a sequência de passos necessária para solucionar um determinado tipo de</p><p>problema.</p><p>Acompanhe o seguinte processo:</p><p>1. Elabore um algoritmo que receba um número do tipo inteiro. Processe o qua-</p><p>drado desse número e mostre o resultado no vídeo.</p><p>Vamos interpretar o texto por etapas, visando extrair dados e variáveis. Procu-</p><p>raremos prever a sequência das ações necessárias:</p><p>1) quando lemos: “receba um número do tipo inteiro”, concluímos que:</p><p>a) a palavra “receber” nos diz que usaremos o comando LEIA, e, logicamente,</p><p>vamos precisar de uma variável para armazenar essa entrada. Vamos chamar</p><p>essa variável de entrada de “numero”;</p><p>b) a frase “tipo inteiro” nos informa que teremos que declarar/criar nossa variá-</p><p>vel do tipo inteiro.</p><p>24 UNIUBE</p><p>2) Quando lemos: “processar o quadrado desse número”, concluímos que:</p><p>a) utilizaremos a função “quadrado” ou, podemos ainda usar a lógica matemática,</p><p>multiplicando a variável por ela mesma (numero * numero). Uma dessas duas formas</p><p>irá proporcionar o resultado que queremos, então, teremos que declarar/criar uma</p><p>variável para armazenar esse resultado e vamos chamá-la de “resposta”.</p><p>b) E, finalmente, quando lemos: “mostrar o resultado no vídeo”, concluímos que</p><p>iremos utilizar o comando MOSTRE para sair com o resultado no vídeo.</p><p>Então, vamos agora montar o algoritmo!</p><p>IMPORTANTE!</p><p>Nome do algoritmo e nome de variáveis não podem ter acentos.</p><p>algoritmo quadrado_de_um_numero</p><p>var {bloco para criar e determinar os tipos de variáveis}</p><p>numero, resposta: inteiro</p><p>{código principal}</p><p>inicio</p><p>{iniciar variáveis é bom para tirar lixo de memória e sabermos qual o conteúdo inicial da</p><p>.........variável}</p><p>numero 0</p><p>resposta 0</p><p>{entrada de dados}</p><p>mostre (‘digite um número inteiro: ’)</p><p>leia (numero)</p><p>{fazendo o cálculo do quadrado}</p><p>resposta quadrado (numero)</p><p>{mostrando o resultado no vídeo}</p><p>mostre (‘o quadrado desse número é = ’, resposta)</p><p>mostre (‘acabou! ’)</p><p>pausa</p><p>fim</p><p>IMPORTANTE!</p><p>Nome do algoritmo e nome de variáveis não podem ter acentos.</p><p>UNIUBE 25</p><p>Veja a simulação do Exemplo 1:</p><p>VARIÁVEIS</p><p>numero resposta</p><p>0 0</p><p>5 25</p><p>O conteúdo final das variáveis é: numero = 5, resposta = 25. Com isso, o comando</p><p>‘mostre’ que está no final do algoritmo: mostre (‘o quadrado desse numero = ’,</p><p>resposta), irá mostrar no vídeo o conteúdo da variável ‘resposta’ = 25.</p><p>2. Elabore um algoritmo que receba dois números do tipo inteiro, respectiva-</p><p>mente, nas variáveis A e B. Processe a troca de seus conteúdos, ou seja,</p><p>o conteúdo inicial de A deverá estar em B e o conteúdo inicial de B deverá</p><p>estar em A.</p><p>DICAS</p><p>Caso a variável A receba 5 e a variável B receba 10, após o processamento de troca,</p><p>teremos: A = 10 e B = 5.</p><p>Façamos a leitura do problema proposto para definir as ações necessárias.</p><p>1) Quando lemos: “receba dois números tipo inteiro”, concluímos que:</p><p>a) usaremos o comando LEIA para receber os dados via teclado e, logicamente,</p><p>vamos precisar de duas variáveis para armazenar essas entradas, que, no caso,</p><p>são A e B, ambas do tipo inteiro.</p><p>2) Vamos pensar no processo e troca:</p><p>a) podemos fazer a troca conforme está apresentado a seguir? O que irá acon-</p><p>tecer?</p><p>I) A B</p><p>II) B A</p><p>Comando Leia irá</p><p>receber do teclado o</p><p>número que o usuário</p><p>digitou. Por exemplo,</p><p>o número 5.</p><p>Resultado do número</p><p>elevado ao quadrado.</p><p>DICAS</p><p>Caso a variável A receba 5 e a variável B receba 10, após o processamento de troca,</p><p>teremos: A = 10 e B = 5.</p><p>26 UNIUBE</p><p>Se dermos essas duas instruções, vamos perder o valor inicial da variável A.</p><p>Considere os seguintes valores: A = 10 e B = 5. Quando executamos a primeira</p><p>instrução, a variável A receberá o valor 5. Então, o valor 10 será sobreposto.</p><p>3) Para resolver o problema, uma terceira variável com o nome de “C” poderá ser</p><p>criada para auxiliar no processo de troca. Veja como ficará a sequência de troca:</p><p>I) C A</p><p>II) A B</p><p>III) B C</p><p>Com as instruções anteriores, trocamos o conteúdo de A e B, sem perder con-</p><p>teúdo.</p><p>Vamos ao algoritmo!</p><p>algoritmo troca_de_conteudo</p><p>var {bloco para criar e determinar os tipos de variáveis}</p><p>a, b, c: inteiro</p><p>{código principal}</p><p>inicio</p><p>{inicializar variáveis é bom para tirar lixo de memória e sabermos qual o conteúdo inicial</p><p>da variável}</p><p>a 0</p><p>b 0</p><p>c 0</p><p>{recebendo o valor de a e b via teclado}</p><p>mostre (‘digite um número para a variável a: ’)</p><p>leia (a)</p><p>mostre (‘digite um número para a variável b: ’)</p><p>leia (b)</p><p>{fazendo a troca de conteúdo}</p><p>c a</p><p>a b</p><p>b c</p><p>{mostrando o resultado no vídeo}</p><p>mostre (‘o novo conteúdo da variável a = ’, a)</p><p>mostre (‘o novo conteúdo da variável b = ’, b)</p><p>mostre (‘acabou! ’)</p><p>pausa</p><p>fim</p><p>UNIUBE 27</p><p>Veja a simulação do Exemplo 1:</p><p>VARIÁVEIS</p><p>A B C</p><p>0 0 0</p><p>23 7 23</p><p>7 23</p><p>INDICAÇÃO DE LEITURA</p><p>Sugerimos que você faça a leitura do Capítulo 2, “Estrutura sequencial”, do livro</p><p>Fundamentos da programação de computadores (ASCÊNCIO; CAMPOS, 2002).</p><p>Nessa leitura, você poderá aprofundar os conhecimentos sobre os conceitos apre-</p><p>sentados neste capítulo. Encontrará muitos exercícios resolvidos que podem lhe</p><p>ajudar na realização de suas atividades. Assim, compreenderá melhor:</p><p>• operadores (aritméticos, relacionais, lógicos);</p><p>• funções (quadrado, raiz, resto, quociente, parte inteira, trunca, dentre outras funções</p><p>muito utilizadas);</p><p>• constante;</p><p>• variável e regras de nomenclatura;</p><p>• tipos de dados e suas características;</p><p>• comando de atribuição;</p><p>• comando de entrada e saída;</p><p>• outros comentários.</p><p>AGORA É A SUA VEZ</p><p>Atividade 5</p><p>Elabore um algoritmo que receba um número inteiro, processe e mostre qual é o</p><p>dobro desse número.</p><p>Comando Leia,</p><p>RECEBENDO os</p><p>valores de A e B,</p><p>sendo 23 e 7,</p><p>respectivamente.</p><p>INDICAÇÃO DE LEITURA</p><p>Sugerimos que você faça a leitura do Capítulo 2, “Estrutura sequencial”, do livro</p><p>Fundamentos da programação de computadores (ASCÊNCIO; CAMPOS, 2002).</p><p>Nessa leitura, você poderá aprofundar os conhecimentos sobre os conceitos apre-</p><p>sentados neste capítulo. Encontrará muitos exercícios resolvidos que podem lhe</p><p>ajudar na realização de suas atividades. Assim, compreenderá melhor:</p><p>• operadores (aritméticos, relacionais, lógicos);</p><p>• funções (quadrado, raiz, resto, quociente, parte inteira, trunca, dentre outras funções</p><p>muito utilizadas);</p><p>• constante;</p><p>• variável e regras de nomenclatura;</p><p>• tipos de dados e suas características;</p><p>• comando de atribuição;</p><p>• comando de entrada e saída;</p><p>• outros comentários.</p><p>AGORA É A SUA VEZ</p><p>Atividade 5</p><p>Elabore um algoritmo que receba um número inteiro, processe e mostre qual é o</p><p>dobro desse número.</p><p>28 UNIUBE</p><p>Atividade 6</p><p>Elabore um algoritmo para calcular e mostrar o resultado do cálculo da área de um</p><p>círculo. Sabe-se que a fórmula é: área = p R2.</p><p>Atividade 7</p><p>Elabore um algoritmo que receba um número tipo real (com casa decimal diferente</p><p>de zero) processe e mostre:</p><p>a) qual é o valor da parte inteira desse número;</p><p>b) qual é o valor da parte decimal.</p><p>Exemplo:</p><p>Caso o número recebido via teclado seja 10.85, então teremos como respostas:</p><p>a) a parte inteira = 10.0</p><p>b) a parte decimal = 0.85</p><p>Atividade 8</p><p>Elabore um algoritmo para calcular e mostrar o resultado do cálculo da área de um</p><p>triângulo. Sabe-se que a fórmula é: área = (base * altura) / 2.</p><p>Atividade 9</p><p>Elabore um algoritmo que receba o valor do salário de um funcionário, processe e</p><p>mostre esse salário acrescido em 12%.</p><p>DICAS</p><p>Em algoritmo não podemos usar o símbolo de percentual (%), então vamos desmem-</p><p>brar essa informação para: 12 / 100 ou 0.12.</p><p>DICAS</p><p>Em algoritmo não podemos usar o símbolo de percentual (%), então vamos desmem-</p><p>brar essa informação para: 12 / 100 ou 0.12.</p><p>UNIUBE 29</p><p>AGORA É A SUA VEZ</p><p>Atividade 10</p><p>Elabore um algoritmo que receba um número do tipo real, processe e mostre:</p><p>a) o resultado desse número elevado ao cubo;</p><p>b) o resultado da raiz quadrada desse número;</p><p>c) o resultado da soma dos dois resultados anteriores.</p><p>DICAS</p><p>Não temos função para o cálculo do cubo. Para isso, devemos criar uma regra</p><p>matemática.</p><p>AGORA É A SUA VEZ</p><p>Atividade 11</p><p>Elabore um algoritmo que receba o valor que está depositado na caderneta de pou-</p><p>pança e a taxa de juros da caderneta de poupança para o mês. Em seguida, o algo-</p><p>ritmo deverá processar e mostrar:</p><p>a) o valor dos juros do mês;</p><p>b) o valor acumulado no mês, ou seja, o depósito anterior mais os juros calculados.</p><p>INDICAÇÃO DE LEITURA</p><p>ASCÊNCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi de. Es-</p><p>trutura condicional. In: _____. Fundamentos da programação de computadores.</p><p>São Paulo: Prentice Hall, 2002, p. 15-40.</p><p>Não temos função para o cálculo do cubo. Para isso, devemos criar uma regra</p><p>matemática.</p><p>AGORA É A SUA VEZ</p><p>Atividade 11</p><p>Elabore um algoritmo que receba o valor que está depositado na caderneta de pou-</p><p>pança e a taxa de juros da caderneta de poupança para o mês. Em seguida, o algo-</p><p>ritmo deverá processar e mostrar:</p><p>a) o valor dos juros do mês;</p><p>b) o valor acumulado no mês, ou seja, o depósito anterior mais os juros calculados.</p><p>INDICAÇÃO DE LEITURA</p><p>ASCÊNCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi de. Es-</p><p>trutura condicional. In: _____. Fundamentos da programação de computadores.</p><p>São Paulo: Prentice Hall, 2002, p. 15-40.</p><p>30 UNIUBE</p><p>Resumo</p><p>Neste capítulo iniciamos o estudo sobre algoritmos. Para tanto, enfocamos:</p><p>• o raciocínio lógico e as instruções matemáticas utilizadas nas soluções de</p><p>problemas;</p><p>• o algoritmo, enquanto conjunto de ações (instruções) bem definidas (objetivas</p><p>e claras), dadas em sequência, visando solucionar um determinado pro-</p><p>blema;</p><p>• os conceitos básicos necessários à compreensão da lógica computacional,</p><p>como: variáveis, constantes, estrutura de algoritmos, estruturas de programa-</p><p>ção, tipos de dados, operadores de atribuição.</p><p>• a estrutura sequencial exigida, ou seja, a execução de comandos serão feitas</p><p>de forma sequencial (cima para baixo);</p><p>• a simulação para verificação dos resultados obtidos após a execução de cada</p><p>comando.</p><p>Referências</p><p>ASCÊNCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi de.</p><p>Fundamentos da programação de computadores. São Paulo: Pearson Prentice Hall, 2002.</p><p>FARRER, Harry. Algoritmos estruturados. Rio de Janeiro: LTC, 1999.</p><p>FORBELLONE, André Luiz Villar. Lógica de programação: a construção de algoritmos e</p><p>estruturas de dados. São Paulo: Pearson Prentice Hall, 2005.</p><p>HOUAISS, Antonio. Dicionário Houaiss da Língua Portuguesa. Rio de Janeiro: Objetiva,</p><p>2007.</p><p>MANZANO, José Augusto. Algoritmos: lógica para desenvolvimento de programação. São</p><p>Paulo: Érika, 1996.</p><p>UNIUBE 31</p><p>Estrutura condicional e</p><p>estruturas de repetição</p><p>Capítulo</p><p>2</p><p>Daniela Resende Silva Orbolato / Ernani Cláudio Borges</p><p>Introdução</p><p>Caro(a) aluno(a),</p><p>Neste capítulo, daremos sequência aos nossos estudos de algoritmos</p><p>introduzindo conceitos de estrutura de condição e estruturas de</p><p>repetição.</p><p>É de fundamental importância que o conceito de algoritmo, a aplica-</p><p>ção dos comandos de entrada e saída e, principalmente, a estrutura</p><p>de algoritmo utilizando a forma sequencial estejam bem compreen-</p><p>didos por você, pois este capítulo irá complementar os seus estudos</p><p>anteriores.</p><p>Leia, com atenção, o texto e realize as atividades propostas. Não será</p><p>necessário o uso do computador para o desenvolvimento do presente</p><p>estudo, pois enfocaremos, nesse momento, a aplicação das estruturas</p><p>condicionais e de repetição, independentemente da linguagem de pro-</p><p>gramação a ser utilizada.</p><p>INDICAÇÃO DE LEITURA</p><p>Para aprofundar os conceitos e exemplos apresentados, sugerimos a leitura</p><p>dos capítulos 3, “Estrutura condicional”, e 4, “Estrutura repetição”, do livro</p><p>Fundamentos da programação de computadores de Ana Fernanda Go-</p><p>mes Ascêncio e Edilene Aparecida V. de Campos (2002).</p><p>INDICAÇÃO DE LEITURA</p><p>Para aprofundar os conceitos e exemplos apresentados, sugerimos a leitura</p><p>dos capítulos 3, “Estrutura condicional”, e 4, “Estrutura repetição”, do livro</p><p>Fundamentos da programação de computadores de Ana Fernanda Go-</p><p>mes Ascêncio e Edilene Aparecida V. de Campos (2002).</p><p>32 UNIUBE</p><p>Objetivos</p><p>Ao final deste capítulo, você deverá ser capaz de:</p><p>• identificar e utilizar as estruturas condicionais e as estruturas de</p><p>repetição;</p><p>• otimizar processos por meio de aperfeiçoamento da lógica de</p><p>programação, usando as estruturas de repetição.</p><p>Esquema</p><p>2.1 Algoritmos: retomando conceitos</p><p>2.2 Estrutura condicional</p><p>2.3 Estruturas de repetição</p><p>2.4 Validação</p><p>2.1 Algoritmos: retomando conceitos</p><p>Você se lembra da definição de variável? Qual é a função dos comandos mos-</p><p>tre e leia? Como é composta a estrutura dos algoritmos?</p><p>RELEMBRANDO</p><p>Vamos, então, a uma breve recordação:</p><p>• Variável é uma caixa (espaço) de memória que recebe um dado de cada vez e que</p><p>possui um nome. Relembremo-nos, também, de algumas regras para se dar nome</p><p>a variáveis:</p><p>1) o nome deve começar com uma letra ou underline (sublinhado);</p><p>2) não poderá haver espaço em branco, nem acentuação, nem cedilha;</p><p>3) não poderão existir símbolos, exceto o underline (sublinhado);</p><p>4) não poderá haver nome de palavra reservada do algoritmo, como: quadrado, raiz,</p><p>leia, mostre, enquanto, se, então, faça, entre outros.</p><p>• O comando mostre serve para mostrar ou escrever, no vídeo, uma mensagem ou</p><p>conteúdo de variável; e</p><p>Vamos, então, a uma breve recordação:</p><p>• Variável é uma caixa (espaço) de memória que recebe um dado de cada vez e que</p><p>possui um nome. Relembremo-nos, também, de algumas regras para se dar nome</p><p>a variáveis:</p><p>1) o nome deve começar com uma letra ou underline (sublinhado);</p><p>2) não poderá haver espaço em branco, nem acentuação, nem cedilha;</p><p>3) não poderão existir símbolos, exceto o underline (sublinhado);</p><p>4) não poderá haver nome de palavra reservada do algoritmo, como: quadrado, raiz,</p><p>leia, mostre, enquanto, se, então, faça, entre outros.</p><p>• O comando mostre serve para mostrar ou escrever, no vídeo, uma mensagem ou</p><p>conteúdo de variável; e</p><p>UNIUBE 33</p><p>• o comando leia irá receber uma informação pelo teclado e a armazenará em uma</p><p>variável.</p><p>Vamos recordar, também, a estrutura de um algoritmo:</p><p>Lembre-se: dentro das ASPAS simples e dentro das CHAVES podemos utilizar</p><p>acento, cedilha, símbolos, dentre outros caracteres.</p><p>algoritmo nome_tal {vamos dar um nome ao nosso algoritmo}</p><p>var {bloco para criar e determinar os tipos de variáveis}</p><p>a, b : inteiro</p><p>resp : logica</p><p>nome : caracter</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis é bom para tirar lixo de memória e sabermos qual o</p><p>conteúdo inicial da variável}</p><p>A 0</p><p>B 0</p><p>resp verdadeiro</p><p>nome ‘’ {quando for caracter, irá receber espaço em branco entre aspas}</p><p>{corpo do algoritmo, instruções e comandos}</p><p>Comando 1</p><p>Comando 2</p><p>Comando 3</p><p>....</p><p>pausa</p><p>fim</p><p>Observando a estrutura do algoritmo, vejamos a sequência padrão utilizada na</p><p>sua construção, ou seja, a:</p><p>• interpretação do texto do problema a ser resolvido visando extrair os dados;</p><p>• determinação das variáveis que serão utilizadas e de seus tipos (inteiro,</p><p>inteiro-longo, real, lógico e caractere);</p><p>• definição das informações que deverão ser fornecidas pelo usuário (por meio</p><p>do comando de entrada leia) e dos cálculos necessários;</p><p>a, b : inteiro</p><p>resp : logica</p><p>nome : caracter</p><p>a, b : inteiro a, b : inteiro</p><p>nome : caracter nome : caracter</p><p>{inicializar variáveis é bom para tirar lixo de memória e sabermos qual o {inicializar variáveis é bom para tirar lixo de memória e sabermos qual o</p><p>A A</p><p>B</p><p>resp resp</p><p>nome nome</p><p>{corpo do algoritmo, instruções e comandos}</p><p>Comando 1</p><p>Comando 2</p><p>Comando 3 Comando 3</p><p>....</p><p>{inicializar variáveis é bom para tirar lixo de memória e sabermos qual o {inicializar variáveis é bom para tirar lixo de memória e sabermos qual o</p><p>pausa pausa</p><p>34 UNIUBE</p><p>• previsão dos passos (instruções) a serem seguidos para solução do</p><p>problema;</p><p>• exibição dos resultados processados.</p><p>Resumindo, devemos:</p><p>1. criar as variáveis;</p><p>2. inicializar as variáveis;</p><p>3. receber os dados de entrada (comandos mostre e leia);</p><p>4. processar os dados (cálculos, fórmulas etc.);</p><p>5. escrever</p><p>por meio do comando mostre, no vídeo, os resultados processados;</p><p>6. pausar e finalizar o algoritmo.</p><p>Você é capaz de escrever um algoritmo sozinho? Verifique seu aprendizado.</p><p>Elabore um algoritmo que receba três números inteiros, processe e mostre</p><p>qual é a soma dos dois primeiros dividida pelo terceiro número e mostre esse</p><p>resultado.</p><p>2.2 Estrutura condicional</p><p>A estrutura condicional é muito importante, pois permite a escolha do conjunto</p><p>de instruções caso a condição seja verdadeira, ou ainda, outro conjunto de</p><p>instruções caso a condição seja falsa.</p><p>A estrutura condicional que vamos apresentar chama-se SE. Pode ser simples,</p><p>composta ou ainda as duas juntas, denominadas múltiplos.</p><p>A estrutura condicional SE pode ser utilizada a qualquer momento dentro do</p><p>corpo do algoritmo. Veja a sintaxe do SE (simples) a seguir.</p><p>Você é capaz de escrever um algoritmo sozinho? Verifique seu aprendizado.</p><p>UNIUBE 35</p><p>.</p><p>.</p><p>.</p><p>{estrutura SE simples – as instruções só serão executadas caso a condição</p><p>seja verdadeira}</p><p>se condicao entao</p><p>instrucao 1</p><p>instrucao 2</p><p>fim-se</p><p>.</p><p>.</p><p>.</p><p>pausa</p><p>fim</p><p>.</p><p>pausa</p><p>fim</p><p>As instruções 1 e 2 serão executadas somente quando a condição for verdadeira</p><p>e, caso seja falsa, saltamos o bloco SE e vamos direto para a primeira linha</p><p>abaixo do FIM-SE.</p><p>Analisemos agora a estrutura do SE composto:</p><p>.</p><p>.</p><p>.</p><p>{estrutura SE composto – as instruções 1 e 2 só serão executadas caso a</p><p>condição seja verdadeira; e caso a condição seja FALSA, será executada as</p><p>instruções 3 e 4}</p><p>se condicao entao</p><p>instrucao 1</p><p>instrucao 2</p><p>senao</p><p>instrucao 3</p><p>instrucao 4</p><p>fim-se</p><p>.</p><p>.</p><p>.</p><p>pausa</p><p>fim</p><p>instrucao 1</p><p>instrucao 2</p><p>instrucao 1 instrucao 1</p><p>instrucao 2 instrucao 2</p><p>instrucao 1</p><p>instrucao 2</p><p>instrucao 1 instrucao 1</p><p>instrucao 2 instrucao 2</p><p>instrucao 3</p><p>instrucao 4</p><p>instrucao 3 instrucao 3</p><p>instrucao 4 instrucao 4</p><p>36 UNIUBE</p><p>Veja que, para o SE composto, caso a condição seja verdadeira, serão execu-</p><p>tadas as instruções 1 e 2; senão (caso a condição seja falsa), serão executadas</p><p>as instruções 3 e 4.</p><p>IMPORTANTE!</p><p>Observe que fazemos uma tabulação quando estamos dentro do bloco INICIO e FIM</p><p>e, quando criamos a estrutura condicional simples ou composta, também fazemos o</p><p>recuo dentro de cada bloco SE e/ou dentro SENAO. Voltando à identação (recuo)</p><p>anterior, quando fechamos o bloco: esse recuo chama-se IDENTAÇÃO e é muito</p><p>importante nos algoritmos, pois, por meio dele, conseguimos visualizar a abertura do</p><p>bloco bem como seu fechamento.</p><p>Vamos utilizar a estrutura condicional SE em alguns exemplos. Veja:</p><p>Exemplo 1 (uso do SE):</p><p>Elaborar um algoritmo para receber o valor de raio de um círculo, processar o</p><p>cálculo da área e mostrar o resultado no vídeo. Sabe-se que a fórmula é: área</p><p>= p R2</p><p>Interpretando o texto, sabemos que:</p><p>• será necessário criar as variáveis: “area” e “raio”;</p><p>• será necessário inicializar as duas;</p><p>• trabalharemos com o valor de pi ( p ), que é constante = 3.1415;</p><p>• iremos receber o valor do raio via teclado;</p><p>• verificaremos se o valor do raio é válido ou inválido;</p><p>• caso seja válido, faremos o cálculo da área e mostrá-lo-emos no vídeo;</p><p>• caso seja inválido, vamos exibir uma mensagem no vídeo;</p><p>• determinaremos: pausa e fim.</p><p>IMPORTANTE!</p><p>Observe que fazemos uma tabulação quando estamos dentro do bloco INICIO e FIM</p><p>e, quando criamos a estrutura condicional simples ou composta, também fazemos o</p><p>recuo dentro de cada bloco SE e/ou dentro SENAO. Voltando à identação (recuo)</p><p>anterior, quando fechamos o bloco: esse recuo chama-se IDENTAÇÃO e é muito</p><p>importante nos algoritmos, pois, por meio dele, conseguimos visualizar a abertura do</p><p>bloco bem como seu fechamento.</p><p>UNIUBE 37</p><p>Observe que esta sequência é uma SIMULAÇÃO dos passos necessários para</p><p>o desenvolvimento do algoritmo.</p><p>Acompanhe!</p><p>algoritmo area_circulo {nome do nosso algoritmo}</p><p>var {bloco para criar e determinar os tipos de variáveis}</p><p>a, r : real</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>a 0</p><p>r 0</p><p>{corpo do algoritmo, instruções e comandos}</p><p>mostre (‘digite um valor para o raio maior que zero:’)</p><p>leia (r)</p><p>{verificando se o valor do raio é válido}</p><p>se r <= 0 entao</p><p>mostre (‘o valor do raio esta inválido... não pode ser zero e/ou</p><p>negativo’)</p><p>senao</p><p>a 3.1415 * quadrado (r)</p><p>mostre (‘área do círculo =’, a)</p><p>fim-se</p><p>mostre (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>Analisando a estrutura apresentada, em especial o bloco SE:</p><p>• Após receber o valor do raio, a estrutura CONDICIONAL SE pergunta se o</p><p>valor do raio é menor ou igual a zero. Caso a resposta seja verdadeira, então</p><p>será executada a instrução, mostrando que o valor é incorreto.</p><p>leia (r)</p><p>{verificando se o valor do raio é inválido}</p><p>se r <= 0 entao</p><p>mostre (‘o valor do raio é inválido... não pode ser zero e/ou negativo’)</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>a a</p><p>r r</p><p>{corpo do algoritmo, instruções e comandos} {corpo do algoritmo, instruções e comandos}</p><p>mostre ( mostre (</p><p>leia (r)</p><p>{verificando se o valor do raio é válido} {verificando se o valor do raio é válido}</p><p>se r <= 0 entao</p><p>mostre (</p><p>senao</p><p>mostre (</p><p>fim-se fim-se</p><p>mostre ( mostre (</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>pausa</p><p>mostre ( mostre ( mostre ( mostre ( mostre (</p><p>a</p><p>mostre ( mostre (</p><p>38 UNIUBE</p><p>• Caso a resposta da condição seja falsa, ou seja, o valor do raio NÃO seja</p><p>menor e nem igual a zero, serão executadas as instruções contidas dentro do</p><p>bloco SENAO.</p><p>senao</p><p>a 3.1415 * quadrado (r)</p><p>mostre (‘área do círculo =’, a)</p><p>fim-se</p><p>Exemplo 2 (uso do SE):</p><p>Elaborar um algoritmo que receba o valor do salário de um funcionário. Proces-</p><p>sar e mostrar esse salário acrescido em 12%.</p><p>IMPORTANTE!</p><p>Em algoritmo não podemos usar o símbolo de percentual (%). Então, vamos des-</p><p>membrar essa informação, podendo ser: 12/100 ou 0.12.</p><p>Interpretando o texto, sabemos que será necessário:</p><p>• criar as variáveis: sal (para receber valor do salário) e resp (para receber o</p><p>cálculo do aumento do salário);</p><p>• inicializar as duas;</p><p>• receber o valor do salário via teclado;</p><p>• verificar se o valor do salário é inválido ou válido;</p><p>• caso seja inválido, mostrar uma mensagem;</p><p>• caso seja válido, fazer o cálculo da área e mostrá-lo no vídeo;</p><p>• pausa e fim.</p><p>IMPORTANTE!</p><p>Em algoritmo não podemos usar o símbolo de percentual (%). Então, vamos des-</p><p>membrar essa informação, podendo ser: 12/100 ou 0.12.</p><p>UNIUBE 39</p><p>{nome do nosso algoritmo}</p><p>algoritmo salario</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>sal, resp : real</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>resp 0</p><p>sal 0</p><p>{corpo do algoritmo, instruções e comandos}</p><p>mostre (‘digite o valor do salário do funcionário:’)</p><p>leia (sal)</p><p>{verificando se o valor do raio é válido}</p><p>se sal <= 0 entao</p><p>mostre (‘o valor do salário não pode ser negativo ou zero... inválido....’)</p><p>senao</p><p>resp sal + ( sal * 12 / 100)</p><p>mostre (‘salário acrescido em 12% =’, resp)</p><p>fim-se</p><p>mostre (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>Exemplo 3 (uso do SE):</p><p>Elaborar um algoritmo que recebe dois números. Processar a verificação de</p><p>qual é o maior número mostrando seu valor no vídeo.</p><p>algoritmo maior {nome do nosso algoritmo}</p><p>var {bloco para criar e determinar os tipos de variáveis}</p><p>nr1, nr2 : real</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>nr1 0</p><p>nr2 0</p><p>{corpo do algoritmo, instruções e comandos}</p><p>mostre (‘digite o primeiro número:’)</p><p>leia (nr1)</p><p>mostre (‘digite o segundo número:’)</p><p>{inicializar variáveis}</p><p>resp resp</p><p>sal</p><p>{corpo do algoritmo, instruções e comandos}</p><p>mostre (</p><p>leia (sal) leia (sal)</p><p>{verificando se o valor do raio é válido} {verificando se o valor do raio é válido}</p><p>se sal <= 0 entao se sal <= 0 entao</p><p>mostre (</p><p>senao</p><p>resp resp</p><p>mostre (</p><p>fim-se fim-se</p><p>mostre ( mostre (</p><p>pausa</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>pausa pausa</p><p>mostre ( mostre ( mostre ( mostre ( mostre (</p><p>resp resp</p><p>mostre (</p><p>resp resp</p><p>mostre ( mostre (</p><p>nr1 nr1</p><p>nr2</p><p>{corpo do</p><p>algoritmo, instruções e comandos} {corpo do algoritmo, instruções e comandos}</p><p>mostre (</p><p>leia (nr1) leia (nr1)</p><p>mostre (</p><p>40 UNIUBE</p><p>leia (nr2)</p><p>{verificando se o valor do raio é válido}</p><p>se nr1 > nr2 entao</p><p>mostre (‘o primeiro número é o maior, e seu valor =’, nr1)</p><p>senao</p><p>se nr2 > nr2 entao</p><p>mostre (‘o segundo número é o maior, e seu valor =’, nr2)</p><p>senao</p><p>mostre (‘os dois números são iguais’)</p><p>fim-se</p><p>fim-se</p><p>mostre (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>Exemplo 4</p><p>Elaborar um algoritmo que receba o sexo (“m” para masculino ou ”f” para femi-</p><p>nino) e a altura (maior que zero) de uma pessoa. Processar e mostrar o peso</p><p>ideal dessa pessoa, utilizando a fórmula a seguir:</p><p>Caso o sexo masculino: peso = (72.7 * altura) – 58</p><p>Caso o sexo feminino: peso = (62.1 * altura) – 44.77</p><p>Para resolvermos o Exemplo 4, teremos que verificar as condições de validade</p><p>das informações para as variáveis sexo e altura, e, só depois, processarmos o</p><p>cálculo de acordo com o sexo.</p><p>Os passos podem ser:</p><p>• criar as variáveis;</p><p>• inicializar as variáveis;</p><p>• receber o sexo;</p><p>• verificar a validade da informação para sexo;</p><p>se nr1 > nr2 entao se nr1 > nr2 entao</p><p>mostre ( mostre (</p><p>senao senao</p><p>se nr2 > nr2 entao</p><p>mostre (</p><p>senao</p><p>mostre (</p><p>fim-se</p><p>fim-se</p><p>mostre (</p><p>pausa</p><p>leia (nr2)</p><p>pausa pausa</p><p>mostre ( mostre ( mostre ( mostre ( mostre (</p><p>se nr2 > nr2 entao se nr2 > nr2 entao</p><p>mostre ( mostre (</p><p>senao senao</p><p>mostre ( mostre (</p><p>fim-se</p><p>se nr2 > nr2 entao se nr2 > nr2 entao</p><p>fim-se</p><p>mostre ( mostre ( mostre ( mostre ( mostre (</p><p>mostre ( mostre ( mostre ( mostre ( mostre (</p><p>UNIUBE 41</p><p>• caso o sexo seja válido, receber a altura;</p><p>• verificar a validade da informação para altura;</p><p>• caso a altura seja válida, verificar se o sexo é masculino ou feminino e pro-</p><p>cessar os cálculos conforme essa informação;</p><p>• pausa/fim de algoritmo.</p><p>Observe a estrutura a seguir:</p><p>algoritmo peso_ideal {nome do nosso algoritmo}</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>peso, alt : real</p><p>sx : caracter</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>alt 0</p><p>peso 0</p><p>sx ‘ ’</p><p>{corpo do algoritmo, instruções e comandos}</p><p>mostre (‘digite o sexo dessa pessoa, m ou f ...:’)</p><p>leia (sx)</p><p>se (sx <> ‘f’) e (sx <> ‘m’) então</p><p>mostre (‘sexo inválido ....’)</p><p>senao</p><p>mostre (‘digite a altura da pessoa ..:’)</p><p>leia (alt)</p><p>se alt <= 0 entao</p><p>mostre (‘altura inválida ...’)</p><p>senao</p><p>se sx = ‘m’ então</p><p>peso (72.7 * altura) – 58</p><p>senao</p><p>peso, alt : real</p><p>sx : caracter</p><p>{bloco do código principal}</p><p>peso, alt : real peso, alt : real</p><p>{bloco do código principal} {bloco do código principal}</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>alt</p><p>peso</p><p>sx sx</p><p>{corpo do algoritmo, instruções e comandos} {corpo do algoritmo, instruções e comandos}</p><p>mostre ( mostre (</p><p>leia (sx)</p><p>se (sx <></p><p>mostre ( mostre (</p><p>senao</p><p>mostre (</p><p>leia (alt)</p><p>se alt <= 0 entao</p><p>mostre ( mostre (</p><p>senao senao</p><p>se sx = se sx =</p><p>peso peso</p><p>senao</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>Observe o SE e o</p><p>SENAO; após</p><p>executar uma</p><p>dessas sequências</p><p>de instruções, a</p><p>próxima sequência</p><p>de comandos será</p><p>aquela que vem</p><p>após o último</p><p>fim-se, quando será</p><p>exibida a palavra</p><p>‘Acabou...’.</p><p>mostre ( mostre ( mostre ( mostre ( mostre (</p><p>mostre ( mostre (</p><p>leia (alt)</p><p>se alt <= 0 entao se alt <= 0 entao</p><p>mostre ( mostre (</p><p>senao senao</p><p>se sx = se sx =</p><p>peso peso</p><p>senao</p><p>mostre ( mostre (</p><p>mostre ( mostre ( mostre ( mostre ( mostre (</p><p>peso peso</p><p>senao</p><p>se sx = se sx =</p><p>peso peso peso peso peso</p><p>42 UNIUBE</p><p>peso = (62.1 * altura) – 44.77</p><p>fim-se</p><p>mostre (‘O peso ideal para esta pessoa é =’, peso)</p><p>fim-se</p><p>fim-se</p><p>mostre (‘Acabou ...’)</p><p>pausa</p><p>fim</p><p>Exemplo 5 (uso do SE)</p><p>Elaborar um algoritmo que receba três notas de um aluno (finalizar o processamento</p><p>quando a nota for inferior a 0 ou superior a 10, informando qual nota foi digitada</p><p>errada). Processar o cálculo da média aritmética e mostrar uma das mensagens a</p><p>seguir: APROVADO para média superior ou igual a 6,0; RECUPERAÇÃO para</p><p>média inferior a 6 e maior ou igual a 4 e REPROVADO para média inferior a 4.</p><p>algoritmo media_notas {nome do nosso algoritmo}</p><p>{bloco para criar e determinar os tipos de variáveis}</p><p>var</p><p>n1, n2, n3, md : real</p><p>{bloco do código principal}</p><p>inicio</p><p>{inicializar variáveis}</p><p>n1 0</p><p>n2 0</p><p>n3 0</p><p>md 0</p><p>{corpo do algoritmo, recebendo e verificando as entradas e só receber a</p><p>próxima nota caso a anterior seja válida}</p><p>mostre (‘digite a primeira nota ...’)</p><p>leia (n1)</p><p>se (n1 < 0) ou (n1 > 10) então</p><p>mostre (‘a nota 1 está incorreta... finalizando...’)</p><p>senao</p><p>mostre (‘digite a segunda nota ...’)</p><p>leia (n2)</p><p>se (n2 < 0) ou (n2 > 10) entao</p><p>mostre (‘a nota 2 está incorreta... finalizando...’)</p><p>senao</p><p>peso = (62.1 * altura) – 44.77 peso = (62.1 * altura) – 44.77 peso = (62.1 * altura) – 44.77 peso = (62.1 * altura) – 44.77 peso = (62.1 * altura) – 44.77 peso = (62.1 * altura) – 44.77 peso = (62.1 * altura) – 44.77</p><p>fim-se</p><p>mostre ( mostre (</p><p>fim-se fim-se</p><p>fim-se fim-se</p><p>mostre ( mostre (</p><p>pausa pausa pausa</p><p>peso = (62.1 * altura) – 44.77 peso = (62.1 * altura) – 44.77</p><p>fim-se</p><p>mostre (</p><p>fim-se fim-se fim-se</p><p>peso = (62.1 * altura) – 44.77 peso = (62.1 * altura) – 44.77</p><p>fim-se fim-se</p><p>mostre (</p><p>peso = (62.1 * altura) – 44.77 peso = (62.1 * altura) – 44.77</p><p>n1, n2, n3, md : real n1, n2, n3, md : real n1, n2, n3, md : real n1, n2, n3, md : real n1, n2, n3, md : real</p><p>Observe que temos RECUOS no</p><p>bloco das VARIÁVEIS, no bloco</p><p>INICIO e FIM e nos blocos SE e</p><p>SENAO. Este recuo é chamado de</p><p>IDENTAÇÃO e serve para</p><p>visualizarmos melhor a abertura e o</p><p>fechamento do bloco, e os itens ou</p><p>linhas que o compõem.</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>n1 n1</p><p>n2 n2</p><p>n3</p><p>md</p><p>{corpo do algoritmo, recebendo e verificando as entradas e só receber a</p><p>mostre ( mostre (</p><p>leia (n1) leia (n1)</p><p>se (n1 < 0) ou (n1 > 10) então</p><p>mostre (</p><p>senao</p><p>mostre ( mostre (</p><p>leia (n2)</p><p>se (n2 < 0) ou (n2 > 10) entao</p><p>mostre ( mostre (</p><p>senao</p><p>{inicializar variáveis} {inicializar variáveis}</p><p>mostre ( mostre (</p><p>leia (n2)</p><p>se (n2 < 0) ou (n2 > 10) entao</p><p>mostre ( mostre (</p><p>senao</p><p>mostre ( mostre (</p><p>mostre ( mostre ( mostre ( mostre ( mostre (</p><p>UNIUBE 43</p><p>mostre (‘digite a terceira nota ...’)</p><p>leia (n3)</p><p>se (n3 < 0) ou (n3 > 10) entao</p><p>mostre (‘a nota 3 está incorreta... finalizando...’)</p><p>senão</p><p>md (n1 + n2 + n3) / 3</p><p>mostre (‘a média foi =’, md)</p><p>{verificando se aprovado, recuperação ou reprovado}</p><p>se md >= 6 entao</p><p>mostre (‘ aprovado’)</p><p>senão</p><p>se md >= 4 entao</p><p>mostre (‘recuperação’)</p><p>senão</p><p>mostre (‘reprovado’)</p><p>fim-se</p><p>fim-se</p><p>fim-se</p><p>fim-se</p><p>fim-se</p><p>mostre (‘acabou ...’)</p><p>pausa</p><p>fim</p><p>INDICAÇÃO DE LEITURA</p><p>Sugerimos agora a leitura do Capítulo 3, “Estrutura condicional”, do livro Fundamen-</p><p>tos da programação de computadores (ASCÊNCIO; CAMPOS, 2002). A leitura</p><p>permitirá a visualização de detalhes importantes relacionados aos conceitos já apre-</p><p>sentados até este momento sobre estrutura condicional. Nessa obra temos vários</p><p>exercícios e as respectivas soluções. As autoras trazem uma abordagem acerca dos</p><p>fundamentos da programação de computadores, enfocando a estrutura condicional</p><p>como uma forma de verificar a possibilidade de processar uma informação ou não,</p><p>em problemas matemáticos e computacionais.</p><p>mostre ( mostre (</p><p>leia (n3) leia (n3)</p><p>se (n3 < 0) ou (n3 > 10) entao</p><p>mostre (</p><p>senão</p><p>md</p><p>mostre (</p><p>{verificando se aprovado, recuperação ou reprovado}</p><p>se md >= 6 entao</p><p>mostre (</p><p>senão senão</p><p>se md >= 4 entao</p><p>mostre ( mostre (</p><p>senão senão</p><p>mostre (</p><p>fim-se</p><p>fim-se</p><p>fim-se fim-se</p><p>fim-se fim-se</p><p>fim-se</p><p>mostre (</p><p>pausa pausa pausa</p><p>mostre ( mostre (</p>