Buscar

Linguagem de Script - Completa

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 86 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 86 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 86 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ITEGO 
Célio Domingos Mazzonetto 
(62) 3307-1700 
 
 
 
 
 
 
T é c n i c o e m M a n e S u p d e 
I n f o r m á t i c a 
Linguagem script 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
2 
 
Caro estudante! 
Este caderno apresenta conteúdos importantes sobre a disciplina de Linguagem 
script, com objetivo de: proporcinar noções de criação de sistemas estruturados; 
executar ferramentas de processamento criada em sistemas compiladores; chegar 
ao resultado de um problema usando algorítimos e rotinas pre-determinadas; e 
identificar através de raciocínio lógico o melhor caminho para o resultado. 
Conteúdo indispensável para o exercício profissional daqueles que pretendem-se 
inserir no mercado de trabalho. Na área de tecnologia, a compreenção da 
linguagem de programação é fundamental, pois sabemos que nossa linguagem não 
é a mesma do computador, com isso, é necessário o uso de métodos lógicos para 
que possam chegar ao resultado desejado. 
É imprescindível, para alcançar sucesso na disciplina, que você busque estudar este 
material, consultar outros materiais sobre o assunto trabalhado na aula e solicitar 
ajuda do tutor, sempre que surgirem dúvidas. Empenhe-se em seus estudos e 
lembre-se: o seu sucesso só depende de você. Um curso à distância não acontece 
se o aluno não tomar a iniciativa. 
Atenciosamente, 
 
Heder Vieira de Lima 
Professor 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
3 
Os ícones são elementos gráficos utilizados para ampliar as formas de 
linguagem e facilitar a organização e a leitura hipertextual. 
 
 Atenção: indica pontos de maior relevância no texto. 
 
Saiba mais: oferece novas informações que enriquecem o assunto ou 
“curiosidades” e notícias recentes relacionadas ao tema estudado. 
 
Atividades: apresenta atividades em diferentes níveis de aprendizagem para 
que o estudante possa realizá-las e conferir o seu domínio do tema 
estudado. 
 
Mídias integradas: sujestões de vídeos e filmes relacionado ao conteúdo 
aplicado. 
 
Dicas: Métodos inteligentes e alternativos que facilitam a sua vida. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
4 
Sumário 
1. ALGORITMOS ..................................................................................................................... 9 
1.1. Definição de algoritmo .................................................................................................. 9 
1.2. Algoritmos em Portugol ............................................................................................... 11 
2. PORTUGOL ........................................................................................................................ 12 
2.1. Introdução Portugol ..................................................................................................... 12 
2.2. Variáveis e constantes ................................................................................................. 13 
2.2.1. Declaração de Variáveis ........................................................................................... 13 
2.2.1.1. Tipos de Variáveis .................................................................................................. 13 
2.2.1.2. Identificadores de Variáveis ................................................................................ 14 
2.2.2. Constantes ................................................................................................................... 17 
2.3. Estrutura do Algoritmo em Portugol ........................................................................ 18 
2.3.1. Comando de Atribuição (<-) ................................................................................... 18 
2.3.2. Operadores Aritméticos .......................................................................................... 20 
2.3.3. Entrada e Saída de Dados ....................................................................................... 22 
2.3.4. Regras para escrever algoritmos em portugol .................................................... 23 
Exercícios ................................................................................................................................... 24 
2.4. Comandos de Controle............................................................................................... 29 
2.4.1. Desvio Condicional .................................................................................................. 29 
2.4.1.1. Operadores Lógicos ............................................................................................. 29 
2.4.1.2. Operadores Relacionais ...................................................................................... 30 
2.4.1.3. Desvio Condicional Simples e Composta........................................................ 30 
Exercícios ................................................................................................................................... 32 
2.4.2. Laços de Repetição (loop) ....................................................................................... 33 
2.4.2.1. Comando: enquanto/faça ................................................................................... 35 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
5 
2.4.2.2. Comando: para / até / faça .................................................................................. 37 
Exercício .................................................................................................................................... 39 
3. PROGRAMAÇÃO EM LINGUAGEM C ........................................................................ 40 
3.1. INTRODUÇÃO A PROGRAMAÇÃO EM LINGUAGEM C ..................................... 40 
3.1.1. Declaração de Variáveis .......................................................................................... 40 
3.1.2. Comando de atribuição: ..........................................................................................42 
3.2. ENTRADA E SAÍDA DE DADOS FORMATADA .......................................................42 
3.2.1. FORMATAÇÃO DE CAMPOS PARA EXIBIÇÃO .................................................. 46 
3.3. OPERADORES ARITMÉTICOS ................................................................................... 47 
Exercício .................................................................................................................................... 48 
3.4. COMANDOS DE DECISÃO ........................................................................................ 49 
3.4.1. EXPRESSÕES LÓGICAS .......................................................................................... 49 
Exercício .................................................................................................................................... 50 
3.5. DECISÃO SIMPLES ....................................................................................................... 51 
Exercício .....................................................................................................................................54 
3.5.1. OPERADOR CONDICIONAL ................................................................................... 55 
Exercício .................................................................................................................................... 56 
3.5.2. CONDICIONAIS ANINHADOS E ENCADEADOS .............................................. 57 
Exercício .................................................................................................................................... 59 
3.6. DECISÃO MÚLTIPLA ...................................................................................................60 
Exercício .................................................................................................................................... 64 
3.7. COMANDOS DE REPETIÇÃO ................................................................................... 65 
3.7.1. EXPRESSÕES COMPACTAS ................................................................................... 65 
3.7.2. OPERADORES ARITMÉTICOS DE ATRIBUIÇÃO ............................................... 65 
Exercício: .................................................................................................................................... 67 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
6 
3.7.3. INCREMENTO E DECREMENTO .......................................................................... 68 
Exercício: ................................................................................................................................... 70 
3.8. REPETIÇÃO COM CONTADOR ................................................................................... 71 
Exercício: .................................................................................................................................... 72 
Exercício: .................................................................................................................................... 75 
Exercício ..................................................................................................................................... 78 
3.9. REPETIÇÃO COM PRECONDIÇÃO ........................................................................... 79 
Exercício ..................................................................................................................................... 81 
3.10. REPETIÇÃO COM POSCONDIÇÃO ...................................................................... 82 
Exercício .................................................................................................................................... 84 
Referência ............................................................................................................................. 85 
Currículo do Professor ....................................................................................................... 86 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
7 
Apresentação da disciplina 
Disciplina: Linguagem script (carga horária: 40h). 
Ementa: Todas as aulas (teorias e práticas) serão em laboratório; então todos 
deverão estar familiarizados com o manuseio dos computadores, pois o conteúdo 
da aula será fornecido pela internet. 
Tem como conteúdo programático: Algoritmos: Introdução; Algoritmos: Portugol; 
Introdução a Linguagem C. 
E lembre-se: Aprofunde seus conhecimentos compartilhando suas dúvidas e 
conhecimentos com seus tutores e colegas. Use esse material como base e busque 
conhecimentos em outras fontes. 
Bom Estudo! 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
8 
 
1. ALGORITMOS Definição de algoritmo 10 horas 
2. PORTUGOL Introdução Portugol, variáveis, 
constantes, estrutura e 
operações 
10 horas 
3. PROGRAMAÇÃO EM 
LINGUAGEM C 
Introdução a linguagem C, 
variáveis, constantes, estrutura 
e operações 
20 horas 
 Total 40 horas 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
