44
http:// regispiresmag.googlepages.com/cefet [email protected] m Linguagem C Regis Pires Magalhães Introdução e Primeiros Passos

Linguagem c 01 Primeiros Passos

Embed Size (px)

Citation preview

Page 1: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Linguagem C

Regis Pires Magalhães

Introdução ePrimeiros Passos

Page 2: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Histórico Surgiu na década de 1970 nos laboratórios Bell. Dennis Richie e Brian Kerninghan implementaram C

usando um DEC PDP-11 rodando o SO UNIX. Derivado da linguagem B, criada por Ken Thompson.

B deriva da linguagem BCPL, criada por Martin Richards.

Nos anos 1980 iniciou-se a criação de um padrão chamado C ANSI (American National Standardization Institute).

Page 3: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Características Linguagem de propósito genérico;

Usada para escrever processadores de texto, planilhas, sistemas operacionais, programas de comunicação, programas para automação industrial, SGBDs, navegadores e servidores Web, etc.

Possui características de alto e de baixo nível; Excelente performance; Muito popular; Sintaxe de C serve de base para muitas

outras linguagens.

Page 4: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Características Deu origem a outras linguagens de

programação, entre elas C++, Java, C#, PHP, Ruby, Python, etc.

Muito usada no desenvolvimento de: Compiladores, interpretadores, editores de texto,

banco de dados, computação gráfica, manipulação e processamento de imagens, controle de processos, …

Page 5: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Características Portabilidade Geração de códigos executáveis

compactos e rápidos Interação com o sistema operacional Facilidade de uso Linguagem estruturada Confiabilidade Simplicidade Case sensitive

Maiúsculas e minúsculas fazem diferença.

Page 6: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Geração de Executável Editor (módulo fonte em C) Pré‐processador (novo fonte expandido) Compilador (arquivo objeto) Lincador (executável)

Page 7: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Exemplo 1#include <stdio.h>

/* Um Primeiro Programa */main () { printf ("Ola! Eu estou vivo!\n"); system("pause");}

Page 8: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Exemplo 2#include <stdio.h>

