Buscar

aula_03

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

CCF 110
ALGORITMO E ESTRUTURA ALGORITMO E ESTRUTURA 
DE DADOS IDE DADOS I
Universidade Federal de Itajubá
Prof. Roberto Affonso da Costa Junior
AULA 03 – 1/2AULA 03 – 1/2
– Comandos Sequenciais
– Português Estruturado (PORTUGOL)
– Linguagem de Programação C
Estrutura SequenciaisEstrutura Sequenciais
➢Definimos Estruturas Sequenciais como sendo 
a sequência de passos feito da forma Top-Down, 
isto é, de cima para baixo.
➢Por exemplo:
➢Qual o valor de B e de A e B? 
A ← 10
B ← 20
imprima(B)
B ← 5
imprima(A, B)
A ← 10
B ← 20
imprima(B)
B ← 5
imprima(A, B)
Estrutura SequenciaisEstrutura Sequenciais
➢ Uma estrutura sequencial realiza um conjunto 
predeterminado de comandos de forma sequencial, na 
ordem em que foram declarados no código fonte. A cada 
instrução, o contador de programa é incrementada 
(PORTUGOL).
➢ Uma estrutura sequencial é delimitada pelas palavras-
reservadas Início e Fim e contém basicamente comandos 
de atribuição, comandos de entrada e comandos de saída. 
Os algoritmos do capítulo anterior são algoritmos que 
utilizam uma única estrutura sequêncial.
Estrutura SequenciaisEstrutura Sequenciais
➢ Um algoritmo puramente seqüencial é aquele cuja 
execução é efetuada em ordem ascendente dos números 
que identificam cada passo. A passagem de um passo ao 
seguinte é natural e automática, e cada passo é executado 
uma única vez.
1. início
2. A ← 10
3. B ← 20
4. imprima(B)
5. B ← 5
6. imprima(A, B)
7. fim
1. início
2. A ← 10
3. B ← 20
4. imprima(B)
5. B ← 5
6. imprima(A, B)
7. fim
Estrutura SequenciaisEstrutura Sequenciais
● Esquema Genérico de 
Algoritmos em Portugol
Declaração de Variáveis/Constantes
INICIO
 inicialização de variáveis/constantes 
 {comentários} 
 bloco de comandos de entrada de 
dados
 {comentários}
 bloco de comandos de atribuição
 {comentários}
 bloco de comandos de saída de dados
FIM
● Esquema Genérico de 
Algoritmos em Fluxograma
INICIO
FIM
Leia
Imprima
Atribuição
Exemplo 1Exemplo 1
➢ Dados 4 números, calcule a média aritmética deles.
Algoritmo:Algoritmo:
 real n1, n2, n3, n4, soma, media
imprima ( “entre com o valor de n1 “ )
leia ( n1 )
imprima ( “entre com o valor de n2 “ )
leia ( n2 )
imprima ( “entre com o valor de n3“ )
leia ( n3 )
imprima ( “entre com o valor de n4 “ )
leia ( n4 )
Exemplo 1Exemplo 1
Algoritmo:Algoritmo:
 soma ← n1 + n2 + n3 + n4
 media ← soma / 4
 imprima ( “ A média dos 4 números é: “, media )
Exemplo 1Exemplo 1
➢ Dados 4 números, calcule a média aritmética deles.
Portugol:Portugol:
 real n1, n2, n3, n4, soma, media
Início
imprima ( “entre com o valor de n1 “ )
leia ( n1 )
imprima ( “entre com o valor de n2 “ )
leia ( n2 )
imprima ( “entre com o valor de n3“ )
leia ( n3 )
imprima ( “entre com o valor de n4 “ )
leia ( n4 )
Exemplo 1Exemplo 1
Portugol:Portugol:
 soma ← n1 + n2 + n3 + n4
 media ← soma / 4
 imprima ( “ A média dos 4 números é: “, media )
Fim
Exemplo 1Exemplo 1
➢ Dados 4 números, calcule a média aritmética deles.
Fluxograma:Fluxograma:
 
INICIO
n1, n2, n3, n4
Soma ← n1 + n2 + n3 + n4
Media ← soma / 4
‘ Media = ’, Media
FIM
Exemplo 1Exemplo 1
Testando o Algoritmo anteriorTestando o Algoritmo anterior
n1 = 10.0
n2 = 5.0
n3 = 7.0
n4 = 8.0
soma ← 10.0 + 5.0 + 7.0 + 8.0
media ← 30 / 4
media = 7.5
Exemplo 2Exemplo 2
➢ Elabore um programa que leia um valor de temperatura 
em graus Celsius, calcule e exiba a temperatura 
equivalente em graus Kelvin, sabendo que K = C + 273.
Algoritmo:Algoritmo:
 real K, C
imprima ( “entre com a temperatura em Celsius: “ )
leia ( C )
 K ← C + 273
 imprima ( “ A temperatura em Kelvin é: “, K)
Exemplo 2Exemplo 2
 Portugol:Portugol:
 real K, C
 Início
imprima ( “entre com a temperatura em Celsius: “ )
leia ( C )
 K ← C + 273
 imprima ( “ A temperatura em Kelvin é: “, K)
 Fim
Exemplo 2Exemplo 2
Fluxograma:Fluxograma:
 
