Buscar

Fundamentos_C_Vars_Atrib_Ent_Sai

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 66 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 66 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 66 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Algoritmos
1
‹nº›
 Algoritmo: conceito
Seqüência finita e não ambígua de passos que permite a solução de um problema de maneira automática e repetitiva
Linguagem utilizada na solução deve ser compreendida pelo executor da solução
‹nº›
Algoritmo: conceito
Na seqüência de passos que soluciona um problema pode-se ter:
Instruções diretas 
tomada de decisões ( em função do contexto atual)
repetição de passos (iteração)
‹nº›
Interação dos atores envolvidos: 
riscar lado 
girar 90º
riscar outro lado 
girar 90º ...
pf 100 
pd 90 
pf 100 
pd 90 
.......
“faz ele desenhar um quadrado de lado 100”
Atores envolvidos
criador da solução
executor da solução
usuário da solução
‹nº›
Exemplos
Partitura
Criador?
Executor?
Usuário
Receita Culinária
Criador?
Executor?
Usuário
‹nº›
Algoritmos x Programas
A noção de algoritmo é central para toda a computação
Um programa é um algoritmo escrito em uma linguagem de programação. 
‹nº›
Programa
Um programa, em geral, opera sobre um conjunto de entradas (valores) de modo a gerar uma saída que seja útil para o usuário
‹nº›
7
7
7
‹nº›
Etapas da construção de um programa
Compreender completamente o problema a ser resolvido, destacando os pontos mais importantes e os objetos que o compõem.
Definir os dados de entrada, ou seja, quais dados serão fornecidos e quais objetos fazem parte desse cenário-problema.
Definir o processamento, ou seja, quais cálculos serão efetuados e quais restrições para esses cálculos. O processamento é responsável pela transformação dos dados de entrada em dados de saída. Além disso, deve-se verificar quais objetos são responsáveis pelas atividades.
Definir os dados de saída, ou seja, quais dados serão gerados depois do processamento.
Construir o algoritmo
Escrever o programa: o algoritmo expresso em uma linguagem de programação
Testar o programa realizando simulações.
‹nº›
Passos da Solução
Identificar quais os valores devem ser mostrados ao usuário como resultado da execução do programa, isto é, as respostas a serem enviadas ao usuário(saídas)
Identificar quais os valores o usuário deve fornecer ao executor para que ele possa resolver o problema
Determinar como fazer (a seqüência de cálculos ) para que os valores de entrada sejam transformados nos valores de saída, isto é, que ações devem ser realizadas para depois de obter os valores necessários, transformá-los nas respostas desejadas
 	E: 	----
		----
		----
	S: 	--------
		--------
‹nº›
 Construindo um programa
Portanto, para o programador encontrar a solução ele deve:
Identificar quais os valores devem ser mostrados ao usuário como resultado da execução do algoritmo, isto é, as respostas que o executor deve informar ao usuário (SAIDAS)
Identificar quais os valores o usuário deve fornecer ao executor para que ele possa resolver o problema ( ENTRADAS)
Determinar como fazer (a seqüência de cálculos ) para que os valores de entrada sejam transformados nos valores de saída, isto é, que ações devem ser realizadas para depois de obter os valores necessários, transformá-los nas respostas desejadas.
------------------
‹nº›
 Construindo um programa
 
Criar as variáveis para guardar os valores fornecidos pelo usuário ou resultantes das operações. Como os valores podem ser de tipos diferentes ( numéricos – inteiro ou real, caractere) e a representação interna é diferente para cada tipo, na declaração é necessário associar o tipo de dado à variável.
Interagir com o usuário quando precisa de valores: informando-o de sua necessidade e recebendo (“ouvindo e memorizando”, anotando, guardando) estes valores em variáveis.
transformar os dados de entrada gerando os valores das respostas desejadas
 informar as respostas ao usuário
