Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNAERP Aula 3 Laboratório de Programação I – Prof. Dr. Edilson Carlos Caritá – 1º Semestre 2007 1 OPERADORES C tem uma quantidade grande de operadores. Muitos elementos que em outras linguagens estão presentes, mas não nos fazem nem mesmo lembrar de operações, em C, são considerados operadores. Veremos alguns operadores da linguagem C divididos em alguns grupos: Em C, a atribuição de valores à variáveis é considerada uma operação. Operadores Aritméticos operador descrição = atribuição + soma - subtração * multiplicação / divisão % módulo Os operadores aritméticos: soma e subtração tem a mesma precedência, a qual é menor que a precedência de multiplicação, divisão e módulo. O operador módulo aceita somente operandos inteiros. Resulta o resto da divisão do inteiro à sua esquerda pelo inteiro à sua direita: exemplo: int a = 1; int b = 3; int c = 5; int l, m, n, o, p; l = 17 % c l = 17 % 5 l = 2 m = 15 + b m = 15 + 3 m = 18 n= 23 - a n = 23 – 1 n = 22 o = 18 / b o = 18 / 3 o = 6 p = 4 * c p = 4 * 5 p = 20 Operadores Aritméticos de Atribuição Pode-se combinar os operadores aritméticos (+, -, *, /, %) como o operador de atribuição da seguinte forma: l *= 4 l = l * 4 m /= 2 m = m / 2 n += 5 n = n + 5 o -= 8 o = o - 8 p %= 5 p = p % 5 UNAERP Aula 3 Laboratório de Programação I – Prof. Dr. Edilson Carlos Caritá – 1º Semestre 2007 2 Operadores de incremento e decremento Geralmente os programas em C são menores do que em outras linguagens, porque C possui vários operadores que comprimem os comandos: ++ incrementa de 1 seu operando -- decrementa de 1 seu operando O operando de incremento (++) trabalha de dois modos: 1) pré-fixado - o operador aparece antes do nome da variável ++n → n é incrementado antes de seu valor ser usado 2) pós-fixado - o operador aparece após o nome da variável n++ → n é incrementado depois de seu valor ser usado exemplo: int a = 4; a++ a = 5 a-- a = 3 l = 2 * a++ l = 2 * 4 l = 8 m = 2 * ++a m = 2 * 5 m = 10 Operadores Relacionais Estes operadores são usados para fazer comparações operador descrição > maior >= maior ou igual < menor <= menor ou igual == igualdade != diferente C trabalha basicamente com números e não há constantes lógicas. O que ocorre é o seguinte: se o resultado de uma comparação for falso, o resultado da operação será 0 (zero); e se a comparação for verdadeira, o resultado da operação será 1 (um). exemplo: int verdade, falso; verdade = (15 < 20) verdade = 1 falso = (15 == 20) falso = 0 FUNÇÕES Protótipos A maneira moderna de programar em C usa protótipos de funções para que o compilador faça verificações nos pontos em que as funções são acionadas e nas próprias definições das funções. O protótipo de uma função tem o mesmo formato que o cabeçalho da função. UNAERP Aula 3 Laboratório de Programação I – Prof. Dr. Edilson Carlos Caritá – 1º Semestre 2007 3 tipo nome da função ( parâmetros ) ; O ponto e vírgula no final é obrigatório, o tipo é referente ao valor que a função retorna, o nome da função é um identificador definido pelo programador, e os parâmetros são especificados um a um com tipo e nome, ou somente tipo. Exemplo: int sum(int a, int b); float raiz(float); void tela(void); O tipo chamado "void" serve para indicar que a função não retorna nenhum valor. Este tipo é indicado nos casos em que a função será acionada, e não dentro de uma expressão. Protótipos em que especificamos o tipo void entre parênteses indicam que a função não tem parâmetros. Blocos de comandos O corpo de uma função é escrito entre chaves, e dentro da função, quando quisermos agrupar várias instruções, por exemplo, para estarem todas subordinadas a uma condição, devemos colocá-las entre chaves. Em C, toda instrução deve terminar por ponto-e-vírgula, exceto aquelas que terminam com uma chave. Funções As funções são os módulos dos programas C, fazem o papel das procedures e functions. Sua forma geral é a seguinte: tipo nome da função( parâmetros ) { corpo da função } O cabeçalho tem a forma dos protótipos, e o corpo da função vem escrito entre chaves. O cabeçalho tem os parâmetros definidos completamente, isto é, com tipo e nome de cada um, ou com os parênteses vazios, no caso de não haver parâmetros. No corpo da função são feitas as definições locais e, usando os comandos da linguagem C, é implementado o algoritmo da tarefa que a função executa. Uma coisa muito importante a entender é que C nos dá uma grande liberdade para trabalhar com funções, ao ponto de podermos simplesmente desprezar seu valor de retorno acionando-as como se fossem procedures. No entanto, é preciso estar atento às certas particularidades da linguagem C, principalmente no que se refere aos parâmetros. Funções Simples Todas as funções em “C” começam com um nome seguido de parênteses (que envolve ou não uma lista de parâmetros) e após isso, chaves que envolvem o corpo da função. Se o programa vai usar alguma função que eu desenvolvi, deve-se declarar antes do main(). Todas as variáveis declaradas em uma função são chamadas variáveis locais, elas são conhecidas somente na função na qual elas são definidas exemplo: #include <stdio.h> desenho (); main() UNAERP Aula 3 Laboratório de Programação I – Prof. Dr. Edilson Carlos Caritá – 1º Semestre 2007 4 { desenho(); } desenho () {int aux; for (aux = 1; aux <= 10; aux++) { printf(“*”); } } ⇒Resultado na tela⇐ ********** UNAERP Aula 3 Laboratório de Programação I – Prof. Dr. Edilson Carlos Caritá – 1º Semestre 2007 5 ENTRADA E SAÍDA DE DADOS Função de saída printf <stdio.h> Uma das funções de entrada e saída (E/S). No interior dos parênteses da função printf estão as informações passadas na tela do computador. No exemplo anterior: Primeiro Programa será mostrado na próxima linha da tela do computador. Sintaxe: printf ( “expressão controle” , lista de argumentos ) exemplo 1: # include <stdio.h> main() { printf (“Este é o número dois: %d”, 2); } ⇒Resultado na tela⇐ Este é o número dois: 2 exemplo 2: # include <stdio.h> main() { printf (“%s está a %d milhões de milhas do Sol”, “Vênus”, 67 ); } ⇒Resultado na tela⇐ Vênus está a 67 milhões de milhas do Sol A função printf aceita os seguintes códigos: Códigos especiais Significado Código Printf Formato \n nova linha %c caracter simples \t tabulação %d inteiro \b retrocesso %e notação científica \” aspas %f ponto flutuante \\ barra %o inteiro octal \f salta página formulário %s cadeia de caracteres %u decimal sem sinal %x hexadecimal Tamanho de campos na Impressão Em printf é possível estabelecer o tamanho mínimo para a impressão de um campo. UNAERP Aula 3 Laboratório de Programação I – Prof. Dr. Edilson Carlos Caritá – 1º Semestre 2007 6 exemplo: printf (“Os alunos são %d \n”; 350); printf (“Os alunos são %4d \n”; 350); printf (“Os alunos são %6d \n”; 350); ⇒Resultado na tela⇐ Os alunos são 350 Os alunos são φ350 Os alunos são φφφ350 Os comandos de formato podem ter modificadores que especificam a largura do campo, o número de casas decimais é um ponteiro de justificação pela esquerda. Um inteiro colocado entre o sinal % e o comando de formato age como um especificador de largura mínima do campo. Isto preenche a saída com brancos ou zeros para garantir que tenha pelo menos um comprimento mínimo determinado. Caso a string ou o número seja maior que o mínimo, será totalmente impressa, mesmo que ultrapasse o mínimo. O preenchimento padrão é feito com espaços em brancos. exemplo: printf (“%5d”,350); → φφ350 Para preencher com zeros basta colocar o zero entre o sinal % e o número. exemplo: printf (“%05d”, 350); → 00350 Para linhar usando casas decimais basta usar ponto flutuante exemplo: printf (“%4.2f \n”, 3456.78); → 3456.78 printf (“%3.2f \n”, 3456.78); → 3456.78 printf (“%3.1f \n”, 3456.78); → 3456.8 printf (“%10.3f \n”, 3456.78); → φφ3456.780 printf (“%.2f %.2f %.2f”, 8.0, 15.3, 584.13); printf (“%.2f %.2f %.2f”, 834.0, 1500.55, 480.21); →8.00 15.30 584.13 →834.00 1500.55 480.21 printf (“%10.2f %10.2f %10.2f”, 8.0, 15.3, 584.13); printf (“%10.2f %10.2f %10.2f”, 834.0, 1500.55, 480.21); →φφφφφφ8.00 φφφφφ15.30 φφφφ584.13 →φφφφ834.00 φφφ1500.55 φφφφ480.21 O sinal de menos ( - ) precedendo a especificação do tamanho do campo (após sinal %) justifica os campos à esquerda: printf (“%-10.2f %-10.2f %-10.2f”, 8.0, 15.3, 584.13); printf (“%-10.2f %-10.2f %-10.2f”, 834.0, 1500.55, 480.21); 8.00φφφφφφ 15.30φφφφφ 584.13φφφφ 834.00φφφφ 1500.55φφφ 480.21φφφφ Atenção: φ = espaço em branco UNAERP Aula 3 Laboratório de Programação I – Prof. Dr. Edilson Carlos Caritá – 1º Semestre 2007 7 Função de entrada scanf() <stdio.h> A função scanf() é outra função da biblioteca stdio.h e é o complemento de printf(). Ela nos permite ler dados formatados da entrada padrão do teclado. Sua sintaxe é similar à de printf(), isto é, uma expressão de controle seguida por uma lista de argumentos separados por vírgula. sintaxe: scanf(“expressão de controle”, lista de argumentos); A expressão de controle são os códigos de formatação, precedidos por um sinal % e a lista de argumentos deve consistir nos endereços das variáveis. A linguagem C oferece um operador para tipos básicos chamado operador de endereço e referenciado ao símbolo & que retorna o endereço. exemplo: # include <stdio.h> main() { int n = 2; printf( “Valor %d, endereço = %u”, n, &n); } ⇒Resultado na tela⇐ Valor 2, endereço = 65524 65524 é o endereço que está variável ocupa na memória. Código scanf Formato %c leia um caracter simples %d leia um inteiro %e leia um nº notação científica %f leia um nº ponto flutuante %o leia um inteiro octal %s leia uma cadeia de caracteres %u leia um decimal sem sinal %x leia um hexadecimal %l leia um inteiro longo exemplo: # include <stdio.h> main() { int anos; printf( “Digite sua idade: ”); scanf(“%f”, &anos); } ⇒Resultado na tela⇐ Digite sua idade: 22 UNAERP Aula 3 Laboratório de Programação I – Prof. Dr. Edilson Carlos Caritá – 1º Semestre 2007 8 Funções de entrada getche() e getch() <conio.h> A função scanf() necessita que você pressione <enter> depois de ler um dado pelo teclado. As funções getche() e getch() lêem um caracter no instante em que é datilografado, sem esperar. getche() - lê o caracter do teclado e permite que seja impresso na tela. getch() - lê o caracter do teclado e não permite que seja impresso na tela. exemplo: # include <stdio.h> # include <conio.h> main() { char ch; printf( “Digite algum caracter: ”); ch = getche(); printf(“\n A tecla pressionada foi: %c”, ch); printf( “\n Digite outro caracter: ”); ch = getch(); printf(“\n A tecla pressionada foi: %c”, ch); } ⇒Resultado na tela⇐ Digite algum caracter: a A tecla pressionada foi: a Digite outro caracter: b A tecla pressionada foi: b
Compartilhar