INICIO
C
K ← C + 273
‘ Kelvin = ’, K
FIM
Exemplo 2Exemplo 2
Testando o Algoritmo anteriorTestando o Algoritmo anterior
C = 10.0
k ← 10.0 * 25.4
Kelvin = 254.0
Exemplo 3Exemplo 3
➢ Ler o nome de um cliente de fast food e a quantidade de 
cada item do menu que ele vai pedir. Exiba o nome do 
cliente e o total da compra.
MENU
Hot dog R$ 2,50
Hambúrguer R$ 4,00
Cheeseburguer R$ 4,50
Refrigerante R$ 2,00
Batatas fritas R$ 3,50
Exemplo 3Exemplo 3
Algoritmo:Algoritmo:
 cadeia nome
 inteiro qhd, qha, qch, qre, qbf
 real pthd, ptha, ptch, ptre, ptbf, ptf
 imprima ( “entre com o nome do cliente: “ )
 leia ( nome )
 imprima ( “entre com a quantidade de hot dog: “ )
 leia ( qhd )
 imprima ( “entre com a quantidade de hambúrguer: “ )
 leia ( qha )
 imprima ( “entre com a quantidade de cheeseburguer: “ )
 leia ( qch )
Exemplo 3Exemplo 3
Algoritmo:Algoritmo:
 imprima ( “entre com a quantidade de refrigerante: “ )
 leia ( qre )
 imprima ( “entre com a quantidade de batatas fritas: “ )
 leia ( qbf )
 pthd← qhd * 2.5
 ptha← qha * 4.0
 ptch← qch * 4.5
 ptre ← qre * 2.0
 ptbf ← qbf * 3.5
 ptf ← phd + pha + pch + pre + pbf
 imprima ( “ Cliente: “, nome)
 imprima ( “ O valor devido é: R$“, ptf)
Exemplo 3Exemplo 3
 Portugol:Portugol:
 cadeia nome
 inteiro qhd, qha, qch, qre, qbf
 real pthd, ptha, ptch, ptre, ptbf, ptf
 Início
 imprima ( “entre com o nome do cliente: “ )
 leia ( nome )
 imprima ( “entre com a quantidade de hot dog: “ )
 leia ( qhd )
 imprima ( “entre com a quantidade de hambúrguer: “ )
 leia ( qha )
 imprima ( “entre com a quantidade de cheeseburguer: “ )
 leia ( qch )
Exemplo 3Exemplo 3
 Portugol:Portugol:
 imprima ( “entre com a quantidade de refrigerante: “ )
 leia ( qre )
 imprima ( “entre com a quantidade de batatas fritas: “ )
 leia ( qbf )
 pthd← qhd * 2.5
 ptha← qha * 4.0
 ptch← qch * 4.5
 ptre ← qre * 2.0
 ptbf ← qbf * 3.5
 ptf ← qhd + qha + qch + qre + qbf
 imprima ( “ Cliente: “, nome)
 imprima ( “ O valor devido é: R$ “, ptf)
 FIM
Exemplo 3Exemplo 3
 Portugol:Portugol:
 imprima ( “entre com a quantidade de refrigerante: “ )
 leia ( qre )
 imprima ( “entre com a quantidade de batatas fritas: “ )
 leia ( qbf )
 pthd← qhd * 2.5
 ptha← qha * 4.0
 ptch← qch * 4.5
 ptre ← qre * 2.0
 ptbf ← qbf * 3.5
 ptf ← phd + pha + pch + pre + pbf
 imprima ( “ Cliente: “, nome)
 imprima ( “ O valor devido é: R$ “, ptf)
 FIM
Exemplo 3Exemplo 3
Fluxograma:Fluxograma:
 
INICIO
nome, qhd, qha, qch, qre, qbf
pthd ← qhd * 2.5
ptha ← qha * 4.0
ptch ← qch * 4.5
ptre ← qre * 2.0
ptbf ← qbf * 3.5
ptf ← pthd + ptha + ptch + ptre + ptbf
1
Exemplo 3Exemplo 3
Fluxograma:Fluxograma:
 
 “ Cliente: “, nome
FIM
1
 “ O valor devido é: R$ “, ptf
Exemplo 3Exemplo 3
Testando o Algoritmo anteriorTestando o Algoritmo anterior
nome = “Roberto Costa”
qhd = 0
qha = 0
qch = 1
qre = 2
qbf = 1
pthd = 0 * 2.5
ptha = 0 * 4.0
ptch = 1 * 4.5
ptre = 2 * 2.0
ptbf = 1 * 3.5
Exemplo 3Exemplo 3
Testando o Algoritmo anteriorTestando o Algoritmo anterior
ptf = 0.0 + 0.0 + 4.5 + 4.0 + 3.5
Cliente : Roberto Costa
O valor devido é: R$ 12.00 
 
TreinamentoTreinamento
1) Elabore um programa que leia um comprimento em 
polegadas, calcule e exiba o comprimento em milímetros, 
considerando que 1 polegada equivale a 25,4 milímetros.
2) Elabore um programa que leia a massa de uma amostra de 
carbono, calcule e exiba o número de moles de carbono na 
amostra. Considere que o mol C é igual a 12 e a fórmula 
éno de moles = massa da amostra / 12
3) Elabore um programa que leia a força F aplicada sobre 
um corpo e a velocidade V do corpo, calcule e exiba a 
potência P. Considere P = F*V.
 
TreinamentoTreinamento
4) Ler uma determinada hora, seus minutos e segundos. 
Quantos segundos existem nessa hora, minuto e segundo 
lidos?
5) O preço de um produto ao consumidor é a soma do preço 
de custo mais as porcentagens de impostos e a do 
distribuidor. Ler o nome do produto, seu custo de fabrica e 
as taxas de impostos e do distribuidor. Exiba o nome do 
produto e o preço final ao consumidor.
6) Escreva o algoritmo que calcule a razão r de uma 
progressão aritmética de n termos, cujo primeiro termo é 
a1 e o último termo an, dada a equação:
r = (an - a1) / (n – 1)
 
