introdução à linguagem c.pdf

33
Conteúdo Conceitos básicos Variáveis Estruturas de Controle Funções E é só isso? Referências Introdução à Programação em C Afrânio Melo Junior [email protected] Grupo de Integração de Processos Químicos Departamento de Engenharia Química, Escola de Química Universidade Federal do Rio de Janeiro 2013/2 1 / 33

Upload: afranio-junior

Post on 02-Jan-2016

30 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

Introdução à Programação em C

Afrânio Melo [email protected]

Grupo de Integração de Processos QuímicosDepartamento de Engenharia Química, Escola de Química

Universidade Federal do Rio de Janeiro

2013/2

1 / 33

Page 2: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

1 Conceitos básicosProgramaçãoA linguagem CHello World!

2 VariáveisO que são variáveis?Declaração X DefiniçãoExemplos

3 Estruturas de ControleImportânciaEstruturas condicionais: expressões lógicasEstruturas condicionais: o bloco ifEstruturas iterativas: o bloco whileEstruturas iterativas: o bloco for

4 FunçõesO que é uma função?Exemplos

5 E é só isso?6 Referências

2 / 33

Page 3: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

ProgramaçãoA linguagem CHello World!

O que é programação?

DefiniçõesComputadores são máquinas projetadas pararealizar operações aritméticas e lógicasseguindo uma série de instruções pré-definidas.Um conjunto de instruções destinadas a seremseguidas por um computador é conhecidocomo programa.Portanto, a programação pode ser definidacomo a arte de se escrever códigos que contéminstruções para determinadas tarefas a seremrealizadas por um computador.

Figura 1: Computador.

3 / 33

Page 4: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

ProgramaçãoA linguagem CHello World!

Programando

Comunicação com o computadorComputadores só entendem linguagem binária. Ou seja, todas as instruções quedesejarmos passar a um computador devem estar expressas em termos de 0 ou 1.Exemplo de uma instrução entendida por um computador: 000101010101.O problema é que seres humanos (normais) não entendem binário! Como efetuara comunicação entre o homem e o computador?Com o objetivo de resolver este problema, foram criadas as linguagens deprogramação.

Linguagens de programaçãoAs primeiras linguagens de programação que surgiram foram as de baixo nível.Estas apresentam sintaxes relacionadas diretamente às instruções que devem serseguidas por um processador (apresentando pouco comprometimento em relaçãoà legibilidade por humanos). Um exemplo é a Assembly.Mais tarde, foram aparecendo linguagens de alto nível, que têm mais relação comos objetivos gerais do programador do que com as tarefas específicas doprocessador (sendo muito mais práticas, porém menos eficientes). Exemplos sãoC, Fortran, Python ou Matlab.

4 / 33

Page 5: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

ProgramaçãoA linguagem CHello World!

Rodando o programa

Linguagens compiladas X Linguagens interpretadasImagine que você escreveu um programa emalguma linguagem de alto nível. Como fazerpara rodá-lo?Em primeiro lugar, é preciso traduzir o códigoda linguagem de programação (que vocêentende) para a linguagem binária (que amáquina entende). Isto pode ser feito de duasmaneiras:

Compilação: neste caso, traduz-se todo oprograma de uma só vez para o código binário,gerando um arquivo chamado executável. Esteexecutável então pode ser rodado. Exemplos delinguagens compiladas: C/C++, Fortran.Interpretação: aqui, o programa é traduzido eexecutado linha por linha. O desempenho émenor em relação aos programas compilados.Exemplos de linguagens interpretadas: Python,Matlab, Octave.

Figura 2: Ilustração da necessidade dacompilação ou interpretação.

5 / 33

Page 6: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

ProgramaçãoA linguagem CHello World!

A linguagem C

Figura 3: Dennis Ritchie.

