Capítulo 2 - Introdução à Programação em C

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