Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

1
 
Introdução à Computação
Programa - Definição
 
Um programa é um conjunto de instruções que o computador deve executar passo a passo. É uma seqüência finita de instruções que, quando executadas, resolvem um problema ou desempenham uma tarefa específica.
Programar um computador requer duas exigências básicas:
 Conhecer a linguagem na qual se vai programar;
 Estruturar o raciocínio de forma a saber combinar os comandos desta linguagem, dentro de uma seqüência lógica, ou seja, de modo a atingirmos o objetivo perseguido.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
1
0:34
0:25
Linguagem de Programação
É um conjunto de símbolos (comandos, identificadores, caracteres ASCII, etc.) e regras de sintaxe que permitem a construção de sentenças que descrevem de forma precisa ações compreensíveis e executáveis para o computador. 
2
ASCII : American Standard Code for Information Interchange" (Código Padrão Norte-americano para Intercâmbio de Informações)
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
2
Linguagem de Programação
tabela ASCII 
	Binário
	D
	H
	G
	Binário
	D
	H
	G
	Binário
	D
	H
	G
	0010 0001	33	21	!	0100 0001	65	41	A	0110 0001	97	61	a
	0010 0010	34	22	"	0100 0010	66	42	B	0110 0010	98	62	b
	0010 0011	35	23	#	0100 0011	67	43	C	0110 0011	99	63	c
	0010 0100	36	24	$	0100 0100	68	44	D	0110 0100	100	64	d
	0010 0101	37	25	%	0100 0101	69	45	E	0110 0101	101	65	e
	0010 0110	38	26	&	0100 0110	70	46	F	0110 0110	102	66	f
	0010 0111	39	27	'	0100 0111	71	47	G	0110 0111	103	67	g
	0010 1000	40	28	(	0100 1000	72	48	H	0110 1000	104	68	h
	0010 1001	41	29	)	0100 1001	73	49	I	0110 1001	105	69	i
3
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
3
4
 
Lógica
 
A Lógica está relacionada ao pensamento racional e ordenado. 
Na Filosofia, ela se preocupa em estudar por que pensamos do jeito que pensamos. 
Como arte ou técnica, ela nos induz a usar corretamente as leis do pensamento. 
É a arte do bem pensar.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
4
5
 
Algoritmos
 
 Um algoritmo é formalmente uma seqüência finita de passos que levam a execução de uma tarefa. 
Podemos pensar em algoritmo como uma receita, uma seqüência de instruções que tem a função de atingir uma meta específica. Estas tarefas não podem ser redundantes nem subjetivas na sua definição, devem ser claras e precisas.
 Como exemplos de algoritmos podemos citar os algoritmos das operações básicas de uma calculadora (adição, multiplicação, divisão e subtração de números reais decimais).
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
5
6
 
Desenvolvendo Algoritmos
 
 O algoritmo deve ser fácil de se interpretar e fácil de se codificar.
 Ele deve ser o intermediário entre a linguagem falada e a linguagem de programação.
 São independentes das linguagens de programação e não existe um formalismo rígido de como ele deve ser escrito.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
6
7
 
Fases para construção do Algoritmo
 
Ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em três fases fundamentais.
Entrada
Processamento 
Saída 
São os dados de entrada do algoritmo
São os procedimentos utilizados para chegar ao resultado final
 São os dados já processados
O que preciso?
Como chegar 
ao que quero?
O que quero?
A entrada de dados será feita através da instrução ler
A saída de dados será feita através da instrução escrever
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
7
8
 
Tipos de Algoritmos
 
Fluxogramas (diagramas de bloco ou diagrama de fluxo)
Diagrama de Chapin (cartas n-s) 
Pseudocódigo 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
8
NASSI-SHNEIDERMAN 
Developed in 1972 by Isaac Nassi and Ben Shneiderman, these diagrams are also called structograms, as they show a program's structures. 
9
 
Algoritmo em Diagrama de Chapin (cartas n-s) 
 
Fazer um algoritmo para entrar com duas notas e calcular sua média. Sel ela for maior ou igual a 7, apresente o aluno como “Aprovado” senão, apresente o aluno como “Reprovado”.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
9
NASSI-SHNEIDERMAN 
Developed in 1972 by Isaac Nassi and Ben Shneiderman, these diagrams are also called structograms, as they show a program's structures. 
10
 
 
Algoritmo em Fluxograma
idade>=18
V
F
Algoritmo Verif_Maioridade
Var Idade: inteiro
Início
 Leia Idade
 Se Idade >=18 Então 
 Escreva “Maior de idade”
 Senão
 Escreva “Menor de idade”
 Fim_se
Fim
	
Cmd 1
Cmd 2
Inicio
Idade
“Maior de 
idade”
“Menor de 
Idade”
Fim
 Fazer um algoritmo utilizando a Pseudolinguagem para realizar a leitura da idade de indivíduos, sendo que, se a idade for maior ou igual a 18 anos, escrever “Maior de idade”, se for menor que 18 anos, escrever “Menor de idade”.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
10
11
 
Algoritmo em pseudocódigo
 
	Fazer um algoritmo utilizando a Pseudolinguagem para realizar a leitura da idade de indivíduos, sendo que, se a idade for maior ou igual a 18 anos, escrever “Maior de idade”, se for menor que 18 anos, escrever “Menor de idade”.	
Algoritmo Verif_Maioridade
Var Idade: inteiro
Início
 Leia Idade
 Se Idade >=18 Então 
 Escreva “Maior de idade”
 Senão
 Escreva “Menor de idade”
 Fim_se
Fim
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
11
NASSI-SHNEIDERMAN 
Developed in 1972 by Isaac Nassi and Ben Shneiderman, these diagrams are also called structograms, as they show a program's structures. 
12
 
Estruturas básicas para construção de algoritmos 
 
Nas “Operações Lógicas”, verificamos que na maioria das vezes necessitamos tomar decisões no andamento do algoritmo. Essas decisões interferem diretamente no andamento do programa. Trabalharemos com três tipos de estrutura:
A estrutura Seqüencial ou Seqüenciação ;
 A estrutura de Decisão ou Seleção e,
A estrutura de Repetição ou Iteração .
Estruturas básicas para construção de algoritmos
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
12
13
 
Estruturas básicas para construção de algoritmos 
 
A estrutura Seqüencial ou Seqüenciação ;
 
Estruturas básicas para construção de algoritmos
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
13
14
 
Estruturas básicas para construção de algoritmos 
 
A estrutura de Decisão ou Seleção e,
Estruturas básicas para construção de algoritmos
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
14
15
 
Estruturas básicas para construção de algoritmos 
 
A estrutura de Repetição ou Iteração .
Estruturas básicas para construção de algoritmos
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
15
16
 
Ferramentas para construção do Algoritmo
 
Pseudocódigo 
É uma pseudolinguagem de programação que permite pensarmos no problema e não na máquina que vai executar o algoritmo. Além disso, não perdemos a flexibilidade e continuamos a ter a proximidade com a linguagem humana, facilitando, portanto, a interpretação.
PORTUGOL=simbiose do Português com o ALGOL e PASCAL
Algoritmo Soma
Variaveis
 A,B, S, : Real
Inicio
 Leia (A,B)
 S=A+B
 Escreva (S)
Fim
algoritmo "soma"
var
 a,b,c: real
inicio
escreva("Entre com o primeiro numero:")
Leia (a)
Escreva("Entre com o segundo numero:")
Leia (b)
c<-a+b
Escreval("A soma é:",c)
fimalgoritmo
Soma.alg
Soma sem informacoes.alg
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
16
17
 
Exemplo
 
Imagine o seguinte problema: calcular a média final dos alunos da 3ª Série. Os alunos realizarão quatro provas: P1, P2, P3 e P4, onde:
Média Final =P1+P2+P3+P4
 4
Para montar o algoritmo proposto, faremos três perguntas:
a)Quaissão os dados de entrada?
	R: Os dados de entrada são P1, P2, P3 e P4
b) Qual será o processamento a ser utilizado?
	
c) Quais serão os dados de saída?
	
	R: Os dados de entrada são P1, P2, P3 e P4
	
	R: O procedimento será somar todos os dados de entrada e dividi-los 	por 4
	R: O dado de saída será a média final
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
17
18
 
Construindo o Algoritmo do Exemplo
 
Calcular a média final dos alunos da 3ª Série. Os alunos realizarão quatro provas: P1, P2, P3 e P4, onde:
Algoritmo
Algoritmo Media
Variaveis
 P1,P2,P3,P4,M : Real
Inicio
 Leia (P1,P2,P3,P4)
 M=(P1+P2+P3+P4)/4
 
 Escreva (M)
Fim
media.alg
algoritmo "media"
var media,nota1,nota2,nota3,nota4:real
inicio
Escreval("Entre com as 4 notas")
Leia(Nota1)
Leia(Nota2)
Leia(Nota3)
Leia(Nota4)
Media:=(Nota1 + Nota2 + Nota3 +nota4)/4
Escreva(" A media é:",media)
fimalgoritmo
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
18
19
Algoritmo "Media ADS"
var
 Media,NP1,NP2,notaPIM:real
inicio
 Escreval("Entre com as notas das NPs: ")
 Leia(NP1)
 Leia(NP2)
 Escreval("Entre com a nota do PIM: ")
 Leia(notaPIM)
 Media:=(4*NP1 + 4*NP2 + 2*NotaPIM)/10
 Escreva(" A média final é:",Media)
fimalgoritmo
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
20
 
Estrutura de um algoritmo em Pseudocódigo:
 
Algoritmo <nome_do_algoritmo> 
<declaração_de_variáveis> 
<subalgoritmos> 
Início 
<corpo_do_algoritmo> 
Fim. 
onde: 
Algoritmo "Media ADS"
var
 Media, NP1, NP2, notaPIM: real
inicio
 Escreval("Entre com as notas das NPs: ")
 Leia(NP1)
 Leia(NP2)
 Escreval("Entre com a nota do PIM: ")
 Leia(notaPIM)
 Media:=(4*NP1 + 4*NP2 + 2*NotaPIM)/10
 Escreva(" A média final é:",Media)
fimalgoritmo
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
20
21
 
Estrutura de um algoritmo – Pseudocódigo (continuação):
 
Algoritmo é uma palavra que indica o início da definição de um algoritmo em forma de pseudocódigo. 
<nome_do_algoritmo> é um nome simbólico dado ao algoritmo com a finalidade de distinguí-lo dos demais. 
<declaração_de_variáveis> consiste em uma porção opcional onde são declaradas as variáveis globais usadas no algoritmo principal e, eventualmente, nos subalgoritmos. 
<subalgoritmos> consiste de uma porção opcional do pseudocódigo onde são definidos os subalgoritmos (funções e procedures) 
Início e Fim são respectivamente as palavras que delimitam o início e o término do conjunto de instruções do corpo do algoritmo. 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
21
Algoritmo
Saída de Dados
Escreva (“Caracteres”)
Escreval(“Caracteres”)
22
Algoritmo “Estrutura"
Var
Inicio
 
Fimalgoritmo
Escreval(“Caracteres”)
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Exercício
Escreva um algoritmo em pseudocódigo para que um software a ser desenvolvido apresente na tela do computador o nome do usuário (seu nome) e o seu endereço:
23
Nome e endereço.alg
Algoritmo "Nome e Endereço"
Var
Inicio
 Escreval("#########Nome e Endereço#########")
 Escreval()
 Escreval(" Meu nome é:")
 Escreval(" Pedro Carlos da Silva Euphrásio ")
 Escreval("Meu endereço:")
 Escreval(" Rua H-30B, número 110")
Fimalgoritmo
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Exercício
Escreva um algoritmo em pseudocódigo para que um software a ser desenvolvido apresente na tela do computador uma receita de bolo. Essa receita deverá inicialmente apresentar na tela os seguintes ingredientes:
2 xícaras (chá) de açúcar; 3 xícaras (chá) de farinha de trigo; 4 colheres (sopa) de margarina; 3 ovos; 1 e 1/2 xícara (chá) de leite; 1 colher (sopa) bem cheia de fermento em pó
Posteriormente o algoritmo deverá apresentar o modo de fazer o bolo
Bata as claras em neve e reserve.
Misture as gemas, a margarina e o açúcar até obter uma massa homogênea.
Acrescente o leite e a farinha de trigo aos poucos, sem parar de bater.
Por último, adicione as claras em neve e o fermento.
Despeje a massa em uma forma grande de furo central untada e enfarinhada.
Asse em forno médio 180 °C, preaquecido, por aproximadamente 40 minutos ou ao furar o bolo com um garfo, este saia limpo.
24
Receita de Bolo,alg
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Algoritmo
Entrada de Dados
Ler (Var)
Saída de Dados
Escreval(“frase e ”, variável)
25
Algoritmo “Estrutura"
Var
Nome: caractere
Inicio
 
Fimalgoritmo
Leia(nome)
Escreva(“Entre com o Nome”)
Escreva(“Nome: ”, nome)
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Exercício
Escreva um algoritmo em pseudocódigo para que um software a ser desenvolvido solicite o nome e a rua em que o usuário reside e logo após faça a impressão dessas informações na tela do computador
26
Nome e endereço2.alg
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
27
Algoritmo "Nome e Endereço"
Var
 N1, Rua:caractere
Inicio
 Escreval("#########Nome e Endereço#########")
 Escreval()
 //Entrada de Dados
 Escreval(" Entre com o seu nome:")
 Leia( N1 )
 Escreval(" Entre com a rua em que reside:")
 Leia( Rua )
 //saída de dados
 Escreva(" O nome do usuário é: ")
 Escreval( N1 )
 Escreva(" O nome da rua em que reside é: ")
 Escreva( Rua )
Fimalgoritmo
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Exercício
Escreva um algoritmo em pseudocódigo para que um software a ser desenvolvido solicite do usuário as seguintes informações: nome, rua, número, bairro, CEP e cidade.
O algoritmo deverá fazer a impressão de todas as informações na tela do computador
28
Nome e endereço3.alg
Algoritmo "Nome e Endereço"
Var
 N1, Rua:caractere
Inicio
 Escreval("#########Nome e Endereço#########")
 Escreval()
 //Entrada de Dados
 Escreval(" Entre com o seu nome:")
 Leia( N1 )
 Escreval(" Entre com a rua em que reside:")
 Leia( Rua )
 //saída de dados
 Escreva(" O nome do usuário é: ")
 Escreval( N1 )
 Escreva(" O nome da rua em que reside é: ")
 Escreva( Rua )
Fimalgoritmo
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
29
 
 
Exercício: construa um algoritmo para determinar realizar a divisão entre dois números reais, obedecendo a fórmula ao lado”. 
 X := A / B
Algoritmo "Soma"
Var
 S,A,B: real
Inicio
 Escreval("Algoritmo soma de dois números")
 Escreval("Entre com os dois números")
 Leia (A,B)
 S := A + B
 Escreva ("A soma dos números é:",S)
Fimalgoritmo
Soma
Algoritmo “Soma”
Var
 S,A,B: real
Inicio
 Leia (A,B)
 S = A + B
 Escreva (S)
Fimalgoritmo
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
29
30
 
 
Exercício: construa um algoritmo para determinar a velocidade final “V” de um veículo sabendo-se a velocidade inicial “V0”, a aceleração “a”, o espaço final “S” e o espaço inicial “S0”.
V := raizq ( Vo^2 + 2*a*(S-So))
Algoritmo Veloc
Variaveis
 V, Vo, a, DS, S, So : Real
Inicio
 Leia (Vo, a,S, So )
 DS=S-So
 V=raizq(Vo**2 + 2*a*DS)
 Escreva (V)
Fim
Torricelli.alg
Torricelli3.alg
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
30
31
 
 
Exercícios
Algoritmo "Estoque medio"
Var
 Est_Med, Qde_Min, Qde_Max : Real
