A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

PROGRAMAÇÃO ou LINGUAGEM C?

Apresentações semelhantes


Apresentação em tema: "PROGRAMAÇÃO ou LINGUAGEM C?"— Transcrição da apresentação:

1 PROGRAMAÇÃO ou LINGUAGEM C?
Centro Federal de Educação Tecnológica da Paraíba Coordenação de Informática Professor: Lafayette B. Melo

2 TÓPICOS 1. Introdução à Linguagem C 2. Operadores e Expressões
3. Estruturas de Controle 4. Entrada e Saída 5. Matrizes e strings 6. Funções 7. Ponteiros 8. Estruturas e Uniões 9. Arquivos Texto 10. Arquivos Binários

3 Funções em detalhes Funções são blocos de construção nos quais ocorrem todas as atividades dos programas As funções em maiores detalhes possuem formas de modificar argumentos, regras de escopo, tempo de vida de variáveis, recursividade e especificidades da função main Sintaxe: especificador_tipo nome_função(lista_parâmetros) declarações de parâmetros { corpo }

4 Uma função simples main() { linha();
printf("\xDB UM PROGRAMA EM C \xDB\n"); getche(); } linha() int j; for(j=1;j<=20;j++) printf("\xDB"); printf("\n"); A chamada é encerrada por “;”, mas a declaração não

