• Nenhum resultado encontrado

CCO 016 / COM 110 Fundamentos de Programação

N/A
N/A
Protected

Academic year: 2021

Share "CCO 016 / COM 110 Fundamentos de Programação"

Copied!
82
0
0

Texto

(1)

CCO 016 / COM 110

Fundamentos de

Fundamentos de

Programação

Programação

Universidade Federal de Itajubá

Prof. Roberto Affonso da Costa Junior

(2)

AULA 06

AULA 06

– Operações matemáticas

– Comandos Sequenciais

– Comandos Sequenciais na Linguagem de

Programação C

(3)

Operações Aritméticas

Operaçõ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)

(4)

Estrutura Sequenciais

Estrutura 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(A,B)

B ← 5

imprima(A, B)

A ← 10

B ← 20

imprima(A,B)

B ← 5

imprima(A, B)

(5)

Estrutura Sequenciais

Estrutura 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.

(6)

Estrutura Sequenciais

Estrutura 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(A,B)

5. B ← 5

6. imprima(A,B)

7. fim

1. início

2. A ← 10

3. B ← 20

4. imprima(A,B)

5. B ← 5

6. imprima(A,B)

7. fim

(7)

Estrutura Sequenciais

Estrutura 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 FIMEsquema Genérico de Algoritmos em Fluxograma INICIO FIM Leia Imprima Atribuição

(8)

Exemplo 1

Exemplo 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 “ )

(9)

Exemplo 1

Exemplo 1

Algoritmo: Algoritmo: soma ← n1 + n2 + n3 + n4 media ← soma / 4

(10)

Exemplo 1

Exemplo 1

Dados 4 números, calcule a média aritmética deles.

Portugol:

Portugol: Início

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: “)

(11)

Exemplo 1

Exemplo 1

Portugol: Portugol: soma ← n1 + n2 + n3 + n4 media ← soma / 4

imprima ( “ A média dos 4 números é: “, media )

(12)

Exemplo 1

Exemplo 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

(13)

Exemplo 1

Exemplo 1

Testando o Algoritmo anterior

Testando 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

(14)

Exemplo 2

Exemplo 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

(15)

Exemplo 2

Exemplo 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)

(16)

Exemplo 2

Exemplo 2

Fluxograma: Fluxograma: INICIO C K ← C + 273 ‘ Kelvin = ’, K FIM

(17)

Exemplo 2

Exemplo 2

Testando o Algoritmo anterior

Testando o Algoritmo anterior

C = 10.0

k ← 10.0 * 25.4

(18)

Exemplo 3

Exemplo 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

(19)

Exemplo 3

Exemplo 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 )

(20)

Exemplo 3

Exemplo 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 ← qhd + qha + qch + qre + qbf imprima ( “ Cliente: “, nome)

(21)

Exemplo 3

Exemplo 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 )

(22)

Exemplo 3

Exemplo 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

(23)

Exemplo 3

Exemplo 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

(24)

Exemplo 3

Exemplo 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

(25)

Exemplo 3

Exemplo 3

Fluxograma: Fluxograma: “ Cliente: “, nome FIM 1 “ O valor devido é: R$ “, ptf

(26)

Exemplo 3

Exemplo 3

Testando o Algoritmo anterior

Testando 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

(27)

Exemplo 3

Exemplo 3

Testando o Algoritmo anterior

Testando o Algoritmo anterior ptf = 0.0 + 0.0 + 4.5 + 4.0 + 3.5

Cliente : Roberto Costa

(28)

Operações Aritméticas em C

Operações Aritméticas em C

Adição

+

Subtração

-●

Multiplicação

*

Divisão

/

Resto da divisão

%

(29)

Operações Aritméticas em C

Operaçõ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)

(30)

Exemplos de expressões

Exemplos de expressões

aritméticas

aritmé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;

(31)

Hierarquia dos operadores

Hierarquia dos operadores

Qual é o resultado da seguinte operação:

X = 5 + 2 * 3 ;

(32)

Hierarquia dos operadores

Hierarquia 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.

(33)

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

(34)

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

(35)

Exemplo 4

Exemplo 4

A expressão algébrica:

]

3

[

*

]

3

[

]

3

*

