Buscar

2019827_235110_ALG1+-+Aula+04+-+Caracteres,+Operadores+e+Expressões (1)


Prévia do material em texto

1 
Aula 4: 
Caracteres, Operadores e Expressões 
Prof. Luiz Olmes 
Disciplina: Algoritmos e Programação 1 
Nas aulas anteriores... 
O que vimos? Objetivos de hoje: 
2 
 Algoritmos. 
 Linguagem C: 
 Variáveis e tipos. 
 Funções de entrada / saída. 
 Tipo char 
 Operadores: 
 Atribuição. 
 Aritméticos. 
 Funções matemáticas. 
 Valores aleatórios. 
Tipos primitivos: o tipo char 
3 
 O tipo char é utilizado para representar caracteres. 
 
 Este tipo armazena um único caractere por vez. 
 
 A máscara de leitura / escrita para variáveis char é %c. 
 
 Quando um caractere é exibido na tela, ele é representado por um 
símbolo gráfico associado a seu valor numérico. 
 
 Os símbolos gráficos e seus valores associados estão definidos na 
tabela ASCII (American Standard Code for Information 
Interchange). 
 
Tipos primitivos: o tipo char 
4 
 Visualizando os símbolos da Tabela ASCII: 
1. #include <stdio.h> 
2. 
3. int main() 
4. { 
5. int i; 
6. 
7. for(i = 0; i < 256; i++) 
8. printf(‚%d = %c\n‛, i, i); 
9. 
10. return 0; 
11.} 
Tipos primitivos: o tipo char 
5 
 Visualizando os símbolos da Tabela ASCII: 
1. #include <stdio.h> 
2. 
3. int main() 
4. { 
5. int i; 
6. 
7. for(i = 0; i < 256; i++) 
8. printf(‚%d = %c\n‛, i, i); 
9. 
10. return 0; 
11.} 
... 
130 = é 
... 
198 = ã 
... 
Tipos primitivos: o tipo char 
6 
 Exemplo: lendo e imprimindo uma variável char. 
 
1. // Lendo um simbolo e imprimindo o que foi lido 
2. #include <stdio.h> 
3. 
4. int main() 
5. { 
6. char letra; 
7. 
8. printf(‚Digite uma letra: ‛); 
9. scanf(‚%c‛, &letra); 
10. printf(‚Letra digitada: %c\n‛, letra); 
11. 
12. return 0; 
13.} 
Tipos primitivos: o tipo char 
7 
 Variáveis do tipo char são inicializadas dento de aspas simples: 
 
1. #include <stdio.h> 
2. 
3. int main() 
4. { 
5. char letra = ‘A’; 
6. 
7. printf(‚Letra: %c\n‛, letra); 
8. 
9. return 0; 
10.} 
Operador de atribuição 
8 
 A atribuição é uma das operações mais utilizadas em qualquer 
linguagem de programação estruturada. 
 
 Ela é responsável por armazenar um valor em uma variável. 
 
 Expressa em linguagem C pelo símbolo = (igual). 
Operador de atribuição 
9 
 Sintaxe: 
 
 
 Expressão: qualquer combinação aritmética de valores, variáveis, 
constantes ou funções cuja resposta tenha o mesmo tipo da 
variável definida por nome_da_variável. 
 
nome_da_variável = expressão; 
Operador de atribuição 
10 
 Sintaxe: 
 
 
 Expressão: qualquer combinação aritmética de valores, variáveis, 
constantes ou funções cuja resposta tenha o mesmo tipo da 
variável definida por nome_da_variável. 
 
 O operador de atribuição calcula o resultado da expressão que está 
à direita do operador = e armazena esse valor na variável à 
esquerda do operador, nunca o contrário. 
nome_da_variável = expressão; 
Operadores aritméticos 
11 
 Os operadores aritméticos operam sobre números (valores, 
variáveis, constantes, funções) e têm como resultado valores 
numéricos. 
 
 
 
 
 
 
 Adição e subtração têm a mesma prioridade, que é menor do que a 
