Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

I C – 2 o S e m - 2 0 2 2 – P r o f . A n d r é A m a r a n t e – L A B 0 3 
 
O que é um nome? O que chamamos 
rosa não cheiraria igualmente doce em 
outro nome? W. Shakespeare. 
PRINTF 
O comando printf é capaz de imprimir uma 
mensagem na tela, bem como o comando 
puts, que além de imprimir a mensagem na 
tela pula uma linha automaticamente. O 
printf também pode pular uma linha desde 
que seja utilizado o tag “\n”. Portanto, os 
programas P1 e P2 são 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 também poderia 
funcionar em conjunto com o comando 
puts, tal que duas linhas seriam puladas. Ou 
seja, todas as tags usadas com printf também 
causam o mesmo efeito quando usadas com 
puts. 
Na verdade, o símbolo \ 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 estão 
descritos na Tabela T1. 
 
Tabela T1: Tags para comandos de 
impressão. 
 
Tag Ação 
\n nova linha(enter) 
\t tabulação 
\b retrocesso(backspace) 
\a alerta(sinal sonoro) 
\r início da linha 
\” exibe o caractere “ 
\\ exibe o caractere \ 
%% exibe o caractere % 
 
É importante notar que o caractere % pode 
ser utilizado para delimitar comentários e ao 
invés 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 programação 
em “C” 
 
Programa P3: Escreva um programa que 
coloque na tela a seguinte tabela de saída: 
 
Total = 100% 
IVA = 17% 
IRS = 15% 
----------------------- 
Liq. = 68% 
 
 
Programa P4: Escreva um programa que 
coloque na tela a seguinte tabela de saída e 
depois emita um sinal sonoro. 
 
Valor => 300.23 R$ 
IOF => 2% 
IRS => 15% 
---------------------------- 
Valor Liq. => 250.09 
 
 
 
 
VARIÁVEIS 
Uma variável nada mais é que um nome 
dado a uma determinada posição de 
memória para guardar um valor de um 
determinado tipo. Em C existem quatro tipos 
de dados básicos: char (tipo caractere), int 
(tipo inteiro), float (tipo precisão simples) e 
double (tipo precisão dupla)1. A declaração 
de variáveis sempre tem que ser feita antes de 
sua utilização e antes de qualquer instrução. 
A sintaxe para declaração de variáveis é a 
seguinte: 
 
1 Existe ainda um outro tipo básico – o tipo 
Ponteiro. Este tipo de variável serve para 
armazenar o endereço de memória de uma outra 
variável. 
 
I C – 2 o S e m - 2 0 2 2 – P r o f . A n d r é A m a r a n t e – L A B 0 3 
 
 
2 
 
Exemplo 1: Declaração de variáveis 
main() 
{ 
 /* Declaração de variáveis */ 
 int i; 
 char ch1, ch2; 
 float pi, raio, area; 
 double total; 
 
 /* Instrucoes manipulam as variaveis */ 
} 
 
No exemplo 1 acima foram declaradas as 
seguintes variáveis: variável i que vai 
armazenar um valor do tipo inteiro. Variáveis 
ch1 e ch2 que vão armazenar valores do tipo 
caractere (letras). Variáveis pi, raio, area que 
vão guardar valores do tipo real e por último 
a variável total que vai guardar um valor real 
com dupla precisão. Observe então que i, 
ch1, ch2, pi, raio, area e total são os nomes 
das variáveis. Nomes esses dados pelo 
programador. 
 
Para se escolher os nomes de variáveis 
devem ser observadas as seguintes regras: 
 
1.O nome deve sempre começar por uma 
letra do alfabeto (a...Z), seguidos ou não de 
dígitos (0...9) ou _ . 
2.O primeiro caractere não pode ser um 
dígito. 
3.Com exceção do underline _, não se pode 
usar nenhum caractere especial, como por 
exemplo *, %, $, virgula e o ponto final. 
4.Maiúsculas e minúsculas representam 
caracteres diferentes, logo são consideradas 
variáveis distintas, então Valor  valor. 
5.Uma variável não pode ter por nome uma 
palavra reservada da Linguagem C, tais como 
float, if, for, e while. 
 
