67
Programação científica C++ Slide 3 NIELSEN CASTELO DAMASCENO

Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

  • Upload
    vandang

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Programação científica C++

Slide 3

NIELSEN CASTELO DAMASCENO

Page 2: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Exercícios

Escreva um programa para armazenar o valor 20 em uma variável X e o valor 5 em uma variável Y. A seguir, armazenar a soma do valor de X com o de Y em uma variável Z. Escrever (na tela) o valor armazenado em X, em Y e em Z.

Page 3: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Exercícios

Escreva um programa para ler dois valores digitado pelo usuário. Após a leitura deve-se calcular a soma dos valores lidos e armazená-la em uma variável.

Page 4: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Exercícios

Escreva um programa para ler um valor. Se o valor lido for igual a 6, escrever a mensagem 'Valor lido é o 6', caso contrário escrever a mensagem 'Valor lido não é o 6'.

Page 5: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Contadores

Page 6: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Acumuladores

Page 7: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Operadores aritméticos

Page 8: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Códigos barra invertida

Page 9: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Algoritmo Somar

Leia (A,B);Soma A+B;Imprima(Soma);

Page 10: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Algoritmo Soma parLeia (n);s 0;para i de 1 até n repita

t 2 * i;s s + t;

Fim paraImprima(s);

n=2 {2+4=6}n=3 {2+4+6=12}n=6 {2+4+6+8+10+12=42}

Page 11: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Algoritmo Soma par

Page 12: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Algoritmo mostra impar

Leia (n);s 0;para i de 1 até n repita

t 2 * i - 1;Fim paraImprima(t);

Page 13: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Algoritmo mostra impar

Page 14: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Algoritmo Raiz quadrada• Método aproximado para calcular a raiz

quadrada de um número.• O processo é iterativo proposto inicialmente

por Newton-Raphson.

• = + , = 1,

• Faça a análise no caderno para A=2

Page 15: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Algoritmo Raiz quadradaLeia (a);x 1;para i de 1 até 5 repita

x (x + a/x)/2;Fim paraImprima(x);

Page 16: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Algoritmo Raiz quadrada

Page 17: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Atividade 1Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo usuário (exe.: de 2 a 10). O valor aproximado de cada raiz quadrada deve ser obtido através de 5 iterações.

Page 18: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Algoritmo quadradoLeia(A);Enquanto A > 0

t A * A;imprima(A,t);Leia(A);

Fim enquanto

Page 19: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Algoritmo quadrado

Page 20: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Algoritmo quadrado 2

Leia(A);repita

t A * A;imprima(A,t);Leia(A);

Até que > 0 ;

Page 21: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Algoritmo quadrado 2

Page 22: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Algoritmo maiorLeia(A,B);Se A > B então

max A;Se não

max B;Imprima(“Maior”, max);

Page 23: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Algoritmo maior 2Leia(A,B);Se A=B então imprima (“Valores iguais”);Se não Se A > B então

max A;Se não

max B;Imprima(“Maior”, max);

Page 24: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Exercício

Page 25: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Atividade 2Determine o ano em que a população brasileira supera ou iguala a população americana.Entrada: N(inteiro)

Br, USA (real)Saída: N (inteiro)

Page 26: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Atividade 2Leia (N,Br,USA);Repita

Br Br + 0.04 x Br;USA USA + 0.02 * USA;N N + 1;

Até que Br USA;Imprima(“Ano” , N);

Page 27: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Exercícios de revisão

Escreva um programa para armazenar o valor 4 em uma variável A e o valor 3 em uma variável B. A seguir, armazenar a soma de A com B em uma variável C e a subtração de A com B em uma variável D. Escrever o valor de A, B, C e D e também escrever a mensagem 'Fim do programa'.

Page 28: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Exercícios de revisãoConsidere a seguinte expressão do algoritmo = + 4 . Considere que A=3.2; B=4.4; C= -6. Escreva um programa em C++ e o algoritmo que apresente o valor de S.

Page 29: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Exercícios de revisão