Inicio
 Escreval("entre com o valor da quantidade mímnima e máxima")
 Leia (Qde_Min, Qde_Max)
 Est_Med := (Qde_Min + Qde_Max)/2
 Escreva ("O estoque médio é:",Est_Med)
Fimalgoritmo
Estoque medio.alg
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
31
32
 
 
Exercícios
Escrever um algoritmo que leia dois pontos quaisquer no plano, p1(x1,y1) e p2(x2,y2) e calcule a distância entre eles.
Algoritmo distancia_dois_pontosVariáveis
 x2,x1,y2,y1,d : Real
Inicio
 Leia (x1, y1)
 Leia (x2, y2)
 d = raizq((x2-x1)**2+(y2-y1)**2) 
 Escreva (d)
Fim
Distancia2pontos.alg
D := RaizQ( (x2 - x1)^2 + (y2 - y1)^2 )
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
32
Página 60 
Algoritmos - Lógica para Desenvolvimento de Programação de Computadores
https://integrada.minhabiblioteca.com.br/reader/books/9788536531472/pageid/61
33
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
34
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
35
Páginas 64/65/66 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
36
 
Estruturas básicas para construção de algoritmos 
 
Identifique quais os tipos dos dados abaixo. Utilize (I)nteiro, (R)eal, (C)aractere e (L)ógico.
( ) 1000
( ) “-900”
( ) VERDADEIRO
( ) -1,56
( ) 34
( ) 10,0
( ) FALSO
( ) “José Francisco”
( ) “Verdadeiro”
( ) “27,23”
Relembrando
I
C
L
R
I
R 
L
C
C 
C 
O comando de atribuição permite fornecer um valor a uma certa variável. Os comandos de atribuição são:
= 	(Exemplo: X=3)
:= 	(Exemplo: X:=3)
←	(Exemplo: X ← 3)
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
36
37
 
Estruturas básicas para construção de algoritmos 
 
Variáveis são endereços de memória que guardam, temporariamente, um valor utilizado pelo programa.
Toda variável deve ter atributos do tipo nome, tipo, tamanho (que vem do tipo escolhido) e valor. 
Um nome de variável deve necessariamente começar com uma letra;
 Um nome de variável não deve conter nenhum símbolo especial, exceto a sublinha ( _ ) e nenhum espaço em branco;
 Um nome de variável não poderá ser uma palavra reservada a uma instrução de programa.
 Exemplos de nomes de variáveis:
Variáveis
	Salário 	– correto
	1ANO	– errado (não começou uma letra)
	ANO1	– correto
	a casa	– errado (contém o caractere branco)
	SAL/HORA	– errado (contém o caractere “/”)
	SAL_HORA	– correto
	_DESCONTO	– correto (começou com o caractere sublinha)
	-DESCONTO	– errado (começou com um caractere especial)
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
37
38
 
Estruturas básicas para construção de algoritmos 
 
 São palavras que possuem significado especial na construção do algoritmo ou programa. Tais palavras não podem ser utilizadas como identificadores em um algoritmo. Veja algumas palavras reservadas:
Palavras reservadas
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
38
39
 
Teste de Mesa
 
Após desenvolver um algoritmo ele deverá sempre ser testado. Este teste é chamado de TESTE DE MESA, que significa, seguir as instruções do algoritmo de maneira precisa para verificar se o procedimento utilizado está correto ou não.
Veja o exemplo:
	distância 1
	 distância 2
	 distância 3
	Utilize a tabela ao lado:
	Distância	(Km)	Tempo (h)
	S1	30	1
	S2	60	2
	S3	75	2,5
			
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
39
40
 
Teste de Mesa
 
Após desenvolver um algoritmo ele deverá sempre ser testado. Este teste é chamado de TESTE DE MESA, que significa, seguir as instruções do algoritmo de maneira precisa para verificar se o procedimento utilizado está correto ou não.
Veja o exemplo:
	
	x	y	soma	c
	1	2	0	2
	1+5 = 6	2	0+6+2=8	3
	6+5 = 11	2	8+11+2=21	4
	11	2-2 = 0	21+11+0=32	5
	11	0-2 = -2	32+11-2=41	6
				
c=2, x=1, y=2, soma=0
 Enquanto (c< =5) faça
 Se (c<=3)
 Então x = x + 5
	 Senão y = y - 2
 Fim-Se
	 Soma = soma + x + y
 c = c + 1
 Fim-enquanto
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
40
41
 
Estruturas básicas para construção de algoritmos 
 
Nas “Operações Lógicas”, verificamos que na maioria das vezes necessitamos tomar decisões no andamento do algoritmo. Essas decisões interferem diretamente no andamento do programa. Trabalharemos com três tipos de estrutura:
A estrutura Seqüencial ou Seqüenciação ;
 A estrutura de Decisão ou Seleção e,
A estrutura de Repetição ou Iteração .
Estruturas básicas para construção de algoritmos
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
41
42
 
 
É representada pela conexão de dois ou mais símbolos de processamento, ligados por um símbolo indicativo do sentido do fluxo de execução. 
Os comandos são executados numa seqüência pré-estabelecida.
Cada comando somente é executado após o término do comando anterior.
Todo algoritmo é uma seqüência. A seqüenciação é aplicada quando a solução do problema pode ser decomposta em passos individuais.
Estrutura Sequencial
 Comando 2
Comando 1
Slide 60
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
42
43
 
 
Estruturas de Decisão ou Seleção
Capítulo 4 do livro
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
43
44
 
 
Os comandos de decisão ou desvio fazem parte das técnicas de programação que conduzem a estruturas de programas que não são totalmente seqüenciais. 
Com as instruções de SALTO ou DESVIO pode-se fazer com que o programa proceda de uma ou outra maneira, de acordo com as decisões lógicas tomadas em função dos dados ou resultados anteriores. 
As principais estruturas de decisão são: 
Estruturas de decisão do tipo “Se”:
 “Se então”
 “Se então Senão”, e
 Estruturas de decisão do tipo “Escolha” 
“Caso Selecione” 
Estruturas de Decisão ou Seleção
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
44
45
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
46
 
 
Estruturas de Decisão Se Então” 
Fazer um algoritmo utilizando a Pseudolinguagem para realizar a conversão da velocidade de Km/h para m/s e a conversão de m/s para Km/h. 
Entradas:
Saída: 
Processamento:
Entradas: Opção e velocidade;
Saída: Velocidade;
Processamento: V=V/3,6 ou
		 V=V*3,6.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
46
47
 
 
Estruturas de Decisão Se Então” 
Fazer um algoritmo utilizando a Pseudolinguagem para realizar a conversão da velocidade de Km/h para m/s e a conversão de m/s para Km/h.
 
	
 
	
 
 
		
 
 
 
Entradas: Opção e velocidade;
Saída: Velocidade;
Processamento: V=V/3,6 ou
		 V=V*3,6.
Algoritmo "Conv_Veloc"
Var V: real
	 opcao:inteiro
Inicio
 Escreval("Escolha (1) Km/h para m/s (2) m/s para km/h")
 Leia (opcao)
 Escreval ("Entre com o valor da velocidade")
 Leia (V)
 Se (opcao=1) Entao
 V:=V/3,6
	 Escreval("A velocidade em m/s é", V)	
 Senao
 V:=V*3,6
 Escreval("A velocidade em km/h é", V)
 Fimse
fimalgoritmo
Conver_veloc.alg
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
47
48
 
 
Comandos de Decisão (Desvio condicional encadeado ou aninhado)
 Existem casos em que é necessário se estabelecerem verificações de condições sucessivas. Quando uma ação é executada, ela poderá ainda estabelecer novas condições, isso significa condições dentro de condições. Esse tipo de estrutura poderá ter diversos níveis de condição, sendo chamados de aninhamentos ou encadeamentos. O segundo encadeamento pode ser tanto para uma condição verdadeira quanto uma condição falsa.
	comandos
	...
	se (<condição1>) então
	 <comandos para condição1 verdadeira>
	senão	
	 se (<condição2>) então
		<comandos para condição2 verdadeira, porém condição1 Falsa>
	 senão
	 <condição1 e condição2 falsas>
	 fim_se
	fim_se
	...
	comandos
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
48
49
 
 
Comandos de Decisão “Se então Senão”
Exercício
Escreva um algoritmo que apresenta as seguintes condições:
Se a média for menor que 5.0 o aluno é reprovado.
b) Se a média for maior ou igual a 5.0 e menor que 7.0, o aluno deverá fazer outra prova.
c) Se a média for maior ou igual a 7.0, o aluno está aprovado.
Media< 5.0
5.0<=Media<7.0
Media>=7.0
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
49
50
 
 
Comandos de Decisão “Se então Senão”
Algoritmo Aprovação
Var Media: real
Início
 Leia Media
 Se Media >=5,0
 Se Media >=7,0
 Então Escreva “ Aluno aprovado” 
 Senão
 Escreva “Outra avaliação”
 Senão
 Escreva “Aluno Reprovado”
Fim_se
Fim
Media 5 7 condicional.alg
Media 4 notas.cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
50
51
 
Estruturas básicas para construção de algoritmos 
 
Escreva um algoritmo utilizando pseudolinguagem e fluxograma para determinar o maior entre dois números reais dados.
Exercícios
Algoritmo 
Var 
Início
 
 
 
 
 
	
 
 	
 
Fim.
Algoritmo <nome_do_algoritmo> 
<declaração_de_variáveis> 
Início 
<corpo_do_algoritmo> 
Fim. 
Algoritmo Maior
Var A, B: real
Início
 Escreva “Algoritmo para comparar dois números”
 Escreva “Digite o primeiro número”
 Leia A
 Escreva “Digite o segundo número”
 Leia B
 Se A>B
 então 
			Escreva A
 senão
 			Escreva B 
 Fim_se
Fim.
Entradas: A e B
Processamento: A>B 
Saída: Maior (A e B)
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
51
52
 
 
Pseudocódigo
Algoritmo Maior
Var A, B: real
Início
 Escreva “Algoritmo para comparar dois números”
 Escreva “Digite o primeiro número”
 Leia A
 Escreva “Digite o segundo número”
 Leia B
 Escreva “O maior é:”
 Se A>B
 então 
			Escreva A
 senão
 			Escreva B 
 Fim_se
Fim.
if (A>B)
{ 
	 printf( “%d”, A)
}
else
{
 printf(“%d”, B ) 
}
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
52
Desenvolver um programa de computador que calcule o reajuste de salário de um colaborador de uma empresa. 
Considere que o colaborador deve receber um reajuste de 15% caso seu salário seja menor que 500. Se o salário for maior ou igual a 500, mas menor ou igual a 1000, seu reajuste será de 10%; caso seja ainda maior que 1000, o reajuste deve ser de 5%.
Salário < 500, reajuste será de 15% (multiplicar salário por 1,15). 
Salário >= 500, mas <= 1000, reajuste será de 10% (multiplicar salário por 1,10). 
Salário > 1000, reajuste será de 5% (multiplicar salário por 1,05).
53
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Entendimento
1. Ler o valor de salário atual (variável SA). 
2. Verificar se o valor da variável SA é menor que 500. Se sim, reajustar o valor com mais 15%, atribuindo o novo valor à variável NS. Se não, verificar a próxima condição. Note que essa con-dição estabelece o reajuste de 15% aos salários entre os valores de 0 até 499. O que estiver acima dessa faixa é verificado posteriormente.
3. Verificar se o valor da variável SA é menor ou igual a 1000. Se sim, reajustar o valor com mais 10%, atribuindo o novo valor à variável NS. Essa condição estabelece o reajuste de 10% aos salários entre 500 (após a condição falsa do passo 3) até 1000. O que estiver fora dessa faixa é automaticamente reajustado com mais 5% atribuído à variável NS, pois se trata de valores acima de 1000.
4. Apresentar o valor do novo salário, implicado na variável NS.
A referência feita no passo 4 já deixa determinado o reajuste de 5% para os salários maiores que 1000, não sendo necessário explicitar essa condição, pois as condições do problema já foram defini-das no passo 3 e no próprio passo 4.
54
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
55
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Página 91
Elaborar um programa de computador que leia três valores numéricos inteiros, sendo dois representados pelas variáveis A e B e que serão utilizados para a elaboração de um de dois cálculos programados: A + B e A – B. 
O terceiro, representado pela variável X, será um valor chave de seleção da operação a ser efetuada. Se o valor da variável X não for maior que 5, será realizada a operação C ← A + B; caso contrário, deve ser realizada a operação C ← A – B. 
Ao final o programa deve apresentar o resultado armazenado na variável C. Observe a seguir a descrição das etapas básicas de entendimento do problema e a representação das ações a serem efetuadas pelo programa na Figura do próximo slide.
56
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
57
Entendimento 
Efetuar a entrada, respectivamente, dos valores das variáveis A, B e X. 
Verificar se o valor fornecido para a variável X realmente não é maior que 5. Sendo esta condi-ção verdadeira, processar a operação C ← A + B; caso contrário, deve ser realizada a operação C ← A – B.
3. Apresentar o resultado obtido na variável C.
 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
58
 
 
 Nessa estrutura pode haver uma ou mais condições a serem testadas e um comando diferente associado a cada uma dessas condições. 
Exemplo: escreva um algoritmo que tem como entrada salário e profissão de funcionários de uma empresa. O processamento desse algoritmo deverá apresentar o salário reajustado dos profissionais obedecendo os critérios abaixo:
Salário de técnico e auxiliar deve ser reajustado em 50%;
Salário de gerente deve ser reajustado em 30%;
Demais salários devem ser reajustado em 10%.
Estruturas de Decisão do tipo Escolha “Caso Selecione” 
Entradas: Salário e Profissão
Processamento: Sal_Reaj=Sal*1.5
	 Sal_Reaj=Sal*1.3
	 Sal_Reaj=Sal*1.1
Saída: Sal_Reaj
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
58
59
 
 
Estruturas de Decisão do tipo Escolha “Caso Selecione” 
Algoritmo "Salarios"
Var Salario,Sal_Reaj: real
 Profissao : caractere
Inicio
 Escreval("Entre com a profissão: Auxiliar, Tecnico, Gerente, Outro")
 Leia (Profissao)
 Escreval("Entre com o salário")
 Leia (Salario)
 Escolha Profissao
 Caso "Tecnico","Auxiliar"
		 Sal_Reaj:=1.5*Salario
 Caso "Gerente"
		 Sal_Reaj:=1.3*Salario
 outrocaso
 Sal_Reaj:=1.1*Salario
Fimescolha
Escreval ("Salario Reajustado = ", Sal_Reaj)
Fimalgoritmo
Intc\aula7\Salario escolha caso profissao.alg
Algoritmo "Salarios"
Var Salario,Sal_Reaj: real
 Prof : caractere
Inicio
 Escreval("Entre com a profissão: (1) Auxiliar ")
 Escreval("(2)Tecnico (3) Gerente, (4) Outro")
 Leia (Prof)
 Escreval("Entre com o salário")
 Leia (Salario)
 Escolha Prof
 Caso "1","2"
	 Sal_Reaj:=2.5*Salario
 Caso "3"
	 Sal_Reaj<-1.3*Salario
 outrocaso
 Sal_Reaj<-1.1*Salario
Fimescolha
Escreval ("Salario Reajustado = ", Sal_Reaj)
Fimalgoritmo
Switch (Prof)
{
	case “1” : case “2” :
	Sal_Reaj = 2.5*Salario;
	break;
case “3” : 
	Sal_Reaj = 1.3*Salario;
	break;
default :
	 Sal_Reaj = 1.1*Salario;
}
printf ("Salario Reajustado = %f", Sal_Reaj);
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
59
Exercício
Modifique o algoritmo abaixo, trocando a estrutura se...então...senão pela estrutura escolha ... caso
60
Algoritmo "calculadora"
Var x, a,b: real
 operacao : caractere
