linguagem de programação c - uma introdução

37
Prof.José Augusto Cintra http://www.josecintra.com/blog Linguagem de Programação C Introdução

Upload: jose-augusto-cintra

Post on 19-Jan-2017

376 views

Category:

Software


8 download

TRANSCRIPT

Page 1: Linguagem de Programação C - Uma Introdução

Prof.José Augusto Cintra

http://www.josecintra.com/blog

Linguagem de Programação

C

Introdução

Page 2: Linguagem de Programação C - Uma Introdução

Introdução

Nestas aulas abordaremos conceitos básicos da

linguagem C.

Pressupõe-se que o leitor já possua

conhecimentos de algoritmos e lógica de

programação em pseudocódigo (Portugol).

Você pode achar material e exercícios

resolvidos sobre o assunto no meu blog em:

http://josecintra.com/blog/algoritmos-logica-programacao-aulas/

2

Page 3: Linguagem de Programação C - Uma Introdução

Parte I

Conceitos básicos

3

Page 4: Linguagem de Programação C - Uma Introdução

Histórico

Criada por Denis Ritchie e Kenneth

Thompson, na década de 1970, para uso em um

computador DEC PDP-11 em Unix

C++ é uma extensão da linguagem C

O sistema Unix, assim como a maioria dos

software de base são escritos em C e C++

Existem compiladores C para praticamente

todos os processadores existentes.

Kenneth Thompson (à esquerda) e Dennis Ritchie (à direita), os criadores da linguagem C

4

Page 5: Linguagem de Programação C - Uma Introdução

Ranking das linguagens

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

5

Page 6: Linguagem de Programação C - Uma Introdução

Estrutura básica de um programa C

diretivas para o pré-processamento

declaração de variáveis globais

main ()

{

declaração de variáveis

comandos

}

6

Page 7: Linguagem de Programação C - Uma Introdução

Estrutura básica de um programa C

Diretiva #include permite incluir uma

biblioteca

Bibliotecas contêm funções pré-definidas,

utilizadas nos programas

Exemplos:

Funções de texto#include <string.h>

Funções matemáticas#include <math.h>

Funções padrão#include <stdlib.h>

Funções de entrada e saída#include <stdio.h>

7

Page 8: Linguagem de Programação C - Uma Introdução

Comentários

Use comentários, iniciados por // ou entre

/* */

/* isto é um

comentário */

// isto também é um comentário

8

Page 9: Linguagem de Programação C - Uma Introdução

Exemplo

/* meu primeiro programa C */

#include <stdio.h>

#include <stdlib.h>

main()

{

printf ("Alo mundo!"); //mostra

system("PAUSE"); //fica parado

}

Obs: Todos os comandos devem terminar com

ponto e virgula (;)

9

Page 10: Linguagem de Programação C - Uma Introdução

Declaração de variáveis

Os nomes das variáveis devem conter apenas

letras, dígitos e o símbolo _ e iniciar com

letra ou _

C diferencia letras maiúsculas de

minúsculas!

De início, trabalharemos com os tipos

abaixo:

Portugol C

inteiro int

real float

10

Page 11: Linguagem de Programação C - Uma Introdução

Declaração de variáveis

Em Portugol

var

media : real

idade : inteiro

Na Linguagem C

float media;

int idade;

11

Page 12: Linguagem de Programação C - Uma Introdução

Entrada de Dados

Usaremos a função “scanf” que será o

equivalente à função “leia” do Portugol

scanf ("formatos", &var1, &var2,...)

Os formatos que usaremos, por enquanto

são:

“%d” inteiro decimal

“%f” float

12

Page 13: Linguagem de Programação C - Uma Introdução

Entrada de Dados

Em Portugol

Para as variáveis

N1 do tipo inteiro e

N2 do tipo real

leia(N1)

leia(N2)

leia(N1,N2)

Na Linguagem C...

Para as variáveis

N1 do tipo int e

N2 do tipo float

scanf ("%d",&n1);

scanf ("%f",&n2);

scanf (“%d%f”,&n1,&n2);

13

Page 14: Linguagem de Programação C - Uma Introdução

Operadores matemáticos

Decrementa em 1 o valor de xx----

Incrementa em 1 o valor de xx++++

Resto da divisão de x por yx % y %

Divide x por y x / y /

Multiplica x e yx * y*

Subtrai y de xx – y -

Soma x e yx + y+

ComentárioExemploOperador

14

Page 15: Linguagem de Programação C - Uma Introdução

Operadores de atribuição

