Funções de Entrada e Saída inicio Escrita no ecrã (Saída de dados) Escrever(“introduza o valor do raio”) Raio S Raio < 0 Escrever(“raio inválido”) Leitura do valor do raio N O utilizador insere o valor do raio (Entrada de dados do teclado) Area ← π. Raio. Raio Escrita no ecrã (Saída de dados) Escrever(Area) Escrita no ecrã (Saída de dados) Fim Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião 1 Funções de Entrada e Saída inicio inicio Escrever(“introduza o valor do raio”) Escrever(“introduza o valor do raio”) Raio S Raio < 0 Escrever(“raio inválido”) N Area ← π. Raio. Raio S Raio < 0 Escrever(“raio inválido”) N Area ← π. Raio. Raio Escrever(Area) Escrever(Area) Fim Leitura do valor do raio Ler(Raio) Leitura do valor do raio Fim Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião 2 Funções de Entrada e Saída Monitor - Ecrã – Écran (Francês) (bits, caracteres que são apresentados no ecrã) Teclado (bits, caracteres, que entram no PC) Saída de Dados ficheiro stdout (standard output) ficheiro stdin (standard input) Entrada de Dados Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião 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. Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião 4 Funções de Entrada e Saída • 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. Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião 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(); Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião 6 Funções de Entrada e Saída Exemplos de funções de saída de dados: • puts – puts(“engenharia informatica”); escreve “engenharia informatica” no ecrã. – puts(“banana”); escreve “banana” no ecrã. • putchar char c = ‘2’; char z = ‘&’; int m = 5; 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’); Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião 7 Funções de Entrada e Saída Exemplos de funções de entrada de dados: • 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 ; 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). Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião 8 Funções de Entrada e Saída • 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” Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião 9 %f %c string char %f double float Inteiro decimal (base 10) printf(“ %d Funções de Entrada e Saída %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! Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião 10 Funções de Entrada e Saída Exemplos usando printf printf( “ Valores Gustavo: %d escreve no ecrã: Valores Gustavo: 3 8.5 %f %f 3.14159 %c %s ”, a , raio , Area, c , str) ; # 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! Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião 11 Funções de Entrada e Saída Caracteres especiais \a \n \r \t \v \\ \” Formatos de Leitura e escrita Tipo de dados char int int Int Float double string Sinal sonoro New Line (mudança de Linha) Carriage Return Tabulação Horizontal Tabulação Vertical Carácter \ Carácter ” Formato %c %d %o %x %f %f ou %e %s Observações Um único carácter Inteiro decimal Inteiro octal Inteiro Hexadecimal real Real com maior precisão 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 ); escreve no ecrã: 3 8.500000 escreve no ecrã: printf( “ %s ”, str ); escreve no ecrã: Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião 3.141590 Olá Mundo! 12 Funções de Entrada e Saída 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. Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião 13 Funções de Entrada e Saída 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” ); printf( “raio = %.1f \n area = %.3f”, raio, area ); Imprime no ecrã o seguinte: Angola é um Pais Grande 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 Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião 14 Funções de Entrada e Saída • 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. Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião 15 Funções de Entrada e Saída 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; Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião 16