5 Variáveis locais: declaradas dentro de uma função ou de um bloco (existem durante a execução desse bloco de código) Uso de variáveis locais func1() func2() { { int x; int x; x = 10; x = -199; } } Mais uso de variáveis locais f() { char ch; printf (“continua (s/n)? :”); ch = getche(); if (ch == ‘s’) { char s[80]; printf (“digite nome:”); gets(s); }

6 Funções que retornam um valor – são a maioria e têm padrão o inteiro
minusculo() { char ch; ch = getche(); if (ch >= 'A' && ch <= 'Z') ch+='a'-'A'; return(ch); } main() { char ch; printf("digite 'a' e depois 'b': "); ch=minusculo(); switch(ch) { case 'a': printf("\n vc pressionou 'a'."); break; case 'b': printf("\n vc pressionou 'b'" ); default: printf("\n vc escolheu algo desconhecido."); }

7 Comando return: faz com que haja uma saída da função e devolve valores
A função retorna com chave (}) e com return. Usos: Devolver valor e retornar para a próxima instrução Causar uma saída imediata da função Só retorna um valor a cada chamada Exemplos de uso de return potência(base, exp) int base, exp; { int t; if (exp<0) return; i = 1; for(;exp;exp--) i = base * i; printf (“a resposta é: %d: “,i); }

8 C usa argumentos e passagem por valores
Exemplo passando constante main() { printf (“%d %d %d\n”, abs(0),abs(-3),abs(10)); } abs(x) int x; return((x < 0?-x:x); Exemplo passando argumentos int enpontos; while (1) { printf(“(0 para terminar) pontos = “); scanf(“%d”&enpontos); if (!enpontos) break; else bar(enpontos); bar(pontos) int pontos; { int j; for (j=1;j<=pontos;j++) printf(“\xCD”); printf(“\n”); }

9 Tipos de valores devolvidos:
Erro de uso de função swap (x,y) = 100; Tipos de valores devolvidos: Valores computacionais - devolve valores com base em uma operação. Ex.: sqrt() e sin() Valores que indicam sucesso na operação. Ex: fwrite() Valores não explícitos. Ex.: printf() Valores podem não ser atribuídos: Exemplo de valores não atribuídos mul (a,b) > no main: z = mul(x,y) int a, b; printf(“%d”,mul(x,y)); { mul(x,y) return a*b; } Regras de escopo: em c cada função é um bloco de código discreto. As variáveis podem ser locais, globais e parâmetros formais

10 Parâmetros formais: variáveis que assumem valores dos argumentos
Exemplo de uso de parâmetros formais esta_em(s,c) > alternativo esta_em(char*s, char c) char *s; char c; { while (*s) if (*s == c) return 1; else s++; return 0; } Variáveis globais: conhecidas em todo o programa e declaradas fora de qualquer função mesmo que não seja antes do main.

11 Variáveis globais int cont; main() { cont = 100; func1(); } func1() int temp; temp = cont; func2(); printf(“%d”,cont); func2() for (cont=1;cont<10;cont++) printf(“.”);

12 Razões de se evitar as variáveis globais: ocupam espaço de memória
pouca generalização programação de erros alteração acidental Vantagem das variáveis globais: uso dos mesmos dados em várias funções no programa Ex. geral Ex. local mul(x,y) int x, y; int x, y; mul() { { return(x*y); return(x*y); } }

13 Argumentos de funções: parâmetros formais dos mesmos tipos dos argumentos, podem ser feitas atribuições aos parâmetros formais ou pode ser usada dentro de uma função, são usadas como outra variável local chamada por valor e por referência - em c é feita por valor chamada por referência - é simulada Exemplos main() troca(x,y){ { int t = 10; int *x, *y; printf (“%d %d”,sqr(t),t); temp = *x; } *x = *y; sqr(x) *y = temp; int x; } { chamada: x = x*x; troca(&x,&y) return (x); }

14 Exemplo de funções com matrizes
chamando funções com matrizes - 3 formas: declarando o ponteiro como matriz Exemplo de funções com matrizes main() { int t[10], I; for(I=0;I<10;++I) t[I]=I; mostre(t); } mostre(num) int num[10]; int I; for (I=0;I<10;I++) printf(“%d “,num[I]); especificar o parâmetro como uma matriz sem tamanho Exemplo de matriz sem tamanho mostre() int num[]; { int I; for (I=0;I<10;I++) printf(“%d “,num[I]);}

15 Exemplo de matriz com ponteiro
especificar o parâmetro como um ponteiro Exemplo de matriz com ponteiro mostre() int *num; { int I; for (I=0;I<10;I++) printf(“%d “,num[I]);} especificar o elemento de uma matriz Exemplo de especificar elemento de uma matriz main() { int t[10], i; for (I=0;I<10;I++) t[I] = I; for (I=0;I<10;I++) mostre(t[I]); } mostre(num) int num; printf(“%d “,num);

16 Exemplo de uso de argc e argv
Argumentos argc e argv: argumentos de linha de comando. Argc e argv são os únicos argumentos aceitos por main. Argc - número de argumentos (int). No mínimo um. Argv - ponteiro para uma matriz de ponteiros para caracteres. Cada elemento na matriz aponta para um argumento da linha de comando Exemplo de uso de argc e argv main(argc,argv) int argc; char *argv[]; { if (argc != 2) { printf(“esqueceu o nome\n”); exit(0); } printf(“alo %s”,argv[1]);

17 Outro exemplo de uso de argc e argv
/* contagem regressiva */ main(argc,argv) int argc; char *argv[]; { int disp, cont; if (argc < 2) { printf(“faltou comprimento. Tente novamente.\n”); exit(0); } if (argc == 3 && !strcmp(argv[2],”display”)) disp = 1; else disp = 0; for(cont=atoi(argv[1]);cont;--cont) if (disp) printf (“%d “,cont); printf(“%c”,7);

18 Exemplo caracteres individuais da linha de comando
Para se ter acesso a um caractere individual em uma das strings de comando acrescenta-se um segundo índice a argv. Exemplo caracteres individuais da linha de comando main(argc,argv) { int argc; char *argv[]; int t, I; for (t=0;t<argc;++t) { I=0; while (argv[t][I]) { printf (“%c”,argv[t][I]); ++I; } printf(“ “);

19 Exemplo funções não-inteiras
Funções que devolvem não inteiros - quando não é o valor default é necessário duas etapas: 1) dar à função um especificador de tipo explicito; 2) identificar o tipo da função antes de chamá-la pela primeira vez Exemplo funções não-inteiras float soma(); main() { float primeiro, segundo; primeiro = ; segundo = 99.09; printf(“%f”,soma(primeiro,segundo)); } float soma(a,b) float a,b; return a+b;

20 Exemplo protótipo Funções void - padrão do unix (nenhum valor)
Protótipos - funções que se pode declarar o número e o tipo de argumentos - para grandes programas ou quando muitos programadores trabalham em um projeto Exemplo protótipo float func(int, float) /* prototipo */ main() { int x, y; x = 10; y =10; func(x,y); /* não coincide tipos */ } float func(x,y) int x; float y; { printf(“%f”,y/(float)x);


Carregar ppt "PROGRAMAÇÃO ou LINGUAGEM C?"

Apresentações semelhantes


Anúncios Google