[

b

b

a

b

a

a

a

b

a

b

a

(36)

• É representada em linguagem C como:

( (a – b) / (a + b) - (a * 3) ) /

(37)

• 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

(38)

Operação final

Operação final

A / B

(39)

Expressões inteiras

Expressões inteiras

Constituídas de variáveis e constantes inteiras

Resultado é sempre inteiro

Exemplo: a expressão:

5 * 2 / 3

(40)

Já a expressão:

2 / 3 * 5

Resulta no valor

0

E a expressão:

3 / 2 * 5

(41)

Expressões flutuantes

Expressões flutuantes

Constituídas de variáveis e constantes flutuantes

Resultado é sempre flutuante

Exemplo: a expressão:

5.0 * 2.0 / 3.0

(42)

Expressões mistas

Expressões mistas

Constituídas de variáveis e constantes flutuantes e

inteiras

Resultado é sempre flutuante

Exemplo: a expressão:

5.0 * 2 / 3.0

(43)

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

(44)

Casting tipos

Casting 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.

(45)

Exemplo 5

Exemplo 5

int a, b;

float c;

c = 2.5;

a = 3;

b = (int)c * a;

(46)

Exemplo 6

Exemplo 6

int a, b;

float c;

c = 2.5;

a = 3;

b = (int)(c * a);

(47)

Atribuições inteiras

Atribuições inteiras

int a, b;

a = 34;

b = a * 2;

(48)

Atribuição Flutuante

Atribuição Flutuante

float a, b;

a = 34.56;

b = a * 2;

(49)

Atribuição mista

Atribuiçã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

(50)

Operações Especiais

Operações Especiais

(51)

Exemplo 12

Exemplo 12

inteiro

a, b

a ← 10

imprima

( “a = “ , a )

a ← a + 2

imprima

( “a = “ , a )

(52)

Saída visualizada

Saída visualizada

a = 10

a = 12

(53)

Observações

Observaçõ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

(54)

Operadores Especiais

Operadores Especiais

Adição

++

Subtração

--●

Atribuição com operação

+=

-=

/=

(55)

Adição

Adiçã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.

(56)

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.

(57)

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:

(58)

Exemplo 7

Exemplo 7

int a, b;

a = 10;

b = 2;

a += b + 3;

printf ( “ a = %d\n”, a );

(59)

resultado

resultado

Neste caso, a saída seria:

(60)

Exemplo 8

Exemplo 8

int a, b;

a = 10;

b = 2;

a += a* (b + 3);

printf ( “ a = %d\n”, a );

(61)

resultado

resultado

Neste caso, a saída seria:

(62)

Para as operações de adição e subtração, existem

mais dois operadores especiais.

(63)

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

(64)

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.

(65)

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)

66

URI 1001

URI 1001

Fazer o problema 1001 do URI

https://www.urionlinejudge.com.br/judge/pt/problems/

view/1001

https://www.urionlinejudge.com.br/judge/pt/problems/

view/1001

(67)

67

URI 1001

URI 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)

68

URI 1002

URI 1002

Fazer o problema 1002 do URI

https://www.urionlinejudge.com.br/judge/pt/problems/

view/1002

https://www.urionlinejudge.com.br/judge/pt/problems/

view/1002

(69)

69

URI 1002

URI 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)

70

Tabela ASCII

Tabela ASCII

(71)

71

Exercícios

Exercí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);

.

(72)

Exemplo 1

Exemplo 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 );

(73)

Exemplo 1

Exemplo 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 );

(74)

Exemplo 2

Exemplo 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 );

(75)

Exemplo 2

Exemplo 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 );

(76)

Exemplo 3

Exemplo 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

(77)

Exemplo 3

Exemplo 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)

(78)

Exemplo 3

Exemplo 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 );

(79)

Exemplo 3

Exemplo 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);

(80)

Para estudar

Para estudar

Vá no site:

Vá no site:

http://www.urionlinejudge.com.br/

http://www.urionlinejudge.com.br/

Resolva os problemas 1002 a 1010 na

Resolva os problemas 1002 a 1010 na

forma de algoritmo.

forma de algoritmo.

(81)

Treinamento

Treinamento

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.

(82)

Treinamento

Treinamento

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 é

a

1

e o último termo a

n

, dada a equação:

r = (a

n

- a

1

) / (n – 1)

Referências

Documentos relacionados

Desta forma, o objetivo principal deste trabalho é a proposição de uma técnica ultra-sônica que combina as técnicas de pulso-eco e transmissão, através de um modelo

As maiores correlações encontradas com os fluxos de CO 2 pelo TLB (velocidade média do vento) e pela câmara (oxigênio e CO 2 dissolvido na água), independente se os resultados

Um resumo do método simplificado para descrição do comportamento estrutural de ligações semi-rígidas, desenvolvido com base no método dos componentes (EC3- parte 1.8,

Quanto aos principais resultados da tese e em relação ao avanço do conhecimento prévio sobre planícies de maré e na região estudada, o estudo das planícies de maré analisadas

O algoritmo genético (AG) é utilizado como uma ferramenta de otimização para se obter um conjunto de parâmetros independentes que levem a um conjunto de parâmetros

É importante salientar que outros métodos, tais como: o Método dos Elementos Finitos (MEF) e o Método das Diferenças Finitas (MDF), embora bastante empregados em diversas áreas

Fabos (1985) destacou a importância tanto da participação da comunidade científica, com seus conhecimentos técnicos e científicos, quanto do público, com seus anseios e

As técnicas de reforço à flexão de vigas de concreto armado mais utilizadas são: protensão externa, reforço por colagem de materiais (chapas de aço ou polímeros reforçados