Inicio
 Escreval("Entre com a opção:")
 Escreval("(+)Soma (-) Subtração")
 Leia (operacao)
 Escreval("Entre com o primeiro número")
 Leia (a)
 Escreval("Entre com o segundo número")
 Leia (b)
 Se operacao="+" entao
 x:=a+b
 Senao
 Se operacao="-" entao
 x:=a-b
 Senao
 Escreval ("Opção inexistente")
 Fimse
 Fimse
escreval("O valor de a",operacao,"b = ",x)
Fimalgoritmo
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
61
 
 
Estruturas de Decisão do tipo Escolha “Caso Selecione” 
Algoritmo "Calculadora"
Var x, a,b: real
 operacao : caractere
Inicio
 Escreval("Entre com a opção:)
 Escreval("(^)Potenciação (*) Multiplicação ")Escreval(“(/) Divisão (+)Soma (-) Subtração")
 Leia (operacao)
 Escreval("Entre com o primeiro número")
 Leia (a)
 Escreval("Entre com o segundo número")
 Leia (b)
 
Intc\aula7\ Calculadora.alg
Escolha operacao
 Caso "^"
 x:=a^b
 Caso "*"
 x:=a*b
 Caso "/"
 x:=a/b
 Caso "+"
 x:=a+b
 Caso "-"
 x:=a-b
 outrocaso
 Escreval ("Opção inexistente")
 Fimescolha
 Escreval("O valor de a",operacao,"b é:",x)
 Fimalgoritmo
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
61
 
 
Estruturas de Decisão do tipo Escolha “Caso Selecione” 
Algoritmo Salarios
Var Salario, Sal_Reaj: real;
Prof : literal [20]
Início
 Leia Salario, Prof
 Escolha Prof 
 Caso “Tecnico”
		 Sal_Reaj←1.5*Salario
 Caso “Gerente”
		 Sal_Reaj←1.3*Salario
 Outrocaso
 Sal_Reaj←1.1*Salario
Fim_escolha
Escreva “Salario Reajustado =”, Sal_Reaj
Fim
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
62
63
 
 
São também chamadas de Laços ou Loops
Quando uma seqüência de comandos deve ser executada repetidas vezes, tem-se uma estrutura de repetição.
A estrutura de repetição, assim como a de decisão, envolve sempre a avaliação de uma condição.
A classificação das estruturas de repetição é feita de acordo com o conhecimento prévio do número de vezes que o conjunto de comandos será executado.
Estruturas de Repetição
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
63
64
 
 
É uma variável de controle, inteira, que serve para controlar quantas vezes um determinado trecho de programa foi executado. 
Contador
	I	PAR	Saída 
	1	0	0
	2	2	2
	3	4	4
	...	...	...
Algoritmo "PROGRAMA PARES"
Var i,PAR, X: INTEIRO
Inicio
 PAR:=0;
 x:=0
 i:=1
 ESCREVAL(i,"o. par =",PAR)
 i:=i+1
 PAR := PAR+2
 ESCREVAL(i,"o. par =",PAR)
 i:=i+1
 PAR := PAR+2
 ESCREVAL(i,"o. par =",PAR)
 i:=i+1
 PAR := PAR+2
 ESCREVAL(i,"o. par =",PAR)
 i:=i+1
 PAR := PAR+2
 ESCREVAL(i,"o. par =",PAR)
 i:=i+1
 PAR := PAR+2
 ESCREVAL(i,"o. par =",PAR)
 i:=i+1
 PAR := PAR+2
Fimalgoritmo
numeros pares sequencial.alg
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
64
65
 
 
É uma variável de controle que serve para acumular valores. Considere que um programa, além de ler 100 valores e mostrar a quantidade de números positivos, deva mostrar a soma dos valores positivos digitados.
Acumulador
ALGORITMO “SOMA_SALARIOS”;
VAR SOMA, SALARIO : REAL;
INICIO
	SOMA:=O;
	SALARIO:=0;
	ENQUANTO SALARIO>=0
	 INICIO
	 LEIA (SALARIO);
	 SOMA:=SOMA+SALARIO
	 FIMENQUANTO;
	ESCREVAL (SOMA)
FIM.
	Salario	Soma	Saída 
	0	0	---
	50	50	50
	200	250	250
	300	550	550
	...	...	...
Aula7\Enquanto salario.alg
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
65
66
 
 
A estrutura de repetição é representada utilizando as estruturas:
Laço Contado: 
Quando se conhece quantas vezes o comando será executado. Também conhecido como ESTRUTURA DE REPETIÇÃO DETERMINADA. 
Laços Condicionais:
Quando não se conhece quantas vezes o comando será repetido pelo fato do comando está amarrado a uma condição sujeita à modificação pelas instruções do interior do laço. Também conhecido como ESTRUTURA DE REPETIÇÃO INDETERMINADA .
Estruturas de Repetição
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
66
67
 
 
Na repetição determinada o algoritmo apresenta previamente a quantidade de repetições. 
Estruturas de Repetição Determinada 
Algoritmo "PROGRAMA PARES"
Var i, Par: INTEIRO
Inicio
 Par:=0;
 para i:=1 ate 100 faca
 ESCREVAL (Par)
 Par := Par+2
 Fimpara
Fimalgoritmo
Var i,PAR, X: INTEIRO
Inicio
 PAR:=0;
 x:=0
 i:=1
 ESCREVAL(i,"o. par =",PAR)
 i:=i+1
 PAR := PAR+2
 ESCREVAL(i,"o. par =",PAR)
 i:=i+1
 PAR := PAR+2
 ESCREVAL(i,"o. par =",PAR)
 i:=i+1
 PAR := PAR+2
Fimalgoritmo
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
67
68
 
 
Na repetição determinada o algoritmo apresenta previamente a quantidade de repetições. 
Estruturas de Repetição Determinada 
PROGRAMA REPETIÇÃO
VAR I: INTEIRO;
PARA <<VARIAVEL DE TIPO INTEIRO>>:=<<VALOR INICIAL>> ATE <<VALOR FINAL>> FAÇA
ÍNICIO
 <<COMANDO1>>;
 <<COMANDON>>
FIM;
Expressão Geral
ALGORITMO “REPETICAO”
VAR I:INTEIRO
INICIO
 PARA I:=1 ATE 10 FACA
 ESCREVA (“O mengão será Campeão!”)
 FIMPARA
FIM
Algoritmo "PROGRAMA PARES"
Var i, Par: INTEIRO
Inicio
 Par:=0;
 para i:=1 ate 100 faca
 ESCREVAL (Par)
 Par := Par+2
 Fimpara
Fimalgoritmo
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
68
69
 
 
Veja o funcionamento do algoritmo:
Contador “i” e a variável Acumuladora “Par” na estrutura de repetição determinada
Algoritmo "PROGRAMA PARES"
Var 
i, PAR: INTEIRO
Inicio
 PAR:=0;
 x:=0
 para i:=1 ate 10 faca
 ESCREVAL(i,"o. par =",PAR)
 PAR := PAR+2
Fimpara
Fimalgoritmo
	I	PAR	Saída 
	1	0	0
	2	2	2
	3	4	4
	...	...	...
LTP\Cem pares.alg
LTP\NumerosPares.alg
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
69
70
 
 
Exemplo:
 Um determinado restaurante faz o registro da quantidade de refrigerantes vendidas no último ano. Considerando que cada refrigerante foi vendido a R$ 1,50, deseja-se saber o total arrecadado no último ano. Obviamente que, para este problema, tem-se como entrada a quantidade de refrigerantes vendidos, e como solução do problema (saída), o total arrecadado. Veja, a seguir, o respectivo algoritmo (algoritmo Restaurante_1). 
Estruturas de Repetição Determinada 
Algoritmo Restaurante_1
Variáveis
 Qtidade_Vendida : Inteiro
 Valor_Arrecadado : Real
Início
 Leia Qtidade_Vendida
 Valor_Arrecadado  Qtidade_Vendida * 1.50
 Escreva Valor Arrecadado
Fim 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
70
71
 
 
Exemplo:
 Se desejarmos determinar o total arrecadado, em cada um dos últimos três anos, o algoritmo poderia ser escrito conforme a seguir:
Estruturas de Repetição Determinada 
Algoritmo Restaurante_2
Variáveis
 Qtidade_Vendida : Inteiro
 Valor_Arrecadado : Real
Início
// Determinação do total arrecadado no último ano 
 Leia Qtidade_Vendida
 Valor_Arrecadado  Qtidade_Vendida * 1.50
 Escreva Valor Arrecadado
// Determinação do total arrecadado no penúltimo ano
 Leia Qtidade_Vendida
 Valor_Arrecadado  Qtidade_Vendida * 1.50
 Escreva Valor Arrecadado
// Determinação do total arrecadado no antepenúltimo ano
 Leia Qtidade_Vendida
 Valor_Arrecadado  Qtidade_Vendida * 1.50
 Escreva Valor Arrecadado
Fim
quantidade vendida1.alg
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
71
72
 
 
 O processo de repetição de um grupo de comandos é controlado por algum tipo de contador. Uma variável, que funciona como um contador, vai assumindo os valores 1, 2, 3 e assim por diante, até que atinja determinado valor, quando então, a repetição deve ser encerrada.
 Assim, considerando esses casos, podemos definir um comando de repetição mais simples, que faça com que uma determinada variável vá assumindo automaticamente valores seqüenciais, e que quando atingir determinado valor, o processo de repetição seja encerrado. 
Estruturas de Repetição Determinada 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
72
73
 
 
	
Estruturas de Repetição Determinada 
Algoritmo Restaurante_2
Variáveis
 Qtidade_Vendida, Ano : Inteiro
 Valor_Arrecadado, Soma : Real
 
Início
 Soma:=0
 Para Ano de 1 até 3 Faça
 Leia Qtidade_Vendida
 Valor_Arrecadado  Qtidade_Vendida * 1.50
 Escreva Valor Arrecadado
 Soma:=Soma + Valor_Arrecadado
 Escreva Soma
 Fim Para
Fim
quantidade vendida2.alg
	ano	QVend	VA	Soma
				0
	1	100	150	150
	2	200	300	450
	3	300	450	900CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
73
74
 
 
Exercício:
Fazer um algoritmo para escrever os 50 primeiros números pares.
Estruturas de Repetição Determinada 
PROGRAMA REPETIÇÃO
VAR I: INTEIRO;
PARA <<VARIAVEL DE TIPO INTEIRO>>:=<<VALOR INICIAL>> ATE <<VALOR FINAL>> FAÇA
ÍNICIO
 <<COMANDO1>>;
 <<COMANDON>>
FIM;
Expressão Geral
Algoritmo “numeros_pares"
Var i,par: inteiro
Inicio
 par<-0
 para i de 1 ate 50 faca
 escreval (par)
 par<- par+2
 fimpara
fimalgoritmo
Par1.alg
Entrada: 0-50
Processamento: par+2
Saída: números pares
	PAR	I	Saída
Escrever 
	0	1	0
	2	2	2
	4	3	4
	...	...	...
par = 0; 
 for (i=0; i<=50; i++)
	{
 printf (“\n %d”, par);
 par = par+2;
 }
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
74
75
 
 
Estrutura de repetição indeterminada com validação inicial 
Estrutura de repetição indeterminada com validação final 
Estruturas de Repetição Indeterminada 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
75
76
 
 
Estrutura de repetição indeterminada com validação inicial 
É usada para repetir N vezes uma ou mais instruções. Tendo como vantagem o fato de não ser necessário o conhecimento prévio do número de repetições.
Estruturas de Repetição Indeterminada 
PROGRAMA REPETIÇÃO
VAR I: INTEIRO;
ENQUANTO <<CONDIÇÃO>> FACA
	ÍNICIO
	 <<COMANDO1>>;
	 <<COMANDON>>
	FIM;
Expressão Geral
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
76
77
 
 
Exemplo 
Faça um algoritmo que calcule a soma dos salários dos funcionários de uma empresa. O programa termina quando o usuário digitar um salário menor que 0. 
Estruturas de Repetição Indeterminada com Validação Inicial 
Exemplo 
Faça um algoritmo que calcule a soma dos salários dos funcionários de uma empresa. O programa termina quando o usuário digitar um salário menor que 0. 
Entrada: salário
Processamento: somar salários
Saída: escrever soma dos salários
Término (condição): salário < 0
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
77
78
 
 
Estruturas de Repetição Indeterminada com Validação Inicial 
ALGORITMO SOMA_SALARIOS;
VAR SOMA, SALARIO : REAL;
INICIO
	 SALARIO:=0;
	 SOMA:=O;
	ENQUANTO SALARIO>=0
	 INICIO
	 LEIA (SALARIO);
	 SOMA:=SOMA+SALARIO
	 FIMENQUANTO;
	ESCREVAL (SOMA)
FIM.
	Entrada 	Proces.	Saída
	Salario	Soma	Escrever (Soma) 
	0	0	---
	50	50	50
	200	250	250
	300	550	550
	...	...	...
Exemplo 
Faça um algoritmo que calcule a soma dos salários dos funcionários de uma empresa. O programa termina quando o usuário digitar um salário menor que 0. 
intcomp\ salario enquanto1.alg
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
78
79
 
 
Estrutura de repetição indeterminada com validação final 
Sua validação é final fazendo com que a repetição seja executada pelo menos uma vez.
Estruturas de Repetição Indeterminada 
PROGRAMA REPETIÇÃO
VAR I: INTEIRO;
REPITA
	<<COMANDO1>>;
	<<COMANDON>>
ATE <<CONDIÇÃO>>
Expressão Geral
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
79
80
 
 
Exemplo 
Faça um algoritmo que calcule a soma dos salários dos funcionários de uma empresa. O programa termina quando o usuário digitar um salário menor que 0. 
Estruturas de Repetição Indeterminada com Validação Final 
ALGORITMO “SOMA_SALARIOS”
VAR
SOMA, SALARIO : REAL
INICIO
	SOMA:=O;
	REPITA
 	 LEIA (SALARIO);
	 SOMA:=SOMA+SALARIO
	ATE SALARIO<0;
	ESCREVAL (SOMA)
FIM.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
80
Exercício
Faça alterações no algoritmo abaixo para que ele utilize uma estrutura de repetição indeterminada para fornecer uma opção ao usuário de poder continuar a fazer novas operações de soma.
81
Algoritmo "Soma"
Var
 S,A,B: real
Inicio
 Escreval("Algoritmo soma de dois números")
 Escreval("Entre com os dois números")
 LEIA (A,B)
 S := A + B
 Escreva ("A soma dos números é:",S)
Fimalgoritmo
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Exercício sem olhar os algoritmos já desenvolvidos
Faça alterações no algoritmo abaixo para que ele utilize uma estrutura de repetição determinada para realizar a soma e a raiz quadrada dos 100 primeiros números pares.
82
Var i,PAR, X: INTEIRO
Inicio
 PAR:=0;
 x:=0
 i:=1
 ESCREVAL(i,"o. par =",PAR)
 i:=i+1
 PAR := PAR+2
 ESCREVAL(i,"o. par =",PAR)
 i:=i+1
 PAR := PAR+2
 ESCREVAL(i,"o. par =",PAR)
 i:=i+1
 PAR := PAR+2
Fimalgoritmo
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
um número inteiro é par se for o dobro de um número inteiro. 0 é o dobro de 0, 
82
Exercício sem olhar os algoritmos já desenvolvidos
Faça alterações no algoritmo abaixo (utilize o exercício do slide anterior) para que ele utilize uma estrutura de repetição determinada para realizar a soma e a raiz quadrada dos 100 primeiros números pares.
A raiz quadrada de um número é calculada pela instrução x := Raizq(N), sendo N o número que se deseja extrair a raiz quadrada.
83
Var i,PAR, X: INTEIRO
Inicio
 PAR:=0;
 x:=0
 i:=1
 ESCREVAL(i,"o. par =",PAR)
 i:=i+1
 PAR := PAR+2
 ESCREVAL(i,"o. par =",PAR)
 i:=i+1
 PAR := PAR+2
 ESCREVAL(i,"o. par =",PAR)
 i:=i+1
 PAR := PAR+2
Fimalgoritmo
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
um número inteiro é par se for o dobro de um número inteiro. 0 é o dobro de 0, 
83
Página 114
Elaborar um programa que efetue a entrada de um valor numérico inteiro qualquer. Em seguida, processar o cálculo do valor de entrada, multiplicando-o por 3 e apresentando seu resultado. Proceder à execução dos passos anteriores cinco vezes.
84
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Entendimento
No problema exposto nada impede que se faça a entrada do valor, execute o processamento da multiplicação e em seguida apresente o resultado cinco vezes, escrevendo cinco entradas, com cinco processamentos e cinco saídas. 
O problema seria mais difícil de resolver se tivesse de executar a mesma tarefa mil vezes. Para solucionar este problema existem as estruturas de laços. Atente para os passos descritos a seguir: 
85
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Estrutura de repetição determinada
86
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Exercício
Utilize o exemplo do algoritmo em visualg para calcular as raízes quadradas dos 100 primeiros números pares.
87
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Exemplo com laço iterativo
Elaborar um programa que efetue a entrada de um valor numérico inteiro qualquer. Em seguida, calcular o valor entrado, multiplicando-o por 3 e apresentando seu resultado. 
Ao final da apresentação do resultado, o programa deve perguntar ao usuário se ele deseja novo cálculo. Se a resposta for sim, deve executar novamente as instruções subordinadas ao bloco adjacente. 
Se a resposta for não, o programa deve parar a execução.
88
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Exemplo com laço iterativo
Entendimento
No problema exposto, é necessário definir um laço que vai executar a vontade do usuário. Assim, não há possibilidade de saber quantas vezes o laço será executado. O número de vezes vai depender da vontade do usuário, por isso esse tipo de laço chama-se interativo. Atente para os passos descritos a seguir:
1. Criar uma variável de controle para ser utilizada como resposta (variável RESP). 
2. Enquanto o valor da variável RESP for igual a “S”, executar os passos 3 a 5; caso contrário, desviar a execução do programa para o passo 8.
3. Ler um valor inteiro qualquer (variável N). 
4. Efetuar a multiplicação do valor de N por 3, colocando o resultado na variável R. 
5. Apresentar o valor calculado que está armazenado na variável R. 
6. Perguntar para o usuáriose ele deseja continuar a execução do programa. 
7. Retornar a execução do programa ao passo 2. 8. Encerrar o programa.
89
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Codificação com validação inicial
90
Estrutura Indeterminada VI.alg
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
página 123/124
Elaborar um programa que efetue a entrada de um valor numérico inteiro qualquer. Em seguida, calcular o valor de entrada, multiplicando-o por 3 e apresentando seu resultado. 
Ao final, o programa deve perguntar ao usuário se ele deseja novo cálculo. Se a resposta for sim, deve executar novamente as instruções subordinadas ao bloco adjacente. Se a resposta for não, o programa deve parar a execução. 
Observe a seguir a descrição das etapas básicas de entendimento do problema e a representação das ações do programa na Figura do próximo slide.
91
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Entendimento
página 124
Por ser um problema semelhante a uma situação já exposta, basta escolher um laço que vai satisfazer a vontade do usuário do programa. Assim, não é possível saber quantas vezes o laço será executado. Atente para os passos descritos a seguir: 
1. Criar uma variável de controle para ser utilizada como resposta (variável RESP). 
2. Ler um valor inteiro qualquer (variável N). 
3. Efetuar a multiplicação do valor de N por 3, colocando o resultado na variável R. 
4. Apresentar o valor calculado que está armazenado na variável R. 
5. Perguntar para o usuário se ele deseja continuar o programa.
 6. Caso o valor da variável RESP seja diferente de “S”, executar os passos 2 a 4; caso contrário, ir para o passo 7.
7. Encerrar o programa.
92
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Codificação com validação final 
93
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Utilize o VisualG para responder ao exercício do próximo slide
94
Dado o seguinte algoritmo:
Algoritmo “Programa p1”
var i,j,k:inteiro
inicio
leia(i)
leia(j)
leia(k)
se (i>j) e (i>k) então
      escreva(i)
senão
      se j>k ntão
            escreva(j)
      senao
            escreva(k)
     fimse
fimse
fim.
A) Entrada respectivamente 3 e 1 e 2
Saída: 3 2 1
B)Entrada respectivamente 1 e 3 e 2
Saída: 2 
C) Entrada respectivamente 1 e 2 e 3
Saída: 6 
D) Entrada respectivamente 3 e 2 e 1
Saída: 1 
E) Entrada respectivamente 1 e 3 e 2
Saída: 3
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Utilize o VisualG para responder ao exercício do próximo slide
95
Se as entradas para as variáveis i, j e k forem respectivamente 3, 1 e 2, qual será a saída?
Se as entradas para as variáveis i, j e k forem respectivamente 1, 3 e 2, qual será a saída?
Se as entradas para as variáveis i, j e k forem respectivamente 1, 2 e 3, qual será a saída?
Se as entradas para as variáveis i, j e k forem respectivamente 3, 2 e 1, qual será a saída?
Esse é o 2º. exercício pertence ao Módulo dos Estudos Disciplinares
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Resposta: o algoritmo verifica qual é o maior entre os três números digitados para as variáveis i, j e k. Portanto, a resposta correta é a letra “E”
96
A) Entrada respectivamente 3 e 1 e 2
Saída: 3 2 1
B)Entrada respectivamente 1 e 3 e 2
Saída: 2 
C) Entrada respectivamente 1 e 2 e 3
Saída: 6 
D) Entrada respectivamente 3 e 2 e 1
Saída: 1 
E) Entrada respectivamente 1 e 3 e 2
Saída: 3
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Utilize o VisualG para responder ao exercício do próximo slide
97
O que o algoritmo abaixo faz ?
 
