View
31
Download
0
Category
Preview:
Citation preview
ConteúdoConceitos básicos
VariáveisEstruturas de Controle
FunçõesE é só isso?Referências
Introdução à Programação em C
Afrânio Melo Juniorafrjr3@gmail.com
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Recommended