linguagem c parte 1

39
Curso: Manutenção e Suporte em Informática Professor: Mauro Jansen Disciplina: Linguagem de Programação Linguagem C Introdução, Tipos, variáveis, expressões e estruturas de controle

Upload: mauro-jansen

Post on 20-Jun-2015

2.324 views

Category:

Technology


1 download

DESCRIPTION

Linguagem C

TRANSCRIPT

Page 1: Linguagem c parte 1

Curso: Manutenção e Suporte em Informática

Professor: Mauro Jansen

Curso: Manutenção e Suporte em InformáticaDisciplina: Linguagem de Programação

Linguagem CIntrodução, Tipos, variáveis, expressões

e estruturas de controle

Page 2: Linguagem c parte 1

Introdução à linguagem C

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 2

Page 3: Linguagem c parte 1

Histórico

� Criada na década de 70 por Denis Ritchie (Bell Labs)

� Objetivo: ser uma linguagem mais fácil que o Assembler mas que permitisse grande

Prof. Mauro Jansen

o Assembler mas que permitisse grande controle sobre o hardware, para a programação do sistema Unix

� Influência das linguagens BCPL e B

Linguagem de ProgramaçãoLinguagem C – parte 1 3

Page 4: Linguagem c parte 1

Características

� Genérica: usada para a criação de programas para diversas áreas� Ex: aplicativos, sistemas operacionais, automação industrial, engenharia, física, química, etc.

Prof. Mauro Jansen

química, etc.� Linguagem “mista”: tem características de linguagem de alto e baixo nível

� Induz a uma boa estruturação de programas

� Influenciou várias outras linguagensLinguagem de Programação

Linguagem C – parte 1 4

Page 5: Linguagem c parte 1

Características

� É “case sensitive”: minúsculas e maiúsculas fazem diferença� Variável “nome” é diferente de “Nome”

� É compilada (gera arq.executável)

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 5

Page 6: Linguagem c parte 1

O pré-processador

� Parte do compilador C que trata alguns textos (comandos) do código-fonte antes da tradução em código executável

� Esses comandos são as diretivas do pré-

Prof. Mauro Jansen

� Esses comandos são as diretivas do pré-processador. Ex:� #define� #include

Linguagem de ProgramaçãoLinguagem C – parte 1 6

Page 7: Linguagem c parte 1

Diretivas do pré-processador

� #define: define um identificador e uma sequência de caracteres que será substituída pelo identificador no código-fonte. Ex: Em todo o código fonte, PI

Prof. Mauro Jansen

� #include: inclui um cabeçalho ou outro arquivo-fonte no ponto onde está a diretiva. Ex:

Linguagem de ProgramaçãoLinguagem C – parte 1 7

#define PI 3.1415

#include <stdio.h>

Em todo o código fonte, PI será substituído por 3.1415

Inclui o arquivo “stdio.h” (definições padrões para entrada e saída de dados) no programa-fonte

Page 8: Linguagem c parte 1

Estrutura básica de um programa em C

#Include <biblioteca1.h>

#Include <biblioteca2.h>

...

Void main()

