Sunteți pe pagina 1din 14

Outras Idias de Funes e Comandos em C

Prof. Afonso Paiva


ICMC-USP

Introduo Programao de Computadores SME0330

Funes: Revisando
Uma unidade de cdigo de programa autnoma projetada para cumprir uma tarefa em particular; Geralmente programas em C consistem em vrias pequenas funes.
tipo_da_funo nome_da_funo (lista_de_parmetros) { corpo da funo; }

Introduo Programao de Computadores SME0330

Matrizes & Funes


Em C, se uma funo recebe uma matriz unidimensional, voc pode declarar o parmetro formal em uma entre trs formas: Como uma matriz dimensionada; Como uma matriz no-dimensionada; Como um ponteiro (prxima aula);
Introduo Programao de Computadores SME0330

Exemplo
Considere o seguinte fragmento de cdigo:

int main(){ int vec[10]; func(vec); return 0; }

Introduo Programao de Computadores SME0330

Matrizes & Funes


Neste caso, no podemos passar uma matriz inteira como um argumento para uma funo. Podemos passar um ponteiro de uma matriz para uma funo, especificando o nome da matriz sem um ndice. func(vec); No passamos o ndice do vetor vec!!!
Introduo Programao de Computadores SME0330

Como declarar a funo?


Como uma matriz dimensionada void func(int vec[10]) Como uma matriz no-dimensionda void func(int vec[ ]) Como um ponteiro (detalhes mais adiante) void func(int *vec)
Introduo Programao de Computadores SME0330

Observaes
Todos os trs mtodos de declarao produzem os mesmos resultados. A primeira emprega a declarao de vetor/matriz padro. A segunda usa uma verso modificada de uma declarao de vetor/matriz. Simplesmente especifica que uma matriz do tipo int , de algum tamanho, ser recebida. A terceira declarao usa de fato um ponteiro.
Introduo Programao de Computadores SME0330

Exemplo
void leia_vetor(float a[N],int n){ int i;
printf("Entre com os %d elementos do vetor: ",n);

for (i=0; i<n; i++) scanf("%f",&(a[i])); } void imprima_vetor(float a[],int n){ int i; for (i=0; i<n; i++) printf("%8.2f ",a[i]); printf("\n"); }
Introduo Programao de Computadores SME0330

Exemplo
#include <stdio.h> #define N 100 main( ) { float x[N]; int n;
printf("Qual a dimensao do vetor? ");

scanf("%d",&n); leia_vetor(x,n); imprima_vetor(x,n); }


Introduo Programao de Computadores SME0330

Operador Relacional
Sintaxe
condio?expresso_1:expresso_2; Permite simplificar uma expresso como: if (a>0) b=-10; else b=10; da seguinte maneira: b=a>0?-10:10;
Introduo Programao de Computadores SME0330

Diretivas de Compilao (macros)


Macros em C so simples substituies de uma sintaxe para outra; Comandos que no so compilados; Comandos dirigidos ao compilador; Exemplo: #include

Introduo Programao de Computadores SME0330

Diretiva #define
Sintaxe
#define nome_da_macro sequncia_de_caracteres

Quando voc usa esta diretiva, voc est dizendo ao compilador para que, toda vez que ele encontrar o nome-damacro no programa a ser compilado, ele deve substitu-lo pela seqncia de caracteres fornecida.

Introduo Programao de Computadores SME0330

Exemplo
#include <stdio.h> #define PI 3.1416 #define VERSAO "2.02 main(){ printf ("Programa versao %s\n",VERSAO); printf ("O numero pi vale: %f\n",PI); }
Conveno: nome de macros com letras MAISCULAS

Introduo Programao de Computadores SME0330

Exemplo
#include <stdio.h> #define MAX(a,b) (a>b)?(a):(b) #define MIN(a,b) (a<b)?(a):(b) main(){ int a,b; scanf("%d %d",&a,&b); printf ("max = %d\n",MAX(a,b)); printf ("min = %d\n",MIN(a,b)); }
Introduo Programao de Computadores SME0330

Comando getchar
a funo original de entrada de caractere dos sistemas baseados em UNIX; getchar() armazena a entrada at que ENTER seja pressionada.

Introduo Programao de Computadores SME0330

Exemplo: getchar
#include <stdio.h> main(){

char caracter; caracter = getchar(); printf("%c\n,caracter");


}

Introduo Programao de Computadores SME0330

Comando putchar
Escreve na tela o argumento de seu caractere na posio corrente. Exemplo:
#include <stdio.h> #include <ctype.h> main(){ char ch; printf("digite uma letra minuscula: "); ch=getchar(); putchar(toupper(ch)); putchar('\n'); }

Introduo Programao de Computadores SME0330

ctype.h
H inmeras outras funes de manipulao de char, tais como:
isalpha() isupper() islower() isdigit() isespace() toupper() tolower()
Introduo Programao de Computadores SME0330

Comando break
Quando o comando break encontrado em qualquer lugar do corpo do loop (lao) for, ele causa seu trmino imediato. O controle do programa passar ento imediatamente para o cdigo que segue o loop.

Introduo Programao de Computadores SME0330

Exemplo: break
#include <stdio.h> main(){ char ch; for(;;) /* loop infinito */ { ch=getchar(); if (ch=='a') break; } }
Introduo Programao de Computadores SME0330

Comando continue
Algumas vezes torna-se necessrio saltar uma parte do programa, para isso utilizamos o comando continue. Fora a prxima iterao do loop; Pula o cdigo que estiver em seguida.

Introduo Programao de Computadores SME0330

Exemplo: continue
#include <stdio.h> main(){ int x; for(x=0;x<100;x++){ if(x%2)continue; printf("%d\n",x); } }
Introduo Programao de Computadores SME0330

Comandos atoi e atof


atoi converte uma string para int; Sintaxe: int atoi(nome_da_string) atof converte uma string para float; Sintaxe: float atof(nome_da_string) Necessitam do cabealho: <stdlib.h>
Introduo Programao de Computadores SME0330

Exemplo: atoi e atof


#include <stdio.h> #include <stdlib.h> main(){ int num1; float num2; char string1[6] = "12345"; char string2[6] = "2.172"; num1 = atoi(string1); num2 = atof(string2); printf("%d \t %.3f\n",num1,num2); }

Introduo Programao de Computadores SME0330

gets
A funo gets l uma string do teclado. Sua sintaxe : gets(nome_da_string);

Introduo Programao de Computadores SME0330

puts
Escreve o seu argumento no dispositivo padro de sada (vdeo), coloca um '\n' no final. Reconhece os cdigos de barra invertida. Sua sintaxe : puts(nome_da_string);

Introduo Programao de Computadores SME0330

Exemplo: puts
#include <stdio.h> main(){ puts("Acabou a aula!!!"); }

Introduo Programao de Computadores SME0330

S-ar putea să vă placă și