9 
 
1. ALGORITMOS 
 
1.1. Definição de algoritmo 
Várias definições de algoritmos estão presentes na literatura (ver 
bilbliografia indicada). De forma geral um algoritmo pode ser definido como um 
padrão de comportamento de eventos ou sequência de ações, que levam a um 
resultado esperado. 
Resumindo: 
algoritmo = como definir o problema, esquematizar, exercício do 
raciocínio; 
técnicas de programação = como operacionalizar, recursos, exercício da 
implementação. 
 
Exemplos: 
Seqüência de ações para chegar ao trabalho/universidade: 
 
 
 
O que é Algoritmos 
Um algoritmo representa de forma estruturada, um padrão de 
comportamento de eventos ou sequência de ações, que levam a um 
resultado esperado. 
Acordar Levantar Tomar café
Pegar o ônibus
ou 
Pegar o carro
Chegar ao 
destino
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
10 
 
Note que, para cada ação acontecer, é necessário que a ação 
imediatamente anterior tenha sido executada. 
Note também que, cada ação pode conter outros eventos associados 
(outros algoritmos). 
 
Anotações 
 
 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
11 
1.2. Algoritmos em Portugol 
Como no item 1 ".... Um algoritmo representa de forma estruturada, um 
padrão de comportamento de eventos ou sequência de ações, que levam a um 
resultado esperado...” a descrição deve ser finita, e os passos devem ser bem 
definidos sem ambiguidades. A razão da existência do algoritmo vem da 
dissonância entre um estado desejado e aquele observado na realidade. 
Algoritmo não é a solução de um problema, mas é o meio de obtê-la. A 
resolução de um problema envolve vários parâmetros que devem ser organizados 
através de alguma técnica formal. 
As técnicas de desenvolvimento estruturado de algoritmos, tem o 
objetivo de: 
· Facilitar o desenvolvimento de algoritmos; 
· Facilitar o seu entendimento pelos operadores; 
· Antecipar a correção; 
· Facilitar manutenção e modificações; 
· Permitir que o desenvolvimento seja feita por uma equipe de pessoas. 
Uma técnica formal afasta a possibilidade de uma ambiguidade. Ou seja, 
a partir de dadas condições iniciais a execução do algoritmo será realizada por um 
mesmo "caminho" (sequência de ações), que deve resultar num mesmo estado final. 
Uma destas técnicas é o portugol. 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
12 
2. PORTUGOL 
2.1. Introdução Portugol 
Portugol é uma pseudolinguagem que permite ao programador pensar no 
problema em si e não no equipamento que irá executar o algoritmo. Devem ser 
considerados a sintaxe (em relação à forma) e a semântica (em relação ao conteúdo 
ou seu significado). Em portugol a sintaxe é definida pela linguagem e a semântica 
depende do significado que quer se dar ao algoritmo. 
No portugol e nas linguagens de programação, basicamente têm-se 
comandos e variáveis que operacionalizam a execução de um algoritmo. Estes 
comandos são executados sequencialmente, de forma que um comando só será 
executado após a finalização do comando anterior. 
A estrutura de um algoritmo em portugol pode ser dada como: 
Exemplo: 
 
algoritmo 
 <declarações de variáveis> 
 <comandos> 
fim_algoritmo 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
13 
2.2. Variáveis e constantes 
2.2.1. Declaração de Variáveis 
Uma variável é um local (área na memória do computador) que armazena 
um tipo específico de conteúdo. Uma variável contém um valor que se modifica 
durante a execução do programa. A variável possui um identificador (nome), que 
pode ser representado da seguinte forma: 
 
2.2.1.1. Tipos de Variáveis 
Variáveis são componentes das linguagens de programação, que 
identificam os valores que estão sendo manipulados pelos programas. Uma variável, 
como o próprio nome sugere, contém valores que variam de acordo com a 
execução do programa. Uma variável deve possuir um tipo específico. As variáveis 
em portugol, são divididas em 4 tipos principais, (embora na linguagem C existam 
modificações para estes tipos principais). 
No portugol, os tipos básicos de variáveis são: 
· numerico: Qualquer número inteiro (negativo, nulo ou positivo). 
Exemplo: -100, 0, 1, 2, 1250. 
· literal: Caracteres alfanuméricos. 
Exemplo: “casa”, “Win31”, “123”, “alfa#2”, etc... 
· logico: valor lógico verdadeiro ou falso 
Exemplo: x > y ?SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
14 
 
2.2.1.2. Identificadores de Variáveis 
O identificador de uma variável, se refere ao nome de como ela vai ser 
conhecida no programa. É importante não esquecer que: 
a) Não é possível definir variáveis de diferentes tipos com o mesmo 
identificador (nome); 
exemplo: 
 
causaria erro na programação, como palavra reservada repetida. 
O correto seria: 
 
“n” reservado para valor numérico e “t” reservado para texto 
b) Tomar alguns cuidados em relação à sintaxe da linguagem, por 
exemplo, não é possível nomear variável como: 
 
O correto seria: 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
15 
 
 
c) .Letras maiúsculas e minúsculas são tratadas de forma diferente, então 
“Valor” é diferente de “valor”, como também de “VALOR”. 
 
Cada variável definida no programa usa um local da memória, que é 
acessada através do nome dado a variável. O espaço de memória ocupado pelo 
conteúdo da variável, depende do tamanho destes tipos de dados, que variam de 
acordo com o tipo do processador a com a implementação do compilador. Como 
referência inicial para este estudo sobre variáveis, pode-se considerar pelo ANSI C, 
o seguinte: 
· Tipo Inteiro com 2 bytes; 
· Tipo real com 4 bytes; 
· Tipo caracter com 1 byte; 
Exemplo: 
Pode-se supor a memória como uma matriz, como a figura abaixo, onde 
cada célula possui tamanho de 1 byte (8 bits): 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
16 
Para armazenar o valor inteiro A= 1, necessita-se de 2 bytes 
(1 inteiro = 2 bytes na memória*); 
Para armazenar o valor real B= 1, necessita-se de 4 bytes 
(1 real = 4 bytes na memória*); 
 
Anotações 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
17 
2.2.2. Constantes 
Uma constante é um valor fixo, que não se modifica ao longo do tempo, 
durante a execução do programa. 
Em algoritmos representaremos constantes: 
 
 
 
Anotações 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
18 
2.3. Estrutura do Algoritmo em Portugol 
2.3.1. Comando de Atribuição (<-) 
A sintaxe do comando é dada por: 
 
Exemplos: 
 
a) Atribuição de valor constante em texto: 
 
 
 
 
 
 
 