prioridade de multiplicação, divisão e resto de divisão. 
Operação Símbolo utilizado Exemplo 
Adição + resp = a + b; 
Subtração – resp = a – b; 
Multiplicação * resp = a * b; 
Divisão / resp = a / b; 
Resto de divisão % resp = a % b; 
Operadores aritméticos 
12 
 Em uma operação de divisão, se o numerador e o denominador 
forem números inteiros, o resultado conterá somente a parte 
inteira da divisão. 
 
Operadores aritméticos 
13 
 Em uma operação de divisão, se o numerador e o denominador 
forem números inteiros, o resultado conterá somente a parte 
inteira da divisão. 
 1. #include <stdio.h> 
2. int main() 
3. { 
4. float x, y; 
5. 
6. x = 5 / 4; 
7. printf(‚x = %f \n‛, x); 
8. 
9. y = 5 / 4.0; 
10. printf(‚y = %f \n‛, y); 
11. return 0; 
12.} 
x = 1.00000 
y = 1.25000 
Operadores aritméticos 
14 
 Em uma operação de divisão, se o numerador e o denominador 
forem números inteiros, o resultado conterá somente a parte 
inteira da divisão. 
 1. #include <stdio.h> 
2. int main() 
3. { 
4. float x, y; 
5. 
6. x = 5 / 4; 
7. printf(‚x = %f \n‛, x); 
8. 
9. y = 5 / 4.0; 
10. printf(‚y = %f \n‛, y); 
11. return 0; 
12.} 
x = 1.00000 
y = 1.25000 
 int / int = int 
float / int = float 
 int / float = float 
idem para double 
Operadores aritméticos 
15 
 O operador % (resto de divisão) só é usado com números inteiros. 
 
Operadores aritméticos 
16 
 O operador % (resto de divisão) só é usado com números inteiros. 
 
1. #include <stdio.h> 
2. int main() 
3. { 
4. int x = 5, y = 3; 
5. int quoc, resto; 
6. 
7. quoc = x / y; 
8. resto = x % y; 
9. 
10. printf(‚Quociente = %d \nResto = %d\n‛, quoc, resto); 
11. 
12. return 0; 
13.} 
Quociente = 1 
Resto = 2 
Funções matemáticas 
17 
 A linguagem C traz diversas funções que realizam cálculos 
matemáticos, como potenciação, radiciação, logaritmos, seno etc. 
 
 O arquivo de cabeçalho onde estas funções estão definidas é 
chamado math.h. 
 
 Assim, o código deve conter o comando #include <math.h> 
antes da função main. 
 
 Para realizar operações aritméticas, não é necessário realizar esta 
inclusão. 
Funções matemáticas 
18 
 Potenciação: pow(b, e) 
 Eleva o argumento b (base) ao expoente e. Tanto o resultado quanto os 
parâmetros b e e são tratados como tendo o tipo double. 
 
 Raiz quadrada: sqrt(n) 
 Extrai a raiz quadrada de n. O resultado possui o tipo double. 
 
 Seno, cosseno e tangente: sin(a), cos(a), tan(a) 
 Calculam, respectivamente, o seno, cosseno e a tangente do ângulo a. 
 O ângulo deve ser informado em radianos. 
 O resultado possui o tipo double. 
 
 
 
Funções matemáticas 
19 
 Exemplo: ler as medidas dos catetos de um triângulo retângulo e 
calcular o valor da hipotenusa. 
Funções matemáticas 
20 
 Exemplo: ler as medidas dos catetos de um triângulo retângulo e 
