SlideShare uma empresa 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); }

Mais conteúdo relacionado

Mais procurados

Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
Mauro Pereira
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 Recursividade
Regis Magalhães
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
Mauro Pereira
 

Mais procurados (20)

Sistema Operacional Windows (versão 11)
Sistema Operacional Windows (versão 11)Sistema Operacional Windows (versão 11)
Sistema Operacional Windows (versão 11)
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus JanuáriaLista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
 
Excel Básico
Excel BásicoExcel Básico
Excel Básico
 
Introdução à Linguagem C
Introdução à Linguagem CIntrodução à Linguagem C
Introdução à Linguagem C
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Linguagem C - Strings
Linguagem C - StringsLinguagem C - Strings
Linguagem C - Strings
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetores
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 Recursividade
 
Curso básico de informática
Curso básico de informáticaCurso básico de informática
Curso básico de informática
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registros
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 
Algoritmos - Procedimentos
Algoritmos - ProcedimentosAlgoritmos - Procedimentos
Algoritmos - Procedimentos
 
Linguagem c parte 1
Linguagem c parte 1Linguagem c parte 1
Linguagem c parte 1
 

Semelhante a Introdução a Linguagem C

Cet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducao
mmind
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros Passos
Regis Magalhães
 
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
engenhariadecomputacao
 
Henriquecristovao manual c-cpp
Henriquecristovao manual c-cppHenriquecristovao manual c-cpp
Henriquecristovao manual c-cpp
RUI VIEIRA
 

Semelhante 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 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros Passos
 
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
 

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); }