Você está na página 1de 204

Linguagens e técnicas de

programação, volume 1
Eletricidade aplicada e
equipamentos eletroeletrônicos,
volume 1

Daniela Resende Silva Orbolato

Ernani Cláudio Borges

Márcio Aparecido Arruda

Florisvaldo Cardozo Bomfim Júnior

Virgílio de Melo Langoni


© 2017 by Universidade de Uberaba

Todos os direitos reservados. Nenhuma parte desta publicação poderá ser


reproduzida ou transmitida de qualquer modo ou por qualquer outro meio, eletrônico
ou mecânico, incluindo fotocópia, gravação ou qualquer outro tipo de sistema de
armazenamento e transmissão de informação, sem prévia autorização, por escrito,
da Universidade de Uberaba.

Universidade de Uberaba

Reitor
Marcelo Palmério

Pró-Reitor de Educação a Distância


Fernando César Marra e Silva

Coordenação de Graduação a Distância


Sílvia Denise dos Santos Bisinotto

Editoração e Arte
Produção de Materiais Didáticos-Uniube
Projeto da capa
Agência Experimental Portfólio

Edição
Universidade de Uberaba
Av. Nenê Sabino, 1801 – Bairro Universitário

Catalogação elaborada pelo Setor de Referência da Biblioteca Central Uniube

L647 Linguagens e técnicas de programação, volume 1 ; Eletricidade


aplicada e equipamentos eletroeletrônicos, volume 1 / Daniela Resende
Silva Orbolato ... [et al.]. – Uberaba : Universidade de Uberaba,
2017.
204 p. : il.

Programa de Educação a Distância – Universidade de


Uberaba. Inclui bibliografia.
ISBN 978-85-7777-706-8

1. Programação (Computadores). 2. Linguagem de


programação
(Computadores). 3. Eletricidade. 4. Eletricidade – Equipamento e
acessórios. I. Orbolato, Daniela Resende Silva. II. Universidade de
Uberaba. Programa de Educação a Distância.
CDD 005.13
Sobre os autores

Daniela Resende Silva Orbolato

Mestre em Ciência da Computação pela Universidade Federal de São Carlos,


gradua­da em Ciência da Computação pela Universidade Federal de Uberlândia.
Professora do ensino básico, técnico e tecnológico do Instituto Federal de Educação,
Ciência e Tecnologia do Triângulo Mineiro. Tem experiência na área de Ciência da
Computação, com ênfase em Metodologia e Técnicas da Computação.

Ernani Cláudio Borges

Especialista em Formação de Professores em Educação a Distância pela Uni-


versidade Federal do Paraná – UFPR. Especialista em Análise de Sistemas pela
Universidade de Ribeirão Preto (SP) – Unaerp. Graduado em Tecnologia de
Processamento de Dados pela Universidade de Uberaba – Uniube. Professor
da Universidade de Uberaba – Uniube – e do Centro Federal de Educação Tec-
nológica de Uberaba – Cefet. Coordenador do Curso Superior de Tecnologia em
Análise e Desenvolvimento de Sistemas, no Cefet.

Florisvaldo Cardozo Bomfim Júnior

Bacharel em Engenharia da Computação e Engenharia Elétrica, com ênfase em


Automação Industrial, pela Universidade de Uberaba – Uniube. Formação em
diferentes cursos na área tecnológica e industrial. Professor nos cursos da área
de tecnologia na Universidade de Uberaba.

Márcio Aparecido Arruda

Engenheiro eletricista pela Universidade de Uberaba – Uniube. Professor titu-


lar nos cursos de Engenharia da Universidade de Uberaba. Tem experiência
na área de Engenharia Elétrica, com especialidade em sistemas elétricos de
potência.
IV UNIUBE

Virgílio de Melo Langoni

Mestre e graduado em Engenharia Elétrica pela Universidade Federal de Uber-


lândia. Professor da Universidade de Uberaba – Uniube. Tem experiência na
área de Engenharia Elétrica, com ênfase em Circuitos Eletrônicos e Inteligência
Artificial.
Sumário

Parte I Linguagens e técnicas de programação, volume 1........................1

Apresentação....................................................................................................3

Capítulo 1 L
 ógica de programação, instruções matemáticas e tipos
de dados..........................................................................................5
1.1 Introdução à lógica de programação..............................................................................6
1.2 Algoritmos..................................................................................................................... 11
1.3 Itens fundamentais da composição da estrutura de algoritmos...................................12
1.3.1 Operadores aritméticos.......................................................................................12
1.3.2 Operadores lógicos.............................................................................................12
1.3.3 Operadores relacionais.......................................................................................13
1.3.4 Operadores caracteres (literais)..........................................................................13
1.3.5 Principais funções matemáticas..........................................................................14
1.3.6 Prioridade das operações...................................................................................14
1.3.7 Conceito de constantes.......................................................................................15
1.3.8 Conceito de variáveis..........................................................................................15
1.3.9 Regras para dar nomes às variáveis...................................................................16
1.3.10 Tipos de dados..................................................................................................17
1.3.11 Operação de atribuição.....................................................................................18
1.3.12 Comando de entrada.........................................................................................19
1.3.13 Comando de saída............................................................................................19
1.3.14 Comentários......................................................................................................20
1.3.15 Estrutura de algoritmo.......................................................................................21
1.3.16 Estrutura sequencial e simulação.....................................................................22
VI UNIUBE

Capítulo 2 E
 strutura condicional e estruturas de repetição.............................31
2.1 Algoritmos: retomando conceitos.................................................................................32
2.2 Estrutura condicional....................................................................................................34
2.3 Estruturas de repetição................................................................................................46
2.4 Validação......................................................................................................................60

Capítulo 3 L
 inguagem de programação PascalZim e modularização.............75
3.1 Comandos do aplicativo PascalZim.............................................................................76
3.1.1 Itens fundamentais para compor a estrutura de algoritmos................................78
3.1.2 Estrutura sequencial............................................................................................82
3.1.3 Estrutura condicional...........................................................................................83
3.1.4 Estruturas de repetição.......................................................................................91
3.2 Modularização............................................................................................................106
3.2.1 Procedimento (procedure).................................................................................106
3.2.2 Função (function).............................................................................................. 111

Parte II Eletricidade aplicada e equipamentos


eletroeletrônicos, volume 1.........................................................121

Apresentação................................................................................................123

Capítulo 4 Introdução à eletricidade..............................................................125


4.1 Sistema Internacional de Medidas, arredondamento e potência de dez...................127
4.1.1 Histórico das unidades de medidas..................................................................128
4.1.2 Sistema Internacional de Medidas – SI.............................................................130
4.1.3 Algarismos significativos...................................................................................131
4.1.4 Erros..................................................................................................................131
4.1.5 Arredondamento................................................................................................134
4.1.6 Notação científica..............................................................................................134
4.1.7 Prefixos do Sistema Internacional.....................................................................136
4.2 Corrente e tensão.......................................................................................................137
4.2.1 Condutores e isolantes......................................................................................138
4.2.2 Corrente elétrica................................................................................................139
4.2.3 Tensão...............................................................................................................142
UNIUBE  VII
4.3 Resistência.................................................................................................................146
4.3.1 Resistência em condutores...............................................................................146
4.3.2 Condutância......................................................................................................148
4.3.3 Aspectos construtivos dos resistores................................................................148
4.3.4 Coeficiente de temperatura α............................................................................151

Capítulo 5 L
 ei de Ohm e análise de circuitos elétricos.................................155
5.1 Conhecendo a Lei de Ohm........................................................................................156
5.1.1 Potência e energia............................................................................................158
5.2 Circuitos em série.......................................................................................................161
5.2.1 Resistência total em um circuito em série.........................................................162
5.2.2 Resistência e potência em um circuito em série...............................................162
5.2.3 Lei de Kirchhoff para tensão (LKT)...................................................................165
5.2.4 Fontes de tensão em série................................................................................166
5.2.5 Regras do divisor de tensão..............................................................................166
5.2.6 Resistência interna das fontes de tensão.........................................................167
5.3 Circuitos em paralelo..................................................................................................169
5.3.1 Elementos em paralelo......................................................................................169
5.3.2 Condutância e resistência totais.......................................................................170
5.3.3 Tensão e corrente em circuitos em paralelo......................................................172
5.3.4 Lei de Kirchhoff para corrente...........................................................................173
5.3.5 Regra do divisor de corrente.............................................................................174
5.3.6 Fontes de tensão em paralelo...........................................................................175
5.4 Circuitos em série‑paralelo.........................................................................................177
5.4.1 Resolução de circuito aplicando matriz.............................................................182
Parte I

Linguagens e técnicas
de programação, volume 1
Apresentação

Prezado(a) aluno(a),

Neste componente, contaremos com 3 capítulos que são:

• Lógica de programação, instruções matemáticas e tipos de dados;

• Estrutura condicional e estruturas de repetição;

• Linguagem de programação PascalZim e modularização.

No Capítulo 1, você iniciará seus estudos sobre lógica computacional. Para


tanto, faremos uma introdução à lógica de programação e seu uso na resolução
de problemas cotidianos por meio da criação de algoritmos com instruções
matemáticas. Também neste capítulo, são descritos os itens fundamentais para
compor a estrutura de um algoritmo. As definições desses itens são acompa-
nhadas de exemplos que facilitam o aprendizado e de exercícios para fixação
do conhecimento.

No Capítulo 2, você estudará as estruturas de controle do fluxo de execução de


um algoritmo, chamadas de estruturas condicionais e estruturas de repetição.
Ao longo do capítulo, a utilização dessas estruturas na resolução de problemas
é discutida e vários exemplos são apresentados com o objetivo de levá‑lo a
distinguir as situações em que as mesmas são necessárias e aplicáveis.

No Capítulo 3, o ensino de algoritmos passa a ser instrumentalizado com o uso


da ferramenta de programação PascalZim, tornando possível a você escrever,
implementar e executar algoritmos em um computador, materializando as solu-
ções dos problemas já vistos. Neste contexto, apresentaremos as sintaxes dos
itens fundamentais de um algoritmo na linguagem PascalZim. Também são in-
troduzidos os conceitos de modularização de programas que têm por objetivo
estruturar melhor o algoritmo, possibilitando o reuso de trechos de programas
mais facilmente.
Lógica de
Capítulo Fonética: a sonoridade
programação,
1 da língua inglesa
instruções matemáticas
e tipos de dados
Newton Gonçalves Garcia / Renata de Oliveira

Daniela Resende Silva Orbolato / Ernani Cláudio Borges


Introdução
Iniciamos, aqui, parte fundamental da sua formação como professor de
Introdução
língua inglesa: a fonética. Porém, além de se dedicar ao estudo dessa
Caro(a)
importante aluno(a),
faceta da língua, você deve se preparar para ensiná-la ao
seu grupo de alunos.
Iniciaremos o estudo de algoritmos com informações que lhe permitirão
utilizar,
Você que de já
forma adequada
iniciou ou iniciae agora
eficiente,
seusosestudos
conhecimentos deste
da língua assunto
inglesa cer-
tanto
tamenteemjáseu cotidiano
teve quanto
dificuldades comemasuas atividades
pronúncia dessedeidioma.
desenvolvimento
Isso é algo
de softwares.
esperado de ocorrer já que se trata de um idioma com origens na língua
anglo-saxã, portanto, com características distintas de nosso idioma de
Leia,
origem com atenção, o texto e realize todas as atividades propostas. Não
latina.
será necessário, neste momento, o uso do computador, pois iremos traba-
lhar
Apesaro raciocínio lógico, com
desse aspecto, os conceitos
por meio de técnicas
do estudo de programação.
da fonética, é possível con-
seguir uma pronúncia inteligível aos falantes nativos e não nativos do
idioma, como frisa Underhill (200?, p.92) em:
INDICAÇÃO DE LEITURA

Para aprofundar osThe


conceitos
aim ofepronunciation
exemplos apresentados, sugerimos
teaching can a leitura
no longer be to get
do capítulo “Estrutura sequencial” do livro Fundamentos da programação
students to sound [...] like native speakers, or more like the
de computadores de Ana Fernanda Gomes Ascêncio e Edilene Aparecida
teacher […]. The primary aim must be to help learners to com-
V. de Campos (2002).
municate successfully when they listen or speak in English,
often with other non-native speakers.

O objetivo do ensino da pronúncia não pode ser mais fazer com que
Objetivos
os alunos soem como falantes nativos ou como seu professor. O
Ao final deste
objetivo capítulo,
primário devevocê
ser deverá
ajudar ser
os capaz de: a se comunicar
aprendizes
com
• analisar diferentes tipos de problemas;
• criar soluções a partir do processo de abstração de um determi-
nado problema, utilizando recursos matemáticos;
6 UNIUBE

• entender os conceitos de algoritmo e estrutura sequencial;


• aplicar estruturas básicas de algoritmos na solução de problemas,
por meio de uma organização lógica e metodológica e fazer uso
eficiente e eficaz da lógica no desenvolvimento de programas
em diversas linguagens de programação.

Esquema
1.1 Introdução à lógica de programação
1.2 Algoritmos
1.3 Itens fundamentais da composição da estrutura de algoritmos
1.3.1 Operadores aritméticos
1.3.2 Operadores lógicos
1.3.3 Operadores relacionais
1.3.4 Operadores caracteres (literais)
1.3.5 Principais funções matemáticas
1.3.6 Prioridade das operações
1.3.7 Conceito de constantes
1.3.8 Conceito de variáveis
1.3.9 Regras para dar nomes às variáveis
1.3.10 Tipos de dados
1.3.11 Operação de atribuição
1.3.12 Comando de entrada
1.3.13 Comando de saída
1.3.14 Comentários
1.3.15 Estrutura de algoritmo
1.3.16 Estrutura sequencial e simulação

1.1 Introdução à lógica de programação


Um dos objetivos da lógica é estabelecer uma linguagem, por meio da qual
podemos expressar, com clareza e precisão, a sequência de ações para so-
lucionar um determinado problema. Em nosso cotidiano, deparamo‑nos com
diversos problemas que exigem soluções rápidas e racionalizadas, sendo que,
nesses momentos, temos que expressar nosso pensamento de forma clara, obje-
tiva e organizada.

Segundo Forbellone (2005, p. 2), poderíamos dizer que lógica é a “arte de bem
pensar”. Vamos considerar a “arte de bem pensar” como sendo a organização
UNIUBE  7

do pensamento e vamos perceber que, quando temos um problema, consegui-


mos criar estratégias, ações passo a passo e, assim, executando as ações de
forma sequencial, chegamos à resolução do problema.

No primeiro momento de nosso estudo, vamos analisar a lógica não computa-


cional, com exemplos de matemática e do nosso dia a dia, visando criar uma
sequência de ações de forma que qualquer pessoa possa “seguir essas instru-
ções” e solucionar problemas.

Faremos, ao longo deste capítulo, várias atividades, a fim de, gradativamente,


chegarmos à lógica da programação.

Exemplo

1. Uma pessoa possui uma garrafa com 5 litros de gasolina. Ela necessita se-
parar 4 litros desse produto e só pode utilizar 3 garrafas, sendo que: uma é
a que está cheia (a que tem 5 litros será chamada de garrafa “A”) e mais duas
garrafas, que suportam 3 e 2 litros, que estão vazias. São, respectivamente,
a garrafa “B” e a garrafa “C”. As três garrafas (A, B e C) não possuem marcas
de medida. A única certeza é que elas suportam 5, 3 e 2 litros. Além disso,
não podemos utilizar nenhum tipo de auxílio de outros equipamentos. Então,
nosso único recurso é despejar a gasolina nas garrafas até conseguir separar
os 4 litros desejados.

Veja que uma possível solução está descrita a seguir. Tente acompanhar o ra-
ciocínio lógico de cada instrução.

Passo 1: encher a garrafa B com a gasolina da garrafa A.

Passo 2: encher a garrafa C com a gasolina da garrafa B.

Passo 3: despejar a gasolina da garrafa C na garrafa A.

Acompanhe, a seguir, a análise do raciocínio lógico das instruções anteriores:

1) após executar o passo 1, teremos 2 litros na garrafa A e 3 litros na garrafa B;

2) após executar o passo 2, teremos 2 litros na garrafa A, 1 litro na garrafa B e


2 litros na garrafa C;

3) após executar o passo 3, teremos 4 litros na garrafa A e 1 litro na garrafa B.


8 UNIUBE

Se você acompanhou atentamente o raciocínio lógico dessas instruções, deve


ter compreendido a resolução.

Agora, elabore instruções do tipo passo a passo, para resolver a situação-


-problema, a seguir:

2. Certa regra foi aplicada nos quadrantes numéricos, a seguir. Faça a análise
da tabela de forma que você consiga completar a próxima. Observe que a
regra é aplicada tanto na vertical quanto na horizontal.

15 3 5
5 1 5
3 3 1

Baseando-se no raciocínio lógico desses quadrantes, determine os números


que estão faltando nos quadrantes, a seguir.

24 4 6
6 1
4 1

Observe com muita atenção. Em seguida, descreva os passos para a solução


do problema. Tentou? Conseguiu? Que bom!

Você deve ter pegado o elemento da primeira linha, da primeira coluna, e dividido
pelo elemento da segunda linha, primeira coluna. Ou seja: 24 ÷ 6 = 4.

Em seguida, você deve ter pegado o elemento da segunda coluna, primeira linha
e dividido pelo elemento da segunda linha da mesma coluna. Então, você con-
firmou que é o elemento 4, pois 4 ÷ 1 = 4. Assim, deve ter chegado à conclusão
de que o elemento 6 é o que ocupará a segunda linha, da terceira coluna, pois
6 ÷ 6 = 1.

AGORA É A SUA VEZ

Atividade 1

Considerando os fundamentos de um raciocínio lógico, analise, atentamente, a


sequência de números apresentada a seguir. Você perceberá que há uma lógica
na sequência. Em seguida, complete as duas últimas linhas com seus respectivos
números.
UNIUBE 9

1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36

Exemplo

Analise, atentamente, a sequência de números e determine qual será o próximo


número. Escreva qual foi o seu raciocínio.

9 , 16 , 25 , 36 , 49 , ____

Fez a análise? Percebeu que há uma relação lógica entre eles?

Você deve ter percebido que o próximo número será 64, pois:

a) a diferença de 9 para 16 = 7;

b) a diferença de 16 para 25 = 9;

c) a diferença de 25 para 36 = 11;

d) a diferença de 36 para 49 = 13;

e) a diferença de 49 para o próximo = 15, pois, somando 49 + 15 = 64.

IMPORTANTE!

O resultado das diferenças são os números ímpares: 7, 9, 11, 13, 15, e assim por
diante.
10 UNIUBE

Você percebeu que é preciso muita atenção. Para trabalharmos com a lógica,
necessitamos muito da habilidade de observação, a fim de estabelecer relações
coerentes.

AGORA É A SUA VEZ

Atividade 2

Analise, com atenção, a sequência a seguir. Observe que entre os números existe
uma relação lógica.

a) Determine qual é o número seguinte. 2 , 3 , 5 , 9 , 17 , ___

b) Descreva os passos para a solução do problema.

Atividade 3

Uma família composta de cinco integrantes passeava em um bosque e chegou a uma


ponte. Toda a família teria que atravessar a ponte em um tempo total de 30 segundos.
A ponte suporta, no máximo, dois integrantes por vez. Mas, como era noite, necessi-
tava-se de uma lanterna para facilitar a travessia. Porém, a lanterna teria que voltar
com alguém. Ao atravessarem em duplas, o mais lento ia à frente. Cada integrante
da família gasta um determinado tempo para atravessar a ponte. O tempo que cada
pessoa gasta para uma parte do percurso (ida ou volta) é:

1º integrante  1 segundo;

2º integrante  3 segundos;

3º integrante  6 segundos;

4º integrante  8 segundos;

5º integrante  12 segundos.

Descreva os passos necessários para que os cinco integrantes da família atravessem


a ponte em tempo hábil.

PASSOS INTEGRANTES TEMPO GASTO


UNIUBE 11

1.2 Algoritmos
Após termos visualizado diferentes tipos de problemas, com abstrações e se-
quências de ações distintas para solucioná-los, percebemos que, além de criar-
mos as instruções, é muito importante segui-las passo a passo, não se esquecendo
de nenhuma etapa.

Vamos, agora, conhecer conceitos da lógica computacional, também denominada


de algoritmos.

A palavra algoritmos, a princípio, parece-nos estranha, embora façamos uso


constante de algoritmos em nosso dia a dia. Veja alguns exemplos desse uso:

• a maneira como analisamos os exercícios anteriores para chegar ao resul-


tado;

• a forma como atravessamos uma rua;

• uma receita de bolo;

• a sequência de ações para a troca de um pneu furado de carro.

IMPORTANTE!

Dessa forma, podemos definir algoritmos como um conjunto de ações (instruções)


bem definidas (objetivas e claras), dadas em sequência, visando solucionar determi-
nado problema.

Veja alguns conceitos de algoritmos:

“Ação é uma acontecimento que, a partir de um estado inicial, após um pe-


ríodo de tempo finito, produz um estado final previsível e bem definido”
(FARRER, 1999, p. 14).

“Algoritmo é um processo de cálculo matemático ou de resolução de um grupo de


problemas semelhantes, em que se estipulam, com generalidade e sem restrições
[...] regras formais para obtenção de um resultado ou da solução de um problema,
englobando fórmulas de expressão aritméticas” (MANZANO, 1996, p. 7).
12 UNIUBE

“[...] uma sequência de passos que visam a atingir um objetivo bem definido”
(FORBELLONE, 2005, p. 3).

“Processo de cálculo; encadeamento das ações necessárias para o cumprimento


de uma tarefa; processo efetivo, que produz uma solução para um problema
num número finito de etapas” (HOUAISS, 2007, p. 155).

1.3 Itens fundamentais da composição da estrutura de


algoritmos
A seguir, apresentaremos os principais operadores e operandos que utilizaremos
em algoritmos.

INDICAÇÃO DE LEITURA

Você aprenderá mais sobre esses operadores com a leitura do Capítulo 2 do livro
Fundamentos de programação de computadores, de Ascêncio e Campos (2002),
que apresenta e explora algoritmos com operadores nas linguagens de programação
C e Pascal.

1.3.1 Operadores aritméticos

Adição +
Subtração -
Multiplicação *
Divisão /

1.3.2 Operadores lógicos

Conjunção e
Disjunção ou
Negação não
UNIUBE  13
Tabela 1: Tabela verdade dos operadores lógicos.

E OU NÃO
A B RESULTADO A B RESULTADO NÃO V F
V V V V V V NÃO F V
V F F V F V
F V F F V V
F F F F F F

• Note que o operador lógico “E” só terá resultado verdadeiro se as condições de


A e B forem verdadeiras; caso contrário, o resultado será falso.

• O operador lógico “OU” somente terá resultado falso se ambas as condições


forem falsas.

• Já o operador “NÃO” serve para inverter o resultado; o que não é verdadeiro


é falso, e o que não é falso é verdadeiro.

1.3.3 Operadores relacionais

igual a =
diferente de <>
maior que >
menor que <
maior ou igual a >=
menor ou igual a <=

1.3.4 Operadores caracteres (literais)

concatenação positiva +

Também conhecida por “união de caracteres”.


14 UNIUBE

1.3.5 Principais funções matemáticas

Quadrado ( ) = retorna o quadrado de um número


Raiz ( ) = retorna a raiz quadrada de um número
Resto ( ) = retorna o resto da divisão entre dois
números inteiros
Quociente ( ) = retorna o quociente da divisão entre dois
Os tipos fracionário e
números inteiros
inteiro serão
Parte‑inteira ( ) = retorna a parte inteira de número fracionário estudados ainda
Trunca ( ) = converte o tipo fracionário (real) para tipo neste capítulo.
inteiro

1.3.6 Prioridade das operações

1º – parênteses ( )
2º – funções
3º – multiplicação / divisão
4º – adição / subtração
5º – operadores lógicos

Exemplos com operadores lógicos e aritméticos:

Considere os seguintes valores: A = 8, B = 13 e C = 3.

Os resultados das expressões serão:

FÓRMULA ANÁLISE RESULTADO


A=BeB>C FeV falso
A <> B ou B < C V ou F verdadeiro
não A > B Não F verdadeiro
A<BeB>C VeV verdadeiro
A >= B ou B = C F ou F falso
não A <= B Não V falso
A resto C = 1 F falso
A quociente C = 2 V verdadeiro
Parte‑inteira (10.8) – 10.0
Trunca (10.8) – 10
A = C e A < B ou B > C F e V ou V verdadeiro
UNIUBE 15

IMPORTANTE!

Para executar a fórmula da última linha, temos que ficar atentos quanto à prioridade
de execução, em que o operador lógico “E” é executado primeiro e depois o operador
lógico “OU”.

Você compreendeu como resolver fórmulas com os operadores? Neste ponto, es-
peramos que você seja capaz de resolvê-las, apontando o resultado correta-
mente.

1.3.7 Conceito de constantes

É um determinado valor fixo que não possui variação durante a execução do


algoritmo. Veja os exemplos:

• o valor de pi ( p ) na matemática é constante e seu valor é 3.1415;

• a média aritmética é a soma dos elementos dividido pela quantidade de


elementos.

EXEMPLIFICANDO!

Para calcular a média aritmética de 4 notas de um aluno, devemos somar as quatro


notas e dividir por 4. Nesse caso, o valor 4 é fixo, ou seja, é uma constante.

1.3.8 Conceito de variáveis

Variável na matemática é a representação simbólica de certa informação. Por


exemplo: sabemos que o DELTA de uma equação de segundo grau é dado pela
fórmula:

DELTA = B2 – 4 . A . C
16 UNIUBE

Vamos considerar os valores de A = 2, B = 6, C = 3. Então, a solução para tal


equação será substituir os valores de A, B e C, tendo assim:

Delta = 62 – 4 * 2 * 3

Delta = 36 – 24

Delta = 12

Os valores de A, B e C podem variar dependendo do exercício, ou seja, eles


sofrerão alterações ao longo do tempo.

IMPORTANTE!

Podemos, então, conceituar, em algoritmos, variáveis como sendo caixas (espaços)


de memória que irão receber um dado de cada vez.

Toda variável é identificada por um nome. Como nos exemplos anteriores, A, B, C e


DELTA são os nomes das variáveis que correspondem a quatro posições de memória.

1.3.9 Regras para dar nomes às variáveis

1) o nome deve começar sempre com uma letra;

2) não pode haver espaço em branco;

3) não se deve inserir acentos, nem cedilha, como “ç”.

4) não pode haver símbolos, exceto o caractere _ (underline).

5) não pode haver nomes de palavras reservadas do algoritmo, como: quadrado,


raiz, leia, mostre, enquanto, entre outros.

Exemplo de nomes válidos:

Endereço nome x1
CPF Inss FGTS
Imposto_renda yx49 C
UNIUBE 17

Exemplo de nomes inválidos:

1x salário 1x1
endereço Imposto renda Canção
Nota do aluno 5senha Salário

IMPORTANTE!

Os nomes de comandos e de variáveis podem ser escritos em MAIÚSCULO e/ou


minúsculo ou pode haver a combinação deles, não havendo distinção.

1.3.10 Tipos de dados

As variáveis podem ser tratadas basicamente por cinco tipos:


• inteiro

recebe somente os números inteiros (positivos, negativos e o zero);

limite de armazenamento é de: – 32678 a +32677;

• inteiro-longo

recebe somente os números inteiros (positivos, negativos e o zero);

limite de armazenamento é de: – 2.147.483.648 a + 2.147.483.647;

• real

recebe todos os números inteiros e fracionários (positivos, negativos e o


zero);

limite de armazenamento é de: 2.9 * 10-39 a + 1.7 * 1038;

• lógicas

recebe somente valores lógicos (verdadeiro ou falso);


18 UNIUBE

• caracteres ou literais

recebe todos os tipos de informação, sejam elas: letras, símbolos, símbolos


numéricos, espaço em branco, DESDE que estejam entre aspas (simples ou
duplas).

Veja os exemplos, a seguir:

• ‘joão’

• ‘digite uma frase ....: ’

• ‘x3y9&@’

• ‘estamos trabalhando na obra literária’

1.3.11 Operação de atribuição

Forma de colocar um dado dentro de uma variável. Para representar a atribuição,


usaremos a seta para a esquerda (  ). Veja os exemplos:

1) x2 4) nome  ‘maria‘ 7) média  soma / 3


2) x1  2.89 5) pi  3.1415 8) senha  ‘r9mw47’
3) bx 6) resp  verdadeiro 9) a  1000 * 10000

Analisando os exemplos anteriores, conseguimos identificar o tipo de cada


variável:

1) x é uma variável do tipo inteiro


2) x1 é uma variável do tipo real
3) b é uma variável do tipo inteiro (considerando o item 1)
4) nome é uma variável do tipo caracter
5) pi é uma variável do tipo real
6) resp é uma variável do tipo lógica
7) média é uma variável do tipo real
8) senha é uma variável do tipo caracter
9) a é uma variável do tipo inteiro‑longo
UNIUBE 19

1.3.12 Comando de entrada

Para que possamos entrar com um dado na máquina através do teclado e o algo-
ritmo possa armazená-lo dentro de uma variável, utilizaremos um comando chamado
LEIA, acompanhado de parênteses e a variável dentro. Veja os exemplos:

Leia (nome)

Leia (cpf)

Leia (nota1)

1.3.13 Comando de saída

Forma de mostrarmos no vídeo mensagens e/ou conteúdo de variáveis. Vamos


chamá-lo de MOSTRE e deverá sempre estar acompanhado de parênteses e,
caso seja uma mensagem, ela deverá estar entre aspas simples; quando dese-
jarmos mostrar o conteúdo de uma variável, não podemos colocar aspas. Veja
os exemplos, a seguir:

mostre (‘digite o valor da nota1: ’)

leia (n1)

mostre (‘digite o valor da nota2: ’)

leia (n2)

mostre (‘digite o valor da nota3: ’)

leia (n3)

md  (n1 + n2 + n3) / 3 Variável não pode ter aspas.

mostre (‘resultado da média = ’, md)

SAIBA MAIS

Por meio do comando MOSTRE, é possível visualizar, no vídeo, mensagens e con-


teúdos de variáveis.
20 UNIUBE

O comando Mostre e o comando Leia normalmente são utilizados juntos, pois


o Mostre irá indicar, no vídeo, a mensagem para o usuário saber o que deverá
ser feito. Caso o usuário necessite entrar com alguma informação, o comando
Leia irá recebê-la e guardá-la em uma variável.

1.3.14 Comentários

Em qualquer parte do algoritmo, poderemos utilizar comentários com a finalidade


de aumentar a clareza de nosso pensamento (instruções). Esses comentários
deverão estar entre CHAVES. Os comentários facilitam a interpretação pelos
programadores.

Os comentários existentes no corpo dos programas (fontes) facilitam a leitura e


a interpretação por um outro programador que porventura necessite dar manu-
tenção ao referido programa. Só para exemplificar: imagine um algoritmo que
calcule e mostre o resultado das fórmulas a seguir:

X1  ( – b + ( raiz ( quadrado (b) – 4*a*c ) ) ) / ( 2 * a)

X2  ( – b – ( raiz ( quadrado (b) – 4*a*c ) ) ) / ( 2 * a)

Após a leitura das fórmulas, vem a pergunta: qual a função dessas fórmulas?

Com o comentário ficará assim:

{fórmulas para cálculo da equação de 2º grau}

X1  ( – b + ( raiz ( quadrado (b) – 4*a*c ) ) ) / ( 2 * a)

X2  ( – b – ( raiz ( quadrado (b) – 4*a*c ) ) ) / ( 2 * a)

Atente-se para os conceitos estudados até então.

AGORA É A SUA VEZ

Atividade 4

Considerando os conteúdos estudados, responda objetivamente as questões propos-


tas a seguir:

a) O que é variável?
UNIUBE 21

b) Qual é o símbolo que utilizamos para atribuir conteúdo a variáveis? Dê três exemplos.

c) Apresente o comando de entrada de dados e sua sintaxe.

d) Quais são os cinco tipos de dados?

e) Qual é o comando de saída de dados e qual é a sua sintaxe?

f) Quais são as regras para nomear as variáveis?

1.3.15 Estrutura de algoritmo

Vamos padronizar uma estrutura de algoritmos de forma que possamos utilizá-la


nos próximos módulos de estudo.

Observe, com atenção:


Observe que temos um algoritmo nome_tal {vamos dar um nome ao nosso algoritmo}
RECUO no bloco das
var {bloco para criar e determinar os tipos de variáveis}
VARIÁVEIS e outro
recuo no bloco INÍCIO a, b: inteiro
e FIM. resp: logica
nome: caracter
Esse recuo chama-se {bloco do código principal}
IDENTAÇÃO e serve inicio
para facilitar a {iniciar variáveis é bom para tirar lixo de memória e
visualização do início sabermos qual o conteúdo inicial da variável}
e do fim de um conjunto
A0
de códigos que fazem
B0
parte de um mesmo
resp  verdadeiro
nível de execução.
nome  ‘ ’ {quando for caracter, irá receber
espaço em branco entre aspas}

{corpo do algoritmo, instruções e comandos}


comando 1
comando 2
comando 3
comando n
pausa
fim
22 UNIUBE

1.3.16 Estrutura sequencial e simulação

Em um algoritmo, os comandos deverão ser executados numa sequência linear,


seguindo o texto de cima para baixo.

A simulação é um teste que fazemos com valores diversos, a fim de confirmar


se a sequência de comandos está correta e bem definida. Criaremos uma tabela
com as variáveis e vamos entrar com valores e executar as instruções. No final,
teremos o resultado em cada variável.

Exemplo

a) Determine os valores finais de A, B e C, após a execução do trecho do algo-


ritmo na simulação apresentada a seguir:

ALGORITMO
Instrução 1 A0
Instrução 2 B1
Instrução 3 CA+B
Instrução 4 AA+1
Instrução 5 BA+B+C
Instrução 6 AB*3
Instrução 7 CC+A

VARIÁVEIS (SIMULAÇÃO)
A B C
0 1 1
1 3 10
9

O conteúdo final das variáveis foi: A = 9, B = 3, C = 10

Observe que a ordem de execução é muito importante, pois vamos simular um


erro executando a instrução 6 antes da instrução 5 da simulação anteriormente
apresentada:

ALGORITMO
Instrução 1 A0
Instrução 2 B1
Instrução 3 CA+B
UNIUBE  23

Instrução 4 AA+1
Instrução 6 AB*3
Instrução 5 BA+B+C
Instrução 7 CC+A

VARIÁVEIS
A B C
0 1 1
1 5 4
3

O conteúdo final das variáveis foi: A = 3, B = 5, C = 2

Note que todas as instruções foram executadas. Porém, as instruções 6 e 5


foram trocadas. Nessa troca, obtivemos um resultado diferente do resultado
esperado.

Desse momento em diante, utilizaremos a estrutura do algoritmo para demons-


trar a sequência de passos necessária para solucionar um determinado tipo de
problema.

Acompanhe o seguinte processo:

1. E
 labore um algoritmo que receba um número do tipo inteiro. Processe o qua-
drado desse número e mostre o resultado no vídeo.

Vamos interpretar o texto por etapas, visando extrair dados e variáveis. Procu-
raremos prever a sequência das ações necessárias:

1) quando lemos: “receba um número do tipo inteiro”, concluímos que:

a) a palavra “receber” nos diz que usaremos o comando LEIA, e, logicamente,


vamos precisar de uma variável para armazenar essa entrada. Vamos chamar
essa variável de entrada de “numero”;

b) a frase “tipo inteiro” nos informa que teremos que declarar/criar nossa variá-
vel do tipo inteiro.
24 UNIUBE

2) Quando lemos: “processar o quadrado desse número”, concluímos que:

a) utilizaremos a função “quadrado” ou, podemos ainda usar a lógica matemática,


multiplicando a variável por ela mesma (numero * numero). Uma dessas duas formas
irá proporcionar o resultado que queremos, então, teremos que declarar/criar uma
variável para armazenar esse resultado e vamos chamá-la de “resposta”.

b) E, finalmente, quando lemos: “mostrar o resultado no vídeo”, concluímos que


iremos utilizar o comando MOSTRE para sair com o resultado no vídeo.

Então, vamos agora montar o algoritmo!

IMPORTANTE!

Nome do algoritmo e nome de variáveis não podem ter acentos.

algoritmo quadrado_de_um_numero
var {bloco para criar e determinar os tipos de variáveis}
numero, resposta: inteiro
{código principal}
inicio
{iniciar variáveis é bom para tirar lixo de memória e sabermos qual o conteúdo inicial da
.........variável}
numero  0
resposta  0

{entrada de dados}
mostre (‘digite um número inteiro: ’)
leia (numero)
{fazendo o cálculo do quadrado}
resposta  quadrado (numero)

{mostrando o resultado no vídeo}


mostre (‘o quadrado desse número é = ’, resposta)
mostre (‘acabou! ’)
pausa
fim
UNIUBE 25

Veja a simulação do Exemplo 1:

VARIÁVEIS
Comando Leia irá
numero resposta
receber do teclado o
0 0 Resultado do número
número que o usuário
5 25 elevado ao quadrado.
digitou. Por exemplo,
o número 5.

O conteúdo final das variáveis é: numero = 5, resposta = 25. Com isso, o comando
‘mostre’ que está no final do algoritmo: mostre (‘o quadrado desse numero = ’,
resposta), irá mostrar no vídeo o conteúdo da variável ‘resposta’ = 25.

2. Elabore um algoritmo que receba dois números do tipo inteiro, respectiva-


mente, nas variáveis A e B. Processe a troca de seus conteúdos, ou seja,
o conteúdo inicial de A deverá estar em B e o conteúdo inicial de B deverá
estar em A.

DICAS

Caso a variável A receba 5 e a variável B receba 10, após o processamento de troca,


teremos: A = 10 e B = 5.

Façamos a leitura do problema proposto para definir as ações necessárias.

1) Quando lemos: “receba dois números tipo inteiro”, concluímos que:

a) usaremos o comando LEIA para receber os dados via teclado e, logicamente,


vamos precisar de duas variáveis para armazenar essas entradas, que, no caso,
são A e B, ambas do tipo inteiro.

2) Vamos pensar no processo e troca:

a) podemos fazer a troca conforme está apresentado a seguir? O que irá acon-
tecer?

I) A  B

II) B  A
26 UNIUBE

Se dermos essas duas instruções, vamos perder o valor inicial da variável A.


Considere os seguintes valores: A = 10 e B = 5. Quando executamos a primeira
instrução, a variável A receberá o valor 5. Então, o valor 10 será sobreposto.

3) Para resolver o problema, uma terceira variável com o nome de “C” poderá ser
criada para auxiliar no processo de troca. Veja como ficará a sequência de troca:

I) C  A

II) A  B

III) B  C

Com as instruções anteriores, trocamos o conteúdo de A e B, sem perder con-


teúdo.

Vamos ao algoritmo!

algoritmo troca_de_conteudo
var {bloco para criar e determinar os tipos de variáveis}
a, b, c: inteiro
{código principal}
inicio
{inicializar variáveis é bom para tirar lixo de memória e sabermos qual o conteúdo inicial
da variável}
a  0
b  0
c  0

{recebendo o valor de a e b via teclado}


mostre (‘digite um número para a variável a: ’)
leia (a)
mostre (‘digite um número para a variável b: ’)
leia (b)

{fazendo a troca de conteúdo}


c  a
a  b
b  c

{mostrando o resultado no vídeo}


mostre (‘o novo conteúdo da variável a = ’, a)
mostre (‘o novo conteúdo da variável b = ’, b)
mostre (‘acabou! ’)
pausa
fim
UNIUBE 27

Veja a simulação do Exemplo 1:

VARIÁVEIS
Comando Leia,
A B C
RECEBENDO os
0 0 0
valores de A e B,
23 7 23
sendo 23 e 7,
7 23
respectivamente.

INDICAÇÃO DE LEITURA

Sugerimos que você faça a leitura do Capítulo 2, “Estrutura sequencial”, do livro


Fundamentos da programação de computadores (ASCÊNCIO; CAMPOS, 2002).
Nessa leitura, você poderá aprofundar os conhecimentos sobre os conceitos apre-
sentados neste capítulo. Encontrará muitos exercícios resolvidos que podem lhe
ajudar na realização de suas atividades. Assim, compreenderá melhor:

• operadores (aritméticos, relacionais, lógicos);

• funções (quadrado, raiz, resto, quociente, parte inteira, trunca, dentre outras funções
muito utilizadas);

• constante;

• variável e regras de nomenclatura;

• tipos de dados e suas características;

• comando de atribuição;

• comando de entrada e saída;

• outros comentários.

AGORA É A SUA VEZ

Atividade 5

Elabore um algoritmo que receba um número inteiro, processe e mostre qual é o


dobro desse número.
28 UNIUBE

Atividade 6

Elabore um algoritmo para calcular e mostrar o resultado do cálculo da área de um


círculo. Sabe-se que a fórmula é: área = p R2.

Atividade 7

Elabore um algoritmo que receba um número tipo real (com casa decimal diferente
de zero) processe e mostre:

a) qual é o valor da parte inteira desse número;

b) qual é o valor da parte decimal.

Exemplo:

Caso o número recebido via teclado seja 10.85, então teremos como respostas:

a) a parte inteira = 10.0

b) a parte decimal = 0.85

Atividade 8

Elabore um algoritmo para calcular e mostrar o resultado do cálculo da área de um


triângulo. Sabe-se que a fórmula é: área = (base * altura) / 2.

Atividade 9

Elabore um algoritmo que receba o valor do salário de um funcionário, processe e


mostre esse salário acrescido em 12%.

DICAS

Em algoritmo não podemos usar o símbolo de percentual (%), então vamos desmem-
brar essa informação para: 12 / 100 ou 0.12.
UNIUBE 29

AGORA É A SUA VEZ

Atividade 10

Elabore um algoritmo que receba um número do tipo real, processe e mostre:

a) o resultado desse número elevado ao cubo;

b) o resultado da raiz quadrada desse número;

c) o resultado da soma dos dois resultados anteriores.

DICAS

Não temos função para o cálculo do cubo. Para isso, devemos criar uma regra
matemática.

AGORA É A SUA VEZ

Atividade 11

Elabore um algoritmo que receba o valor que está depositado na caderneta de pou-
pança e a taxa de juros da caderneta de poupança para o mês. Em seguida, o algo-
ritmo deverá processar e mostrar:

a) o valor dos juros do mês;

b) o valor acumulado no mês, ou seja, o depósito anterior mais os juros calculados.

INDICAÇÃO DE LEITURA

ASCÊNCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi de. Es-
trutura condicional. In: _____. Fundamentos da programação de computadores.
São Paulo: Prentice Hall, 2002, p. 15-40.
30 UNIUBE

Resumo
Neste capítulo iniciamos o estudo sobre algoritmos. Para tanto, enfocamos:

• o raciocínio lógico e as instruções matemáticas utilizadas nas soluções de


problemas;

• o algoritmo, enquanto conjunto de ações (instruções) bem definidas (objetivas


e claras), dadas em sequência, visando solucionar um determinado pro-
blema;

• os conceitos básicos necessários à compreensão da lógica computacional,


como: variáveis, constantes, estrutura de algoritmos, estruturas de programa-
ção, tipos de dados, operadores de atribuição.

• a estrutura sequencial exigida, ou seja, a execução de comandos serão feitas


de forma sequencial (cima para baixo);

• a simulação para verificação dos resultados obtidos após a execução de cada


comando.

Referências
ASCÊNCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi de.
Fundamentos da programação de computadores. São Paulo: Pearson Prentice Hall, 2002.

FARRER, Harry. Algoritmos estruturados. Rio de Janeiro: LTC, 1999.

FORBELLONE, André Luiz Villar. Lógica de programação: a construção de algoritmos e


estruturas de dados. São Paulo: Pearson Prentice Hall, 2005.

HOUAISS, Antonio. Dicionário Houaiss da Língua Portuguesa. Rio de Janeiro: Objetiva,


2007.

MANZANO, José Augusto. Algoritmos: lógica para desenvolvimento de programação. São


Paulo: Érika, 1996.
UNIUBE 31

Capítulo Estrutura condicional e


2 estruturas de repetição

Daniela Resende Silva Orbolato / Ernani Cláudio Borges

Introdução
Caro(a) aluno(a),

Neste capítulo, daremos sequência aos nossos estudos de algoritmos


introduzindo conceitos de estrutura de condição e estruturas de
repetição.

É de fundamental importância que o conceito de algoritmo, a aplica-


ção dos comandos de entrada e saída e, principalmente, a estrutura
de algoritmo utilizando a forma sequencial estejam bem compreen-
didos por você, pois este capítulo irá complementar os seus estudos
anteriores.

Leia, com atenção, o texto e realize as atividades propostas. Não será


necessário o uso do computador para o desenvolvimento do presente
estudo, pois enfocaremos, nesse momento, a aplicação das estruturas
condicionais e de repetição, independentemente da linguagem de pro-
gramação a ser utilizada.

INDICAÇÃO DE LEITURA

Para aprofundar os conceitos e exemplos apresentados, sugerimos a leitura


dos capítulos 3, “Estrutura condicional”, e 4, “Estrutura repetição”, do livro
Fundamentos da programação de computadores de Ana Fernanda Go-
mes Ascêncio e Edilene Aparecida V. de Campos (2002).
32 UNIUBE

Objetivos
Ao final deste capítulo, você deverá ser capaz de:

• identificar e utilizar as estruturas condicionais e as estruturas de


repetição;
• otimizar processos por meio de aperfeiçoamento da lógica de
programação, usando as estruturas de repetição.

Esquema
2.1 Algoritmos: retomando conceitos
2.2 Estrutura condicional
2.3 Estruturas de repetição
2.4 Validação

2.1 Algoritmos: retomando conceitos


Você se lembra da definição de variável? Qual é a função dos comandos mos-
tre e leia? Como é composta a estrutura dos algoritmos?

RELEMBRANDO

Vamos, então, a uma breve recordação:

• Variável é uma caixa (espaço) de memória que recebe um dado de cada vez e que
possui um nome. Relembremo-nos, também, de algumas regras para se dar nome
a variáveis:

1) o nome deve começar com uma letra ou underline (sublinhado);

2) não poderá haver espaço em branco, nem acentuação, nem cedilha;

3) não poderão existir símbolos, exceto o underline (sublinhado);

4) não poderá haver nome de palavra reservada do algoritmo, como: quadrado, raiz,
leia, mostre, enquanto, se, então, faça, entre outros.

• O comando mostre serve para mostrar ou escrever, no vídeo, uma mensagem ou


conteúdo de variável; e
UNIUBE 33

• o comando leia irá receber uma informação pelo teclado e a armazenará em uma
variável.

Vamos recordar, também, a estrutura de um algoritmo:

Lembre-se: dentro das ASPAS simples e dentro das CHAVES podemos utilizar
acento, cedilha, símbolos, dentre outros caracteres.

algoritmo nome_tal {vamos dar um nome ao nosso algoritmo}


var {bloco para criar e determinar os tipos de variáveis}
a, b : inteiro
resp : logica
nome : caracter
{bloco do código principal}
inicio
{inicializar variáveis é bom para tirar lixo de memória e sabermos qual o
conteúdo inicial da variável}
A0
B0
resp  verdadeiro
nome  ‘’ {quando for caracter, irá receber espaço em branco entre aspas}

{corpo do algoritmo, instruções e comandos}


Comando 1
Comando 2
Comando 3
....
pausa
fim

Observando a estrutura do algoritmo, vejamos a sequência padrão utilizada na


sua construção, ou seja, a:

• interpretação do texto do problema a ser resolvido visando extrair os dados;

• determinação das variáveis que serão utilizadas e de seus tipos (inteiro,


inteiro-longo, real, lógico e caractere);

• definição das informações que deverão ser fornecidas pelo usuário (por meio
do comando de entrada leia) e dos cálculos necessários;
34 UNIUBE

• previsão dos passos (instruções) a serem seguidos para solução do


problema;

• exibição dos resultados processados.

Resumindo, devemos:

1. criar as variáveis;

2. inicializar as variáveis;

3. receber os dados de entrada (comandos mostre e leia);

4. processar os dados (cálculos, fórmulas etc.);

5. escrever por meio do comando mostre, no vídeo, os resultados processados;

6. pausar e finalizar o algoritmo.

Você é capaz de escrever um algoritmo sozinho? Verifique seu aprendizado.

Elabore um algoritmo que receba três números inteiros, processe e mostre


qual é a soma dos dois primeiros dividida pelo terceiro número e mostre esse
resultado.

2.2 Estrutura condicional


A estrutura condicional é muito importante, pois permite a escolha do conjunto
de instruções caso a condição seja verdadeira, ou ainda, outro conjunto de
instruções caso a condição seja falsa.

A estrutura condicional que vamos apresentar chama-se SE. Pode ser simples,
composta ou ainda as duas juntas, denominadas múltiplos.

A estrutura condicional SE pode ser utilizada a qualquer momento dentro do


corpo do algoritmo. Veja a sintaxe do SE (simples) a seguir.
UNIUBE 35

.
.
.
{estrutura SE simples – as instruções só serão executadas caso a condição
seja verdadeira}
se condicao entao
instrucao 1
instrucao 2
fim-se
.
.
.

pausa
fim
.

pausa
fim

As instruções 1 e 2 serão executadas somente quando a condição for verdadeira


e, caso seja falsa, saltamos o bloco SE e vamos direto para a primeira linha
abaixo do FIM-SE.

Analisemos agora a estrutura do SE composto:

.
.
.

{estrutura SE composto – as instruções 1 e 2 só serão executadas caso a


condição seja verdadeira; e caso a condição seja FALSA, será executada as
instruções 3 e 4}
se condicao entao
instrucao 1
instrucao 2
senao
instrucao 3
instrucao 4
fim-se
.
.
.

pausa
fim
36 UNIUBE

Veja que, para o SE composto, caso a condição seja verdadeira, serão execu-
tadas as instruções 1 e 2; senão (caso a condição seja falsa), serão executadas
as instruções 3 e 4.

IMPORTANTE!

Observe que fazemos uma tabulação quando estamos dentro do bloco INICIO e FIM
e, quando criamos a estrutura condicional simples ou composta, também fazemos o
recuo dentro de cada bloco SE e/ou dentro SENAO. Voltando à identação (recuo)
anterior, quando fechamos o bloco: esse recuo chama-se IDENTAÇÃO e é muito
importante nos algoritmos, pois, por meio dele, conseguimos visualizar a abertura do
bloco bem como seu fechamento.

Vamos utilizar a estrutura condicional SE em alguns exemplos. Veja:

Exemplo 1 (uso do SE):

Elaborar um algoritmo para receber o valor de raio de um círculo, processar o


cálculo da área e mostrar o resultado no vídeo. Sabe-se que a fórmula é: área
= p R2

Interpretando o texto, sabemos que:

• será necessário criar as variáveis: “area” e “raio”;

• será necessário inicializar as duas;

• trabalharemos com o valor de pi ( p ), que é constante = 3.1415;

• iremos receber o valor do raio via teclado;

• verificaremos se o valor do raio é válido ou inválido;

• caso seja válido, faremos o cálculo da área e mostrá-lo-emos no vídeo;

• caso seja inválido, vamos exibir uma mensagem no vídeo;

• determinaremos: pausa e fim.


UNIUBE 37

Observe que esta sequência é uma SIMULAÇÃO dos passos necessários para
o desenvolvimento do algoritmo.

Acompanhe!

algoritmo area_circulo {nome do nosso algoritmo}