identificador <- expressão
nome_aluno <- "Heder Vieira"
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
19 
b) Atribuição de valor constante em número: 
 
 
c) Atribuição de valor entre variáveis: 
 
 
d) Resultado de expressões 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
20
2.3.2. Operadores Aritméticos 
Os símbolos das operações básicas são: 
· A multiplicação é dada através do operador * (asterisco); 
Exemplo: z <- x * y; 
· A soma é realizada através do operador + (soma) ; 
Exemplo: z <- x + y; 
· A subtração é dada através do operador – (subtração); 
Exemplo: z <- x - y; 
· A divisão para real será dada por / (divisão); 
Exemplo: z <- x / y; 
· A divisão para inteiro será dada por div ; 
Exemplo: z <- x div y; 
· O resto de uma divisão é dada pelo comando mod . 
Exemplo: z <- x mod y; 
· O cálculo de xy é dado pelo comando potencia() . 
Exemplo: z <- potencia(x, y); 
· A raiz de uma valor é extraída através do comando raiz() . 
Exemplo: z <- raiz(x); 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
21 
Exemplo: 
a) Desenvolva um algoritmo em portugol para somar dois valores inteiros (10 + 5): 
 
 
Obs: 
- O incoveniente deste algoritmo é que sempre fornecerá o mesmo 
resultado, o que não é interessante. De maneira mais correta, os valores de x e y 
podem ser fornecidos pelo usuário, permitindo ao algoritmo que efetue a soma de 
dois números quaisquer. 
- Neste exemplo podemos observar que o resultado da soma de x + y será 
armazenado em z. Como o usuário ficará sabendo da resposta ? É necessário usar 
comandos de escrita, para apresentar os resultados. 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
22 
2.3.3. Entrada e Saída de Dados 
Na construção de algoritmos, é conveniente que o usuário possa informar 
dados externos, para serem operados pelo programa. Assim, um programa pode 
receber um dado informado por um operador através de um comando de leitura. 
Da mesma forma, pode ser necessário conhecer o resultado de determinada 
operação executada pelo computador, então será necessária uma forma de exibir 
os dados. 
Cada linguagem tem uma forma específica para entrada e saída de dados. 
Em algoritmos usaremos os comandos genéricos leia() e escreva(), para realizar a 
interface com o usuário. 
Exemplo: 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
23 
2.3.4. Regras para escrever algoritmos em portugol 
· Incluir comentários pelo menos nas linhas mais importantes do 
programa; 
· Usar nomes significativos para as variáveis e constantes, que possam 
identificar o conteúdo; 
· Alinhar os comandos facilita a legibilidade do algoritmo e reduz a 
possibilidade de erros. 
 
Anotações 
 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
24 
Exercícios 
1. Desenvolva um algoritmo em portugol para calcular xy. Os valores de x e y 
serão fornecidos pelo usuário do programa; 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
25 
2. Desenvolva um programa que calcule o volume de uma esfera de raio R, 
fornecido pelo usuário. [ V = 4 3 𝜋 R
3 ] 
 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
26 
3. Desenvolva um programa que transforme um valor de temperatura fornecido 
pelo usuário, de Farenheit ( F ) para Graus Celcius ( ºC ). [V = 5 9 (F – 32)] 
 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
27 
4. Desenvolva um algoritmo para calcular a média entre 4 valores fornecidos 
pelo usuário. 
 
 
 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
28 
5. Desenvolva um algoritmo para encontrar as raízes de uma equação do tipo 
Ax2 + Bx + C. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
29 
2.4. Comandos de Controle 
Os comandos de controle permitem alterar a direção tomada por um 
programa (desvio), ou fazer com que partes específicas de um algoritmo seja 
executada mais de uma vez (loop). 
2.4.1. Desvio Condicional 
Muitas vezes será necessário desviar a execução do programa segundo 
uma condição. 
(Exemplo: ir a universidade de carro ou de ônibus?). Para se testar 
condições é necessário utilizar operadores lógicos e relacionais. 
2.4.1.1. Operadores Lógicos 
Os operadores "e", "ou" e "não" permitem realizar a combinação lógica de 
variáveis do tipo booleana (lógico). 
Para isto utilizam-se as tabelas verdade: 
 
Var1 Var2 E OU NÃO (Var1) 
V V V V F 
V F F V F 
F V F V V 
F F F F V 
 
 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
30
2.4.1.2. Operadores Relacionais 
Permitem realizar a comparação de conteúdos das variáveis: 
A igualdade é dada por 
A disigualdade é dada por <> 
Maior que, pelo símbolo > 
Menor que, pelo símbolo < 
Maior ou igual, pelo símbolo >= 
Menor ou igual, pelo símbolo <= 
2.4.1.3. Desvio Condicional Simples e Composta 
Para que a execução de um algoritmo seja desviada para uma outra ação, 
é necessário um comando de desvio. Este comando é dado pelas palavras 
reservadas se, entao e senao. Dentro deste bloco podemos ter vários comandos de 
atribuição, operações lógicas e aritméticas, e também novos blocos de desvio 
condicional. 
 
Exemplo:SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
31 
 
Anotações 
 
 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
32 
Exercícios 
1 – Desenvolva um programa que apresente como resposta se um valor inteiro 
fornecido pelo usuário é par ou ímpar; 
2 – Dado o gráfico abaixo, testar se um valor T qualquer fornecido pelo usuário, 
pertence ao intervalo T0 ≤ T ≤ T1. Dados T0 = 5, T1 = 10, V0 = 1, V1 = 2; 
 
3 – Dado o gráfico do exercício 2, desenvolva um programa que apresente o valor 
de V para um dado valor de T, fornecido pelo usuário. 
4 – Modifique os exercícios 2 e 3. para utilizar um desvio condicional composto, se 
for o caso. 
 
Anotações 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
33 
2.4.2. Laços de Repetição (loop) 
Uma sequência de ações é repetida por um número específico de vezes, 
até que uma condição seja satisfeita. Enquanto a condição for verdadeira, as 
instruções serão executadas. O laço de repetição também pode ser chamado de 
loop. 
 
Exemplo 1: 
Durante uma semana, um mês, etc, vc pode realizar a mesma seqüência de ações, 
como no exemplo: 
 
Neste caso o loop será infinito. Isso é um problema porque o algoritmo não termina, 
portanto, não pode ser um algoritmo já que todo algoritmo deve ter um fim. 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
34 
Exemplo 2: 
 
Exemplo 3: 
 
Então, pode-se observar que as construções dos exemplos 2 e 3, representam as N 
repetições do exemplo 1. Em termos práticos da programação, a forma dos 
exemplos 2 e 3, de escrever ações que se repetem, são corretas. A forma de escrever 
as ações do exemplo 1 que se repetem é incorreta, apesar de levar o mesmo 
resultado, pois imagine reescrever as mesmas ações para 365 dias, ou mais... 
 
Anotações 
 
 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
35 
2.4.2.1. Comando: enquanto/faça 
Em portugol, escreve-se o comando enquanto / faça, da forma 
apresentada abaixo. Note que se forma um bloco de comandos, delimitado ente o 
início e o fim do loop. Veja o exemplo: 
 
 
 
Suponha os algoritmos abaixo que calculam o valor de x10, sendo x 
fornecido pelo usuário. Em termos de programação, pode-se ver a diferença na 
escrita dos programas a seguir, com e sem o uso de um laço de repetição (loop): 
 
a) Sem laço: 
 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
36 
b) Com laço: 
 
Repetição constante 
 
 
 
 
Repetição variável 
 
 
Problema loop infinito 
 
 
 
Teste de Mesa 
Início: n = 0 
1º loop: n = 0 
2º loop: n = 0 
3º loop: n = 0 
4º loop: n = 0 
... 
nº loop: n = 0 
Obs: O programa ficará travado, 
pois a condição de saída do loop 
nunca será satisfeita ou seja: a 
variável n nunca será maior que 5 
Teste de Mesa 
n = 0 e i = 5 
Início: 0 <= 5 
1º loop: 1 <= 5 
2º loop: 2 <= 5 
3º loop: 3 <= 5 
4º loop: 4 <= 5 
5º loop: 5 <= 5 
6º loop: 6 <= 5 ? 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
37 
2.4.2.2. Comando: para / até / faça 
Em portugol, escreve-se o comando para / até / faça, da forma 
apresentada abaixo. Note que se forma um bloco de comandos, delimitado ente o 
início e o fim do loop. 
Veja a sintaxe do comando: 
 