Escreva um programa para ler um valor. Se o valor lido for igual a 6, escrever a mensagem “Valor lido é o 6”, caso contrário, escrever a mensagem “Valor lido não é o 6”.

Page 30: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Exercícios de revisão

Escreva um algoritmo e o programa em C++ para escrever 10 vezes a palavra FACCAT na tela.

Page 31: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Exercícios de revisão

Escreva um programa para ler a nota de 5 alunos e escrever a nota mais alta, ou seja, a maior nota entre as 5notas lidas.

Page 32: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Comandos de Seleção

Permite a seleção de uma ou várias instruções (bloco) aserem executado quando uma determinada expressãocondicional for verdadeira.

Page 33: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Comando de Seleção SimplesEm Portugol...

se condição entãoseqüência de comandos

fimse

Page 34: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Comando de Seleção SimplesNa Linguagem C++...

if (expressão) comando;

O comando associado ao if é executado apenas se a expressão for verdadeira (diferente de zero) .

Comando:- Simples- Bloco- Nada

Page 35: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Exercício

Faça um programa que mostre o valor digitado pelo usuário, caso esse valor seja diferente de zero, uma mensagem de “número válido” deve aparecer.

Page 36: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Exercício

Faça um programa que mostre o valor digitado pelo usuário, caso essevalor seja diferente de zero, uma mensagem de “número válido”deve aparecer.

Início

Usuário digita num

Num != 0 “número válido”

Fim

Sim

Não

Page 37: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Exercício

int numero;

cout << “Digite um numero diferente de zero”;

cin >> numero;

if (numero != 0)

cout << “Numero valido!”;

Page 38: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Expressão Condicional

Qualquer expressão válida pode ser usada para controlar um comando if em C++. Não há obrigatoriedade de usar operadores lógicos ou relacionais.

int numero;

cout << “Digite num diferente de zero: ”;

cin >> numero;

if ( numero )

cout << “Numero valido!”;

O 2º comando coutserá executado se numero for diferente de zero. Poderia usar tambémif (numero !=0)

Page 39: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Comando de Seleção Composta

Dois comandos ou blocos alternativos dependem de uma mesma condição.

Se uma condição for verdadeira, o primeiro comando ou bloco é executado. Caso contrário, o segundo é executado.

Page 40: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Comando de Seleção CompostaEm Portugol...

se condição entãoseqüência de comandos

senãoseqüência de comandos

fimse

Page 41: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Comando de Seleção CompostaNa Linguagem C++...

if (expressão) Comando1;

else Comando2;

O comando associado ao if é executado se a expressãofor verdadeira (diferente de zero) caso contrário, o comando associado ao else é executado

Comando:- Simples- Bloco- Nada

Page 42: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Exercício

Faça um programa que mostre o valor digitado pelo usuário, caso esse valorseja diferente de zero, uma mensagem de “número válido” deveaparecer. Senão uma mensagem de “número inválido” deve aparecer.

Page 43: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

CodeBlocksInício

Usuário digita num

Num != 0 “número válido”

Fim

Sim

Não

“número inválido”

Page 44: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Comando de Seleção CompostaEm C++...

int numero;

cout << “Digite um numero diferente de zero”;

cin >> numero;

if (numero != 0)

cout << “Numero valido!”;

else

cout << “Numero invalido!;

Page 45: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Seleção Encadeada (Aninhada)

Várias seleções agrupadas

Um grande conjunto de combinações de situações deve ser satisfeito

Page 46: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Seleção AninhadaSe Senão Se – Em Portugol

1. se (condição1) então

2. Comando1;

3. senão

4. se (condição2) então

5. Comando2;

6. senão

7. se (condição3) então

8. Comando3;

9. senão

10. se (condição4) então

11. Comando4;

12. fimse;

13. fimse;

14. fimse;

15. fimse;

Page 47: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Seleção aninhadaif else if– Na Linguagem C++

if (expressão1) comando1;

else {if (expressão2)

comando2;else {

if (expressão3) comando3;

elsecomando4;

}}