HistóricoHistórico
 1972 – primeira versão de C criada por Dennis Ritchie 
nos laboratórios Bell.
 1960 – surgimento da linguagem ALGOL 60, que gerou a 
linguagem C.
 1967 – surgiu CPL (Combined Programming Language) 
nas universidades de Londres e Cambridge com o 
objetivo, segundo a equipe do projeto, de "trazer ALGOL 
à terra", ou "manter contato com a realidade de um 
computador real". 
 Ainda em 1967, em Cambridge, Martin Richards criou o 
BCPL (Basic CPL), uma simplificação do CPL, tentando 
manter apenas as "boas coisas do CPL".
 
HistóricoHistórico
 1970 – Ken Thompson, chefe da equipe que projetou o 
UNIX para o PDP11 do Bell Labs, implementou um 
compilador para uma versão mais reduzida do CPL. 
Batizou a linguagem de B. 
 Tanto BCPL quanto B mostravam-se muito limitadas, 
prestando-se apenas para certas classes de problemas.
 Por muitos anos (aproximadamente 10) a sintaxe 
(formato) tida como padrão da linguagem C foi aquela 
fornecida com o UNIX versão 5.0 do Bell Labs.
 Em 1985, ANSI (American National Standards Institute) 
estabeleceu um padrão oficial de C o chamado "C ANSI".
 
Características da Linguagem CCaracterísticas da Linguagem C
 Portalibilade
 Modularidade
 Recursos de baixo nível
 Geração de código eficiente
 Simplicidade
 Facilidade de uso
 Pode ser usada para os mais variados propósitos
 Indicada para escrever compiladores, editores de textos, 
bancos de dados, etc.
 
Etapas da Geração de um Etapas da Geração de um 
Programa em CPrograma em C
 Escrita do módulo fonte C através de um editor de texto: 
vi, emacs, pico, gedit, bloco de notas, etc.
 Os programas devem sempre ter a extensão .c
 Pré-processamento (fonte expandido)
 Compilador (gera objeto)
 Lincagem (gera executável)
Programa inicialPrograma inicial
#include <stdio.h>
int main ( void ) 
{
// saida do programa
printf ( “ Fiz meu primeiro programa em C\n “ );
 return 0;
}
Detalhes a serem observadosDetalhes a serem observados
● includes
● Comentários
● Inicio e fim do programa ( chaves )
● Fim das instruções ( ponto e virgula )
Definição de variáveisDefinição de variáveis
● Inteiro
int
● Flutuante
float
● Caracter
char
● Cadeia
char [ nn ]
Tipo inteiroTipo inteiro
#include <stdio.h>
int main ( void ) 
{
// definicao das variaveis
int x, soma_valores;
 return 0;
}
Tipo flutuanteTipo flutuante
#include <stdio.h>
int main ( void ) 
{
// definicao das variaveis
float x, soma_valores;
 return 0;
}
Tipo caracterTipo caracter
#include <stdio.h>
void main ( void ) 
{
// definicao das variaveis
char x, primeira_letra;
 return 0;
}
Tipo cadeiaTipo cadeia
#include <stdio.h>
int main ( void ) 
{
// definicao das variaveis
char x[10], nome_pessoa[30];
 return 0;
}
Atribuição de valores à variáveisAtribuição de valores à variáveis
● Algoritmo
variável ← valor
● Linguagem C 
variável = valor;
Exemplo inteiroExemplo inteiro
#include <stdio.h>
int main ( void )
{
// definicao das variaveis
int x;
// atribuicao dos dados
x = 569;
 return 0;
}
Exemplo flutuanteExemplo flutuante
#include <stdio.h>
int main ( void )
{
// definicao das variaveis
float x;
// atribuicao dos dados
x = 569.87;
 return 0;
}
Exemplo caracterExemplo caracter
#include <stdio.h>
int main ( void )
{
// definicao das variaveis
char x;
// atribuicao dos dados
x = ‘g’;
 return 0;
}
Exemplo cadeiaExemplo cadeia
● Diferentemente dos outros tipos, o tipo ca-deia não 
pode ter atribuição direta;
● Esta atribuição somente poderá ser realizada através 
de funções da biblioteca da lingua-gem C;
● Todas as vezes que esta biblioteca é usada, a seguinte 
declaração é necessária:
#include <string.h>
Funções de cadeiaFunções de cadeia
● A seguir algumas das funções que poderão ser usadas 
com o tipo cadeia:
– strcpy ( a, b )
 copia a cadeia b na cadeia a
– strcmp ( a, b )
 compara a cadeia a com a cadeia b ( se forem iguais o 
 resultado é igual a zero )
– strcat ( a, b )
 concatena a cadeia b com a cadeia a guardando o resultado na 