Exemplos: 
a) Loop para/faça com passo crescente igual a 1. 
 
 
Obs: No loop do tipo para/faça o valor da variável de controle do loop é 
incrementada automaticamente de 1 a cada loop 
 
Teste de Mesa 
Inicio i = 0 
1ª iteração i = 1 
2ª iteração i = 2 
3ª iteração i = 3 
4ª iteração i = 4 
5ª iteração i = 5 
5 < 5 ? sai do loop 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
38 
b) Loop para/faça com passo decrecente: 
 
 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
39 
Exercício 
1) Escreva um algoritmo para gerar uma PA (progressão aritmética) de razão 
qualquer, com uma série de 10 termos. 
 
2) Modifique o exercício 5.1 para uma PA de N termos. 
 
3) Escreva um algoritmo para gerar a sequência de Fibonacci da forma abaixo, até 
o vigésimo termo: 1,1,2,3,5,8,13, ... 
 
4) Sejam dados P(X1,Y1) e Q(X2,Y2) dois pontos quaisquer no plano. Escreva um 
algoritmo que leia os pares de coordenada x e y e calcule a distância entre estes 
dois pontos. 
 
5) Escreva um algoritmo que gere uma tabela com a conversão de graus para 
Fahrenheit para Celsius e vice versa, com valores variando de 1 em 1 grau, de 0 a 
100 graus Celsius. 
 
Anotação 
 
 
 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
40
3. PROGRAMAÇÃO EM LINGUAGEM C 
3.1. INTRODUÇÃO A PROGRAMAÇÃO EM LINGUAGEM C 
3.1.1. Declaração de Variáveis 
As diferenças entre os tipos de variáveis do portugol para o C são: 
inteiro = int 
real = float, double 
caracter = char 
lógico = bool (normalmente não é necessário tipos booleanos para testes 
lógicos) 
Para alterar a precisão dos valores podem ser utilizados modificadores: 
C ANSI Exemplos: 
char char x; (x é um texto ou sequência de caracteres) 
int int y; (y é um inteiro sem sinal) unsigned int y (y é um inteiro com sinal) 
float float z; (z números com ponto flutuante (reais) com precisão simples) 
double double v; (v armazena números com ponto flutuante, com precisão 
dupla, ou seja normalmente possui o dobro da capacidade de uma 
variável do tipo float.) 
Exemplos: 
a) signed int (ou simplesmente int): 
Tipo de variável que se refere a um número inteiro com sinal. Ou seja, se 
um variável int ocupa dois bytes na memória, então, o maior valor decimal que pode 
ser armazenado neste tipo de variável deve estar entre –32.767 a 32.767 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
41 
O primeiro bit (mais significativo) representa o sinal (0 positivo e 1 negativo). Então 
o maior valor decimal que pode ser armazenado em 15 bits é 32.767. 
b) unsigned int; 
Tipo de variável que se refere a um número inteiro sem sinal. Ou seja, se 
um variável int ocupa dois bytes na memória, então, o maior valor decimal que pode 
ser armazenado neste tipo de variável deve estar entre 0 a 65.535. 
 
O primeiro bit (mais significativo) não representa mais o sinal. Então o 
maior valor decimal que pode ser armazenado em 16 bits é 65.535. 
O tamanho em bytes de cada tipo de variável no C, é apresentado na 
tabela abaixo. 
Tipo Tamanho em Bits Faixa de valores 
Char 8 -127 a 127 
unsigned char 8 0 a 255 
signed char 8 -127 a 127 
int 16 -32767 a 32767 
unsigned int 16 0 a 65.535 
signed int 16 mesmo que int 
short int 16 mesmo que int 
unsigned short int 16 mesmo que unsigned int 
signed short int 16 mesmo que short int 
long int 32 -2.147.483.647 a 2.147.483.647 
signed long int 32 Mesmo que long int 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
42 
unsigned long int 32 0 a 4.294.967.295 
float 32 seis dígitos de precisão 
double 64 dez dígitos de precisão 
long double 80 dez dígitos de precisão 
3.1.2. Comando de atribuição: 
O comando de atribuição em linguagem é dado pelo símbolo = (igual). 
Exemplo: 
float A, B, C; 
A = 10; 
B = 20; 
 C = A + B; 
Obs: na linguagem C o símbolo = (igual) substitui o símbolo <- de portugol 
3.2. ENTRADA E SAÍDA DE DADOS FORMATADA 
A função scanf() permite que um valor seja lido do teclado e armazenado 
numa variável. Sua sintaxe consiste numa cadeia de formatação seguida de uma 
lista de argumentos, cada um deles sendo o endereço de uma variável: 
scanf(“formatação”, arg1, arg2, ..., argn); 
A cadeia de formatação é composta por códigos especiais, denominados 
especificadores de formato, que indicam a quantidade e os tipos dos dados que 
serão lidos pela função.“scanf()” em C assume a mesma operação do portugol “leia”. 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
43 
Exemplo: Lendo dados com a função scanf() 
 
Enquanto isso em portugol 
 
 
 
 
Como podemos observar, a cada especificação de formato na cadeia de 
formatação corresponde um endereço de variável na lista de argumentos. 
 
 
 
O operador & informa o endereço de memória em que uma 
variável foi alocada. 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
44 
Expecificador Representa 
%c um único caracter 
%o, %d, %x um número inteiro em octal, decimal ou hexadecimal 
%u um número inteiro em base decimal sem sinal 
%ld um número inteiro longo em base decimal 
%f, %lf um número real de precisão simples ou dupla 
%s uma cadeia de caracteres (string) 
%% um único sinal de porcentagem 
A função printf() nos permite exibir informações formatadas no vídeo. A 
sua sintaxe é essencialmente idêntica àquela da função scanf(). A principal 
diferença é que agora a lista de argumentos deve conter os valores a serem exibidos 
e não seus endereços: 
printf(“formatação”, arg1, arg2, ..., argn); 
Além disso, a cadeia de formatação pode conter também texto, que é 
exibido normalmente, e caracteres de controle, cuja exibição causa efeitos especiais. 
Os principais caracteres de controle utilizados com a função printf() são: 
Caracter de controle Efeito 
\a soa o alarme do microcomputador 
\b o cursor retrocede uma coluna 
\f alimenta página na impressora 
\n o cursor avança para uma nova linha 
\r o cursor retrocede para a primeira coluna da linha 
\t o cursor avança para próxima marca de tabulação 
\” \’ exibe uma única aspa ou apóstrofo 
\\ exibe uma única barra invertida 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
45 
Desses caracteres, o mais usado é \n. Através dele podemos indicar 
quando uma nova linha deve ser utilizada ao se exibir alguma informação na tela. 
Exemplo: Exibindo dados com a função printf() 
 
Enquanto isso em portugol 
 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
46
3.2.1. FORMATAÇÃO DE CAMPOS PARA EXIBIÇÃO 
A função printf() permite que os campos de exibição sejam formatados. 
As formatações mais usadas são o preenchimento com zeros à esquerda, para 
inteiros, e a especificação do número de casas decimais, para reais. 
Exemplo: Formatação de campos com printf(). 
 