------------------
‹nº›
Introdução à Linguagem C
‹nº›
12
‹nº›
Exemplo motivador
Escreva um programa em C que armazene em três variáveis sua idade, sua altura e seu peso e calcule e exiba seu IMC. (peso/alt2)
Desenvolvendo a solução:
Valores de entrada (E) :	sua idade (int), sua altura (real) e seu peso (real)
Valores de saída (S) :	 IMC( real) 
Como? 1 kg peso/alt2 
	
‹nº›
Estrutura de um programa em linguagem C
##include <stdio.h>
int main (void)
{
	-------
	-------	 área de declaração de variáveis
	-------
	-------
	-------	 área de comandos
	-------
	return 0;
}
{  início de bloco
}  fim de bloco
;  delimitador de fim de instrução 
‹nº›
Variável
‹nº›
Variável
Variável é um espaço reservado na memória do computador para armazenar um tipo de dado. 
Toda variável tem:
um nome (identificador), pelo qual pode ser referenciada
um tipo de dado
um valor
Regras para nome de uma variável
começar por letra ou hífen (‘_’)
pode conter letras, números ou hífen (‘_’)
palavras reservadas não podem ser utilizadas (main, int, if, while, ...)
os nomes devem ser elucidativos
‹nº›
Declaração de uma variável
Sintaxe para a declaração de uma variável
Os tipos primitivos são: int (inteiro), float( ponto flutuante) e char (caractere)
	Exemplos:
inteira:		int 	qtd;
real:		float salario, imposto_pago;
caracter:		char letra;
tipo 	identificador da variável
‹nº›
Valores constantes dos tipos de dados
inteiros:	5	101	77	 -943
reais:	15.3	-0.37	6.	.37
caracteres:	‘c‘ 	‘? ‘ 	‘ ‘	‘1 ‘
string:	“banana”	“”	“12@34#$”	“a”
‹nº›
				A
				AB5
				AB4
				AB3
				AB2
				AB1
				AB0
				A
		Bits	Valor	AB5
		101011	-3.0	AB4
		 001011	3.0	AB3
		 100011	-3	AB2
		 000011	3	AB1
				AB0
Exemplo da representação interna de valores numéricos
 
MEMÓRIA
int pI;
nI
pI
pR
nR
Exemplo com 6 bits 
Valor 3 armazenado nestas variáveis
int nI;
float pR;
float nR; 
LEMBRE-SE: O valor de uma posição de memória depende do tipo armazenado ;
Números são armazenados na base binária
‹nº›
Resumo Variáveis
Declaração de variável: tipo nome da variável
						int
						float
						double
						char
variáveis devem ser explicitamente declaradas
Toda variável tem:
um nome (identificador)
um tipo de dado
um valor
variáveis podem ser declaradas em conjunto
int a; 	 	/* declara uma variável do tipo int */
float c; 		/* declara uma variável do tipo float */
int d, e; 		/* declara duas variáveis do tipo int */
‹nº›
Criando as variáveis do exemplo motivador
#include <stdio.h>
int main(void)
{
	int id;
	float peso, alt, IMC;
	return 0; 
} 
Escreva um programa em C que armazene em três variáveis sua idade, sua altura e seu peso e calcule e exiba seu IMC. (peso/alt2)
‹nº›
Atribuição
‹nº›
Expressão Aritmética
Uma expressão aritmética é uma expressão matemática envolvendo números, variáveis e operadores
Operadores:
Exemplos:
numero1 + numero2
salario + bonus * 0.2 / 12
(salario + bonus * 0.2) / 12
Lembre-se que uma expressão é avaliada de acordo com a prioridade dos operadores
	Op1	Op2	Resultado
	int	int	int
	float	float	float
	int/float	int/float	float
	Operação	Operador	int	float		
	Soma	+	 	 		
	Subtração	-	 	 		
	Multiplicação	*	 	 		
	Divisão	/	 	 	7 / 2  3	7.0 / 2  3.5
	Resto 	%	 		7 % 2  1	6 % 2  0
‹nº›
Atribuição
Utilizada para armazenar em uma variável um valor constante ou o valor de outra variável ou o resultado da avaliação de uma expressão aritmética
Sintaxe
 