cadeia a
Exemplo 1Exemplo 1
#include <stdio.h>
#include <string.h>
int main ( void )
{
 // definicao das variaveis
char x[10], y[5], t[20];
// atribuicao dos dados 
strcpy ( x, “Maria” );
strcpy ( y, “sol” );
strcpy ( t, x );
strcat ( x, y );
 return 0;
}
Formato dos dadosFormato dos dados
● Tanto para saída quanto para a entrada de dados, é 
necessário definir-se a forma como os dados serão 
manuseados;
● Isto é feito utilizando-se a declaração de formato dos 
dados;
● Em linguagem C esta formatação deve estar inclusa 
nas declarações de entrada e de saída dos dados;
Códigos de formatosCódigos de formatos
● Para cada variável do programa é necessá-rio que se 
defina o formato correspondente ao tipo definido para 
ela;
● Este formato das variáveis é definido com os códigos 
de formato
● Tipo inteiro: %[n]d
n significa o tamanho do campo, ou seja, quantos dígitos tem o numero incluindo o sinal 
( positivo ou negativo )
o sinal [ ] significa que a informação é opcional
● Tipo flutuante: %[n.t]f
t significa o tamanho do campo decimal
n significa o tamanho do campo, ou seja, quantos dígitos tem o numero incluindo o ponto 
decimal , o campo t e o sinal do numero
● Tipo caracter: %c
● Tipo cadeia : %s
 
 Tabela de códigos de formato (%)
Código Formato
%c
%d
%i O mesmo que %d
%e
%E
%f Ponto flutuante decimal
%g
%G
Um caracter (char)
Um número inteiro decimal (int)
Número em notação científica com o 
"e"minúsculo
Número em notação científica com o 
"e"maiúsculo
Escolhe automaticamente o melhor entre %f 
e %e
Escolhe automaticamente o melhor entre %f 
e %E
 
 Tabela de códigos de formato (%)
Código Formato
%o Número octal
%s
%u
%x Hexadecimal com letras minúsculas
%X Hexadecimal com letras maiúsculas
%% Imprime um %
%p Ponteiro
String
Decimal "unsigned" (sem sinal)
Controle da impressãoControle da impressão
● Todas as linhas de saída necessitam do controle da 
impressão
● Isto é feito utilizando-se o caractere especial:
 \n
 Observar que isto só é válido para a impressão de dados 
e não para a entrada.
• Este caractere pode ser colocado:
– No inicio do comando de saída;
– No meio 
– No fim ;
• A colocação do caractere de controle de saída na 
instrução de impressão indica que a informação será 
impressa e em seguida o computador fica disponível 
para imprimir nova informação na linha seguinte à 
que acabou de ser impressa;
● A não colocação do caractere de controle de 
impressão na instrução de saída indica que a próxima 
informação será impressa na mesma linha daimpressão anterior;
● Numa instrução de saída, pode-se colocar quantos \n 
forem necessários;
● Quando colocado no inicio da instrução de saída, cada 
\n indica uma linha em branco, antes da impressão da 
informação;
● Quando colocado no fim da instrução de saída, cada \n 
indica uma linha em branco, após a impressão da 
informação;
● Quando colocado no meio da instrução de saída, [q] \n 
indica ( q – 1) linhas em branco, entre as informações 
impressas;
Saída de dados 1Saída de dados 1
● Saída simples
algoritmo:
imprima ( x )
em linguagem C:
printf ( “%d\n”, x );
Visualização da saídaVisualização da saída
● Suponha que na variável inteira x esteja armazenado o 
valor 569
● A saída terá a seguinte aparência:
569
Saída de dados 2Saída de dados 2
algoritmo:
x ← 569
imprima ( “x = “, x )
em linguagem C:
x = 569;
printf ( “x = %5d\n“, x );
Visualização da saídaVisualização da saída
A saída terá a seguinte aparência:
( a linha tracejada não aparece na saída, é só para guiá-la )
= = = = = = =
x = 5 6 9
Saída de dados 3Saída de dados 3
#include <stdio.h>
int main ( void ) 
{
// definicao das variaveis
int x, soma_valores;
// atribuicao dos dados
x = 569;
soma_valores = -5409;
// saida dos dados
printf ( “ valor de x\n “ );
printf ( “x = %5d\n”, x );
printf ( “valor da soma dos valores\n” );
printf ( “soma dos valores = %10d\n” , soma_valores );
 return 0;
}
Visualização da saídaVisualização da saída
A saída terá a seguinte aparência:
valor de x
x = 569 ( 2 espaços em branco antes do numero )
valor da soma dos valores
soma dos valores = -5409
 ( 5 espaços em branco antes do numero )
 
Outra alternativaOutra alternativa
// saida dos dados
printf ( “ valor de x\n\n “ );
printf ( “x = %5d\n”, x );
printf ( “\n\n\nvalor da soma dos valores\n” );
printf ( “\n\nsoma dos valores = %10d” , 
 soma_valores );
Visualização da saídaVisualização da saída
Os valores numéricos nos inícios das linhas não fazem parte da saída, são apenas 
para guiar o leitor:
 1) valor de x
 2) 
 3) x = 569 
 4)
 5)
 6) 
 7) valor da soma dos valores
 8)
 9)
10) soma dos valores = -5409
Outra alternativaOutra alternativa
// saida dos dados
printf ( “ valor de x\n\nx = %5d\n”, x );
printf ( “\n\n\nvalor da soma dos 
 valores\n\n\nsoma dos valores = %10d”, 
 soma_valores );
Tipo FlutuanteTipo Flutuante
● Saída simples
algoritmo:
x ← 569.26
imprima ( x )
em linguagem C:
x = 569.26;
printf ( “%f\n”, x );
Visualização da saídaVisualização da saída
● A saída terá a seguinte aparência:
569.260000
Outra alternativaOutra alternativa
printf ( “ valor de x = %10.4f\n”, x );
Visualização da saídaVisualização da saída
● A saída terá a seguinte aparência:
 = = = = = = = = = = ( linha de referencia ) 
