SlideShare una empresa de Scribd logo
1 de 141
Introdução a Linguagem de Programação C Fabiano Russo [email_address]
Breve Histórico ,[object Object],[object Object],[object Object]
C comparado a outras linguagens ,[object Object]
C comparado a outras linguagens Nível Baixo Nível Médio Nível Alto Velocidade Clareza Assembler  C COBOL Basic Pascal Ada Modula -2
Aplicações escritas em C ,[object Object],[object Object],[object Object],[object Object]
Características da Linguagem C ,[object Object],[object Object],[object Object],[object Object],[object Object]
Características da Linguagem C ,[object Object],[object Object]
Detalhes Importantes ,[object Object],[object Object],[object Object]
Palavras reservadas ,[object Object],[object Object],[object Object]
Bibliotecas ,[object Object],[object Object],[object Object],[object Object],[object Object]
Estrutura de um programa C ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Estrutura de um programa C ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Digitando um programa C ,[object Object],[object Object],[object Object]
Compilando e Executando ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Variável ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Nomes de Variáveis ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Declaração de Variáveis ,[object Object],[object Object],[object Object],[object Object],[object Object]
Tipos Básicos de Dados ,[object Object],[object Object],tipo  bytes  escala   char  1  -128  a  127   int  2  -32.768  a  32.767   float  4  3.4e-38  a  3.4e+38   double  8  1.7e-308  a  1.7e+308
Diferentes tipos de inteiros ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Programa Exemplo – Tipos de Dados e Variáveis ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Comandos básicos ,[object Object],Entrada de Dados Processamento de dados Saída de Dados
Intruções de E/S – Scanf ( ) ,[object Object],[object Object],[object Object],[object Object],OBS :  Para seqüência de caracteres (%s), o caracter  &  não deverá ser usado.
Comandos de E/S – printf ( ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
String de controle ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Exemplo strings de controle ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Operador de Endereço & ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Operador de Endereço & ,[object Object],Ex: Main ( ) { int num; num = 2; printf (“valor = %d, endereço = %Iu”, num,&num); }   Saída:  valor = 2,  endereço = 1230 Varia conforme memória da máquina
Caracteres Especiais ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Formatando as saídas - printf ,[object Object],#include <stdio.h> main ( ) { printf (“os alunos são %2d ”, 350); printf (“os alunos são %4d ”, 350); printf (“os alunos são %5d ”, 350); }  Saída:  os alunos são 350   os alunos são  350 os alunos são  350
Formatando as saídas - printf ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Saída:  3456.8   3456.780
Programando – Exercício 1 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Programando – Exercício 2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Operadores Aritméticos Subtração (unário) - Decremento -- Incremento ++ Resto da divisão inteira % Divisão / Multiplicação * Adição + Ação Operador
Operadores Relacionais e Lógicos Condição “E” && Condição “OU” || Não ! Igual a == Diferente de != Menor ou igual que <= Menor que < Maior ou igual que >= Maior que > Ação Operador
Operadores - Observação ,[object Object]
Operadores - Exemplo ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Saída: Verd.=1  Falso = 0
Comparações e Testes ,[object Object],Se x = 10; y = ++x;  /* x=x+1;  y=x; */ então  x = 11  e y = 11 porém Se x = 10; y = x++; /* y=x;  x=x+1 */ então  x = 11   e  y = 10
Programa Exemplo – Pre/Pos Incremento ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Quais são as saídas deste programa ?
Comparações e Testes ,[object Object],[object Object],[object Object],[object Object],Qual seria a saída deste comando? resultaria em  1 == 2  0   (pois a expressão é falsa)
Comparações e Testes ,[object Object],Como seria avaliado esta instrução? resultaria em Verdadeiro, pois dez é maior que quatro E dez não é menor que nove OU três é menor ou igual a quatro
Operador Sizeof ,[object Object],[object Object]
Conversões de Tipos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conversões de Tipos - NOTA ,[object Object]
Exercícios ,[object Object],[object Object]
Estruturas de Decisão ,[object Object],[object Object],[object Object],[object Object],[object Object]
Comando if ,[object Object],[object Object],# include <stdio.h> main ( ) { char ch; ch = getchar ( ); if  (ch == ‘p’) printf (“você pressionou a tecla p”); }   if (condição) { instrução1; intrução2; } #include <stdio.h>  main ( ) { if  (getchar()) == ‘p’ ) { printf (“ você digitou p”); printf (“ pressione outra tecla ”);   getchar( ); } }
if aninhados  ,[object Object],#include <stdio.h> main ( ) { char ch; printf (“ digite uma letra  entre A e Z”); ch = getchar ( ); if (ch >= ‘A’) if (ch < = ‘Z’) printf (“ você acertou”); }   #include <stdio.h> main ( ) { char ch; printf (“ digite uma letra  entre A e Z”); ch = getchar ( ); if  ((ch >= ‘A’)  &&  (ch < = ‘Z’))   printf (“ você acertou”); }
Comando if-else ,[object Object],[object Object]
Comando if-else ,[object Object],[object Object],[object Object],[object Object],#include <stdio.h> main ( ) {  if (getchar ( ) == ‘p’) printf (“ você digitou p”); else printf (“ você não digitou p”); }
Exemplo: Evitar-se divisões por Zero, usando recursos do comando if-else. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Comando if-else aninhados ,[object Object],[object Object],[object Object],[object Object],[object Object],#include <stdio.h>  main ( ) { int número; scanf (“ % d”, &número);    if (número < 0) printf (“número menor que zero”); else if (número < 10) printf (“ número    e < 10”); else if (número < 100)   printf (“número    10 e < 100);   else   printf (“número   100”); }
Como o computador decide de qual  if  o else   pertence?   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ex1:  Quando n > 0 e a < b Ex2:  Quando n < 0 ,[object Object],[object Object],Ex2: if  (n > 0) { if (a > b) z = a; }  else z = b;
Exemplo 1: Programa Adulto, Jovem ou Velho. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Exemplo 2: Maior entre três números ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],main() { int a,b,c,d; cls(); printf(“Digite o 1º Número: “); scanf(“%d”,&a); printf(“Digite o 2º Número: “); scanf(“%d”,&b); printf(“Digite o 3º Número: “); scanf(“%d”,&c); if (a > b) d = a; else d = b; if (c > d) printf(“O Maior é %d”,c); else printf(“O Maior é %d”,d); }
Exemplo 3: Dados 2 números apresente-os ordenados. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Comando ?: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Exercícios ,[object Object],[object Object],[object Object]
Comando Switch ,[object Object],[object Object]
Comando Switch ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Comando Switch -  Ex: uma calculadora ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Exercício ,[object Object],[object Object],[object Object],[object Object],[object Object]
Estruturas de Repetição ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Como imprimir os 1000 1 os  números a partir de 1?
Estruturas de Repetição ,[object Object],[object Object],#include<stdio.h> m ain ( ) {   int num;     for (num = 1;  num <= 1000;  num++)   printf (“ % d”, num); }   Saída:  1  2  3 ... 1000
Comando for for (<início>;<condição>;<incremento>) <comando>;   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Comando for ,[object Object],[object Object],[object Object],[object Object],#include<stdio.h> main ( ) { int número;   for  ( número = 2;  número < 10;  número +=  2 )   printf (“ %d”, número); }   Saída  2  4  6  8
Comando for ,[object Object],for (x=0,y=0;x+y<100;++x,y=y+x)  printf(“%d”,x+y);   Esta instrução inicializaria x e y com zero, incrementando x de 1 em 1 e y receberia seu valor acrescido do de x. O resultado a cada iteração seria impresso desta forma: 0 (x=0 e y=0) 2 (x=1 e y=1) 5 (x=2 e y=3) 9 14 e assim sucessivamente.
Comando for - Exemplo ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Comando for –  loop infinito ,[object Object],for(;;) printf(“Este loop rodará eternamente!”);
Comando for –  Loop Vazio ,[object Object],for(i=0;i<10;i++);
Comando for –  Loop Finito ,[object Object],for(;;) { scanf(“%c”,&c); if (c == ‘A’)    break;  /*interrompe o que deveria ser um laço eterno*/ } printf(“Fim do Loop!”);
Comando While ,[object Object],Exemplo: Contagem #include <stdio.h> main() { int i=0; while (i < 10) { printf(“%d”,i); i++; } }   ,[object Object]
Comando do - while ,[object Object],do { <comandos>; } while <condição>;   Exemplo: Término determinado pelo usuário. #include <stdio.h> main() { int num; do { scanf(“%d”,&num); } while (num < 100); }
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Exercícios
Funções / Procedimentos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Procedimentos ,[object Object],[object Object],#include <stdio.h>  void desenha(); void  desenha( ) { int i; for (i = 0;  i < = 10;  i++) printf (“-”); }   main ( ) { desenha ( ); printf (“ usando funções”);   desenha ( ); } ___________usando  funcoes___________
Funções ,[object Object],#include <stdio.h> int  fatorial (int); int  fatorial (int  n) { int  i, resultado = 1;    for ( i = 1;  i <= n;  i ++) resultado *=  i; return  resultado; }  main ( ) { printf (“ o fatorial de 4 = %d”, fatorial(4) ); printf (“ o fatorial de 3 = %d”, fatorial(3) ); }
Variáveis locais ,[object Object],[object Object]
Variáveis Locais ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],void desenha ( ) { int i, j; .  .  . .  .  . } void calcula ( ) { int i, j; .  .  . .  .  . }   i, j  em desenha são variáveis diferentes de i, j em  calcula.
Variáveis Globais ,[object Object],#include <stdio.h> main ( ) { int i;    ......... ......... desenha ( ); calcula ( ); } void desenha ( ) { int j; i = 0; .  .  . }   void calcula ( ) { int m; i = 5; .  .  . }
Comando Return ,[object Object],[object Object],#include <stdio.h> main ( ) { char letra;   printf (“ digite uma letra em minúsculo”); letra = minúsculo ( ); if  (letra  == ‘a’)  printf (“ok”); } char  minúsculo ( ) { char ch; scanf(“%c”, ch);  if  ( (ch >= ‘A’)  &&  (ch <= ‘Z’)) return (ch + ‘a’ - ‘A’); else return (ch); }
[object Object],[object Object]
Passando dados para função ,[object Object],[object Object],[object Object]
Passando dados  para função ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Passando dados para função - Exemplo ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Passando vários argumentos ,[object Object],[object Object],[object Object],[object Object],[object Object],Ex 2: float potência (float  base,  int  expoente) { int  i;  float  resultado = 1; if (expoente == 0) return 1; f or (i = 1; i <= expoente; i++) resultado *= base return  resultado;  }
Usando várias funções:  calcular a seguinte seqüência ,[object Object],#include <stdio.h> float  serie (float ,  int ); float  potencia (float ,  int)   int  fat (int); main( ) { float x; int  termos;   printf(“entre com o numero de termos: “);  scanf(“%d”, &termos); printf(“entre com o valor de X: “);  scanf(“%f”, &x); printf(“O valor de série = %f “,  serie(x, termos) ); }
float  potencia (float  base,  int expoente) { int i;  float  resultado = 1;    if (expoente == 0) return 1; for (i = 1;  i <= expoente;  i++) resultado *= base; return resultado; } float  serie (float x,  int n) { int i;  float  resultado = 0;    for ( i = 1;  i <= n; i++) resultado  +=  potência( x, i )  /  fat( i ); return resultado; }
int  fat (int n) { int i, resultado = 1;   for ( i = 1;  i <= n;  i ++) resultado *= i; return resultado; }
Vetores ,[object Object],[object Object],Ex:  Ler a nota de 3 alunos e calcular a média   int  nota0, nota1, nota2;   printf(“entre com a 1a. nota”); scanf(“%d”, &nota0); : : : printf(“média = %f”, (nota0 + nota1 + nota2) / 3));
Ex: Calcular a média de 300 alunos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Vetores – Observações importantes ,[object Object],[object Object],Ex:   int  alunos;  int  notas [ alunos ]; :  : : printf (“entre com o número de alunos”); scanf (“%d”, &alunos);   NÂO É ACEITO !!!
Vetores – Observações importantes ,[object Object],Ex: int  alunos; int  notas [ 70 ]; :  : : printf (“entre com o número de alunos”); scanf (“%d”, &alunos);
Vetores – Observações importantes ,[object Object],[object Object],[object Object]
Vetores – Obs importantes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Passando um vetor para uma função ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
int  maximum( int values[5] ) { int  max_value, i; max_value = values[0]; for( i = 0; i < 5; ++i ) if( values[i] > max_value ) max_value = values[i]; return max_value; } Saída: Entre com 5 numeros: 7 23 45 9 121 Valor Maximo: 121
Matrizes ,[object Object],[object Object],[object Object],[object Object],[object Object]
Matrizes - Leitura ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Variável String ,[object Object],[object Object],[object Object],Ex:   char  string[10]  =  “exemplo” ;     char  string[10] = { “exemplo” };     char  string[10]  = { ‘e’, ‘x’, ‘e’, ‘m’, ‘p’, ‘l’, ‘o’, ‘’ };     printf ( “%s”, string );   printf ( “%c”, string [ 0 ] );
Lendo Strings ,[object Object],Ex: main ( )  { char  nome[40]; printf ( “Digite seu nome: “ ); scanf ( “%s”, &nome[ 0 ] ); //scanf ( “%s”, nome );   printf ( “Bom dia %c”, nome[0] ); } Saída : Digite seu nome:  Jose Maria Bom dia  Jose
Lendo Strings ,[object Object],[object Object],[object Object],Ex: main ( )  { char  nome[40]; printf ( “Digite seu nome: “ ); gets ( &nome[ 0 ] ); // ou  gets(nome); printf ( “Bom dia %s”, nome ); }   Saída : Digite seu nome:  Jose Maria Bom dia  Jose Maria
Imprimindo Strings ,[object Object],[object Object],Ex: main ( )  { char  nome[40]; printf ( “Digite seu nome: “ ); gets ( &nome[ 0 ] ); puts ( “Bom dia ” );  puts ( nome ); } Saída : Digite seu nome:  Jose Maria Bom dia  Jose Maria
Funções de manipulação de strings ,[object Object],[object Object],Ex: main ( )  { char  nome[40]; printf ( “Digite seu nome: “ ); gets ( &nome[ 0 ] ); printf (“Tamanho = %d”, strlen(&nome[ 0 ]) ); }   Saída : Digite seu nome:  Jose Maria Tamanho = 10
Funções de manipulação de strings ,[object Object],[object Object],Ex: main ( )  { char  nome[40]  = “Jose”,  char sobrenome[30] =  “Maria”; strcat(nome, sobrenome); puts (sobrenome); puts (nome); } Saída : Maria JoseMaria Cuidado:  dado  str1 + str2   tem que caber  em str1
Funções de manipulação de strings ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conversões ,[object Object],Exemplo: Conversão de String em Número Inteiro #include <stdio.h> main() { int i; char s[10]; printf(“Digite uma sequencia de numeros com letras: “); gets(s); i = atoi(s); printf(“Numero: %d “,i); }
Ponteiros ,[object Object]
Ponteiros ,[object Object],[object Object],[object Object],[object Object],[object Object],int teste=20; int *p; p=&teste; printf(&quot;%d&quot;,*p);
Ponteiros Outro exemplo: char algo[5] = { 5, 4, 3, 2, 1 }; char *c; c=&algo[2]; Colocamos em c o endereço do terceiro elemento de algo: c[0]=3, c[1]=2 e c[2]=1. Se tivéssemos feito c=&algo[3], então: c[0]=2 e c[1]=1.
Ponteiros ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Equivalência entre vetores e ponteiros ,[object Object],[object Object],[object Object]
Malloc e Free ,[object Object],[object Object],[object Object],[object Object],[object Object]
Printf(“Entre com o número total de alunos’”); scanf(“%d”, &numero); notas=(int *)malloc(numero * sizeof(int)); for (i=0; i,numero; i++) {   printf(“Digite a nota do aluno %d”, i+1); scanf(“%d”, &notas[i]); printf(“ A nota do aluno %d é :%d: , i+1, notas[i]); } free(notas); }
Estruturas ,[object Object]
Estruturas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Estruturas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Estrutras - Utilização do tipo ,[object Object],[object Object],[object Object],[object Object]
Vetores de Estruturas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Arquivos - feopen( ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Arquivos - putc ( ) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Arquivos - getc ( ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Arquivos - fclose ( ) ,[object Object],[object Object],[object Object]
main() { FILE *arq; char ch; if ((arq=fopen(“teste.dat”,”w”)) == NULL) { printf(“Arquivo não pode ser  criado”); exit(1); } do{ ch=getchar(); putc(ch,arq); }while (ch!=0); fclose(arq); }
Arquivos - ferror ( ) ,[object Object],[object Object]
Arquivos - rewind( ) ,[object Object]
Arquivos - fwrite ( ) fread ( ) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Arquivos - fwrite ( )  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Arquivos - fseek ( ) ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Exemplo de montagem de um pequeno cadastro de nomes, endereços e salários  de funcionários em arquivo.
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
Exemplo 1: Programa KTOD, que escreve caracteres num arquivo criado/aberto via D.O.S. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
do { putchar(ch); ch=getc(fp); } while( ch != ‘$’); fclose(fp); }
Exemplo 3: Programa para copiar Arquivos. #include “stdio.h” main(argc,argv) int argc; char *argv[]; { FILE *in, *out; char ch; if (arg != 3) { printf(“Digite o Nome dos Arquivos”); exit(1); }   if ((in=fopen(argv[1],”rb”)) == NULL) { printf(“Arquivo origem não existe”); exit(1); }   if ((out=fopen(argv[2],”wb”)) == NULL) { printf(“Arquivo destino não existe”); exit(1); } while (! feof(in))  putc(getc(in),out);  /* esta é a cópia propriamente dita */ fclose(in); fclose(out); }

Más contenido relacionado

La actualidad más candente

Introduçãso a linguagem c
Introduçãso a linguagem cIntroduçãso a linguagem c
Introduçãso a linguagem csergiocrespo
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoMauro Pereira
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Gercélia Ramos
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresWillians Miyabara
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação Marcos Gregorio
 
Estruturas em C++ (struct)
Estruturas em C++ (struct)Estruturas em C++ (struct)
Estruturas em C++ (struct)Márcio Rizzatto
 
Aula 10 - Equivalência Java x Portugol Studio - parte 1
Aula 10 - Equivalência Java x Portugol Studio - parte 1Aula 10 - Equivalência Java x Portugol Studio - parte 1
Aula 10 - Equivalência Java x Portugol Studio - parte 1Pacc UAB
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAislan Rafael
 
Introdução à programação
Introdução à programação Introdução à programação
Introdução à programação João Piedade
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação CJose Augusto Cintra
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em pptAndrei Bastos
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeRegis Magalhães
 

La actualidad más candente (20)

Introduçãso a linguagem c
Introduçãso a linguagem cIntroduçãso a linguagem c
Introduçãso a linguagem c
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 
Aula 8 - Comandos de Entrada e Saída
Aula 8 - Comandos de Entrada e SaídaAula 8 - Comandos de Entrada e Saída
Aula 8 - Comandos de Entrada e Saída
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetores
 
Algoritmos 05 - Estruturas de repetição
Algoritmos 05 - Estruturas de repetiçãoAlgoritmos 05 - Estruturas de repetição
Algoritmos 05 - Estruturas de repetição
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
 
Estruturas em C++ (struct)
Estruturas em C++ (struct)Estruturas em C++ (struct)
Estruturas em C++ (struct)
 
Aula 10 - Equivalência Java x Portugol Studio - parte 1
Aula 10 - Equivalência Java x Portugol Studio - parte 1Aula 10 - Equivalência Java x Portugol Studio - parte 1
Aula 10 - Equivalência Java x Portugol Studio - parte 1
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
 
Introdução à programação
Introdução à programação Introdução à programação
Introdução à programação
 
Algoritmos: Tipos de Dados
Algoritmos: Tipos de DadosAlgoritmos: Tipos de Dados
Algoritmos: Tipos de Dados
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 Recursividade
 

Similar a Introdução a Linguagem C

Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CJoberthSilva
 
Cet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducaommind
 
Linguagem c wellington telles - aula 03
Linguagem c   wellington telles - aula 03Linguagem c   wellington telles - aula 03
Linguagem c wellington telles - aula 03profwtelles
 
Introdução+à+linguagem+c
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+cThiago Freitas
 
Comandos de Controle de Programa em C
Comandos de Controle de Programa em CComandos de Controle de Programa em C
Comandos de Controle de Programa em CElaine Cecília Gatto
 
Aula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdfAula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdfvictorlopes714651
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funçõesCarla Lee
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem cvingue
 
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdfAlgoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdfEnio Filho
 
Algoritmo e lógica de programação - aula 2
Algoritmo e lógica de programação - aula 2Algoritmo e lógica de programação - aula 2
Algoritmo e lógica de programação - aula 2engenhariadecomputacao
 
Aula01
Aula01Aula01
Aula01vdlos
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfEizoKato
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfEizoKato
 
Henriquecristovao manual c-cpp
Henriquecristovao manual c-cppHenriquecristovao manual c-cpp
Henriquecristovao manual c-cppRUI VIEIRA
 

Similar a Introdução a Linguagem C (20)

Linguagem C clecioamerico
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamerico
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação C
 
Cet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducao
 
Linguagem c wellington telles - aula 03
Linguagem c   wellington telles - aula 03Linguagem c   wellington telles - aula 03
Linguagem c wellington telles - aula 03
 
Aula09 traducaosin110
Aula09 traducaosin110Aula09 traducaosin110
Aula09 traducaosin110
 
Introdução+à+linguagem+c
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+c
 
Comandos de Controle de Programa em C
Comandos de Controle de Programa em CComandos de Controle de Programa em C
Comandos de Controle de Programa em C
 
Aula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdfAula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdf
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
 
Ling c
Ling cLing c
Ling c
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdfAlgoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
 
Algoritmo e lógica de programação - aula 2
Algoritmo e lógica de programação - aula 2Algoritmo e lógica de programação - aula 2
Algoritmo e lógica de programação - aula 2
 
Aula01
Aula01Aula01
Aula01
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
 
Henriquecristovao manual c-cpp
Henriquecristovao manual c-cppHenriquecristovao manual c-cpp
Henriquecristovao manual c-cpp
 
Linguagem C - Controle de Programa
Linguagem C - Controle de ProgramaLinguagem C - Controle de Programa
Linguagem C - Controle de Programa
 

Introdução a Linguagem C

  • 1. Introdução a Linguagem de Programação C Fabiano Russo [email_address]
  • 2.
  • 3.
  • 4. C comparado a outras linguagens Nível Baixo Nível Médio Nível Alto Velocidade Clareza Assembler C COBOL Basic Pascal Ada Modula -2
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33. Operadores Aritméticos Subtração (unário) - Decremento -- Incremento ++ Resto da divisão inteira % Divisão / Multiplicação * Adição + Ação Operador
  • 34. Operadores Relacionais e Lógicos Condição “E” && Condição “OU” || Não ! Igual a == Diferente de != Menor ou igual que <= Menor que < Maior ou igual que >= Maior que > Ação Operador
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88. float potencia (float base, int expoente) { int i; float resultado = 1;   if (expoente == 0) return 1; for (i = 1; i <= expoente; i++) resultado *= base; return resultado; } float serie (float x, int n) { int i; float resultado = 0;   for ( i = 1; i <= n; i++) resultado += potência( x, i ) / fat( i ); return resultado; }
  • 89. int fat (int n) { int i, resultado = 1;   for ( i = 1; i <= n; i ++) resultado *= i; return resultado; }
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97. int maximum( int values[5] ) { int max_value, i; max_value = values[0]; for( i = 0; i < 5; ++i ) if( values[i] > max_value ) max_value = values[i]; return max_value; } Saída: Entre com 5 numeros: 7 23 45 9 121 Valor Maximo: 121
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111. Ponteiros Outro exemplo: char algo[5] = { 5, 4, 3, 2, 1 }; char *c; c=&algo[2]; Colocamos em c o endereço do terceiro elemento de algo: c[0]=3, c[1]=2 e c[2]=1. Se tivéssemos feito c=&algo[3], então: c[0]=2 e c[1]=1.
  • 112.
  • 113.
  • 114.
  • 115. Printf(“Entre com o número total de alunos’”); scanf(“%d”, &numero); notas=(int *)malloc(numero * sizeof(int)); for (i=0; i,numero; i++) { printf(“Digite a nota do aluno %d”, i+1); scanf(“%d”, &notas[i]); printf(“ A nota do aluno %d é :%d: , i+1, notas[i]); } free(notas); }
  • 116.
  • 117.
  • 118.
  • 119.
  • 120.
  • 121.
  • 122.
  • 123.
  • 124.
  • 125.
  • 126. main() { FILE *arq; char ch; if ((arq=fopen(“teste.dat”,”w”)) == NULL) { printf(“Arquivo não pode ser criado”); exit(1); } do{ ch=getchar(); putc(ch,arq); }while (ch!=0); fclose(arq); }
  • 127.
  • 128.
  • 129.
  • 130.
  • 131.
  • 132.
  • 133.
  • 134.
  • 135.
  • 136.
  • 137.
  • 138.
  • 139.
  • 140. do { putchar(ch); ch=getc(fp); } while( ch != ‘$’); fclose(fp); }
  • 141. Exemplo 3: Programa para copiar Arquivos. #include “stdio.h” main(argc,argv) int argc; char *argv[]; { FILE *in, *out; char ch; if (arg != 3) { printf(“Digite o Nome dos Arquivos”); exit(1); } if ((in=fopen(argv[1],”rb”)) == NULL) { printf(“Arquivo origem não existe”); exit(1); } if ((out=fopen(argv[2],”wb”)) == NULL) { printf(“Arquivo destino não existe”); exit(1); } while (! feof(in)) putc(getc(in),out); /* esta é a cópia propriamente dita */ fclose(in); fclose(out); }