var {bloco para criar e determinar os tipos de variáveis}
a, r : real
{bloco do código principal}
inicio
{inicializar variáveis}
a0
r0
{corpo do algoritmo, instruções e comandos}
mostre (‘digite
( um valor para o raio maior que zero:’)
leia (r)
{verificando se o valor do raio é válido}
se r <= 0 entao
mostre (‘o
( valor do raio esta inválido... não pode ser zero e/ou
negativo’)
senao
a  3.1415 * quadrado (r)
mostre (‘área
( do círculo =’, a)
fim-se
mostre (‘acabou
( ...’)
pausa
fim

Analisando a estrutura apresentada, em especial o bloco SE:

• Após receber o valor do raio, a estrutura CONDICIONAL SE pergunta se o


valor do raio é menor ou igual a zero. Caso a resposta seja verdadeira, então
será executada a instrução, mostrando que o valor é incorreto.

leia (r)
{verificando se o valor do raio é inválido}
se r <= 0 entao
mostre (‘o valor do raio é inválido... não pode ser zero e/ou negativo’)
38 UNIUBE

• Caso a resposta da condição seja falsa, ou seja, o valor do raio NÃO seja
menor e nem igual a zero, serão executadas as instruções contidas dentro do
bloco SENAO.

senao
a  3.1415 * quadrado (r)
mostre (‘área do círculo =’, a)
fim-se

Exemplo 2 (uso do SE):

Elaborar um algoritmo que receba o valor do salário de um funcionário. Proces-


sar e mostrar esse salário acrescido em 12%.

IMPORTANTE!

Em algoritmo não podemos usar o símbolo de percentual (%). Então, vamos des-
membrar essa informação, podendo ser: 12/100 ou 0.12.

Interpretando o texto, sabemos que será necessário:

• criar as variáveis: sal (para receber valor do salário) e resp (para receber o
cálculo do aumento do salário);

• inicializar as duas;

• receber o valor do salário via teclado;

• verificar se o valor do salário é inválido ou válido;

• caso seja inválido, mostrar uma mensagem;

• caso seja válido, fazer o cálculo da área e mostrá-lo no vídeo;

• pausa e fim.
UNIUBE 39

{nome do nosso algoritmo}


algoritmo salario
{bloco para criar e determinar os tipos de variáveis}
var
sal, resp : real
{bloco do código principal}
inicio
{inicializar variáveis}
resp  0
sal  0
{corpo do algoritmo, instruções e comandos}
mostre (‘digite
( o valor do salário do funcionário:’)
leia (sal)
{verificando se o valor do raio é válido}
se sal <= 0 entao
mostre (‘o
( valor do salário não pode ser negativo ou zero... inválido....’)
senao
resp  sal + ( sal * 12 / 100)
mostre (‘salário
( acrescido em 12% =’, resp)
fim-se
mostre (‘acabou
( ...’)
pausa
fim

Exemplo 3 (uso do SE):

Elaborar um algoritmo que recebe dois números. Processar a verificação de


qual é o maior número mostrando seu valor no vídeo.

algoritmo maior {nome do nosso algoritmo}


var {bloco para criar e determinar os tipos de variáveis}
nr1, nr2 : real
{bloco do código principal}
inicio
{inicializar variáveis}
nr1  0
nr2  0
{corpo do algoritmo, instruções e comandos}
mostre ((‘digite o primeiro número:’)
leia (nr1)
mostre ((‘digite o segundo número:’)
40 UNIUBE

leia (nr2)
{verificando se o valor do raio é válido}
se nr1 > nr2 entao
mostre ((‘o primeiro número é o maior, e seu valor =’, nr1)
senao
se nr2 > nr2 entao
mostre ((‘o segundo número é o maior, e seu valor =’, nr2)
senao
mostre ((‘os dois números são iguais’)
fim-se
fim-se
mostre ((‘acabou ...’)
pausa
fim

Exemplo 4

Elaborar um algoritmo que receba o sexo (“m” para masculino ou ”f” para femi-
nino) e a altura (maior que zero) de uma pessoa. Processar e mostrar o peso
ideal dessa pessoa, utilizando a fórmula a seguir:

Caso o sexo masculino: peso = (72.7 * altura) – 58

Caso o sexo feminino: peso = (62.1 * altura) – 44.77

Para resolvermos o Exemplo 4, teremos que verificar as condições de validade


das informações para as variáveis sexo e altura, e, só depois, processarmos o
cálculo de acordo com o sexo.

Os passos podem ser:

• criar as variáveis;

• inicializar as variáveis;

• receber o sexo;

• verificar a validade da informação para sexo;


UNIUBE 41

• caso o sexo seja válido, receber a altura;

• verificar a validade da informação para altura;

• caso a altura seja válida, verificar se o sexo é masculino ou feminino e pro-


cessar os cálculos conforme essa informação;

• pausa/fim de algoritmo.

Observe a estrutura a seguir:

algoritmo peso_ideal {nome do nosso algoritmo}


{bloco para criar e determinar os tipos de variáveis}
var
peso, alt : real
sx : caracter
{bloco do código principal}
inicio
{inicializar variáveis}
alt  0
peso  0
sx  ‘ ’
{corpo do algoritmo, instruções e comandos}
mostre (‘digite
( o sexo dessa pessoa, m ou f ...:’) Observe o SE e o
leia (sx) SENAO; após
se (sx <> ‘f’) e (sx <> ‘m’) então executar uma
mostre (‘sexo
( inválido ....’) dessas sequências
senao de instruções, a
mostre (‘digite
( a altura da pessoa ..:’) próxima sequência
leia (alt) de comandos será
se alt <= 0 entao aquela que vem
mostre (‘altura
( inválida ...’) após o último
senao fim-se, quando será
se sx = ‘m’ então exibida a palavra
peso  (72.7 * altura) – 58 ‘Acabou...’.
senao
42 UNIUBE

peso = (62.1 * altura) – 44.77


fim-se
mostre ((‘O peso ideal para esta pessoa é =’, peso)
fim-se
fim-se
mostre ((‘Acabou ...’)
pausa
fim

Exemplo 5 (uso do SE)

Elaborar um algoritmo que receba três notas de um aluno (finalizar o processamento


quando a nota for inferior a 0 ou superior a 10, informando qual nota foi digitada
errada). Processar o cálculo da média aritmética e mostrar uma das mensagens a
seguir: APROVADO para média superior ou igual a 6,0; RECUPERAÇÃO para
média inferior a 6 e maior ou igual a 4 e REPROVADO para média inferior a 4.

algoritmo media_notas {nome do nosso algoritmo}


{bloco para criar e determinar os tipos de variáveis}
var
Observe que temos RECUOS no
n1, n2, n3, md : real
bloco das VARIÁVEIS, no bloco
{bloco do código principal}
INICIO e FIM e nos blocos SE e
inicio
SENAO. Este recuo é chamado de
{inicializar variáveis}
IDENTAÇÃO e serve para
n1  0
visualizarmos melhor a abertura e o
n2  0
fechamento do bloco, e os itens ou
n3  0
linhas que o compõem.
md  0
{corpo do algoritmo, recebendo e verificando as entradas e só receber a
próxima nota caso a anterior seja válida}
mostre ((‘digite a primeira nota ...’)
leia (n1)
se (n1 < 0) ou (n1 > 10) então
mostre ((‘a nota 1 está incorreta... finalizando...’)
senao
mostre ((‘digite a segunda nota ...’)
leia (n2)
se (n2 < 0) ou (n2 > 10) entao
mostre ((‘a nota 2 está incorreta... finalizando...’)
senao
UNIUBE 43

mostre ((‘digite a terceira nota ...’)


leia (n3)
se (n3 < 0) ou (n3 > 10) entao
mostre ((‘a nota 3 está incorreta... finalizando...’)
senão
md  (n1 + n2 + n3) / 3
mostre (‘a
( média foi =’, md)
{verificando se aprovado, recuperação ou reprovado}
se md >= 6 entao
mostre (‘( aprovado’)
senão
se md >= 4 entao
mostre ((‘recuperação’)
senão
mostre ((‘reprovado’)
fim-se
fim-se
fim-se
fim-se
fim-se
mostre (‘acabou
( ...’)
pausa
fim

INDICAÇÃO DE LEITURA

Sugerimos agora a leitura do Capítulo 3, “Estrutura condicional”, do livro Fundamen-


tos da programação de computadores (ASCÊNCIO; CAMPOS, 2002). A leitura
permitirá a visualização de detalhes importantes relacionados aos conceitos já apre-
sentados até este momento sobre estrutura condicional. Nessa obra temos vários
exercícios e as respectivas soluções. As autoras trazem uma abordagem acerca dos
fundamentos da programação de computadores, enfocando a estrutura condicional
como uma forma de verificar a possibilidade de processar uma informação ou não,
em problemas matemáticos e computacionais.
44 UNIUBE

AGORA É A SUA VEZ

Atividade 1

Elaborar um algoritmo que receba o nome e sexo de uma pessoa. Verificar:

a) o nome não pode ser vazio ou um espaço em branco, caso seja, o algoritmo deverá
finalizar;

b) o sexo não pode ser diferente de “m” ou “f”, caso seja, o algoritmo deverá
finalizar.

Processar e mostrar, caso as opções de entradas sejam válidas, “Ilmo. Sr.” e/ou “Ilma.
Sra.”, seguido do nome da pessoa.

Atividade 2

Elaborar um algoritmo que receba dois números. Processar e mostrar o resultado


da diferença do maior pelo menor. Caso os números sejam iguais, mostrar uma
mensagem.

Atividade 3

Elaborar um algoritmo que receba um número. Processar e mostrar se ele é par,


ímpar ou zero.

RELEMBRANDO

A matemática diz que um número é par se o resto da divisão desse número por 2 for
igual a zero, senão, esse número é ímpar.
UNIUBE 45

AGORA É A SUA VEZ

Atividade 4

Sabe-se que, na matemática, mais especificamente na geometria, para formar um


retângulo, o valor da largura e do comprimento devem ser diferentes e maiores que
zero.

Elaborar um algoritmo que receba dois números. Processar as verificações necessá-


rias e mostrar o resultado do cálculo da área do retângulo.

Atividade 5

Elaborar um algoritmo que receba três números. Processar e mostrar qual desses
números é o menor.

Atividade 6

Uma determinada empresa paga para seus funcionários:

a) R$ 12,00 (doze reais) por hora trabalhada;

b) R$ 40,00 (quarenta reais) por dependente.

Elaborar um algoritmo que receba o nome de um funcionário, a quantidade de horas


que ele trabalhou e a quantidade de dependentes que ele tem. Processar as verifi-
cações necessárias e calcular, caso as entradas de dados sejam válidas:

a) o valor do salário bruto;

b) o valor do desconto de 5% do salário bruto para INSS;

c) o valor do desconto de 27,5% do salário bruto para IR (Imposto de Renda);

d) o valor do salário líquido a receber (salário bruto – INSS – IR).

Mostrar no vídeo: o nome do funcionário e os resultados dos cálculos indicados.

Atividade 7

O preço de um carro novo, quando chega ao mercado para o consumidor, é formado:


pelo preço de fábrica, pelo valor do lucro do distribuidor e pelo valor dos impostos.
46 UNIUBE

Elaborar um algoritmo que receba:

a) o valor do preço de fábrica;

b) o percentual do lucro do distribuidor;

c) o percentual do imposto.

Processar e mostrar:

a) o valor correspondente ao lucro do distribuidor;

a) o valor correspondente aos impostos;

b) o preço final do veículo.

2.3 Estruturas de repetição


A estrutura de repetição tem por característica a repetição das instruções que
estão dentro de seu bloco, até que uma determinada condição seja satisfeita.
As estruturas de repetição, também chamadas de blocos de repetição, podem
ser criadas em qualquer momento no algoritmo.

Podemos ter um bloco de repetição dentro de uma estrutura condicional SE e


SENAO, como, também, ter um bloco condicional SE e SENAO dentro de um
bloco de repetição. Podemos ter, ainda, blocos de repetição dentro de outros
blocos de repetição.

A utilização desses recursos será percebida durante a abstração do pro-


blema. Você irá perceber que precisa fazer uma verificação com SE, e
dentro do bloco correspondente a este SE, será necessário criar um bloco
de repetição.

Temos três tipos de estruturas de repetição: 1) Enquanto, 2) Repita, 3) Para.


UNIUBE 47

Veja essas estruturas, a seguir:

algoritmo exercicio_repeticao {nome do nosso algoritmo}


{bloco para criar e determinar os tipos de variáveis}
var
...... : tipo
{bloco do código principal}
inicio
{inicializar variáveis}
.
.
{corpo do algoritmo}
.
.
Enquanto <condicao> faca
instrucao 1
instrucao 2
instrucoes n
fim-enquanto
.
.
Repita
instrucao 1
instrucao 2
instrucoes n
Ate-que condicao
.
.
Para x de var_inici ate var_fim faca
instrucao 1
instrucao 2
instrucoes n
Fim-para
.
.
mostre ((‘acabou ... ’)
pausa
fim
48 UNIUBE

IMPORTANTE!

Na estrutura de repetição ENQUANTO, as instruções somente serão executadas


quando a condição for VERDADEIRA.

• A estrutura de repetição REPITA irá executar as instruções pelo menos uma vez
e, no final do bloco Repita, é verificada a condição e, caso ela seja FALSA, retornará
e executará novamente as instruções.

• Na estrutura de repetição PARA tem-se um intervalo de números que vai de um


valor inicial até um valor final, variando de um em um, com incremento automático.
Podendo, ainda, começar de um valor final e decrescer até atingir um valor inicial,
variando de um em um, com decremento automático.

• Algumas linguagens de programação aceitam variações de incremento ou decre-


mento maiores que um.

• Todos os raciocínios lógicos aplicados com a estrutura ENQUANTO podem ser


aplicados, também, com a estrutura de repetição REPITA. Porém, nem todos podem
ser aplicados com a estrutura PARA.

Para entender melhor a análise e o padrão de comportamento de instruções,


veja o exemplo, a seguir, feito somente com uma estrutura sequencial e con-
dicional.

Elaborar um algoritmo que receba um número via teclado. Verificar para que
não seja menor que 1 e nem maior que 10. Processar e mostrar os cálculos da
tabuada de multiplicação desse número, conforme o exemplo, caso o número
seja 5:

5*1=5

5 * 2 = 10

5 * 3 = 15

5 * 4 = 20
UNIUBE 49

5 * 5 = 25

5 * 10 = 50

A resolução, a seguir, segue os padrões sequenciais que você aprendeu nos


estudos do módulo anterior. Veja:

algoritmo exercicio_sequencial_e_condicional {nome do nosso algoritmo}


{bloco para criar e determinar os tipos de variáveis}
var
nr, resp : inteiro
{bloco do código principal}
inicio
{inicializar variáveis}
nr  0
resp  0
{corpo do algoritmo}
limpa-tela
mostre (‘digite
( um número maior que zero e menor que 11 ...’)
leia (nr)
se (nr <=0) ou (nr > 10) entao
mostre (‘número
( é inválido ... finalizando ...’)
senao
resp  5 * 1
mostre (nr, ‘ * 1 =’, resp)
resp  5 * 2
mostre (nr, ‘ * 2 =’, resp)
resp  5 * 3
mostre (nr, ‘ * 3 =’, resp)
resp  5 * 4
mostre (nr, ‘ * 4 =’, resp)
resp  5 * 5
50 UNIUBE

mostre (nr, ‘ * 5 =’, resp)


resp  5 * 6
mostre (nr, ‘ * 6 =’, resp)
resp  5 * 7
mostre (nr, ‘ * 7 =’, resp)
resp  5 * 8
mostre (nr, ‘ * 8 =’, resp)
resp  5 * 9
mostre (nr, ‘ * 9 =’, resp)
resp  5 * 10
mostre (nr, ‘ * 10 =’, resp)
fim-se
mostre ((‘acabou ...’)
pausa
fim

Analise o algoritmo e veja que existem instruções repetidas dentro do bloco do


SENAO, e mudando somente o número que está multiplicando. Ou seja, estamos
multiplicando por 1 e mostrando o resultado; multiplicando por 2 e mostrando o
resultado; até chegar a 10.

Então, podemos perceber que estamos contando de 1 a 10, variando de 1 em


1, e mostrando o resultado de cada multiplicação pelo contador.

No algoritmo exercicio_sequencial_e_condicional, criamos as variáveis nr e


resp. Agora, vamos criar uma variável com o nome cont que irá representar o
contador de 1 a 10 e, utilizando a estrutura de REPETIÇÃO ENQUANTO, fa-
remos os cálculos. Veja a seguir:

algoritmo exercicio_sequencial_e_condicional_e_repeticao {nome do nosso


algoritmo}
{bloco para criar e determinar os tipos de variáveis}
var
nr, resp, cont : inteiro
{bloco do código principal}
UNIUBE  51

inicio
{inicializar variáveis} Quando cont chegar a
nr  0 11, a condição será falsa
resp  0 e a sequência irá para a
cont  1 primeira linha abaixo do
{corpo do algoritmo} fim-enquanto.
limpa‑tela
mostre (‘digite um número maior que zero e menor que 11 ...’)
leia (nr)
se (nr <=0) ou (nr > 10) então
mostre (‘número é inválido ... finalizando ...’)
senão
{o enquanto está perguntando se o cont é menor ou
igual a 10 o que, nessa primeira vez, é verdadeiro, pois}
inicializamos a variável cont com 1}
enquanto cont <= 10 faca
resp  nr * cont
mostre (nr, ‘ *’, cont,’ =’, resp)
{fazendo o contador passar para o próximo número}
cont  cont + 1
{o fim‑enquanto, irá retornar ao enquanto, e verificar se o
cont ainda é menor ou igual a 10, lembrando que
o cont foi incrementado de mais 1 ao conteúdo anterior}
fim‑enquanto
O fim-enquanto fará com que a
fim‑se
sequência de instruções volte ao
mostre (‘acabou ...’)
enquanto e este verificará se a
pausa
condição ainda é verdadeira.
fim

Exemplos com as três estruturas

Exemplo 6 (uso de laços)

Elaborar um algoritmo que processe e mostre todos os números de 15 a 70,


variando de um em um.
52 UNIUBE

Usando o ENQUANTO:

algoritmo exemplo_6_nrs_15_a_70_com_ENQUANTO
var
cont : inteiro
inicio
cont  15
limpa‑tela
mostre (‘números de 15 a 70, variando de 1 em 1’)
mostre
enquanto cont <= 70 faca
mostre (cont, ‘ ’)
cont  cont + 1
fim‑enquanto
mostre
mostre (‘acabou ...’)
pausa
fim

Outra forma de resolução usando o REPITA:

algoritmo exemplo_6_nrs_15_a_70_com_REPITA
var
cont : inteiro
inicio
cont  15
limpa‑tela
mostre (‘números de 15 a 70, variando de 1 em 1’)
mostre
repita
mostre (cont, ‘ ‘)
cont  cont + 1
até‑que cont > 70
mostre
mostre (‘acabou ...’)
pausa
fim
UNIUBE 53

Outra forma de resolução usando o PARA:

algoritmo exemplo_6_nrs_15_a_70_com_PARA
var
cont : inteiro
inicio
limpa-tela
mostre (‘números de 15 a 70, variando de 1 em 1’)
mostre
para cont de 15 ate 70 faca
Mostre (cont, ‘ ’)
Fim-para
mostre
mostre (‘acabou ...’)
pausa
fim

PARADA OBRIGATÓRIA

Observe que, nas três formas de se fazer algoritmos, a única diferença entre as es-
truturas de repetição ENQUANTO e REPITA é que o ENQUANTO pergunta se pode
entrar no bloco e o REPITA pergunta se pode sair. Já a estrutura PARA tem duas
diferenças em relação ao ENQUANTO e REPITA. Descobriu quais são?

Veja que temos duas linhas a menos na estrutura de repetição PARA.

1) antes do “limpa-tela” não tem a inicialização de cont  15, pois, esta ini-
cialização é feita na abertura do bloco PARA, quando se escreve: “para
cont de 15...”;

2) dentro do bloco PARA não temos o contador: cont  cont + 1, pois esse
incremento “mais 1” é feito, automaticamente, pela estrutura para.

INDICAÇÃO DE LEITURA

Sugerimos agora a leitura do Capítulo 4, “Estrutura repetição”, do livro Fundamentos


da programação de computadores, de Ana Fernanda Gomes Ascêncio e Edilene
Aparecida V. de Campos (2002).
54 UNIUBE

Esse texto traz uma reflexão sobre os padrões de comportamento em algoritmos que
possibilitam uma construção de conhecimentos acerca das estruturas de repetição,
visando uma otimização da lógica de programação.

A leitura indicada lhe permitirá visualizar outros detalhes relativos aos conceitos
apresentados sobre estruturas de repetição, bem como lhe dará acesso a outros
exemplos. Você perceberá que a estrutura que a autora utiliza é bem próxima da
estrutura que lhe foi apresentada. A diferença é que a estrutura que está sendo es-
tudada por você, neste capítulo, é voltada para uma exemplificação de aplicações da
área comercial de sistemas.

Exemplo 7 (uso de laços)

Elaborar um algoritmo que processe e mostre todos os números pares existen-


tes no intervalo de 1 a 100 (inclusive), variando de 1 em 1.

Algoritmo exemplo_7_sequencial_condicional_repeticao {nome do nosso


algoritmo}
{bloco para criar e determinar os tipos de variáveis}
var
cont : inteiro o cont foi inicializado com 1, certo?
{bloco do código principal} Observe a pergunta que o enquanto
inicio
está fazendo:
{inicializar variáveis}
“enquanto cont <= 100 faca”
cont  1
A resposta para esta primeira pergunta
{corpo do algoritmo}
é verdadeira, fazendo com sejam
limpa-tela
mostre (‘mostrando os números executadas as instruções SE. Se a
pares existentes entre 1 e 100’) instrução SE retornar verdadeiro, será
mostre (‘variando de 1 em 1’) executada a instrução mostre, caso
{laço de repetição} seja falso, será executada a instrução
enquanto cont <= 100 faca incremento de 1 para a variável cont,
se (cont resto 2) = 0 entao que passará a ter como conteúdo o
mostre (cont, ‘ ’) valor 2.
fim-se O fim-enquanto fará com que a
cont  cont + 1 sequência retorne ao enquanto para
fim-enquanto verificar se esse novo conteúdo de cont
mostre
ainda é “menor ou igual” a 100... e
mostre (‘acabou ...’)
assim por diante.
pausa
fim
UNIUBE  55

O incremento da variável cont acontecerá independentemente do resultado da


instrução SE, pois, sendo par ou ímpar o último valor analisado, deve‑se incre-
mentar cont para se chegar ao próximo valor a ser verificado.

Exemplo 8 (uso de laços)

Elaborar um algoritmo que receba um número para ser o limite da sequência exibida,
a seguir. Processar e mostrar a sequência enquanto o valor for menor ou igual a
esse número limite informado. Verificar se o número é “maior que” ou “igual”.

2 , 3 , 5 , 9 , 17, ..., N

algoritmo exemplo_8_laco {nome do nosso algoritmo}


{bloco para criar e determinar os tipos de variáveis}
var
cont, n, aux : inteiro
{bloco do código principal} A sequência 2, 3, 5, 9, 17, até N é
inicio formada pela soma das variações dos
{inicializar variáveis} intervalos com o valor de cont.
cont  2
Os intervalos são formados pelo dobro
n  0
do intervalo anterior, representados pela
aux  1
variável aux.
{corpo do algoritmo}
limpa‑tela
mostre (‘mostrando a sequência: 2 , 3 , 5 , 9 , 17, ..., N’)
mostre
mostre (‘digite o número limite ....:’)
leia (n)
{verificação se o valor de n é inválido}
se n < 2 entao
mostre (‘número inválido ... finalizando ...’)
senao
{laço de repetição}
enquanto cont <= n faca
mostre (cont, ‘ ’)
cont  cont + aux
aux  aux * 2
fim‑enquanto
fim‑se
mostre
mostre (‘acabou ...’)
pausa
fim
56 UNIUBE

Exemplo 9 (uso de laços)

Elaborar um algoritmo que receba um número para ser o limite da sequência


colocada a seguir. Processar e mostrar a sequência enquanto o valor for menor
ou igual a esse número limite. Verificar se o número é “maior que” ou “igual”.

9 , 16 , 25 , 36 , 49, ..., N

algoritmo exemplo_9_laco {nome do nosso algoritmo}


{bloco para criar e determinar os tipos de variáveis}
var
cont, n, aux : inteiro A sequência 9, 16, 25, 36, 49, até N é
{bloco do código principal} formada pela soma das variações dos
inicio intervalos com o cont.
{inicializar variáveis} Os intervalos (variável aux) são
cont  9 formados por números ímpares,
n  0 iniciando em 7, com incrementos de 2.
aux  7
{corpo do algoritmo}
limpa‑tela
mostre (‘mostrando a sequência: 9 , 16 , 25 , 36 , 49, ..., N’ )
mostre
mostre (‘digite o número limite ...’)
leia (n)
{verificação se o valor de n é inválido}
se n < 9 entao
mostre (‘número inválido ... finalizando ...’)
senao
{laço de repetição}
enquanto cont <= n faca
mostre (cont, ‘ ’)
cont  cont + aux
aux  aux + 2
fim‑enquanto
fim‑se
mostre
mostre (‘acabou ...’)
pausa
fim
UNIUBE 57

Exemplo 10 (uso de laços)

Elaborar um algoritmo que receba uma lista de números via teclado; quando for
digitado o número zero, deve-se finalizar a entrada e mostrar:

a) quantos números dessa lista são positivos;

b) quantos números dessa lista são negativos;

c) quantos números são pares;

d) quantos números são ímpares.

Observação: Vamos analisar o problema. Imagine uma lista de vários números,


podendo ser números positivos ou negativos. Imaginou? Agora vamos, in-
formá-los, um a um, via teclado, e processar as seguintes verificações:

i) caso o número seja positivo, somar 1 à variável qtd_pos;

ii) caso seja negativo, acumular mais 1 à variável qtd_neg;

iii) caso seja par, somar 1 à variável qtd_par; e,

iv) caso seja ímpar, somar 1 à variável qtd_imp.

IMPORTANTE!

São vários números, e por isso vamos precisar de um laço de repetição para receber
o primeiro número e processá-lo, voltar e receber o segundo número e processá-lo,
voltar e receber o terceiro número e processá-lo, e assim por diante, até que seja
digitado o número 0 (zero), que será nossa CONDIÇÃO DE PARADA para entrada
dos dados.
58 UNIUBE

Vejamos, então, o algoritmo:

algoritmo exemplo_10_laco {nome do nosso algoritmo}


{bloco para criar e determinar os tipos de variáveis}
var
n, qtd_pos, qtd_neg, qtd_par, qtd_imp : inteiro
{bloco do código principal}
inicio
{inicializar variáveis}
n  0
qtd_pos  0
qtd_neg  0
qtd_par  0
qtd_imp  0
{corpo do algoritmo}
limpa‑tela
mostre (‘digite o primeiro número ...: ’)
leia (n)
{laço de repetição}
enquanto n <> 0 faca
{verificando se o número é positivo senao negativo}
se n > 0 entao
qtd_pos  qtd_pos + 1
senao
qtd_neg  qtd_neg + 1
fim‑se
{verificando se o número é par senao ímpar}
se (n resto 2) = 0 entao
qtd_par  qtd_par + 1
senao
qtd_imp  qtd_imp + 1
fim‑se
{recebendo o próximo número, e o fim‑enquanto irá voltar lá em cima
e verificar se ele é diferente de 0 (zero); caso seja verdadeiro, entrará
no bloco de repetição e fará as verificações novamente}
mostre (‘digite o próximo número ...’)
leia (n)
UNIUBE 59

fim-enquanto
mostre (‘resultados finais processados’)
mostre (‘quantidade de números positivos =’, qtd_pos)
mostre (‘quantidade de números negativos =’, qtd_neg)
mostre (‘quantidade de números pares =’, qtd_par)
mostre (‘quantidade de números impares =’, qtd_imp)
mostre (‘acabou ...’)
pausa
fim

AGORA É A SUA VEZ

Atividade 8

Elaborar um algoritmo para cada uma das sequências de números colocadas a seguir.
Em alguns casos, será necessário receber o número limite. Você deverá fazer a ve-
rificação e mostrar a sequência até esse número.

Observação: O valor de N deverá ser informado via teclado e deverão ser VERIFI-
CADAS as entradas.

8a – 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15

8b – 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0

8c – 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... , N

8d – 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, ..., N (Nesta sequência, o valor deve ser
mostrado variando-se de 1 em 1, enquanto for menor ou igual ao número limite.)

Atividade 9

Elaborar um algoritmo que receba um número maior ou igual a zero. Processar e


mostrar o fatorial desse número.

Na matemática, o fatorial é representado pelo símbolo de exclamação. Sabe-se que


o fatorial de um número é a multiplicação de todos seus termos começando por 1,
variando-se de 1 em 1, até chegar ao número desejado. Como exemplo, vejamos o
fatorial do número 5.

5! = 1 * 2 * 3 * 4 * 5 = 120
60 UNIUBE

Observações:

• Não existe fatorial de número negativo.

• O fatorial de zero é, por definição, igual a 1.

2.4 Validação
Validação é um recurso importante para a entrada e a saída dos dados, pois
visa garantir a integridade e a veracidade dos mesmos.

É utilizada, principalmente, em processos de entrada de dados. Existem várias


formas de uso, dentre elas podemos destacar:

• Validação simples (off time): é aquela que permite a entrada de todos os


dados e em seguida inicia-se o processo de validação, encerrando-se quando
é detectado o primeiro erro.

• Validação simples (in time): é aquela que, ao primeiro erro de entrada, can-
cela o processo. Não é utilizada com frequência, pois não permite a correção
do erro e encerra o algoritmo, desconsiderando as entradas que estavam
corretas. Esta foi a que usamos até agora.

• Validação corretiva (off time): é aquela que permite a correção do erro após ter
sido completado o processo de entrada inicial utilizando também as estruturas de
repetição; neste caso, todas as entradas são executadas, certas ou erradas, e,
posteriormente, é feita a correção somente daquelas que foram feitas com erro.

• Validação corretiva (in time): é aquela que permite a correção do erro durante
o processo de entrada, através da utilização de estruturas de repetição (en-
quanto, repita); neste caso, a cada entrada errada a próxima não é efetuada
enquanto o dado não for corrigido. Esta é a mais utilizada!

Para as validações corretivas é ideal a utilização da estrutura ENQUANTO,


pois sua construção permite avaliar a condição antes da entrada no bloco de
repetição. A estrutura REPITA, por sua vez, entra no bloco, executa alguma
instrução e avalia ao final, fazendo com que seja necessária a inclusão de uma
estrutura condicional fora ou dentro da estrutura de repetição.
UNIUBE  61

Este processo faz com que o algoritmo se torne mais lento. Nos exemplos apre-
sentados, a estrutura REPITA foi usada para que você possa aprender a utilizá‑la,
quando necessário.

Vamos aos exemplos de validação corretiva (in time).

Exemplo 11 (uso de laço corretivo)

Elaborar um algoritmo que receba o nome, o sexo, o valor da hora trabalhada


e a quantidade de horas trabalhadas no mês.

Consistências:

a) o nome é obrigatório, não podendo ser vazio (vazio é quando o usuário


pressiona ENTER sem digitar nada);

b) o valor da hora trabalhada não pode ser nulo (zero) ou inferior a zero;

c) a carga horária mensal não pode ser nula (zero) ou inferior a zero.

Processar e mostrar: o nome, sexo e o valor do salário a receber.

Resolução do Exemplo 11 utilizando o ENQUANTO para as validações de


entrada:

algoritmo exemplo_11_laco_corretivo_com_enquanto {nome do nosso algoritmo}


{bloco para criar e determinar os tipos de variáveis}
var
nm : caracter
sal, vl_ht, nr_ht : real
{bloco do código principal}
inicio
{inicializar variáveis}
nm  ‘ ’
sal  0
vl_ht  0
nr_ht  0
{corpo do algoritmo}
limpa‑tela
mostre (‘digite o nome do funcionário ...’)
leia (nm)
{laço para validar corretivamente o nome para não ser VAZIO, representado
pelas}
62 UNIUBE

{aspas simples JUNTAS }


enquanto (nm = ‘‘) faca
mostre ((‘nome inválido... digite outro ...’)
leia (nm)
fim-enquanto
mostre (‘digite o valor da hora trabalhada ...’)
leia (vl_ht)
{laço para validar corretivamente para ser maior que zero}
enquanto vl_ht <= 0 faca
mostre (‘valor da hora trabalhada está inválido... digite outro ...’)
leia (vl_ht)
fim-enquanto
mostre (‘digite o número de hora que ele trabalhou no mês ...’)
leia (nr_ht)
{laço para validar corretivamente para ser maior que zero}
enquanto nr_ht <= 0 faca
mostre (‘número de horas trabalhadas inválido... digite outro ...’)
leia (nr_ht)
fim-enquanto
{cálculo do salário, após ter certeza de que todos os dados estão CORRETOS}
sal  vl_ht * nr_ht
mostre (nm, ‘ irá receber R$’, sal)
mostre (‘acabou ...’)
pausa
fim

Resolução do Exemplo 11 utilizando o REPITA para as validações de entrada:

algoritmo exemplo_11_laco_corretivo_com_repita {nome do nosso algoritmo}


{bloco para criar e determinar os tipos de variáveis}
var
nm : caracter
sal, vl_ht, nr_ht : real
{bloco do código principal}
inicio
{inicializar variáveis}
nm  ‘ ’
sal  0
vl_ht  0
nr_ht  0
{corpo do algoritmo}
limpa-tela
UNIUBE  63

mostre (‘digite o nome do funcionário ...’)


leia (nm)
{laço para validar corretivamente o nome para não ser VAZIO, representado
pelas aspas simples JUNTAS }
Observe que a
se nm = ‘‘ entao
estrutura diz:
repita
REPITA...
mostre (‘nome inválido... digite outro ...’)
ATÉ-QUE
leia (nm)
Então, só sairá do
ate‑que nm <>”
bloco quando a
fim‑se
condição for
mostre (‘digite o valor da hora trabalhada ...’)
verdadeira.
leia (vl_ht)
{laço para validar corretivamente para ser maior que zero}
se vl_ht <= 0 entao
repita
mostre (‘valor da hora trabalhada está inválido... digite outro ...’)
ate‑que vl_ht > 0
fim‑se
mostre (‘digite o número de hora que ele trabalhou no mês ...’)
leia (nr_ht)
{laço para validar corretivamente para ser maior que zero}
se nr_ht <= 0 entao
repita
mostre (‘número de horas trabalhadas inválido... digite outro ...’)
leia (nr_ht)
ate‑que nr_ht > 0
fim‑se
{cálculo do salário, após ter certeza de que todos os dados estão CORRETOS}
sal  vl_ht * nr_ht
mostre (nm, ‘irá receber R$’, sal)
mostre (‘acabou ...’ )
pausa
fim

Exemplo 12 (uso de laço corretivo)

Elaborar um algoritmo para cada uma das sequências abaixo. Receber o número
inicial da sequência e validar para que este seja inserido corretamente.
64 UNIUBE

a) N, ..., 8, 7, 6, 5, 4, 3, 2, 1, 0

Resolução do Exemplo 12a utilizando o ENQUANTO para as validações de


entrada e amostragem da sequência:

Algoritmo exemplo_12_a_laco_corretivo_com_enquanto {nome do nosso algoritmo}


{bloco para criar e determinar os tipos de variáveis}
var
n : inteiro
{bloco do código principal}
inicio
{inicializar variáveis}
n  0
{corpo do algoritmo}
limpa‑tela
mostre (‘digite número limite inicial...’)
leia (n)
 {laço para validar corretivamente o nome para não ser vazio, representado
pelas aspas simples juntas}
enquanto n <= 0 faca Enquanto o
mostre (‘número inválido... digite outro positivo...’) usuário digitar
leia (n) um valor
fim‑enquanto negativo ou
nulo (zero),
{laço para o cálculo da sequência} deverá digitar
enquanto n >= 0 faca outro número.
mostre (‘número inválido... digite outro positivo...’)
leia (n)
fim‑enquanto Enquanto o
conteúdo de n for
{laço para o cálculo da sequência’} maior ou igual a
enquanto n >= 0 faca zero será
mostre (n, ‘ ’) mostrado esse
n  n – 1 conteúdo. Observe
fim‑enquanto que estamos
mostre subtraindo 1 do
mostre (‘acabou ...’) conteúdo da
pausa variável n.
fim
UNIUBE 65

a) N, ..., 8, 7, 6, 5, 4, 3, 2, 1, 0

Resolução do Exemplo 12a utilizando o REPITA para as validações de


entrada e amostragem da sequência:

algoritmo exemplo_12_a_laco_corretivo_com_repita {nome do nosso algoritmo}


{bloco para criar e determinar os tipos de variáveis}
var
n : inteiro
{bloco do código principal}
inicio
{inicializar variáveis}
n0
{corpo do algoritmo}
limpa-tela
mostre (‘digite número limite inicial...’)
leia (n)
{laço para validar corretivamente o nome para não ser vazio, representado
pelas aspas simples juntas} Se o conteúdo de n for menor ou igual
Se n <= 0 entao a zero, o bloco de repetição repita irá
Repita repetir até que n seja maior que zero.
mostre (‘número inválido... digite outro positivo....: ’)
leia (n)
ate-que n > 0
fim-se O repita mostra o número uma vez e,
no final, pergunta se pode voltar e
{laço para o cálculo da sequência} mostrar novamente. Observe que
repita estamos subtraindo 1 do conteúdo da
mostre (n, ‘ ’) variável n.
nn–1
ate-que n < 0
mostre
mostre (‘acabou ...’)
pausa
fim

b) N, ..., 5, 4, 3, 2, 1, 0, –1, –2, –3, –4, –5, ..., –N

Nesta sequência, o valor de N negativo será o mesmo valor N positivo,


então, receber o N positivo e multiplicá-lo por –1, armazenando o resultado
66 UNIUBE

em outra variável. Lembrando que não podemos criar nomes de variáveis


com símbolos.

Resolução do Exemplo 12b utilizando o ENQUANTO para as validações de


entrada e REPITA para amostragem da sequência:

algoritmo exemplo_12_b_laco_corretivo {nome do nosso algoritmo}


{bloco para criar e determinar os tipos de variáveis}
var
n, aux : inteiro
{bloco do código principal}
inicio
{inicializar variáveis}
n  0
aux  0
{corpo do algoritmo}
limpa‑tela
mostre (‘digite número limite inicial...’)
leia (n)
{laço para validar corretivamente o nome para não ser vazio, representado
pelas aspas simples juntas} Se o conteúdo de n for menor ou igual
Se n <= 0 entao a zero, o bloco de repetição repita irá
Repita repetir até que n seja maior que zero.
mostre (‘número inválido... digite outro positivo...’)
leia (n)
ate‑que n > 0
fim‑se
{recebendo o valor de n e tornando‑o negativo}
aux  n * ( –1 )
aux  n * ( –1 )
{laço para o cálculo da sequência}
repita
mostre (n, ‘ ’)
n  n – 1
ate‑que n >= aux
mostre
mostre (‘acabou ...’)
pausa
fim
UNIUBE  67

c) 1, 2, 3, 4, 8, 9, 10, 11, 22, 23, 24, 25, ..., N

Resolução do Exemplo 12c utilizando o REPITA para as validações de


entrada e ENQUANTO para amostragem da sequência:

algoritmo exemplo_12_c_laco_corretivo {nome do nosso algoritmo}


{bloco para criar e determinar os tipos de variáveis}
var
n, cont1, cont2 : inteiro
{bloco do código principal}
inicio
{inicializar variáveis}
n  0
cont1  1
cont2  1
{corpo do algoritmo}
limpa‑tela
mostre (‘digite número limite inicial...’)
leia (n)
{laço para validar corretivamente o nome para não ser vazio, representado
pelas aspas simples juntas} Se o conteúdo de n for menor ou igual
se n <= 0 entao a zero, o bloco de repetição repita irá
repita repetir até que n seja maior que zero.
mostre (‘número inválido... digite outro positivo..’)
leia (n)
ate‑que n > 0
fim‑se
Este primeiro ENQUANTO é o
responsável por VARIAR de 1 até n (1, 2,
{laço para o cálculo da sequência} 3, 4, 8, 9, 10, 11, 22, 23, ... n).
enquanto cont1 <= n faca
enquanto (cont2 <= 4) e (cont1 <= n) faca
mostre (cont1, ‘ ’)
cont1  cont1 + 1 Veja que o valor de cont1 passa de 4 a
8, ... de 11 a 22, ... e assim por diante.
cont2  cont2 + 1 FAÇA A SIMULAÇÃO para você
fim‑enquanto entender por que utilizamos o “–1”.
cont2  1
cont1  (cont1 – 1) * 2 O segundo ENQUANTO é o
responsável pela exibição dos
fim‑enquanto números em grupos de quatro, ou seja,
mostre 1, 2, 3, 4 – 8, 9, 10, 11... etc.
mostre (‘acabou ...’)
pausa
fim
68 UNIUBE

d) N, ..., 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, ..., N