valor de x = 5 6 9 . 2 6 0 0
Tipo caracterTipo caracter
● Saída simples
algoritmo:
x ← ‘g’
imprima ( x )
em linguagem C:
x = ‘g’;
printf ( “%c\n”, x );
Visualização da saídaVisualização da saída
● A saída terá a seguinte aparência:
g
Outra alternativaOutra alternativa
// definicao das variaveis
char letra_1, letra_2;
// atribuicao dos valores
letra_1 = ‘g’ ;
letra_2 = ‘h’ ;
// saida dos resultados
printf ( “ letra 1 = %c\n”, letra_1 );
printf ( “ letra 2 = %c\n”, letra_2 );
Visualização da saídaVisualização da saída
● A saída terá a seguinte aparência:
letra 1 = g
letra 2 = h
Outra alternativaOutra alternativa
A mesma saída poderia ser obtida através da seguinte 
declaração:
 printf ( “ letra 1 = %c\n letra 2 = %c\n”, 
 letra_1 , letra_2 );
Tipo cadeiaTipo cadeia
● Saída simples
algoritmo:
x ← “Unifei” 
imprima ( x )
em linguagem C:
strcpy ( x, “Unifei” );
printf ( “%s\n”, x );
Visualização da saídaVisualização da saída
● A saída terá a seguinte aparência:
Unifei
Outra alternativaOutra alternativa
#include <stdio.h>
#include <string.h>
int main ( void ) 
{
// definicao das variaveis
char nome_1[20], nome_2[5], nome_3[30];
// atribuicao dos dados
strcpy ( nome_1, “Universidade” );
strcpy ( nome_2, “EFEI” );
strcpy ( nome_3, nome_1 );
strcat ( nome_3, nome_2 );
 // saida dos dados
 printf ( “ nome 1 = %s\n”, nome_1 );
 printf ( “ nome 2 = %s\n”, nome_2 );
 printf ( “ nome 3 = %s\n”, nome_3 );
 return 0;
}
Visualização da saídaVisualização da saída
● A saída terá a seguinte aparência:
nome 1 = Universidade
nome 2 = EFEI
nome 3 = UniversidadeEFEI
 
Estrutura básica de um programa em C Estrutura básica de um programa em C 
 Observando o programa acima podemos perceber que 
existem duas formas de comenta-lo. O primeiro é 
utilizando duas barras “//” que comenta todo o código 
contido naquela linha e não há necessidade de fecha-la. O 
segundo é usando os caracteres /* e */ que comentam 
todas as instruções localizadas entre eles. Quando 
comentamos uma instrução estamos na realidade 
impedindo que elas sejam compiladas.
 
Constantes de barra invertidaConstantes de barra invertida
Constante Significado
\n Nova Linha
\” Aspas
 \’ Apóstofro
\0 Nulo (0 decimal)
 \\ Barra Invertida
 \t Tabulação Horizontal (tab)
\a Alerta (beep)
\b Retorno do Cursor
Entrada de DadosEntrada de Dados
● A entrada de dados pode ser feita de duas formas:
– via teclado do computador 
• Neste caso o usuário do programa digita os dados ne-cessários ao 
programa no momento em que este os solicita ( programa 
interativo ); - assunto desta aula
– via arquivo de dados
• Neste caso o usuário monta, através de editor de texto, um arquivo 
contendo os dados necessários ao programa, que os lê diretamente 
sem a intervenção do usuário; - assunto de uma próxima aula
Entrada de dados via tecladoEntrada de dados via teclado
● entrada simples
algoritmo:
leia ( x )
em linguagem C:
scanf ( “%d”, &x );
ConsideraçõesConsiderações
● Aqui não é usado o caractere especial \n como na 
saída de dados;
● Observar a utilização dos códigos de forma-tos;
● É obrigatório para todos os tipos, exceto ca-deia, a 
utilização do sinal & antes do nome da variável de 
entrada;
Execução da entrada de dadosExecução da entrada de dados
 scanf ( “%d”, &x );
Esta declaração indica ao programa que este deve 
esperar pela digitação pelo usuário, de um valor 
numérico inteiro que irá ser arma-zenado na variável 
x, logo após o usuário digitar o comando Enter do 
teclado, indican-do assim o envio da informação ao 
computador; 
Exemplo 1Exemplo 1
# include <stdio.h>
int main ( void ) 
{
// definicao das variaveis
int x;
// entrada dos dados
 printf ( “entre com um valor numerico\n” );
scanf ( “%d”, &x );
// saida dos resultados
printf ( “valor lido para x = %5d\n”, x );
 
 return 0;
}
ConsideraçõesConsiderações
● Observar a necessidade de uma instrução que indica a 
interação entre o usuário e o programa:
 printf ( “entre com um valor numerico\n” );
● Sem ela, o usuário não saberia o que fazer quando o 
programa estivesse sendo executado;
● O usuário é responsável pelo conhecimento antecipado 
do tipo da variável que está sendo inserida, caso 
contrário, a inserção de variáveis diferentes dos tipos 
definidos para elas, causam erros na execução do 
programa;
● Deve-se formatar de forma mais simples possível os dados 
de entrada, caso contrário, o usuário terá muito trabalho 
digitando os dados num formato complexo.
● Uma vez armazenado na memóriaa informação é tratada 
normalmente como já visto anteriormente, quando foi 
apresentado a atribuição de valores;
● Desta forma, a impressão da variável pode ser feita 
conforme a necessidade do programa, independente-mente 
da forma da entrada da mesma. 
● Observe no exemplo anterior, que a variável x tem o 
formato %d na entrada e %5d na saída.
Exemplo 2Exemplo 2
 int x, y;
 float a, b, c;
 char p;
 scanf ( “%d %f %d %c”, &y, &b, &x, &p );