1º passo) resolve a expressão
2º passo) guarda o resultado na variável
Exemplos:
int numero1, numero2;
int soma, total;
float peso1, peso2,peso3;
identificador da variável = expressão aritmética
Valor constante 	total = 100;
		peso1 = 10;
		peso2 = 10.	
Valor de 1 variável	numero2 = numero1;
		peso1 = numero2;
Expressão Aritmética: soma = numero1 + numero2; 
		 total = soma + 1;
‹nº›
Declaração e atribuição de Variável
			A
		?	AB5
		?	AB4
		?	AB3
		?	AB2
		?	AB1
		?	AB0
MEMÓRIA
 #include<stdio.h>
 int main (void)
 {
	int num1;
	int suc;
	int total;
	num1=3;
	total = 0;
	suc=num1+1;
	total = total + 1;
	
	return 0;
 }
suc
num1
total
‹nº›
Declaração e atribuição de Variável
			A
		?	AB5
		?	AB4
		?	AB3
		?	AB2
		?	AB1
		?	AB0
MEMÓRIA
 #include <stdio.h>
 int main (void)
 {
	int num1;
	int suc;
	int total;
	num1=3;
	total = 0;
	suc=num1+1;
	total = total + 1;
	
	return 0;
 }
suc
num1
3
total
‹nº›
Declaração e atribuição de Variável
			A
		?	AB5
		?	AB4
		?	AB3
		?	AB2
		?	AB1
		3	AB0
MEMÓRIA
 #include <stdio.h>
 int main (void)
 {
	int num1;
	int suc;
	int total;
	num1=3;
	total = 0;
	suc=num1+1;
	total = total + 1;
	
	return 0;
 }
suc
num1
total
0
‹nº›
Declaração e atribuição de Variável
			A
		?	AB5
		?	AB4
		?	AB3
		0	AB2
		?	AB1
		3	AB0
MEMÓRIA
 #include <stdio.h>
 int main (void)
 {
	int num1;
	int suc;
	int total;
	num1=3;
	total = 0;
	suc=num1+1;
	total = total + 1;
	
	return 0;
 }
suc
num1
4
total
1º passo) resolve a expressão: 3+1
2º passo) guarda o resultado na variável
‹nº›
Declaração e atribuição de Variável
			A
		?	AB5
		?	AB4
		?	AB3
		?	AB2
		4	AB1
		3	AB0
MEMÓRIA
 #include <stdio.h>
 int main (void)
 {
	int num1;
	int suc;
	int total;
	num1=3;
	total = 0;
	suc=num1+1;
	total = total + 1;
	
	return 0;
 }
suc
num1
total
0
1º passo) resolve a expressão: 0+1
2º passo) guarda o resultado na variável
1
‹nº›
Exemplo motivador
/*
 Faça um programa em C que armazene em três variáveis sua idade, sua altura e seu peso 
 e calcule o IMC, armazenando-o em uma nova variável. (peso/alt2)
 */
 #include <stdio.h>
int main(void)
{
	int id;
 	float peso,alt,IMC;
	id=10;
	peso=100;
	alt=1.0;
	IMC = peso/(alt*alt);
	return 0; 
} 
O usuário visualiza o valor do IMC do programador?
‹nº›
Saída de dados
‹nº›
 Saída de dados –printf
Exibe conteúdo de variáveis e/ou mensagens na tela segundo um determinado formato
Sintaxe:
printf (formato, lista de constantes/variáveis/expressões...);
printf ("v%i %f", 33, 3.3); 
tem como resultado a exibição na tela da linha: 33 5.3
nreal = 3.3;
printf ("Inteiro = %i Real = %f", 33, nreal);
tem como resultado a exibição da linha abaixo na tela: Inteiro = 33 Real = 3.3
printf (" Quociente = %f", 33 / nreal);
tem como resultado a exibição da linha abaixo na tela: Quociente = 10.0
O texto será impresso EXATAMENTE como especificado
No lugar da variável, será impresso seu conteúdo
‹nº›
Formatos
Observações
para imprimir o caractere '%', utilize '%%'
utilize '\n' para que o próximo conteúdo seja impresso na linha de baixo
utilize '\t' para que o próximo conteúdo seja impresso na próxima coluna de tabulação da tela
	Tipo	Especificação do formato
	char	%c
	int	%d ou %i
	unsigned int	%u
	double (ou float)	%f
	double (ou float) no formato científico	%e
	double (ou float) no formato mais apropriado (%f ou %e)	%g
	cadeia de caracteres	%s