Resolução do Exemplo 12d utilizando o REPITA para as validações de


entrada e ENQUANTO para amostragem da sequência:

algoritmo exemplo_12_d_laco_corretivo {nome do nosso algoritmo}


{bloco para criar e determinar os tipos de variáveis}
var
n, aux : inteiro
{bloco do código principal}
inicio
{inicializar variáveis}
n  0
aux  1
{corpo do algoritmo}
limpa‑tela
mostre (‘digite número limite inicial...: ’)
leia (n)
{laço para validar corretivamente o nome para não ser vazio, representado
pelas aspas simples juntas} Se o conteúdo de n for menor ou igual
se n <= 0 entao a zero, o bloco de repetição repita, irá
repita repetir até que n seja maior que zero.
mostre (‘número inválido... digite outro positivo..:’)
leia (n) Este bloco de repetição ENQUANTO é
ate‑que n > 0 o responsável por mostrar os valores
fim‑se de N até 0.
{guardando o conteúdo de n para o final}
aux  n
{laço para o cálculo da sequência}
Observe que n está sendo
enquanto n >=0 faca
decrementado em 1, ou seja,
mostre (n, ‘ ’) subtraímos 1 do conteúdo de n.
n  n – 1
fim‑enquanto
n  1 Este é o responsável por mostrar de 1
até AUX.
enquanto n <= aux faca
mostre (n, ‘ ’) Lembre-se de que usamos o aux para
n  n + 1 guardar o valor original de n (valor de
entrada).
fim‑enquanto
mostre
mostre (‘acabou ...’)
pausa
fim
UNIUBE  69

e) 0, 1, 2, 3, 4, ..., N, ..., 4, 3, 2, 1, 0

Resolução do Exemplo 12e utilizando o REPITA para as validações de


entrada e ENQUANTO para amostragem da sequência:

algoritmo exemplo_12_e_laco_corretivo {nome do nosso algoritmo}


{bloco para criar e determinar os tipos de variáveis}
var
n, aux : inteiro
{bloco do código principal}
inicio
{inicializar variáveis}
n  0
aux  0
{corpo do algoritmo}
limpa‑tela
mostre (‘digite número limite inicial...’)
leia (n)
{laço para validar corretivamente o nome para não ser vazio, representado
pelas aspas simples juntas} Se o conteúdo de n for menor ou igual
se n <= 0 entao a zero, o bloco de repetição repita, irá
repita repetir até que n seja maior que zero.
mostre (‘número inválido... digite outro positivo....: ’)
leia (n)
ate‑que n > 0
fim‑se
{laço para o cálculo da sequência, AUX variando de até (N – 1)}
enquanto aux < n faca
mostre (aux, ‘ ‘)
aux  aux + 1
fim‑enquanto
{laço para o cálculo da sequência, N variando de N até 0}
enquanto n >= 0 faca
mostre (n, ‘ ’)
n  n – 1
fim‑enquanto
mostre
mostre (‘acabou ...’)
pausa
fim
70 UNIUBE

AGORA É A SUA VEZ

As atividades a seguir deverão ser desenvolvidas utilizando as três estruturas de


repetição (enquanto, repita e para).

Atividade 10 (uso do laço):

Elabore um algoritmo que receba 50 números inteiros. Processar e mostrar quantos


desses números são: positivos, negativos, quantos são maiores que 500, qual é o
maior e qual é o menor número da lista.

Atividade 11 (uso do laço):

Analise o padrão de comportamento da sequência:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ..., N

Elaborar um algoritmo que processe e mostre no vídeo a variação desta sequência.


Para tal, receber um número N que será o limite, ou seja, processar e mostrar a
sequência enquanto for menor ou igual a N. Fazer com que a entrada do número limite
seja maior que 1.

Atividade 12 (uso do laço):

Uma rainha requisitou os serviços de um monge e disse-lhe que pagaria qualquer


preço. O monge, necessitando de alimentos, indagou à rainha sobre o pagamento,
se poderia ser feito com grãos de trigo dispostos num tabuleiro de xadrez, de tal
forma que o primeiro quadro deveria conter apenas um grão e os quadros subse-
quentes, o dobro do quadro anterior. A rainha achou o trabalho barato e pediu que
o serviço fosse executado, sem se dar conta de que seria impossível efetuar o
pagamento.

Elabore um algoritmo que calcule e mostre o somatório do número de grãos que o


monge esperava receber, sabendo que um tabuleiro de xadrez possui 64 quadrantes.

IMPORTANTE!

Neste exercício será necessário utilizar o tipo real para declaração das variáveis. Faça
o teste e explique o porquê desse cuidado.
UNIUBE 71

Resumo
Neste capítulo, dentre os assuntos abordados, enfatizamos:

• estrutura condicional (SE) – executa ação(ões) de acordo com o resultado


da(s) condição(ões) analisada(s). Neste caso, podemos ter estrutura simples,
composta ou, ainda, múltipla.

Exemplo de estrutura condicional simples:

se condicao entao

instrucao 1

instrucao 2

fim-se

Exemplo de estrutura condicional composta:

se condicao entao

instrucao 1

instrucao 2

senao

instrucao 3

instrucao 4

fim-se

• estruturas de repetição: são utilizadas para tarefas que se repetem de acordo


com uma ou mais condições. Temos:

I. Enquanto: as instruções são executadas enquanto uma condição for verda-


deira. Neste caso, a condição é testada já na primeira execução.
72 UNIUBE

Enquanto <condicao> faca

instrucao 1

instrucao 2

instrucoes n

fim-enquanto

II. Repita: nessa estrutura, temos a execução das instruções pelo menos uma
vez e, no final do bloco repita, é verificada a condição e, caso ela seja FALSA,
retornará e executará novamente as instruções.

Repita

instrucao 1

instrucao 2

instrucoes n

Ate-que condicao

III. Para: nessa estrutura temos um intervalo de números que vai de um valor
inicial até um valor final, variando de um em um, com incremento automático.
Pode, ainda, começar de um valor final e decrescer até atingir um valor inicial,
variando de um em um, com decremento automático.

Para x de var_inici ate var_fim faca

instrucao 1

instrucao 2

instrucoes n

Fim-para
UNIUBE  73

Referências
ASCÊNCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida V. de. Fundamentos da
programação de computadores. São Paulo: Pearson Prentice Hall, 2002.

FARRER, Harry. Algoritmos estruturados. Rio de Janeiro: LTC, 1999.

FORBELLONE, André Luiz Villar. Lógica de programação: a construção de algoritmos e


estruturas de dados. São Paulo: Pearson Prentice Hall, 2005.

MANZANO, José Augusto. Algoritmos: lógica para desenvolvimento de programação. São


Paulo: Érica, 1996.
UNIUBE 75
Linguagem de
Capítulo programação
3 PascalZim e
modularização
Daniela Resende Silva Orbolato / Ernani Cláudio Borges

Introdução
Caro(a) aluno(a),

A partir deste capítulo, a utilização do computador será de fundamental


importância, pois, após fazermos uma breve recordação de exercícios
dos capítulos anteriores, vamos aproveitar para codificá-los para a
linguagem de programação PascalZim.

Na sequência, serão apresentados os conceitos de “modularização” e


sua utilização na otimização do código de algoritmos.

INDICAÇÃO DE LEITURA

Para aprofundar os conceitos e exemplos apresentados, sugerimos a leitura


do Capítulo 10, “Sub-rotinas”, do livro Fundamentos da programação de
computadores, de autoria Ana Fernanda Gomes Ascêncio e Edilene Apa-
recida V. de Campos (2002).

Objetivos
Ao final deste capítulo, você deverá ser capaz de:

• identificar os principais comandos da linguagem de programação


PascalZim;
• identificar diferenças entre os módulos de procedimentos e
funções;
• analisar a reutilização de blocos de algoritmos na solução de
problemas matemáticos e computacionais;
• otimizar programas com a utilização de módulos de algoritmos.
76 UNIUBE

Esquema
3.1 Comandos do aplicativo PascalZim
3.1.1 Itens fundamentais para compor a estrutura de
algarismos
3.1.2 Estrutura sequencial
3.1.3 Estrutura condicional
3.1.4 Estrutura de repetição
3.2 Modularização
3.2.1 Procedimento (procedure)
3.2.2 Função (function)

3.1 Comandos do aplicativo PascalZim


Iniciaremos nossos estudos pelos tipos de dados. Vamos recordá-los!

Temos os tipos inteiro, inteiro-longo, o real, o lógico e o caracter.

Agora, analise o Quadro 1, e conheça esses tipos na linguagem de programação


PASCALZIM:

Quadro 1: Comparativo Algoritmo x PascalZim.

CAPACIDADE DE ARMAZENAMENTO
EM ALGORITMO EM PASCALZIM
VALOR MÍNIMO VALOR MÁXIMO
Inteiro Integer – 32.767 +32.768
Inteiro-longo Longint – 2.147.483.648 2.147.483.647
Real Real 2.9 x 10-39
1.7 x 1038
Lógico Boolean True (verdadeiro) / false (falso)
Caracter String 255 caracteres
Caracter (um caracter) Char 1 caracter

Continuando a relembrar:

Qual é a função do comando mostre?


UNIUBE 77

O comando mostre serve para mostrar ou escrever, no vídeo, LN


uma mensagem ou conteúdo de variável. Em PascalZim, es-
creve-se “WRITE”, e como vamos trabalhar visualizando as O sufixo “LN” pode-se
saídas no vídeo, vamos acrescentar o sufixo “LN” ao comando traduzir em “NEXT
WRITE, ou seja, “WRITELN”. LINE”, que em nossa
linguagem representa
“PRÓXIMA LINHA”. A
função do “LN” é fazer
com que o “cursor
piscante” que está no
vídeo passe para a
linha abaixo.

E a função do comando leia?

O comando leia irá receber uma informação pelo teclado e irá armazená-la em
uma variável. Em PascalZim, será escrito “READ” ou “READLN”.

Você se lembra qual a função seta para esquerda (  )?

Ela representa uma atribuição interna (como colocar um dado em uma variável).

Na linguagem PascalZim, em seu lugar, utilizaremos “dois pontos igual” ( := ).

Exemplo

EM ALGORITMO EM PASCALZIM
x  9.75 x := 9.75
nome  ‘carla’ nome := ‘carla’
resp  verdadeiro resp := true
78 UNIUBE

3.1.1 Itens fundamentais para compor a estrutura de algoritmos

Os principais operadores e operandos que iremos utilizar em algoritmos são:

• Operadores aritméticos em PascalZim

Adição +
Subtração –
Multiplicação *
Divisão /

• Operadores lógicos em PascalZim

ALGORITMO PASCALZIM
Conjunção e and
Disjunção ou or
Negação não not

Tabela 1: Tabela verdade dos operadores lógicos.

AND (E) OR (OU) NOT (NÃO)


A B RESULTADO A B RESULTADO not V F
V V V V V V not F V
V F F V F V
F V F F V V
F F F F F F

IMPORTANTE!

• Note que o operador lógico “AND” só terá resultado verdadeiro se as condições


de A e B forem verdadeiras; caso contrário, o resultado será falso.

• O operador lógico “OR” somente terá resultado falso se ambas as condições forem
falsas.
UNIUBE 79

• Já o operador “NOT” serve para inverter o resultado; o que não é verdadeiro é falso,
e o que não é falso é verdadeiro.

• Operadores relacionais em PascalZim

EM PASCALZIM
igual a =
diferente de <>
maior que >
menor que <
maior ou igual a >=
menor ou igual a <=

• Operadores caracteres (literais)

concatenação positiva +
Também conhecida por “união de
caracteres”

• Principais funções matemáticas

ALGORITMO PASCALZIM DESCRIÇÃO DA FUNÇÃO


quadrado ( ) sqr ( ) = retorna o quadrado de um número

raiz ( ) sqrt ( ) = retorna a raiz quadrada de um número


resto mod = retorna o resto da divisão entre dois números
INTEIROS
quociente div = retorna o quociente da divisão entre dois números
INTEIROS
parte-inteira ( ) int ( ) = retorna a parte inteira de número fracionário

trunca trunc ( ) = converte o tipo fracionário (real) para tipo inteiro


80 UNIUBE

• Prioridade das operações

EM ALGORITMOS E PASCALZIM
1º - parênteses ( )
2º - funções
3º - multiplicação / divisão
4º - adição / subtração
5º - operadores lógicos

Vamos, agora, rever a estrutura de um algoritmo:

RELEMBRANDO

Dentro das ASPAS simples e dentro das CHAVES podemos utilizar acento, cedilha,
símbolos, dentre outros caracteres.

SAIBA MAIS

UNIT – É uma coleção de constantes, tipos de dados, variáveis, procedimentos e


funções. Cada UNIT é um programa separado, sendo considerada uma “BIBLIO-
TECA”. As principais UNITs são: CRT, DOS, GRAPH.

No exemplo, usamos a CRT, a qual possui rotinas relativas à tela do computador,


como o tipo, cor da letra, cor do fundo, coordenadas de linhas e colunas, dentre
outras.
UNIUBE 81

ALGORITMO PASCALZIM
algoritmo nome_tal program nome_tal;
{bloco para criar e determinar os tipos de variáveis} {UNIT – biblioteca de vídeo. Necessária no PASCAL}
var {no PascalZim não é preciso, pois já está
a, b : inteiro implementado}

resp : logica uses crt;


{bloco para criar e determinar os tipos de variáveis}
nome : caracter
{bloco do código principal} var
inicio a, b : integer;
{inicializar variáveis é bom para tirar resp : boolean;
lixo de memória e sabermos qual o nome : string;
{bloco do código principal}
conteúdo inicial da variável}
begin
A0
{inicializar variáveis é bom para tirar lixo de
B0
memória e sabermos qual o conteúdo
resp  verdadeiro
inicial da variável}
nome  ‘ ’
A := 0;
{quando for caracter, irá receber espaço
B := 0;
em branco entre aspas}
resp := true;
{corpo do algoritmo, instruções e nome := ‘ ’;
comandos} {quando for caracter, irá receber espaço
Comando 1 em branco entre aspas}

Comando 2
{corpo do algoritmo, instruções e
Comando 3
comandos}
....
Comando 1;
Pausa {pausa fixa}
Comando 2;
fim
Comando 3 ;
....
Readln; {pausa fixa}
end.

IMPORTANTE!

• O “ponto e vírgula” ( ; ) na linguagem PascalZim indica que a instrução está fina-


lizada e poderá passar para a próxima instrução ou linha de comando;

• No PascalZim o “end.” no final do programa deverá ser acompanhado do ponto


final;

• Só “não” terá ponto e vírgula em abertura de blocos, como o tipo:

• var

• begin
82 UNIUBE

• if ... then

• while ... do

• repeat

• case

3.1.2 Estrutura sequencial

Exemplo 1

• Receber um número, processar e mostrar o valor de seu quadrado (conside-


rar números positivos).

ALGORITMO PASCALZIM
algoritmo quadrado program quadrado;
{uses CRT;} {UNIT – biblioteca de vídeo
para o Pascal}
{declarar o nome e tipo das variáveis} {declarar o nome e tipo das variáveis}
var var
n, r : inteiro n, r : integer;
{bloco do código principal} {bloco do código principal}
inicio begin
{inicializar variáveis} {inicializar variáveis}
n0 n := 0;
r0 r := 0;
limpa-tela clrscr; {limpar a tela}
mostre (‘digite um número ...: ’) write (‘digite um número ...: ’);
leia-pl (n) readln (n);
{calculo do quadrado} {calculo do quadrado}
r  quadrado (n) r := sqr (n);
{saindo com o resultado para o {saindo com o resultado para o
vídeo} vídeo}
mostre-pl (‘resultado = ’, r) writeln (‘resultado = ’, r);
mostre-pl (‘acabou ...’) writeln (‘acabou ...’);
pausa readln; {pausa fixa}
fim end.
UNIUBE 83

3.1.3 Estrutura condicional

A estrutura condicional é muito importante, pois permite a escolha do conjunto


de instruções caso a condição seja verdadeira, ou ainda outro conjunto de ins-
truções caso a condição seja falsa.

A Tabela 2 representa a codificação do comando “SE” para “PascalZim”.

Tabela 2: Estrutura condicional.

ALGORITMO PASCALZIM
se if
entao then
senão else
inicio begin
fim end

IMPORTANTE!

A estrutura condicional “IF” e “ELSE” na linguagem de programação PascalZim: quando


se têm mais de uma linha de comando dentro de cada bloco (“verdadeiro” e/ou falso)
é necessário utilizar o “Begin” e “end” para marcar o início e o fim do bloco, tendo o
“ponto e vírgula” no final de todas as linhas de instruções, exceto IF, BEGIN, ELSE
e END.

Caso só tenha uma linha, não é preciso do “begin” e “end”, e caso tenha o “else”,
não colocar o ponto e virgula, para não fechar o “if”.

Observe o exemplo a seguir.

3.1.3.1 Estrutura condicional (composta)

Exemplo 2 (uso do SE (IF))

• receber um número, verificar se ele é positivo (maior que zero); caso verda-
deiro, mostrar o valor de seu quadrado; caso seja falso, mostrar uma mensa-
gem: “o número é zero ou negativo”.
84 UNIUBE

ALGORITMO PASCALZIM
algoritmo quadrado program quadrado;
{declarar o nome e tipo das variáveis} {declarar o nome e tipo das variáveis}
var var
n, r : inteiro n, r : integer;
{bloco do código principal} {bloco do código principal}
inicio begin
{inicializar variáveis} {inicializar variáveis}
n  0 n := 0;
r  0 r := 0;
limpa‑tela clrscr; {limpar a tela}
mostre (‘digite um número ...: ’) write (‘digite um número ...: ’);
leia‑pl (n) readln (n);
{verificando se número válido} {verificando se o número é válido}
se n <= 0 entao if n <= 0 then
 mostre‑pl (‘o número é  writeln (‘o número é zero
zero ou negativo’) ou negativo’)
senao else
{cálculo do quadrado} begin
r  quadrado (n) {cálculo do quadrado}
{saindo com o resultado r := sqr (n);
para o vídeo} {saindo com o resultado
mostre‑pl (‘resultado = ’, r) para o vídeo}
fim‑se writeln (‘resultado = ’, r);
mostre‑pl (‘acabou ...’) end ;
pausa {Ponto e vírgula acima, fecha o IF
fim e o “end” fecha o “Begin”}
writeln (‘acabou ...’);
readln; {pausa fixa}
end.

Exemplo 3

Elaborar um algoritmo para receber o valor de raio de um círculo. Validar corre-


tivamente durante a entrada para que seja maior que zero. Logo a seguir, pro-
cessar o cálculo da área e mostrar o resultado no vídeo.

Sabe‑se que a fórmula é: área = p R2

Só para recordar, a descrição a seguir é um algoritmo “narrativo”.


UNIUBE 85

Interpretando o texto, sabemos que:

• será necessário criar as variáveis “area” e “raio”;

• será necessário inicializar as duas;

• trabalharemos com o valor de pi ( p ), que é constante = 3.1415;

• iremos receber o valor do raio via teclado;

• validar com estrutura de repetição “enquanto” ou “repita”, para que o valor


seja maior que zero;

• calcular o valor da área e mostrá-lo no vídeo;

• determinaremos: pausa e fim.

Acompanhe a estrutura:

ALGORITMO – EXEMPLO 3 PASCALZIM – EXEMPLO 3