------------------------------------- 
| 678| 
|000678| 
| 12.346| 
| 12.35| 
------------------------------------ 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
47 
3.3. OPERADORES ARITMÉTICOS 
C oferece operadores para as quatro operações aritméticas e também um 
operador para calcular o resto da divisão entre dois números inteiros. 
Operador Resultado 
+ soma de dois números quaisquer 
- diferença entre dois números quaisquer 
* produto de dois números quaisquer 
/ quociente da divisão de dois números 
% resto da divisão de dois número inteiros 
 
Destes operadores, apenas dois merecem atenção especial. Os demais 
funcionam conforme as regras usuais estabelecidas na matemática básica. 
• Divisão: o operador de divisão fornece resultado inteiro apenas quando 
ambos os operandos são inteiros. Por exemplo, 7 / 2 ⇒ 3 e 7.0 / 2 ⇒ 3.5. 
• Resto: o operador de resto somente pode ser utilizado com operandos 
inteiros. Por exemplo, 7 % 2 ⇒ 1 e 7.0 % 2 ⇒ erro. 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
48 
Exercício 
a) Dadas as duas notas de um aluno, informe a sua média final. 
b) Dados uma distância e o total de litros de combustível gasto por um 
automóvel para percorrê-la, informe o consumo médio. 
c) Dado um caracter, informe o seu código ASCII em octal, decimal e 
hexadecimal. 
d) Dada um temperatura em graus Fahrenheit, informe o valor correspondente 
em graus Celsius. [Dica: C = (F – 32) ∗ (5 / 9)]. 
e) Dadas as medidas dos catetos de um triângulo retângulo, informe a medida 
da hipotenusa. [Dica: para calcular a raiz quadrada use a função sqrt(), 
definida no arquivo math.h]. 
 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
49
3.4. COMANDOS DE DECISÃO 
Nesse capítulo introduzimos os conceitos básicos relacionados à tomada 
de decisão, tais como valores lógicos, operadores relacionais e conectivos, e 
apresentamos os comandos condicionais oferecidos na linguagem C. 
3.4.1. EXPRESSÕES LÓGICAS 
Em C, não existe um tipo específico para a representação de valores 
lógicos. Entretanto, qualquer valor pode ser interpretado como um valor lógico: 
“zero representa falso e qualquer outro valor representa verdade”. Por exemplo, os 
valores 5, –3, 1.2 e 'a' são verdadeiros, enquanto 0 e 4–4 são falsos. 
 
Para gerar um valor lógico, usamos os operadores relacionais. Através 
deles podemos comparar dois valores de diversas formas. O resultado da avaliação 
de um operador relacional é 0 se a comparação é falsa e 1 se verdadeira. 
Operador relacional Resultado 
x == y verdade se x for igual a y 
x != y verdade se x for diferente de y 
x < y verdade se x for menor que y 
x > y verdade se x for maior que y 
x <= y verdade se x for menor ou igual a y 
x >= y verdade se x for maior ou igual a y 
 
 
 
 
Em C, 0 representa o valor lógico "falso" e 1 representa o valor 
lógico "verdade". 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
50
Exemplo: Operadores relacionais e valores lógicos. 
... 
printf("%d %d", 5 < 6, 6 < 5); 
... 
A saída produzida pela instrução será “1 0”. 
Além dos operadores relacionais, C oferece também operadores lógicos. 
Com eles, podemos criar expressões lógicas compostas. Os operadores lógicos 
funcionam conforme as regras definidas na lógica matemática. 
Operador lógico Resultado 
!x verdade se e só se x for falso 
x && y verdade se e só se x e y forem verdade 
x || y verdade se e só se x ou y for verdade 
Numa expressão contendo operadores aritméticos, relacionais e lógicos, 
a avaliação é efetuada na seguinte ordem: 
① primeiro avaliam-se todos os operadores aritméticos; 
② em seguida, avaliam-se os operadores relacionais; 
③ só então, avaliam-se os operadores lógicos. 
 
Exercício 
Qual a saída produzida pela instrução a seguir? 
printf("%d %d %d %d", !3, !0, 3+'a'>'b'+2 && !'b', 1 || !2 && 3); 
Anotação 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
51 
3.5. DECISÃO SIMPLES 
A estrutura condicional ou de decisão simples serve para escolher um 
entre dois comandos alternativos, conforme ilustrado na figura abaixo. Em C, a 
estrutura condicional é codificada da seguinte forma: 
if(condição) comando1; else comando2; 
e funciona, conforme ilustrado na figura abaixo, da seguinte maneira: 
① avalia a condição, que deve ser uma expressão lógica; 
② se a condição for verdadeira, executa apenas o comando1; 
③ senão, executa apenas o comando2. 
 
 
Exemplo: Uso de decisão simples 
#include <stdio.h> 
main() { 
 float a, b, m; 
 printf(“\n Informe as duas notas obtidas: ”); 
 scanf(“%f %f”, &a, &b); 
 m = (a+b)/2; 
 if( m >= 7.0 ) printf(“\n Aprovado”); 
 else printf(“\n Reprovado”); 
} 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
52 
 
O programa solicita as duas notas obtidas pelo aluno, calcula sua média 
e, em função desse valor, decide se o aluno está ou não aprovado. 
Pode ser que um dos comandos alternativos, ou ambos, seja composto 
por mais de uma instrução.Por exemplo, se o programa anterior tivesse que exibir 
Aprovado em azul e Reprovado em vermelho, então cada alternativa seria 
composta por duas instruções: uma para selecionar a cor e a outra para exibir a 
situação do aluno. Nesse caso, teríamos que usar blocos, agrupando as instruções 
em cada alternativa dentro de um par de chaves. 
Exemplo: O uso de blocos de instruções. 
#include <stdio.h> 
#include <conio.h> 
main() { 
 float a, b, m; 
 clrscr(); 
 printf(“\n Informe as duas notas obtidas: ”); 
 scanf(“%f %f”, &a, &b); 
 m = (a+b)/2; 
 if( m >= 7.0 ) { 
 textcolor(BLUE); 
 cprintf(“\n Aprovado”); 
 } else { 
 textcolor(RED); 
 cprintf(“\n Reprovado”); 
 } 
 getch(); 
} 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
53 
 
 
Anotação 
 
 
 
 
A função textcolor() seleciona a cor do texto e a função 
cprintf(), cuja sintaxe é idêntica à da printf( ), exibe o texto na 
cor selecionada. Essas funções, assim como as constantes 
BLUE e RED, estão declaradas no arquivo conio.h. 
Alguns comandos alternativos ou adicionais podem não 
funcionar em alguns compiladores. 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
54 
Exercício 
1) Dados dois números distintos, informe qual dele é o maior. 
2) Uma empresa determinou um reajuste salarial de 5% a todos os seus 
funcionários. Além disto, concedeu um abono de R$ 100,00 para aqueles que 
recebem até R$ 750,00. Dado o valor do salário de um funcionário, informar 
para quanto ele será reajustado. 
 