Page 48: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Seleção Encadeada HomogêneaEm Portugol...

1. se (condição1) então

2. Comando1;

3. fimse;

4. se (condição2) então

5. Comando2;

6. fimse;

7. se (condição3) então

8. Comando3;

9. fimse;

10. se (condição4) então

11. Comando4;

12. fimse;

Caso as condições 1, 2, 3 e 4 não possam ocorrer ao mesmo tempo, testes desnecessários são realizados.

Page 49: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Exercício

Faça um programa que de acordo com a média do aluno mostre se ele foi “aprovado”, se está em “prova final” ou se foi “reprovado”.

Page 50: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Início

Digitar a média do aluno

média>= 7 “aprovado”

Fim

Sim

Não

“reprovado”

média>= 3 “prova final”Sim

Não

Page 51: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Seleção de Múltipla Escolha

Simplificação da seleção se-senão-se

Em alguns situações, existem situações mutuamente exclusivas, isto é, se uma situação for executada, as demais não serão.

Em Portugol:

1. escolha X

2. caso v1: C1;

3. caso v2: C2;

4. caso v3: C3;

5. caso v4: C4;

6. casocontrário: C5;

7. fimescolha;

Page 52: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Seleção de Múltipla EscolhaNa Linguagem C++...

switch (expressão) {case constante1:

seqüência de comandos 1;break;

case constante2:seqüência de comandos 2;break;

.

.

.default:

seqüência de comandos 4;}

Executada se expressão for igual ao valor constante2

Executada se expressão não for igual a nenhum caso anterior

Valor Constante. Não pode ser variável ou expressão.

Page 53: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Seleção múltipla switCh

Page 54: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Seleção múltipla switch

Page 55: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Seleção múltipla switch

Page 56: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Instrução break e continue

Page 57: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Operadores relacionais

Page 58: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Exemplos de comportamentos

Page 59: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Exemplos de comportamentos

Page 60: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Exemplos de comportamentos

Page 61: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Exemplos de comportamentosSuponha que, em algum ponto do programa, desejamos assegurar que queremos uma pessoa do sexo feminino e que idade seja maior ou igual a 65. Duas condições sejam verdadeiras antes de escolher determinado caminho de execução.

Page 62: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Exercício

Uma antiga tribo aborígene só consegue diferenciar o 0,1 e 2. Qualquernúmero diferente desses é desconhecido. Faça um programa que simule oraciocínio dessa tribo.

Page 63: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Seleção de Múltipla EscolhaNa Linguagem C++...

int numero;cin >> numero;switch (numero) {

case 0:cout << “zero”;break;

case 1:cout << “um”;break;

case 2:cout << “dois”;break;

default:cout << “numero maior que dois ou menor que zero”;

}

Page 64: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Seleção de Múltipla EscolhaNa Linguagem C++...

Se a cláusula break não for colocada, após a execução dos comandos de um caso válido, os comandos dos casos subseqüentes também serão executados até que seja executado um comando break ou switch.

Page 65: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Dica de programação

O switch só aceita como argumento somente um número. Caso, você queira usar um intervalo tem que usar os comandos if-else.

Page 66: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Operador Ternário ? :

O operador ? : pode substituir comandos if-else na forma geral:if (expressão1) expressão2;else expressão3;

Quando expressão2 e expressão3 forem expressões simples (nunca outro comando em C++)

Exp1 ? Exp2 : Exp3;

A expressão Exp1 é avaliada. Se for verdadeira, Exp2 é avaliada e se tornará o valor da expressão ? como um todo. Caso contrário, Exp3.

Page 67: Programação científica C++ - Portal NCDD+/slide3.pdf · Escreva um programa em C++ que apresenta uma tabela de raízes quadradas dos números inteiros no intervalo digitado pelo

Operador Ternário ? :

int x, y;cout << “Entre com um valor para x: ”;cin >> x;y = x > 10 ? 100 : 200;

Equivale a:if ( x > 10 ) y = 100;else y = 200;