algoritmo area_circulo program area_circulo;
{declarar o nome e tipo das variáveis} {declaração da UNIT para o caso de usar
o PASCAL}
{uses CRT;}
{declarar o nome e tipo das variáveis}
var var
a, r : real a, r : real;
{bloco do código principal} {bloco do código principal}
inicio begin
{inicializar variáveis} {inicializar variáveis}
a0 a := 0;
r0 r := 0;
clrscr; {limpar a tela – no
limpa-tela PASCAL, só é reconhecido se a
UNIT CRT estiver ativa no início
mostre ((‘digite um valor para o programa}
raio maior que zero: ’) write ((‘digite um valor para o raio
leia-pl (r) maior que zero.: ’);
{verificando se o valor do raio é readln (r);
válido} {verificando se o número é válido}
86 UNIUBE

se r <= 0 entao if r <= 0 then


mostre ((‘valor negativo ou begin
zero.’) write ((‘valor negativo ou
senão zero ... ’);
{cálculo área} end
a  3.1415 * quadrado (r) else
{saindo com o resultado begin
para o vídeo} {cálculo área}
mostre ((‘área do círculo = ’, a) a := 3.1415 * sqr (r);
fim-se {saindo com o resultado
mostre ((‘acabou ... ’) para o vídeo}
pausa writeln ((‘resultado = ’,
fim a:2:1);
end ; {o “end” fecha o “Begin” e
“ ; ” fecha o IF}
writeln ((‘acabou ...’);
readln; {pausa fixa}
end.

Exemplo 4 (uso do SE (IF))

Elaborar um algoritmo que receba o valor do salário de um funcionário. Proces-


sar e mostrar esse salário acrescido em 12%.

Em algoritmo, não podemos usar o símbolo de percentual (%). Então, vamos des-
membrar essa informação, podendo ser: 12/100 ou 0.12.

Interpretando o texto, sabemos que será necessário:

• criar as variáveis: “sal” (para receber valor do salário) e “resp” (para receber
o cálculo do aumento do salário);

• inicializar as duas;

• receber o valor do salário via teclado;

• verificar se o valor do salário é inválido ou válido;


UNIUBE 87

• caso seja inválido, mostrar uma mensagem;

• caso seja válido, fazer o cálculo da área e mostrá-lo no vídeo;

• pausa e fim.

PASCALZIM –
program salario;
{bloco para criar e determinar os tipos de variáveis}
var
sal, resp : real;
{bloco do código principal}
begin
{inicializar variáveis}
resp := 0;
sal := 0;
{corpo do algoritmo}
write ((‘digite o valor do salário: ’);
readln (sal);
{validação corretiva durante a entrada para o salário ser maior que zero}
If sal <= 0 then
writeln ((‘o valor do salário é inválido ... ’)
else
begin
resp := sal + ( sal * 12/100);
writeln ((‘salário acrescido em 12% = ‘, resp:2:2);
end; {o “end” fecha o “Begin” e “ ; ” fecha o IF}
writeln ((‘acabou ... ’);
readln; {pausa fixa}
end.

Exemplo 5 (uso do SE)

Elaborar um algoritmo que recebe dois números. Processar a verificação de


qual é o maior número, mostrando seu valor no vídeo.
88 UNIUBE

ALGORITMO – EXEMPLO 5 PASCALZIM – EXEMPLO 5


algoritmo maior program maior;
var var
nr1, nr2 : real nr1, nr2 : real;
{bloco do código principal} {bloco do código principal}
inicio begin
{inicializar variáveis} {inicializar variáveis}
nr1  0 nr1 := 0;
nr2  0 nr2 := 0;
{corpo do algoritmo} {corpo do algoritmo}
limpa-tela clrscr;
mostre ((‘digite o primeiro número: ’) write ((‘digite o primeiro número: ’);
leia-pl (nr1) readln (nr1);
mostre ((‘digite o segundo número: ’); write ((‘digite o segundo número:
leia-pl (nr2) ’);
);
{verificando} readln (nr2);
Se nr1 > nr2 entao {verificando}
mostre ((‘o primeiro if nr1 > nr2 then
número é o maior, e seu writeln ((‘o primeiro
valor = ’, nr1) número é o maior, e seu
senao valor =
se nr2 > nr1 entao ‘, nr1)
mostre ((‘o else
segundo número begin
é o maior, e seu if nr2 > nr1 then
valor = ’, nr2) writeln ((‘o segundo
senao número é o maior, e seu
mostre ((‘os dois valor =
números são ‘, nr2)
iguais ’) else
fim-se writeln ((‘os dois números
fim-se são iguais ’)
mostre ((‘acabou ... ’) ; { “ ; ” fecha o IF}
pausa end;
fim writeln (‘acabou ... ’);
readln;
end.
UNIUBE 89

Exemplo 6 (uso do SE)

Elaborar um algoritmo que receba o sexo (“m” para masculino ou “f” para femi-
nino) e a altura (maior que zero) de uma pessoa em centímetros. Processar e
mostrar o peso ideal dessa pessoa, utilizando a fórmula, a seguir:

Caso o sexo masculino: peso = (72.7 * altura) – 58

Caso o sexo feminino: peso = (62.1 * altura) – 44.77

DICAS

Converter a altura para metros (dividir altura por 100).

Para resolvermos o Exemplo 6, teremos de verificar as condições de validade


das informações para as variáveis sexo e altura, e, só depois, processarmos o
cálculo de acordo com o sexo.

Os passos podem ser:

• criar as variáveis;

• inicializar as variáveis;

• receber o sexo;

• verificar a validade da informação para sexo;

• caso o sexo seja válido, receber a altura;

• verificar a validade da informação para altura;

• caso a altura seja válida, verificar se o sexo é masculino ou feminino e pro-


cessar os cálculos conforme essa informação;

• pausa/fim de algoritmo.
90 UNIUBE

Exemplo 6: Resolução em PascalZim

program peso_ideal ;
{bloco das variáveis}
var
peso, alt : real;
sx : string;
{bloco do código principal}
begin
{inicializar variáveis} Como só temos
alt := 0; uma linha de
peso := 0; comando, não é
sx := ‘ ‘; preciso colocar o
{corpo do algoritmo} “BEGIN” e “end”.
write (‘digite o sexo dessa pessoa, m ou f ...: ’); E, por
readln (sx); consequência, não
if (sx <> ‘f’) and (sx <> ‘m’) and (sx <> ‘F’) and colocamos o “ponto
(sx <> ‘M’) then e vírgula” nesta
writeln (‘sexo inválido .... ’) linha, pois, se o
else colocarmos, o
begin interpretador
write (‘digite a altura da pessoa em (compilador) não irá
centímetros ..: ’); reconhecer o “else”.
readln (alt);
if alt <= 0 then
writeln (‘altura inválida ... ’)
Converter altura
else
para metro.
begin
if (sx = ‘m’) or (sx = ‘M’) then
peso := (72.7 * (alt / 100)) – 58
else
peso := (62.1 * (alt / 100)) – 44.77
; {fechamento do IF}
UNIUBE 91

writeln (‘O peso ideal para esta pessoa é = ’, peso:2:1);


end;
end; peso:2:1 → representa uma MÁSCARA de
writeln (‘Acabou ... ’); apresentação em VÍDEO, evitando que o
readln; conteúdo da variável seja mostrado em
end. NOTAÇÃO CIENTÍFICA, em que:
peso → é a variável do tipo real;
:2 → representa a quantidade casas na
inteira; e,
:1 → representa a quantidade casas
decimais.

3.1.4 Estruturas de repetição

Recorde-se que as estruturas de repetição têm por característica a repetição


das instruções que estão dentro de seu bloco, até que uma determinada condi-
ção seja satisfeita.

As estruturas de repetição, também chamadas de blocos de repetição, podem


ser criadas em qualquer momento no algoritmo.

Podemos ter um bloco de repetição dentro de uma estrutura condicional SE e


SENAO, como, também, ter um bloco condicional SE e SENAO dentro de um
bloco de repetição. Podemos ter, ainda, blocos de repetição dentro de outros
blocos de repetição.

A sintaxe das estruturas de repetição em PascalZim

ALGORITMO PASCALZIM
Enquanto While
Repita Repeat
Para For
92 UNIUBE

Veja as estruturas, a seguir:

• Estrutura: ENQUANTO / WHILE

algoritmo ex_enquanto program ex_enquanto;


{declaração das variáveis} {declaração das variáveis}
var F
var
Condição
...... : tipo ...... : tipo;
{bloco do código principal} {bloco do código principal}
inicio V begin
{inicializar variáveis} Instrução 1 {inicializar variáveis}
. .;
. Instrução 2
.;
{corpo do algoritmo} {corpo do algoritmo}
. .;
Instrução N
. {exemplo com . {exemplo com
enquanto} enquanto}
enquanto while <condicao>
<condicao> faca do begin
instrucao 1 instrucao 1;
instrucao 2 instrucao 2;
instrucoes n instrucoes n;
fim-enquanto end;
. {o “end” fecha o
. “begin” e
. o “ ; “ fecha o “while”}
mostre ((‘acabou ... ’) .
pausa .
fim .
writeln (‘acabou ... ’);
readln; {pausa fixa}
end.
UNIUBE 93

• Estrutura: REPITA / REPEAT

algoritmo ex_repita program ex_repita;


{declaração variáveis} {declaração variáveis}
var Instrução 1 var
...... : tipo ...... : tipo;
{bloco do código principal} Instrução 2 {bloco do código principal}
inicio inicio
{inicializar variáveis} {inicializar variáveis}
Instrução N
. .;
. .;
{corpo do algoritmo} {corpo do algoritmo}
V
. Condição .;
. {exemplo com . ; {exemplo com
REPITA} F REPITA}
Repita repeat
instrucao 1 instrucao 1;
instrucao 2 instrucao 2;
instrucoes n instrucoes n;
Ate-que condicao until condição;
. {não precisa de
. “begin”}
. {o “ ; “ fecha o
mostre ((‘acabou ... ’) “while”}
pausa .
fim .
writeln ((‘acabou ... ’);
readln; {pausa fixa}
end.
94 UNIUBE

• Estrutura: PARA / FOR

algoritmo exercicio_PARA algoritmo exercicio_


{declaração das variáveis} PARA;
Para x de inicio
var até fim {declaração das variáveis}
...... : tipo (incremento de + 1 var
automático)
{bloco do código principal} ...... : tipo;
inicio {bloco do código principal}
{inicializar variáveis} Instrução 1 Begin
. {inicializar variáveis}
. Instrução 2
.;
{corpo do algoritmo} .;
. {corpo do algoritmo}
Instrução N
. {exemplo com .;
PARA} . {exemplo com
Para x de inicio ate PARA}
fim faca for x := inicio to fim
instrucao 1 do
instrucao 2 begin
instrucoes n instrucao 1;
Fim-para instrucao 2;
. instrucoes
. n;
. end;
(
mostre (‘acabou ... ’) {o “end” fecha o
pausa “begin” e
fim o “ ; “ fecha o “for” }
.;
.;
Writeln (‘acabou ...’);
Readln;
end.

Exemplo 7

Vejamos a demonstração do cálculo da tabuada de multiplicação de um número.


Deverá, durante a entrada, ter VALIDAÇÃO corretivamente (in time), para que
não seja menor que 1 e nem maior que 10. Neste sentido, considerando que o
número seja 5, temos:

5*1=5
UNIUBE  95

5 * 2 = 10
5 * 3 = 15
:
:
5 * 10 = 50
{nome do nosso algoritmo}
program exemplo7_tabuada_multiplicacao;
{uses crt; {caso utilize o pascal} }
{bloco para criar e determinar os tipos de variáveis}
var
nr, resp, cont : integer;
{bloco do código principal}
begin
{inicializar variáveis}
nr := 0; resp := 0; cont := 1;
{corpo do algoritmo}
clrscr;
write (‘digite um número maior que zero e menor que 11 ...: ’);
readln (nr);
{validação corretiva durante a entrada para que o NR esteja no intervalo 0 a 10
(inclusive)}
while (nr <=0) or (nr > 10) do
begin
write (‘número é inválido ... digite outro entre 1 a 10 ...: ’);
readln (nr);
end;
{laço para efetuar o cálculo da tabuada de multiplicação}
while cont <= 10 do
begin
resp := nr * cont;
writeln (nr, ‘ * ’, cont, ‘ = ’, resp);
{fazendo o contador passar para o próximo número}
cont := cont + 1;
end;
writeln (‘acabou .... pressione enter ’);
readln; {pausa fixa}
end.
96 UNIUBE

Exemplo 8 (uso de laços)

Elaborar um algoritmo (em pascal ou pascalzim) que processe e mostre todos


os números de 15 a 70, variando de um em um.

Demonstraremos a resolução nas três estruturas de repetição “while”, “repeat”


e “for”.

EXEMPLIFICANDO!

Faça o teste de mês (simulação), visando compreender a execução nas três formas.

Veja a seguir a resolução do teste, utilizando a estrutura de repetição “while”.

program exemplo_8_nrs_15_a_70_com_while;
var
cont : integer;
begin
cont := 15;
clrscr;
{título na tela, demonstrando ao usuário o que será apresentado}
writeln (‘Mostrando os números de 15 a 70, variando de 1 em 1’);
writeln;
while cont <= 70 do
begin
write (cont, ‘ ’);
cont := cont + 1;
end;
writeln; {pular uma linha em branco}
writeln (‘acabou ... ’);
readln; {pausa fixa}
END.

Agora, demonstraremos a resolução do mesmo enunciado, usando a estrutura de


repetição “Repeat”.
UNIUBE 97

program exemplo_8_nrs_15_a_70_com_REPEAT;
var
cont : integer;
begin
cont := 15;
clrscr;
writeln (‘números de 15 a 70, variando de 1 em 1’);
writeln;
repeat
write (cont, ‘ ’);
cont := cont + 1;
until cont > 70; {o “ ponto e vírgula ” fecha o repeat}
writeln;
writeln (‘acabou ... ’);
readln; {pausa fixa}
end.

E, por fim, a resolução usando a estrutura de repetição “for”:

program exemplo_8_nrs_15_a_70_com_for;
var
cont : integer;
begin
clrscr;
writeln (‘números de 15 a 70, variando de 1 em 1’);
writeln;
for cont := 15 to 70 do
begin
write (cont, ‘ ’) ; {o “for” tem incremento automático de + 1,}
{não sendo necessário utilizar cont := cont + 1}
end;
writeln;
writeln (‘acabou ... ’);
readln; {pausa fixa}
end.

Exemplo 9 (uso de laços)

Elaborar um algoritmo (em Pascal ou PascalZim) que receba dois números in-
teiros, processar e mostrar todos os números pares existentes no intervalo do
menor número até o maior número, variando de 1 em 1. Logo após, mostrar o
valor da soma dos números ímpares.
98 UNIUBE

Observações:

• para um número ser PAR, basta dividi‑lo por 2, verificando se o RESTO é igual
a ZERO. Caso seja diferente de ZERO, ele é ÍMPAR;

• no Pascal ou PascalZim, temos uma função chamada MOD (lembra?), então


vamos utilizá‑la;

• caso os números sejam iguais, dar uma mensagem e não precisa verificar se
é par ou ímpar.
{nome do nosso algoritmo}
program exemplo_9_pares_impares;
{bloco das variáveis}
var
n1, n2 : integer;
somaimp : real;
{bloco do código principal}
begin
{inicializar variáveis}
N1 := 1; n2 := 0; somaimp := 0;
{corpo do algoritmo}
clrscr;
writeln (‘mostrando os números pares existente entre dois números, variando
de 1 em 1’);
writeln; {linha em branco}
write (‘digite o primeiro número ...: ’);
readln (n1);
write (‘digite o segundo número ..: ’);
readln (n2);
{verificando qual é menor}
if n1 < n2 then
begin
{laço de repetição}
while n1 <= n2 do
begin
if n1 mod 2 = 0 then
write (n1, ‘ ’)
else
somaimp := somaimp + n1;
{fechamento do if}
n1 := n1 + 1;
end; {fechamento do laço de repetição while}
writeln;
writeln (‘soma dos números ímpares = ’, somaimp:2:0);
end
UNIUBE  99

else
begin
if n2 < n1 then
begin
while n2 <= n1 do
begin
if n2 mod 2 = 0 then
write (n2, ‘ ‘)
else
somaimp := somaimp + n2;
{fechamento do if}
n2 := n2 + 1;
end; {fechamento do laço de repetição while}
writeln (‘soma dos números ímpares = ’, somaimp:2:0);
end
else
begin
writeln (‘números são iguais’);
end;
end;
writeln;
writeln;
writeln (‘acabou ... ’);
readln;
end.

Exemplo 10 (uso de laços)

Elaborar um algoritmo que receba um número para ser o limite da sequência exibida,
a seguir. Processar e mostrar a sequência enquanto o valor for menor ou igual a
esse número limite informado. Validar para que o número seja maior que dois.

2 , 3 , 5 , 9 , 17, ..., N

{nome do nosso algoritmo}


program exemplo_10_laco;
{bloco para criar e determinar os tipos de variáveis}
var
cont, n, aux : integer;
{bloco do código principal}
100 UNIUBE

begin
{inicializar variáveis}
cont := 2;
n := 0;
aux := 1;
{corpo do algoritmo}
Clrscr;
writeln (‘mostrando a sequência: 2 , 3 , 5 , 9 , 17, ..., N’);
writeln;
write (‘digite o número limite ....: ’);
readln (n);
{verificação se o valor de n é inválido}
while n < 2 do
begin
write (‘número inválido ... digite outro maior que dois ...: ’);
readln (n);
end;
{laço de repetição}
while cont <= n do
begin
write (cont, ‘ ’);
cont := cont + aux;
aux := aux * 2;
end;
writeln;
writeln (‘acabou ... ’);
readln;
end.

Exemplo 11 (uso de laços)

Elaborar um algoritmo que receba um número para ser o limite da sequência


apresentada a seguir. Processar e mostrar a sequência enquanto o valor dela
for menor ou igual a esse número limite. Validar corretivamente para que o nú-
mero limite seja maior ou igual a nove.

9 , 16 , 25 , 36 , 49, ..., N

{nome do nosso algoritmo}


program exemplo_11_laco;
{bloco para criar e determinar os tipos de variáveis}
UNIUBE  101

var
cont, n, aux : integer;
{bloco do código principal}
begin
{inicializar variáveis}
cont := 9;
n := 0;
aux := 7;
{corpo do algoritmo}
Clrscr;
write (‘mostrando a sequência: 9 , 16 , 25 , 36 , 49, ..., N’);
writeln;
write (‘digite o número limite ....:’);
readln (n);
{verificação se o valor de n é inválido}
while n < 9 do
begin
write (‘número inválido ... digite outro maior ou igual a nove ...: ’);
readln (n);
end;
{laço de repetição para mostrar a sequência}
while cont <= n do
begin
write (cont, ‘ ’);
cont := cont + aux;
aux := aux + 2;
end;
writeln;
writeln (‘acabou ... ’);
readln;
end.

Exemplo 12 (uso de laços)

Elaborar um algoritmo (em Pascal ou PascalZim) que receba uma lista de nú-
meros inteiros via teclado. Para finalizar a entrada dos números, será digitado
o número zero, o qual não fará parte da contagem, e, ao final, mostrar:

a) quantos números foram digitados;

b) quantos números dessa lista são positivos;


102 UNIUBE

c) quantos números dessa lista são negativos;

d) quantos números são pares;

e) quantos números são ímpares;

f) média dos números positivos.

DICAS

Na amostragem, verificar se houve ou não entrada dos itens anteriores.

Veja:

{nome do nosso algoritmo}


program exemplo_12_laco;
{bloco para criar e determinar os tipos de variáveis}
var
n, tot, qtd_pos, qtd_neg, qtd_par, qtd_imp : integer;
md : real;
{bloco do código principal}
begin
{inicializar variáveis}
n := 0; qtd_pos := 0; qtd_neg := 0;

qtd_par := 0; qtd_imp := 0; tot := 0;


md := 0;
{corpo do algoritmo}
Clrscr;
write (‘digite o primeiro número ...: ’);
readln (n);
{laço de repetição}
while n <> 0 do
begin
{verificando se o número é positivo senao negativo}
if n > 0 then
begin
qtd_pos := qtd_pos + 1;
{somando os números para cálculo da média}
md := md + n;
UNIUBE  103

end
else
qtd_neg := qtd_neg + 1;
{fechamento do if}

{verificando se o número é par senao ímpar}


if (n mod 2) = 0 then
qtd_par := qtd_par + 1
else
qtd_imp := qtd_imp + 1;
{fechamento do if}

write (‘digite o próximo número ...: ’);
readln (n);
end;
clrscr;
writeln (‘resultados finais processados’);
writeln; {pulando um linha em branco}
if tot = 0 then
writeln (‘não houve entrada de dados’)
else
begin
writeln (‘total de números digitados =’, tot);
if qtd_pos = 0 then
writeln (‘não houve entrada de número positivo’)
else
begin
md := md / tot;
writeln (‘quantidade de números positivos =’, qtd_pos);
writeln (‘media dos números positivos =’, md:2:1);
end;
if qtd_neg = 0 then
writeln (‘não houve entrada de números negativos’)
else
writeln (‘quantidade de números negativos =’, qtd_neg);

If qtd_par = 0 then
writeln (‘não houve entrada de números pares’)
else
writeln (‘quantidade de números pares =’, qtd_par);
104 UNIUBE

if qtd_imp = 0 then
writeln (‘não houve entrada de números negativos’)
else
writeln (‘quantidade de números impares =’, qtd_imp);
end;
writeln; {pulando uma linha em branco}
writeln (‘acabou ...’);
readln;
end.

AGORA É A SUA VEZ

Atividade 1

Elabore um algoritmo para cada uma das sequências de números colocadas a seguir.
Em alguns casos, será necessário receber o número limite. Você deverá fazer a va-
lidação corretiva desse “N”, e, depois, mostrar a sequência até esse número.

Observação 1: o valor de N de cada exercício deverá ser informado via teclado e


deverá ser maior que o início da sequência (isso para os exercícios 8c e 8d); caso
contrário, dar uma mensagem de número inválido e finalizar o algoritmo.

1a) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15

1b) 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0

1c) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... , N

1d) 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, ..., N

Observação para 1d:

• valide corretivamente para que “N” seja maior que zero e ímpar;

• a variação será de 1 em 1; então, você deverá “verificar” se o contador é par ou


ímpar. Sabe-se que um número para ser “par” o resto da divisão desse número por
2 deverá ser zero.

1e) N, ..., 8, 7, 6, 5, 4, 3, 2, 1, 0

1f) N, ... , 5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5, ..., –N

Observação para 1f:

• valide corretivamente para que “N” seja maior que zero;


UNIUBE 105

• não existe nome de variável com símbolos –N; então, você deverá criar uma variá-
vel “AUX” para receber a conversão do conteúdo de N multiplicado por –1.

1g) 1, 2, 3, 4, 8, 9, 10, 11, 22, 23, 24, 25, ..., N

1h) N, ..., 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, ..., N

1i) 0, 1, 2, 3, 4, ..., N, ..., 4, 3, 2, 1

Atividade 2

Elabore um algoritmo (em Pascal ou PascalZim) que receba dois números, o primeiro
irá representar a base e deverá ser positivo, o segundo irá representar o expoente,
podendo ser negativo, zero ou positivo.

Processar e mostrar o resultado do primeiro elevado ao segundo. Para tal, NÃO usar
funções prontas que calculam a exponenciação como o tipo: exp(), ln(), ^, **, dentre
outras. Usar estrutura de repetição.

Exemplos:

• caso a base seja 2, e o expoente seja 0:

Resultado = 1, pois, todo número elevado a zero é igual a um.

• Caso a base seja 2, e o expoente seja 5:

Resultado = 32

• Caso a base seja 2, e o expoente seja –5:

• Quando o expoente é negativo, a fórmula é igual a:

1
resultado = 0,03125
25

Atividade 3

Na matemática, o fatorial é representado pelo símbolo de exclamação. Sabe-se que


FATORIAL é a multiplicação de todos seus termos de um número, começando pelo
1, variando-se de 1 em 1, até chegar ao número desejado.

Como exemplo, vejamos o fatorial do número 5.

5! = 1 * 2 * 3 * 4 * 5 = 120
106 UNIUBE

Observações:

• não existe fatorial de número negativo;

• o fatorial de zero é, por definição, igual a 1.

3.2 Modularização
Modularização são blocos (módulos) ou subprogramas de algoritmos com o
propósito de permitir sua reutilização a qualquer momento pelo código principal
ou programa principal. Possuindo algumas vantagens:

• economia do código fonte;

• facilidade de alteração do código, pois, altera-se só o módulo, e não as cha-


madas que estão no código principal;

• generalidade de código com uso de parâmetros. Podendo os módulos ser ge-


néricos.

As variáveis que são criadas na abertura do programa são chamadas de VA-


RIÁVEIS GLOBAIS, por terem seus conteúdos visíveis dentro de qualquer
módulo e código principal. Já as variáveis que são criadas DENTRO dos módu-
los são chamadas “LOCAIS”, por terem seus conteúdos visíveis somente ao
módulo que as criou. São dois tipos de módulos: procedimento e função.

3.2.1 Procedimento (procedure)

O procedimento tem por característica, executar seus comandos internos, podendo


ou não retornar alguma informação. Nós expressamos essa característica por:
“Procedimento SEM parâmetro”, “Procedimento COM Parâmetro” por valor
e/ou por referência.

O procedimento sem parâmetro:

• quando é chamado pelo código principal, executa suas instruções e volta ao


código principal, sem retornar nenhuma informação.
UNIUBE 107

O procedimento com passagem de parâmetro:

• por valor: vai junto com sua chamada, uma ou mais variáveis com informa-
ção a ser utilizada nos cálculos e processos, porém, quando retorna, NÃO
traz nenhum dado com ela;

• por referência: vai junto com sua chamada, uma ou mais variáveis com
informação a ser utilizada nos cálculos e processos, porém, quando retorna,
atualiza a variável ou as variáveis da chamada.

IMPORTANTE!

Na abertura do módulo, junto ao nome do procedimento, acrescenta-se a palavra


VAR antes das variáveis para representar quando for por REFERÊNCIA.

Observação:

Podemos chamar um ou mais procedimentos dentro de outro procedimento, porém,


devem-se criar os procedimentos na parte superior desse procedimento, ou seja,
vamos imaginar o procedimento com nome de “teste”, dentro deste, temos as se-
guintes chamadas: validar, calcular. Então, os procedimentos “validar” e “calcular”
devem ser criados acima do procedimento “teste”.

Vejamos os exemplos, a seguir:

Exemplo 13 (Procedimento SEM parâmetro)

Elaborar um algoritmo (em Pascal ou PascalZim), que crie um procedimento


para receber dois números, processar e mostrar a soma entre eles. Observe
que não haverá necessidade de criar variáveis GLOBAIS, o código principal
servirá somente para fazer a chamada do módulo.
108 UNIUBE

program exemplo_13_procedimento_sem_parametro;
{var}
{não vamos precisar de variáveis globais}

{área de criação dos procedimentos}


procedure entrada;
var
n1, n2, soma : integer;
begin
{inicializar variáveis locais}
n1 := 0; n2 := 0; soma := 0;
clrscr;
write (‘digite o primeiro número ...: ’);
readln (n1);
write (‘digite o segundo número ...: ’);
readln (n2);
{processando a soma}
soma := n1 + n2;
writeln;
writeln (‘resultado = ’, soma);
end; {fim do procedimento}
{--------------------------------------------------------------}
{código principal}
begin
clrscr;
entrada;
writeln; {pulando uma linha em branco}
writeln (‘acabou ... ’);
readln;
end.

Exemplo 14 (Procedimento COM parâmetro)

Elaborar um algoritmo (em Pascal ou PascalZim) que receba no código principal


um número, criar um procedimento com passagem de parâmetro por referência
que receba esse número e validá‑lo corretivamente para que esse número seja
positivo. Criar outro procedimento com passagem de parâmetro por valor que
receba esse número. Calcule e mostre a raiz quadrada desse número.
UNIUBE  109

program exemplo_14_procedimento_com_parametro;
{variáveis globais}
var
n : real;

{área de criação dos procedimentos}


procedure validar ( var x : real );
{não é necessário criar variável local para esse procedimento}
begin
while (x <= 0) do
begin
write (‘inválido … digite outro número inteiro e positive …:’);
readln (x);
end;
end; {fim do procedimento}

{--------------------------------------------------------------}

procedimento calculo ( x : real);


begin
x := sqrt (x);
writeln (‘raiz quadrada =’, x:2:2);
end; {fim do procedimento}

{--------------------------------------------------------------}
{código principal}
begin
clrscr;
write (‘digite um número inteiro e positivo ...:’);
readln (n);
validar (n);
calculo (n);
writeln; {pulando uma linha em branco}
writeln (‘acabou ...’);
readln;
end.
110 UNIUBE

Exemplo 15 (Procedimento COM mais de um parâmetro)

Elaborar um algoritmo (em Pascal ou PascalZim) que, dentro do código principal,


receba duas notas e o nome de um aluno. Criar um procedimento com passagem
de parâmetro por referência para validar corretivamente a nota para que esteja
entre 0 a 10 (inclusive eles). Criar um outro procedimento com passagem de
parâmetro por valor, para receber as duas notas e, por referência, para retornar
o resultado da média, a qual será mostrada no código principal.

program exemplo_15_procedimento_com_mais_parametros;
{variáveis globais}
var
n1, n2, res : real;
nm : string;

{área de criação dos procedimentos}


procedure validar ( var x : real );
{não é necessário criar variável local para esse procedimento}
begin
while (x < 0) or (x > 10) do
begin
write (‘inválido … digite outra entre 0 a 10 …:’);
readln (x);
end;
end; {fim do procedimento}

{--------------------------------------------------------------}

procedure calculo (a, c : real ; var d : real);


begin
d := (a + b) / 2;
end; {fim do procedimento}

{--------------------------------------------------------------}
{código principal}
begin
n1 := 0; n2 := 0; res := 0; nm := ‘ ‘;
clrscr;
write (‘digite o nome do aluno ...:’);
readln (nm);
UNIUBE  111

write (‘digite a primeira nota entre 0 a 10 ...:’);


readln (n1);
validar (n1);
write (‘digite a segunda nota entre 0 a 10 ...:’);
readln (n2);
validar (n2);
calculo (n1, n2, res);
writeln; {pulando uma linha em branco}
writeln (‘cálculo da média =’, res:2:1);
writeln; {pulando uma linha em branco}
writeln (‘acabou ...’);
readln;
end.

3.2.2 Função (function)

As funções são bem semelhantes aos procedimentos. A principal diferença é


que elas sempre retornam ao código principal um valor associado ao nome que
a chamou.

Exemplo 16 (Função)

Elaborar um algoritmo (em Pascal ou PascalZim) que, dentro do código principal,


receba duas notas de um aluno. Criar um procedimento com passagem de pa-
râmetro por referência para validar corretivamente as notas para que estejam
entre 0 a 10 (inclusive eles). Criar uma função para calcular a média.

program exemplo_16_funcao_sem_parametro;
{variáveis globais}
var
n1, n2 : real;

{área de criação dos procedimentos}


procedure validar ( var x : real );
{não é necessário criar variável local para esse procedimento}
begin
while (x < 0) or (x > 10) do
begin
112 UNIUBE

write (‘inválido … digite outra entre 0 a 10 …:’);


readln (x);
end;
end; {fim do procedimento}

{--------------------------------------------------------------}

function media : real;


begin
media := (n1 + n2) / 2;
end; {fim do procedimento}

{--------------------------------------------------------------}

{código principal}
begin
n1 := 0; n2 := 0;
clrscr;
write (‘digite a primeira nota entre 0 a 10 ...:’);
readln (n1);
validar (n1);
write (‘digite a segunda nota entre 0 a 10 ...:’);
readln (n2);
validar (n2);
writeln; {pulando uma linha em branco} Observe que a
writeln (‘valor da média =’,media:2:1); chamada está
writeln; {pulando uma linha em branco} associada ao nome da
writeln (‘acabou ...’); função e sua tipagem.
readln; E o :2:1 é máscara
end.

Exemplo 17 (Função)

Escreva uma função chamada MEDIA que retorne a média de 3 valores reais
(A, B e C) passados como parâmetros. Escreva um programa que, para um
número indeterminado de alunos, faça para cada uma deles:

• ler as 3 notas do aluno (criar um flag [forma de finalizar ou voltar e executar


novamente]);

• calcular e mostrar o valor da média do aluno (usando a função MEDIA).


UNIUBE  113

program exemplo_17_funcao;
{variáveis globais}
var
n1, n2, n3 : real;

{área de criação dos procedimentos}


procedure validar ( var x : real );
{não é necessário criar variável local para esse procedimento}
begin
while (x < 0) or (x > 10) do
begin
write (‘inválido … digite outra entre 0 a 10 …:’);
readln (x);
end;
end; {fim do procedimento}

{--------------------------------------------------------------}

function media (a, b, c : real ) : real;


begin
media := (a + b + c) / 3;
end; {fim do procedimento}
{--------------------------------------------------------------}
{código principal}
begin
repeat
n1 := 0; n2 := 0; n3 := 0;
clrscr;
write (‘digite a primeira nota entre 0 a 10 ...:’);
readln (n1);
validar (n1);
write (‘digite a segunda nota entre 0 a 10 ...:’);
readln (n2);
Observe que estamos
validar (n2);
mandando três
write (‘digite a terceira nota entre 0 a 10 ...:’);
parâmetros (notas).
readln (n3);
E o :2:1 é máscara
validar (n3);
writeln; {pulando uma linha em branco}
writeln (‘valor da média =’,media (n1,n2,n3) :2:1);
114 UNIUBE

writeln; writeln; {pulando duas linhas em branco}


write (‘digite 1 para executar com outras notas ou 2 para sair ...:’);
readln (n1);
while (n1 < 1) or (n1 > 2) do
begin
write (‘inválido ... digite 1 ou 2 ...:’);
readln (n1);
end;
until n1 = 2;
writeln; {pulando uma linha em branco}
writeln (‘acabou ...’);
readln;
end.

Exemplo 18 (Função)

Escreva um programa Pascal que leia as 2 notas e o número de faltas de


um aluno; calcule a sua média e determine e exiba a sua situação. Caso a
aluno tenha mais de 10 faltas, ele está REPROVADO POR FALTA. Caso
contrário, estará REPROVADO se sua média for menor que 7.0 ou APRO-
VADO se sua média for maior ou igual a 7.0.

Observações:

a) utilize uma função para calcular a média e um procedimento para determinar


e exibir a situação do aluno;

b) não utilize variáveis globais.

program exemplo_18_funcao;
{variáveis globais – não tem para esse algoritmo}

{área de criação dos procedimentos}


{--------------------------------------------------------------}
function calculo (a, b : real) : real;
begin

calculo := (a + b) / 2;

end; {fim do procedimento}

{--------------------------------------------------------------}
UNIUBE  115

procedure verificar (x : integer ; z : real);


begin
if x > 10 then
begin
writeln;
writeln (‘aluno reprovado por infrequência.’);
end
else
begin
if z >= 7 then
writeln (‘aprovado com média =’, z:2:1)
else
writeln (‘reprovado com média =’, z:2:1);
end;
end;

{--------------------------------------------------------------}

procedure validar (var x : real);


{não é necessário criar variável local para esse procedimento}
begin
while (x < 0) or (x > 10) do
begin
write (‘inválido … digite outra entre 0 a 10 …:’);
readln (x);
end;
end; {fim do procedimento}

{--------------------------------------------------------------}

procedure entrada;
var
n1, n2 : real;
nrfaltas : integer;
begin
clrscr;
write (‘digite a primeira nota entre 0 a 10 ...:’);
readln (n1);
116 UNIUBE

validar (n1);
write (‘digite a segunda nota entre 0 a 10 ...:’);
readln (n2);
validar (n2);
{guardando o resultdo da media em n2}
n2 := calculo (n1,n2);
write (‘digite o número de faltas do aluno maior ou igual a zero ..:’);
readln (nrfaltas);
while (nrfaltas < 0) do
begin
write (‘inválido ... digite outro maior ou igual a zero ..:’);
readln (nrfaltas);
end;
verificar (nrfaltas, n2);
end;

{--------------------------------------------------------------}
{código principal}
begin
entrada;
writeln;
writeln (‘acabou ...’);
readln;
end.

INDICAÇÃO DE LEITURA

Sugerimos a agora a leitura do Capítulo 10, “Sub-rotinas”, do livro Fundamentos


da programação de computadores (ASCÊNCIO; CAMPOS, 2002). As autoras
propõem, neste capítulo, a divisão de problemas referentes à programação por meio
de modularização também chamada de sub-rotinas. As funções e os procedimentos
proporcionam a reutilização desses módulos de algoritmos – uma ação que contri-
bui para a manutenção dos programas.
UNIUBE 117

AGORA É A SUA VEZ

Atividade 4

Elabore um algoritmo (em Pascal ou PascalZim) que escreva um procedimento cha-


mado VERIFICAR que receba como parâmetro um valor N inteiro e escreva a palavra
POSITIVO se N for um número maior que zero, NEGATIVO se N for menor que zero,
ou ZERO se N for igual a zero.

O número será recebido no código principal e a respectiva mensagem será dentro do


procedimento.

Atividade 5

Elabore um algoritmo (em Pascal ou PascalZim) que crie uma função com o nome
de “cálculo”, que receba um valor (número) como parâmetro, e retorne o resultado
de seu triplo.

Crie um procedimento que faça a validação corretiva para que o número seja positivo
e, no código principal, receber esse número e mostrar o resultado de seu triplo.

PARADA OBRIGATÓRIA

As atividades a seguir deverão ser desenvolvidas utilizando-se procedimento e função.


Lembre-se de que o processo de modularização visa dividir o problema, gerando
bloco(s) módulo(s) de algoritmos que podem ser reutilizados.

AGORA É A SUA VEZ

Atividade 6

Faça um procedimento que receba três números inteiros como parâmetros (por valor),
representando horas, minutos e segundos, processar e mostrar o resultado da con-
versão desses números em segundos.

Exemplo: 2h, 40 min e 10 seg correspondem a 9610 segundos.


118 UNIUBE

Atividade 7

Uma loja de confecções femininas trabalha com dois tipos de vendas: V – vista, P –
prazo. A loja determinou que todas as contas a prazo serão em 5 parcelas. Para
melhor gerenciar, o proprietário contratou seus serviços para desenvolver um algoritmo
(em Pascal ou em PascalZim), que mostre os seguintes relatórios:

a) quantidade de vendas à vista no dia;

b) quantidade de vendas a prazo no dia;

c) o valor total das vendas à vista;

d) o valor total das vendas a prazo;

e) o valor total das primeiras parcelas das vendas a prazo;

f) média geral de vendas (à vista e a prazo).

Observações:

• a forma de finalizar será o valor da venda igual a zero;

• criar os seguintes módulos:

• procedimento “validar” com passagem de parâmetro por referência para validar


o valor da venda para ser positivo ou zero;

• função “calcular” para calcular o valor da primeira prestação da venda a prazo.

Resumo
Nesse capítulo, abordamos o uso de uma linguagem de programação denomi-
nada PascalZim. Nesse trabalho foi necessário aprender a codificar um pro-
grama, ou seja, o que você fazia no algoritmo, porém, agora, para a linguagem
mencionada. Tivemos o cuidado de utilizar comparações entre a escrita dos
algoritmos e dos programas em PascalZim. Enfocamos, ainda, a modularização
de blocos de comandos, seja por meio de procedimentos ou por função possi-
bilitando que você estabeleça as diferenças entre elas, assim como, identifique
sua utilização na reutilização de códigos de programação e eficiência nas ma-
nutenções e otimizações.
UNIUBE  119

Referências
ASCÊNCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida V. de. Fundamentos da
programação de computadores. São Paulo: Pearson Prentice Hall, 2002.

FARRER, Harry. Algoritmos estruturados. Rio de Janeiro: LTC, 1999.

FORBELLONE, André Luiz Villar. Lógica de programação: a construção de algoritmos e


estruturas de dados. São Paulo: Pearson Prentice Hall, 2005.

MANZANO, José Augusto. Algoritmos: lógica para desenvolvimento de programação. São


Paulo: Érica, 1996.
Parte II

Eletricidade aplicada e
equipamentos eletroeletrônicos,
volume 1
Apresentação

Prezado(a) aluno(a)

Neste componente contaremos com dois capítulos:

• Introdução à eletricidade

• Lei de Ohm e análise de circuitos elétricos

No Capítulo 4, você estudará a representação de uma grandeza pelo Sistema


Internacional de Medidas e também o arredondamento e a representação de
um número por intermédio de notação científica e da utilização de prefixos. Após
este estudo inicial de grande relevância, você verá os conceitos básicos rela-
cionados à eletricidade como corrente e tensão elétricas. Estudará, também, o
conceito de resistência elétrica.

No Capítulo 5, você terá a oportunidade de estudar as três leis básicas utilizadas


na análise de circuitos elétricos: a Lei de Ohm e as duas Leis de Kirchhoff. Em
seguida, poderá utilizá‑las na análise de circuitos elétricos em configurações
conhecidas como série, paralela e série‑paralela (mista). Estudará os conceitos
de fonte de tensão e fonte de corrente.

Bom desempenho!
Capítulo Introdução à
4 eletricidade

Márcio Aparecido Arruda / Virgílio de Melo Langoni

Introdução
Nos estudos sobre a eletricidade, é de grande importância saber traba-
lhar com números. Constantemente são realizados cálculos envolvendo
medidas das grandezas envolvidas em um circuito elétrico. Como nem
sempre os resultados dos cálculos são números exatos, saber como
arredondar esses números proporcionará ao estudante trabalhar com
um valor aproximado causando o menor erro possível.

É abordada, neste capítulo, a correta forma de manipulação de valores


medidos das grandezas elétricas, com ênfase no correto arredonda-
mento desses valores. Trata ainda da transformação dos valores,
expressando-os em notação de potência de dez e ainda sobre o uso
dos prefixos gregos utilizados em substituição à potência de dez. Em
muitos casos, principalmente quando manipulando valores muito gran-
des ou muito pequenos, torna-se cômodo expressar e manipular esses
valores em potência de dez.

Tão importante quanto expressar corretamente uma grandeza é saber


atribuir a ela uma unidade correta. Por exemplo, não podemos expres-
sar um valor medido de uma determinada massa em metros. Não faz
sentido algum. Assim, apresentamos neste capítulo o Sistema Interna-
cional de Medidas, que irá orientá-lo(a) quanto ao correto uso das
unidades atribuídas às grandezas. Ainda com relação ao uso de unida-
des, é importante observarmos que às vezes nos deparamos com uma
grandeza expressa em um unidade diferente daquela a qual estamos
acostumados, por exemplo, um comprimento expresso em pés e não
em metros. Neste sentido, em várias situações será necessário conver-
ter uma unidade em outra a fim de facilitar os cálculos que envolvem
determinada grandeza.
126 UNIUBE

Para que você tenha um bom aproveitamento, é desejável que os con-


ceitos relacionados ao arredondamento de valores e o correto uso de
unidades sejam compreendidos. Ainda, é desejável que compreenda a
respeito da conversão entre unidades e da utilização do Sistema Inter-
nacional de Unidades.

INDICAÇÃO DE LEITURA

Para aprofundar os conceitos e exemplos sugerimos a leitura de algumas seções


do livro Introdução à análise de circuitos de autoria de Robert L. Boylestad
(2004).

Objetivos
Ao final deste capítulo, você deverá ser capaz de:

• definir Sistema Internacional de Medidas;


• conhecer os diferentes instrumentos de medidas;
• utilizar as diferentes unidades de medidas, em seu dia a dia;
• converter uma unidade de medida em outra correspondente;
• arredondar um número, considerando os algarismos significa-
tivos;
• transformar um número utilizando a notação científica padroni-
zada;
• aplicar corretamente prefixos gregos em substituição à potência
de dez.
• compreender o funcionamento de circuitos que operam em re-
gime de corrente contínua.

Esquema
4.1 Sistema Internacional de Medidas, arredondamento e potência de
dez
4.1.1 Histórico das unidades de medidas
4.1.2 Sistema Internacional de Medidas – SI
4.1.3 Algarismos significativos
4.1.4 Erros
4.1.5 Arredondamento
4.1.6 Notação científica
UNIUBE  127

4.1.7 Prefixos do Sistema Internacional


4.2 Corrente e tensão
4.2.1 Condutores e isolantes
4.2.2 Corrente elétrica
4.2.3 Tensão
4.3 Resistência
4.3.1 Resistência em condutores
4.3.2 Condutância
4.3.3 Aspectos construtivos dos resistores
4.3.4 Coeficiente de temperatura α

4.1 Sistema Internacional de Medidas, arredondamento e


potência de dez
O Sistema Internacional de Medidas, conhecido por SI, foi criado com o objetivo
de estabelecer o uso adequado das unidades de medida para que uma grandeza
seja expressa e compreendida de forma correta.

Você já usou por várias vezes esse sistema de medidas em diferentes situações
de seu cotidiano. Já mediu, por exemplo, uma folha para ver se era do tamanho
ofício; já usou medidas proporcionais, para desenhar figuras em quadrinhos; já
mediu uma parede de seu quarto, para ver se comportava um guarda‑roupa ou
um outro móvel.

Nesse sentido, você já sabe que o ato de medir significa avaliar ou determinar
a medida de algum objeto. Sabe também que, para a realização de uma medi-
ção, necessitamos de um padrão de comparação da mesma espécie da quan-
tidade a ser medida. A esse padrão nomeamos unidade de medida.

Você conhece também várias unidades de medida e alguns instrumentos utili-


zados para fazer medição. Sabemos que a medição deve ser executada com
um instrumento de medida calibrado e uma forma padronizada de escrever o
valor da medida conforme a sua unidade. Veja, a seguir, algumas unidades de
medida e alguns instrumentos:

Unidade de medida: metro, quilo, litro, Volt’s etc.

Instrumento de medida: trena, régua, balança, voltímetro, amperímetro etc.


128 UNIUBE

Observe, atentamente, a Figura 1. Nela temos a medição de um objeto por meio


do instrumento régua.

Medida = 23,3 cm
Objeto a ser medido

10 20 30

Instrumento: régua graduada de 30 cm.


Padrão de medida = centímetros

Nota: 0,3 cm é uma aproximação, para uma medida exata a régua deveria ser dotada de
graduação em milímetros.

Figura 1: Medida e padrão de medida.


Fonte: Márcio Arruda (2008).

4.1.1 Histórico das unidades de medidas

É indispensável ao profissional da área tecnológica conhecer e compreender as


unidades de medida.

Antigamente, essas unidades de medida eram representadas pelas partes do


corpo humano. A jarda, por exemplo, era tida como a medida de um cinturão
masculino da época, que recebia esse nome, e no século XII, foi estabelecida
como sendo a distância entre o nariz e o polegar do braço estendido do rei da
Inglaterra Henrique I.

IMPORTANTE!

O símbolo da jarda é yd, do inglês yard. A relação oficial entre jardas e metros é de
3600 m para 3937,0113 jarda. Isso significa que cada jarda corresponde a aproxima-
damente 0,91 439 920 429 metros.

A jarda tem como múltiplos:

• a braça, que equivale a 2 jardas;

• a milha terrestre, que equivale a 1 760 jardas;


UNIUBE  129

• a légua terrestre, que equivale a 3 milhas, ou seja, 5 280 jardas.

Os submúltiplos da jarda são o pé e a polegada. Uma jarda contém 36 polega-


das ou 3 pés. Temos, ainda, o palmo que é equivalente a 8 polegadas, ou seja,
1 jarda contém 4,5 palmos (Figura 2).

Observe, com atenção, a Figura 2. Veja a relação feita do corpo humano com
as unidades de medidas.

Figura 2: Medidas no corpo humano.

Com a necessidade de medidas exatas, novos padrões de medidas foram pos-


teriormente estabelecidos. Por exemplo: o metro e o segundo. Acompanhe, a
seguir, as suas definições:

• metro: comprimento do trajeto percorrido pela luz no vácuo, durante o intervalo


de tempo de 1 / 299 792 458 de segundo;

• segundo: duração de 9 192 631 770 períodos da radiação correspondente à


transição entre dois níveis hiperfinos do estado fundamental do átomo de
Césio 133.
130 UNIUBE

4.1.2 Sistema Internacional de Medidas – SI

Trata‑se de um sistema de unidades coerentes, cujas unidades são escolhidas


de tal forma que as equações entre valores numéricos ou equações correspon-
dentes ou as equações correspondentes entre grandezas tenham exatamente
a mesma forma. Acompanhe, no Quadro 1, algumas correspondências.

Quadro 1: Unidades fundamentais.

GRANDEZA SÍMBOLO NOME


Comprimento m metro
Massa kg quilograma
Tempo s segundo
Intensidade corrente elétrica A ampere
Temperatura K kelvin
Intensidade luminosa cd candela

4.1.2.1 A grafia das medidas

Ao expressar uma medida não é permitida a utilização de símbolos diferentes


dos legais e a utilização de ponto após qualquer símbolo, a não ser o ponto final
de uma sentença.

O valor de uma grandeza deve sempre ser expresso por meio de uma só unidade
de medida da mesma espécie, exceto as medidas de tempo e ângulo, que uti-
lizam hora, minuto e segundos, no caso do tempo e graus, minutos e segundos
em medidas de ângulo.

A parte inteira é separada de sua parte decimal por meio de uma vírgula, para
facilitar a leitura e compreensão. O número pode ser dividido em grupos de
três algarismos, quer à esquerda, quer à direita da vírgula, sendo que esses
grupos se separam por um espaço correspondente ao que seria ocupado por
um algarismo.

4.1.2.2 Mudança de unidades

Constantemente nos deparamos com a necessidade de converter uma unidade


em outra que nos seja mais conveniente. Apesar de, no Brasil, a unidade de
medida para volume utilizada ser o litro e seus múltiplos, encontramos produtos
comercializados em galão, por exemplo: galão de tintas. Um outro exemplo in-
UNIUBE  131

teressante se refere às dimensões da tela de um aparelho de televisão ou


computador. Elas são fornecidas em polegadas, enquanto a nossa unidade de
medida padrão é o metro.

Em instalações elétricas, esse problema é constante, sobretudo em ferragens,


conexões e bitolas de cabos. Acompanhe, no Quadro 2, algumas conversões
de unidades.

Quadro 2: Conversão de unidades.

SÍMBOLO UNIDADE CONVERSÃO FATOR DE


PARA MULTIPLICAÇÃO
Bb OU Bbs BARRIL LITROS 158,988
lb/pol 2
LIBRA POR kgf/cm2 0,0703
POLEGADA
QUADRADA
lb LIBRA (PESO) kg 0,4536
pé PÉ m 0,3048
pol POLEGADA m 0,0254

4.1.3 Algarismos significativos

Algarismos significativos de uma grandeza são aqueles cujos valores garantem


o resultado prático da medida, de acordo com a precisão e graduação da escala
do instrumento utilizado na medição.

4.1.4 Erros

O erro de uma medida é a diferença teórica entre o valor verdadeiro da grandeza


e o valor que é possível medir com o instrumento utilizado.

4.1.4.1 Erro absoluto

O erro absoluto é definido como sendo o módulo da diferença entre o valor exato
e o valor aproximado de um número. Suponha, por exemplo, que as massas de
dois objetos sejam medidas. A massa do primeiro objeto é exatamente igual a
10 kg, mas a medida resultou em 9 kg. Para a massa do segundo objeto, o seu
132 UNIUBE

valor exato é de 20 kg, contudo, a medida resultou em 21 kg. Assim, os erros


absolutos são:

E=
1 10 − 9 = 1 kg
EE
=
=2 20 −
10 − 921==11kgkg
1

E=
2 20 − 21 = 1 kg

4.1.4.2 Erro relativo

O erro relativo é definido como sendo a relação entre o erro absoluto e o módulo
do valor exato do número. Assim, utilizando os erros absolutos calculados ante-
riormente, tem‑se:
1 kg
ER1 = 0,1 ou 10%
=
10 kg
1 kg
=ER1 1= kg 0,1 ou 10%
ER2 10
= = kg 0, 02 ou 2%
20 kg
1 kg
=ER2 = 0, 02 ou 2%
20 kg

As medidas realizadas dos erros absolutos se mostraram iguais, contudo, ao se


calcular o erro relativo, pode‑se observar que o erro cometido na primeira medida
foi 5 vezes maior do que o erro cometido na segunda medida. Conclui‑se, assim,
que o erro relativo produz um resultado com informações mais úteis do que o
erro absoluto, quando da comparação entre erros.

4.1.4.3 Valor verdadeiro

No ponto de vista da teoria de erros, costuma‑se idealizar que toda grandeza física
possui um valor bem definido, ou exato, que aqui chamaremos de valor verdadeiro
da grandeza.

Quando se repete a medição de uma grandeza, na maioria das vezes, os su-


cessivos resultados não coincidem. Nesses casos, temos duas situações:

• os erros encontrados podem ser sistemáticos, ou seja, o valor medido fica


fora dos padrões ou faixas de erros apresentados. Nesse caso, essas medi-
ções devem ser expurgadas do cálculo do valor mais provável da medição.

• os erros encontrados podem ser estatísticos, ou seja, os valores medidos se


encontram dentro de uma faixa aceitável de erro.
UNIUBE 133

4.1.4.4 Valor mais provável e precisão

Na impossibilidade de se conhecer o valor exato de uma grandeza física, esta-


mos diante da seguinte questão:

Que valor devemos adotar para tal grandeza?

Consideremos as medidas sucessivas diferentes x1, x2, ..., xn, que são obtidas
para uma grandeza física e valor médio (média aritmética) dessas medidas:

1
x = ∑x ,
n i i
(i = 1, 2, 3, ..., n)

Admitindo-se que os erros sistemáticos tenham sido eliminados, espera-se que,


quanto maior o número de medidas obtidas, mais próximo estará o valor médio
obtido do valor verdadeiro da grandeza.

Exemplo

Considere as seis medidas apontadas, a seguir, obtidas para a massa de um


corpo, expressa em gramas: 13,62; 13,63; 13,64; 13,63; 13,60; 13,61.

O valor mais provável da massa do corpo será:

m = (13,62 + 13,63 +13,64 + 13,63 + 13,60 + 13,61) g / 6 = 81,73 g / 6 = 13,621 g.

Então, com quantos algarismos devemos escrever o resultado acima?

A resposta dependerá do valor obtido para o erro médio absoluto, uma vez que
este fornece a incerteza do valor mais provável.

Calculando os desvios (diferença entre o valor verdadeiro e o valor medido) ∆mi de


cada uma das medidas, obtemos: +0,001; –0,009; –0,019; –0,009; +0,021; +0,011.

Assim, o erro médio absoluto será: = (0,001 + 0,009 + 0,019 + 0,009 + 0,021 +
0,011) / 6 = 0,70 g / 6 = 0,01166 g.

A incerteza no valor mais provável da medida se manifesta a partir da segunda


casa decimal (casa dos centésimos). Portanto, é inútil manter algarismos que
134 UNIUBE

estão situados além da casa dos centésimos, tanto no erro médio como no
valor mais provável. O valor final para a massa do corpo será escrito como:

m = (13,62 ± 0,01) g

4.1.5 Arredondamento

Por arredondamento entende‑se o ato de desprezar algarismos significativos de


uma medida excessivamente precisa para a operação desejada, adotando‑se a
seguinte regra:

• se o último algarismo abandonado é menor do que cinco, simplesmente


desprezam‑se os algarismos excedentes, conservando o valor do número
arredondado.

• se o último algarismo abandonado é maior ou igual a cinco, desprezam‑se os


algarismos excedentes, adicionando uma unidade à última casa decimal do
valor do número arredondado;

Exemplo de arredondamento

Arredondar o número 36,65492 para duas, três e quatro casas após a vírgula,
considerando os algarismos significativos:

• duas casas: 36,65;

• três casas: 36,655;

• quatro casas: 36,6549.

4.1.6 Notação científica

A notação científica é um artifício utilizado para representar números muito


grandes ou muito pequenos. É baseado no uso de potências de 10. Acompanhe
os exemplos, a seguir:

Exemplo 1

Para escrevermos um número muito grande, como o número de elétrons em um


Coulomb que é de 6,242 x 1018 elétrons, sem a utilização da potência de dez,
teríamos que escrever 6. 242 000 000 000 000 000 elétrons.
UNIUBE 135

Exemplo 2

Assim, para escrevermos um número muito pequeno, a capacitância de um


capacitor cerâmico de 4,7 x 10–9 Farads, sem a utilização da potência de dez,
teríamos que escrever: 0,000 000 0047 Farads.

Nesses casos, a representação dos números, na forma convencional, torna-se


difícil em função da quantidade de zeros extremamente alta para a velocidade
normal de leitura dos números.

PARADA OBRIGATÓRIA

Um número escrito em notação científica deve seguir o seguinte modelo: m x 10e. O


número “m” é denominado mantissa e “e”, a ordem de grandeza. A notação científica
padronizada é aquela em que a mantissa deve ser maior ou igual a 1 e menor que
10. Desse modo, cada número é representado de uma única maneira. Assim, para
transformar um número qualquer para a notação científica padronizada, devemos
deslocar a vírgula, obedecendo ao princípio de equilíbrio, como 123456,78. Como a
notação científica padronizada exige que a mantissa esteja entre 1 e 10, o valor ade-
quado seria 1,2345678 x 105.

Acompanhe, passo a passo, o princípio do equilíbrio:

123456,78 x 100

12345,678 x 101

1234,5678 x 102

123,45678 x 103

12,345678 x 104

1,2345678 x 105

Veja outro exemplo com valor menor que 1:

0,000000673

0,000000673 x 100

0,00000673 x 10–1
136 UNIUBE

0,0000673 x 10–2

0,000673 x 10–3

0,00673 x 10–4

0,0673 x 10–5

0,673 x 10–6

6,73 x 10–7

4.1.7 Prefixos do Sistema Internacional

Os prefixos do SI permitem escrever quantidades sem o uso da notação cientí-


fica, de maneira mais simples. Acompanhe, no Quadro 3:

Quadro 3: Prefixos utilizados no Sistema Internacional.

EQUIVALENTE
10N PREFIXO SÍMBOLO ESCALA
DECIMAL
1012 tera T Trilhão 1000 000 000 000

109 giga G Bilhão 1 000 000 000

106 mega M Milhão 1 000 000

103 quilo k Milhar 1 000

102 hecto h Centen 100

101 deca da Dezena 10

100

10–1 deci d Décimo 0,1

10−2 centi c Centésimo 0,01

10−3 mili m Milésimo 0,001

10−6 micro m Milionésimo 0,000 001

10−9 nano n Bilionésimo 0,000 000 001

10−12 pico p Trilionésimo 0,000 000 000 001


UNIUBE 137

Para utilizar esses prefixos, primeiro precisamos “preparar” o número para


substituição da potência de dez. Preparar o número significa colocá-lo em no-
tação científica, não necessariamente padronizada, e aplicar o prefixo grego em
substituição a potência de dez.

Os prefixos mais utilizados nos estudos de eletricidade são:

• quilo;

• mega;

• giga;

• mili;

• micro;

• nano;

• pico.

IMPORTANTE!

Observe que todas as potências de dez dos prefixos citados são múltiplos de três.
Veja, a seguir, o exemplo de uma aplicação:

4 700 Ω = 4,7 x 103 Ω = 4,7 kΩ.

0,003 amperes = 3 x 10-3 A = 3 mA.

1 000 000 volts = 1 x 106 V = 1 MV.

4.2 Corrente e tensão


Nossa abordagem abrangerá a importância de conhecer os condutores e iso-
lantes de corrente e tensão, compreendendo o que é a corrente elétrica e as
forças que atuam sobre o fluxo dessa corrente.
138 UNIUBE

4.2.1 Condutores e isolantes

Na natureza, há materiais em que o movimento das cargas elétricas ocorre com


facilidade. Esses materiais são chamados de CONDUTORES. Por exemplo: o
cobre, o ferro, o alumínio, a prata, entre outros, são condutores de corrente
elétrica.

Existem também aqueles em que o movimento das cargas elétricas é extrema-


mente difícil, em função da sua própria estrutura molecular. Esses materiais são
chamados de ISOLANTES. Como exemplos temos a borracha, a porcelana, o
vidro, a madeira seca, entre outros.

4.2.1.1 Materiais condutores

Nos átomos dos materiais CONDUTORES, os elétrons que se movem nas ca-
madas mais distantes do núcleo atômico são fracamente atraídos pelo núcleo,
podendo escapar de um átomo para outro, constituindo‑se nos ELÉTRONS
LIVRES, abundantes nos metais. Acompanhe esse movimento na Figura 3, a
seguir.
Material condutor = muitos elétrons livres

Figura 3: Materiais condutores.

4.2.1.2 Materiais isolantes

Nos átomos dos materiais ISOLANTES, a forte atração exercida pelo núcleo
atômico sobre os elétrons das camadas mais externas do átomo não possibilitam
a existência dos ELÉTRONS LIVRES. A Figura 4 ilustra a referida força.
UNIUBE 139
Material isolante = poucos elétrons livres

Figura 4: Materiais isolantes.

Outro aspecto importante a considerar é que não existem condutores perfeitos


nem isolantes perfeitos. Isso significa que um isolante pode conduzir corrente
elétrica em determinadas condições.

Exemplo

A madeira, quando seca, tem propriedade de ser isolante. No entanto, úmida


funciona como um condutor elétrico.

IMPORTANTE!

Na verdade, um isolante pode ser interpretado como um mau condutor de eletricidade.

Vale lembrar que os materiais isolantes têm tanta importância na eletricidade quanto
os condutores. Os condutores é que nos permitem trabalhar com a eletricidade de
forma segura.

4.2.2 Corrente elétrica

Todas as substâncias, gasosas, líquidas ou sólidas, são constituídas de pequenas


partículas invisíveis a olho nu. Essas partículas são denominadas átomos.

O átomo é composto de três partículas básicas. São elas:

• os prótons;
• os nêutrons;
• os elétrons.
140 UNIUBE

Os prótons e os nêutrons formam o núcleo do átomo. O próton possui carga


elétrica positiva e o nêutron não possui carga elétrica. As suas massas são
equivalentes.

O elétron possui uma carga negativa e a sua massa, por ser muito pequena, é
desprezível.

Em um átomo, o número de elétrons é igual ao número de prótons, sendo, por-


tanto, o átomo eletricamente neutro, pois a soma das cargas dos elétrons (ne-
gativas) com as cargas dos prótons (positivas) é igual a zero.

A carga elétrica de um elétron é de 1,6 x 10–19 Coulombs. O Coulomb é uma


unidade fundamental do Sistema Internacional de unidades (SI) utilizada para
quantificar a carga elétrica presente em um corpo. Essa unidade recebeu este
nome em homenagem ao físico francês Charles Augustin de Coulomb.

Para que tenhamos uma carga elétrica correspondente a 1C (um Coulomb), é


necessário somarmos a carga elétrica de 6,242 x 1018 elétrons.

Os elétrons, quando presentes em um material considerado bom condutor de


eletricidade (metais por exemplo), estão em constante movimento desordenado
ganhando e perdendo energia o tempo todo (Figura 5).

+
Íon

+ +
Íon Íon

+
Íon
+
Íon
+
Íon
+
Íon

Figura 5: Movimento desordenado de elétrons.


UNIUBE  141

Neste estado, o movimento resultante da agitação dos elétrons livres é nulo. Ou


seja, na ausência de uma força externa (campo elétrico por exemplo), o fluxo
de carga líquida em um condutor é nulo em qualquer direção.

Quando submetemos as extremidades desse condutor a uma diferença de potencial,


provocamos nele um deslocamento de elétrons ordenados segundo a polaridade
dessa diferença de potencial. Observe, com atenção, na Figura 6 a seguir:

15W
12V

BATERIA

Figura 6: Corrente elétrica.

Conclusão: esse fluxo ordenado de elétrons chama‑se corrente elétrica.

4.2.2.1 Conceito de corrente elétrica

Quando 6,242 x 1018 elétrons (1 Coulomb = 1 C) atravessam, em 1 segundo,


com velocidade uniforme, a seção reta circular de um condutor, podemos dizer
que este escoamento de carga corresponde a 1 ampere (A).

Q
I=
t
Onde:

I = intensidade de corrente (A)

Q = carga elétrica (C)

t = tempo (s)
142 UNIUBE

O fluxo da corrente elétrica se dá do potencial com excesso de cargas negativas


(–) em direção ao potencial com falta de cargas elétricas negativas (+). Este
sentido da corrente (saindo do polo negativo em direção ao polo positivo) é
denominado sentido “real” ou “eletrônico” da corrente elétrica.

Em função de definições anteriores, a comprovação desse fato, segundo as li-


teraturas sobre eletricidade, consideram para efeito de estudo que o fluxo da
corrente se dá do terminal positivo de uma fonte para o terminal negativo. Este
sentido é denominado de “sentido convencional” da corrente elétrica.

SAIBA MAIS

André Marie Ampère (1775-1836) introduziu um novo campo de estudos em 18 de


setembro de 1820. Esse estudo foi denominado eletrodinâmica. Tem como objetivo
estudar os efeitos causados por cargas elétricas em movimento. O instrumento gal-
vanômetro é destinado a medir intensidade de corrente elétrica. Em homenagem a
André Marie Ampère, foi dado o nome de ampere (A) à unidade de medida da corrente
elétrica.

PESQUISANDO NA WEB

Para conhecer um pouco mais sobre André Marie Ampère e seus trabalhos científicos,
acesse <http://pt.wikipedia.org/wiki/Andr%C3%A9-Marie_Amp%C3%A8re>.

4.2.3 Tensão

4.2.3.1 Energia potencial

O fluxo ordenado de cargas elétricas é provocado por uma diferença de poten-


cial. A energia potencial é a capacidade que um corpo possui para realizar um
trabalho.

O trabalho é a grandeza cuja variação é igual ao produto escalar de uma força


pelo vetor deslocamento infinitesimal de seu ponto de aplicação [símbolo: W ].
UNIUBE  143

4.2.3.2 Energia potencial gravitacional

Se um corpo de massa m for elevado a uma altura (h) de um metro acima de


um plano de referência, ao ser liberado, cai sobre este plano e realiza determi-
nado trabalho. Se, por sua vez, o mesmo corpo for elevado a uma altura de dois
metros acima do plano de referência, ao ser liberado e cair sobre o plano de
referência, o trabalho realizado será o dobro do primeiro caso.

Nos dois casos, ao elevarmos o corpo, estamos adicionando a ele uma energia
potencial gravitacional que é expressa por:

W = F .d = F .h = m.g .h

Onde, W = Energia potencial expressa em joules, J.

Como nos dois casos a massa do corpo é a mesma, podemos afirmar, então,
que o trabalho a ser realizado é uma função da altura:

W = k ' h    ou    W = f (h )

Portanto, é possível conhecer o quanto de trabalho gravitacional é realizado em


função da diferença de altura entre o objeto (corpo) e o plano de referência.

4.2.3.3 Energia potencial elétrica

Em uma fonte de energia como, por exemplo, uma bateria, as reações químicas
internas estabelecem uma diferença de potencial elétrico entre os polos positivo
e negativo por meio do acúmulo de elétrons em um polo (–) e a falta destes no
outro polo (+). Existe, portanto, entre os polos da bateria uma energia potencial
elétrica. Se ligarmos os dois polos com um material condutor, os elétrons acu-
mulados no polo negativo terão energia suficiente para se deslocarem até o polo
positivo.

Diante disso, podemos dizer que existe uma diferença de potencial de 1 volt
(V) entre dois pontos se acontece uma troca de energia de 1 joule (J) quando
se desloca uma carga de 1 Coulomb (C) entre estes dois pontos (xy). Portanto
é necessário gastar uma energia de 1 J para deslocar uma carga elétrica de
1 C entre os pontos xy, se a diferença de energia potencial entre os pontos for
igual a 1 V.
144 UNIUBE

Você sabia que a unidade de medida da tensão elétrica é o Volt (V)?

Essa medida recebeu este nome em homenagem a Alessandro Giuseppe An-


tonio Anastasio Volta – físico alemão, inventor da bateria.

PESQUISANDO NA WEB

Para conhecer um pouco mais sobre esse físico, acesse:

<http://pt.wikipedia.org/wiki/Alessandro_Volta>.

Veja, a seguir, a fórmula:

W
Vxy =
Q

Onde:

W = Trabalho realizado (joule, J);

Q = Carga elétrica (Coulomb, C);

Vxy = Diferença de potencial elétrico (ddp) entre os pontos x e y (Volts, V).

Assim, para uma carga Q constante, temos:

W
Vxy = ou Vxy = k 'W Portanto, Vxy = f (W )
Q

Logo, a diferença de potencial entre dois pontos de um circuito é um indicador


de quanta energia é necessária para deslocar uma carga entre estes dois pon-
tos (x e y).
UNIUBE 145

4.2.3.4 Paralelo entre energia potencial gravitacional e energia potencial


elétrica

Podemos estabelecer um paralelo entre a energia potencial gravitacional e a


energia elétrica. Acompanhe.

• potencial gravitacional: quanto mais alto (h) estiver o objeto (massa) do


solo, maior será a energia disponível para provocar a queda do objeto ao
solo;

W = f (h )

• potencial elétrico: quanto mais alta for a diferença de potencial fornecida por
uma fonte, maior será a quantidade de energia disponível para provocar o
escoamento de cargas elétricas (corrente elétrica) em um circuito.

Vxy = f (W )

IMPORTANTE!

1. A determinação de uma diferença de potencial ou de uma tensão envolve sempre


dois pontos de um sistema. Se modificarmos a escolha de qualquer um destes pon-
tos, a diferença de potencial não será mais, em geral, a mesma.

2. A notação utilizada para tensões de fontes elétricas é igual a E.

3. A notação utilizada para as quedas de tensões é igual a V.

4.2.3.5 Simbologia de fonte de tensão

Observe, com atenção, a Figura 7. O símbolo mostra que o ponto x está em E


volts mais alto que o ponto y. Assim, a diferença de potencial elétrico entre x e
y é de: E volts. Ou seja:

Vxy = E
146 UNIUBE

– +
y x
E
Figura 7: Simbologia de fonte de tensão.
Fonte: Márcio Arruda (2008).

4.3 Resistência
Os elétrons livres, durante o movimento em um condutor, colidem com átomos
deste condutor, perdendo parte de sua energia cinética sob a forma de calor.
Essas colisões internas ao condutor que provocam a perda de energia são de-
nominadas de resistência do material.

PONTO-CHAVE

A resistência, então, é a propriedade do material em se opor ou resistir ao movi-


mento dos elétrons. A unidade da resistência no SI é ohm (Ω) e é representada
pela variável R.

4.3.1 Resistência em condutores

A resistência de um condutor de seção reta e uniforme (Figura 8) é diretamente


proporcional ao seu comprimento e inversamente proporcional à área da seção
reta. A resistência de um condutor é dada por:

Onde:

ρ = resistividade (Ω.mm² /m);

L = comprimento do condutor (m);

S = área da seção transversal (mm²).


UNIUBE 147

L
R=ρL
S

Figura 8: Resistência de um condutor.

A resistividade é uma propriedade que depende do tipo do material e os metais


mais usados para condução de energia elétrica são:

• Prata: utilizada em pastilhas de contato de contatores, relés etc.

Sua resistividade média é 0,016 Ωmm2/m a 20º C.

• Cobre: utilizado na fabricação de fios em geral e equipamentos elétricos


(chaves, interruptores, tomadas etc.).

Resistividade média do cobre duro é 0,0179 Ωmm2/m a 20º C.

• Alumínio: utilizado na fabricação de condutores para linhas e redes por ser


mais leve e de custo mais baixo. Os condutores de alumínio podem ser de:

• CA – alumínio sem alma de aço;

• CAA – alumínio enrolado sobre um fio ou cabo de aço (alma de aço);

• Sua resistividade média é 0,028 Ωmm2/m a 20º C.

COMPARANDO

Comparando os valores de resistividade do cobre e alumínio, pode ser verificado que


o cobre apresenta menor resistividade, consequentemente, para uma mesma seção
(mm2), os condutores de cobre conduzem mais corrente elétrica.
148 UNIUBE

4.3.2 Condutância

O inverso da resistência elétrica, ou seja, a facilidade que um determinado ma-


terial oferece à passagem da corrente elétrica é definido como a condutância
elétrica, representada pela letra G.

A unidade derivada do SI de condutância é Siemens (S).

Logo, podemos escrever:


1
G=
R

4.3.3 Aspectos construtivos dos resistores

Os resistores são usados basicamente para controlar a corrente em um circuito


elétrico. Os materiais mais utilizados para a fabricação de resistores são o carbono
e alguns tipos de ligas como a manganina, o constantan e o níquel-cromo.

Os resistores são construídos, em sua maioria, segundo uma das seguintes


técnicas: composição, fio, película. Vejamos:

• Técnica da composição

Os resistores construídos, segundo a técnica da composição, são constituídos


por um elemento de carvão pulverizado e misturado com uma resina aglutinante,
uma resina fenólica para proteção do elemento resistivo e terminais metálicos
para a fixação.

De acordo com as porcentagens nas misturas de carbono e do aglutinante, são


obtidos os vários valores de resistências encontrados comercialmente. As van-
tagens que essa técnica apresenta são baixo custo final e pequeno volume,
porém esses resistores são sujeitos a “ruídos” (interferências) por apresentarem
partículas de carbono com pequena área de contato entre si.

• Técnica de fio

Os resistores de fio são fabricados utilizando fios de materiais de resistividade con-


siderada e enrolados sobre um tubo de porcelana. Após as fixações dos terminais,
o conjunto é recoberto por uma mistura de pó de cerâmica com aglutinante.

Os resistores de fio são utilizados para grandes dissipações que, obviamente,


geram grande quantidade de calor e, portanto, apresentam normalmente gran-
UNIUBE  149

des proporções. São fabricados desde alguns ohms a algumas dezenas de


quilo‑ohms e com potências variáveis desde 5 W até 50 W.

• Técnica de película

Os resistores de película são fabricados utilizando película de carbono ou película


metálica. Os resistores de película de carbono ou carbon film resistor são constituí-
dos por um cilindro de porcelana sobre o qual é aplicada uma fina película de
carbono. Para resistências elevadas, faz‑se um sulco sobre a película de carvão
tal que a resistência seja uma faixa helicoidal sobre o cilindro de porcelana.

Pode‑se controlar os vários valores de resistência, alternando a espessura da pelí-


cula de carbono ou mudando o passo da faixa helicoidal sobre o cilindro cerâmico.

Nos resistores de fio, as características desse componente são impressas dire-


tamente no seu próprio corpo. Já em outros resistores, em função do seu tamanho,
as características são expressas por código de cores impressos em seu corpo.

Os códigos de cores impressos nos resistores nos dão as informações sobre o


valor da resistência em Ohms e a tolerância. A tolerância dos resistores indica
uma faixa de valores em que o valor real da resistência se encontra.

Exemplo 1

Um resistor de 100 Ω e tolerância de 5% pode ter o seu valor real entre 95 Ω e


105 Ω.

A Tabela 1 traz os códigos de cores utilizados para identificação do valor da


resistência em um resistor. Leia‑a com muita atenção.

Tabela 1: Tabela de cores dos resistores.

FATOR
COR 1º ALGARISMO 2º ALGARISMO TOLERÂNCIA
MULTIPLICATIVO
Preto -- 0 ×10­0 --
Marrom 1 1 ×10 1
± 1%
Vermelho 2 2 ×10 2
± 2%
Laranja 3 3 ×10 3
--
Amarelo 4 4 ×104 --
Verde 5 5 ×10 5
--
Azul 6 6 ×10 6
--
Violeta 7 7 ×10 7
--
150 UNIUBE

Cinza 8 8 ×108 --
Branco 9 9 ×10 9
--
Ouro -- -- ×10 -1
± 5%
Prata -- -- ×10 -2
± 10%

Observação 1: A cor preta não é utilizada como primeiro algarismo.

Observação 2: Normalmente, o 1º algarismo é a cor mais próxima de uma das


extremidades do resistor.

Exemplo 2

Suponha que um resistor possua a seguinte sequência de cores:

1ª cor = marrom

2ª cor = preto

3ª cor = vermelho

4ª cor = ouro

Qual o valor da resistência desse resistor incluindo sua tolerância?

Resposta

As duas primeiras cores são o 1º e o 2º algarismos, respectivamente. Portanto,


temos os valores 1 (marrom) e 0 (preto). A terceira cor indica o fator multiplica-
tivo, que neste exemplo vale 102. Por fim, temos a quarta cor, que é a tolerância;
neste caso, 5%. Resumindo, tem‑se:

Resistência = 10 × 102 ± 5% = 1000 Ω ± 5% ou 1k Ω ± 5%.

A tolerância neste caso indica que se utilizarmos um instrumento (ohmímetro)


para “ler” o valor desse resistor, devemos encontrar uma resistência entre 950 Ω
e 1050 Ω.

Um outro fator a ser identificado nos resistores é a potência que ele pode dissi-
par. Essa característica é determinada pelo tamanho físico do resistor, ou seja,
quanto maior o resistor, maior será a potência de sua dissipação.
UNIUBE  151

Os resistores variáveis são utilizados para variar ou mudar a resistência de um


circuito. São conhecidos como potenciômetros ou reostatos. À medida que o
braço deslizante gira seu ponto de contato com o elemento resistivo muda.

4.3.4 Coeficiente de temperatura α

O coeficiente de temperatura da resistência indica a quantidade de variação da


resistência para uma variação na temperatura. Um valor positivo de α indica que
R aumenta com a temperatura; um valor negativo de α significa que R diminui;
e um valor zero para α indica que R é constante, isto é, não varia com a tempe-
ratura. Os valores típicos de α são apresentados na Tabela 2 e o valor final da
resistência de um material é determinada por:

ρ = ρo .(1 + α .∆T )

Onde:

ρ = resistividade do material, em [Ω.m], à temperatura T;

ρo = resistividade do material, em [Ω.m], à uma temperatura de referência To;

ΔT = T – To = variação da temperatura, em [ºC];

α = coeficiente de temperatura do material, em [ºC–1].

Tabela 2: Coeficientes de temperatura.

CLASSIFICAÇÃO MATERIAL COEFICIENTE a


PRATA 0,0038
ALUMÍNIO 0,0039
METAL
COBRE 0,004
TUNGSTÊNIO 0,0048
CONSTANTÃ VALOR MÉDIO = 0
LIGA NÍQUEL­‑CROMO 0,00017
LATÃO 0,0015
CARBONO GRAFITE −0,0002 A −0,0008
152 UNIUBE

INDICAÇÃO DE LEITURA

Sugerimos a leitura de Introdução à análise de circuitos, referência aos estudos


de eletricidade. Trata-se do livro de autoria de Robert L. Boylestad (2004), fundamen-
tal a esses estudos, uma vez que aborda, de forma muito clara, os conceitos mais
importantes e necessários à compreensão dos conteúdos da referida área. A obra é
conhecida como a Bíblia dos estudiosos da eletricidade.

Sugerimos a leitura das seguintes seções: 2.1, 2.2, 2.3, 2.4 e 2.5. Sugerimos, também,
a resolução dos seguintes exercícios:

• Seção 2.2: exercícios 8, 9 e 14;

• Seção 2.3: exercícios 18, 19 e 23;

• Seção 2.4: exercícios 26 e 27.

Resumo
Neste capítulo abordamos os conceitos básicos relacionados à manipulação de
números como arredondamento e notação científica. Tratamos, ainda, a forma
correta de representação de uma grandeza com base no Sistema Internacional
de Medidas e o uso de prefixos em substituição à notação científica.

A segunda e a terceira partes do capítulo tratam de corrente, tensão e resistên-


cia elétricas. Estas grandezas são de grande importância no estudo da eletrici-
dade e é a base para futuros estudos dos circuitos elétricos.

Atividades

Atividade 1
Faça a conversão das seguintes unidades:

a) 30 metros em pés;

b) 50 litros em barris;

c) 15 metros em polegadas.
UNIUBE  153