calcular o valor da hipotenusa. 
1. #include <stdio.h> 
2. #include <math.h> 
3. int main() 
4. { 
5. double c1, c2, hip; 
6. 
7. printf(‚Digite os valores dos 2 catetos:\n‛); 
8. scanf(‚%lf %lf‛, &c1, &c2); 
9. 
10. hip = sqrt( pow(c1, 2) + pow(c2, 2) ); 
11. 
12. printf(‚Hipotenusa = %lf\n‛, hip); 
13. 
14. return 0; 
15.} 
Geração de números aleatórios 
21 
 Números aleatórios são essenciais em praticamente todos os 
ramos da Computação. 
 Por exemplo: em jogos que você joga contra os inimigos, como eles 
sempre aparecem em posições e lugares diferentes? 
 Simples! Eles aparecem aleatoriamente. 
 
 A função rand() é usada para gerar números aleatórios em C. 
 
 Esta função pertence ao arquivo de cabeçalho stdlib.h. 
 
 Os números gerados são inteiros (int) entre zero e 2147483647. 
Geração de números aleatórios 
22 
 Exemplo: gerando dois valores aleatórios e imprimindo. 
Geração de números aleatórios 
23 
 Exemplo: gerando dois valores aleatórios e imprimindo. 
1. #include <stdio.h> 
2. #include <stdlib.h> 
3. 
4. int main() 
5. { 
6. int n1, n2; 
7. 
8. n1 = rand(); 
9. n2 = rand(); 
10. 
11. printf(‚n1 = %d\n‛, n1); 
12. printf(‚n2 = %d\n‛, n2); 
13. 
14. return 0; 
15.} 
Geraçãode números aleatórios 
24 
 Exemplo: gerando dois valores aleatórios e imprimindo. 
1. #include <stdio.h> 
2. #include <stdlib.h> 
3. 
4. int main() 
5. { 
6. int n1, n2; 
7. 
8. n1 = rand(); 
9. n2 = rand(); 
10. 
11. printf(‚n1 = %d\n‛, n1); 
12. printf(‚n2 = %d\n‛, n2); 
13. 
14. return 0; 
15.} 
Execute este código mais 
vezes e observe o resultado. 
Geração de números aleatórios 
25 
 A função rand() tem uma memória interna que armazena o inteiro, 
digamos n, produzido pela execução anterior da função. 
 
 A cada nova execução, a função usa n para calcular um novo inteiro 
aleatório. 
 
 O inteiro n que corresponde à primeira invocação de rand() é 
conhecido como semente (seed). 
 
 O programador pode especificar a semente por meio da função 
srand() da biblioteca stdlib.h, que recebe a semente (um int) como 
argumento. 
 
 Se o programador não especificar a semente, o sistema adota o valor 
zero como semente. 
Geração de números aleatórios 
26 
 Para deixar a sequência gerada imprevisível, basta iniciar a semente 
com um valor proveniente do relógio do sistema, através da função 
time(NULL), pertencente ao arquivo de cabeçalho time.h. 
Geração de números aleatórios 
27 
 Para deixar a sequência gerada imprevisível, basta iniciar a semente 
com um valor proveniente do relógio do sistema, através da função 
time(NULL), pertencente ao arquivo de cabeçalho time.h. 
1. #include <stdio.h> 
2. #include <stdlib.h> 
3. #include <time.h> 
4. 
5. int main() 
6. { 
7. int n; 
8. 
9. srand( time(NULL) ); 
10. 
11. n = rand(); 
12. printf(‚n = %d\n‛, n); 
13. 
14. return 0; 
15.} 
Geração de números aleatórios 
28 
 E se quiséssemos trocar o intervalo de números gerado pela função 
rand()? 
 
 Por exemplo: 
 
 Como gerar valores no intervalo de 0 a 100? 
 
 Como gerar valores no intervalo de 10 a 100? 
 
 Como gerar valores no intervalo de –5 a 10? 
Dúvidas? 
29 
30 
Aula 4: 
Caracteres, Operadores e Expressões 
Prof. Luiz Olmes 
Disciplina: Algoritmos e Programação 1

Continue navegando