Introdução a Linguagem C

A
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); }
1 sur 141

Recommandé

Introdução à Programação par
Introdução à ProgramaçãoIntrodução à Programação
Introdução à ProgramaçãoMario Sergio
7.7K vues118 diapositives
Introdução à Linguagem C par
Introdução à Linguagem CIntrodução à Linguagem C
Introdução à Linguagem CElaine Cecília Gatto
1.9K vues59 diapositives
Introdução à Linguagem de Programação C par
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação CJose Augusto Cintra
220 vues87 diapositives
Material de Apoio de Algoritmo e Lógica de Programação par
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
190.2K vues67 diapositives
Estrutura de repetição par
Estrutura de repetiçãoEstrutura de repetição
Estrutura de repetiçãoJailson Torquato
405 vues18 diapositives
Lógica de programação em ppt par
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em pptAndrei Bastos
4.4K vues52 diapositives

Contenu connexe

Tendances

Exercicios resolvidos visu alg vetores par
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresWillians Miyabara
49.1K vues10 diapositives
Aula 01 - Algoritmo e Programação par
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAislan Rafael
26.5K vues22 diapositives
Lógica de Programação e Algoritmos par
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosMario Jorge Pereira
4.2K vues91 diapositives
Exercicios resolvidos visuAlg par
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlgWillians Miyabara
107.1K vues10 diapositives
Lógica de Programação par
Lógica de ProgramaçãoLógica de Programação
Lógica de ProgramaçãoClaudio Stein Junior
4.3K vues51 diapositives
Algoritmos par
AlgoritmosAlgoritmos
AlgoritmosSérgio Souza Costa
4K vues41 diapositives

Tendances(20)

Aula 01 - Algoritmo e Programação par Aislan Rafael
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
Aislan Rafael26.5K vues
Algoritmos e lp parte3-pseudocódigo par Mauro Pereira
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
Mauro Pereira37K vues
Lista de exercicios algoritmos resolvida- par Mauro Pereira
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
Mauro Pereira388.9K vues
Fluxograma (Lógica de Programação) par Gercélia Ramos
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)
Gercélia Ramos32.2K vues
Pseudocódigo ou Portugol (Lógica de Programação) par Gercélia Ramos
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 Ramos22.6K vues
Aula 03.1 - Operadores Relacionais e Lógicos par Messias Batista
Aula 03.1 - Operadores Relacionais e LógicosAula 03.1 - Operadores Relacionais e Lógicos
Aula 03.1 - Operadores Relacionais e Lógicos
Messias Batista1.8K vues
Introduçãso a linguagem c par sergiocrespo
Introduçãso a linguagem cIntroduçãso a linguagem c
Introduçãso a linguagem c
sergiocrespo1.4K vues
Lista de exercicios algoritmos com pseudocodigo par Mauro Pereira
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
Mauro Pereira7.7K vues
Introdução a Linguagem de Programação C par Gercélia Ramos
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
Gercélia Ramos2K vues
Introdução à programação par João Piedade
Introdução à programação Introdução à programação
Introdução à programação
João Piedade1.6K vues
Lógica de Programação - Algoritmos par Roney Sousa
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - Algoritmos
Roney Sousa1.2K vues

Similaire à Introdução a Linguagem C

Linguagem C clecioamerico par
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamericoClécio Américo de Lima
1.4K vues141 diapositives
Cet P Sistemas Linguagem C Introducao par
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducaommind
920 vues28 diapositives
Linguagem C 01 Primeiros Passos par
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosRegis Magalhães
8.7K vues44 diapositives
Linguagem c wellington telles - aula 03 par
Linguagem c   wellington telles - aula 03Linguagem c   wellington telles - aula 03
Linguagem c wellington telles - aula 03profwtelles
27 vues4 diapositives
Aula09 traducaosin110 par
Aula09 traducaosin110Aula09 traducaosin110
Aula09 traducaosin110Aldo Henrique Dias Mendes
1.1K vues38 diapositives
Introdução+à+linguagem+c par
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+cThiago Freitas
575 vues86 diapositives

Similaire à Introdução a Linguagem C(20)

Cet P Sistemas Linguagem C Introducao par mmind
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducao
mmind920 vues
Linguagem c wellington telles - aula 03 par profwtelles
Linguagem c   wellington telles - aula 03Linguagem c   wellington telles - aula 03
Linguagem c wellington telles - aula 03
profwtelles27 vues
Exemplos registros e funções par Carla Lee
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
Carla Lee1.2K vues
Apostila linguagem c par vingue
Apostila linguagem cApostila linguagem c
Apostila linguagem c
vingue401 vues
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf par Enio Filho
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
Enio Filho3 vues
Aula01 par vdlos
Aula01Aula01
Aula01
vdlos173 vues
Henriquecristovao manual c-cpp par RUI VIEIRA
Henriquecristovao manual c-cppHenriquecristovao manual c-cpp
Henriquecristovao manual c-cpp
RUI VIEIRA348 vues
Introdução a linguagem de programação C par SchoolByte
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação C
SchoolByte4 vues
Aula 02 - Introdução a ALGORITMOS.pptx par judsonBg3
Aula 02 - Introdução a ALGORITMOS.pptxAula 02 - Introdução a ALGORITMOS.pptx
Aula 02 - Introdução a ALGORITMOS.pptx
judsonBg33 vues

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