Tii tecnologia
LINGUAGEM C – UMA INTRODUÇÃO AULA 4 – Entrada e sarda Entrada, saída, hãmm? O conceito de entrada e salda já foi utilizado de forma intuitiva nos exemplos das aulas anteriores. Entendemos por “entrada” qualquer forma de passarmos dados para o programa e por “saída” qualquer forma do programa enviar dados para o mundo. • • Tipos mais comuns: Entrada: usuário respondendo uma pergunta, programa lendo um arquivo, programa capturando informações de um sensor eletrônico ligado ao computador, parâmetros passados ao programa na linha de comando..
Saída: programa mostrando informações na tela, programa nviando dados para equipamento eletrôn 2 – Entrada comafu A função scanf() é us ma acionando um orlo to view nut*ge dos do teclado de uma forma “formatada”. Ela toi usada intuitivamente em alguns exemplos passados do curso (exemplo 1, exemplo 3, exemplo 13, etc.. ) e agora chegou a hora de entendermos melhor como ela funciona.
Sua sintaxe é: scanf(“especificador de formato”,&variável) O primeiro ponto importante a ser observado é que a função scanf() sempre armazena o valor digitado no teclado em uma variável. O segundo ponto importante é que antes do nome da ariável existe um & e esse & é OBRIGATÓRIO. O programa não irá funcionar sem ele. Abaixo um exemplo de como ler um valor numérico e inteiro do teclado: int idade; scanf(“%d” scanf(“%d”,&idade); O “especificador de formato” da função scanf() segue a mesma slntaxe da “expressão de controle” da função printf().
Os seguintes códigos especiais devem ser usados: Código drSolutions – Diego Mendes Rodrigues Descrição Valor int (ou decimal) Valor float Página 1 12 Caractere simples Cadeia de caracteres Notação científica Valor octal Valor int sem sinal Valor hexadecimal Valor int longo Valor loat longo Exemplos de uso da função scanf(): float peso; char letra; scanf(“%c”,&letra); int ano; scanf(“%d”,&ano); Veja abaixo um exemplo completo usando a função scanf(): Exemplo 1 9 Exemplo de entrada de dados com a função scanf() Linguagem C – Uma introdução Diego M.
Rodrigues #include int main() ( int idade, ano; printf(“Qual a sua idade?
“); //Recebendo a variável idade scanf(“%d”, &idade); //Mostrando a variável idade na tela %d aninhos!!
“, idade); ano voce //Recebendo a variável ano scanf( ‘%d’ , &ano); //Mostrando na tela a variável letra %d ein… i,ano); //Esperando o para sair com getch() ao invés de getchar() getch(); return 0; ) Exemplo de execução do 10 rever o algoritmo “Calcular média”, apresentado na Aula 2. Observe que sempre que encontrarmos coisas do tipo “Receba”, “Leia” e etc em um algoritmo, podemos usar a função scanf() para implementar essa instrução e sempre que encontrarmos coisas do tipo “Exiba”, “Escreva”, “Mostre” e etc podemos usar a função printf() para realizar essa tarefa. Calcular média” • Receba a nota da prova mensal • Receba a nota da prova bimestral • Calcule média com a fórmula • Exiba a média na tela O programa que realiza a tarefa acima poderia ser escrito em uma pseudo linguagem da seguinte forma: Variavel mensal=0 Variavel bimestral=o Variavel media=O ESCREVA “Digite a nota mensal:” RECEBA mensal ESCREVA “Digite a nota bimestral:” RECEBA bimestral CALCULE ESCREVA “A média do aluno é:” ESCREVA media Uma implementação do algoritmo “Calcular média” em Linguagem C pode ser escrita da seguinte forma: Exemplo 20 l* Exemplo de algoritmo para cálculo de média Linguagem C – Uma Introdução -Diego M. Rod igues #include int main() { //
Declarando as variáveis float mensal=0; float bimestral=O; float media=O; f/Recebendo a nota mensal a nota mensal: //Recebendo a nota bimestral a nota bimestral: scanf(“%f’,); Página 3/ 12 //Calculando a média media = (mensal+bimestral)/2; //Mostrando a média média do aluno é //Esper media (mensal+bimestral)/2; //Mostrando a média média do aluno é //Esperando o para sair com getch() ao invés de getchar() getch(); return 0; } 3. Outros exemplos com scanf() e printf() 3. 1 — Área do quadrado Problema: Implemente um programa em Linguagem C para calcular a área de um quadrado. Esse programa deve receber o tamanho do lado do quadrado e imprimir a sua área na tela.
Um algoritmo para resolver o problema proposto poderia ser: • Receba o lado do quadrado • Calcule a área com a fórmula • Exiba a variável área na tela Implementando em Linguagem C: Exemplo 21 l* Exemplo de algoritmo para cálculo da área de um quadrado Linguagem C – Uma introdução -Diego M. Rodrigues #include int main() { “Declarando as variáveis int lado=0, area=O; // Recebendo o lado printf(“Digite o tamanho do lado:
“); scanf(“%d”, &lado); //Calculando a área area = lado * lado; // Mostrando a área na tela do quadrado: %d”, area); //Esperando o para sair com getch() ao invés de getchar() getch(); return O; } Página 4/ 12 Exemplo de execução do programa anterior: 3. 2 — Índice de massa corporal O índice de Massa Corporal (IMC) é uma fórmula que indica se um adulto está acima do peso, se está obeso ou abaixo do peso ideal considerado saudável.
A fórmula para calcular o índice de Massa Corporal é: IMC = p A Organização Mundial peso / (altura)2 A Organização Mundial de Saúde usa a seguinte tabela para determinar a condição de um adulto: Condição Abaixo do peso No peso normal Acima do peso Obeso IMC em adultos Abaixo de 18. 5 Entre 18. 5 e 25 Entre 25 e 30 Acima de 30 calcular o IMC de um adulto. Esse programa deve receber a altura e o peso da pessoa e exibir o IMC na tela algoritmo para resolver o problema proposto poderia ser: Receba a altura da pessoa Receba o peso da pessoa Calcule a altura ao quadrado com a fórmula Calcule o INIC com a fórmula imc=peso/quadrado Exiba a variável imc na tela Implementando em Linguagem C: Exemplo 22 Exemplo de algoritmo para cálculo do IMC de um adulto Linguagem C – Uma introdução -Diego M.
Rodrigues *l #include int main() { //DecIarando as variáveis float peso-o, altura=O; float quadrado=0, imc=0; //Recebendo a altura printf(“Digite a altura da pessoa em metros (ex:l &altura); Página 5/ 12 //Recebendo o peso o peso da pessoa em quilos (ex:68. S):
“); ); //Calculando o quadrado da altura quadrado = altura * altura; //Calculando o IMC imc = peso / quadrado; //Mostrando o ‘MC na tela %f”, imc); Exemplo de execução do pro rama anterior: 4 – Tamanho de Campos na Impressão No uso da função printf() é possivel estabelecer o tamanho mínimo para a impressão de um campo colocando o tamanho epois do h. Quando usamos estamos dizendo para o compilador que ele deve imprimir um número inteiro.
Já quando colocamos %4d dizemos ele deve imprimir um número inteiro com no mínimo 4 posições. Exemplo 23 l* Limitando o tamanho da impressão na função printf() Linguagem C – uma introdução -Diego M. Rodrigues k/ #include int main() { printf(“Os alunos Sao %3d in”, 350); printf(“Os alunos sao
“, 350); printf(‘Os alunos sao %5d
“, 350); getchar(); return O; } Página 6/ 12 Podemos também especificar a precisão do arredondamento de variáveis float ou double usando um ponto depois do %. Dessa forma, %. 4 determina que será impresso um número real (float) com quatro casas decimais. Observe o exemplo: Exemplo 24 Especificando o arredondamento na função printf() Linguagem C – Uma introdução -Diego M.
Rodrigues #include int main() ( 3456,789); 3456,789); 2ftry, 3456. 789); 3456. 789); getcharo; return O; } rior: PAGF 10 %10. 2f. Este %10. 2f deve ser entendido da seguhte forma: variável float com um tamanho de 10 e duas casas depois da vírgula. Observe o exemplo: Exemplo 25 Especificando o arredondamento e o tamanho na função printf() Linguagem C – Uma introdução -Diego M. Rodrigues #include int main() { printf(“%1 0. 2f %10. 2f %10. 2fln”, 8. 0, 15. 3, 584. 13); %10. 2f %10. 2ftn”, 834. 0, 1500. 55, 4890. 21); Página 7/ 12 getchar(); return O; } O sinal de menos (-) precedendo a especificação do tamanho do campo justifica os campos à esquerda.
Exemplo: Exemplo 26 l* Especificando o arredondamento, o tamanho e alinhando ? esquerda na função printf() Linguagem C – Uma introdução Diego M. ROdngues #ineude int { o. 2f %-10. 2f %-10. 2ftn”, 8. 0, 15. 3, 584. 13); O. 2f %-10. 2f %-10. 2fln”, 834. 0, 1500. 55, 4890. 21); getcharo; return O; } Além de especlficar o tamanho do campo, podemos complementar o campo todo ou parte dele com zeros ? esquerda, para isso colocamos um zero depois do Exemplo: Exemplo 27 Completando o tamanh om zeros na função Página 8/ 12 return 0; } 5. Imprimindo Caracteres Em Linguagem C um caractere pode ser representado de diversas maneiras: o próprio caracter entre aspas simples ou sua representação decimal, hexadecimal ou octal segundo a tabela ASCII.
A tabela ASCII tem 256 códigos decimais numerados de O a 255. Cada código decimal corresponde à um caracter distinto, or exemplo, o decmal 65 corresponde ao caracter A, decimal 70 corresponde ao caracter F, o decimal 33 corresponde ao ponto de exclamação… TABELA ASCII – parte 1 códig001234567891011 12131415161718192021 22 23 24 25 26 27 caracter CTRL-@ CTRL-A CTRL-B CTRL-C URL-D CTRL-E CTRL-F CTRL-G CTRL-H CTRGI CTRL-J CTRL-K CTRL-L CTRL- M CTRL-N CTRL-O CTRL-P CTRL-Q CTRL-R CTRL-S CTRL-T CTRL-U CTRL-V CTRL-W CTRL-X CTRL-Y CTRL-Z CTRL-[ código 32 33 34 35 36 37 38 39 4041 42 434445 46474849 50 51 52 53 54 55 56 57 58 59 caracter (BRANCO)! # s % & 234567 89 : ; código 6465 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 1 82 83 84 85 86 87 88 89 90 91 caracter @ABCDEFGHIJ KL M NO PQ RST [Código 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 19 120 121 122 123 caracter ‘abcdefghijklmnopqrst uvwxyz{ Página 9/ 12 28 29 30 31 CTRL- CTRL-] CTRL-A CTRL 29 30 31 CTRL- CTRL-] CTR CTRL- 60 61 62 63 92 93 94 95 124 125 126 127 TABELA ASCII – Parte 2 código 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 caracterÇüéêéàáçêéê1TlÃAÉ&kôõô código 160 161 162 163 164 165 166 167 168 69 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184185 186 187 188 189 190 191 caracteráíóúñ h % Á Â À @ : : + código 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 caracter + + + ã Ã + + aôDÊÉÊiíTf++ i código 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242243244 245 246 247 248 249 250 251 252 253 254 255 _ caracterÓgÔÔõÕpPDÚÜÜyV O seguinte trecho de programa imprime o valor ASCII da letra ‘d’: printf(“%d”, ‘d’); Já o trecho abaixo faz o inverso im rime a letra ‘d’ a partir de seu código ASCII: ‘A’); “Mostrando a letra A usando o seu valor decimal printf(“%c %c
“, ‘A’, 65); getchar(); return O; } 5. 1 — Códigos especiais Em quase todos os exemplos apresentados até agora usamos o código especial na função printf() para pular linhas.
Existem outros códigos especiais que podem ser usados: Código Significado Linha Nova (Line Feed) Retrocesso (BackSpace) Salto de Página (Form Feed) Retorno do Carro (cr) Tabulação Horizontal (TAB) Caracter com apóstrofo Caracter Nulo ou Fim de String Representação hexadecimal Exemplo 29 l* Usando caracteres especiais Linguagem C – Uma introdução Diego M. Rodrigues *l #include int main() { //Usando a tabulação //Pulando duas linhas //Usando o retorno printf(”
l 1 1″); getchar(); Página 11 / 12 A tela acima podemos notar as quatro letras “A” separadas por tabulações na primeira linha. Depois foram puladas duas linhas e a sequência “abcdefghijklm” foi impressa na tela. Finalmente foi usando um retrocesso (cursor volta para o início da linha) e em seguida foi impressa a seqüência “‘1 11”. Observe que a seqüência ‘1 11″ sobrescreveu a “abc 10 10