‹nº›
33
‹nº›
Exemplos – função printf
Exemplo 1: Saída desejada:
Exemplo 2: Saída desejada: 
num1=3;
num2=5;
soma=num1+num2;
printf (“\n RESULTADO: %d + %d = %d”, num1, num2, soma);
Hoje é / ! 
int dia,mes=9;
dia = 6;
printf ("\n Hoje é %d / %i !", dia, mes);
RESULTADO: + =
‹nº›
Saída
Especificação de tamanho de campo:
‹nº›
35
‹nº›
Exemplo motivador
/*
Faça um programa em C que armazene em três varíáveis sua idade, sua altura e seu peso.
Calcule e exiba o IMC e as demais informações
*/
#include <stdio.h>
int main(void)
{
	int id;
	float peso,alt,IMC;
	id=10;
	peso=100;
	alt=1.0;
	IMC = peso/(alt*alt);	 //69.45
	printf( "Dados do programador!!!!\n");
	printf("\nIdade:%i",id);
	printf("\n Altura: %.2f \nPeso: %.1f \n IMC: %.2f",alt,peso,IMC);
	return 0; 
} 
Interessa ao usuário visualizar o valor do IMC do programador?
Provavelmente gostaria de saber o IMC pessoal!!!!
COMO RESOLVER???
Permitir que o usuário forneça seus dados ao programa. ENTRADA DE DADOS 
‹nº›
Exercícios com saída de dados
‹nº›
Faça um programa que mostre o peso do programador nos diferentes planetas
 
‹nº›
Escreva um programa para mostrar a quantidade de caixas de azulejos para se colocar em todas as paredes de um banheiro de 2x3x4 . Cada caixa de azulejos possui 2,5 m2.
#include <stdio.h>
#include <math.h>
int main(void)
{
	int alt,larg,compr;
	float area1,area2,areacx;
	alt = 4;
	larg = 3;
	compr = 2;
	area1 = alt*larg*2;
	area2 = alt*compr*2;
	areacx=(area1+area2)/2.5;
	printf ( “\n Numero de caixas %6.2f cm”, areacx);
	return 0; 
} 
‹nº›
Faça um programa em C que determine a área interna da menor caixa quadrada capaz de transportar uma pizza cuja área é de 706,86 .( área = Π . r 2 ) 	lado == diâmetro da pizza
#include <stdio.h>
#include <math.h>
int main(void)
{
	float pi,area,r,lado,areacx;
	pi=3.1415;
	area=706.86;
	r=sqrt(area/pi);
	lado = 2*r;
	areacx=lado*lado;
	printf ( “\n a area da caixa deve ter %6.2f cm”, areacx);
	return 0; 
} 
a linguagem C não tem um operador para a raiz quadrada, mas na biblioteca matemática <math.h> existe um código (função) que a calcula :
sqrt(x)
 
‹nº›
Um prato tem 24 cm de diâmetro e um outro tem 30 cm. 
 Faça um programa em C que mostre, as áreas e quantos por cento o prato menor é do maior 
#include <stdio.h>
int main(void)
{	char simb= `%`;
	float dGrande, dPequeno;
	float area_peq, area_gde,perc;
	int raio_peq,raio_gde;
	dGrande = 30;
	dPequeno = 24;
	raio_peq = dPequeno/2;
	raio_gde = dGrande/2;
	area_peq = 3.1415* (raio_peq*raio_peq); // área do círculo pequeno
	area_gde = 3.1415* (raio_gde*raio_gde); // área do círculo grande
	perc= area_peq/area_gde *100;
	printf ( “\nO prato pequeno eh %.2f %c do grande”, perc,simb);
	return 0; 
} 
Não seria mais fácil se ele “soubesse” calcular a área do círculo?
‹nº›
Um prato tem 24 cm de diâmetro e um outro tem 30 cm. 
 Faça um programa em C que mostre as áreas e quantos por cento o prato menor é do maior