{

Inclusão de arquivo de bibliotecas de comandos

Função main(): é obrigatória. É a primeira

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 8

{

<Declaração de variáveis>

...

<comandos>

...

}

obrigatória. É a primeira função chamada quando o programa é iniciado

Delimitadores de inicio e fim de bloco de comandos

Page 9: Linguagem c parte 1

Comentários

� Comentários são úteis para documentar o programa, e devem ser sempre usados

� Existe dois modos:� Posição livre: usa-se o comando //

Prof. Mauro Jansen

� Posição livre: usa-se o comando //� Várias linhas: usa-se o comando /* */

Linguagem de ProgramaçãoLinguagem C – parte 1 9

Page 10: Linguagem c parte 1

Palavras reservadas

� São os comandos e funções próprias do vocabulário da linguagem. Ex.:� auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, struct, switch,

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 10

for, goto, if, int, long, register, struct, switch, typedef, union, unsigned, void, volatile, while, etc.

Page 11: Linguagem c parte 1

Exemplo de programa em C

/*

Programa: calcular a média entre duas notas

Autor...: prof.Mauro

*/

#Include <stdio.h>

Void main()

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 11

{

float nota1,nota2; // declaração de variáveis

printf(“Digite a primeira nota: “);

scanf(“%f”,&nota1);

printf(“Digite a segunda nota: “);

scanf(“%f”,&nota2)

printf(“A média é: %f”,(nota1+nota2)/2);

}

Page 12: Linguagem c parte 1

Comando de saída: printf

� Sintaxe: printf(<string de controle>,<lista de argumentos>)

� Códigos de controle:Código Formato Código Formato

Mensagem (string) com códigos de controle embutidos na mesma

Valores que serão substituídos na mensagem, no lugar de cada código de

controle iniciado por %

Prof. Mauro Jansen

� Exemplos:printf(“O valor de PI é %f”,3.1415);

printf(“Meu nome é %s e eu tenho %d anos\n”,”João”,18);

Linguagem de ProgramaçãoLinguagem C – parte 1 12

Código Formato Código Formato

%d Inteiro com sinal %X Hexadecimal

%f Float (número real) %o Octal

%c Caractere %E Notação científica

%s String %p Ponteiro

%u Inteiro sem sinal \n salta linha

Page 13: Linguagem c parte 1

Comando de entrada: scanf

� Sintaxe:scanf(<string de controle>,<lista de argumentos>)

� Exemplo:

códigos de controle que identificarão o tipo de dado a ser digitado pelo usuário

Variável(is) que receberá(ão) os dados, precedida(s) pelo sinal &

Prof. Mauro Jansen

� Exemplo:

Linguagem de ProgramaçãoLinguagem C – parte 1 13

#Include <stdio.h>

Void main()

{

char c;

float n;

printf(“Digite uma letra: “);

scanf(“%c”,&c);

printf(“Digite um valor real: “);

scanf(“%f”,&n);

printf(“Letra: %c , número: %f”,c,f);

}

Page 14: Linguagem c parte 1

Tipos de dados, constantes, variáveis, operadores e

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 14

variáveis, operadores e expressões em C

Page 15: Linguagem c parte 1

Tipos de dados

� A linguagem C tem os tipos básicos� Char (caractere), Int (inteiro), float (real), double (real)

� E modificadores de tipo, que vêm antes do

Prof. Mauro Jansen

� E modificadores de tipo, que vêm antes do tipo e podem ser combinados:� Unsigned: sem sinal� Signed: com sinal (padrão)� Short: menor precisão (padrão)� Long: maior precisão

Linguagem de ProgramaçãoLinguagem C – parte 1 15

Page 16: Linguagem c parte 1

Tipos de dados

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 16

Page 17: Linguagem c parte 1

Constantes e variáveis

� Constante: porção de dados que não muda seu valor durante a execução do programa. Exemplos: 23, ‘X’, “Linguagem C”, 1.234� Constantes não precisam de nome, mas podemos nomeá-las usando a diretiva #define. Ex: #define PI

Prof. Mauro Jansen

nomeá-las usando a diretiva #define. Ex: #define PI 3.1415

� Variável: porções de dados que podem mudar seu valor durante a execução do programa� Uma variável precisa ter um nome e tipo e precisa ser declarada e inicializada

Linguagem de ProgramaçãoLinguagem C – parte 1 17

Page 18: Linguagem c parte 1

Constantes de barra invertida

� São códigos que iniciam com uma barra invertida que representam uma constante tipo caractere dentro de strings, como no comando printf. Veja alguns:

Código Significado

\n Nova linha (new line)

Muito usado no printf para saltar para próxima linha

Prof. Mauro Jansen

\” Aspas

\’ Apóstrofo

\0 Nulo

\\ Barra invertida

\t Tabulação horizontal

\a Sinal sonoro (beep)

\N Constante octal (N é o valor da constante)

\xN Constante hexadecimal (N é o valor da constante)

para próxima linha

Page 19: Linguagem c parte 1

Regras para nomes de variáveis

� Começar com letra ou sublinhado (_)� Caracteres seguintes podem ser letras, números ou sublinhado

� Não pode ser palavra reservada ou função

Prof. Mauro Jansen

� Não pode ser palavra reservada ou função� Maiúsculas e minúsculas fazem diferença

Linguagem de ProgramaçãoLinguagem C – parte 1 19

Page 20: Linguagem c parte 1

Declaração e inicialização de variáveis

� A declaração é feita da seguinte forma:

� Obs: Na linguagem C não há uma seção específica para declaração de variáveis

<tipo de dado> <lista de variáveis>;

Prof. Mauro Jansen

específica para declaração de variáveis� Exemplos:

Linguagem de ProgramaçãoLinguagem C – parte 1 20

char ch,letra;

long cont;

Page 21: Linguagem c parte 1

Declaração e inicialização de variáveis

� Inicialização: podemos atribuir valor no momento da declaração ou depois, usando o operador de atribuição “=“ :

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 21

Char ch=‘D’;

Int num=123;

num=10;

Page 22: Linguagem c parte 1

Operadores aritméticos

� Usados em operações matemáticasOperador Ação

+ Soma

- Subtração ou troca de sinal

* Multiplicação

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 22

* Multiplicação

/ Divisão

% Resto da divisão

++ Incrementa valor de uma variável

-- Decrementa valor de uma variável

+= Atribuição com soma

-= Atribuição com subtração

Page 23: Linguagem c parte 1

Operadores relacionais

� Usados em comparações entre valores

Operador Significado

> Maior

>= Maior ou igual

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 23

>= Maior ou igual

< Menor

<= Menor ou igual

== Igual

!= Diferente

Page 24: Linguagem c parte 1

Operadores lógicos

� Usados em expressões lógicas compostas

Operador Significado

&& Operador E. Retorna verdadeiro se ambos valores forem verdadeiros

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 24

ambos valores forem verdadeiros

|| Operador OU. Retorna verdadeiro se pelo menos um for verdadeiro

! Operador NÃO. Retorna o contrário do valor informado.

Page 25: Linguagem c parte 1

Exemplo com operadores e expressões

#Include <stdio.h>

Void main()

{

int a,b,c,d;

a=10;

b=22;

c=30;

d=40;

printf(“a+b = %d”,a+b); // soma a e b

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 25

printf(“a+b = %d”,a+b); // soma a e b

printf(“a-b = %d”,a-b); // subtrai b de a

printf(“b%%a = %d”,b%a); // resto da divisão de b por a

a++; // incrementa a (mesmo que a=a+1)

b--; // decrementa b (mesmo que b=b-1)

c+=a; // soma a em c (mesmo que c=c+a)

d-=b; // soma e em d (mesmo que d=d+b)

printf(“a=%d, b=%d, c=%d, d=%d”,a,b,c,d);

}

OBS: No próximo bloco veremos exemplos com operadores relacionais e lógicos

Page 26: Linguagem c parte 1

Estruturas de controle e fluxo em C

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 26

fluxo em C

Page 27: Linguagem c parte 1

Estrutura condicional ifEquivalente em pseudocódigo: se-senão-fimse

� Sintaxe:If(<condição>)

<bloco de comandos>

[else

<bloco de comandos 2>]

Prof. Mauro Jansen

� Se a condição for verdadeira, executa bloco de comandos 1, senão executa bloco de comandos 2

� OBS: Um bloco de comando composto por mais de um comando deve iniciar com { e terminar com }

� O bloco do else é opcionalLinguagem de ProgramaçãoLinguagem C – parte 1 27

<bloco de comandos 2>]