início
   | NOME : literal
   | CPF, RENDAANUAL, NUMDEPENDENTES, RENDALIQUIDA, ALIQUOTAFREQMIN,
   | VALORAPAGAR : numérico
   | leia "Digite o nome do contribuinte (ou FIM para finalizar o cadastro):", NOME
   | enquanto NOME <> "FIM" faça
   |    | leia "Digite o CPF:", CPF
   |    | leia "Digite a renda anual:", RENDAANUAL
   |    | leia "Digite o número de dependentes:", NUMDEPENDENTES
   |    | RENDALIQUIDA <- RENDAANUAL - (NUMDEPENDENTES * 110)
   |    | se RENDALIQUIDA < 901
   |    |   | então ALIQUOTA <- 0
   |    |   | senão se RENDALIQUIDA >= 901 e RENDALIQUIDA < 5001
   |    |   |            | então ALIQUOTA <- 5
   |    |   |            | senão se RENDALIQUIDA >= 5001 e RENDALIQUIDA < 10001
   |   |    |            |            | então ALIQUOTA <- 10
   |    |   |            |            | senão ALIQUOTA <- 15
   |    |   |            |          fim-se
   |    |   |         fim-se
   |    | fim-se
   |    | VALORAPAGAR <- RENDAANUAL * (ALIQUOTA/100)
   |    
   | fim-enquanto
fim
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
98
A)Calcula o valor do Imposto de renda a pagar de acordo com a faixa da alíquota respectiva a renda líquida ;
B)Calcula o valor da renda líquida de acordo com o acréscimos dos dependentes;
C)Calcula o valor da renda líquida menos os impostos;
D)Calcula o valor da alíquota a pagar;
E)Calcula o salário final do usuário;
Esse é o 14º. exercício pertence ao Módulo dos Estudos Disciplinares
Resposta: a estrutura “se...então...senão” apresenta cálculos de alíquotas observando os intervalos 0 - 900; 901 – 5000; 50001 – 10000, e maior que 10001. Também é observado o desconto para os dependentes.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
99
Linguagem de Programação C
Histórico
Unidade 2 - Noções básicas preliminares
 2.1 - Estrutura/execução de um programa
 2.2 - Tipos de dados
 2.3 - Variáveis simples
 2.4 - Declaração de variáveis
 2.5 - Expressões aritméticas e lógicas; precedência de operadores
 2.6 - Comando de atribuição
 2.7 - Comandos de entrada e saída
 2.8 - Bloco de instruções
 2.9 - Arquivos de cabeçalho
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
99
100
Linguagem de Programação C
O C é "Case Sensitive", isto é, maiúsculas e minúsculas fazem diferença. Se declarar uma variável com o nome soma ela será diferente de Soma, SOMA, SoMa ou sOmA. Da mesma maneira, os comandos do C if e for, por exemplo, só podem ser escritos em minúsculas pois senão o compilador não irá interpretá-los como sendo comandos, mas sim como variáveis.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
100
Susceptível a argumentos
101
Linguagem de Programação C
O “C” e o “C++”
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
101
102
Linguagem de Programação C
Palavras Chaves
	auto	double	int	struct
	break	else	long	switch
	case	enum	register	typedef
	char	extern	return	union
	const	float	short	unsigned
	continue	for	signed	void
	default	goto	sizeof	volatile
	do	if	static	while
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
102
103
2.1 - Estrutura/execução de um programa
O que é linguagem estruturada?
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
103
104
2.1 - Estrutura/execução de um programa
O que é linguagem estruturada?
#include <stdio.h>
#include <conio.h>
#include "Matematica.h"
int main() {
float num_1, num_2, operacao;
char op;
printf("\n Entre com a operacao desejada: (+), (-) ou para finalizar (.): \n");
scanf("%s",&op);
while (op != '.'){
printf("Entre com o 1o. Numero:\n ");
scanf("%f",&num_1);
printf("Entre com o 2o. Numero: \n");
scanf("%f",&num_2);
switch(op){
case '+' :
 operacao = soma(num_1,num_2);
printf("\nA soma destes numeros e' %.2f", operacao);
break;
case '-' :operacao = subtracao(num_1,num_2);
printf("\nA subtracao destes numeros e' %.2f", operacao);
break;
default : printf("Operador desconhecido\n");
}
printf("\n Entre com a operacao desejada: (+), (-) ou para finalizar (.): \n");
scanf("%s",&op);
}
}
//“arquivo Matematica.h"
float soma(float a, float b){
 float soma1;
 soma1 = a + b;
 return(soma1);
	}
float subtracao(floata, float b){
 float sub;
 sub = a - b;
 return(sub);
	}
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
104
2.1 - Estrutura/execução de um programa
 A geração do programa executável a partir do programa fonte obedece a uma seqüência de operações antes de tornar-se um executável. 
 Depois de escrever o módulo fonte em um editor de textos, o programador aciona o compilador. 
 Essa ação desencadeia uma seqüência de etapas, cada qual traduzindo a codificação do usuário para uma forma de linguagem de nível inferior, que termina com o executável criado pelo lincador.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
2.1 - Estrutura/execução de um programa
Editor (módulo fonte em C)
Pré-processador (novo fonte expandido)
Compilador (arquivo objeto)
Lincador (executável)
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
107
Linguagem de Programação C
Linkeditor 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
107
108
 2.1 - Estrutura/execução de um programa 
Linkeditor 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
108
2.1 - Estrutura/execução de um programa
As funções têm a seguinte estrutura: 
tipo nome_da_funcao(parâmetros) 
{ 
  variáveis locais 
  instruções em C 
}
#include <stdio.h>
main(void) 
{ 
int i=1;
printf("Eu gosto de programar em C\n"); 
}
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
2.1 - Estrutura/execução de um programa
Assim o programa:
Contém apenas uma função (a função main(), que é obrigatória) e que não tem parâmetros (void). 
Como instrução da função temos apenas a chamada a printf(), que escreve no vídeo a frase Eu gosto de programar em C 
A instrução printf é uma função da biblioteca stdio.h. 
A frase Eu gosto de programar em C é uma cadeia de caracteres chamada de string.
 A combinação \n no fim da string indica uma mudança de linha (o carácter new line ou line feed). 
No final de cada instrução existe sempre um terminador - ; 
main(void) 
{ 
int i=1;
printf("Eu gosto de programar em C\n"); 
}
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
111
2.1 - Estrutura/execução de um programa
Algoritmo "Primeiro_algoritmo"
var
inicio
Escreval(" Ola! Esse e' meu primeiro programa!")
fimalgoritmo
#include <stdio.h>
/* Um Primeiro Programa */
int main ()
{
printf ("Ola! Esse e' meu primeiro programa!!\n");
}
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
111
112
2.1 - Estrutura/execução de um programa 
Primeiro Programa
#include <stdio.h>
/* Um Primeiro Programa */
main ()
{
printf (" Esse e' meu primeiro programa!!\n ");
return(0);
}
Biblioteca das entradas e saídas padronizadas 
	Comentário
Função main
“{” chave que equivale a “início”
 			Comando “printf”
Retorno da função main
“}” chave que equivale a “fim” ou “fimalgoritmo”
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
112
113
2.1 - Estrutura/execução de um programa 
 Argumentos
Argumentos são as entradas que a função recebe. É através dos argumentos que passamos parâmetros para a função. As funções printf() e scanf() são tipos de funções que recebem argumentos.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
113
114
2.1 - Estrutura/execução de um programa 
Primeiro Programa
Como colocar um Comentário em um programa
O comentário ajuda a elucidar o funcionamento de um programa. No programa anterior temos um comentário: /* Um Primeiro Programa */. 
O compilador C desconsidera qualquer coisa que esteja começando com /* e terminando com */. Um comentário pode, inclusive, ter mais de uma linha.
Quando o comentário é utilizado em apenas uma linha, pode-se utilizar também o //
/* Um Primeiro Programa */
ou
// Um Primeiro Programa 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
114
115
2.1 - Estrutura/execução de um programa
Primeiro Programa
int main()
A linha int main() indica que estamos definindo uma função de nome main. Todos os programas em C têm uma função main, pois é esta função que será chamada quando o programa for executado. O conteúdo da função é delimitado por chaves { }. 
Quando a função for chamada o código que estiver dentro das chaves será executado seqüencialmente. A palavra int indica que esta função retorna um inteiro. O que significa este retorno será visto posteriormente, quando estudarmos um pouco mais detalhadamente as funções do C. A última linha do programa, return(0); , indica o número inteiro que está sendo retornado pela função, no caso o número 0.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
115
 2.2 - Tipos de dados
Tipos de dados primitivos
A maioria das linguagens declara os tipos inteiro, real, caractere, cadeia de caracteres e lógico. 
A Linguagem C não definiu como tipos originais o lógico e a cadeia de caracteres (que chamamos de string – exemplo: “UNIP”).
Devemos, então, utilizar funções predefinidas para manipular esse tipo de dado, em C.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
 2.2 - Tipos de dados
A tabela abaixo apresenta os tipos de dados simples e os tipos de dados modificados da linguagem C .
	Tipo de dados	Tamanho (bytes)	Limite inferior	Limite superior
	char	1	-128	127
	unsigned char	1	0	255
	short int	2	-32768	32767
	unsigned short int	2	0	65535
	int	4	-231	+231 - 1
	long int	4	-231	+231 - 1
	float	4	-3.2×10±38	+3.2×10±38
	double	8	-1.7×10±308	+1.7×10±308
Sizeof vetor.cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
2.3 – Variáveis simples
 Definição de variáveis 
 Variáveis são locais na memória do computador que guardam conteúdos que podem ser utilizados quando determinado programa está rodando.
 Em linguagem C, as variáveis devem ter um nome obedecendo determinadas condições:
O nome da variável deve começar com uma letra ou sublinhado (_).
Esse nome não pode ser igual a uma palavra reservada, nem igual ao nome de uma função declarada pelo programador, ou pelas bibliotecas do C.
Variáveis de até 32 caracteres são aceitas. 
O C é "case sensitive" e portanto deve-se prestar atenção às maiúsculas e minúsculas.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
 2.2 - Tipos de dados
Tipos de dados primitivos
Em Linguagem C, temos os seguintes tipos de dados primitivos:
Inteiro: palavra reservada int (exemplos: 3, 6, 9, 27).
Real: palavra reservada float (exemplos: 3.1416. 8.8).
Caractere: palavra reservada char (exemplos: ‘a’, ‘8’) .
Real de precisão dupla: palavra reservada double.
Tipo sem um valor inicial: palavra reservada void.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
2.3 – Variáveis simples
O C tem 5 tipos básicos de variáveis: char, int, float, void, double.
O tipo char é utilizado para a impressão de variáveis que utilizam caracteres,
O tipo int é utilizado para a impressão de variáveis que utilizam números inteiros, como contadores e controladores de laços de execução.
O tipo float é utilizado para a impressão de variáveis que utilizam números reais (ponto flutuante).
O tipo double é o ponto flutuante duplo e pode ser visto como um ponto flutuante com muito mais precisão (números científicos). 
O void é o tipo vazio, ou um "tipo sem tipo".
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
 2.2 - Tipos de dados
 Geralmente nos sistemas UNIX os tipos int e long int são equivalentes e de tamanho de inteiros de 32 bits (4 bytes).
É possível que em outros sistemas o tipo int seja equivalente a um short int, ou seja, inteiro de 16 bits (2 bytes). 
%c – leitura /escrita de caracter
%d - leitura /escrita de números inteiros
%f - leitura /escrita de números reais
%s - leitura /escrita de caracteres
Tem-se os especificadores de formato, que formatam a entrada e a saída-padrão. 
São eles:
%d = inteiro decimal
%f = real (ponto flutuante) 
%o = inteiro octal 
%x =hexadecimal 
%c = caractere em formato ASCII 
%s = string de caracteres 
%p = valor ponteiro
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
2.4 - Declaração de variáveis
 Quando se faz a declaração de uma variável está se determinando que tipo de dado ela vai receber. 
	Sintaxe: A sintaxe para a declaração de variáveis é:
	tipo var_1;
 O tipo é o tipo de dado, var_1 é o nome da variável a ser declarada.
Exemplo:
int i;
float num;
char nome_1[20]; *nome_2;
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
2.4 - Declaração de variáveis
 Inicialização de variáveis
 É possível, em C, declarar uma variável e já armazenar nela um valor inicial. Chamamos este procedimento de inicialização de uma variável. 
	Sintaxe: A sintaxe para a inicialização de variáveis é:
tipo var_1 = valor_1 [, var_2 = valor_2, ...] ;
O tipo é o tipo de dado, var_1 é o nome da variável a ser inicializada e valor_1 é o valor inicial da variável.
Exemplo:
int i = 0, j = 100;
float num = 13.5;
char nome_1 [20] = " Programa Teste ";
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
124
2.4 - Declaração de variáveis
 Constantes
O C possui 4 tipos básicos de constantes: 
 Inteiras;
 de ponto flutuante;
 caracteres e,
 strings.
 Constantes inteiras e de ponto flutuante representam números de um modo geral. 
Caracteres e strings representam letras e agrupamentos de letras (palavras).
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
124
125
2.4 - Declaração de variáveis
 Constantes Simbólicas 
 Muitas vezes identificamos uma constante numérica por um símbolo como, por exemplo, Pi = 3,14159. 
 Podemos definir um nome simbólico para esta constante, isto é, podemos definir uma constante simbólica que represente o valor. 
 Sintaxe: A sintaxe da instrução de definição de uma constante simbólica é: #define nome valor .
 Onde #define é uma diretiva de compilação que diz ao compilador para trocar as ocorrências do texto nome por valor. Observe que não há ; (ponto e vírgula) no final da instrução pois trata-se de um comando para o compilador e não para o processador. 
 A instrução #define deve ser escrita antes da instrução de declaração da rotina principal. 
Esta diretiva é utilizada para a definição de macros, que são nomes que representam valores constantes. Após a definição da macro, toda ocorrência do seu nome no programa é substituída pelo valor definido. 
Por convenção todo o nome de macro é escrito em letras maiúsculas.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
125
126
2.4 - Declaração de variáveis
 Constantes pré-definidas 
 Em alguns compiladores C, algumas constantes simbólicas já estão pré-definidas. 
 Estas constantes em geral definem alguns valores matemáticos (, /2, e, etc.). A seguir segue uma tabela contendo algumas (existem muitas outras) constantes simbólicas pré-definidas no compilador Turbo C++ da Borland.
Biblioteca Constante Valor Significado
math.h M_PI 3.14159... 
math.h M_PI_2 1.57079... /2
math.h M_PI_4 0,78539... /4
math.h M_1_PI 0,31830... 1/
math.h M_SQRT2 1,41421... 2
#define PI 3.14159 
#define EU “Renato” 
#define FALSE 0
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
126
127
2.4 - Declaração de variáveis
 Constantes
#include <stdio.h>
int main(){
const float Pi = 3.141592; /* declaração de constante */
float raio, area; // declaração de variáveis 
printf("Entre com o raio da circunferencia:");
scanf("%f",&raio);
area = Pi * raio * raio/2;
printf("\n Area da circunferencia = %.2f \n\n",area);
}
const float Pi = 3.141592; /* declaração de constante */
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
127
128
 2.7 - Comandos de entrada e saída
Entrada
scanf() 
Uma das mais importantes e poderosas instruções, servirá basicamente para promover leitura de dados (tipados) via teclado.
Sua forma geral é: scanf(“string de controle”, lista de argumentos); no momento, sobre string de controle, devemos saber:
%d - leitura de números inteiros
%f - leitura de números reais
%c - leitura de caracter
%s - leitura de caracteres
scanf(“%d”,&x); 
scanf(“%f”,&x) ;
scanf(“%c”,&x) 
scanf(“%s”,&x) 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
128
129
 2.7 - Comandos de entrada e saída
Entrada
sintaxe: scanf ("%f",&valor);
%f : variável do tipo real
&valor: o dado lido deverá ser armazenado no endereço (&) alocado para a variável “valor”
#include <stdio.h>
int main ()
{
float valor;
printf ("Entre com o preço: "); 
scanf ("%f",&valor); /* Entrada de Dados*/
printf ("\O preço do produto é %f reais.\n",valor);
}
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
129
130
 2.7 - Comandos de entrada e saída
Entrada
sintaxe: scanf ("%d",& Qtde);
%d : variável do tipo inteiro
& Qtde : o dado lido deverá ser armazenado no endereço (&) alocado para a variável “Qtde”
#include <stdio.h>
int main ()
{
int Qtde;
printf ("Entre com a quantidade: "); 
scanf ("%d",& Qtde); /* Entrada de Dados*/
printf ("\A quantidade e’ %d unidades.\n", Qtde);
}
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
130
131
 2.7 - Comandos de entrada e saída