A LinguagemO C é uma linguagem compilada, de médio aalto nível e de uso geral, inicialmentedesenvolvida por Dennis Ritchie no AT&T BellLabs no começo da década de 70.É uma das linguagens mais influentes e bemsucedidas da história da computação, tendoservido como base para o desenvolvimento deoutras linguagens importantes, como C++ eC#.

6 / 33

Page 7: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

ProgramaçãoA linguagem CHello World!

Hello World!

O programa Hello World!

# include <stdio .h>

int main (){

printf (" Hello World !\n");return 0;

}

Nosso primeiro programa em CVamos começar analisando linhapor linha o exemplo clássico doprograma Hello World!Compile o código ao lado e o rode.Qual o efeito que ele produz?

7 / 33

Page 8: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

ProgramaçãoA linguagem CHello World!

Hello World!

O programa Hello World!

# include <stdio .h>

int main (){

printf (" Hello World !\n");return 0;

}

#include <stdio.h>Linhas iniciadas com # sãodiretrizes para o pré-processador.Neste estágio preliminar, você podeentender as diretrizes como tarefaspreliminares que o compiladorprecisa cumprir antes da compilaçãoem si.Neste caso, a diretriz #includeinclui no nosso programa abiblioteca stdio.h, que contém asdefinições básicas para realizarentrada e saída de dados em C.

8 / 33

Page 9: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

ProgramaçãoA linguagem CHello World!

Hello World!

O programa Hello World!

# include <stdio .h>

int main (){

printf (" Hello World !\n");return 0;

}

int main ()Esta linha é o início da funçãomain. Todo código em C deve teruma função main; ela marca oponto em que o programa começasua execução.Uma função em C pode aceitaruma certa quantidade deparâmetros e retornar um valor.Neste caso, a função main retornaum valor (do tipo inteiro, int) e nãoaceita nenhum parâmetro (devidoao parênteses vazio).Dentro das chaves está o bloco quecorresponde ao corpo da função.

9 / 33

Page 10: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

ProgramaçãoA linguagem CHello World!

Hello World!

O programa Hello World!

# include <stdio .h>

int main (){

printf (" Hello World !\n");return 0;

}

O corpo da função mainNo corpo da main há doiscomandos (ordens que passamos aocomputador). Um comando é umaexpressão, simples ou composta,que pode produzir algum efeito.Todos os comandos em Cnecessariamente terminam emponto-e-vírgula!

10 / 33

Page 11: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

ProgramaçãoA linguagem CHello World!

Hello World!

O programa Hello World!

# include <stdio .h>

int main (){

printf (" Hello World !\n");return 0;

}

printf(“Hello World!”);O comando printf – que estádefinido na biblioteca stdio.h,incluída no início do nossoprograma – serve para imprimirdados em tela.No nosso caso, o comando imprimena tela o conjunto de caracteresHello World!, e pula uma linha(devido ao caractere de escape \n).

11 / 33

Page 12: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

ProgramaçãoA linguagem CHello World!

Hello World!

O programa Hello World!

# include <stdio .h>

int main (){

printf (" Hello World !\n");return 0;

}

return 0;O comando return indica o fim dafunção (no caso da main, o fim doprograma) e nele é especificado ovalor que esta deve retornar.O valor 0, retornado pela funçãomain, avisa ao sistema operacionalque o programa terminounormalmente.

12 / 33

Page 13: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

O que são variáveis?Declaração X DefiniçãoExemplos

O que são variáveis?

VariáveisVariáveis são porções da memória que armazenam algum valor.Toda variável em C precisa ter um identificador (nome que a distingue das outrasvariáveis) e um tipo (que indica sua natureza).

Tipos de variáveisExemplos de alguns tipos: int (número inteiro), float (número decimal), double(decimal com precisão dupla), char (caractere simples), etc.Cada tipo de variável ocupa um determinado espaço na memória. Por exemplo,uma variável int ocupa 4 bytes, geralmente.A linguagem C também permite a criação de tipos definidos pelo usuário.

