Академический Документы
Профессиональный Документы
Культура Документы
O que um nome? O que chamamos rosa no cheiraria igualmente doce em outro nome? W. Shakespeare.
Na verdade, o smbolo \ indica que um caractere especial ser impresso. Assim, quando se quer imprimir o caractere correspondente ao enter (que pula uma linha) usa-se \n. Outros comandos especiais esto descritos na Tabela T1. Tabela T1: impresso. Tag \n \t \b \a \r \ \\ %% Tags para comandos de Ao nova linha(enter) tabulao retrocesso(backspace) alerta(sinal sonoro) incio da linha exibe o caractere exibe o caractere \ exibe o caractere %
Programa P4: Escreva um programa que coloque na tela a seguinte sada: Total = 100% IVA = 17% IRS = 15% ----------------------Liq. = 68%
mensagem na tela, bem como o comando puts, que alm de imprimir a mensagem na tela pula uma linha automaticamente. O printf tambm pode pular uma linha desde que seja utilizado a tag \n. Portanto, os programas P1 e P2 so equivalentes:
Programa P1: Pulando uma linha. #include <stdlib.h> #include <stdio.h> main() { puts("Pula"); system("pause"); } Programa P2: Idem com printf. #include <stdlib.h> #include <stdio.h> main() { printf("Pula \n"); system("pause"); } Observe que a tag \n tambm poderia funcionar em conjunto com o comando puts, tal que duas linhas seriam puladas. Ou seja, todas as tags da Tabela 1 quando usadas com printf tambm causam o mesmo efeito ao serem usadas com puts.
importante notar que o caractere % pode ser utilizado para delimitar comentrios e ao invs de se utilizar \% para imprimir o mesmo em uma mensagem de texto, deve-se utilizar %%. Para testar os comandos da Tabela 1 desenvolva programas que realizam as tarefas dadas a seguir. Programa P1: Teste printf(" \" \\ \n ");. O que ir aparecer na tela ? Programa P2: Escreva um programa que coloque na tela a seguinte frase: Bem-vindos ao /Mundo \da programao em C Programa P3: Escreva um programa que coloque na tela uma rvore com o seguinte formato:
Existe ainda um outro tipo bsico o tipo Ponteiro. Este tipo de varivel serve para armazenar o endereo de memria de uma outra varivel.
Programao de Computadores 1
float pi, raio, area; double total; /* Instrucoes manipulam as variaveis */ } Os nomes de variveis devem observar as seguintes regras: 1.Ser constitudo por letras do alfabeto (a...Z), dgitos (0...9) ou _ . 2.O primeiro caractere no pode ser um dgito. desaconselhvel usar _ (underline). 3.Maisculas e minsculas representam caracteres diferentes, logo variveis distintas. 4.Uma varivel no pode ter por nome uma palavra reservada da Linguagem C, tais como float, if e for.
A quantidade de espao de memria destinada a cada tipo de varivel est relacionada com a representao binria da mesma pelos bytes (cada byte corresponde a oito bits, ou seja, a oito posies que podem ser valores 0 ou 1). Por exemplo, o caractere A corresponde ao decimal 65 e cuja representao ASCII igual a 01000001. ASCII significa American Standard Computer for Information Interchange e nesta representao, cada caractere representado por 1 byte. Uma varivel tambm pode ser automaticamente iniciada quando se faz a sua declarao: int num = -17 ; Em C tambm possvel atribuir o mesmo valor a vrias variveis. Veja o que ocorre ao se usar as seguintes atribuies: Atribuies A1 int a, b, c, d; a = 1; b = 2; c = 3; d = 4; a = b = c = d = 5;
Programa P6: Utilizando o comando printf no formato descrito no programa P5, verifique o que ocorre com as atribuies A1.
Operaes O1 Opr Descrio Exemplo Resultado + Soma 21 + 4 25 Subtrao 21 4 17 * Multiplicao 21 * 4 84 / Diviso 21 / 4 5 % Resto da 21 % 4 1 Diviso Inteira
Programa P7: Idem ao programa P6, mas agora verificando os resultados a serem obtidos com as operaes O1.
Para escrever inteiros na tela use o comando printf e o uso do comando %d (como descrito no programa P5). Ou seja, a sintaxe dada por: int var = 1; printf(O valor de var = %d \n, var); Na tela ir aparecer a mensagem: O valor de var = 1 Para se imprimir o valor contido na varivel var, e no a sua string, necessrio usar o operador %d que significa imprima o valor contido na memria de uma varivel inteira. Para imprimir dois ou mais valores, com o mesmo comando printf, basta associar aos pares os comandos %d com as variveis, tal que o primeiro %d corresponde a primeira varivel e assim por diante. Use o programa P8 para verificar isto.
2
OPERAES
Observe que qualquer operao com inteiros retorna um inteiro. As operaes que podem ser realizadas so:
Programao de Computadores 1
Sem- 2008 Prof. Anbal e Cassilda LAB2 Programa P13: Crie um programa que l um caractere e o imprime dentro de uma mensagem. Um resumo dos cdigos e as variveis que eles exibem so dados na Tabela T2:
Confirmar isto com o programa P10. Programa P8: Teste o programa: # include <stdio.h> main() { int n1, n2; n1 = 1; n2 = 2; printf(O resultado de %d + %d = %d \n , n1, n2, n1+n2); } Programa P10: Use o comando scanf para ler os valores de n1 e n2 do programa P8. Observe que para ler qualquer varivel do tipo int, char, float ou double, utilizando a funo scanf preciso colocar aps cada varivel o & (E comercial)2. Para saber o nmero de bytes que ocupa uma dada varivel usa-se o operador sizeof(). Confirme isto usando o programa P11. Programa P11: Sabendo que o comando sizeof(char) retorna o nmero de bytes que o tipo char ocupa em C, crie um programa que imprime o tamanho de todos os tipos bsicos (exceto o tipo ponteiro). A impresso (com printf) e a leitura (com scanf) de nmeros reais (tipo float ou double) pode ser feita com o uso de %f (use P12). Para caracteres basta usar %c (use P13). Programa P12: Teste o programa: # include <stdio.h> # include <stdlib.h> main() { float d, p; printf(Entre com o valor inicial: \n); scanf(%f,&d); p = d + 0.01*d; printf(Valor final = %f \n , p); system(" pause"); }
Para leitura de valores existe a funo scanf, cuja sintaxe para ler um valor inteiro e colocar em uma varivel num dada por: int num; scanf(%d,&num); Confirme a afirmao anterior com P9:
Programa P9: Teste o programa: # include <stdio.h> # include <stdlib.h> main() { int num; printf(Introduza um No: ); scanf(%d,&num); printf(O resultado e %d \n , num); system(" pause"); }
Tabela T2: Cdigos para impresso de valores das variveis. Cdigo Exibio %d nmero inteiro %f nmero de ponto flutuante %e notao cientfica %c caractere simples %s cadeia de caracteres %o representao octal %x representao hexadecimal %% exibe o caractere %
PROGRAMAS BSICOS
Programa PB1: Crie um programa que leia uma varivel inteira e outra real e depois mostra o resultado das operaes da tabela O1. O que aconteceu? Programa PB2: Baseado no P8 construa um programa que fornea o saldo de uma caderneta de poupana remunerada em 1% ao ms aps trs meses (dica: use %f no scanf). (a) Teste para vrios valores iniciais (500, 1000, 2000). (b) Permita a leitura simultnea do valor inicial e da taxa de juros (use taxas de 1% e 10%). Programa PB3: Sabendo que a frmula de converso de graus para fahrenheit dada por F = (9C + 160)/5, crie um programa que l o valor em graus e imprime seu valor correspondente em fahrenheit. 3
Da mesma forma que um comando printf pode imprimir dois ou mais valores, o comando scanf pode ler dois ou mais valores. Por exemplo:
scanf(%d%d, &n1, &n2);
O smbolo & significa endereo de memria. Este operador ser melhor comentado em outros Labs.
Sem- 2008 Prof. Anbal e Cassilda LAB2 printf("O resultado de %d + %f = %d \n ", n1, n2, n4); n4 = n1-n2; printf("O resultado de %d - %f = %f \n ", n1, n2, n1-n2); printf("O resultado de %d - %f = %d \n ", n1, n2, n4); n4 = n1*n2; printf("O resultado de %d * %f = %f \n ", n1, n2, n1*n2); printf("O resultado de %d * %f = %d \n ", n1, n2, n4); n4 = n1/n2; printf("O resultado de %d / %f = %f \n ", n1, n2, n1/n2); printf("O resultado de %d / %f = %d \n ", n1, n2, n4); system("PAUSE"); } Programa PB2 # include <stdio.h> main() { float d, p, s, t, taxa; printf("Entre com o valor inicial: "); scanf("%f",&d); printf("Entre a taxa de juro: "); scanf("%f",&taxa); p = d + taxa*d; s = p + taxa*p; t = s + taxa*s; printf("Valor final = %f \n ", t); system("PAUSE"); }
Programa P11:
#include <cstdlib> #include <stdio.h> main() { int var1, var2, var3; var1 = 21; var2 = 4; var3 = var1 + var2; printf(var1 + var2 = %d \n, var3); var3 = var1 - var2; printf(var1 - var2 = %d \n, var3); var3 = var1 * var2; printf(var1 * var2 = %d \n, var3); var3 = var1/var2; printf(var1/var2 = %d \n, var3); var3 = var1 % var2; printf(var1 %% var2 = %d \n, var3); system("PAUSE"); }
Programa P10:
#include <cstdlib> #include <stdio.h> main() { printf(sizeof(char)=%d \n, sizeof(char)); printf(sizeof(int)=%d \n, sizeof(int)); printf(sizeof(float)=%d \n, sizeof(float)); printf(sizeof(double)=%d \n, sizeof(double)); system("PAUSE"); }
Programa P13:
#include <cstdlib>
#include <cstdlib> #include <stdio.h> main() { char ch; printf("Digite um caractere: "); scanf("%c",&ch); printf("O caractere e: %c \n",ch); system("PAUSE"); }
Programa PB1
# include <stdio.h> main() { int n1, n2; printf("Entre com n1: \n"); scanf("%d",&n1); printf("Entre com n2: \n"); scanf("%d",&n2); printf("O resultado de %d + %d = %d \n ", n1, n2, n1+n2); system("PAUSE"); }
#include <cstdlib>
# include <stdio.h> main() { int n1, n4; float n2, n3; printf("Entre com n1: "); scanf("%d",&n1); printf("Entre com n2: "); scanf("%f",&n2); n4 = n1+n2; printf("O resultado de %d + %f = %f \n ", n1, n2, n1+n2);