Buscar

Aula03 SequencialExpressoes 2011 introdução c++

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 37 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 37 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 37 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

INF01202INF01202INF01202INF01202
Algoritmos e ProgramaçãoAlgoritmos e ProgramaçãoAlgoritmos e ProgramaçãoAlgoritmos e Programação
Prof. Anderson Maciel
amaciel@inf.ufrgs.br 
Aula 3 – Estrutura de um programa em C sequencial
LinguagemLinguagem de de ProgramaProgramaçãoçãoLinguagemLinguagem de de ProgramaProgramaçãoção
fornece conjunto de convenções e regras que • fornece conjunto de convenções e regras que 
possibilitam instruir o computador na 
execução de tarefas;execução de tarefas;
• lê programa escrito na linguagem específica 
(li d ã )(linguagem de programação);
• verifica sintaxe: se correta, traduz para p
linguagem de máquina;
• executa programa em linguagem de máquina p g m m g g m m q
(execução).
2
Definição de Linguagem de Definição de Linguagem de g gg g
ProgramaçãoProgramação
• Sintática: Uma linguagem de programação é uma 
notação utilizada pelo programador para especificar p p p p
ações a serem executadas por um computador : 
¾construções corretas do programa, de ç p g
acordo com a linguagem.
• Semântica: Uma linguagem de programação g g p g ç
compreende um conjunto de conceitos que um 
programador usa na resolução dos problemas 
t propostos: 
¾recursos disponíveis, compatíveis com o 
di d liparadigma da linguagem.
3
Sintaxe da linguagem CSintaxe da linguagem CSintaxe da linguagem CSintaxe da linguagem C
• Componentes reconhecidos pela linguagem C• Componentes reconhecidos pela linguagem C
(sintaxe da linguagem):
• tipos – propriedades dos dados;tipos propriedades dos dados;
• declarações – partes do programa, podendo dar 
significado a um identificador, alocar memória, 
 ú l 