#include <stdio.h>
#include <math.h>
#define PI 3.1415
int main(void)
{	char simb= `%`;
	float diamG, diamP;
	float areaP, areaG;
	diamG = 30;
	diamP = 24;
	areaP = PI * pow(diamP/2,2);
	areaG = PI * pow(diamG/2,2); 
	perc= area_peq/area_gde *100;
	printf ( “\nO prato pequeno eh %.2f %c do grande”, perc,simb);
	return 0; 
} 
a linguagem C não tem o operador de exponenciação, mas na biblioteca matemática <math.h> existe um código (função) que a calcula :
x y  pow(x, y)
Para evitar o uso de uma constante numérica para o PI pode-se definir uma CONSTANTE SIMBÓLICA.
‹nº›
Entrada de Dados
‹nº›
Entrada de dados – comando scanf
Captura valores digitados pelo usuário. Estes valores devem ser armazenados em variáveis 			
Sintaxe:
scanf ("%i", &num1);
					
1º passo: deixar o usuário digitar – pára quando o usuário digitar <enter>
2º passo: transformar o que o usuário digitou para o valor intero do tipo especificado
3º passo: armazenar o valor no endereço de memória indicado pelo nome da variável
			A
			AB5
			AB4
			AB3
			AB2
			AB1
			AB0
int num1; 
scanf ( , );
1 2 bks bks 3 enter
num1
Endereço da variável num1
00011
“%d”
& num1
3
scanf (formato, lista de endereços das variáveis...);
‹nº›
Formatos
	Tipo	Especificação do formato
	char	%c
	int	%d ou %i
	unsigned int	%u
	double (ou float)	%f
	double (ou float) no formato científico	%e
	double (ou float) no formato mais apropriado (%f ou %e)	%g
	cadeia de caracteres	%s
‹nº›
45
‹nº›
Entrada
Observações:
caracteres diferentes dos especificadores no formato servem para delimitar a entrada
espaço em branco dentro do formato faz com que sejam "pulados" eventuais brancos da entrada
%d, %f, %e e %g automaticamente pulam os brancos que precederem os valores numéricos a serem capturados
Exemplos:
scanf ("%d %d", &h, &m);
 os valores (int) fornecidos devem serseparados p/ espaço ou enter
scanf ("%d:%d", &h, &m);
			os valores (int) fornecidos devem ser separados pelo caracter dois pontos (:)
scanf ("%d-%d", &h, &m);
		os valores (inteiros) fornecidos devem ser separados pelo caractere hífen  (-)
scanf ("%d%d", &h, &m);
	 os valores (int) fornecidos devem ser separados p/ espaço ou enter