Entrada
sintaxe: scanf ("%c",&opcao);
%c : variável do tipo caracter
&opcao: o dado lido deverá ser armazenado no endereço (&) alocado para a variável “opcao”
#include <stdio.h>
int main ()
{
char opcao;
printf ("Entre com a Opcao: "); 
printf (“(A) Inserir Usuario (B) Imprimir Usuario "); 
scanf ("%c",&opcao); /* Entrada de Dados*/
printf ("\n A Opcao selecionada foi %c .\n", opcao);
}
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
131
132
 2.7 - Comandos de entrada e saída
Entrada
sintaxe: scanf ("%s",&Nome);
%s : variável do tipo caracter
& Nome : o dado lido deverá ser armazenado no endereço (&) alocado para a variável “opcao”.
Observação: nem todo compilador funciona o scanf ("%s",&...); e deve-se utilizar o comando gets(). 
Exemplo : gets(nome);
#include <stdio.h>
int main ()
{
char Nome[30];
printf (“Digite o seu primeiro nome: "); 
scanf ("%s",&Nome); /* Entrada de Dados*/
gets(Nome);
printf ("\o seu primeiro nome e’: %s .\n", Nome);
}
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
132
133
 2.7 - Comandos de entrada e saída
 Função printf() 
A função printf() coloca na tela do computador o que se deseja imprimir: variáveis e/ou cadeia de caracteres.
 É por causa do uso da função printf() pelo programa que devemos incluir o arquivo-cabeçalho stdio.h. 
Veja os exemplos a seguir:
printf (" O Volume do paralelepipedo e %f .",v);
printf (" Foram produzidas %d peças .",x);
printf (" A letra escolhida foi %c .",letra)
printf (" O nome do gerente e %s .",nome);
printf1
%d – escrita de no. inteiro
%f - escrita de número real
%c - escrita de caracter
%s - escrita de (String) caracteres
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
133
 2.2 - Tipos de dados
 Caracteres
Os caracteres são um tipo de dado chamado de char. O C trata os caracteres ('a', 'b', 'x', etc ...) como sendo variáveis de 1 byte (8 bits).
Na linguagem C, também podemos usar um char para armazenar valores numéricos inteiros, além de usá-lo para armazenar caracteres de texto. Para indicar um caractere de texto usamos apóstrofes.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
 2.2 - Tipos de dados
 Caracteres
No programa abaixo, %c indica que printf() deve colocar um caractere na tela que é o valor de Ch (a letra D). 
#include <stdio.h>
int main ()
{
char Ch;
Ch='D';
printf ("%c",Ch); // imprime o caracter D
getch();
}
caracter 1
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
 2.2 - Tipos de dados
 Caracteres
Como vimos anteriormente, um char também é usado para armazenar um número inteiro.Este número é conhecido como o código ASCII correspondente ao caractere. Veja o programa abaixo:
#include <stdio.h>
int main ()
{
char Ch;
Ch='D';
printf ("%d",Ch); /* Imprime o caracter como inteiro */
getch();
}
Este programa vai imprimir o número 68 na tela, que é o código ASCII
correspondente ao caractere 'D' (d maiúsculo).
caracter 2
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
 2.2 - Tipos de dados
 Strings
Na linguagem C uma string é um vetor de caracteres terminado com um caractere nulo. O caracter nulo é um caractere com valor inteiro igual a zero (código ASCII igual a 0). 
O terminador nulo também pode ser escrito usando a convenção de barra invertida do C como sendo '\0'. 
O assunto vetores será discutido posteriormente, mas veremos aqui os fundamentos necessários para que possamos utilizar as strings. Para declarar uma string, podemos usar o seguinte formato geral.:
char nome_da_string[tamanho];
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
 2.2 - Tipos de dados
 Strings
A expressão acima declara um vetor de caracteres (uma string) com número de posições igual a 7. 
Note que, como temos que reservar um caractere para ser o terminador nulo, temos que declarar o comprimento da string como sendo, no mínimo, um caractere maior que a maior string que pretendemos armazenar. 
Vamos supor que declaremos uma string de 7 posições e coloquemos a palavra João nela. Teremos:
char nome_da_pessoa [7];
	J	O	A	O	\0	...	...
String1.cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
 2.2 - Tipos de dados
 Strings
No caso anterior, as duas células não usadas têm valores indeterminados. Isto acontece porque o C não inicializa variáveis, cabendo ao programador esta tarefa. 
Portanto as únicas células que são inicializadas são as que contêm os caracteres 'J', 'o', 'a', 'o' e '\0' . 
Para declararmos uma variável para receber um conjunto de caracteres também podemos escrever: char* var; 
Exemplo: No exemplo seguinte a variável nome foi declarada como conjunto caracter e em seguida recebe uma constante string.
char* nome;
nome = "João Carlos de Oliveira Andrade";
string2.cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Particularidade do scanf
char str, str1[30], str2[30], str3[30];
scanf("%c",&str);
scanf("%[^\n]", str1);
scanf("%s",&str2);
gets(str3);
140
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
 2.2 - Tipos de dados
 Strings
Caracter com espaço.cpp
#include <stdio.h> 
#include <conio.h> 
int main ()
{
char str1[30], str2[30], str3[30];
printf("\n Entre com um nome para a string str1: ");
gets(str1);
printf("A string digitada para str1 foi: ");
printf ("%s\n",str1); 
printf("\n\n Entre com um nome para a string str2: ");
scanf("%[^\n]", str2);
printf("A string digitada para str2 foi: ");
printf ("%s",str2);
printf("\n\n Entre com um nome para a string str3: ");
scanf("%s",&str3);
printf("A string digitada para str3 foi: %s", str3);
getch();
}
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
 2.2 - Tipos de dados
 Inteiro
Um tipo de objeto de dados determina como os valores dos dados são representados, que valores pode expressar, e que tipo de operações você pode executar com estes valores.
O tipo inteiro permite a representação numérica e operações com números inteiros com até 4 bytes (dependendo do compilador).
int x;
x=10;
inteiro.cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
 2.2 - Tipos de dados
 Float (ponto flutuante)
O tipo float permite a representação numérica e operações com números reais com até 4 bytes.
3 = 11
2 = 10
10 = 1010
38 = 100110
float x;
x=10.0;
float.cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
144
 2.7 - Comandos de entrada e saída
Entrada
scanf() 
Uma das mais importantes e poderosas instruções, servirá basicamente para promover leitura de dados (tipados) via teclado.
Sua forma geral é: scanf(“string de controle”, lista de argumentos); no momento, sobre string de controle, devemos saber:
%c - leitura de caracter
%d - leitura de números inteiros
%f - leitura de números reais
%s - leitura de caracteres
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
144
145
 2.7 - Comandos de entrada e saída
Entrada
sintaxe: scanf ("%f",&valor);
%f : variável do tipo real
&valor: o dado lido deverá ser armazenado no endereço (&) alocado para a variável “valor”
#include <stdio.h>
int main ()
{
float valor;
printf ("Entre com o preço: "); /* Entrada de Dados*/
scanf ("%f",&valor);
printf ("\O preço do produto é %f reais.\n",valor);
}
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
145
 2.7 - Comandos de entrada e saída
Entrada - gets
Se quisermos ler uma string fornecida pelo usuário podemos usar a função gets(). 
Um exemplo do uso desta função é apresentado no programa string3.cpp. A função gets() coloca o terminador nulo na string, quando você aperta a tecla "Enter".
Neste programa, o tamanho máximo da string que você pode entrar é uma string de 9 caracteres. 
Se você entrar com uma string de comprimento maior, o programa irá aceitar, mas os resultados podem ser desastrosos. Veremos porque posteriormente. 
string3
#include <stdio.h>
int main ()
{
char palavra[10];
printf ("Digite uma string: ");
gets (palavra);
printf ("\n\nVoce digitou %s",palavra);
return(0);
}
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
 2.7 - Comandos de entrada e saída
Função getch() e getche()
Muitas vezes queremos ler um caractere fornecido pelo usuário. Para isto as funções mais usadas, quando se está trabalhando em ambiente DOS ou Windows, são getch() e getche(). 
Ambas retornam o caractere pressionado. getche() imprime o caractere na tela antes de retorná-lo e getch() apenas retorna o caractere pressionado sem imprimí-lo na tela. 
Ambas as funções podem ser encontradas no arquivo de cabeçalho conio.h. Geralmente estas funções não estão disponíveis em ambiente Unix (compiladores cc e gcc), pois não fazem parte do padrão ANSI. (Exemplo 1)
#include <stdio.h>
#include <conio.h>
/* Este programa usa conio.h . */
int main ()
{
char Ch;
Ch=getch();
printf ("Voce pressionou a tecla %c",Ch);
return(0);
}
string 4
string 5
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
148
 2.7 - Comandos de entrada e saída
 Função printf() 
A função printf() coloca na tela do computador o que se deseja imprimir: variáveis e/ou cadeia de caracteres.
 É por causa do uso da função printf() pelo programa que devemos incluir o arquivo-cabeçalho stdio.h. 
Veja os exemplos a seguir:
printf (" O Volume do paralelepipedo e %f .",v);
printf (" Foram produzidas %d peças .",x);
printf (" O nome do gerente e %s .",nome);
printf (" A letra escolhida foi %c .",letra)
printf1
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
148
Comandos de atribuição
Clique aqui
149
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
150
 
 Escreva o algoritmo abaixo em linguagem C que realiza a soma de dois números.
 
 
algoritmo "soma"
var
 a, b, c: real
inicio
escreva("Entre com o primeiro numero:")
Leia (a)
Escreva("Entre com o segundo numero:")
Leia (b)
c<-a+b
Escreval("A soma é:",c)
Fimalgoritmo
c = a + b;
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
150
Escreva o algoritmo abaixo em linguagem C para que um software a ser desenvolvido solicite do usuário as seguintes informações: nome, rua, número, bairro, CEP e cidade.
O algoritmo deverá fazer a impressão de todas as informações na tela do computador
151
Algoritmo "Nome e Endereço"
Var
 N1, Rua: caractere
Inicio
 Escreval("#########Nome e Endereço#########")
 Escreval()
 //Entrada de Dados
 Escreval(" Entre com o seu nome:")
 Leia( N1 )
 Escreval(" Entre com a rua em que reside:")
 Leia( Rua )
 //saída dedados
 Escreva(" O nome do usuário é: ")
 Escreval( N1 )
 Escreva(" O nome da rua em que reside é: ")
 Escreva( Rua )
Fimalgoritmo
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
152
 
 
Escreva o algoritmo abaixo em linguagem C que realiza o cálculo da média final dos alunos com 4 notas.
algoritmo "media"
var media, nota1, nota2, nota3, nota4: real
inicio
Escreval("Entre com as 4 notas")
Leia(Nota1)
Leia(Nota2)
Leia(Nota3)
Leia(Nota4)
Media:=(Nota1 + Nota2 + Nota3 +nota4)/4
Escreva(" A media é:",media)
fimalgoritmo
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
152
153
 
 
Escreva o algoritmo abaixo em linguagem C que realiza o cálculo da média final dos alunos com notas de duas NPs e uma nota do PIM.
Algoritmo "Media ADS"
var
 Media,NP1,NP2,notaPIM:real
inicio
 Escreval("Entre com as notas das NPs: ")
 Leia(NP1)
 Leia(NP2)
 Escreval("Entre com a nota do PIM: ")
 Leia(notaPIM)
 Media:=(4*NP1 + 4*NP2 + 2*NotaPIM)/10
 Escreva(" A média final é:",Media)
fimalgoritmo
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
153
154
 
 
Escreva o algoritmo abaixo em linguagem C
Algoritmo Veloc
Variaveis
 V, Vo, a, DS, S, So : Real
Inicio
 Escreva(“Entre com os valores de Vo, a, S e So”) 
 Leia (Vo, a,S, So )
 DS=S-So
 V=sqrt(Vo**2 + 2*a*DS)
 Escreva (“A velocidade e:”,V)
Fim
Torricelli.alg
Obs: a instrução que calcula uma raiz quadrada na linguagem C é: sqrt( ).
No escopo (início do código’) é necessário escrever a instrução #include <math.h>
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
154
155
 
 
Escreva em linguagem C o algoritmo abaixo escrito em pseudocódigo
Algoritmo "Estoque medio"
Var
 Est_Med, Qde_Min, Qde_Max : Real
Inicio
 Escreval("entre com o valor da quantidade mímnima e máxima")
 Leia (Qde_Min, Qde_Max)
 Est_Med := (Qde_Min + Qde_Max)/2
 Escreva ("O estoque médio é:",Est_Med)
Fimalgoritmo
Estoque medio.alg
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
155
156
 
 
Escreva em linguagem C o algoritmo abaixo escrito em pseudocódigo
O algortimo faz a leitura de dois pontos quaisquer no plano, p1(x1,y1) e p2(x2,y2) e calcule a distância entre eles.
Algoritmo distancia_dois_pontos
Variáveis
 x2,x1,y2,y1,d : Real
Inicio
 Escreva(“Entre com os pontos x1,y1 e x2,y2”)
 Leia (x1, y1)
 Leia (x2, y2)
 d = sqrt((x2-x1)**2+(y2-y1)**2) 
 Escreva (“A distancia entre os dois pontos e:”,d)
Fim
Distancia2pontos.alg
Obs: a instrução que calcula o quadrado de um número na linguagem C é: pow(x,2).
No escopo (início do código’) é necessário escrever a instrução #include <math.h>
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
156
157
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
158
Exercícios do livro: página 42
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
159
Linguagem de Programação C
Estrutura de Controle - Seqüenciação
#include <stdio.h>
int main ()
{
int Dias; /* Declaracao de Variaveis */
float Anos;
printf ("Entre com o número de dias: "); /* Entrada de Dados*/
scanf ("%d",&Dias);
Anos=Dias/365.25; /* Conversao Dias->Anos */
printf ("\n\n%d dias equivalem a %f anos.\n",Dias,Anos);
return(0);
}
segundo programa.cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
159
160
 2.8 - Bloco de instruções
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
160
161
 2.8 - Bloco de instruções
/* Um Primeiro Programa */
int main ()
{
printf ("Primeiro Programa\n");
return(0);
}
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
161
162
 2.9 - Arquivos de cabeçalho
Arquivo Cabeçalho - #include <stdio.h>
A linha #include <stdio.h> diz ao compilador que ele deve incluir o arquivo-cabeçalho stdio.h. Neste arquivo existem declarações de funções úteis para entrada e saída de dados (std = standard, padrão em inglês; io = Input/Output, entrada e saída ==> stdio = Entrada e saída padronizadas). Toda vez que você quiser usar uma destas funções deve-se incluir este comando. O C possui diversos Arquivos-cabeçalho.
Por exemplo, constantes e funções matemáticas estão guardadas na biblioteca math.h (mathematical functions), constantes e funções de manipulação teclado e monitor estão guardadas na biblioteca conio.h (console input and output). Para que se possa usar a constante simbólica em um programa é preciso incluir a biblioteca na compilação do programa. 
Sintaxe: A sintaxe de inclusão de bibliotecas é a seguinte:
#include <nome_bib>
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
162
163
Exemplo
Fazer o exercício abaixo em Linguagem C:
Calcular e apresentar em vídeo o volume de uma caixa retangular utilizando a fórmula: Volume = Comprimento * Altura * Largura.
Terceiro programa.cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
163
164
Exercícios
/* programa volume de um paralelepipedo*/
#include <iostream>
#include <conio.h>
main()
{
 /* Declaracao de Variaveis */
 float a,c,l,v;
 
/* Entrada de Dados*/ 
 printf ("Esse programa calcula o volume de um paralelepipedo \n\n"); 
 printf ("Entre com a altura do paralelepipedo : ");
 scanf ("%f",&a);
 
 printf ("Entre com a largura do paralelepipedo: ");
 scanf ("%f",&l);
 
 printf ("Entre com a comprimento do paralelepipedo: ");
 scanf ("%f",&c);
 
 v=(a*l*c); /* Calculo do volume */
 printf ("\n O Volume do paralelepipedo e %f .\n\n",v);
 /* Verificação Aluno */
 
// getch();
}
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
164
165
Exercícios
Fazer o exercício abaixo em Linguagem C:
Calcular e apresentar o valor do volume de uma lata de óleo sabendo-se que Volume = 3.14159 * RAIO² * ALTURA 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
165
166
Exercícios
#include <iostream>
#include <conio.h>
main()
{
 /* Declaracao de Variaveis */
 float r,l,v;
 
/* Entrada de Dados*/ 
 printf ("Esse programa calcula o volume de uma lata \n\n"); 
 printf ("Entre com o raio : ");
 scanf ("%f",&r);
 
 printf ("Entre com a altura: ");
 scanf ("%f",&l);
 
 
 v=(3.14*r*r*l); /* Calculo do volume */
 printf ("\n O Volume da lata e %.2f .\n\n",v);
 /* Verificação Aluno */
 
 getch();
}
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
166
Observações
Função gets():
 Lê string até o primeiro enter
Função scanf()	
 Lê string até o primeiro espaço em branco
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
168
Linguagem de Programação C
Unidade 3 - Estruturas condicionais e de repetição
 3.1 - Estruturas condicionais (if, else, switch)
 3.2 - Estruturas de repetição (for, while, do...while)
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
168
169
Unidade 3 - Estruturas condicionais e de repetição 
Estruturas de controle de Fluxo
 Estruturas de controle permitem controlar a seqüência das ações lógicas de um programa. Basicamente, existem dois tipos de estruturas de controle: estruturas de repetição e estruturas de decisão (estruturas condicionais). 
 A estrutura de repetição permite que um bloco de instruções seja executado repetidamente uma quantidade controlada de vezes. 
 A estrutura de decisão permite executar um entre dois ou mais blocos de instruções. 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
169
170
3.1 - Estruturas condicionais 
 if...else 
As Estruturas condicionais ou estruturas de decisão são muito utilizadas na linguagem C.
A estrutura if...else é a mais simples estrutura de controle do C. Esta estrutura permite executar um entre vários blocos de instruções. 
 O controle de qual bloco será executado será dado por uma condição (expressão lógica ou numérica).Esta estrutura pode se apresentar de modos ligeiramente diferentes. Será apresentada separadamente cada uma das possibilidades de sintaxe. 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
170
171
3.1 - Estruturas condicionais 
 if...else
	Decisão de um bloco (if...) 
 A estrutura de decisão de um bloco permite que se execute (ou não) um bloco de instruções conforme o valor de uma condição seja verdadeiro ou falso. O fluxograma desta estrutura é mostrada na figura: 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
171
172
3.1 - Estruturas condicionais 
 if...else
	
Sintaxe: Decisão com um bloco:
if(condição)
{ 
 bloco
}
onde:	
condição é uma expressão lógica ou numérica.
bloco é um conjunto de instruções.
Se a condição verdadeira, o bloco é executado. Caso contrário, o bloco não é executado.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
172
173
3.1 - Estruturas condicionais 
 if...else
Exemplo: No trecho abaixo, se o valor da variável “a” for maior que a variável “b”, será impressa a primeira frase. Se a variável “b” for maior, será impresso a segunda frase.
main (){
float a,b;
puts("Digite dois numeros diferentes");
scanf("%f%f",&a,&b);
if (a>b) 
 {printf("\n\t %.2f e'maior que %.2f ",a,b);}
 else if (b>a)
 {printf("\n\t %.2f e'maior que %.2f",b,a);}
 else
	 {printf("\n\t %.2f e igual a %.2f",b,a);}
getch();
Exemplo 1.cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
173
174
3.1 - Estruturas condicionais: if...else
 Também é possível escrever uma estrutura que execute um entre dois blocos de instruções. A figura mostra o fluxograma correspondente a esta estrutura de decisão. 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
174
175
3.1 - Estruturas condicionais: if...else
	Sintaxe: Decisão de dois blocos:
if(condição)
{
 bloco 1;
}
else
{
 bloco 2;
}
onde:	condição é uma expressão lógica ou numérica.
bloco 1 e bloco 2 são conjuntos de instruções.
Se a condição for verdadeira o bloco 1 é executado. Caso contrário, o bloco 2 é executado.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
175
176
3.1 - Estruturas condicionais: if...else
Exemplo: No trecho abaixo, se o valor da variável opcao for igual a “s”, será executada a soma de 2 numeros. Observe que se digitar “S” (S maiúsculo) será impresso opcao invalida. Se for digitado “u” ou “U”, será realizada a subtração de dois números.
main (){
char opcao;
float a,b,x;
puts("Selecione a operação matema'tica: S- Soma; U-Subtracao;\n"); 
scanf("%s",&opcao); 
printf("\n\t Entre com os dois numeros\n");
scanf("%f%f",&a,&b);
if (opcao=='s') 
 {x=a+b;
 printf("\n\t A soma e':%.2f \a",x);} 
else if(opcao=='u'||opcao=='U')
 { x=a-b;
 printf("\n\t A subtracao e'%.2f \a",x); } 
 else
 printf("opcao invalida");} 
exemplo2.cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
176
177
3.1 - Estruturas condicionais: if...else
	Também é possível escrever uma estrutura que execute um entre múltiplos blocos de instruções. A figura mostra o fluxograma correspondente a esta estrutura de decisão .
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
177
178
3.1 - Estruturas condicionais: if...else
	Sintaxe: Decisão de múltiplos blocos:
if(condição 1)
{
 bloco 1;
...
}
else if(condição N)
 {
 bloco N;
 }
 else
 {
 bloco P
 }
onde:	condição 1, condição 2, ... são expressões lógicas ou numéricas.
bloco 1 , bloco 2,... são conjuntos de instruções.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
178
179
3.1 - Estruturas condicionais: if...else
Exemplo: No trecho abaixo, uma determinada ação é executada se o valor de num for positivo, negativo ou nulo. 
if(num > 0)
{
 a = b;
}
else 
 if(num < 0)
 {
 a = b + 1;
 }
 else
 {
 a = b - 1;
 }
	num 	a
	1	5
	-2	6
	0	4
b = 5
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
179
Exercícios
180
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
181
3.1 - Estruturas condicionais: if...else
Exercício:
1- Faça um programa para realizar a multiplicação ou a divisão. O usuário deverá entrar com a opção de qual operação ele deseja fazer e entrar com os valores das variáveis que serão utilizadas nas multiplicação ou na divisão.
Fórmulas:
 x= a*b; 
 x=a / b.
Calculadora if.cpp
Calculadora if2.cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
181
182
3.1 - Estruturas condicionais: if...else
Exercícios
Utilize o algoritmo em pseudocódigo para fazer um programa em C para calcular e a raiz quadrada de um número.
 Esse programa deverá informar que não é possível calcular raiz quadrada de número negativo.
 se Num>=0 então
 X=sqrt(Num);
 Escreva (" A raiz quadrada é ",X)
senão 
 Escreva("Nao e possivel calcular raiz quadrada de numero negativo!");
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
182
183
3.1 - Estruturas condicionais: if...else
Exercícios
 Fazer um programa em C que leia a idade de uma pessoa e informe se ela é maior ou menor de idade. Maior de idade é todo aquele que tem acima de 18 anos (inclusive).
maior de idade.cpp
Algoritmo Verif_Maioridade
Var Idade: inteiro
Início
 Leia Idade
 Se Idade >=18
 Então
 Escreva “Maior de idade”
 Senão
 Escreva “Menor de idade”
 Fim_se
Fim
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
183
184
3.1 - Estruturas condicionais: if...else
Exercícios
Faça um programa em C que leia dois valores numéricos e efetue a adição. Caso o valor somado seja maior ou igual a 10, deverá ser apresentado esse valor acrescido de 5. Caso o valor seja menor que 10, deverá ser apresentado esse valor subtraído de 7.
X=A+B
Se x>=10
Escrever (x+5)
Se x<10
Escrever (x-7)
Exemplo 4.cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
184
185
3.1 - Estruturas condicionais: if...else
Exercícios
- Escreva um programa em C que apresenta as seguintes condições:
a) Se a média for menor que 3.0 o aluno é reprovado.
b) Se a média for maior ou igual a 3.0 e menor que 6.0, o aluno deverá fazer outra prova.
c) Se a média for maior ou igual a 6.0, o aluno está aprovado.
Para se fazer a média deverá haver duas notas como entradas.
Media <3.0 Escrever (Reprovado)
 3<=Media<6.0 Escrever (Outra Prova)
