Sunteți pe pagina 1din 18

ECT2303 – Linguagem de Programação

Aula 19 þ Exercícios

Einstein Santos

UFRN

10 de outubro de 2018

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de outubro de 2018 1 / 18


Plano

1 Exercício 1

2 Exercício 2

3 Exercício 3

4 Exercício 4

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de outubro de 2018 2 / 18


Plano

1 Exercício 1

2 Exercício 2

3 Exercício 3

4 Exercício 4

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de outubro de 2018 3 / 18


Exercícios
Exercício 1 – Enunciado

1. Faça um programa em C++ que receba as idades de n pessoas e calcule:

1 média aritmética;
2 mediana; e
3 desvio padrão.
v
n
X
u n
uX
Xi u
u (Xi − X )2
i=1
t i=1
ma(X ) = dp(X ) =
n n

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de outubro de 2018 4 / 18


Exercícios
Exercício 1 – Solução

1 double mediaAritmetica ( int V [] , int n )


2 {
3 double soma =0.0;
4
5 for ( int i =0; i < n ; i ++)
6 soma += V [ i ];
7
8 return ( soma / n ) ;
9 }

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de outubro de 2018 5 / 18


Exercícios
Exercício 1 – Solução (cont.)

1 double mediana ( int V [] , int n )


2 {
3 ordenaVetor (V , n ) ;
4
5 if ( n %2==1)
6 return V [ n /2];
7 else
8 return ( V [ n /2 - 1] + V [ n /2]) /2.0;
9 }

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de outubro de 2018 6 / 18


Exercícios
Exercício 1 – Solução (cont.)

1 void ordenaVetor ( int V [] , int n )


2 {
3 int aux ;
4
5 for ( int i =0; i <n -1; i ++)
6 for ( int j = i +1; j < n ; j ++)
7 if ( V [ i ] > V [ j ]) {
8 aux = V [ i ];
9 V [ i ] = V [ j ];
10 V [ j ] = aux ;
11 }
12 }

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de outubro de 2018 7 / 18


Exercícios
Exercício 1 – Solução (cont.)

1 double desvioPadrao ( int V [] , int n )


2 {
3 double soma = 0.0 , ma = mediaAritmetica (V , n ) ;
4
5 for ( int i =0; i < n ; i ++)
6 soma += pow (( V [ i ] - ma ) ,2) ;
7
8 return sqrt ( soma / n ) ;
9 }

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de outubro de 2018 8 / 18


Plano

1 Exercício 1

2 Exercício 2

3 Exercício 3

4 Exercício 4

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de outubro de 2018 9 / 18


Exercícios
Exercício 2 – Enunciado

2. Escreva uma função em C++ que verifique se uma entrada for-


necida é um número inteiro.

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de outubro de 2018 10 / 18


Exercícios
Exercício 2 – Solução

1 bool ehDigito ( char c )


2 {
3 if (c >= ’0 ’ && c <= ’9 ’)
4 return true ;
5 else
6 return false ;
7 }
8
9 bool ve ri f i ca S e I n t e i r o ( char V [])
10 {
11 int i =1;
12 if (!( ehDigito ( V [0]) || V [0]== ’+ ’ || V [0]== ’ - ’) )
13 return false ;
14
15 while ( V [ i ]) {
16 if (! ehDigito ( V [ i ]) )
17 return false ;
18 i ++;
19 }
20 return true ;
21 }

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de outubro de 2018 11 / 18


Plano

1 Exercício 1

2 Exercício 2

3 Exercício 3

4 Exercício 4

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de outubro de 2018 12 / 18


Exercícios
Exercício 3 – Enunciado

3. Escreva em C++ uma função recursiva para converter um nú-


mero decimal em binário.

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de outubro de 2018 13 / 18


Exercícios
Exercício 3 – Solução

1 void decBin ( int n )


2 {
3 if ( n /2==0) {
4 cout <<n %2;
5 } else {
6 decBin ( n /2) ;
7 cout <<n %2;
8 }
9 }

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de outubro de 2018 14 / 18


Plano

1 Exercício 1

2 Exercício 2

3 Exercício 3

4 Exercício 4

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de outubro de 2018 15 / 18


Exercícios
Exercício 4 – Enunciado

4. Faça em C++ uma função recursiva que levante a quantidade


de divisores de um número.

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de outubro de 2018 16 / 18


Exercícios
Exercício 4 – Solução

1 int f ( int a , int b )


2 {
3 if ( b ==0)
4 return 0;
5 else if ( a % b !=0)
6 f (a ,b -1) ;
7 else
8 return 1 + f (a ,b -1) ;
9 }

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de outubro de 2018 17 / 18


Exercícios

Fim da aula 19

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de outubro de 2018 18 / 18

S-ar putea să vă placă și