Atividade 2
Em um teste de bancada, medimos a resistência de um resistor 6 vezes, encon-
trando os valores: 4 713 Ω; 4 705 Ω; 4 661 Ω; 4 685 Ω, 4 647 Ω e 4 638 Ω. Qual
é o valor verdadeiro dessa resistência, com arredondamento de duas casas
após a vírgula?

Atividade 3
Escreva os valores a seguir, utilizando os prefixos do Sistema Internacional
indicados:

a) 10 000 metros em quilômetros;

b) 0,000 000 1 Faraday em microfaradays;

c) 6 000 000 de Watts em megawatts;

d) 100 Niltons em decaniltons.

Atividade 4
Um resistor a fio tem estampado em seu corpo o valor de 20 MΩ. Determine o
valor em Ohm’s (Ω) desse resistor.

Atividade 5
Uma usina hidroelétrica tem a capacidade de geração de 750 000 Watt’s (W).
Expresse essa potência em quilowatt’s.

Atividade 6
Calcular a corrente elétrica em um fio percorrido por 1,04 x 1018 elétrons no in-
tervalo de 260 ms.

Atividade 7
Determine o tempo necessário para que 2 x 1016 elétrons atravessem a seção
reta de um condutor, se a corrente for 3 mA.

Atividade 8
Existe um escoamento elétrico através de um condutor, à taxa de 840 Coulombs
por minuto. Se, em 45 segundos, são convertidos em calor 1 484 joules, qual é
a queda de tensão através do condutor?
154 UNIUBE