Anotação 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
55 
3.5.1. OPERADOR CONDICIONAL 
C oferece também um operador que proporciona uma forma mais 
compacta de se representar decisões simples. O operador condicional, cuja sintaxe 
é condição ? expressão1 : expressão2, 
funciona da seguinte maneira: 
① avalia a condição; 
② se ela for verdadeira, o resultado final é o valor da expressão1; 
③ senão, o resultado final é o valor da expressão. 
Exemplo: O uso do operador condicional. 
... 
abs = n>0 ? n : -n; 
... 
A instrução acima atribui à variável abs o valor absoluto da variável n. A 
expressão n>0 é avaliada: se for verdadeira, abs recebe o próprio valor de n; caso 
contrário, abs recebe o valor de n com o sinal invertido. 
Exemplo: O uso do operador condicional como argumento de função. 
#include <stdio.h> 
main() { 
 int x, y; 
 printf("\nInforme dois valores: "); 
 scanf("%d %d", &x, &y); 
 printf("\n Máximo = %d", x>y ? x : y); 
} 
 
A instrução acima seleciona e exibe o máximo entre dois valores x e y. 
Note que não seria possível usar um if-else como argumento na função printf(). 
 
 
Uma vantagem no uso do operador condicional é que, sendo 
um operador, podemos utilizá-lo em qualquer contexto em 
que uma expressão é permitida. 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
56 
Exercício 
1) Seja e uma variável contendo o número de erros detectados num certo processo. 
Codifique uma instrução capaz de exibir saídas como: 
1 erro detectado. 
5 erros detectados. 
 
2) Codifique uma instrução para exibir valores lógicos como true e false. Para o valor 
0 deve aparecer false e para qualquer outro, true. 
 
Anotação 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
57 
3.5.2. CONDICIONAIS ANINHADOS E ENCADEADOS 
Como vimos, a estrutura condicional serve para selecionar e executar um 
entre dois comandos alternativos. É possível que, algumas vezes, um destes 
comandos alternativos (ou ambos) sejam também condicionais. Nesse caso, 
dizemos que o primeiro condicional é o principal e o outro está aninhado ou 
encadeado, conforme indicado a seguir: 
if(condição) /* principal */ 
 if ... /* aninhado */ 
else 
 if ... /* encadeado */ 
Para exemplificar o uso desses condicionais, vamos considerar o seguinte 
problema: “Dados três números verificar se eles podem representar as medidas dos 
lados de um triângulo e, se puderem, classificar o triângulo em equilátero, isósceles 
ou escaleno”. 
Para codificar o programa, devemos lembrar das seguintes definições: 
• Para que três números representem os lados de um triângulo é 
necessário que cada um deles seja menor que a soma dos outros dois. 
• Um triângulo é equilátero se tem os três lados iguais, isósceles se tem 
apenas dois lados iguais e escaleno se tem todos os lados distintos. 
Exemplo: O uso de condicionais aninhados e encadeados. 
#include <stdio.h> 
#include <conio.h> 
main() { 
 float a, b, c; 
 clrscr(); 
 printf(“\nInforme três números: “); 
 scanf(“%f %f %f”, &a, &b, &c); 
 if( a<b+c && b<a+c && c<a+b ) { 
 printf(“\nÉ um triângulo: ”); 
 if( a==b && b==c ) printf(“equilátero”); 
 else if( a==b || a==c || b==c ) printf(“isósceles”); 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
58 
 else printf(“escaleno”); 
 } 
 else printf(“\nNão é um triângulo”); 
 getch(); 
} 
 
Anotação 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
59 
Exercício 
1) Numa faculdade, os alunos com média pelo menos 7,0 são aprovados, 
aqueles com média inferior a 3,0 são reprovados e os demais ficam de 
recuperação. Dadas as duas notas de um aluno, informe sua situação. Use as 
mensagens aprovado, reprovado e recuperação, respectivamente. 
 
Anotação 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
60
3.6. DECISÃO MÚLTIPLA 
A estrutura de decisão múltipla é bastante adequada quando precisamos 
escolher uma entre várias alternativas previamente definidas, por exemplo, num 
menu. A decisão múltipla tem a seguinte forma básica: 
switch( expressão ) { 
 case constante1 : comando1; break; 
 case constante2 : comando2; break; 
 ... 
 case constanten : comandon; break; 
 default : comando; 
} 
e funciona da seguinte maneira: 
① Avalia a expressão, que deve ser do tipo char ou int; 
② Encontra o case cuja constante é igual ao valor da expressão e 
executa todos os comandos seguintes até encontrar um comando break; 
③ Se não existe tal caso, executa as instruções associadas ao caso 
default. 
 
Note que, embora o comando break seja quase sempre usado 
juntamente com o comando switch, ele não faz parte da sintaxe desse comando. 
Se dois casos não são separados por um comando break, dizemos que o controle 
"vaza" de um caso para o outro, ou seja, quando o primeiro caso é selecionado para 
execução, não apenas o comando associado a ele é executado, mas também o 
comando associado ao segundo. 
 
 
O caso default é opcional e, embora seja geralmente 
posicionado no final do bloco switch, ele pode aparecer em 
qualquer posição entre os case´s especificados. 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
61 
Exemplo: O uso da estrutura de decisão múltipla com vazamentos. 
#include <stdio.h> 
main() { 
 int n; 
 printf(“\n Digite um número: ”); 
 scanf(“%d”, &n); 
 switch( n ) { 
 case 1: putchar('A'); break; 
 case 3: putchar('B'); 
 case 4: putchar('C'); break; 
 default: printf('*'); 
 case 5: putchar('D'); 
 } 
 putchar('.'); 
} 
 
A tabela ao lado mostra as saídas produzidas pelo 
programa para alguns valores atribuídos à variável n. 
Note que, como não há um caso rotulado com a 
constante 2, para n=2, o caso default é selecionado. 
Como o caso default não é finalizado com um break, o 
controle "vaza" para o caso seguinte, produzindo a saída 
*D.. 
 
A seguir, a estrutura de decisão múltipla é usada para implementar uma simples 
calculadora: o usuário digita uma expressão da forma val1 oper val2 e o programa 
fornece-lhe seu valor como resposta. 
 
 
N Saída 
1 A. 
2 *D. 
3 BC. 
4 C. 
5 D. 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação62 
Exemplo: O uso da estrutura de decisão múltipla. 
#include <stdio.h> 
main() { 
 float x, y; 
 char op; 
 printf(“\n Expressão? ”); 
 scanf(“%f %c %f”, &x, &op, &y); 
 switch( op ) { 
 case ‘+’: printf(“\n valor = %.2f”, x+y); break; 
 case ‘-’: printf(“\n valor = %.2f”, x-y); break; 
 case ‘*’: printf(“\n valor = %.2f”, x*y); break; 
 case ‘/’: printf(“\n valor = %.2f”, x/y); break; 
 default : printf(“\n Operador inválido: %c”,op); 
 } 
} 
Não existe restrição alguma quanto aos tipos de comandos que podem 
estar associados a um determinado case dentro do comando switch. Por exemplo, 
suponha que antes de efetuar uma divisão seja necessário verificar se o divisor é 
realmente diferente de zero. Nesse caso, teríamos que incluir um comando if dentro 
do switch; isso pode ser feito sem nenhum problema. 
Exemplo: Usando if dentro do switch. 
... 
case ‘/’ : if( y == 0 ) { 
 printf(“\n Impossível dividir por zero!”); 
 exit(1); 
 } 
 z = x/y; 
 break; 
... 
Quando executada, a função exit() interrompe a execução do programa. 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
63 
 
 
 
Como toda a estrutura switch é envolvida por chaves, não é 
necessário usar bloco quando há mais que uma instrução 
associada a um determinado case. 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
64
Exercício 
1) Escreva um programa utilizando o comando switch que imprima um mês de 
acordo com o número digitado pelo usuário. 
 