ATRIBUIÇÃO DE VALORES AS 
VARIÁVEIS 
Sempre que uma variável é declarada, é 
solicitado ao compilador para reservar um 
espaço de memória para armazená-la. Pense 
nesse espaço de memória como sendo uma 
caixinha que possui um nome (nome da 
variável) e que será guardado dentro dela um 
valor (o conteúdo da variável). Esse valor 
pode ser acessado através do nome da 
variável. 
Então quando uma variável é declarada, é 
criada uma caixinha para guardar o valor 
dessa variável. Se não for atribuído nenhum 
valor a essa variável e se for feito um 
comando para imprimir o seu conteúdo, o 
que será impresso é um número qualquer 
que é considerado um lixo. Este lixo é o 
resultado do estado aleatório dos bits que 
constituem esse espaço de memória. Teste o 
programa P4 para confirmar isto. 
 
Programa P4: Complete o programa abaixo 
e verifique o que é impresso para as variáveis 
var1, var2, e var3? 
main() 
{ 
 int var1, var2, var3; 
 var2 = 56; 
 printf(“valor de var1 = %d \n”, var1); 
 printf(“valor de var2 = %d \n”, var2); 
 printf(“valor de var3 = %d \n”, var2); 
} 
 
Você acha que está correto? Sim, não por 
que? Reflita e observe que se deve tomar 
muito cuidado pois toda variável deve ter, em 
alguma parte do programa, um valor a ela 
atribuído. A variável que não tem nenhum 
valor atribuído provoca erros de lógica no 
programa; erros esses, difíceis de serem 
encontrados. 
A quantidade de espaço de memória 
(tamanho da caixinha) destinada a cada tipo 
de variável está relacionada com a 
representação binária da mesma pelos bytes 
(cada byte corresponde a oito bits, ou seja, a 
oito posições que podem ser valores 0 ou 1). 
Por exemplo, uma caixinha para guardar uma 
variável do tipo inteiro (int) tem o tamanho 
de 4 bytes. Já, uma variável do tipo caractere 
(char) tem o tamanho de 1 byte. 
Uma variável também pode receber um valor 
no momento em que é feita a sua declaração. 
Neste caso dizemos que ela foi iniciada 
automaticamente. 
 int num = -17 ; 
 
Em C também é possível atribuir o mesmo 
valor a várias variáveis. Veja o que ocorre ao 
se usar as seguintes atribuições, para tanto 
complete e teste o programa Programa P5. 
Observe que para testá-lo é preciso colocar 
os comandos para imprimir as variáveis. 
 
Programa P5: Complete e teste o programa 
int a, b, c, d; 
a = 1; 
b = 2; 
c = 3; 
d = 4; 
a = b = c = d = 5; 
 
 
I C – 2 o S e m - 2 0 2 2 – P r o f . A n d r é A m a r a n t e – L A B 0 3 
 
 
3 
 
 
OPERAÇÕES 
Observe que qualquer operação com inteiros 
retorna um inteiro. As operações que podem 
ser realizadas são: 
 
Operações O1 
Opr Descrição Exemplo Resultado 
+ Soma 21 + 4 25 
- Subtração 21 – 4 17 
* Multiplicação 21 * 4 84 
/ Divisão 21 / 4 5 
% Resto da 
Divisão 
Inteira 
21 % 4 1 
 
Para escrever inteiros na tela use o comando 
printf e o comando %d (como descrito no 
programa P4). Ou seja, a sintaxe é dada por: 
 
int var2 = 56; 
printf(“O valor de var2 = %d \n”, var2); 
 
Na tela irá aparecer a mensagem: 
 
O valor de var2 = 56 
 
Para se imprimir o valor contido na caixinha 
da variável var2, e não a sua string; é 
necessário usar o operador %d que significa 
“imprima aqui o valor de variável inteira, 
contido na memória (caixinha)”. 
Para imprimir dois ou mais valores; com o 
mesmo comando printf, basta associar aos 
pares os comandos %d com as variáveis, tal 
que o primeiro %d corresponde a primeira 
variável e assim por diante. Use o programa 
P6 para verificar isto. 
 
Programa P6:Complete e 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); 
} 
 