Se x>=6.0 Escrever (aprovado)
Medias 4 notas.cpp
Media.cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
185
186
3.1 - Estruturas condicionais: if...else
Exercícios
- Escreva um programa em C que apresenta as seguintes condições:
a) Se a média for menor que 3.0 o aluno é reprovado.
b) Se a média for maior ou igual a 3.0 e menor que 6.0, o aluno deverá fazer outra prova.
c) Se a média for maior ou igual a 6.0, o aluno está aprovado.
Para se fazer a média deverá haver duas notas como entradas.
Medias 4 notas.cpp
Media.cpp
Algoritmo Aprovação
Var Media: real
Início
 Leia N1
 Leia N2
 Se Media < 3,0 Então
			Escreva “ Aluno Reprovado” 
 Senão 
		 Se Media >= 6,0 Então
 		Escreva “Aluno aprovado”
 			Senão
 				 Escreva “O aluno fará o exame.”
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
186
			 Pág. 55
187
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
188
3.1 - Estruturas condicionais: switch...case 
A estrutura switch...case é uma estrutura de decisão que permite a execução de um conjunto de instruções a partir pontos diferentes conforme o resultado de uma expressão inteira de controle. 
O resultado desta expressão é comparado ao valor de cada um dos rótulos, e as instruções são executadas a partir deste rótulo. 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTODE SISTEMAS
188
189
3.1 - Estruturas condicionais: switch...case 
Sintaxe: Esta estrutura possui a seguinte sintaxe:
switch(expressão){
case rótulo_1:
 conjunto_1
case rótulo_2:
 conjunto_2
...
case rótulo_n:
 conjunto n
[default:
 conjunto d]
} 
onde:
expressão é uma expressão inteira.
rótulo_1,rótulo_2,...rótulo_n e rótulo_d são constantes inteiras.
conjunto 1, conjunto 2, ..., conjunto n e conjunto d são conjuntos de instruções.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
189
190
3.1 - Estruturas condicionais: switch...case 
 O valor de expressão é avaliado e o fluxo lógico será desviado para o conjunto cujo rótulo é igual ao resultado da expressão e todas as instruções abaixo deste rótulo serão executadas. 
 Caso o resultado da expressão seja diferente de todos os valores dos rótulos então conjunto d é executado. Os rótulos devem ser expressões constantes inteiras diferentes entre si. O rótulo default é opcional.
 Esta estrutura é particularmente útil quando se tem um conjunto de instruções que se deve executar em ordem, porém se pode começar em pontos diferentes.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
190
191
3.1 - Estruturas condicionais: switch...case 
 Exemplo: O trecho abaixo ilustra o uso da instrução switch em um menu de seleção. Neste exemplo, o programa iniciará o processo de usinagem de uma peça em um ponto qualquer dependendo do valor lido.
int selecao;
puts("Digite estagio de usinagem:");
scanf("%d",&selecao);
switch(selecao){
case 1:
 // desbaste grosso...
case 2:
 // desbaste fino...
case 3:
 // acabamento...
case 4:
 // polimento...
}
Selecao case.cpp
Selecao2 case.cpp
Centro de Usinagem CNC 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
191
CNC = Controle numérico por computador ou computadorizado
192
3.1 - Estruturas condicionais: switch...case 
 Exercício:
Utilizando a estrutura switch...case, faça um programa para fazer as 4 operações aritméticas soma,subtração, divisão e multiplicação.
Observe que pode-se digitar letra maiúscula ou minúscula no programa selecao2 case.cpp 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
192
Operadores Incrementais
Em programação existem instruções muito comuns chamadas de incremento e decremento. Uma instrução de incremento adiciona uma unidade ao conteúdo de uma variável. Uma instrução de decremento subtrai uma unidade do conteúdo de uma variável.
 Existem, em C, operadores específicos para realizar as operações de incremento (++) e decremento (--).
Sintaxe: A sintaxe dos operadores incrementais é a seguinte:
 instrução equivalente
++ var var = var + 1	
var ++ var = var + 1
-- var var = var - 1
var -- var = var - 1 
193
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
194
Relembrando (slide Unidade 2)
Operadores Incrementais
 Exemplo: Observe o fragmento de código abaixo e note o valor que as variáveis recebem após a execução da instrução:
	 valor das variáveis
int a=0, b=0, c=0, i = 3; // a:0 b: 0 c: 0 i: 3
a = i++; // a: 3 b: 0 c: 0 i: 4
b = ++i; // a: 3 b: 5 c: 0 i: 5
c = --i; // a: 3 b: 5 c: 4 i: 4
Os operadores incrementais tem a mais alta precedência entre todos, sendo superados apenas pelos parênteses que tem precedência ainda maior 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
194
Exercício 2
Dado o seguinte algoritmo:
Programa p1;
var i,j,k:inteiro
inicio
leia(i)
leia(j)
leia(k)
se (i>j) e (i>k) então
      escreva(i)
senão
      se j>k ntão
            escreva(j)
      senao
            escreva(k)
     fimse
fimse
fim.
195
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
196
3.2 - Estruturas de repetição (for, while, do...while):
 Condição de controle 
 A estrutura de repetição permite que um bloco de instruções seja executado repetidamente uma quantidade controlada de vezes. 
 Em todas as estruturas, existe pelo menos uma expressão que faz o controle de qual bloco de instruções será executado ou quantas vezes ele será executado: é o que chamamos de condição de controle. 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
196
197
3.2 - Estruturas de repetição (for, while, do...while):
 Condição de controle 
Uma condição de controle é uma expressão lógica ou aritmética cujo resultado pode ser considerado verdadeiro ou falso. 
A linguagem C não possui variáveis ou constantes lógicas, possui somente expressões numéricas. 
Assim, quando uma expressão numérica se encontra em uma condição de controle, ela será considerada falsa se seu valor for igual a zero, e verdadeira se seu valor for diferente de zero. 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
197
198
3.2 - Estruturas de repetição (for, while, do...while):
Condição de controle
Exemplo: Observe nas condições abaixo, seu valor numérico e seu significado lógico. Considere as variáveis int i = 0, j = 3;
condição valor numérico significado lógico
(i == 0) 1 verdadeiro
(i > j) 	 0 falso
(i) 0 falso
(j) 3 verdadeiro
Este fato deve ficar claro pois, quando for dito que uma condição é falsa ou verdadeira quer se dizer que seu valor e igual a zero ou diferente de zero. 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
198
199
3.2 - Estruturas de repetição: do...while
Estrutura do...while 
 Esta estrutura faz com que o bloco de instruções seja executado pelo menos uma vez. 
Após a execução do bloco, a condição é avaliada. Se a condição for VERDADEIRA o bloco é executado outra vez. Se a condição for FALSA a repetição é terminada. 
 Esta é uma estrutura básica de repetição condicional. Permite a execução de um bloco de instruções repetidamente. 
 O fluxograma desta estrutura é mostrada na figura .
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
199
200
3.2 - Estruturas de repetição: do...while
Sua sintaxe é a seguinte:
do
{
 bloco
}
while(condição);
onde:	condição é uma expressão lógica ou numérica.
bloco é um conjunto de instruções.
Do_While1.cpp
do
 {
 printf("\n %d ",i);
 i++;
 }
while (i<=8);
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
200
201
3.2 - Estruturas de repetição: do...while
Veja o exemplo:
Exemplo 1 Do_While.cpp
int main (){
 setlocale(LC_ALL,"") ;
 char r;
do
 { 
 printf("\nTeste de estrutura de repetição do...while");
 printf(" \n Deseja continuar? (s)Sim ou (n) Não\n");
 scanf("%s",&r); 
 }
while (r =='s');
printf("\n Saiu do laço do...while !!!");
}
while (r =='s'||r =='S');
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
201
202
3.2 - Estruturas de repetição: do...while
Veja o exemplo:
Exemplo 2 Do_While.cpp
int main (){
 setlocale(LC_ALL,"") ;
 int r;
do
 { 
 printf("\nTeste de estrutura de repetição do...while");
 printf(" \n Deseja continuar? (1) Sim\n");
 scanf("%d",&r); 
 }
while (r == 1);
printf("\nSaiu do laço do...while !!!");
}
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
202
203
3.2 - Estruturas de repetição: do...while
Veja o exemplo:
Exemplo 3 Do_While.cpp
int main (){
 setlocale(LC_ALL,"") ;
 int r;
do
 { 
 printf("\nTeste de estrutura de repetição do...while");
 printf(" \n Deseja continuar? (0) Não\n");
 scanf("%d",&r); 
 }
while (r != 0);
printf("\nSaiu do laço do...while !!!");
}
while ( r );
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
203
204
3.2 - Estruturas de repetição: do...while
	Exemplo: No trecho abaixo, a leitura de um número é feita dentro de um laço de repetição condicional. A leitura é repetida caso o número lido seja negativo.
do{
 puts("Digite um número positivo:");scanf("%f",&num);
}
while(num <= 0.0);
Do_While3.cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
204
205
3.2 - Estruturas de repetição: do...while
	Na linguagem C o valor 0 (zero) é considerado valor lógico falso e qualquer número que não seja 0 (zero) recebe valor lógico verdadeiro (true). Veja o exemplo abaixo:
Do_While4.cpp
int main (){
int i=10;
float x,y=10.0;
do {
 y=y+3;
 printf("\n O i= %d y= %.2f",i,y);
 i--; 
 }
while (i);
}
Do_While2.cpp
int i=0;
float x,y;
do
 { 
 y=y+3;
 printf("\n %d %4.2f",i,y);
 i++; 
}
while (i<=9);
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
205
206
3.2 - Estruturas de repetição: do...while
	Exercício:
Utilize a estrutura do...while para imprimir os 10 primeiros números ímpares.
Altere o programa para mostrar a posição de cada número ímpar: 
Altere a estrutura anterior para realizar a soma dos 10 primeiros números ímpares.
Imprime impares2.cpp
Soma impares.cpp
Imprime impares.cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
206
207
3.2 - Estruturas de repetição: while
Estrutura while 
	A estrutura de repetição condicional while é semelhante a estrutura do...while. Sua sintaxe é a seguinte:
Sintaxe:
while(condição){
 bloco
}
onde:	condição é uma expressão lógica ou numérica.
bloco é um conjunto de instruções.
while (i<=8)
 {
 printf("\n %d ",i);
 i++;
 }
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
207
208
3.2 - Estruturas de repetição: while
 Esta estrutura faz com que a condição seja avaliada em primeiro lugar. 
 Se a condição for verdadeira o bloco é executado uma vez e a condição é avaliada novamente. Caso a condição seja falsa a repetição é terminada sem a execução do bloco. 
 Observe que nesta estrutura, ao contrário da estrutura do...while, o bloco de instruções pode não ser executado nenhuma vez, basta que a condição seja inicialmente falsa. 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
208
209
3.2 - Estruturas de repetição: while
O fluxograma desta estrutura é mostrada na figura abaixo:	
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
209
210
3.2 - Estruturas de repetição: while
	Exercício:
Utilize a estrutura while para imprimir os 10 primeiros números ímpares.
Altere o programa para mostrar a posição de cada número ímpar: 
Altere a estrutura anterior para realizar a soma dos 10 primeiros números ímpares.
impares2 WHILE.cpp
Soma impares wHILE.cpp
Impares WHILE.cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
210
211
3.2 - Estruturas de repetição: for 
A estrutura for 
A estrutura for é muito semelhante as estruturas de repetição vistas anteriormente, entretanto costuma ser utilizada quando se quer um número determinado de ciclos. 
A contagem dos ciclos é feita por uma variável chamada de contador. A estrutura for é, às vezes, chamada de estrutura de repetição com contador. 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
211
212
3.2 - Estruturas de repetição: for
Sua sintaxe é a seguinte : 
for(inicialização; condição; incremento){
 bloco
}
onde:	
inicialização é uma expressão de inicialização do contador.
condição é uma expressão lógica de controle de repetição.
incremento é uma expressão de incremento do contador.
bloco é um conjunto de instruções a ser executado. 
for(i=1; i<=10; i++)
{
 printf(" %d",i);
}
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
212
213
3.2 - Estruturas de repetição: for
 Esta estrutura executa um número determinado de repetições usando um contador de iterações. O contador é inicializado na expressão de inicialização antes da primeira iteração. Por exemplo: 
	 i = 0; ou cont = 20;. Então o bloco é executado e depois de cada iteração, o contador é incrementado de acordo com a expressão de incremento (i++ ou cont = cont - 2).
 A expressão de condição é avaliada e se a condição for verdadeira, o bloco é executado novamente e o ciclo recomeça, se a condição for falsa termina-se o laço. 
Esta condição é, em geral, uma expressão lógica que determina o último valor do contador. Por exemplo: i <= 100.
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
213
214
3.2 - Estruturas de repetição: for
Exemplo: 
	No trecho abaixo, o contador i é inicializado com o valor 1. O bloco é repetido enquanto a condição i <= 10 for verdadeira. O contador é incrementado com a instrução i++. Esta estrutura, deste modo, imprime os números 1, 2, ..., 9, 10.
for(i=1; i<=10; i++)
{
 printf(" %d",i);
}
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
214
215
3.2 - Estruturas de repetição: for
	Exercício:
 Utilize a estrutura FOR para imprimir os 10 primeiros números ímpares, mostrando a posição de cada número primo: 
 Altere a estrutura anterior para realizar a soma dos 10 primeiros números ímpares.
Soma impares FOR.cpp
Imprime impares FOR
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
215
216
3.2 - Estruturas de repetição: for
	É interessante notar que a mesma estrutura lógica pode ser implementada usando as estruturas for ou do...while:
Exemplo: As seguintes instruções são plenamente equivalentes:
i = 0; 
for(i = 0; i <= 100; i++){
do{ bloco 
 bloco }
 i++;
}while(i <= 100);
Podem existir mais de uma expressão de inicialização e de incremento na estrutura for. Estas expressões devem ser separadas por vírgula (,). Mas não pode haver mais de uma expressão de condição. Por exemplo: for(i=0, j=10; i<10; i++, j--){...}
Soma impares FOR2.cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
216
217
3.2 - Estruturas de repetição: for
int main (){
int i=10;
float x,y=10.0;
do {
 y=y+3;
 printf("\n O i= %d y= %.2f",i,y);
 i--; 
	}
while (i);
}
Podem existir mais de uma expressão de inicialização e de incremento na estrutura for. Estas expressões devem ser separadas por vírgula (,). Mas não pode haver mais de uma expressão de condição. Por exemplo: for(i=0, j=10; i<10; i++, j--){...}
Soma impares FOR2.cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
217
Utilize o laço de repetição while ou do...while para alterar o programa Calculadora com a finalidade de perguntar ao usuário se deseja continuar. Enquanto ele responder “sim” o software volta ao início para perguntar qual operação deseja fazer.
218
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
219
#include <stdio.h>
int main() {
float num_1, num_2, operacao;
char op;
printf("\n Entre com a operacao desejada: (+), (-) \n");
scanf("%s",&op);
printf("Entre com o 1o. : ");
scanf("%f",&num_1);
printf("Entre com o 2o. Numero: \n");
scanf("%f",&num_2);
switch(op){
	case '+' :operacao = num_1+num_2;
	printf("\nA soma destes numeros e' %.2f", operacao);
	break;
	case '-' :operacao = num_1-num_2;
	printf("\nA subtracao destes numeros e' %.2f", operacao);
	break;
	default : printf("Operador desconhecido\n");
	}
}
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Escreva um programa em C que utilize a estrutura FOR para converter temperaturas de 0 a 100 graus Celsius para Fahrenheit e de 0 a 100 Graus Fahrenheit para graus Celsius. Utilize a estrutura if...else para escolher qual conversão se deseja fazer.
 Fórmulas: Fahr = (9.0/5.0) * Celsius+32; 	
 Celsius = (5.0/9.0)*(Fahr-32).