Anotação 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
65 
3.7. COMANDOS DE REPETIÇÃO 
Nesse capítulo introduzimos os operadores aritméticos de atribuição, de 
incremento e decremento, que nos permitem escrever expressões de forma mais 
compactas, e apresentamos os comandos de repetição e de interrupção de laço 
oferecidos em C. 
3.7.1. EXPRESSÕES COMPACTAS 
Quando codificamos um programa, freqüentemente temos a necessidade 
de escrever expressões da forma variável = variável operador expressão. Para facilitar, 
C oferece um grupo especial de operadores de atribuição que nos permitem 
escrever essas expressões numa forma mais compacta. 
3.7.2. OPERADORES ARITMÉTICOS DE ATRIBUIÇÃO 
Os operadores aritméticos de atribuição combinam, num único operador, 
uma operação aritmética e uma atribuição. Por exemplo, a expressão x = x+3 pode 
ser escrita como x += 3. O operador += adiciona o valor da expressão à sua direita 
ao valor da variável à sua esquerda e armazena o resultado nessa mesma variável. 
Em geral, os compiladores geram um código executável mais rápido quando essas 
abreviações são utilizadas. Porém, a maior vantagem desses operadores é evitar 
erros decorrentes de redundância. Por exemplo, considere a expressão 
v[i+w[2∗j]] = v[i+w[2∗j]]+3. Para manter a consistência, toda alteração feita 
na variável1 do lado esquerdo deverá também ser feita na variável do lado direito. 
Evidentemente, escrevendo-a como v[i+w[2∗j]] += 3, garantimos que toda 
alteração será sempre consistente. 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
66
 
Expressão Forma compacta Objetivo 
x = x + y x += y Atribui a soma de x 
x = x − y x −= y Atribui a subtração de x 
x = x ∗ y x ∗= y Atribui a multiplicação de x 
x = x / y x /= y Atribui a divisão de x 
x = x % y x %= y Atribui ao módulo de x 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
67 
Exercício: 
1) Explique por que motivo a expressão x = x ∗ 2 + y não pode ser escrita como 
x ∗= 2 + y. 
 
Anotação 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
68
3.7.3. INCREMENTO E DECREMENTO 
Se uma expressão incrementa ou decrementa o valor da variável, 
podemos então escrevê-la numa forma ainda mais compacta. Para incrementar 
usamos o operador ++ e para decrementar usamos o operador −−. Esses operadores 
são unários e podem ser usados tanto na forma prefixa quanto posfixa. 
• forma prefixa: ++variável, −−variável 
• forma posfixa: variável++, variável— 
 
Exemplo: Operadores de incremento e decremento. 
... 
int x=5, y=5; 
++x; 
y––; 
printf(“\n x=%d y=%d”, x, y); 
... 
Como esperado, a saída produzida pelo código acima será x=6 y=4. 
A diferença entre usar um operador na forma prefixa ou posfixa aparece 
somente quanto ele é utilizado numa expressão, juntamente com outros 
operadores. Neste caso, o funcionamento é o seguinte: 
 na forma prefixa, a variável é alterada e, depois, seu valor é usado. 
 na forma posfixa, o valor da variável é usado e, depois, ela é alterada. 
Exemplo: Operadores de incremento e decremento. 
... 
int x=5, y=5, v, w; 
v = ++x; 
w = y––; 
printf(“\n x=%d y=%d v=%d w=%d”, x, y, v, w); 
... 
Agora, a saída produzida pelo código será x=6 y=4 v=6 w=5. 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
69
 
Anotação 
 
 
 
Os operadores de incremento e decremento não podem ser 
aplicados a valores constantes, já que x++ equivale, de certa 
forma, a x = x+1 ou x += 1. 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
70 
Exercício: 
1) Seja x=5 e considere a instrução y = x++ + ++x. Quais os valores das variáveis 
x e y após a execução dessa instrução? Por quê?. 
 
Anotação 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
71 
3.8. REPETIÇÃO COM CONTADOR 
A estrutura de repetição com contador tem seu funcionamento 
controlado por uma variável que conta o número de vezes que o comando é 
executado. 
Em C, essa estrutura é implementada pelo comando for, cuja forma básica 
é a seguinte: 
for( inicialização; condição; alteração) comando; 
A inicialização é uma expressão que atribui um valor inicial ao contador, a 
condição verifica se a contagem chegou ao fim e a alteração modifica o valor do 
contador. Enquanto a contagem não termina, o comando associado ao for é 
repetidamente executado. O funcionamento dessa estrutura pode ser 
acompanhado na figura a seguir: 
 
Exemplo: Uma contagem progressiva. 
#include <stdio.h> 
main() { 
 int c; 
 for(c=1; c<=9; c++) printf(“%d ”, c); 
} 
//A saída produzida pelo código será 1 2 3 4 5 6 7 8 9. 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
72 
Exercício: 
1) Dado um valor n, exiba uma contagem regressiva. 
2) Exiba uma tabela de conversão de polegadas em centímetros, variando as 
polegadas de 0 a 10 de meio em meio. [Dica: 1" = 2,54 cm] 
3) Dados um número real x e um natural n, exiba a potência xn. 
4) Dados um número natural n, exiba seu fatorial n!. 
 
Anotação 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
73 
O exemplo anterior tem uma única instrução dentro do for. Porém, 
usando um bloco, podemos executar qualquer número de instruções. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
O vetor é uma estrutura de dados indexada, que pode 
armazenar uma determinada quantidade de valores do 
mesmo tipo. Os dados armazenados em um vetor são 
chamados de itens do vetor. Para localizar a posição de um 
item em um vetor usamos um número inteiro denominado 
índice do vetor. 
 
Exemplo: sendo o vetor de preco representado por x, será 
escrito preco[x]. 
Matriz é a uma estrutura de dados do tipo vetor com duas ou 
mais dimensões. Os itens de uma matriz tem que ser todos do 
mesmo tipo de dado. Na prática, as matrizes formam tabelas 
na memória. 
 
Exemplo: sendo a matriz preco representada por x = linha 
e y = coluna será escrito preco[x][y] 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
74 
Exemplo: Exibindo tabuadas. 
#include <stdio.h> 
#include <conio.h> 
main() { 
 int n, c, r; 
 clrscr(); 
 printf(“\nDigite um número entre 1 e 10: ”); 
 scanf(“%d”, &n); 
 for(c=1; c<=10; c++) { 
 r = n*c; 
 printf(“\n %d x %2d = %3d”,n, c, r); 
 } 
 getch(); 
} 
Supondo que o usuário digite o número 7, o programa exibirá: 
7 x 1 = 7 
7 x 2 = 14 
7 x 3 = 21 
7 x 4 = 28 
7 x 5 = 35 
7 x 6 = 42 
7 x 7 = 49 
7 x 8 = 56 
7 x 9 = 63 
7 x 10 = 70 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
75 
Exercício: 
1) O quadrado de um número natural n é dado pela soma dos n primeiros 
números ímpares consecutivos. Por exemplo, 12=1, 22=1+3, 32=1+3+5, 
42=1+3+5+7, etc. Dado um número n, calcule seu quadrado usando a soma 
de ímpares ao invés de produto. 
 
2) A série de Fibonacci é 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ... Os dois primeiros termos 
são iguais a 1 e, a partir do terceiro, o termo é dado pela soma dos dois termos 
anteriores. Dado um número n≥3, exiba o n-ésimo termo da série de 
Fibonacci. 
 