‹nº›
46
‹nº›
Exemplo motivador
/*
Faça um programa em C que pergunte a idade, a altura e peso do usuário.
Calcule e exiba o IMC e as demais informações.
*/
int main(void)
{
	int id;
	float peso,alt,IMC;
	printf("\nDigite sua idade, altura e peso: ");
	scanf("%i %f %f",&id, &alt,&peso);
	IMC = peso/(alt*alt);
	printf("idade: %i altura: %f peso: %f",id, alt, peso);
	printf("\n IMC: %.2f",IMC);
	return 0; 
}
‹nº›
Resumo Linguagem C
até o momento
‹nº›
48
‹nº›
Linguagens de Programação
Ao se aprender uma nova linguagem de programação, normalmente se estuda 
sintaxe
tipos de dados (básicos, compostos, definidos pelo usuário)
operadores
comandos de controle
funções
entrada e saída
bibliotecas
Transcrito de IC/Unicamp
‹nº›
49
‹nº›
Programas
Um programa, para ser executado, precisa de um conjunto de “algoritmos” fornecidos pela linguagem de programação que “ensinam” o computador a executar algumas tarefas. (funções da linguagem)
Exemplo em C: as funções printf() e sqrt() 
Os ”códigos” destes algoritmos são disponibilizados através de funções de biblioteca 
Exemplo em C: biblioteca stdio.h para printf() e math.h para sqrt()
Transcrito de IC/Unicamp
‹nº›
Estrutura mínima de um programa em C
# include <stdio.h> 
# include de outras bibliotecas se necessário
int main (void)
{
	-------
	-------	 área de declaração de variáveis
	-------
	-------
	-------	 área de comandos
	-------
	return 0;
}
{  início de bloco
}  fim de bloco
;  delimitador de fim de instrução 
‹nº›
Diretivas para o processador - Bibliotecas	
Diretiva #include permite incluir uma biblioteca
Bibliotecas contêm funções pré-definidas, utilizadas nos programas
Exemplos
Funções de localização geográfica
#include <locale.h>
Funções matemáticas
#include <math.h>
Funções padrão
#include <stdlib.h>
Funções de entrada e saída
#include <stdio.h>
Adaptado de slides de Luis Otavio Alvares
‹nº›
52
52
‹nº›
Área de Declaração
Declaram as variáveis e seus tipos
Os nomes das variáveis devem iniciar com letra ou _ e conter apenas letras, dígitos e _ 
Os principais tipos são: int, float, double e char
Exemplos
		int n_filhos;
		int qtValores;
		float F;
		char sexo;
		
C diferencia letras maiúsculas de minúsculas!
Adaptado de slides de Luis Otavio Alvares
‹nº›
53
53
‹nº›
54
Comando de atribuição
			variavel = valor
Armazena o valor na variável 
O valor pode ser:
 uma constante,
 uma variável ou 
uma expressão
Exemplos
		x = 4; // x recebe 4
		x= x+1 // modifica o valor de x com o resultado de x+1
		y = x + 2; // y recebe (x mais 2)
		valor = 2.5;
		sexo = 'F' // constantes devem estar entre aspas simples (apóstrofe)
			