Para ler os valores das variáveis e guardá-los 
na memória (caixinha) existe a função scanf. 
O scanf pega por exemplo um valor que foi 
digitado na tela e o guarda na memória 
(coloca na caixinha). 
Seja o exemplo 2 abaixo, onde foi declarada a 
variável inteira num. A linha de comando 
scanf(“%d”,&num); ordena ao computador 
que vá na tela do computador, leia o número 
inteiro que estiver lá e o coloque na caixinha 
da variável num. O símbolo “%d” é que 
indica que o número a ser lido é um inteiro, 
e &num, indica onde o valor lido deve ser 
armazenado, neste caso, na caixinha cujo 
nome é num. Se o número a ser lido fosse 
um float, teria que ser usado “%f”, e para 
uma variável do tipo char, usa-se “%c”. 
 
Exemplo 2: Comando de leitura de dados 
int num; 
scanf(“%d”,&num); 
 
Confirme a afirmação anterior com P7: 
 
Programa P7: 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"); 
} 
 
 
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); 
 
Neste exemplo o comando scanf vai pegar 
dois números na tela e armazená-los nas 
caixinhas n1 e n2 respectivamente. Confirmar 
isto com o programa P7. 
 
Programa P8: Refaça programa P6 usando o 
comando scanf para ler os valores de n1 e n2 . 
 
Observe que para ler qualquer variável do tipo 
int, char, float ou double, utilizando a função 
scanf é preciso colocar após cada variável o & 
(“E” comercial)2. 
Atenção, não se confunda, não se 
utiliza o “E” comercial (&) no 
printf. 
 
O operador sizeof() fornece o número de 
bytes que uma dada variável ocupa, isto é 
fornece o tamanho da caixinha que vai 
armazenar a variável. Utilize o programa P9 
para confirmar isto. 
 
2 O símbolo & significa endereço de memória. Este 
operador será melhor comentado em outros Labs. 
 
I C – 2 o S e m - 2 0 2 2 – P r o f . A n d r é A m a r a n t e – L A B 0 3 
 
 
4 
 
 
Programa P9: Sabendo que o comando 
sizeof(var1) retorna o número de bytes que ao 
variável var1 ocupa em C, crie um programa 
que imprime o tamanho de todos os tipos 
básicos de variáveis (int, double, float, char). 
 
A impressão (com printf) e a leitura (com 
scanf) de números reais (tipo float ou 
double) pode ser feita com o uso de “ %f ” 
(use P10). Para caracteres basta usar “ %c ” 
(use P11). 
 
Programa P10: Teste o programa para 
verificar se ele tem algum erro e se este for o 
caso, corrija-o. 
# include <stdio.h> 
# include <stdlib.h> 
main() 
{ 
 float d, p; 
 printf(“Entre com o valor inicial: \n”); 
 scanf(“%d”,&d); 
 p = d + 0.01*d; 
 printf(“Valor final = %f \n ”, p); 
 system(" pause"); 
} 
 
Programa P11: Crie um programa que lê um 
caractere e o imprime dentro de uma 
mensagem. 
 
Um resumo dos códigos e as variáveis que eles 
exibem são dados na Tabela T2: 
 
 
Tabela T2: Códigos para impressão de 
valores das variáveis. 
Código Exibição 
%d número inteiro 
%f número de ponto flutuante 
%e notação científica 
%c caractere simples 
%s cadeia de caracteres 
%o representação octal 
%x representação hexadecimal 
%% exibe o caractere % 
 
 
PROGRAMAS BÁSICOS 
 
Programa PB1: Sabendo que a fórmula 
de conversão 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. 
 
 
Programa PB2: Baseado no P10 construa 
um programa que forneça o saldo de uma 
caderneta de poupança remunerada em 1% 
ao mês após três meses (dica: use %f no 
scanf). 
(a) Teste para vários valores iniciais (500, 
1000, 2000). 
(b) Permita a leitura simultânea do valor 
inicial e da taxa de juros (use taxas de 1% e 
10%). 
 
Para fazer o PB2, lembre-se que a fórmula 
para o cálculo de juros composto é: 
 SF=SI(1+taxa)tempo 
O comando em C que calcula potência é o 
pow. Para se calcular, por exemplo (3)4 , e 
armazenar o resultado na variável conta 
faz-se: conta=pow(3,4). Mas para se usar 
esse comando é necessário colocar no 
programa a biblioteca math.h, isto é, é 
preciso acrescentar no inicio do programa 
a linha #include<math.h>. 
Programa PB3: Escreva um único 
programa que execute as seguintes tarefas: 
 