Page 28: Linguagem c parte 1

Estrutura condicional if (se) -Exemplo

/*

Programa: calcular a média e mostrar situação

*/

#Include <stdio.h>

Void main()

{

float nota1,nota2,media; // declaração de variáveis

printf(“Digite a primeira nota: “);

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 28

scanf(“%f”,&nota1);

printf(“Digite a segunda nota: “);

scanf(“%f”,&nota2);

media=(nota1+nota2)/2;

printf(“A média é: %f \n”,media);

if(media>=7)

printf(“Você está aprovado.\n”);

else

printf(“Você está de recuperação.\n”);

}

Page 29: Linguagem c parte 1

Estrutura condicional switch-caseEquivalente pseudocódigo: escolha

� Sintaxe:Switch (<variável>)

{

case <constante1>:

<declaração1>;

break;

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 29

break;

case <constante2>:

<declaração2>;

break;

case <constante_n>:

<declaraçãoN>;

break;

default:

<declaração default>

}

Page 30: Linguagem c parte 1

Estrutura condicional switch-caseExemplo

#Include <stdio.h>

void main()

{

float n1,n2;

char op;

printf(“Digite um número: “);

scanf(“%f”,&n1);

printf(“Digite a operação (+,-,* ou /): “);

scanf(“%c”,&op);

printf(“Digite outro número: “);

scanf(“%f”,&n2);

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 30

scanf(“%f”,&n2);

switch (op)

{

case ‘+’: printf(“Soma=%f”,n1+n2);

break;

case ‘-’: printf(“Soma=%f”,n1-n2);

break;

case ‘*’: printf(“Soma=%f”,n1*n2);

break;

case ‘/’: printf(“Soma=%f”,n1/n2);

break;

default: printf(“Você digitou uma operação inválida!”)

}

}

