Baixe o app para aproveitar ainda mais
Prévia do material em texto
LINGUAGEM DE PROGRAMAÇÃO I AULA 02 – EXIBINDO NO DISPLAY INTRODUÇÃO A linguagem C não tem, como na maioria das linguagens, comandos para exibir mensagens, constantes numéricas, conteúdo de variáveis, retorno de funções, entre outros, no dispositivo padrão de saída, display. Em contrapartida, apresenta funções que fazem parte da biblioteca padrão da linguagem C: stdio.h (standard input output). NOTA: O fato da linguagem C não apresentar comandos para exibir no display é considerado uma grande vantagem, uma vez que se distância do hardware aumentando a sua portabilidade. Além das funções que vamos estudar: Função que exibe uma cadeia de caracteres; Função que exibe um caractere; Função que exibe formatado um, ou vários caracteres; Constante numérica; Conteúdo de variável; Retorno de função. Veremos, em outra aula, funções, também da stdio.h, que gravam em dispositivos, como por exemplo, no HD. A maioria dos exemplos foi compilada no gcc/Linux, pois quem sabe desperta a curiosidade de trabalhar nesse sistema operacional, uma das razões do desenvolvimento da linguagem C. FUNÇÃO QUE EXIBE UMA CADEIA DE CARACTERES Essa função não consegue trabalhar com constantes numéricas nem com variáveis de qualquer tipo, mas é ideal quando só temos mensagens para exibir. É bom ressaltar que ela já tem embutida uma alimentação de linha, embora você possa incluir outros elementos. Com ela, justifico o que mais devemos apreciar na linguagem C. PORTABILIDADE – O mesmo código foi compilado em dois compiladores do Windows e em um compilador no Linux. Observe que nada foi alterado e as saídas ficaram iguais. A saída colorida no Linux foi alterada no ambiente na opção editar. Você pode fazer isso também no Prompt, tanto no Dev-C++ quanto no Visual Studio 2008, clicando com o botão direito sobre a barra de título, selecionando propriedades, e fazendo as trocas nas guias fonte e cores. O objetivo, mostrando no Linux de forma mais elegante, foi fazer com que você se apaixonasse pelo SO. Para os estudantes de Engenharia, é preciso conhecê-lo mesmo que não se tornem desenvolvedores. FUNÇÃO QUE EXIBE UM CARACTER Essa função não exibe uma saída formatada e só pode ser usada para variável ou constante char de um. Não ache estranho se você encontrar uma linha desta putchar (‘\n’); com \ e n entre aspas simples porque na linguagem C, quando só existe 1 caractere, é obrigatório o uso de aspas simples. Também não estranhe o fato de dizermos 1 caractere e você estar visualizando 2, porque, você verá, que os 2 juntos são considerados 1 caractere. Vamos observar no exemplo que a função é muito limitada, uma vez que precisamos de puts () para exibir mensagens. Função que exibe formatado um, ou vários caracteres, constante numérica, conteúdo de variável, retorno de função – uma função completa. Essa função, como já dito, não faz parte da Linguagem C, mas é a mais importante função para exibir na tela. Por isso, ela precisa ser bem explorada com muitos exemplos para que você se torne capaz de saber usá-la com competência, otimizando seus códigos. Além disso, pretendemos desmistificar sua tão propagada dificuldade. CADEIA DE CARACTERES ENTRE ASPAS Tudo que você desejar que apareça na tela, exatamente na ordem, deverá estar dentro dessa cadeia de caracteres, também referenciada por alguns autores de string. Pode ser somente uma mensagem, caracteres especiais, uma mensagem com “lugares reservados” para os argumentos através de códigos formadores, caracteres especiais etc. LISTA DE ARGUMENTOS SEPARADOS POR VÍRGULAS Os argumentos são variáveis, constantes, chamadas de funções, expressões, entre outros. CARACTERES ESPECIAIS Vamos conhecer alguns caracteres especiais que lhe ajudarão a formatar a saída de seus programas? Eles também são conhecidos como caracteres de controle ou sequência de escape por serem sempre precedidos pela \ cujo nome em inglês é backslash, mas por aqui é conhecida como barra invertida ou contrabarra. A contrabarra tem um significado grande na programação e tem sua história na internet. Sua finalidade é alertar para que seja dado um tratamento especial para o caractere que a sucede podendo ser uma letra, um algarismo ou um caractere gráfico. ASPAS DUPLAS Precisam de um tratamento especial uma vez que a cadeia de caracteres da função fica entre elas. \n Essa sequência é chamada de new line e equivale ao pressionamento da tecla Enter em um editor de texto. Como é usada a letra n, ser precedida pela \ se justifica porque ficaria impossível determinar quando seria uma nova linha ou, a letra n. Você poderá, com uma única função printf, exibir em várias linhas, pois várias seqüências \n podem ser usadas juntas, ou separadas. \t Essa sequência é chamada de horizontal tabulation e equivale ao pressionamento da tecla Tab em um editor de texto. Como é usada a letra t, ser precedida pela \ se justifica porque ficaria impossível determinar quando seria uma tabulação ou, a letra t. você poderá, com uma única função printf, exibir em várias posições pré-definidas das linhas, pois várias seqüências \t podem ser usadas juntas, ou separadas. \v Essa sequência é chamada de Vertical Tabulation. Como é usada a letra v, ser precedida pela \ se justifica porque ficaria impossível determinar quando seria uma tabulação vertical ou, a letra v. A saída abaixo é no Linux. CÓDIGOS DE FORMATAÇÃO Você deve ter percebido a importância das seqüências \n e \t. Agora vamos identificar os códigos de formatação, também conhecidos como especificadores de formato. Procure guardá-los porque, sem eles, você não consegue exibir nenhum valor dos argumentos. Observe que todos serão precedidos pelo símbolo de %. Nesse exemplo, apresentamos 4 formatos básicos e 1 com uma formatação completa para os tipos float e double. Nesse último, com, ou sem presença de zeros à esquerda. A letra t corresponde ao total de posições e dec, o total de casas decimais. Veja exemplo: Aqui, apresentamos um número inteiro formatado com n casas. Observe o alinhamento e o que acontece com posições não usadas. Nesse exemplo, apresentamos um número inteiro formatado com n casas. Observe o alinhamento e o que acontece com posições não usadas pela presença do 0 no código de formatação. Nesse exemplo, mostramos o que pode acontecer se a formatação de um número real não for precisa. A princípio, você pode achar que são iguais, mas veja o que acontece, lendo os textos na saída. Normalmente, o sinal de + não aparece quando o número é positivo, mas se você precisar que ele apareça, use antes da letra d ou f. Se o número for negativo, aparecerá o sinal de – como sempre. Nesse exemplo, mostramos a importância de ficarmos atentos quando formos escrever a string, pois o número de códigos deve corresponder ao número de argumentos. Nesse caso, tem mais argumentos e, aparentemente, não percebemos nada estranho, mas um valor não foi exibido. Já dissemos sobre a importância da cadeia de caracteres da função printf(), pois tudo que está dentro dessa cadeia é que sairá no display. Sendo assim, todo cuidado é pouco, uma vez que podemos colocar mais especificadores do que argumentos e aparecerem números estranhos que, às vezes, demoramos a perceber que foi esse tipo de erro. Muito cuidado ao escolher o especificador, pois se ele for diferente do tipo do argumento, irá aparecer 0 para int e float ou um número estranho para int e 0 para float, depende do compilador /SO. printf Vamos exibir resultados de operações com a função printf. Acreditamos que vocêjá deva conhecer os 4 símbolos dos operadores aritméticos, mas vamos apresentar aqui só para não termos dúvidas do tipo de resultado que eles retornam. Além dos 4, a linguagem C tem mais um que é de muito valia. printf – OPERADORES ARITMÉTICOS Cada operador aritmético está relacionado a uma operação elementar: adição, subtração, multiplicação e divisão. Existe ainda um operador (%) chamado operador de módulo cujo significado é o resto da divisão inteira. NOTA: Fique atento ao operador /, pois se os operando forem inteiros, inteiro será o quociente. Veja exemplo: 2 / 4 terá como resultado, zero. Quanto ao operador %, ele efetua uma divisão, mas retorna o quociente. Veja exemplo: 8 % 5 retorna 3 que é o resto da divisão inteira. / e % – NO PROGRAMA DA DATA Nesse primeiro exemplo, apresentamos o operador resto. Observe que mesmo os operando sendo inteiros, se você acrescentar um ponto em um deles, o quociente passa a ser real. Mais tarde você aprenderá outra forma de fazer conversão. Observe também que usamos dois %% para que pudesse ser exibido na tela. Esse é o exemplo mais convincente para apresentar o operador % e a barra usada para divisão inteira. Em todas as linguagens que estudamos não pode faltar. Claro que ele precisa de alguns conceitos básicos da matemática. (Ler Apostila: Matemática de Programação – SENHA: leicom2010). Para finalizar, abordaremos 3 bibliotecas e algumas das funções delas para que possamos exercitar a função printf(). Como já dissemos, por toda a história da linguagem C, teríamos que apresentar tudo em ambiente Linux, mas a portabilidade permitirá que você teste tudo em compiladores do Windows. C mat C mat – ceil / floor Funções que arredondam constantes do tipo real. C mat – fmod Função que retorna o resto de uma divisão real. C mat – sin / cos / tan Embora tenha muito mais funções, só apresentaremos as 3 básicas. Reforçamos que o ângulo precisa ser convertido de graus para radianos. Para isso, multiplique por PI e divida por 180. Assuma PI como sendo 3,14159265. C mat – pow / sqrt / log Essas funções são bem básicas e muito usadas. Com a função pow() poderemos extrair raiz a qualquer índice como mostrada no exemplo. Apesar de termos 2 funções para logaritmos, se desejarmos calcular o logaritmo em qualquer base, use uma das propriedades do logaritmo como também mostrada no exemplo. BIBLIOTECA ctype.h Essa biblioteca é composta de funções que manipulam um caractere. Os códigos variam de 0x20 (32 em decimal) até 0x7E (126 em decimal) na tabela ASCII. Existe uma relação muito intensa entre char e int na Linguagem C. Vamos constatar essa relação através do próximo exemplo onde nos argumentos são números inteiros e, quando se usa o especificador %c o número é convertido para o caractere correspondente na tabela ASCII. No caso, a letra A (Aproveitei nesse exemplo para converter para base octal e hexadecimal). Se tivéssemos colocado essa linha: ... obteríamos o mesmo resultado. Toupper / tolower Essas funções são convertidas para letra maiúscula e para letra minúscula, respectivamente. Isalnum Como existe um conjunto de funções que uma lógica parecida, apresentamos somente uma. Você pode testar as outras. BIBLIOTECA stdlib.h Essa biblioteca é de propósito geral, pois as funções têm finalidades diferentes. BIBLIOTECA stdlib.h – atoi / atof Essas funções serão muito úteis para trewchos de proteção na entrada de dados numéricos, evitando erros na execução, uma vez que o programa receberá a entrada numérica como string e converterá através dessas funções para números quando for possível. BIBLIOTECA stdlib.h – abs Essa função é uma das mais simples, pois retorna o valor absoluto do número. BIBLIOTECA stdlib.h – rand A função rand() retorna um número inteiro no intervalo de 0 até o maior inteiro. Ela sempre deve ser usada com a função srand() feita para gerar o inicializador desse conjunto de números pseudo aleatórios. NOTA: A função system() será usada para chamar o comando pause, color, cls, um bloco de notas, a calculadora etc. conio2,h – EM SÍNTESE Para finalizar, convidamos a conhecer a biblioteca conio2.h e como fazemos no Linux para obtermos resultados semelhantes ao dessa biblioteca que foi atualizada para o Dev-C++. Veja as saídas de código desenvolvidas no Linux e no Windows. Nossa aula chegou ao fim. E, para não ficar diferente de tudo que foi estudado por aqui, deixamos uma saída de um programa, esperando que você desenvolva o código. Veja ainda, uma lista de exercícios para praticar o conteúdo abordado. EXERCÍCIO: Lista 1 – printf com funções e operadores aritméticos 111))) Construa um programa que exiba a mensagem: Tudo melhorou com a linguagem C. 222))) Construa um programa que exiba na primeira linha, início da segunda zona, Engenharia e na terceira linha, quinta zona, seu primeiro nome. 333))) Construa um programa que exiba seu nome e LPI, deixando duas zonas em branco entre eles. 444))) Construa um programa que exiba o produto de 13*134. 555))) Construa um programa que o quociente e o resto da divisão de 273 por 42. 666))) Construa um programa que exiba a quinta potência de 4, usando função. 777))) Construa um programa que exiba a média aritmética de 9.8 , 7.5 e 6.5. 888))) Construa um programa que calcule e exiba a média ponderada dos números 7, 4, 8 e 10 cujos pesos são 2, 3, 2 e 3 respectivamente. 999))) Construa um programa que exiba o novo preço de uma mercadoria que foi reajustado em 7,5% e cujo preço era R$1340,00. 111000))) Construa um programa que exiba o seno, co-seno e tangente do ângulo 32 em graus. 111111))) Construa um programa que separe o dia, mês e ano da data: 130862. 111222))) Construa um programa que inverta o número 568. 111333))) Construa um programa que represente em octal e em hexadecimal o número 189. 111444))) Um professor não sabia se arredondava para cima ou para baixo a média de um aluno. Construa um programa que exiba os dois arredondamentos para a média 8.9. 111555))) Calcule o logaritmo de 118 na base 3.
Compartilhar