a) Leia o valor das variáveis X e Y a 
partir da tela, em seguida subtraia do 
valor de X o valor 10. Depois faça a 
soma de Y com o novo valor de X 
elevado ao quadrado e guarde o 
resultado dessa operação em W. 
b) Divida o valor da variável X obtida no 
item (a) pelo valor da variável Y. 
Extraia a raiz quadrada dessa divisão e 
então multiplique-a pela metade do 
valor da soma de X e Y. Guarde o final 
dessa operação em W. 
c) Somar ao valor da variável X elevado 
ao cubo o resultado da diferença de X 
e Y e guarde o valor resultante na 
variável K. 
d) Imprima os valores de W e K, obtidos 
em cada item. 
OBS: para se extrair a raiz quadrada de um 
número M qualquer, faz-se sqrt(M) e aqui 
também é necessário usar 
#include<math.h>, pois esse comando 
faz parte da biblioteca math.h 
 
Programa PB4: Escreva um programa em 
C para executar as seguintes ações: 
a) Leia um valor para X. Se X < 0 
escreva uma mensagem dizendo que o 
valor é negativo e peça para digitar um 
valor positivo e imprima o novo valor 
digitado. 
b) Se X está entre 0 e 10, imprima uma 
mensagem dizendo que X está entre 0 
e 10, seguido do valor de X. 
 
I C – 2 o S e m - 2 0 2 2 – P r o f . A n d r é A m a r a n t e – L A B 0 3 
 
 
5 
c) Se X está entre zero e 100, imprima 
“O valor de X está entre zero e 100. X 
= . Se X > 100, imprima ” O valor 
de X eh maior que 100, X= “ , e 
emita 7 sinais sonoros. 
 
Para fazer os programas PB4, PB5, PB6 
e PB7, que virão a seguir, você vai precisar 
utilizar a estrutura: se-então-senão, cuja 
sintaxe na linguagem C é a seguinte: 
 
if (condição) 
 { 
 comando do então (condição verdadeira); 
 } 
else 
 { 
 comando do senão (condição falsa); 
 } 
 
Então observe atentamente e procure 
compreender o Programa PB4, 
mostrado abaixo, de modo que você 
consiga programar os demais. 
 
Programa PB4 
#include <stdio.h> 
#include <stdlib.h> 
main ( ) 
{ 
 int X; 
 printf ("Digite um numero para X: "); 
 scanf ("%d", &X); 
 if (X < 0) {//inicio então 
 printf ("\n\nVoce digitou um numero 
negativo\n"); 
 printf ("Por favor, digite um numero 
positivo\n"); 
 scanf ("%d", &X); 
 }//fim então 
 if (X <= 10) 
 {printf ("\n\n O valor de x esta entre 
zero e dez! X=%d\n",X);} 
 else if(X <= 100) 
 printf ("O valor de X esta entre zero 
e 100. X=%d\n", X); 
 else printf ("O valor de X eh maior 
que 100. X=%d\a\a\a\a\a\a\a\n", X); 
 system("pause"); 
} 
 
Programa PB5 As raízes de uma equação 
quadrática da forma ax2+ bx +c = 0 são 
reais se e somente se o discriminante dado 
por b2 – 4ac for maior ou igual a zero. 
Fazer um programa em C para ler os 
valores dos coeficientes a, b, c e imprimir 
o valor do discriminante dizendo se as 
raízes são reais ou não. Se as raízes forem 
reais, calcular as raízes. 
 
 
Programa PB6 Preparar um programa em 
C para ler os comprimentos dos três lados 
de um triângulo (S1, S2, e S3) e calcular a 
área do triângulo de acordo com a 
fórmula: 
)3)(2)(1( STSTSTTárea −−−= 
onde 2
321 SSST
++
= 
 
 
 
 
 
 
Programa PB7 Preparar um programa em 
C para ler os comprimentos dos três lados 
de um triângulo (S1, S2, e S3) e determinar 
que tipo de triângulo tem-se, com a base 
nos seguintes casos. Sejam A o maior dos 
lados de S1, S2, e S3 e B e C os outros dois 
lados. Então: 
• Se A  B + C nenhum triângulo é 
formado. 
• Se A< B + C e se 
1) A2 = B2 + C2 um triângulo 
retângulo é formado, 
2) A2 > B2 + C2 um triângulo 
obtusângulo é formado 
3) A2 < B2 + C2 um triângulo 
acutângulo é formado.

Mais conteúdos dessa disciplina