13 / 33

Page 14: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

O que são variáveis?Declaração X DefiniçãoExemplos

Declaração X Definição

Declaração de variáveisAntes da utilização de uma variável pelo programa, precisamos dizer aocompilador que ela existe. Isto é feito através da declaração desta variável.A sintaxe para se declarar uma variável em C é: tipo_da_variavel identificador;Exemplos: int a; float nome; double minha_variavel;

Definição de variáveisQuando declaramos uma variável, é como se estivéssemos apenas dizendo aocompilador: “há uma variável com este tipo, e que tem este nome”. Mas ela nãoarmazena nenhum valor útil (apenas lixo de memória).Para atribuir um valor à uma variável, podemos defini-la.A definição é feita através do operador de atribuição (=).Ex: a = 3; nome = 5.7; minha_variavel = 10.89;Podemos definir uma variável ao mesmo tempo em que a declaramos: int a = 4;Erro comum: tentar definir uma variável sem tê-la declarado.

14 / 33

Page 15: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

O que são variáveis?Declaração X DefiniçãoExemplos

Exemplo (certo)

# include <stdio .h>

// este eh um comentario . comentarios sao ignorados pelo compilador

int main (){

// declarando variaveisint a;double b;int c;double d, e;

// definindo variaveis ao mesmo tempo em que declaramosdouble f = 1.5; float g = 0.5;

// definindo as variaveis declaradas no inicio do codigoc = 4;d = e = 2.5;

// operando com as variaveisa = 3*(c+2); // "a" foi antes declarada , mas nao definida !b = f*(g*(d+e)); // "b" foi antes declarada , mas nao definida !c = c+a; // redefinindo "c"

// mostrando resultados na telaprintf ("\nOs resultados s o : %d, %f, %d \n\n", a, b, c);

}15 / 33

Page 16: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

O que são variáveis?Declaração X DefiniçãoExemplos

Exemplo (errado)

# include <stdio .h>

/* este eh um bloco de comentariosquaisquer linhas que sejam escritas aquiserao consideradas comentarios */

int main (){

// declarando variaveisfloat a, b;

// calculandoa = 2;c = a/b;

// mostrando resultado na telaprintf ("\nO resultado : %f \n\n", c);

}

16 / 33

Page 17: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

ImportânciaEstruturas condicionais: expressões lógicasEstruturas condicionais: o bloco ifEstruturas iterativas: o bloco whileEstruturas iterativas: o bloco for

Estruturas de controle

ImportânciaO coração da arte de se programar encontra-senas estruturas de controle.Digitar uma linha para cada operação feita oudecisão tomada pelo computador seriacansativo, concorda?Através das estruturas de controle, podemoscom poucas linhas de código ordenar aocomputador o que ele realmente foi designadopara fazer, ou seja, tarefas repetitivas eautomáticas.Dividem-se em dois tipos.

Estruturas condicionais;Estruturas iterativas.

Figura 4: Exemplo de um algoritmo queutiliza estruturas condicionais eiterativas.

17 / 33

Page 18: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

ImportânciaEstruturas condicionais: expressões lógicasEstruturas condicionais: o bloco ifEstruturas iterativas: o bloco whileEstruturas iterativas: o bloco for

Estruturas Condicionais

Expressões lógicasAs estruturas condicionais avaliam expressões lógicas para decidir se executam ounão algum comando ou conjunto de comandos.Expressões lógicas só podem resultar em dois valores: verdadeiro ou falso.A ideia é simples: se o resultado da expressão for verdadeiro, o(s) comando(s)são executado(s). Se for falso, não são executado(s).As expressões lógicas são construídas de acordo com a álgebra booleana.

18 / 33

Page 19: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

ImportânciaEstruturas condicionais: expressões lógicasEstruturas condicionais: o bloco ifEstruturas iterativas: o bloco whileEstruturas iterativas: o bloco for

