cco 016 / com 110 - rcosta62br.unifei.edu.br · seno sen(x) cosseno cos(x) ... qual o valor de b e...
Post on 05-Dec-2018
220 Views
Preview:
TRANSCRIPT
CCO 016 / COM 110Fundamentos de Fundamentos de
ProgramaçãoProgramação
Universidade Federal de Itajubá
Prof. Roberto Affonso da Costa Junior
AULA 06AULA 06
– Operações Matemáticas– Comandos Sequenciais– Comandos Sequenciais na Linguagem de
Programação C
Operações AritméticasOperações Aritméticas
● Aritméticas mais comuns
● Adição +
● Subtração -
● Divisão /
● Multiplicação *
● Resto da divisão resto(x,y)
● Raiz quadrada raiz(x)
● Exponenciação pot(x,n)
● Seno sen(x)
● Cosseno cos(x)
● Tangente tan(x)
● Logaritmo log(x)
● Logaritmo Neperiano ln(x)
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 ← 10B ← 20
imprima(A,B)B ← 5
imprima(A, B)
A ← 10B ← 20
imprima(A,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ício2. A ← 103. B ← 204. imprima(A,B)5. B ← 56. imprima(A,B)7. fim
1. início2. A ← 103. B ← 204. imprima(A,B)5. B ← 56. 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:Início
real n1, n2, n3, n4, soma, mediaimprima ( “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 + n4Media ← soma / 4
‘ Media = ’, Media
FIM
Exemplo 1Exemplo 1
Testando o Algoritmo anteriorTestando o Algoritmo anterior
n1 = 10.0n2 = 5.0n3 = 7.0n4 = 8.0
soma ← 10.0 + 5.0 + 7.0 + 8.0media ← 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 PortugolPortugol
Início real K, C
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 3Algoritmo: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 3Algoritmo: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 ← qhd + qha + qch + qre + qbf imprima ( “ Cliente: “, nome) imprima ( “ O valor devido é: R$“, ptf)
Exemplo 3Exemplo 3 Portugol:Portugol: InícioInício 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 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 ← qhd + qha + qch + qre + qbf 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.5ptha ← qha * 4.0ptch ← qch * 4.5ptre ← qre * 2.0ptbf ← 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 anteriornome = “Roberto Costa”qhd = 0qha = 0qch = 1qre = 2qbf = 1
pthd = 0 * 2.5ptha = 0 * 4.0ptch = 1 * 4.5ptre = 2 * 2.0ptbf = 1 * 3.5
Exemplo 3Exemplo 3
Testando o Algoritmo anteriorTestando o Algoritmo anteriorptf = 0.0 + 0.0 + 4.5 + 4.0 + 3.5
Cliente : Roberto Costa
O valor devido é: R$ 12.00
Operações Aritméticas em COperações Aritméticas em C
● Adição +
● Subtração -
● Multiplicação *
● Divisão /
● Resto da divisão %● Modulo inteiro |x| abs(x) tem que usar a stdlib.h
Operações Aritméticas em COperações Aritméticas em C
● Usando a math.h● Seno – sin(x)● Cosseno – cos(x)● Tangente – tan(x)
x em radiano● Logaritmo – log10(x)● Logaritmo Neperiano – log(x)● Raiz quadrada – sqrt(x)● Exponenciação – pow(b,e)
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*[
bbaba
a
ababa
• É 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 inteiras
● 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 flutuantes
● 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 5int a, b;
float c;
c = 2.5;
a = 3;
b = (int)c * a;
Que resulta em 6 o valor armazenado em b
Exemplo 6Exemplo 6int 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 mistaint a, b;float c, d;
a = 10;c = 20.20;
b = 2 * c; // inteiro recebendo flutuanted = a * 2; // flutuante recebendo inteiro
b tem valor 40 d tem valor 20.0
Operações EspeciaisOperações Especiais
variável ← variável (operador) valor
Exemplo 12Exemplo 12
inteiro a, b
a ← 10
imprima ( “a = “ , a )
a ← a + 2
imprima ( “a = “ , a )
Saída visualizadaSaída visualizada
a = 10
a = 12
ObservaçõesObservações
• É necessário neste caso um valor inicial para a variável
• É chamada de acumulador
• Quando o valor de adição é igual a hum, é chamada somador
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ável x é 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 operadores, como mostrado no exemplo:
a = 23;
a *= 2;
significa que na variável a vai estar armazenado 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 operaçã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 operaçã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.
66
URI 1001URI 1001
• Fazer o problema 1001 do URI
https://www.urionlinejudge.com.br/judge/pt/problems/view/1001https://www.urionlinejudge.com.br/judge/pt/problems/view/1001
67
URI 1001URI 1001
• Resolvendo o problema 1001 do URI
#include <bits/stdc++.h>using namespace std;int main() {
int A, B, X;scanf ("%d %d", &A, &B);X = A + B;printf("X = %d\n", X);return 0;
}
68
URI 1002URI 1002
• Fazer o problema 1002 do URI
https://www.urionlinejudge.com.br/judge/pt/problems/view/1002https://www.urionlinejudge.com.br/judge/pt/problems/view/1002
69
URI 1002URI 1002
• Resolvendo o problema 1002 do URI
#include <bits/stdc++.h>using namespace std;int main() {
double area, raio, PI = 3.14159;scanf ("%lf", &raio);area = PI * pow(raio, 2);printf("A=%.4lf\n", area);return 0;
}
70
Kattis FilipKattis Filip
• Fazer o problema Filip do Kattis
https://open.kattis.com/problems/filiphttps://open.kattis.com/problems/filip
71
Kattis FilipKattis Filip
• Resolvendo o problema Filip do Kattis
#include <stdio.h>#include <stdlib.h>int main(){ int A, B, C, D, E, F; int G, X, Y, N, M, R; scanf("%d %d", &X, &Y); A = X % 10; X /= 10;
72
Kattis FilipKattis Filip
B = X % 10;C = X / 10;
E = Y % 10; Y /= 10; F = Y % 10; G = Y / 10; N = 100 * A + 10 * B + C; M = 100 * E + 10 * F + G; R = (M + N + abs(M - N)) / 2; printf("%d\n", R); return 0;}
73
Tabela ASCIITabela ASCII
• Só funciona devido a tabela ASCII
74
ExercíciosExercícios
• https://www.urionlinejudge.com.br/judge/en/login
– URI 1003 a 1021, 1930, 1959, 1963
• Sugestão para o 1021, trate o número real como dois inteiros, basta usar o scanf("%d.%d", &n, &m);.
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 valoressoma = n1 + n2 + n3 + n4;
// Calculando a média// Calculando a médiamedia = 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 3Programa 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); }
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)
top related