‹nº›
54
54
‹nº›
55
Operadores Matemáticos
Adaptado de slides de Luis Otavio Alvares
Decrementa em 1 o valor de x
x--
--
Incrementa em 1 o valor de x
x++
++
Resto da divisão de x por y
x % y 
%
Divide x por y 
x / y 
/
Multiplica x e y
x * y
*
Subtrai y de x
x – y 
-
Soma x e y
x + y
+
Comentário
Exemplo
Operador
‹nº›
55
‹nº›
CUIDADO!!!!
OBS: o operador / (divisão) terá um resultado inteiro se os dois operandos forem inteiros. Para um resultado real, um dos dois operandos deve ser real (ou os dois)
Exemplo:
int X,Y;
float Z,U,T;
X=2; Y=3; U=3;
Z=X/Y; // Z terá o valor zero
T=X/U; // T terá o valor 0.666667
Adaptado de slides de Luis Otavio Alvares
‹nº›
56
‹nº›
Aritmética Inteira
A linguagem C oferece um operador aritmético adicional para operandos inteiros chamado operador modulo ou resto (%)
int a;
a = 8 % 3; /* a recebe o valor 2 */
57
Faça um programa em C que capture a quantidade de segundos que um atleta levou para percorre 30 km e mostre-o em horas,minutos e segundos.
‹nº›
57
57
‹nº›
Aritmética Inteira
#include <stdio.h>
int main ( void)
{
 int tot; /* numero total de segundos */
 int hor, min, seg; /* numero total de horas, minutos e segundos */
 printf("Entre com o numero de segundos transcorridos: "");
 scanf("%i", &tot); // leitura da quantidade de segundos na variável tot
 hor = tot / 3600;
 min = (tot % 3600) / 60;
 seg = tot % 60;
 printf("\nTempo transcorrido: ");
 printf("" %d h", hor);
 printf("" %d min", min);
 printf("" %d s", seg);
 return 0; 
}
Quando essa truncagem é útil???
Chinês: 4320s = 1h 1min 12s
‹nº›
58
58
‹nº›
59
Funções Matemáticas
Tangente de x
tan(x)
tan
Raiz quadrada de x
sqrt(x)
sqrt
Seno de x
sin(x)
sin
Calcula x elevado à potência y
pow(x, y)
pow
Logaritmo decimal de x
log10(x)
log10
Logaritmo natural de x
log(x)
log
Arredonda o número real para baixo; floor(3.2) é 3
floor(x)
floor
Valor absoluto de x
fabs(x)
fabs
e elevado à potencia x
exp(x)
exp
Cosseno de x (x em radianos)
cos(x)
cos
Arredonda o número real para cima; ceil(3.2) é 4
ceil(x)
ceil
Comentário
Exemplo
Função
#include <math.h>
‹nº›
59
‹nº›
Entrada e Saída de dados – comando printf
Saída:
Entrada:
printf ("formatos", var1, var2,...)
Formatos:
%d inteiro
% i inteiro
%f float
%lf double
%c char
scanf (formato, lista de endereços das variáveis...);
‹nº›
Exercícios Resolvidos
‹nº›
Exemplo 2
Faça um programa em C que determine a área interna da menor caixa quadrada capaz de transportar uma pizza cuja área é fornecida pelo usuário . 		 área = Π . r 2
 
 
#include <stdio.h>
#include <math.h>
#define PI 3.1415
int main(void)
{
	float area,r,lado,areacx;
	printf( “\nQual a área da pizza?”);
	scanf(“%f”, &area);
	r=sqrt(area/PI);
	lado = 2*r;
	areacx=pow (lado,2); // ou lado*lado;
	printf ( “ \nA area da caixa deve ter %.2f cm”, areacx);
	return 0; 
} 
‹nº›
Faça um programa em C que determine quantos por cento um prato de x cm de diâmetro ocupa de um prato de y cm. X e y serão fornecidos pelo usuário e x<=y
#include <stdio.h>
int main(void)
{	
	char simb = `%`;
	float area_peq, area_gde,perc;
	int menor,maior;
	float raio_peq,raio_gde;
	printf ( “Digite o diametro do prato menor e o diametro do prato maior:”);
	scanf( “%d %d”,&menor,&maior);
	raio_peq = menor/2.0;
	raio_gde = maior/2.0;
	area_peq = 3.1415* (raio_peq*raio_peq);
	area_gde = 3.1415* (raio_gde*raio_gde);
	perc= area_peq/area_gde *100;
	printf ( “\nO prato pequeno eh %f %c do grande”, perc,simb);
	return 0; 
} 
mas na biblioteca matemática <math.h> 
existe um código (função) que calcula 
x y  pow(x, y)
a linguagem C não tem o operador de exponenciação, 
‹nº›
Faça um programa em C que determine quantos por cento um prato de x cm de diâmetro ocupa de um prato de y cm. X e y serão fornecidos pelo usuário e x<=y
#include <stdio.h>
#include <math.h>
#define PI 3.14159
int main(void)
{	
	char simb = `%`;
	float area_peq, area_gde,perc;
	int menor,maior;
	float raio_peq,raio_gde;
	printf ( “Digite o diametro do prato menor e o diametro do prato maior:”);
	scanf( “%i %i”,&menor,&maior);
	raio_peq = menor/2.0;
	raio_gde = maior/2.0;
	area_peq = PI* pow(raio_peq,2);
	area_gde = PI* pow(raio_gde,2);
	perc= area_peq/area_gde *100;
	printf ( “\nO prato pequeno eh %f %c do grande”, perc,simb);
	return 0; 
} 
Para evitar o uso de uma constante numérica para o PI pode-se definir uma CONSTANTE SIMBÓLICA.
Não seria mais fácil se houvesse uma “receita” de como calcular a área de um círculo?
‹nº›
64
‹nº›
Exemplo
/* Escreva um programa para mostrar a quantidade de azulejos retangulares necessários para cobrir todas as paredes de um banheiro. As dimensões do banheiro e do azulejo são fornecidas pelo usuário. */
#include <stdio.h>
int main(void)
{
	int altB,largB,comprB,altA,comprA;float area1,area2,areaA,qtCx;
	printf( "Digite as 2 dimensões do azulejo");
	scanf( "%d %d", &altA, &comprA);
	printf( "Digite as alt,larg e compr do banheiro");
	scanf( "%d %d %d", &altB, &largB, &comprA);
	areaA = altA * largA;
	area1 = altB*largB *2;
	area2 = altB*comprB *2;
	qtcx=(area1+area2)/areaA;
	printf ( "\n Numero de azulejos %6.2f cm", qtcx);
	return 0; 
} 
Não seria mais fácil se houvesse uma “receita” de como calcular a área de um retângulo para ser seguida?
‹nº›
Exercício
 Considerando a existência de notas (cédulas) nos valores R$ 100, R$ 50, R$ 20, R$ 10, R$ 5e R$ 1, escreva um programa que capture um valor inteiro em reais (R$) e determine o menor número de notas para se obter o montante fornecido. O programa deve exibir o número de notas para cada um dos valores de nota existentes
#include <stdio.h>
int main(void){		
int val, q100,q50,q20,q10,q5,q2,q1,tot; 	
printf ( “Digite valor:”);
scanf( “%d”,&val);
tot = val;
q100 = tot/100;
tot = tot%100;
q50 = tot/50;
tot = tot%50;
q10 = tot/10;
tot = tot%10;
q5= tot/5;
q1=tot%5;
printf ( "\n%d de 100, %d de 50 %d de 20, %d de 10, %d de 5 %d de 2 e %d de 1", 
		q100,q50,q20,q10,q5,q2,q1);
return 0; 
} 
E: valor ( inteiro)
S: qt 100, 
 qt 50, 
 qt 20, 
 qt 10, 
 qt 5,
 qt 1
‹nº›
# Gravidade 
relativa 
(Gplaneta/10 
Planeta 
1 0,37 Mercúrio 
2 0,88 Vênus 
3 0,38 Marte 
4 2,64 Júpiter 
5 1,15 Saturno 
6 1,17 Urano 
 
Terra
P
planeta
g
planeta
P
*
10
=
#include <stdio.h> 
 int main(void) 
 { 
 float peso,pesoMercurio,pesoVenus,pesoMarte,pesoJupiter; 
 
 peso = 100; 
 pesoMercurio = peso*0.37; 
 pesoVenus = peso*0.88; 
 pesoMarte = peso*0.38; 
 pesoJupiter = peso*2.64; 
 printf("\nNa Terra %.2f  %.2f em Mercurio\n",peso,pesoMercurio); 
 printf("\nNa Terra %.2f  %.2f em Venus\n",peso,pesoVenus); 
 printf("\nNa Terra %.2f  %.2f em Marte\n",peso,pesoMarte); 
 printf("\nNa Terra %.2f  %.2f em Júpiter\n",peso,pesoJupiter); 
 return 0; 
 } 
 
	#
	Gravidade relativa (Gplaneta/10
	Planeta
	1
	0,37
	Mercúrio
	2
	0,88
	Vênus
	3
	0,38
	Marte
	4
	2,64
	Júpiter
	5
	1,15
	Saturno
	6
	1,17
	Urano
#include <stdio.h>
 int main(void) 
 {
 float peso,pesoMercurio,pesoVenus,pesoMarte,pesoJupiter;
 peso = 100;
 pesoMercurio = peso*0.37;
 pesoVenus = peso*0.88;
 pesoMarte = peso*0.38;
 pesoJupiter = peso*2.64;
 printf("\nNa Terra %.2f %.2f em Mercurio\n",peso,pesoMercurio);
 printf("\nNa Terra %.2f %.2f em Venus\n",peso,pesoVenus);
 printf("\nNa Terra %.2f %.2f em Marte\n",peso,pesoMarte);
 printf("\nNa Terra %.2f %.2f em Júpiter\n",peso,pesoJupiter);
 return 0;
 }

Outros materiais

Outros materiais