Atividade 9
Determine a resistência de 280 metros de um fio de cobre com seção nominal
de 2,5 mm2.

Atividade 10
Considerando o código de identificação dos resistores, responda:

10.1 Qual é o valor de um resistor que tem impresso em seu corpo as seguintes
cores:

a) vermelho, vermelho, laranja e prata;

b) marrom, preto, verde e ouro;

c) verde, cinza, verde e prata.

10.2 Qual é o valor de um resistor e sua tolerância, que tem impresso em seu
corpo as seguintes cores:

a) vermelho, branco, vermelho e ouro;

b) laranja, azul, laranja e prata;

c) azul, verde e marrom.

10.3 Identifique com cores os seguintes resistores:

a) 8M Ω, tolerância de 10%;

b) 100k Ω, tolerância de 5%;

c) 390 Ω, tolerância de 20%.

Referências
BOYLESTAD, Robert L. Corrente e tensão. In: ______. Introdução à análise de circuitos.
10. ed. São Paulo: Pearson Education, 2004.

CAPUANO, Francisco Gabriel; MARINO, Maria Aparecida Mendes. Laboratório de


eletricidade e eletrônica. 24. ed. São Paulo: Érica, 2007.
UNIUBE 155

Capítulo Lei de Ohm e análise


5 de circuitos elétricos

Florisvaldo Cardozo Bomfim Júnior / Márcio Aparecido Arruda

Introdução
Neste capítulo, abordamos a aplicação de lei de Ohm, fórmulas e tipos
de cálculo. Os conceitos que iremos trabalhar constituem o requisito
básico para a compreensão e a avaliação de circuitos elétricos.

Recomendamos que, sempre que possível, organize um grupo de es-


tudos para que amplie seu conhecimento.

INDICAÇÃO DE LEITURA

Para aprofundar os conceitos e exemplos apresentados, sugerimos, ao longo


do texto, a leitura de alguns capítulos do livro Introdução à análise de circuitos,
de autoria de Robert L. Boylestad (2004).

Objetivos
Ao final deste capítulo, você deverá ser capaz de:

• explicar a lei de Ohm;


• avaliar o funcionamento de diferentes circuitos;
• analisar o funcionamento de circuitos em corrente contínua;
• aplicar teoremas coerentes em análise de circuitos de corrente
contínua;
• diferenciar circuitos em série e circuitos em paralelo;
• simular diferentes circuitos em corrente contínua.
156 UNIUBE

Esquema
5.1 Conhecendo a Lei de Ohm
5.1.1 Potência e energia
5.2 Circuitos em série
5.2.1 Resistência total em um circuito em série
5.2.2 Resistência e potência em um circuito em série
5.2.3 Lei de Kirchhoff para tensão (LKT)
5.2.4 Fontes de tensão em série
5.2.5 Regras do divisor de tensão
5.2.6 Resistência interna das fontes de tensão
5.3 Circuitos em paralelo
5.3.1 Elementos em paralelo
5.3.2 Condutância e resistência totais
5.3.3 Tensão e corrente em circuitos em paralelo
5.3.4 Lei de Kirchhoff para corrente
5.3.5 Regra do divisor de corrente
5.3.6 Fontes de tensão em paralelo
5.4 Circuitos em série-paralelo
5.4.1 Resolução de circuito aplicando matriz

5.1 Conhecendo a Lei de Ohm


Observe a relação, a seguir, expressa na equação:
CAUSA
EFEITO =
OPOSIÇÃO

Para entender essa relação, devemos nos ater aos seguintes aspectos:

1. qualquer processo de conversão de energia pode ser relacionado a esta


equação. Em circuitos elétricos, o efeito que nós necessitamos estabele-
cer é o fluxo da carga ou da corrente. A diferença potencial, ou seja, a
tensão entre dois pontos é a causa (pressão) e a resistência é a oposição
encontrada;
UNIUBE 157

2. para uma resistência fixa, quanto maior a tensão (ou pressão) aplicada aos
terminais de um resistor, maior será a corrente;

3. para uma tensão fixa, quanto maior for a resistência, menor será a cor-
rente.

Diante do exposto, o que podemos concluir?

Concluímos que a corrente é proporcional à tensão aplicada e inversamente


proporcional à resistência.

Verifique, com atenção, a Figura 1, a seguir:

Figura 1: Lei de Ohm.

Na qual: I = corrente (amperes, A)

E = tensão (volts, V)

R = resistência (ohms, Ω)

O símbolo utilizado para designar a tensão na fonte (bateria) é a letra maiúscula


E, enquanto a queda de energia potencial sobre o resistor é simbolizada por V.
A polaridade da queda de tensão (V) sobre o resistor é determinada pela pola-
ridade da fonte, porque os terminais da bateria são conectados diretamente aos
terminais do resistor.
158 UNIUBE

Para um elemento resistivo isolado, a polaridade da queda de tensão (V) é in-


dicada em função da direção da corrente. Assim, o sentido da corrente conven-
cional no circuito é indicado por meio de uma seta.

Vale destacar que o ponto de entrada da seta em um elemento do circuito indica


a polaridade positiva. Observe na Figura 2, a seguir:

Figura 2: Polaridade da queda de tensão.

INDICAÇÃO DE LEITURA

Sugerimos a leitura das seções 4.1 e 4.2 do livro Introdução à análise de circuitos
de autoria de Robert L. Boylestad (2004). Essa obra é referência aos seus estudos de
eletricidade, porque ela aborda os conceitos mais importantes e necessários à com-
preensão dos conteúdos da referida área. Sugerimos, além da leitura das seções, a
resolução dos exercícios indicados, a seguir:

• Seção 4.1: exercícios de 1 a 12.

• Seção 4.2: exercícios 14 e 16.

5.1.1 Potência e energia

Para Boylestad (2004, p. 64), “a potência é a grandeza que mede quanto trabalho
pode ser analisado em certo período de tempo”. Há diferentes tipos de potência.

• Potência mecânica

Um sistema apresenta elevada potência se ele consegue realizar muito trabalho


em pouco tempo. Assim, potência é a relação entre a energia gasta por um
sistema e o tempo.

energia
P=
tempo
UNIUBE 159

Na qual:

Energia = joules = J

Tempo = segundos = s

Potência = J/s = watt = W

• Potência elétrica

A potência elétrica (P) expressa a quantidade de trabalho realizado em um es-


paço de tempo por um equipamento elétrico. No caso de nossos estudos em
corrente contínua e com circuitos puramente resistivos, a potência elétrica me-
dida em Watts é o produto da corrente elétrica pela tensão aplicada ao elemento
do circuito, ou seja:

P=VxI

Na qual:

P = Potência elétrica medida em Watts;

V = Tensão, medida em Volts (V);

I = Corrente elétrica, medida em amperes (A).

Da equação, podemos obter, ainda:

Como V = R x I, teremos: P = (R x I) x I, então:

P = R x I2
Como I = V / R, teremos: P = V x (V / R), então:

V2
P=
R

Acompanhe o exemplo a seguir:

Qual a potência elétrica de um ferro de passar roupas que, quando alimentado


por uma tensão de 127 Volts, solicita uma corrente elétrica de 7,48 amperes?
160 UNIUBE

P = V x I = 127V x 7,48A = 949,96VA

P ≈ 950 Watts

Para circuitos puramente resistivos, a potência aparente medida em Volt amperes


(VA) é igual à potência útil medida em Watts (W).

• Energia elétrica

A energia elétrica que pagamos mensalmente na conta de energia expressa em


kWh é o produto da potência elétrica dos equipamentos medida em kW, pelo
período de sua utilização em hora. Veja a equação:

E=PxT

Na qual:

E = Energia elétrica consumida (kWh);

P = Potência elétrica (kW);

T = Tempo (horas).

Exemplo

Qual a energia elétrica consumida pelo ferro elétrico (exemplo anterior), se este
permanecer ligado por 45 minutos?

Resolução:

E=PxT

Potência do equipamento = 950 Watts ou 0,95 kW

Tempo em horas = 45 minutos / 60 minutos = 0,75 horas

E = 0,95 kW x 0,75 horas

E = 0,7125 kWh
UNIUBE 161

INDICAÇÃO DE LEITURA

Sugerimos a leitura das seções e a resolução dos exercícios indicados a seguir do


livro Introdução à análise de circuitos, de autoria de Robert L. Boylestad (2004).

• Leitura das seções 4.3, 4.4, 4.5 e 4.6;

• Exercícios referentes à seção 4.3 (exercícios 19, 21 e 22);

• Exercícios referentes à seção 4.5 (exercício 41);

• Exercícios referentes à seção 4.6 (exercícios 52, 55 e 57).

A leitura dessas seções e a resolução dos exercícios indicados possibilitam a você,


aluno(a) do curso de Engenharia, aprofundar seus estudos e vivenciar as informações
teóricas recebidas, em tarefas simples como, por exemplo, aquecer uma refeição em
um forno de micro-ondas.

5.2 Circuitos em série


Atualmente, dois tipos de corrente elétrica são usados nos equipamentos elé-
tricos. São eles: o de corrente contínua (CC) e o de corrente alternada (CA).

Abordaremos em nossos estudos somente o primeiro tipo – o de corrente


contínua.

No circuito, a corrente elétrica só possui um caminho a seguir, desde que sai do


polo positivo de uma fonte até retornar ao polo negativo desta mesma fonte
(sentido convencional). Portanto, nos circuitos em série, a corrente I é a mesma
em todos os elementos que compõem este circuito. Em outras palavras, a cor-
rente que atravessa o resistor R1 é a mesma que atravessa os resistores R2 e
R3, e é exatamente aquela fornecida pela fonte.

Observando a Figura 3, podemos observar que dois elementos estão em série se:

• possuem somente um terminal em comum;

• o ponto comum entre os dois elementos não está conectado a outro elemento
percorrido por corrente.
162 UNIUBE

Figura 3: Circuito em série.

Assim, se todos os elementos do circuito estão em série, o circuito é chamado


circuito em série, e a corrente elétrica é a mesma em todos os elementos de
um circuito em série.

5.2.1 Resistência total em um circuito em série

A resistência total de um circuito em série é a soma das resistências do


circuito.

RT = R1 + R2 + R3 + R4 ….+ RN

Essa resistência total (RT) é a resistência “vista” pela fonte.

5.2.2 Resistência e potência em um circuito em série

Uma vez conhecida a resistência total RT, podemos determinar a corrente dre-
nada da fonte, utilizando a lei de Ohm:

E
Is = R
t

Como a tensão da fonte (E) é fixa, a intensidade da corrente depende somente