O operador de atribuição do C é o sinal de

igual (=) que seria o equivalente ao <- do

Portugol

Exemplo:

int idade, nova_idade;

idade = 18;

nova_idade = nova_idade + 1;

15

Page 16: Linguagem de Programação C - Uma Introdução

Operadores de atribuição

Equivale a x = x % yx %= y%=

Equivale a x = x / yx /= y /=

Equivale a x = x * yx *= y *=

Equivale a x = x – yx -= y-=

Equivale a x = x + yx += y +=

Atribui o valor de y a xx = y=

ComentárioExemploOperador

16

Page 17: Linguagem de Programação C - Uma Introdução

Saida de dados

Usaremos a função “print” que será o

equivalente à função “escreva” do Portugol

printf ("formatos", var1, var2,...)

Os formatos que usaremos, por enquanto são:

“%d” inteiro decimal

“%f” float

17

Page 18: Linguagem de Programação C - Uma Introdução

Saída de Dados

Em Portugol

Para as variáveis

N1 do tipo inteiro e

N2 do tipo real

escreva(N1)

escreva(N2)

escreva(N1,N2)

Na Linguagem C...

Para as variáveis

N1 do tipo int e

N2 do tipo float

printf ("%d“,n1);

printf ("%f“,n2);

printf (“%d%f”,n1,n2);

18

Page 19: Linguagem de Programação C - Uma Introdução

Exemplo completo//Cálculo da média

#include <stdio.h>

#include <stdlib.h>

main()

{

//Declaração de variáveis

float nota1, nota2, media;

//Entrada de dados

printf ("Digite primeira nota: ");

scanf ("%f" ,&nota1);

printf ("Digite segunda nota: ");

scanf ("%f" ,&nota2);

//Processamento

media=(nota1+nota2)/2;

// Saída de dados

printf ("Media = %f",media);

system("PAUSE");

}19

Page 20: Linguagem de Programação C - Uma Introdução

Parte II

Estruturas de Decisão

20

Page 21: Linguagem de Programação C - Uma Introdução

Estruturas de Decisão

São estruturas que, dada a avaliação de uma

expressão lógica (condição), permitem a

escolha de um fluxo de instruções a ser

executado

ƒ

No máximo só podem existir dois fluxos de

instruções:

Um se a condição for Verdadeira e outro se a

condição for Falsa

Para avaliar as expressões, podemos usar os

operadores relacionais e os operadores

lógicos21

Page 22: Linguagem de Programação C - Uma Introdução

O conteúdo de x é maior que o de y?x > y>

O conteúdo de x é menor que o de y?x < y <

O conteúdo de x é maior ou igual ao de y?x >= y >=

O conteúdo de x é menor ou igual ao de y?x <= y<=

O conteúdo de x é diferente do de y?x != y !=

O conteúdo de x é igual ao de y?x == y==

SignificadoExemploOperador

As expressões relacionais em C retornam:

1 se verdadeiro

0 se falso.

Operadores Relacionais

22

Page 23: Linguagem de Programação C - Uma Introdução

&& (E lógico): retorna verdadeiro se ambos

os operandos são verdadeiros e falso nos

demais casos.

Exemplo: if( a>2 && b<3).

|| (OU lógico): retorna verdadeiro se pelo

menos um dos operandos é verdadeiro, e

falso se ambos são falsos.

Exemplo: if( a>1 || b<2).

! (NÃO lógico): usada com apenas um

operando. Retorna verdadeiro se o operando

é falso e vice-versa.

Exemplo: if( !var ).

Operadores Lógicos

23

Page 24: Linguagem de Programação C - Uma Introdução

F ou F FF e F F

F ou V VF e V F

Não V FV ou F VV e F F

Não V FV ou V VV e V V

Tabela NÃOTabela OUTabela E

Tabela Verdade

24

Page 25: Linguagem de Programação C - Uma Introdução

Em portugol, o

comando de decisão

tem a seguinte

sintaxe:

se <condição> entao

<bloco de comandos>

senao

<bloco de comandos>

fimse

Estrutura de Decisão

Na linguagem C a

sintaxe é esta;

if (<condiçao>) {

<bloco de comandos>

}

else {

<bloco de comandos>

}

25

Page 26: Linguagem de Programação C - Uma Introdução

Observações:

Em C, a condição deve estar entre

parênteses;

Não existe a cláusula then e fimse;

O bloco de comandos deve estar entre

chaves{} (a menos que seja um único

comando;

A cláusula else é opcional;

A expressão é avaliada. Se ela for

verdadeira, o bloco if é executado. Caso

contrário, o bloco do else (se existir) é

executado;

Lembre-se: Apenas o código associado ao

if ou else será executado, nunca ambos.

Estrutura de Decisão

26

Page 27: Linguagem de Programação C - Uma Introdução

Escreva um algoritmo para determinar se uma pessoa é

maior ou menor idade.

#include <stdio.h>

#include <stdlib.h>

main (){

int idade;

printf ("Digite a idade da pessoa: ");

scanf ("%d", &idade);

if (idade >= 18)

printf ("Pessoa é maior de idade.\n");

else

printf ("Pessoa é menor de idade.\n");

system("pause");

}

Exemplo

27

Page 28: Linguagem de Programação C - Uma Introdução

Parte III

Estruturas de Repetição

28

Page 29: Linguagem de Programação C - Uma Introdução

São estruturas que permitem executar um

trecho de código várias vezes de acordo com

uma condição de parada.

Na linguagem C podemos escolher entre três

tipos de estruturas de repetição:

while (avalia a condição no início do laço)

do while (avalia a condição no fim do laço)

for (Usada principalmente em contagens)

Como veremos a seguir...

Estruturas de Repetição

29

Page 30: Linguagem de Programação C - Uma Introdução

while (condição){

<blocos de comandos>

}

Não esquecer dos parênteses;

O bloco de comandos será executado

enquanto a condição for verdadeira;

O programador deve cuidar para que a

condição fique falsa em algum

momento, do contrário o programa fica

indefinidamente repetindo os

comandos.

Estrutura while

30

Page 31: Linguagem de Programação C - Uma Introdução

Exemplo while

#include <stdio.h>#include <stdlib.h>//Exibir os números de 1 a 10 usando o comando while

main(){

int cont = 1 ;do while(cont <= 10) {

printf ("%d \n", cont); cont++;

}

system("PAUSE");

}Pergunta: O que vai acontecer se você inicializar a variável cont com o valor 11?

31

Page 32: Linguagem de Programação C - Uma Introdução

do {

<blocos de comandos>

} while (condição);

• Não esquecer dos parênteses;

• Os comandos serão executados pelo menos

uma vez. E continuarão sendo executados

enquanto a condição for verdadeira;

• O programador deve cuidar para que a

condição fique falsa em algum momento, do

contrário o programa fica indefinidamente

repetindo os comandos.

Estrutura do while

32

Page 33: Linguagem de Programação C - Uma Introdução

Exemplo do while

#include <stdio.h>#include <stdlib.h>//Exibir os números de 1 a 10 usando o comando do while

main(){

int cont = 1 ;do {

printf ("%d \n", cont); cont++;

} while (cont <=10)

system("PAUSE");

}Pergunta: O que vai acontecer se você inicializar a variável cont com o valor 11?

33

Page 34: Linguagem de Programação C - Uma Introdução

for (var=inicio; condição; incremento){

<bloco de comandos>

}

Não esquecer dos parênteses;

Os comandos serão executados enquanto a condição for verdadeira

O incremento ou decremento é executadoautomaticamente após a execução dos comandos

Estrutura for

34

Page 35: Linguagem de Programação C - Uma Introdução

#include <stdio.h>

#include <stdlib.h>

//Exibir os números de 1 a 10 usando o comando for

main()

{

int cont ;

for (cont = 1; cont <= 10; contador++ )

{

printf ("%d \n", cont);

}

system("PAUSE");

}

Exemplo for

35

Page 36: Linguagem de Programação C - Uma Introdução

E para forçar o término da repetição?

Use um break.

Exemplo: Saída:

1

2

3

4

5

após o FOR: 5

Press any key

to continue...

#include <stdio.h>

#include <stdlib.h>

main(){

int I;

for (I=1; I<=10; I=I+1){

printf ("%d\n",I);

if (I==5) break;

}

printf(“apos o FOR: %d\n",I);

}

Atenção para o valor de saída da variável de controle

Comando break

36

Page 37: Linguagem de Programação C - Uma Introdução

Saiba mais...

Estas aulas foram adaptadas e compiladas a

partir dos seguintes textos disponíveis na

Internet:

www.deinf.ufma.br/~cav/c-basico.ppt

www.inf.ufrgs.br/~alvares/INF01040/Aula5-IntroducaoC.ppt

http://www.fsc.ufsc.br/~canzian/root/tutorial-c-unicamp.pdf

Consulte o blog para materiais complementares e exercícios

resolvidos

http://www.josecintra.com/blog

37