Resumo
2.1
Introdução
2.2
Um Programa C Simples: Imprimindo uma Linha de Texto
2.3
Outro Programa C Simples: Somando Dois Inteiros
2.4
Conceitos sobre Memória
2.5
Aritmética em C
2.6
Tomada de Decisões: Operadores de Igualdade e Relacionais
2.1
Introdução
· Linguagem de programação C
- Abordagem estruturada e disciplinada para projeto de programa
· Programação estruturada
- Introduzida nos capítulos 3 e 4
- Usada em todo o restante do livro
2.2
Um Programa Simples em C: Imprimindo uma Linha de Texto
· Programa:
/* Primeiro programa em C */
#include
<stdio.h>
main() {
printf("Bem-vindo ao C!\n");
}
· Saída do programa:
Bem-vindo ao C!
· Comentários
- Texto delimitado por /* e */ é ignorado pelo computador
- Usado para descrever programa
·
#include <stdio.h>
- Diretiva do preprocessador
§ Diz ao computador para carregar um certo arquivo
- <stdio.h> permite operações padrão de entrada/saída
·
int main()
- Programas em C contém uma ou mais funções, uma das quais tem que ser exatamente main
- Parênteses são usados para indicar uma função
- int significa que main "retorna" um valor inteiro
- Chaves ({ e }) indica um bloco
§ O corpo de todas as funções tem que está contido entre chaves
·
printf("Bem-vindo
ao C!\n");
- Instrui o computador a realizar uma ação
§ Especificamente, imprime a cadeia de caracteres entre aspas ("")
- A linha inteira é chamada de um comando
§ Todos os comandos têm que terminar com um ponto-e-vírgula (;)
- Caractere de escape (\)
§ Indica que o printf deve fazer algo fora do comum
§ \n é o caractere nova-linha
·
return 0;
- Maneira de sair de uma função
- return 0, neste caso, significa que o programa terminou normalmente
· Fecha-chave (})
- Indica que o fim do main foi encontrado
· Ligador
- Quando uma função é chamada, o ligador a localiza na biblioteca
- A insere no programa objeto
- Se o nome da função for escrito incorretamente, o ligador produzirá um erro
· Programa imprimir várias linhas com uma única instrução printf:
/* Imprimindo varias linhas com um único printf C */
#include
<stdio.h>
main() {
printf("Bem-vindo\não\nC!\n");
}
· Saída do programa:
Bem-vindo
Ao
C!
- porque ele não será capaz de encontrar a função na biblioteca
2.3
Outro Programa Simples em C: Somando Dois Inteiros
· Programa:
/* Programa de soma */
#include
<stdio.h>
main() {
int inteirol, inteiro2, soma; /* declaracao */
printf("Entre com o primeiro inteiro\n"); /* prompt */
scanf("%d", &inteirol); /* le um inteiro */
printf("Entre com o segundo inteiro\n"); /* prompt */
scanf("%d", &inteiro2); /* le um inteiro */
soma = inteirol + inteiro2; /* atribui soma */
printf("A soma e %d\n", soma); /* imprime soma */
return 0; /* indica que o programa foi bem-sucedido */
}
· Saída do programa:
Entre como primeiro inteiro
45
Entre com o segundo inteiro
72
A soma e 117
· Como antes
- Comentários, #include <stdio.h> e main
· int inteiro1, inteiro2, soma;
- Declaração de variáveis
§ Variáveis: posições na memória onde um valor pode ser armazenado
- int significa que as variáveis podem guardar inteiros (-1, 3, 0, 47)
- Nomes de variáveis (identificadores)
§ integer1, integer2, soma
§ Identificadores: consistem de letras, dígitos e sublinha( _ ) (não podem começar com um dígito)
° Case sensitive (maiúscula diferente de minúscula)
- Declarações aparecem antes dos comandos executáveis
§ Se um comando executável referencia uma variável não declarada será produzido um erro de sintaxe (compilador)
·
scanf("%d",
&inteiro1);
- Obtém um valor do usuário
§ scanf usa a entrada padrão (comumente o teclado)
- Este comando scanf tem dois argumentos
§ %d - indica que o dado deve ser um inteiro decimal
§ &inteiro1 - posição na memória onde a variável está armazenada
§ & é confuso no início - por hora, só lembre-se de inclui-lo com o nome da variável nos comandos scanf
- Quando o programa está executando, o usuário responde ao comando scanf digitando um número e em seguida pressionando a tecla enter (return)
2.4
Conceitos sobre Memória
· Variáveis
- Nomes de variáveis correspondem à posições na memória do computador
- Toda variável tem um nome, um tipo, um tamanho e um valor
- Toda vez que um valor é colocado numa variável (através de scanf, por exemplo), o valor anterior é substituído (e destruído)
- Leitura de variáveis da memória não as altera
· Uma representação visual de um local da memória mostrando o nome e o valor de uma variável
· Locais de memória mostrando o nome e o valor de uma variável
· Locais de memória depois do cálculo
2.5
Aritmética em C
· Cálculos aritméticos
- Use * para multiplicação e / para divisão
- Divisão inteira trunca o quociente
§ 7 / 5 é avaliado como 1
- Operador de módulo (%) retorna o resto
§ 7 % 5 é avaliado como 2
· Precedência de operadores
- Alguns operadores são avaliados antes de outros (i.e., multiplicação antes da adição)
§ Use parênteses quando necessário
- Exemplo: Encontre a média de três variáveis a, b e c
§ Não use: a + b + c / 3
§
Use: (a + b + c ) / 3
·
Operadores
aritméticos:
· Regras de precedência de operadores:
2.6
Tomada de Decisão: Operadores de Igualdade e Relacionais
· Comandos executáveis
- Realizam ações (cálculos, entrada/saída de dados)
- Realiza decisões
§ Pode querer imprimir "passa" ou "falha" dado um valor de um teste de condição
· Operadores de igualdade e relacionais
· Estrutura de controle if
- Versão simples nesta seção, mais detalhes depois
- Se a condição é verdadeira, então o corpo do comando if é executado
§ 0 é falso, diferente de zero é verdadeiro
- O controle sempre prossegue após o comando if
· Programa usando os operadores de igualdade e relacionais:
/* Usando instrucoes if, operadores relacionais e operadores de igualdade */
#include
<stdio.h>
main() {
int numl, num2;
printf ("Entre com dois inteiros e lhe direi \n”);
printf("o relacionamento que eles satisfazem: “);
scanf("%d%d”, &numl, &num2); /* le dois inteiros */
if (num == num2)
printf("%d e igual a %d\n", numl, num2);
if (num1 != num2)
printf("%d não e igual a %d\n", numl, num2);
if (num1 < num2)
printf("%d e menor que %d\n", numl, num2);
if (num1 > num2)
printf("%d e maior que %d\n", num1, num2);
if (num1 <= num2)
printf("%d e menor que ou igual a %d\n", numl, num2);
if (num >= num2)
printf("%d e maior que ou igual a %d\n", numl, num2);
return 0; /* indica que o programa foi bem-sucedido */
}
· Saídas do programa:
Entre com dois inteiros e lhe direi
o relacionamento que eles satisfazem: 3 7
3 nao e igual a 7
3 e menor que 7
3 e menor que ou igual a 7
Entre com dois inteiros e lhe direi
o relacionamento que eles satisfazem: 22 12
22 nao e igual a 12
22 e maior que 12
22 e maior que ou igual a 12
Entre com dois inteiros e lhe direi
o relacionamento que eles satisfazem: 7 7
7 e igual a 7
7 e menor que ou igual a 7
7 e maior que ou igual a 7
· Palavras-chave
- Palavras reservadas especiais para C
- Não podem ser usadas como identificadores ou nomes de variáveis
· Precedência e associatividade dos operadores analisados até aqui