Estruturas Condicionais

Figura 5: Operadores condicionais usados em expressões lógicas

19 / 33

Page 20: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

ImportânciaEstruturas condicionais: expressões lógicasEstruturas condicionais: o bloco ifEstruturas iterativas: o bloco whileEstruturas iterativas: o bloco for

Estruturas Condicionais

ifExecuta um ou mais comandos sob determinada condição, representada por umaexpressão lógica. A sintaxe é:

if (condicao){

lista de comandos;}else if (outra condicao){

outra lista de comandos;}else{

ultima lista de comandos;}

ExemploEscreva um programa que peça ao usuário um valor de temperatura, em °C, eindique em qual estado físico, ao nível do mar, se encontra a água.

20 / 33

Page 21: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

ImportânciaEstruturas condicionais: expressões lógicasEstruturas condicionais: o bloco ifEstruturas iterativas: o bloco whileEstruturas iterativas: o bloco for

Exemplo - if

# include <stdio .h>

int main (){

double T;

printf (" Insira a temperatura , em graus Celsius \n");scanf ("%lf", &T);

if (T < -273.15){

printf (" Temperatura abaixo do zero absoluto ! \n");}else if (T > -273.15 & T <0){

printf ("Agua no estado solido \n");}else if (T==0){

printf ("Agua no equilibrio S-L \n");}

21 / 33

Page 22: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

ImportânciaEstruturas condicionais: expressões lógicasEstruturas condicionais: o bloco ifEstruturas iterativas: o bloco whileEstruturas iterativas: o bloco for

Exemplo - if (cont.)

else if (T >0 & T <100){

printf ("Agua no estado liquido \n");}else if (T ==100){

printf ("Agua no equilibrio L-V \n");}else{

printf ("Agua no estado vapor \n");}

}

22 / 33

Page 23: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

ImportânciaEstruturas condicionais: expressões lógicasEstruturas condicionais: o bloco ifEstruturas iterativas: o bloco whileEstruturas iterativas: o bloco for

Estruturas Iterativas

whileExecuta, enquanto uma dada condição permanece satisfeita, um ou maiscomandos. A sintaxe é:

while (condicao){

lista de comandos;}

ExemploMostre a lista dos números naturais em tela, desde o 5000, em ordem decrescente.

23 / 33

Page 24: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

ImportânciaEstruturas condicionais: expressões lógicasEstruturas condicionais: o bloco ifEstruturas iterativas: o bloco whileEstruturas iterativas: o bloco for

Exemplo - while

# include <stdio .h>

int main (){

int i = 1000;

while (i >0){

printf ("%d ",i);i = i -1;

}

printf (" acabou !");

}

24 / 33

Page 25: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

ImportânciaEstruturas condicionais: expressões lógicasEstruturas condicionais: o bloco ifEstruturas iterativas: o bloco whileEstruturas iterativas: o bloco for

Estruturas Iterativas

forExecuta, enquanto uma dada condição permanece satisfeita, um ou maiscomandos enquanto um contador percorre valores em passos definidos. A sintaxeé:

for (inicializacao; condicao; passo){

lista de comandos;}

ExemploCalcule a soma:

6∑i=1

3i+1

25 / 33

Page 26: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

ImportânciaEstruturas condicionais: expressões lógicasEstruturas condicionais: o bloco ifEstruturas iterativas: o bloco whileEstruturas iterativas: o bloco for

Exemplo - for

# include <stdio .h># include <math.h>

int main (){

int i; // contadorint soma = 0; // valor da soma

for(i=1;i <=6;i++) // novo operador (++) : i++ significa i = i+1{

soma = soma + pow (3 ,(i+1));}

printf ("\nO resultado eh: %d\n\n", soma);

}

26 / 33

Page 27: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

O que é uma função?Exemplos

Funções