Antes do %c, sempre
tem espaço em branco
ConsideraçõesConsiderações
1. Neste caso, são esperados 4 valores na entrada de 
dados;
2. Portanto, o usuário deve digitar os dados na ordem em 
que eles são solicitados;
3. Observar que as variáveis devem corresponder aos 
respectivos formatos;
4. Os dados podem ser digitados na mesma linha, 
separados por um ou mais espaços em branco, e 
após a digitação dos mesmos, digita-se o coman-do 
Enter do teclado;
5. Os dados podem ser também fornecidos, na ordem 
solicitada, digitando-se separadamente cada um 
deles, seguidos do comando Enter do teclado;
AlternativaAlternativa
 int x, y;
 float a, b, c;
 char p;
 scanf ( “%d”, &y );
 scanf ( “%f”, &b );
 scanf ( “%d”, &x );
 scanf ( “ %c”, &p ); 
Lembre-se de colocar
o espaço em branco
ConsideraçõesConsiderações
● Aqui são válidas todas as considerações do exemplo 
anterior, exceto a quarta, pois co-mo se tem 4 
comandos de scanf, obrigatoriamente tem-se 4 
entradas separadas.
● Ou seja, neste exemplo, obrigatoriamente a forma de 
entrada tem que ser aquela especificada na quinta 
consideração anterior.
Entrada de dados para CadeiaEntrada de dados para Cadeia
char titulo[30];
scanf ( “%s”, titulo );
Observar que neste caso, o nome da variável não é 
antecedido pelo símbolo & como nos casos anteriores.
todas as observações anteriores são válidas para este 
caso;
● Neste caso é esperado que o usuário digite uma cadeia 
( alfanumérica ) e após isto digite o comando Enter do 
teclado;
● Se tiver mais de uma variável no comando de entrada, os 
valores devem ser digitados da mesma forma que os 
casos anteriores, ou seja:
– Se na mesma linha, os dados deverão ser separados por um ou 
mais espaços em branco; no final do comando digitar Enter
– Se em linhas diferentes, cada dado é digitado na sua respectiva 
linha, e após o término da mesma, digitar o comando Enter
● Observar também que o código de formato %s na 
entrada de dados indica que o valor alfanumérico a ser 
digitado não tem espaços em branco.
● Portanto, no programa anterior são válidos os 
seguintes valores para a variável titulo:
Efei
Casa
Universidade
● No entanto, se for necessário o armazena-mento de um 
valor alfanumérico que tenha espaços em branco em 
seu conteúdo, como por exemplo:
 Universidade Federal de Itajuba
é necessário trocar-se o código de formato %s, na 
entrada de dados, pelo código %[^\n]
● na saída, independentemente da forma de entrada, uma 
cadeia só pode ser impressa, com o formato %s.
Exemplo 3Exemplo 3
char primeiro_nome[15], sobrenome[30];
printf ( “entre com seu primeiro nome\n”);
scanf ( “%s”, primeiro_nome );
printf ( “entre com seu sobrenome completo \n “ );
scanf ( “ %[^\n]”, sobrenome ); ( observar um espaço em branco 
 antes do sinal de % )
printf ( “nome completo: %s %s\n”, primeiro_nome,
 sobrenome );
Exemplo de dadosExemplo de dados
● Suponha que o usuário entre com os seguintes valores 
respectivamente para as variáveis primeiro_nome e nome:
RONALDO
BUENO MARCONDES PORTELA
● Neste caso, a impressão teria o seguinte aspecto:
nome completo: RONALDO BUENO MARCONDES PORTELA
Operações AritméticasOperações Aritméticas
● Adição +
● Subtração -
● Multiplicação *
● Divisão /
● Resto da divisão %
Exemplos de expressões Exemplos de expressões 
aritméticasaritméticas
int x, y;
float a, b, c;
x = 3 * 2 + 5;
y = x % 2;
a = 45.67;
b = 3.45 + a;
c = b / a – 10.567;
Hierarquia dos operadoresHierarquia dos operadores
Qual é o resultado da seguinte operação:
X = 5 + 2 * 3 ;
21 ou 11 ?
Hierarquia dos operadoresHierarquia dos operadores
● A hierarquia dos operadores define a ordem em que 
uma expressão é calculada;
● Define-se a seguinte tabela de prioridade para os 
operadores:
– Parênteses ( mais alta )
– Multiplicação e divisão
– Adição e subtração
● Operadores com mesma prioridade, a ordem de 
resolução é da esquerda para a direita.
● No exemplo anterior:
X = 5 + 2 * 3 ;
tem-se uma adição e uma multiplicação;
teste caso a multiplicação é realizada em primeiro lugar 
e em seguida, o resultado é adicionado ao valor 5
portanto, o resultado da expressão será:
2 * 3 = 6
 6 + 5 = 11
● Se for desejado trocar a prioridade de um operador, 
utiliza-se parênteses.
● Exemplo:
 X = ( 5 + 2 ) * 3 ;
