inicio Escrita no ecrã (Saída de dados) Escrever( introduza o valor do raio ) Raio Leitura do valor do raio S Raio < 0 N O utilizador insere o valor do raio (Entrada de dados do teclado) Escrita no ecrã (Saída de dados) Escrever( raio inválido ) Area π. Raio. Raio Escrever(Area) Escrita no ecrã (Saída de dados) Fim 1
inicio inicio Escrever( introduza o valor do raio ) Escrever( introduza o valor do raio ) Raio Leitura do valor do raio Ler(Raio) Leitura do valor do raio S Raio < 0 N S Raio < 0 N Escrever( raio inválido ) Area π. Raio. Raio Escrever( raio inválido ) Area π. Raio. Raio Escrever(Area) Escrever(Area) Fim Fim 2
Monitor - Ecrã Écran (Francês) (bits, caracteres que são apresentados no ecrã) Saída de Dados ficheiro stdout (standard output) Teclado (bits, caracteres, que entram no PC) ficheiro stdin (standard input) Entrada de Dados 3
Funções de Entrada e saída Funções de entrada de dados (entrada a partir do teclado ) scanf - scan formatted. (lé um int, um char, um float, uma string,) gets - get string : lé uma string do teclado getchar - get character : lé um carácter do teclado Funções de saída de dados (saída para o ecrã) printf - print formatted. (escreve um int, um char, um float, uma string,) puts - put string : escreve uma string no ecrã. putchar - put character : escreve um carácter no ecrã. Essas funções encontram-se declaradas no ficheiro stdio.h Essas funções pertencem ao C standard. Pertencem a compiladores do C standard. Os compiladores do C standard são os compiladores do C para o Linux. 4
Existem funções de entrada e saída que não fazem parte do C standard. getche() lê um caracter do teclado e escreve no ecrã. getch() - lê um caracter do teclado mas não escreve no ecrã Essas funções são usadas em alguns compiladores do C para o Windows. Nessa cadeira vamos aprender C standard, portanto, vamos esquecer as funções getche e getch. 5
Funções de Entrada e saída Funções de saída de dados Parâmetros de entrada means argumentos. printf( expressão de controlo, lista de argumentos); puts ( coloca-se a string à ser imprimida no ecrã); putchar( coloca o caracter à ser imprimido no ecrã); Funções de entrada de dados scanf( expressão de controlo, lista de argumentos); gets ( coloca-se a variável que irá guardar a string do teclado); Variável tipo char que irá guardar o caracter = getchar(); 6
puts puts( engenharia informatica ); escreve engenharia informatica no ecrã. puts( banana ); escreve banana no ecrã. putchar char c = 2 ; char z = & ; int m = 5; Funções de Entrada e Saída Exemplos de funções de saída de dados: putchar( c ); escreve no ecrã o conteúdo da variável c, ou seja escrever 2 ; putchar( z ); escreve no ecrã o conteúdo da variável z, ou seja escrever & ; putchar( m ); Imprime o caracter com o ASCII equivalente ao valor da variavel m. putchar(? ); escreve no ecrã o caracter?. putchar( b ); putchar( B ); 7
gets Suponha que str é uma variavel do tipo string gets( str ); a sequência de caracteres escrita pelo utilizador será guardada na variável str. getchar char c ; char z ; int m ; Funções de Entrada e Saída Exemplos de funções de entrada de dados: c = getchar( ); o carácter que o utilizador escrever será guardado na variável c. z= getchar( ); o carácter que o utilizador escrever será guardado na variável z. m = getchar( ); A variável m é inicializada pelo ASCII em decimal do caracter inserido pelo utilizador. Ex: o utilizador escreve o a, o valor da variável m será 97. (ver tabela ASCII). 8
printf poderosa em relação o puts e o putchar Imprime int, float, double, char e strings (cadeia de caracteres) printf( expressão de controlo, lista de argumentos); Exemplos: int a = 3; float raio = 8.5; double Area = 3.14159; char c = # ; string str = Olá Mundo! ; printf( engenharia informatica ); imprime no ecrã engenharia informatica 9
Inteiro decimal (base 10) Funções de Entrada e Saída float double char string printf( %d %f %f %c %s, a, raio, Area, c, str) ; Imprime no ecrã o valor da variável a, raio, Area, c e str, ou seja, imprime: 3 8.5 3.14159 # Olá Mundo! 10
Exemplos usando printf printf( Valores Gustavo: %d %f %f %c %s, a, raio, Area, c, str) ; escreve no ecrã: Valores Gustavo: 3 8.5 3.14159 # Olá Mundo! printf( a= %d raio= %f area= %f c= %c str= %s, a, raio, Area, c, str) ; escreve no ecrã: a= 3 raio= 8.5 area= 3.14159 c= # str= Olá Mundo! printf( a= %d\n raio= %f\n area= %f\n c= %c\n str= %s, a, raio, Area, c, str) ; escreve no ecrã: a= 3 raio= 8.5 area= 3.14159 c= # str= Olá Mundo! 11
Caracteres especiais \a Sinal sonoro \n New Line (mudança de Linha) \r Carriage Return \t Tabulação Horizontal \v Tabulação Vertical \\ Carácter \ \ Carácter Formatos de Leitura e escrita Tipo de dados Formato Observações char %c Um único carácter int %d Inteiro decimal int %o Inteiro octal Int %x Inteiro Hexadecimal Float %f real double %f ou %e Real com maior precisão string %s Cadeia de caracteres Com as criações e inicializações das variáveis anteriores (a, raio, Area e str) e com os exemplos que se seguem obtemos: printf( %d, a ); printf( %f, Area ); escreve no ecrã: printf( %f, raio ); 3 escreve no ecrã: printf( %s, str ); 3.141590 escreve no ecrã: 8.500000 escreve no ecrã: Olá Mundo! 12
Continuação do slide anterior. Pode-se controlar o número de casas decimais a serem imprimdas no ecrã Fazer: printf( %.2f, Area );.2 imprime apenas duas casas decimais. A instrução acima escreve no ecrã o seguinte: 3.14 (apenas duas casas decimais) printf( %.3f, Area );.3 imprime apenas duas casas decimais. A instrução acima escreve no ecrã o seguinte: 3.142 (apenas três casas decimais) Portanto.4 para quatro casas decimais,.5 para cinco casas decimais e assim sucessivamente. 13
Continuação do slide anterior. Alem de se controlar o número de casas decimais a serem imprimdas, também pode-se imprimir dados de forma formatada como se segue: Impressão de dados em linhas diferentes (deve usar o caracter especial \n): printf ( Angola \n é um Pais \ngrande ); Imprime no ecrã o seguinte: Angola é um Pais Grande printf( raio = %.1f \n area = %.3f, raio, area ); Imprime no ecrã o seguinte: raio = 8.5 area = 3.142 printf ( Angola é \n um Pais Grande ); Imprime no ecrã o seguinte: Angola é um Pais Grande 14
scanf poderosa em relação o gets e o getchar lê int, float, double, char e strings (cadeia de caracteres) scanf( expressão de controlo, lista de argumentos); Exemplos: int a; float raio; double Area; char c; string str; não vou dar exemplo de leitura de strings por enquanto. 15
scanf( %d, &a); Lê o valor que o ulitizador inserir e coloca na variável a; scanf( %f, &raio); Lê o valor que o ulitizador inserir e coloca na variável raio; scanf( %f, &Area); Lê o valor que o ulitizador inserir e coloca na variável Area; scanf( %c, &c); Lê o valor que o ulitizador inserir e coloca na variável c; scanf( %d %f, &a, &raio ); Lê os dois valores que o ulitizador inserir e coloca-os respectivamente nas variáveis a e raio; 16