g
definir conteúdo inicial e definir funções;
• funções – ações executadas pelo programa;
• expressões – define e altera valores e chama 
funções de I/O;
á i ili ã • comentários – auxilia a compreensão, sem 
tradução para o executável.
4
Sintaxe: Livre ou Sensível ao Sintaxe: Livre ou Sensível ao 
ContextoContexto
C - linguagem sensível ao contexto:
maiúsculas e minúsculas são diferentesf
no programa ( nada a ver com dados!!!)
¾ palavras reservadas sempre em minúsculas!
¾ variáveis: maiúsculas e minúsculas; m m ;
¾ prática adotada:
™ programa: todo em minúsculas; p g
™ exceção(adotada): nome de constantes (define)
5
Elementos léxicos do C Elementos léxicos do C --
caracterescaracteres
• Letras: maiúsculas e minúsculas
• Dígitos: 0 a 9
• Sublinhado: _
• Outros símbolos especiais:• Outros símbolos especiais:
# /* “ . , ; .. ( ) { } : = == ^, ( ) { }
6
ComentárioComentárioComentárioComentário
Permitem a inclusão de observações que visam• Permitem a inclusão de observações, que visam 
auxiliar a compreensão do que está sendo 
t d lexecutado pelo programa.
• Podem adotar 2 formas:
• // identifica início de comentário, reserva até o fim da linha.
• /* ..... */ delimita início e fim de comentário, 
podendo utilizar mais de uma linha entre eles.
• SEMPRE incluir comentário na 1ª linha contendo• SEMPRE incluir comentário na 1ª linha, contendo 
descrição do programa!!!!!
7
IdentificadoresIdentificadoresIdentificadoresIdentificadores
9 Nomes que servem para identificar fazer referência 9 Nomes que servem para identificar, fazer referência 
e definir o conteúdo de variáveis, funções e outros 
objetos definidos pelo usuário.objetos def n dos pelo usuár o.
9 Sintaxe de identificador: 
1º caractere: letra ou ´ ´ (sublinhado) (usar letra)– 1º caractere: letra ou _ (sublinhado) (usar letra)
– 2º caractere em diante: letras, dígitos e/ou ´_´
8
Palavras Reservadas Palavras Reservadas 
Identificadores associados aos
Palavras Reservadas Palavras Reservadas 
• Identificadores associados aos 
comandos que compõem esta linguagem 
de programaçãode programação. 
• As 32 palavras reservadas padrão são:
• auto break case char const continue 
default do double else enum extern float 
for goto if int long register return short 
signed sizeof static struct switch signed sizeof static struct switch 
typedef union unsigned void volatile while
Não existe na 
programacao estruturada 9
Tipos de dadosTipos de dadospp
D i úd h d á d • Determina o conteúdo e tamanho de área de 
memória reservada para o dado.
N C s ti s bási s d d d s sã• No C, os tipos básicos de dados são:
Tipo Tamanho Valores Válidos
char 1 byte Caracteres do Código ASCII 
int 2 bytes -2 e31 a 2 e32
float 4 bytes -2 e63 a 2 e64
double 8 bytes ...
Estrutura básica de um programa CEstrutura básica de um programa CEstrutura básica de um programa CEstrutura básica de um programa C
/* Nome e objetivo do programa */
/* diretivas para o pré-processador – bibliotecas*/
#include <biblioteca> Declarações
(opcional)/* declaração de constantes e variáveis globais */
# define CONSTANTES
/* declaração de funções*/
(opcional)
tipo função (parâmetros)
{
}
/* função obrigatória que compõem o programa principal */
int main() /* int opcional, indica retorno */
{ Programa
/* declaração de variáveis locais da função main */
/* comandos da função main */
return 0; // retorno normal da função main
Programa 
principal
}
11
Diretivas para o processador Diretivas para o processador 
Bibli tBibli t-- BibliotecaBiblioteca
• Bibliotecas contêm funções pré-definidas, utilizadas nos 
programas para ações específicas.
• A biblioteca desejada é inserida pelo pré-processador a partir 
da diretiva #include.
• Exemplos de bibliotecas disponíveis no C:Exemplos de bibliotecas disponíveis no C:
Funções de entrada e saída#include <stdio h>
Funções matemáticas#include <math.h>
Funções padrão#include <stdlib.h>
Funções de entrada e saída#include <stdio.h>
Funções de texto#include <string.h>
Funções do sistema#include <system.h>
Declaração de variáveisDeclaração de variáveisDeclaração de variáveisDeclaração de variáveis
Sintaxe:
<tipo> <nome da variavel>;<tipo> <nome_da_variavel>;
9 declaração das variáveis / conteúdos usadas no programa;ç p g
9 nomes: letra inicial + letras, dígitos ou _ (até 32) –
minúsculas!
9 tipos principais: 9 tipos principais: 
int /inteiro
float /decimal, precisão simples
double /decimal precisão dupladouble /decimal, precisão dupla
char / 1 único caractere
9 exemplos:
int n;int n;
int quantidade_valores;
float x, y, somavalores;
char sexo;
13
Entrada Entrada formatada de dados: formatada de dados: 
função função scanfscanffunção função scanfscanf
Sintaxe:
scanf ("formatos", &var1, &var2,...);
Exemplos:
int i, j; %d 1 número inteiro, j;
float x;
char c;
%i mesmo que %d
%f 1 número float
%lf 1 número double;
scanf("%d", &i);
scanf("%d %f", &j, &x);
%c 1 caractere char
( , j, );
scanf("%c", &c);
14
Saída Saída formatada de dados: formatada de dados: 
f ã f ã i tfi tffunção função printfprintf%c char
%d inteiro
%i inteiroSintaxe:
Exemplos:
%f float ou double com
notação comum 
%e float ou double com
notação científica
printf ("formatos", var1, var2,...);
Exemplos:
int i, j;
float x; \ Função
notação científica
%g dependendo do
conteúdo, usa %f ou %e
char c;
printf(“Resultados: i=%d \n j=%d 
\n“,i,j);
\ Função
\b BackSpace
\n New Line (mudança de 
Li h )\n ,i,j); 
printf("%d", i);
printf("%d, %f", j, x);
i tf("% " )
Linha)
\t Tabulação Horizontal
\v Tabulação Vertical
printf("%c", c); \\ imprime o próprio 
caractere \
\' imprime o caractere 'p
\" imprime o caractere "
\? imprime o caractere ?
Comando (operador) de Comando (operador) de pp
atribuiçãoatribuiçãoSintaxe:
id tifi d ã
• Atribui o valor da direita à variável da esquerda
identificador = expressão;
• Atribui o valor da direita à variável da esquerda
• O valor pode ser uma constante,uma variável ou 
uma expressãouma expressão
• Exemplos
x = 4; // significa que a variável X recebe conteúdo 4; g f q
y = x + 2;
y = y + 4;
valor = 2.5; //casa decimal indicada pelo ponto
úsexo = 'F’; /*atribuição de 1 único caractere para uma 
variável char é entre apóstrofos*/
16
Expressões Lógicas e Expressões Lógicas e Expressões Lógicas e Expressões Lógicas e 
AritméticasAritméticas
Operadores
17
Operadores MatemáticosOperadores MatemáticosOperadores MatemáticosOperadores Matemáticos
ComentárioExemploOperador
Subtr i d xx y
Soma x e yx + y+
Multiplica x e yx * y*
Subtrai y de xx – y-
Resto da divisão de x por y ( qux % y%
Divide x por y (se operandos inteiros, executa 
divisão inteira)
x / y/
Incrementa em 1 o valor de xx++++
Resto da divisão de x por y (requer
operandos inteiros)
x % y%
Decrementa em 1 o valor de xx----
18
Operadores de Operadores de Atribuição Atribuição pp
CombinadaCombinada
á
Atribui o valor de y a xx = y=
ComentárioExemploOperador
Equivale a x = x – yx -= y-=
Equivale a x = x + yx += y +=
Equivale a x = x / yx /= y /=
Equivale a x = x * yx *= y *=
Equivale a x = x % yx %= y%=
q yy
19
Funções Matemáticas Funções Matemáticas çç
(#(#include <include <mathmath.h>).h>)
Arredonda o número real para cima; ceil(3.2) é 4ceil(x)ceil
ComentárioExemploFunção
e elevado à potencia xexp(x)exp
Cosseno de x (x em radianos)cos(x)cos
L itm n tu l d xl (x)l
Arredonda o número deal para baixo; floor(3.2) é 3floor(x)floor
Valor absoluto de xfabs(x)fabs
Calcula x elevado à potência ypow(x, y)pow
Logaritmo decimal de xlog10(x)log10
Logaritmo natural de xlog(x)log
Raiz quadrada de xsqrt(x)sqrt
Seno de xsin(x)sin
Calcula x elevado à potência ypow(x, y)pow
Tangente de xtan(x)tan
20
Modeladores Modeladores -- castscasts
• Altera o tipo retornado por operações parciais
Sintaxe: (tipo) expressão
Altera o tipo retornado por operações parciais
de uma expressão.
• Funcionamento:
...
float num_real; // variável real
int x=1,y=2,z=1; // valores inteiros – inicializados na ,y ,
declaração
/*expressão com operadores inteiros,todos 
resultados parciais em inteiro: */p
num_real= x/2+ y/2 + z/2; 
int int int
0 + 1 + 0 ↔ 1
int int
int int
int
int int
21
intint
float
Modeladores em Modeladores em 
expressões aritméticasexpressões aritméticas
/*testa cast (modeladores) nos operandos*/
#include <stdio.h>
#include <stdlib.h>
int main()m ()
{
float num_real; // variável real
int x=1,y=2,z=1; // valores inteiros – inicializados na declaração
system ("color f3"); // modifiquei cores do ambiente de execução system ( color f3 ); // modifiquei cores do ambiente de execução 
//expressão com operadores inteiros,todos resultados parciais em inteiro:
num_real=x/2 + y/2 + z/2; 
printf("Caso 1: %f\n",num_real); // float sem formatação: 6 casa decimais
//operadores inteiros 1o resultado parcial em real//operadores inteiros, 1o resultado parcial em real
num_real=(float)x/2 + y/2 + z/2; //operadores inteiros, 1 resultado parcial 
em real
printf("Caso 2: %f\n",num_real); 
//operadores inteiros todos resultados parciais em real//operadores inteiros,todos resultados parciais em real
num_real=(float)x/2 + (float)y/2 + (float)z/2;
printf("Caso 3: %f\n",num_real); 
//expressão com operadores inteiros e reais, todos resultados parciais em 
real;real;
num_real = x / 2.0 + y / 2.0 + z / 2.0; // inserção de espaços : + 
legibilidade
printf("Caso 4: %f\n",num_real); 
return 0; 
22
return 0; 
}
Operadores lógicos ou booleanosOperadores lógicos ou booleanos
FV&& FV||Significado Operador Tipo
FFF
FVV
FVF
VVV
“ou”|| binário
“e”&& binário
FVF
FV!
negação! unário
ou|| binário
VF
Em C, as expressões lógicas retornam um valor:
• 0, se falso; 
23
, ;
• 1 ou outro valor que não zero, se verdadeiro. 
Operadores RelacionaisOperadores RelacionaisOperadores RelacionaisOperadores Relacionais
ComentárioExemploOperador
O conteúdo de x é diferente do de yx != y !=
O conteúdo de x é igual ao de yx == y==
O úd d é l d 
O conteúdo de x é menor ou igual ao de yx <= y<=
O conteúdo de x é diferente do de yx ! y !
O conteúdo de x é menor que o de yx < y <
O conteúdo de x é maior ou igual ao de yx >= y >=
O conteúdo de x é maior que o de yx > y>
Em C, as expressões relacionais retornam um valor:
• 0, se falso; 
• 1 ou outro valor que não zero, se verdadeiro. 
24
q ,
Operadores RelacionaisOperadores RelacionaisOperadores RelacionaisOperadores Relacionais
A é maior que 10?
(a > 10)(a > 10)
X é negativo?
( )(x < 0)
y é diferente de 10?
(y != 10)
nota é igual a 5?nota é igual a 5?
(nota == 5)
25
A expressão lógica em CA expressão lógica em C
Sintaxe:
<operando> <operador booleano> <operando
A expressão lógica em CA expressão lógica em C
p p p
ou
<operando> <operador relacional> <operando>
¾ Retorna um valor lógico:
– falso: zero; 
– verdadeiro: qualquer valor diferente de zero.
¾ Operandos podem ser expressões aritméticos ou lógicas, 
incluindo operadores aritméticos, relacionais e lógicos.
¾ Exemplos:
(a > b ) || ( c < d )
valor > 10 
!(a+c<b)
(a == b)
(a==b) && ( a>=c)(a==b) && ( a>=c)
(a!=b)
!((a>=b) || ( a>=c) 26
Expressões lógicas ou relacionaisExpressões lógicas ou relacionaisExpressões lógicas ou relacionaisExpressões lógicas ou relacionais
a) codigo entre 1 e 100 (valores limites considerados):
(codigo > 0 && codigo < 101)
(0 < codigo < 101) 
b) contador maior ou igual a maximo ou valor igual a 
procurado:procurado:
( contador >= maximo || valor == procurado )
c) valor igual a 1 ou 2 ou entre 5 e 7 (inclusive):
(valor == 1 || valor == 2 || (valor >=5 && valor <=7))
27
Precedência Precedência de operadores em Cde operadores em Cpp
Na expressão: (x != 10 || y > 1 && y < 10)
P l dê i d d i i ã ordem operador
1o ! funções
Pela precedência dos operadores, primeiro serão 
resolvidos “>” e “ <“:
y > 1 e y < 10
O próximo operador a ser considerado, pela 
dê á “! “2o * / % 
3o + -
precedência será “!=“
x != 10
Restam os operadores “&&” e “||”, como “&&” é 
o de maior prioridade, será o próximo: 
4o < > <= >= 
5o == != 
p p
y < 1 && y < 10
Finalmente o “||” será resolvido.
A versão a seguir com parênteses mostra a 5 ! 
6o &&
7o ||
g p
ordem de execução da expressão:
( (x != 10) || ( ( y > 1) && (y < 10) ) )
RECOMENDAÇÃO ê ã ó 7o || RECOMENDAÇÃO: usar parênteses não só para 
alterar a precedência de operadores, como 
também para tornar mais claras as 
expressõesexpressões.
Seja a seguinte expressãoSeja a seguinte expressãoSeja a seguinte expressãoSeja a seguinte expressão
(x != 10 || y > 1 && y < 10)
if (x != 10 || y > 1 && y < 10)
(x != 10 || y > 1 && y < 10)
Pela precedência dos operadores, primeiro serão resolvidos “>” e “ <“
y > 1 e y < 10y 1 e y 10
O próximo operador a ser considerado, pela precedência será “!=“
x != 10
Restam os operadores “&&” e “| |”, como “&&” é o de maior prioridade, será o próximo: 
y < 1 && y < 10
Finalmente o “||” será resolvido.
A versão a seguir com parênteses mostra a ordem de execução da expressão:
( (x != 10) || ( ( y > 1) && (y < 10) ) )
RECOMENDAÇÃO: usar parênteses não só para alterar a precedência deRECOMENDAÇÃO: usar parênteses não só para alterar a precedência de 
operadores, como também para tornar mais claras as expressões.
29
ExercíciosExercíciosExercíciosExercícios
1) Faça um algoritmo que: 
– leia um valor inteiro;
– calcule o menor número de cédulas necessárias
para completar este valor. Lembre de que as 
cédulas correntes no real são 100, 50, 20, 10,5, 2 e 
1 (incluindo aqui também a moeda)1 (incluindo aqui também a moeda).
9 Ob ã li i d d t 9 Obs: não vamos analisar ainda o caso da parte 
fracionária. Podemos implementar o mesmo algorimo
para ele tratando-o como um inteiro para ele tratando o como um inteiro. 
Análise e Definição do ProblemaAnálise e Definição do Problema
Especificação do Problema: Enunciado
Análise e Definição do ProblemaAnálise e Definição do Problema
Dada uma quantia (inteira) em reais, 
calcular e mostrar o mínimo de notas 
(R$ 100, 50, 20, 10, 5 , 2 ou 1) 
que totalizem este valor. 
Objetivo: calcular notas equivalentes a 
valor
Entradas: valor inteiro
Saída: notas correspondentes ao valor
Tela da ExecuçãoTela da ExecuçãoTela da ExecuçãoTela da Execução
AlgoritmoAlgoritmo
algoritmo calculanotas;
/* calcula o nro mínimo de notas equivalentes a valor
entradas: valor (inteiro)entradas: valor (inteiro)
saídas: n100, n50, n20, n10, n5, n2 e n1 ( notas ) */
1. início
2. ler valor
3 v = valor //copia para outra variável para preservar valor lido3. v = valor //copia para outra variável, para preservar valor lido
4. n100 = v / 100 //se for menor, n100 fica 0
5. v = v % 100 // recebe resto da div inteira por 100
6. n50 = v / 50 //se for menor, n50 fica 0
 % 7. v = v % 50 // recebe resto da div inteira por 50