● Neste caso, como o parênteses tem a maior 
prioridade, ele é resolvido na frente;
Desta forma, tem-se:
5 + 2 = 7
7 * 3 = 21
Exemplo 4Exemplo 4
● A expressão algébrica:
]3[*]3[
]3*[
b
ba
baa
a
ba
ba
+−
−
+−
−
+
−
• É representada em linguagem C como:
( (a – b) / (a + b) - (a * 3) ) / 
( (3 – a) + a * b / (a – b) – (3 + b) )
• ordem da execução dos operadores
( (a – b) / (a + b) - (a * 3) ) / 
( (3 – a) + a * b / (a – b) – (3 + b) )
B
1 2 3
A
4
5
6 9 7 8
10
11
12
Operação finalOperação final
 A / B
13
Expressões inteirasExpressões inteiras
● Constituídas de variáveis e constantes intei-ras
● Resultado é sempre inteiro
● Exemplo: a expressão:
5 * 2 / 3
Resulta no valor 3
● Já a expressão: 2 / 3 * 5
Resulta no valor 0
● E a expressão: 3 / 2 * 5
Resulta no valor 5
Expressões flutuantesExpressões flutuantes
● Constituídas de variáveis e constantes flutu-antes
● Resultado é sempre flutuante
● Exemplo: a expressão:
5.0 * 2.0 / 3.0
Resulta no valor 3.33
Expressões mistasExpressões mistas
● Constituídas de variáveis e constantes flutuantes e 
inteiras
● Resultado é sempre flutuante
● Exemplo: a expressão:
5.0 * 2 / 3.0
Resulta no valor 3.33
● Já a expressão: 2.0 / 5 * 3
Resulta no valor 1.20
● E a expressão: 5 / 2 * 3.0
Resulta no valor 6.0
CUIDADO!!!
Casting tiposCasting tipos
● Pode-se forçar temporariamente, a mudança do tipo 
de uma variável, através do casting do tipo, que 
consiste em se anteceder o nome da variável com o 
novo tipo, entre parênteses.
Exemplo 5Exemplo 5
int a, b;
float c;
c = 2.5;
a = 3;
b = (int)c * a;
Que resulta em 6 o valor armazenado em b
Exemplo 6Exemplo 6
int a, b;
float c;
c = 2.5;
a = 3;
b = (int)(c * a);
Que resulta em 7 o valor armazenado em b
Atribuições inteirasAtribuições inteiras
int a, b;
a = 34;
b = a * 2;
Em b estará armazenado o valor 68
Atribuição FlutuanteAtribuição Flutuante
float a, b;
a = 34.56;
b = a * 2;
Em b estará armazenado o valor : 69.12
Atribuição mistaAtribuição mista
int a, b;
float c, d;
a = 10;
c = 20.20;
b = 2 * c; // inteiro recebendo flutuante
d = a * 2; // flutuante recebendo inteiro
 
b tem valor 40
 d tem valor 20.0
Operadores EspeciaisOperadores Especiais
● Adição ++
● Subtração --
● Atribuição com operação +=
 -=
 /=
 *=
AdiçãoAdição 
● Sejam as operações:
 
 x = 35;
 x = x + 10;
 Como mostrado anteriormente, na variávelx é 
armazenado o valor atual dela ( 35 ) adicionado à 
constante 10, o que resulta no valor 45.
● Uma outra forma de se escrever as mesmas instruções 
é utilizando-se o operador especial +=, da seguinte 
forma:
 x = 35;
 x += 10;
 
 Ou seja, a expressão do lado direito ao sinal de igual é 
operada com a variável do lado esquerdo e o resultado 
é armazenado nesta mesma variável.
● Isto é também válido para os outros opera-dores, como 
mostrado no exemplo:
 a = 23;
 a *= 2;
 significa que na variável a vai estar arma-zenado o 
valor 46, pois corresponde à operação:
a = a * 2
Exemplo 7Exemplo 7
int a, b;
a = 10;
b = 2;
a += b + 3;
printf ( “ a = %d\n”, a );
resultadoresultado
Neste caso, a saída seria:
a = 15
Exemplo 8Exemplo 8
int a, b;
a = 10;
b = 2;
a += a* (b + 3);
printf ( “ a = %d\n”, a );
resultadoresultado
Neste caso, a saída seria:
a = 60
● Para as operações de adição e subtração, existem mais 
dois operadores especiais. 
● São eles: ++ e -- respectivamente.
● Sejam por exemplo, as seguintes operações:
 x = 30;
 x = x + 1;
 como mostrado anteriormente, a ultima ope-ração pode 
ser também escrita como:
 x += 1;
 ou ainda:
 x++;
o que resulta no valor 31 armazenado na variável x , 
em todos os exemplos.
● O operador ++ é utilizado quando o conteúdo de 
uma variável é adicionado de uma unidade, e da 
mesma forma, o operador -- é utilizado quando o 
conteúdo de uma variável é subtraído de uma 
unidade.
● Sejam por exemplo, as seguintes operações:
 x = 30;
 x = x - 1;
 como mostrado anteriormente, a ultima ope-ração pode 
ser também escrita como:
 x -= 1;
 ou ainda:
 x--;
o que resulta no valor 29 armazenado na variável x, em 
todos os exemplos.
Exemplo 1Exemplo 1
➢ Dados 4 números, calcule a média aritmética deles.
Programa em C:Programa em C:
 ##includeinclude <stdio.h> <stdio.h>
 int mainint main()()
 {{
 // declaração das variáveis// declaração das variáveis
 float n1, n2, n3, n4, soma, media;
 // entrada de dados// entrada de dados
printf ( “entre com o valor de n1 = “ );
scanf ( “%f”,&n1 );
printf ( “entre com o valor de n2 = “ );
scanf ( “%f”,&n2 );
Exemplo 1Exemplo 1
Programa em C:Programa em C:
 // entrada de dados// entrada de dados
printf ( “entre com o valor de n3 = “ );
scanf ( “%f”,&n3 );
printf ( “entre com o valor de n4 = “ );
scanf ( “%f”,&n4 );
 // Somando todos os valores// Somando todos os valores
soma = n1 + n2 + n3 + n4;
 // Calculando a média// Calculando a média
media = soma / 4;
 // saída de dados// saída de dados
 printf ( “A média dos 4 números é: %.2f “, media ); 
 }}
Exemplo 2Exemplo 2
➢ Elabore um programa que leia um valor de temperatura 
em graus Celsius, calcule e exiba a temperatura 
equivalente em graus Kelvin, sabendo que K = C + 273.
Programa em C:Programa em C:
 ##includeinclude <stdio.h> <stdio.h>
 int mainint main()()
 {{
 // declaração das variáveis// declaração das variáveis
 float K, C;
 // entrada de dados// entrada de dados
printf ( “entre com a temperatura em Celsius = “ );
scanf ( “%f”,&C );
Exemplo 2Exemplo 2
Programa em C:Programa em C:
 // Calculando a temperatura em Kelvin// Calculando a temperatura em Kelvin
K = C + 273;
 // saída de dados// saída de dados
 printf ( “A temperatura em Kelvin é: %.2f “, K ); 
 }}
Exemplo 3Exemplo 3
➢ Ler o nome de um cliente de fast food e a quantidade de 
cada item do menu que ele vai pedir. Exiba o nome do 
cliente e o total da compra.
MENU
Hot dog R$ 2,50
Hambúrguer R$ 4,00
Cheeseburguer R$ 4,50
Refrigerante R$ 2,00
Batatas fritas R$ 3,50
Exemplo 3Exemplo 3
Programa em C:Programa em C:
 ##includeinclude <stdio.h> <stdio.h>
 int mainint main()()
 {{
 // declaração das variáveis// declaração das variáveis
 char nome[30];
 int qhd, qha, qch, qre, qbf;
 float pthd, ptha, ptch, ptre, ptbf, ptf;
 // entrada de dados// entrada de dados
 printf ( “entre com o nome do cliente: “ )
 scanf ( “ %[^\n]”, nome)
Exemplo 3Exemplo 3
 printfprintf ( “entre com a quantidade de hot dog: “ ) ( “entre com a quantidade de hot dog: “ )
 scanf ( “%d”,&qhd );
 printfprintf ( “entre com a quantidade de hambúrguer: “ ) ( “entre com a quantidade de hambúrguer: “ )
 scanf ( “%d”,&qha );
 printfprintf ( “entre com a quantidade de cheeseburguer: “ )
 scanf ( “%d”,&qch );
 printfprintf ( “entre com a quantidade de refrigerante: “ )
 scanf ( “%d”,&qre );
 printfprintf ( “entre com a quantidade de batatas fritas: “ )
 scanf ( “%d”,&qbf );
Exemplo 3Exemplo 3
 
 // Calculando o total a pagar// Calculando o total a pagar
 pthd = qhd * 2.5;
 ptha = qha * 4.0;
 ptch = qch * 4.5;
 ptre = qre * 2.0;
 ptbf = qbf * 3.5;
 ptf = qhd + qha + qch + qre + qbf;
 // saída de dados// saída de dados
 printf ( “ Cliente: %s\n“, nome);
 printf ( “ O valor devido é: R$ %.2f\n“, ptf);
 }
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	Slide 35
	Slide 36
	Slide 37
	Slide 38
	Slide 39
	Slide 40
	Slide 41
	Slide 42
	Slide 43
	Slide 44
	Slide 45
	Slide 46
	Slide 47
	Slide 48
	Slide 49
	Slide 50
	Slide 51
	Slide 52
	Slide 53
	Slide 54
	Slide 55
	Slide 56
	Slide 57
	Slide 58
	Slide 59
	Slide 60
	Slide 61
	Slide 62
	Slide 63
	Slide 64
	Slide 65
	Slide 66
	Slide 67
	Slide 68
	Slide 69
	Slide 70
	Slide 71
	Slide 72
	Slide 73
	Slide 74
	Slide 75
	Slide 76
	Slide 77
	Slide 78
	Slide 79
	Slide 80
	Slide 81
	Slide 82
	Slide 83
	Slide 84
	Slide 85
	Slide 86
	Slide 87
	Slide 88
	Slide 89
	Slide 90
	Slide 91
	Slide 92
	Slide 93
	Slide 94
	Slide 95
	Slide 96
	Slide 97
	Slide 98
	Slide 99
	Slide 100
	Slide 101
	Slide 102
	Slide 103
	Slide 104
	Slide 105
	Slide 106
	Slide 107
	Slide 108
	Slide 109
	Slide 110
	Slide 111
	Slide 112
	Slide 113
	Slide 114
	Slide 115
	Slide 116
	Slide 117
	Slide 118
	Slide 119
	Slide 120
	Slide 121
	Slide 122
	Slide 123
	Slide 124
	Slide 125
	Slide 126
	Slide 127
	Slide 128
	Slide 129
	Slide 130
	Slide 131
	Slide 132
	Slide 133
	Slide 134
	Slide 135
	Slide 136
	Slide 137
	Slide 138
	Slide 139

Outros materiais