do valor de Rt.

De posse do valor da corrente elétrica em um circuito série, que é a mesma que


percorre todos os elementos do circuito, podemos aplicar a lei de Ohm para
UNIUBE  163

calcular o valor da tensão que fica retida em cada um dos elementos do circuito.
Verifique, a seguir:

V1 = I x R1;

V2 = I x R2;

V3 = I x R3;

VN = I x RN;

VT = V1 + V2 +V3 +....+VN.

Da mesma forma, podemos calcular a potência dissipada em cada resistor. E a


potência total fornecida pela fonte será a somatória de todas as potências dis-
sipadas em cada resistor do circuito:

P1 = V1 x I;

P2 = V2 x I;

P3 = V3 x I;

PN = VN x I;

PT = P1 + P2 + P3 +…+ PN

Exemplo 1

No circuito em série apresentado na Figura 4, determine a:

a) resistência total do circuito;

b) corrente fornecida pela fonte;

c) queda de tensão em cada resistor e a tensão total fornecida pela fonte;

d) potência dissipada em cada resistor;

e) potência total fornecida pela fonte.


164 UNIUBE
R1 = 10 ohms

E = 48 V I R2 = 8 ohms

R3 = 6 ohms

Figura 4: Exemplo de circuito em série 2.

Resolução:

a) RT = R1 + R2 + R3 >>> RT = 10 Ω + 8 Ω + 6 Ω RT = 24Ω

b) Is = E / RT Is = 48 V / 24 Ω Is = 2 A;

c) Queda de tensão nos resistores:

• VR1 = R1 x Is VR1 = 10 Ω x 2A VR1 = 20 V;

• VR2 = R2 x Is VR2 = 8 Ω x 2A VR2 = 16 V;

• VR3 = R3 x Is VR3 = 6 Ω x 2 A VR3 = 12 V;

• E = VR1 + VR2 + VR3 E = 20 V + 16 V + 12 V E = 48 V.

d) Potência dissipada em cada resistor:

• PR1 = VR1 x I PR1 = 20 V x 2 A PR1 = 40 Watts;

• PR2 = VR2 x I PR2 = 16 V x 2 A PR1 = 32 Watts;

• PR3 = VR3 x I PR3 = 12 V x 2 A PR1 = 24 Watts.

e) PT = PR1 + PR2 + PR3 PT = 40 W + 32 W + 24 W PT = 96 Watts.


UNIUBE  165

5.2.3 Lei de Kirchhoff para tensão (LKT)

Essa lei aponta que a somatória das quedas de tensão, nos elementos de um
circuito em série, será igual à tensão fornecida pela fonte. No caso de duas ou
mais fontes em um único circuito em série, a polaridade delas devem ser con-
sideradas. Então, podemos dizer que a soma algébrica das elevações e das
quedas de potencial em uma malha fechada será sempre zero (Figura 5).
V1
a b
I R1 I

E LKT R2 V2

I I
d c
Figura 5: Lei de Kirchhoff para tensão.

A tensão aplicada a um circuito em série é igual a soma das quedas de tensão


nos elementos em série: ∑ V elevações = ∑ V quedas.

Para aplicarmos a Lei de Kirchhoff para a tensão, a soma das elevações e quedas
de potencial precisa ser feita percorrendo a malha em certo sentido que, por con-
venção, será usado o sentido horário para todas as aplicações da LKT.

Um sinal positivo indica uma elevação de potencial (de – para +), e um sinal
negativo, uma queda de potencial (de + para –).

No circuito apresentado anteriormente, a corrente percorre o caminho abcda,


formando uma malha fechada.

Aplicando a lei de Kirchhoff’s para tensão (LKT), no exemplo, a seguir, teremos:

V1 – V2 + E = 0, portanto: E = V1 + V2
166 UNIUBE

5.2.4 Fontes de tensão em série

As fontes de tensão podem ser conectadas em série para aumentar ou diminuir


a tensão aplicada a um sistema. Acompanhe, na Figura 6, a seguir:

E1 = 1,5V

E2 = 1,5V
VR1 = 6V

E3 = 1,5V

E4 = 1,5V

Figura 6: Fontes de tensão em série.

A tensão resultante é determinada somando-se as tensões das fontes de mesma


polaridade e subtraindo-se as de polaridades diferentes.

Veja: E T = E2 + E3 – E1

Atenção! A polaridade resultante é aquela para a qual a soma é maior.

5.2.5 Regras do divisor de tensão

A tensão entre os terminais dos elementos resistivos divide-se na mesma pro-


porção que os valores de resistência. O resistor de maior valor captura a maior
parte da tensão aplicada, enquanto o menor fica com a menor parte.

A regra dos divisores de tensão nos permite determinar as tensões em cada


resistor do circuito. Para isso, devemos utilizar:

Vx = RxE
RT
UNIUBE  167

A tensão entre os terminais de um resistor em um circuito em série será igual


ao valor deste resistor multiplicado pela tensão total aplicada aos elementos em
série do circuito, dividida pela resistência total dos elementos em série.

Exemplo 2

No circuito divisor de tensão, a seguir, determine as quedas de tensão em cada


resistor, na Figura 7.

R1 = 30 ohms

100V R2 = 50 ohms

R2 = 20 ohms

VR1 = (R1 x E) / RT VR1 = (30 Ω x 100 V) / (30 Ω + 50 Ω + 20 Ω) VR1 = 30 V;

VR2 = (R2 x E) / RT VR1 = (50 Ω x 100 V) / (30 Ω + 50 Ω + 20 Ω) VR1 = 50 V;

VR3 = (R3 x E) / RT VR1 = (20 Ω x 100 V) / (20 Ω + 50 Ω + 20 Ω) VR1 = 20 V.

5.2.6 Resistência interna das fontes de tensão

Toda fonte de tensão (gerador, bateria, fontes de laboratório) possui uma resis-
tência interna. A fonte de tensão ideal não possui resistência interna e a sua
tensão de saída será sempre E com carga ou sem carga ligada em seus termi-
nais.

A tensão nos terminais de uma fonte de tensão com resistência interna é calcu-
lada usando a seguinte fórmula:

Vint = IFL x Rint.


168 UNIUBE

Na qual:

V int = queda de tensão interna da fonte de tensão (V);

IFL = corrente de carga (A);

Rint. = resistência interna da fonte (Ω).

Exemplo

No circuito a seguir (Figura 8), determine o valor da tensão nos terminais da


carga.
Rint = 18 ohms
I(LF) = 50 mA

E = 96V VL = ? RL (Carga)

Figura 8: Resistência interna das fontes de tensão.

Vint = IFL x Rint V int = 500 × 10–3 × 18 Ω V int = 9 V

Tensão na carga = VL = E – V int VL = 96 V – 9 V VL = 87 V

PARADA OBRIGATÓRIA

Com base nos resultados obtidos, o que podemos concluir?

Isso significa que dos 96 Volts fornecidos pela fonte, 9 Volts ficam retidos na resis-
tência interna da fonte e são dissipados na forma de calor, ficando a carga submetida
a uma tensão de 87 Volts.

INDICAÇÃO DE LEITURA

Sugerimos a leitura das seções e resoluções dos exercícios do livro Introdução à


análise de circuitos, de autoria de Robert L. Boylestad (2004), conforme indicado
a seguir.
UNIUBE 169

• Leitura das seções de 5.1 a 5.9.

• Exercícios referentes à seção 5.2 (exercícios 1, 2 e 3).

• Exercícios referentes à seção 5.3 (exercício 5).

• Exercícios referentes à seção 5.4 (exercícios 9 e 10).

• Exercícios referentes à seção 5.6 (exercício 15).

• Exercícios referentes à seção 5.7 (exercícios 24, 25 e 26).

• Exercícios referentes à seção 5.8 (exercício 35).

Nessa leitura, você encontrará importantes informações sobre a utilização correta e


segura dos equipamentos utilizados para medição das grandezas elétricas, corrente
e tensão. Para uma melhor fixação dos conceitos dos circuitos em série, faça os
exercícios indicados, a fim de compreender melhor o conteúdo abordado.

5.3 Circuitos em paralelo

5.3.1 Elementos em paralelo

Dois elementos, ramos ou circuitos estão conectados em paralelo quando pos-


suem dois pontos em comum. Observe, com atenção, a Figura 9:

Figura 9: Elementos em paralelo.


170 UNIUBE

5.3.2 Condutância e resistência totais

No caso de elementos em paralelo, a condutância total é a soma das condutân-


cias individuais.

GT = + G1 + G2 + G3 +… + GN

À medida que o número de resistores em paralelo aumenta, a corrente na en-


trada do circuito também aumenta, para uma tensão de entrada constante. Efeito
contrário ao que acontece no caso de resistores em série.

Como G = 1/R, a resistência total do circuito será:

R R R R R

Note que o resultado desta equação nos dá o inverso da resistência total. Uma
vez executados os cálculos, devemos inverter o resultado para obtermos a re-
sistência total.

IMPORTANTE!

1. A resistência total de um conjunto de resistores em paralelo é sempre menor que


a do resistor de menor resistência do conjunto.

Quanto maior for a diferença entre o valor de duas resistências em paralelo, mais o
valor da resistência total se aproxima do valor da menor resistência. A equação, a
seguir, é utilizada para calcular a resistência total de resistores de valores iguais em
paralelo.
R
R
R
R N
N
2. A resistência total referente a dois resistores em paralelo é o produto das duas
resistências dividido pela sua soma:

R R R
R R

Elementos em paralelo podem ser intercambiados sem alterar a resistência total ou


corrente total.
UNIUBE 171

Exemplo 3

Nos circuitos a seguir (Figura 10), calcular a resistência total:

Circuito 1:

100Ω 100Ω 100Ω 100Ω

Figura 10: Resistores em paralelo.

Quando os resistores têm o mesmo valor, utilizamos a seguinte fórmula:

R
R
N

RT = 100 Ω / 4

RT = 25 Ω

Circuito 2:

500Ω 750Ω

R
R Figura 11: Resistores em paralelo.
N
Observe a Figura 11. Percebeu que os resistores são de valores diferentes?
Neste caso, utilizamos a seguinte fórmula:

R R R
R R

RT = (500 Ω x 750 Ω) / (500 Ω + 750 Ω)

RT = 300 Ω
172 UNIUBE

Reestruturação da fórmula para 3 resistores em circuito paralelo.

1 1 1 1
= + +
R q R1 R 2 R3
Re

1 R 2 ⋅ R3 + R1 ⋅ R3 + R1 ⋅ R 2
=
R q
Re R1 ⋅ R 2 ⋅ R3

R1 ⋅ R 2 ⋅ R3
R q=
Re
R 2 ⋅ R3 + R1 ⋅ R3 + R1 ⋅ R 2

Exemplo 4

Determine a resistência equivalente do circuito representado na Figura 12.

20 ohms 10 ohms 5 ohms

Figura 12: Circuito paralelo.

R1 ⋅ R 2 ⋅ R3 20 ⋅10 ⋅ 5
R q=
Re =
R 2 ⋅ R3 + R1 ⋅ R3 + R1 ⋅ R 2 10 ⋅ 5 + 20 ⋅ 5 + 20 ⋅10

1 000 1 000
R q=
Re → = 2,86 Ω
50 + 100 + 200 350

5.3.3 Tensão e corrente em circuitos em paralelo

A corrente total fornecida pela fonte é: Is = E / RT. Como a tensão obtida entre
os terminais de elementos em paralelo são iguais, ou seja, V1 = V2 = E, as
correntes nos ramos serão então: I1 = V1/R1, I2 = V2/R2,......,IN = VN/RN
(Figura 13).
UNIUBE  173

IS I1 I2

E V1 R1 V2 R2

IS

Figura 13: Tensão e corrente em circuitos paralelos.

Para circuitos em paralelo com apenas uma fonte, a corrente fornecida pela
fonte (Is) é igual à soma das correntes em cada um dos ramos do circuito. Is =
I1 + I2.

5.3.4 Lei de Kirchhoff para corrente

A Lei de Kirchhoff para a corrente (LKC) afirma que a soma algébrica das cor-
rentes que entram em um nó é igual à soma algébrica das correntes que saem
deste nó. Veja a Figura 14:

Σ I.entram = Σ I.saem

IS I1 I2

E R1 R2

IS

Figura 14: Tensão e corrente em circuitos paralelos.


174 UNIUBE

Acompanhe no nó a da Figura 13:

Σ I.entram = Is

Σ I.saem = I1 + I2 ou seja: Is = I1 + I2.

5.3.5 Regra do divisor de corrente

A regra do divisor de corrente (RDC) diz que a corrente que entra em um con-
junto de elementos em paralelos se dividirá entre estes elementos. No caso
de dois elementos em paralelo com resistências iguais, a corrente se dividirá
igualmente entre eles. Se os elementos em paralelo tiverem resistências dife-
rentes, o elemento de menor resistência será percorrido pela maior fração da
corrente.

A razão entre os valores de corrente nos dois ramos será inversamente propor-
cional à razão entre as suas resistências (Figura 15).

Figura 15: Divisor de corrente.

O valor da corrente em cada ramo será:

RT
Ix = Rx I
UNIUBE 175

Analise a Figura 16 a seguir:


a
Is = 3A I(1) I(2)

56,25V 30 ohms 50 ohms

b
Figura 16: Divisor de corrente.

No caso particular de dois resistores em paralelo, como o da figura anterior,


utilizamos as seguintes fórmulas:

R2 x I R1 x I
I1 = R1 + R2
I2 = R1 + R2

I 1 = (50 Ω x 3 A) / (30 Ω + 50 Ω) = 1,87 A;

I 2 = (30Ω x 3 A) / (30 Ω + 50 Ω) = 1,13 A.

5.3.6 Fontes de tensão em paralelo

As fontes de tensão podem ser colocadas em paralelo somente se as tensões


nos terminais forem idênticas (Figura 17).

A razão para colocarmos fontes de tensão em paralelo é a obtenção de uma


intensidade de corrente maior (e, como consequência, uma potência maior):

A corrente total será:

IS = I1 + I2 +… IN
176 UNIUBE

I(1) I(2) I(3)


Is = I(1) + I(2) + I(3)

E E E

Figura 17: Fontes de tensão em paralelo.

Se colocarmos duas baterias de diferentes tensões em paralelo, a bateria de


maior tensão tende a descarregar rapidamente até o seu valor de tensão igua-
lar-se ao de menor tensão.

As resistências internas relativamente pequenas das fontes de tensão são as únicas


limitadoras para a corrente entre elas, resultando em uma rápida descarga na bate-
ria com maior valor de tensão e um impacto destrutivo na fonte de menor tensão.

INDICAÇÃO DE LEITURA

Sugerimos a leitura das seções e resolução do Capítulo 6 do livro Introdução à


análise de circuitos, de autoria de Robert L. Boylestad (2004).

• Leitura das seções de 6.1 a 6.10.

• Exercício referente à seção 6.2 (exercício 2).

• Exercícios referentes à seção 6.3 (exercícios 3, 4 e 6).

• Exercícios referentes à seção 6.4 (exercícios 8, 10 e 12).

• Exercícios referentes à seção 6. 5 (exercícios 18,19 e 21).

• Exercícios referentes à seção 6.6 (exercícios 22, 24 e 27).

• Exercício referente à seção 6.7 (exercício 28).

Ao fazer o estudo sugerido, observe a influência da resistência interna dos equipa-


mentos de medição, especificamente o voltímetro, no resultado das medições e as
precauções que devem ser tomadas para evitar esses erros.
UNIUBE 177

5.4 Circuitos em série-paralelo


De acordo com Boylestad (2004), “Circuitos em série-paralelo são os que contêm
componentes em série e em paralelo.”

Para determinar a resistência equivalente em um circuito composto por uma


associação de resistores, calcula-se inicialmente a resistência equivalente das
associações em série e, em seguida, parte-se as associações em paralelo.
Acompanhe na Figura 18:

6 ohms 6 ohms 8 ohms

12V
8 ohms

Figura 18: Circuito em paralelo.

Como exemplo, vamos considerar o circuito representado na Figura 18.

Como determinar a resistência equivalente do circuito?

Em primeiro lugar, reorganizamos o circuito. Veja como isso é feito na Figura 19.
6 ohms

6 ohms

8 ohms

12V 8 ohms

Figura 19: Circuito em série paralelo 2.


178 UNIUBE

Os dois resistores de 6 Ω em paralelo podem ser simplificados como:

R
R
N
RT = 6 Ω / 2

RT = 3 Ω

Reorganizando o circuito (FiguraR20): R R


R R
3 ohms

8 ohms

12V 8 ohms

R
R
Figura 20: Circuito em sérieNparalelo reduzido.

Os resistores de 3 Ω e 8 Ω podem ser simplificados, utilizando‑se a seguinte


fórmula:

R R R
R R
RT = (3 Ω x 8 Ω) / (3 Ω + 8 Ω)

RT = 2,18 Ω
Reorganizando o circuito (Figura 21).
2,18 ohms

12V 8 ohms

Figura 21: Circuito em série paralelo reduzido 2.


UNIUBE  179

Os resistores agora estão em série. Para obter a resistência total, basta somar
o valor das duas resistências (Figura 22).

12V 10,18 ohms

Figura 22: Resistência equivalente de um


circuito em série paralelo.

Rt = 2,18 Ω + 8 Ω

Rt = 10,18 Ω

Exemplo 5

Determine as tensões V1, V2, V3 e V4, a corrente fornecida pela fonte e a po-
tência dissipada em cada resistor do circuito apresentado na Figura 23.
4 ohms 6 ohms

3 ohms 5 ohms

24V 12V

Figura 23: Exemplo de circuito em série paralelo.

Acompanhe os procedimentos!

Redesenhar o circuito, agrupando as fontes que estão em série, assim como os


resistores (Figura 24).

Req1 = R3 + R4 = 4 Ω + 6 Ω

Req1 = 10 Ω
180 UNIUBE

Req2 = R1 + R2 = 3 Ω + 5 Ω

Req1 = 8 Ω

Eeq = –24 V + 12 V

Eeq = –12 V

Is I(1) I(2)

12V 10 ohms 8 ohms


R
R
N

Figura 24: Circuito em série paralelo redução.

R R R
R R

RT = (10 Ω X 8 Ω) / (10 Ω + 8 Ω)

RT = 4,44 Ω

Cálculo da corrente total fornecida pela fonte (Is):

Is = E / RT

Is = 12V / 4,44 Ω

Is = 2,7 A

Podemos aplicar, agora, a regra do divisor de corrente e determinar a corrente


em cada ramo:

R2 x I
I1 = R1 + R2

I1 = (10 Ω x 2,7 A) / (10 Ω + 8 Ω)

I1 = 1,5 A
UNIUBE 181

R1 x I
I2 = R1 + R2

I2 = (8 Ω x 2,7 A) / (10 Ω + 8 Ω)

I2 = 1,2 A

Redesenhando o circuito (Figura 25).

Is = 2,7A I(1) = 1,5A I(2) = 1,2A

3 ohms 4 ohms

12V

5 ohms 6 ohms

Figura 25: Circuito em série paralelo divisor de corrente.

Conhecendo a corrente em cada ramo, podemos agora calcular a queda de


tensão em cada resistor por meio da lei de Ohm:

V1 = R1 x I1

V1 = 3 Ω x 1,5 A

V1 = 4,5 V

V2 = R2 x I1

V2 = 5 Ω x 1,5 A

V2 = 7,5 V

V3 = R3 x I2

V3 = 4 Ω x 1,2 A
182 UNIUBE

V3 = 4,8 V

V4 = R 4 x I 2

V4 = 6 Ω x 1,2 A

V4 = 7,2 V

Conhecendo o valor da tensão e corrente em cada resistor, podemos calcular


a potência dissipada em cada um deles:

P1 = V 1 x I 1

P1 = 4,5 V x 1,5 A

P1 = 6,75 W

P2 = V2 x I1

P2 = 7,5V x 1,5A

P2 = 11,25 W

P3 = V 3 x I 2

P3 = 4,8 V x 1,2 A

P3 = 5,76 W

P4 = V 4 x I 2

P4 = 7,2 V x 1,2 A

P4 = 8,64 W

5.4.1 Resolução de circuito aplicando matriz

Para compreender esse método de resolução de circuitos em paralelos, veja as


comparações entre ele e o método de malhas nos exemplos, a seguir.
UNIUBE  183

Exemplo 6

Determine os valores da corrente I1 e I2 e os valor de tensão nos resistores R1,


R2 e R3 do circuito representado na Figura 26:

10 ohms

20V 20 ohms

10 ohms

Figura 26: Circuito paralelo.

Resolução pelo método de malhas:

Encontrado o valor da corrente total do circuito, iremos agora calcular a corrente


e a tensão em cada resistor.

I (Resistor1) = It = 1,2 A

V (Resistor1) = 1,2 A⋅10 = 12 V

V (Resistor2) = V (Resistor3) = 20 V −12 V= 8 V

8
I (Resistor2) = = 0,8 A
10
8
I (Resistor3) = = 0, A
20

Resolução pelo método da matriz:

20 = 10 ⋅ I1 + 10 ⋅ ( I1 − I 2)
0 = 10 ⋅ ( I 2 − I1) + 20( I 2)
20 = 20 ⋅ I1 − I 2
0 = −10 ⋅ I1 + 30 ⋅ I 2
184 UNIUBE

 20 − 10  I1  20
Montando a matriz, teremos 
− 10 30  ⋅  I 2 =  0  .
     

Calculando o valor de I1 e I2:

,
,

,
,

Encontrado o valor das correntes I1 e I2 do circuito, iremos agora calcular a


corrente e a tensão em cada resistor.
,
,
,
,
, , ,
, , , ,
,
,
,
,
,
,
UNIUBE  185

Exemplo 7

Façamos, agora, com base no circuito representado na Figura 27.


,
, I1

, 1 ,ohms, I2 2 ohms
,
1 ohms
10V
,
,
3 ohms I3 4 ohms

Montando cada malha do circuito.

Montando a representação em forma de matriz.

Calculando o determinante da matriz encontrada:

 4 − 1 − 3
 − 1 4 − 1 Det = 128 − 3 − 3 − 32 − 4 − 8 = 74
 
− 3 − 1 8 
186 UNIUBE

Esse valor será usado para calcular a corrente desejada. Para encontrar o valor
10 
da corrente I1 do circuito, basta substituir a matriz resultado  0  na linha cor-
 
 0 
respondente à corrente, como no exemplo, a corrente I1 se encontra na coluna
1, a I2 na coluna 2 e assim sucessivamente.

Calculado o valor das correntes I1, I2 e I3:

Teremos então que as seguintes correntes em cada resistor:


UNIUBE 187

Agora iremos calcular o valor da tensão e da potência de cada resistor.

RELEMBRANDO

Lembre-se de que a potência é igual o valor da tensão no resistor vezes a corrente


que passa por ele.

Potência no Resistor R1

V ( R1) = R1 ⋅ I ( R1) = 2, 71 V
P (R1) = 2,71 V.2,71 A= 7,34 W

Potência no Resistor R2

V
V ( R 2) =R 2 ⋅⋅ II (( R 2) = 2,96 V
V (( R
R 2) =R
2) = R22 ⋅ I (R 2) =
R 2) = 2,96
2,96 V
V
P
P ( R
R 2) =
= 2,96 V
V ⋅
⋅ 1, 48 A
A =
= 4,38 W
P( R 2) = 2,96V ⋅1, 48 A = 4,38 W
( 2) 2,96 1, 48 4,38 W

Potência no Resistor R3

V (( R
V R3) == R33 ⋅ I ( R3) 3) = 0,
0, 27 V
V
V ( R3)3) = R
R3 ⋅⋅ II (( R
R3) == 0, 27
27 V
P (R3) = = 0,27 V .
V . 0,27A = = 72,9 mW
mW
P
P (R3)
(R3) = 0,27
0,27 V . 0,27A 0,27A = 72,9
72,9 mW

Potência no Resistor R4
V (( R
V R 4) =
= R44 ⋅ I ( R 4) 4) = 7,32
7,32 V
4) = R
V ( R 4) R 4 ⋅⋅ II (( R
R.4) =
= 7,32 V
V
P (R4)
P (R4) = = 7,32
7,32 V V .. 2,44
2,44 A
A== 17,86
17,86 W
P (R4) = 7,32 V 2,44 A = 17,86 W W

Potência no Resistor R5
V
V ( R5) = R
R5 ⋅ I (R R5) =
=7 V
V (( R
R5) =R
5) = 5 ⋅⋅ II (( R
5 5)
5) = 7V
7V
P R
P((( R
R5)
5) =
=77V ⋅⋅⋅1,
V 1, 75 A =
= 12, 25 W
P 5) = 7V 1, 75 75 AA= 12,
12, 25 W
25 W

DICAS

Se alguma corrente encontrada possuir um valor negativo, quer dizer que ela está no
sentido contrário ao adotado.
188 UNIUBE

Exemplo 8

Dado o circuito representado na Figura 28, encontre as correntes, as tensões e


as potências dos resistores.

I1

10 ohms I2 20 ohms

2 ohms
10V I4 10 ohms

40 ohms I3 50 ohms

Figura 28: Circuito paralelo.

Montando cada malha do circuito.

10 = ( I1 − I 2) ⋅ 10 + ( I1 − I 3) ⋅ 40
0 = ( I 2 − I1) ⋅ 10 + ( I 2 − I 3) ⋅ 2 + ( I 2 − I 4) ⋅ 20
0 = ( I 3 − I1) ⋅ 40 + ( I 3 − I 2) ⋅ 2 + ( I 3 − I 4) ⋅ 50
0 = ( I 4 − I 2) ⋅ 20 + ( I 4 − I 3) ⋅ 50 + I 4 ⋅ 10

Reorganizando em forma de matriz, temos:

 50 − 10 − 40 0   I1  10
 − 10 32 − 2 − 20  I 2  0 
 . =
− 40 − 2 92 − 50   I 3  0 
    
 0 − 20 − 50 80   I 4  0 

Calculando o determinante da matriz encontrada:


UNIUBE  189

Calculado o valor das correntes I1, I2, I3 e I4.

,
,

,
,

,
,

Teremos então que as seguintes correntes em cada resistor:

,
,

,
,

,
,

,
,
190 UNIUBE

,
,

Encontrado o valor da corrente em cada resistor, iremos calcular agora o valor


da tensão e da potência dos mesmos:

,
,
, V , A , W
, V , A , W

,
,
, , ,
, , ,

,
,
, , ,
, , ,

,
,
, , ,
, , ,

,
,
, ,
, ,
UNIUBE  191

Resumo
Neste capítulo, enfocamos o teorema da Lei de Ohm e os métodos de re-
solução de circuitos em série e paralelo. Também apresentamos as resolu-
ções usando os sistemas de malhas e de matrizes, tornando assim possível
o cálculo das correntes e potências de cada resistor contido no circuito
analisado.

Esperamos que você tenha assimilado os conteúdos que foram abordados e,


sempre que necessário, retome‑os. Lembre‑se de que as leituras indicadas e
as atividades solicitadas contribuirão para a sua aprendizagem.

Atividades

Atividade 1
Considerando os estudos realizados, resolva as seguintes questões:

a) determine a corrente resultante quando conectamos uma bateria de 9 Volts


aos terminais de um circuito, cuja resistência é 2,2 Ohms;

b) calcule a resistência de uma lâmpada de 60 W se uma corrente de 500 mA


for estabelecida em função de uma tensão aplicada de 220 Volts;

c) calcule a corrente através do resistor de 2 KΩ, se a queda de tensão entre


os seus terminais for de 16 Volts;

d) calcule o valor da queda de tensão através de um resistor de 1,5MΩ, sabendo


que a corrente que passa por ele é de 24 µA;

e) calcule a corrente elétrica necessária para alimentar uma lâmpada de 60 W


cuja tensão de alimentação é de 120 Volts. Repita este procedimento para uma
lâmpada de 150 W e para outra de 300 W. Explique o que acontece (observe a
proporção) com a corrente elétrica à medida que a potência aumenta, man-
tendo‑se constante a tensão de alimentação.
192 UNIUBE

Atividade 2
Determine a resistência total e a corrente para o circuito mostrado na figura a
seguir:
10 ohms 20 ohms

12V

36 ohms 40 ohms

Atividade 3
Determine o valor da resistência desconhecida na figura a seguir.

3,6 ohms

R1 = ? 10 Kohms

48V

5,8 Kohms

I = 1,99 mA

Atividade 4
No circuito dado, indique a polaridade e calcule o valor da queda de tensão em
cada resistor.
600 ohms 200 ohms

48V 36V

1,2 Kohms 2,4 Kohms


UNIUBE  193

Atividade 5
Determine os valores de R1 e R3, no circuito a seguir:
12V

R1

4V

R2 = 8 ohms

4V

R3

8V

Atividade 6
Determine o valor desconhecido da resistência, usando a regra dos divisores
de tensão.

6k 2k
+

R=?

48V 12V

1K


194 UNIUBE

Referências
BOYLESTAD, Robert L. Introdução à análise de circuitos. 10. ed. São Paulo: Pearson
Education, 2004.

____; NASHELSKY, Louis. Dispositivos eletrônicos e teoria dos circuitos. 8. ed. São
Paulo: Pearson Education, 2004.
Anotações
____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

Você também pode gostar