Page 31: Linguagem c parte 1

Operador ternário

� Operador que permite simplificar tomadas de decisão simples

� Sintaxe:<expressão1> ? <expressão2> : <expressão3>

Prof. Mauro Jansen

� Exemplo:max=(a>b) ? a : b;

If (a>b)

max=a;

Else

max=b;

Equivale a:

Page 32: Linguagem c parte 1

Estrutura de repetição forEquivalente pseudocódigo: para - fimpara

� É a repetição contada. Sintaxe:

� Inicialização: expressão de inicialização. Ex:

for(<inicialização>;<condição>;<incremento>)

<bloco de comandos>

Prof. Mauro Jansen

� Inicialização: expressão de inicialização. Ex: n=0

� Condição: expressão condição para continuar a repetição. Ex: n<=10

� Incremento: expressão de incremento. Ex: n++

Linguagem de ProgramaçãoLinguagem C – parte 1 32

Page 33: Linguagem c parte 1

Estrutura de repetição forexemplo:

� Programa para contar de 1 a 100:#include <stdio.h>

{

int n;

for(n=1 ; n<=100 ; n++)

Prof. Mauro Jansen

for(n=1 ; n<=100 ; n++)

{

printf("Contando: %d\n",n);

}

}

Page 34: Linguagem c parte 1

Estrutura de repetição while Equivalente pseudocódigo: enquanto–faça-fimenquanto

� Sintaxe:

� Inicia e repete o bloco de comandos

while(<condição>)

<bloco de comandos>

Prof. Mauro Jansen

� Inicia e repete o bloco de comandos enquanto a condição for verdadeira

� É a repetição com teste no início

Linguagem de ProgramaçãoLinguagem C – parte 1 34

Page 35: Linguagem c parte 1

Estrutura de repetição whileExemplo:

� Soma quantidade indeterminada de números

#include <stdio.h>

int main()

{

float n=1,soma=0;

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 35

float n=1,soma=0;

while (n!=0) {

printf("Digite um numero (zero=fim):");

scanf("%f",&n);

soma+=n;

}

printf("A soma dos numeros digitados é: %f",soma);

}

Page 36: Linguagem c parte 1

Estrutura de repetição do..whileEquivalente pseudocódigo: repita - até

� Sintaxe:

� Executa o bloco de comando e repete

do

<bloco de comandos>

While(<condição>);

Prof. Mauro Jansen

� Executa o bloco de comando e repete enquanto a condição for verdadeira

� É a repetição com teste no final

Linguagem de ProgramaçãoLinguagem C – parte 1 36

Page 37: Linguagem c parte 1

Estrutura de repetição do..whileExemplo:

� Mesmo anterior, agora com do..while:#include <stdio.h>

{

float n=0,soma=0;

do {

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 37

do {

printf("Digite um numero (zero=fim):");

scanf("%f",&n);

soma+=n;

} while (n!=0);

printf("A soma dos numeros digitados é: %f\n",soma);

}

Page 38: Linguagem c parte 1

Comandos que afetam as estruturas de repetição

� Comando break: interrompe a repetição, continuando após o bloco de comandos a ser repetido

� Comando continue: interrompe apenas a

Prof. Mauro Jansen

� Comando continue: interrompe apenas a repetição atual, voltando ao início do laço

Linguagem de ProgramaçãoLinguagem C – parte 1 38

Page 39: Linguagem c parte 1

Atividades no DevC++

� PRÁTICA, muita PRÁTICA:� Testar os exemplos dos slides� Testar os exemplos da apostila� Resolver exercícios da apostila

Prof. Mauro Jansen

� Resolver exercícios da apostila� Resolver as atividades da semana

Linguagem de ProgramaçãoLinguagem C – parte 1 39