Anotação 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
76 
O próximo exemplo mostra o uso de um comando if dentro do comando for. 
Exemplo: Exibe a tabela ASCII com pausas a cada 23 linhas. 
#include <stdio.h> 
#include <conio.h> 
main() { 
 int c, n=0; 
 for(c=0; c<=255; c++) { 
 printf(“\n%c ==> %d”, c, c); 
 n++; 
 if( n==23 ) { 
 printf(“\n\nPressione uma tecla ...”); 
 n=0; 
 getch(); 
 } 
 } 
} 
O contador de linhas n é iniciado com o valor 0 e incrementado a cada 
linha exibida na tela. Quando seu valor torna-se igual a 23, o programa reinicia seu 
valor em 0 e aguarda o usuário pressionar uma tecla para prosseguir. 
O próximo exemplo mostra o uso de um for 
aninhado dentro de outro. O programa exibe um tabuleiro 
de xadrez cujo tamanho é indicado pelo usuário. Para 
determinar a cor dos quadros do tabuleiro, basta observar 
na figura a seguir que os quadros brancos correspondem a 
posições cuja soma de suas coordenadas é par e aqueles 
de cor preta, a posições cuja soma é ímpar. 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
77 
 
 
Exemplo: Exibe um tabuleiro de xadrez. 
#include <stdio.h> 
#include <conio.h> 
main() { 
int lin, col, n; 
clrscr(); 
printf("\n Qual o tamanho do tabuleiro? "); 
scanf("%d", &n); 
for(lin=1; lin<=n; lin++) { 
printf("\n"); 
for(col=1; col<=n; col++) { 
if((lin+col)%2 == 0) textcolor(YELLOW); 
else textcolor(GREEN); 
cprintf("%c%c",219,219); 
} 
} 
getch(); 
} 
O código ASCII 219 corresponde ao caracter '❚'. Como sua altura é o dobro 
de sua largura, precisamos exibir dois deles para formar um quadrado. 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
78 
Exercício 
1) Dados dois números naturais m e n, exiba um retângulo com m caracteres de 
altura e n caracteres de largura. Por exemplo, se forem dados os números 3 e 
6, deverá ser exibido o seguinte desenho: 
 
 1 2 3 4 
 __ __ __ __ 
1 |__|__|__|__| 
2 |__|__|__|__| 
3 |__|__|__|__| 
4 |__|__|__|__| 
 
Anotação 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
79 
3.9. REPETIÇÃO COM PRECONDIÇÃO 
A estrutura de repetição com precondição, ilustrada na figura abaixo, é 
mais genérica que aquela com contador. Em C, ela tem a seguinte forma: 
while(condição) comando; 
Seu funcionamento é controlado por uma única expressão, sua condição, 
cujo valor deve ser verdadeiro para que o comando seja repetido. A repetição com 
precondição pára somente quando sua condição torna-se falsa. 
 
Para exemplificar o uso de repetição com precondição, vamos resolver o 
seguinte problema: “dado um número natural, exibir os seus dígitos”. Por exemplo, 
dado o número 8503 como entrada, o programa deverá exibir como saída os dígitos 
3, 0, 5 e 8. A estratégia será dividir o número sucessivamente por 10 e ir exibindo 
os restos obtidos, um a um. O processo se repete enquanto o número for diferente 
de zero, conforme ilustrado a seguir: 
 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
80
Exemplo: Exibe os dígitos de um número. 
#include <stdio.h> 
#include <conio.h> 
main() { 
unsigned n, d; 
clrscr(); 
printf(“\n Digite um número: ”); 
scanf(“%u”, &n); 
printf(“\n Os seus dígitos são: ”); 
while( n != 0 ) { 
d = n % 10; 
n /= 10; 
printf(“%u ”, d); 
} 
getch(); 
} 
Anotação 
 
 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
81 
Exercício 
1) Faça um programa que receba dois números X e Y, sendo X a quantidade de 
produtos e Y o preço unitario. Calcule e mostre o valor total de cada produto. 
 
2) Faça um programa que, para um número indeterminado de pessoas: leia a 
idade de cada uma, sendo que a idade 0 (zero) indica o fim da leitura e não 
deve ser considerada. A seguir calcule: • o número de pessoas; • a idade média 
do grupo; • a menor idade e a maior idade. 
 
Anotação 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
82 
3.10. REPETIÇÃO COM POSCONDIÇÃO 
A estrutura de repetição com poscondição é bastante semelhante àquela 
com precondição. A diferença é que nessa última a condição é verificada antes que 
o comando seja executado, enquanto na primeira a condição é verificada somente 
depois que o comando é executado. Conseqüentemente, a repetição com 
poscondição garante que o comando seja executado pelo menos uma vez. 
do{ comando; }while( condição ); 
 
Vamos criar um programa que simula o movimento de uma bola de 
pingpong batendo nas bordas da tela, conforme ilustrado a seguir: 
 
 
Não é preciso usar chaves quando há um único comando a 
ser repetido, entretanto, elas são geralmente incluídas para 
evitar confusão entre while e do...while. 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
83 
O movimento da bola se repete até que uma tecla seja pressionada, fato 
que será verificado através da função kbhit(). Esta função, definida em conio.h, 
devolve 1 se alguma tecla foi pressionada e 0 em caso contrário. Também, para 
simular o som da bola batendo na borda da tela, usaremos as seguintes funções 
definidas em conio.h: 
• sound(n): emite som com freqüência de n hertz; 
• nosound( ): cessa o som emitido pelo alto-falante; 
• delay(m) : gera uma pausa de m milissegundos. 
Exemplo: Dada uma série de números positivos (finalizada com um valor nulo) que 
representam o n!. 
#include <stdio.h> 
#include <conio.h> 
main() { 
 int n, v; 
 //clrscr(); 
 printf("\nDigite um número: "); 
 scanf("%d", &n); 
 v = n; 
 do{ 
 n -= 1; 
 v *= n; 
 }while(n > 1); 
 printf("Vetorial: %d\n", v); 
 getch(); 
} 
 
Estes comandos sound(), nosound(), delay(), 
clrscr()e gotoxy() não funcionam na plataforma para 
sistema operacional windows e é necessário uma biblioteca 
específica. 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
84 
Exercício 
1) Escreva um programa em C que receba um número X que representa um 
número inteiro, e imprima o seu calculo de 1 a 10 e mostre o valor total de 
cada produto. 
 
2) Escreva um programa em C que calcule a média dos números reais digitados 
pelo usuário. Termine a leitura se o usuário digitar zero. 
 
Anotação 
 
 
 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
85 
Referência 
H. SCHILDT, C – The Complete Reference, 3rd edition, McGraw-Hill, 1995. 
K. JAMSA, Microsoft C – Secrets, Shortcuts and Solutions, Microsoft, 1989. 
S. HOLZNER, C Programming, Brady, 1991. 
 
 
SEDI 
Secretaria de 
Estado de 
Desenvolvimento 
Econômico e 
Inovação 
86
Currículo do Professor 
 
Heder Vieira de Lima, Graduado em Gestão de Tecnologia da 
Informação na Universidade Paulista, Pós-Graduado em 
Gestão de Tecnologiada Informação e Marketing Digital na 
Universidade Anhanguera, Técnico em TI, Webdesign e 
Programador Senior em PHP, JQuery, JSon e JavaScript.

Outros materiais