220
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Escreva um programa utilizando a estrutura de repetição for para calcular a raiz quadrada dos 50 primeiros números inteiros.  
Escreva um programa utilizando a estrutura de repetição do...while para calcular a raiz quadrada dos 50 primeiros números inteiros pares. 
Construa um programa utilizando a estrutura for que determine asoma dos dez primeiros termos da seguinte série: 5, 11, 17, 23.
221
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Exercício
Conteúdo: estruturas de decisão e de repetição.
Faça um programa em linguagem C para obedecer aos seguintes requisitos:
	Apresente para o usuário os 10 primeiros números ímpares e sua soma ou os 10 primeiros números pares. Utilize uma estrutura de decisão “if else” OU “switch case” para atender à decisão do usuário.
Utilize a estrutura de repetição determinada “for” para fazer os 10 números pares ou os 10 números ímpares.
O programa irá fechar quando o usuário decidir. Utilize uma estrutura de repetição indeterminada do tipo “while” ou “do...while” para fechar o aplicativo .
222
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Exercício
Conteúdo: estruturas de decisão e de repetição.
Faça um programa em linguagem C para obedecer aos seguintes requisitos:
	Faça a conversão de temperatura de graus Celsius para graus Fahrenheit; de graus Fahrenheit para graus Celsius e de graus Celsius para Kelvin utilizando uma estrutura de decisão “if else” OU “switch case”.
Apresente o resultado da conversão na tela e as variáveis de temperatura têm que ser um número do conjunto dos Reais.
O programa irá fechar quando o usuário decidir. Utilize uma estrutura de decisão do tipo “while” ou “do...while”.
As equações de conversão são: 
F=(9*C + 160)/5 ou F = (9.0 / 5.0) * C +32; ou F = 1,8 * C + 32
C = (5*F - 160)/9 ou C = ( 5.0 / 9.0 ) * ( F – 32 ); 
K=C+273
223
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Módulo 3 exercício 9
224
No que se refere a forma de declaração de um laço for, é correto afirmar:
A 
for (i=1 ; i<5 ; i++)     
       printf("O valor é %d ", i+4); 
B 
for(i=1 , i<5 , i++)
        printf(“O valor é: %d ”, i+4)
C 
for(i=1; i<5 , i ++)    
        printf(“O valor é %d ” ; i+4);
D 
for(i=1 ,  i<5 ,  i++);
        printf(“O valor é %d”, i+4);
E 
for(i=1 ; i<5 ; i++);
        printf(“O valor é %d”, i+4);
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
225
Qual saída produzida pela execução do laço seguinte?
 
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
 
void main()
{
    int conta=0;
    int total=0;
  
    while (conta<10) {
          total+=conta;
          printf("conta = %d, total= %d \n", conta++, total);
          }
    getche();
}
Módulo 3 exercício 10
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
226
Módulo 3 exercício 10
A 
conta = 1, total= 1
conta = 2, total= 3
conta = 3, total= 6
conta = 4, total= 10
conta = 5, total= 15
conta = 6, total= 21
conta = 7, total= 28
conta = 8, total= 36
conta = 9, total= 45
B
conta = 0, total= 0
conta = 2, total= 1
conta = 3, total= 3
conta = 4, total= 6
conta = 5, total= 10
conta = 6, total= 15
conta = 7, total= 21
conta = 8, total= 28
conta = 9, total= 36
conta = 10, total= 45
C
conta = 0, total= 1
conta = 1, total= 2
conta = 2, total= 3
conta = 3, total= 6
conta = 4, total= 10
conta = 5, total= 15
conta = 6, total= 21
conta = 7, total= 28
conta = 8, total= 36
conta = 9, total= 45
D
conta = 0, total= 0
conta = 1, total= 1
conta = 2, total= 3
conta = 3, total= 6
conta = 4, total= 10
conta = 5, total= 15
conta = 6, total= 20
conta = 7, total= 20
conta = 8, total= 30
conta = 9, total= 40
E
conta = 0, total= 0
conta = 1, total= 1
conta = 2, total= 3
conta = 3, total= 6
conta = 4, total= 10
conta = 5, total= 15
conta = 6, total= 21
conta = 7, total= 28
conta = 8, total= 36
conta = 9, total= 45
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Expressões aritméticas e lógicas; 
Operadores Aritméticos
227
Voltar
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
 2.5 - Expressões aritméticas e lógicas; 
Operadores Aritméticos
	Operador	Ação
	+	Soma (inteira e ponto flutuante)
	-	Subtração ou Troca de sinal (inteira e ponto flutuante)
	*	Multiplicação (inteira e ponto flutuante)
	/	Divisão (inteira e ponto flutuante)
	%	Resto de divisão (de inteiros)
	++	 Incremento (inteiro e ponto flutuante)
	--	Decremento (inteiro e ponto flutuante)
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
 2.5 - Expressões aritméticas e lógicas; 
Operadores Aritméticos
Restrições de operandos.
 Os operandos dos operadores aritméticos devem ser constantes numéricas ou identificadores de variáveis numéricas. Os operadores +, -, *, / podem operar números de todos os tipos (inteiros ou reais) porém o operador % somente aceita operandos inteiros. 
	Exemplo: Expressões válidas
	Expressão Valor
	6.4 + 2.1 8.5
	7 - 2 5
	2.0 * 2.0 4.0
	6 / 3 2
	47 % 2 1
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
 2.5 - Precedência de Operadores
 Quando mais de um operador se encontram em uma expressão aritmética as operações são efetuadas uma de cada vez respeitando algumas regras de precedência: Estas regras de precedência são as mesmas da matemática elementar.
 Os operadores de multiplicação (*), divisão (/) e módulo (%) tem precedência sobre os operadores de adição (+) e subtração (-). Entre operadores de mesma precedência as operações são efetuadas da esquerda para a direita. Exemplo: observe, nas expressões abaixo, o seu valor e a ordem das operações efetuadas:
	Expressão	Valor	Ordem
	1 + 2 - 3	0	+ -
	24 - 3 * 5 	9	* -
	4 - 2 * 6 / 4 + 1	2	* / - +
	6 / 2 + 11 % 3 * 4	11	/ % * +
Precedência .cpp
Obs: a ordem de precedência dos operadores pode ser quebrada usando-se parênteses: ( ). 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
231
#include <stdio.h>
#include <math.h>
main()
 {
 float x,y,z;
 
 y = 4 - 2 * 6 / 4 + 1;// 4-3+1 = 2
 x=6 / 2 + 11 % 2 * 4;// 3+1*4=7
 z=6 / 2 + 11 % (2*4);// 3+11%8=3+1=4
 printf(" y= %.2f, \n",y);
 printf(" x= %.2f, \n",x);
 printf(" z= %.2f, \n",z);
 }
Precedência de Operadores
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
 2.5 - Expressões aritméticas e lógicas; 
Operadores de Atribuição Aritmética 
 Muitas vezes queremos alterar o valor de uma variável realizando alguma operação aritmética com ela (i = i + 1) (val = val * 2).
 Embora seja perfeitamente possível escrever estas instruções, foi desenvolvido na linguagem C uma instruções otimizadas com o uso de operadores ditos operadores de atribuição aritmética. 
Os símbolos usado são (+=, -=, *=, /= , %=). Deste modo as instruções acima podem ser rescritas como: i += 1 e val *= 2, respectivamente.
Sintaxe: A sintaxe da atribuição aritmética é a seguinte:
var += exp;
var -= exp; 
var *= exp; 
var /= exp; 
var %= exp;
var = var + exp;
var = var - exp; 
var = var * exp; 
var = var / exp; 
var = var % exp;
i+= <-> i = i + 1 
Atribuiçao aritmética .cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
 2.5 - Expressões aritméticas e lógicas; 
Operadores Incrementais 
 Muitas vezes queremos alterar o valor de uma variável realizando alguma Em programação existem instruções muito comuns chamadas de incremento e decremento. Uma instrução de incremento adiciona uma unidade ao conteúdo de uma variável. Uma instrução de decremento subtrai uma unidade do conteúdo de uma variável. 
 Existem, em C, operadores específicos para realizar as operações de incremento (++) e decremento (--). Eles são genericamente chamados de operadores incrementais.
Sintaxe: A sintaxe dos operadores incrementais é a seguinte:
++ var var = var + 1	
var ++ var = var + 1
-- var var = var - 1
var -- var = var - 1
Operador incremental .cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
 2.5 - Expressões aritméticas e lógicas
Operadores Incrementais 
Observe que existe duas sintaxes possíveis para os operadores: pode-se colocar o operador à esquerda ou á direita da variável. 
Nos dois casos o valor da variável será incrementado (ou decrementado) de uma unidade.Se o operador for colocado á esquerda da variável, o valor da variável será incrementado (ou decrementado) antes que a variável seja usada em alguma outra operação. 
Caso o operador seja colocado à direita da variável, o valor da variável será incrementado (ou decrementado) depois que a variável for usada em alguma outra operação. 
Operador incremental 2.cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
235
#include <stdio.h>
#include <math.h>
main()
 {
 //declaração da variável
 int i=0,j=0,k=0,z=0, a=0; 
 ++i;
 printf(" i= %d, \n\n",i);
 j++ ;
 printf(" j= %d, \n\n",j);
 --k;
 printf(" k= %d, \n\n",k);
 z-- ;
 printf(" z= %d, \n\n",z);
 printf("*************************\n");
 // zerando as variáveis
 i=0;j=0;k=0;z=0; 
 a=++i;
 printf(" i= %d,\t a=%d\n\n",i,a);
 a=0;
 a=j++ ;
 printf(" j= %d,\t a=%d\n\n",j,a);
 a=0;
 a=--k;
 printf(" k= %d,\t a=%d\n\n",k,a);
 a=0;
 a=z-- ;
 printf(" z= %d,\t a=%d\n\n",z,a);
 }
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
236
#include <stdio.h>
#include <math.h>
main()
 {
 //declaração da variável
 int a=0, b=0, c=0, i = 3; // a: 0 b: 0 c: 0 i: 3
a = i++; 
printf("++ a Direita \ta= %d, i= %d, \n\n",a,i);
 
i=3; 
b = ++i; 
printf("++ a Esquerda \t b= %d, i= %d, \n\n",b,i); 
 
i=3;
c = i--; 
printf("-- a Direita \t c= %d, i= %d, \n\n",c,i); 
 
i=3;
c = --i; 
printf("-- a Esquerda \t c= %d, i= %d, \n\n",c,i); 
 }
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
 2.5 - Expressões aritméticas e lógicas
 Operadores relacionais 
Os operadores relacionais retornam verdadeiro (1) ou falso (0). 
Uma condição de controle é uma expressão lógica que é avaliada como verdadeira ou falsa. Uma expressão lógica é construída com operadores relacionais e lógicos. 
Ao contrário de outras linguagens, em C não existem tipos lógicos, portanto o resultado de uma expressão lógica é um valor numérico: uma expressão avaliada verdadeira recebe o valor 1, uma expressão lógica avaliada falsa recebe o valor 0.
	Operador	Ação
	>	Maior do que
	>=	 Maior ou igual a
	<	 Menor do que
	<=	 Menor ou igual a
	==	 Igual a
	!=	 Diferente de
Operador relacional .cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
 2.5 - Expressões aritméticas e lógicas
 Operadores lógicos
 São três os operadores lógicos de C: &&, || e !. Estes operadores tem o mesmo significado dos operadores lógicos Booleanos AND, OR e NOT. 
Sintaxe: A sintaxe de uso dos operadores lógicos:
expr_1 && expr_2
expr_1 || expr_2
!expr
onde expr_1 , expr_2 e expr são expressões quaisquer. 
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
 2.5 - Expressões aritméticas e lógicas
 Operadores lógicos
 O resultado da operação lógica && será 1 somente se os dois operandos forem 1, caso contrário o resultado é 0. O resultado da operação lógica || será 0 somente se os dois operandos forem 0, caso contrário o resultado é 1. O resultado da operação lógica ! será 0 se o operandos for 1, e 1 se o operando for 0. Abaixo mostra-se o resultado das possíveis combinações entre os operandos para cada operador lógico:
	OP_1	OP_2	RESULTADO
	1	1	1
	1	0	0
	0	1	0
	0	0	0
	OP_1	OP_2	RESULTADO
	1	1	1
	1	0	1
	0	1	1
	0	0	0
Operador && (AND – E)
Operador ||(OR - OU)
Operador ! 
(NO – NÃO)
	OP_1	RESULTADO
	1	0
	0	1
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Aplicação
Operadores lógicos && (AND) e ! (NO)
Operadores lógicos || (OR) e ! (NO)
Programa operador logico and
operador logico OU
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
2.6 - Comando de atribuição 
O operador de atribuição do C é o =. 
O que ele faz é pegar o valor à direita e atribuir à variável da esquerda. Além disto ele retorna o valor que ele atribuiu. Isto faz com que as seguintes expressões sejam válidas: 
float x=1.5, k=2.3, w=3.5; /* Expressao 1 */
if (k==w) ... /* Expressão 2 */
Atribuição.cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
2.6 - Comando de atribuição 
 Observem que o símbolo de atribuição ( = ) não tem o mesmo significado que o usual da matemática que representa a igualdade de valores. 
 Este símbolo, em C, representa a atribuição do valor calculado em expressão a variável identificador. Em pseudo-linguagem o operador de atribuição é representado como . Também não se pode confundir o operador de atribuição ( = ) com o operador relacional de igualdade ( == ) 
Exemplo: A seguir são mostradas algumas atribuições inválidas:
	1 = a; // constante! 
	b + 1 = a; // expressão!
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
2.6 - Comando de atribuição
Atribuição múltipla
E possível atribuir um valor a muitas variáveis em uma única instrução. A esta operação dá-se o nome de atribuição múltipla.
Sintaxe: A sintaxe da atribuição múltipla é seguinte:
var_1 = [var_2 = ... ] expressão;
onde var_1, var_2, ... são os identificadores de variáveis e expressão é uma expressão válida.
 Observe que na atribuição múltipla as operações ocorrem da direita para a esquerda, isto é, inicialmente o valor de expressão é atribuído a var_2 e depois o valor de var_2 é atribuído a var_1. Deve-se tomar cuidado com as conversões de tipo e limites de intervalo para atribuições de tipos diferentes.
Atribuição 2.cpp
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
Expressões aritméticas e lógicas; 
Operadores Aritméticos 
FIM
244
Voltar
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE 
E DESENVOLVIMENTO DE SISTEMAS
s
a
v
v
D
+
=
.
.
2
2
0
s
a
v
v
D
+
=
.
.
2
2
0
2
(
)
(
)
2
1
2
2
1
2
y
y
x
x
d
-
+
-
=
6
,
3
1
3600
1000
1
3600
1
1000
1
036
,
0
001
,
0
036
,
0
001
,
0
1
1
=
=
=
®
=
«
®
x
h
km
s
m
h
km
s
m
8
...
27777
,
0
6
,
3
1
3600
1000
1
1
=
®
=
«
®
s
m
h
km
s
m
h
km
condição
bloco
V
F
condição?
bloco 1
bloco 2
�������������������������������������������������������������������������
F
V
F
V
F
V
. . .
. . .
bloco 3
3?
Condição 
bloco 2
2?
Condição 
bloco 1
1?
Condição 
Condição
1?
bloco 1
Condição
2?
bloco 2
Condição
3?
bloco 3
. . .
. . .
V
F
V
F
V
F
conjunto 1
conjunto N
conjunto 2
conjunto D
...
expressão
rotulo 1
rotulo N
rotulo D
rotulo 2
bloco
condição?
V
F
bloco
condição?
V
F

Mais conteúdos dessa disciplina