O que é uma função?Uma função é um grupo de comandos que é executado quando chamado dealgum ponto do programa. A sintaxe é:

tipo_retornado nome_da_funcao (parametro1, parametro2,...){

lista de comandos;}

Funções são extremamente úteis no sentido em que podemos organizar nossoprograma de uma maneira modular, aproveitando-nos assim de todo o potencialque o paradigma de programação estruturada do C pode nos oferecer.

ExemplosEscreva um programa que contenha uma função que compute a soma de doisnúmeros inteiros. Demonstre o uso da função.Escreva um programa que resolva a equação x− cos(x) = 0 pelo método dabisseção.

27 / 33

Page 28: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

O que é uma função?Exemplos

Exemplo 1 - funções

# include <stdio .h>

int adicao (int a, int b){

int r;r = a+b;return r;

}

int main (){

int z = adicao (2 ,3);printf ("\nO resultado eh: %d\n\n", z);

}

28 / 33

Page 29: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

O que é uma função?Exemplos

Exemplo 2 - funções

# include <stdio .h># include <stdlib .h># include <math.h>

double f ( double x); // equacao a ser resolvidadouble bissecao ( double a, double b, double tol , int it_max ); // metodo

int main (){

double z = bissecao (0, 10, 1e-4, 50);printf ("\nO resultado eh: %e\n\n", z);

}

double f( double x){

double y = x - cos(x);return y;

}

29 / 33

Page 30: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

O que é uma função?Exemplos

Exemplo 2 - funções (cont.)

double bissecao ( double a, double b, double tol , int it_max ){

double c; // usado na iteracaoint it; // contador

printf ("\ nResolvendo equacao transcedental pelo metodo da Bissecao :\n\n");

if(f(a)*f(b) >0){

printf ("\ nAtencao ! A raiz nao encontra -se no intervalo dado .\n\n **** ERROFATAL **** INTERROMPENDO ****");

exit ( -1);}

else{

printf ("it \t a \t b \t c \t f(c) \t \n");

30 / 33

Page 31: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

O que é uma função?Exemplos

Exemplo 2 - funções (cont.)

for (it =1;it <= it_max ;it ++){

c =0.5*( a+b);

if (f(a)*f(c) <0)b=c;

elsea=c;

printf ("%d \t %e \t %e \t %e \t %e\n\n", it , a, b,c, f(c));

if (fabs(f(c)) <=tol){

return c;break ;

}

if (it >= it_max ){

printf ("\n METODO DIVERGIU \n\n ***** ERRO FATAL ***** INTERROMPENDO***** ");

exit ( -1);}

}}

}

31 / 33

Page 32: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

O que não vimos

O C possui muitos outros recursos que infelizmente não pudemos explorar aqui!Dentre eles, destaco:

Arrays: são séries de elementos do mesmo tipo locados em blocos contíguos damemória. São os análogos computacionais aos vetores (array 1-D) e matrizes (arraymulti-D) da matemática;Ponteiros: são uma das mais poderosas ferramentas da linguagem C; permitemmanipular as variáveis do programa diretamente pelo seu endereço da memória, o quepode aumentar bastante a flexibilidade na programação;Tipos definidos pelo usuário: não precisamos nos restringir aos tipos definidos no padrãoda linguagem. Podemos criar tipos customizados (casa, carro, cachorros, reatores) quepossuem seus próprios atributos. Ver structs, typedefs, unions e enumerations.

32 / 33

Page 33: Introdução à linguagem C.pdf

ConteúdoConceitos básicos

VariáveisEstruturas de Controle

FunçõesE é só isso?Referências

Referências

Stephen G. Kochan - Programming in C - Sams Pulishing, Third Edition, 2005;Herbert Schildt - C Completo e Total - Makron Books - Terceira Edição, 1997;Julian Soulié - C++ Language Tutorial, 2007 - Disponível emwww.cplusplus.com;www.cprogramming.com

33 / 33