main() { int Dias; /* * Declaracao de * Variaveis */ float Anos; printf("Entre com o numero de dias: "); /* Entrada de Dados */ scanf("%d", &Dias); Anos=Dias/365.25; // Conversao Dias->Anos printf("\n\n%d dias equivalem a %f anos.\n", Dias, Anos); system("pause");}

Page 9: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Exemplo 3

#include <stdio.h>

main() { int x; printf("Digite um numero"); scanf("%d",&x); printf("%d\n",x); system("pause");}

Page 10: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Exemplo 4

#include <stdio.h>

main() { int x; printf("Digite um numero"); scanf("%d",&x); printf("O dobro e %d\n", 2 * x); system("pause");}

Page 11: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Introdução às funções Uma função é um bloco de código de programa que

pode ser usado diversas vezes em sua execução. O uso de funções permite que o programa fique mais

legível, mais bem estruturado. Um programa em C consiste, no fundo, de várias

funções colocadas juntas.

Page 12: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Introdução às funções

Argumentos Argumentos são as entradas que a função

recebe. É através dos argumentos que passamos parâmetros para a função.

As funções printf() e scanf() são funções que recebem argumentos.

Page 13: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Forma geral da função

tipo_de_retorno nome_da_função(lista_de_argumentos) {código_da_função

}

Page 14: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Exemplo de Função

#include <stdio.h>

/* Funcao simples: so imprime Ola! */mensagem() { printf("Ola! ");}

main() { mensagem(); printf("Eu estou vivo!\n"); system("pause");}

Page 15: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Exemplo de função#include <stdio.h>

/* Calcula o quadrado de x */int square(int x) { return x * x;}

main() { int num; printf("Entre com um numero: "); scanf("%d", &num); printf("\n\nO quadrado e %d\n", square(num)); system("pause");}

Page 16: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Exemplo de função

#include <stdio.h>

int prod(int x, int y) { return (x*y);}

main() { int saida; saida=prod(12, 7); printf("A saida e: %d\n", saida); system("pause");}

Page 17: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Exemplo de função

#include <stdio.h>

float prod(float x, float y) { return (x*y);}

main() { float saida; saida=prod(45.2, 0.0067); printf("A saida e: %f\n", saida); system("pause");}

Page 18: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Exercício

Escreva uma função para receber dois números e, depois, exibir a sua soma.

Page 19: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Solução

#include <stdio.h>

main() { float n1, n2; printf("Digite um numero: "); scanf("%f", &n1); printf("Digite outro numero: "); scanf("%f", &n2); printf("A soma e: %f\n", (n1 + n2)); system("pause");}

Page 20: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Entradas e Saídas Caracteres

Tipo char. Ocupa 8 bits.

#include <stdio.h>

main() { char Ch; Ch='D'; printf("%c", Ch); printf("%d", Ch); // Imprime como inteiro system("pause");}

Page 21: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Entradas e Saídas Para obter o caractere pressionado:

getche() Imprime o caractere na tela antes de retorná-lo.

getch() Apenas retorna o caratere pressionado sem imprimi-lo

na tela.

Essas funçoes são encontradas no arquivo conio.h que somente está disponível para Windows. Não é padrão ANSI.

Page 22: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

getch()

#include <stdio.h>#include <conio.h>

main() { printf("Tecle algo..."); char ch=getch(); printf("Voce pressionou a tecla %c\n", ch); system("pause");}

Page 23: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Equivalente ANSI

#include <stdio.h>

main() { char ch; printf("Tecle algo..."); scanf("%c", &ch); printf("Voce pressionou a tecla %c\n", ch); system("pause");}

Diferenças: Requer o pressionamento da tecla <ENTER>

após a entrada de teclado.

Page 24: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

printf() e scanf()

Forma geral da função printf(): printf (string_de_controle,lista_de_argumentos);

Forma geral da função scanf(): scanf (string_de_controle,lista-de-argumentos);

Page 25: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Códigos de controle

Código Significado

%d Inteiro

%f Float

%c Caractere

%s String

%% Coloca na tela um %

Page 26: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Formatação Numérica

%<numero>d Escreve um inteiro na tela, preenchendo com espaços à

esquerda para que ele ocupe pelo menos <numero> casas na tela.

printf("%4d", 10); Exibe:

<espaco><espaco>10

Page 27: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Formatação Numérica

%0<numero>d Escreve um inteiro na tela, preenchendo com zeros à

esquerda para que ele ocupe pelo menos <numero> casas na tela.

printf("%04d", 10); Exibe:

0010

Page 28: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Formatação Numérica

%<numero1>.0<numero2>d Escreve um inteiro na tela, preenchendo com espaços à

esquerda para que ele ocupe pelo menos <numero1> casas na tela e com zeros para que ele possua pelo menos comprimento <numero2>.

printf("%6.04d", 10); Exibe:

<espaço><espaço>0010

Page 29: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Formatação Numérica

%f Escreve um ponto flutuante na tela, sem formatação.

printf("%f", 10.0); Exibe:

10.000000

Page 30: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Formatação Numérica

%e Escreve um ponto flutuante na tela em notação

científica.

printf("%e", 10.02545); Exibe:

1.002545e+01

Page 31: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Formatação Numérica

%<tamanho>.<decimais>f Escreve um ponto flutuante na tela, com tamanho

<tamanho> e <decimais> casas decimais. O ponto também conta no tamanho.

printf("%6.2f", 10.0); Exibe:

<espaço>10.00

Page 32: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Operadores

Atribuição (=) Aritméticos

* e / % + e -

Page 33: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Operadores Relacionais

== igual

!= diferente de

> maior que

< menor que

>= maior ou igual

<= menor ou igual

Page 34: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Operadores Lógicos

&& (e) || (ou) ! (não)

Page 35: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Operador Ternário Operador que usa três argumentos:

expr ? valor1 : valor2 Se expr avaliar for verdadeira, valor1 será o resultado

da expressão. Se expr for falsa, valor2 será o resultado da expressão.

int x, y, maior;...

maior = x > y ? x : y;...

Page 36: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Operador Ternário

#include <stdio.h>main() { int n1, n2; printf("Digite um numero: "); scanf("%d", &n1); printf("Digite outro numero: "); scanf("%d", &n2); printf("O maior e: %d\n", n1 > n2 ? n1 : n2; system("pause");}

Page 37: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Expressões lógicas !(a == b) éX equivalente a a != b !(a != b) éX equivalente a a == b !(a > b) éX equivalente a a <= b !(a < b) éX equivalente a a >= b !(a >= b) éX equivalente a a < b !(a <= b) éX equivalente a a > b !a && !b é equivalente a !(a || b) !a || !b é equivalente a !(a && b)

Page 38: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Expressões

O resultado de uma expressão lógica ou relacional é:

0 (falso) 1 ou qualquer outro número diferente de zero

(verdadeiro) Para facilitar:

NÃ0 S1M

Page 39: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Operadores de incremento e decremento

Incremento (++) Decremento (--) a++;

Incrementa o valor da variável a em uma unidade.

A posição do operador de incremento e decremento determina a ordem de execução do que está em seu derredor.

Page 40: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Operadores de incremento e decremento

#include <stdio.h>main() { int a = 10; printf("%d", ++a); system("pause");}

#include <stdio.h>main() { int a = 10; printf("%d", a++); system("pause");}

Page 41: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

Atribuições Simplificadas

Comando Exemplo Corresponde a:

+= a += 2 a = a + 2;

-= a -= 2 a = a - 2;

∗= a *= 2; a = a * 2;

/= a /= 2; a = a / 2;

%= a %= 2; a = a % 2;

Page 42: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

A função sizeof()

A função sizeof(algo) retorna o tamanho, em bytes, de algo que pode ser um determinado tipo, uma variável ou um valor constante.

printf ("%d", sizeof(int)); exibe 4 na tela

Page 43: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

A função sizeof()

#include <stdio.h>main() { printf("Tamanho de um int: %d bytes\n", sizeof(int)); printf("Tamanho de 10.25: %d bytes\n", sizeof(10.25)); char str[20] = "Maria"; printf("Tamanho de str: %d bytes\n", sizeof(str)); system("pause");}

Page 44: Linguagem c 01 Primeiros Passos

http://regispiresmag.googlepages.com/[email protected]

O endereço de uma variável

Toda variável tem um endereço de memória associado a ela.

O operador & (address-of) retorna o endereço de uma determinada variável:

printf("%d", &valor); imprime o endereço da variável valor.