8. n20 = v / 20 //se for menor, n20 fica 0
9. v = v % 20 // recebe resto da div inteira por 20
10 n10 = v / 10 //se for menor, n10 fica 010. n10 v / 10 //se for menor, n10 fica 0
11. v = v % 10 // recebe resto da div inteira por 10
12. n5 = v / 5 //se for menor, n5 fica 0
13. v = v % 5 // recebe resto da div inteira por 5
14 n2 = v / 2 //se for menor n2 fica 014. n2 = v / 2 //se for menor, n2 fica 0
15. n1 = v % 2 // recebe resto da div inteira por 2: já está pronto
16. ...... //informa notas calculadas...
17. fim
ResoluçãoResolução do do problemaproblema
/* C lcul qu ntid d d c d cédul ( u m d ) c sp nd nt um l /* Calcula quantidade de cada cédula (ou moeda) correspondente a um valor 
inteiro
Entrada: valor inteiro
Saida: quandidade de cedulas/moedas de 100, 50, 20, 10, 5, 2 e 1 reais */ 
#i l d tdi h#include <stdio.h>
#include <stdlib.h>
int main( )
{
i l // l i i lid d ál lint valor, v; //valores inteiros lido e usado nos cálculos
int n100, n50,n20,n10,n5,n2,n1;
printf(“Informe valor inteiro:“);
scanf("%d", &valor);
//
( )
v = valor; // copia, para preservar valor lido
n100 = v/100; // RESULTADO DA DIVISÃO INTEIRA POR 100
v = v%100; // RESTO DA DIVISÃO INTEIRA POR 100
n50 = v/50;;
v = v%50;
n20 = v/20;
v = v%20;
n10 = v/10;n10 v/10;
v = v%10;
n5 = v/5;
v = v % 5;
n2 = v/2; // RESULTADO DA DIVISÃO INTEIRA POR 2n2 v/2; // RESULTADO DA DIVISÃO INTEIRA POR 2
n1 = v%2; // RESTO DA DIVISÃO INTEIRA POR 2
Resolução do problemaResolução do problema
// ti ã// ... continuação
//quebra 2 linhas e insere caracteres ,00 depois do valor:
printf("\n\nValor lido: R$%d,00\n",valor); // insere vírgula zero zero
printf("notas de 100: %d\n" n100);printf( notas de 100: %d\n ,n100);
printf("notas de 50: %d\n",n50);
printf("notas de 20: %d\n",n20);
printf("notas de 10: %d\n" n10);printf( notas de 10: %d\n ,n10);
printf("notas de 5: %d\n",n5);
printf("notas de 2: %d\n",n2);
printf("notas de 1: %d\n" n1);printf( notas de 1: %d\n ,n1);
system("pause>>null"); // segura tela, mas NÃO imprime mensagem!! 
return 0;
} } 
Cuidado (pegaCuidado (pega--ratão)ratão)
A lógica utilizada no problema anterior valeria se tivéssemos apenas 
notas de R$ 100, 40 e 1?
NÃO!!! P l j i i R$ 120 00NÃO!!! Por exemplo, veja o que ocorre se quisemos retirar R$ 120,00
Obs Não é trivial mostrar que a estratégia adotada no problema Obs. Não é trivial mostrar que a estratégia adotada no problema 
anterior realmente funciona para as cédulas que realmente temos...
Exercício para a próxima aula!Exercício para a próxima aula!Exercício para a próxima aula!Exercício para a próxima aula!
3) Faça um algoritmo que: 
– leia um valor real, com casas decimais;
– tranforme este valor real em dois valores inteiros correspondentes, 
respectivamente, à parte inteira e à parte real do valor lido (se o 
l lid f 123 98 t i t d b 123 t f 98)valor lido for 123,98, parte_int deve receber 123 e part_frac, 98);
– calcule o menor número de notas e moedas necessárias para
completar este valor. Lembre-se de que as notas correntes no real 
são 100 50 20 10 5 2 e 1 (incluindo aqui também a moeda) e as são 100,50,20,10,5, 2 e 1 (incluindo aqui também a moeda) e as 
moedas 50, 25, 10, 5 e 1 centavos.
– implemente em C um programa que corresponda ao algoritmo

Outros materiais