Buscar

ProgramacaoI-funcoes

Prévia do material em texto

Programação	I		
Ciência	da	Computação	
Cornélia	Janayna	
	
Programa	em	C	
•  Programação	
– Conjunto	de	instruções	
– Algoritmo	
– Codificar	
•  Linguagens	de	Alto	Nível	
–  Independente	de	máquina	
•  Compiladores	
– Tradução	do	código	
Programa	em	C	
Programa	em	C 		
Programa	em	C	
Programa	em	C 		
Programa	em	C	
Programa	em	C 		
Programa	em	C	
Programa	em	C 		
Programa	em	C	
Programa	em	C 		
Programa	em	C	
Programa	em	C	
Programa	em	C	
Programa	em	C 		
Programa	em	C	
Caracteres	especiais	
Programa	em	C	
/*Comentários*/	
Variáveis	
Declaração	de	variáveis 		
Exemplos:	 		
Declaração:	 		
																													Variáveis	#include	<stdio.h>		
//declaração	de	variáveis	globais	
	
//	----------------	Funçao	main()-------------------	
int	main(void)	
{									
		//declaração	das	variáveis	locais	da	main()	
				
			return(0);	
}	
//	-------------------------------------------------	
	
void	funcao1(variáveis	locais	de	parâmetros)		
{	
			//	declaração	das	variáveis	locais	da	função1	
				
{	
		//	declaração	das	variáveis	locais	no	bloco	
}	
	return;	
}	
Variáveis	
Nomes	de	variáveis	:	
	
•  	 Descri]vo	daquilo	que	vai	armazenar	
	
•  	 Não	deve	ser	todo	escrito	em	maiúsculo	
	
•  			Caso	use	mais	de	uma	palavra,	u]lizar	underscore	ou	diferença	entre		minúsculas	
maiúcsulas.			
•  Não	usar	underscore	ou	números	para	iniciar	
•  Exemplos:		
	
	
		
Variáveis	
Atribuição:	
	
•  	 Uma	variável	poderá	der	iniciada	com	um	valor	através	de	uma	operação	de	
atribuição;			
•  Exemplo:	
	
	
	
		
Tipos	
Inteiros:	
	
•  	 Armazena	valores	numéricos	sem	parte	fracionária;			
•  Valores:	2,	-13,	+	564;		
•  Declaração:	int	num;		
	
•  Operações	sobre	inteiros	
	
	
	
		
Tipos	
Inteiros:	o	formato	de	escrita	de	um	inteiro	na	função	prin+	é	%d.		
	
•  	 	
	
	
	
		
Tipos	
INTEIROS	
	
	
	
	
	
	
	
		
	
		
•  O	formato	de	escrita	de	um	inteiro	na	função	prin+	é	%d.		
	
	
	
		
Tipos	
Inteiros	e	variações:o	tamanho	em	bytes	de	um	inteiro	varia	de	arquitetura,	2	ou	4	
bytes.			
	
	
	
	
	
	
Prefixos	que	garantem	o	tamanho:	short,	long.	
	
	
	
		
Tipos	
•  Inteiros	e	variações:	O	formato	na	função	prinl	é	%hd	e	%ld.		
	
	
	
	
	
	
	
	
	
		
Tipos	
•  Inteiros	e	variações:	com	sinal,	sem	sinal.		
	
	
	
	
	
	
	
	
	
		
Tipos	
•  Inteiros	e	variações:	
	
	
	
	
	
	
	
		
Tipos	
•  Reais:	valores	inteiros	com	parte	fracionária.	
•  Float	:	armazemam	4	bytes		
•  Double:	armazemam	8	bytes	
	
	
		
Tipos	
•  Reais:	O	formato	na	função	prinl	é	%f.		
	
	
		
Tipos	
•  Reais:	Operações		
	
	
		
Tipos	
•  Caracteres:	armazena	um	único	caractere	em	um	byte.			
•  O	formato	na	função	prin+	é	%c.	
	
	
	
		
Tipos	
•  Caracteres:	podem	ser	u]lizados	códigos	na	Tabela	ASCII:		
•  Exemplo	
	
	
	
	
		
Tipos	
•  Cas]ng:	alteração	do	]po	anteriormente	declarado:		
	
	
	
	
		
Tipos	
•  Formatos	e	Tipos	-	Resumo	
	
	
	
	
		
Testes,	Condicionais,	Seleções	
•  Valores	Lógicos	–	Verdadeiro	e	Falso	
–  Em	C	o	valor	lógico	FALSO	é	representado	por	0	(ZERO)	
–  Tudo	que	seja	diferente	de	0	(ZERO)	representa	o	valor	lógico	VERDADEIRO	
•  Exemplos:	
–  FALSO													:	0	
–  VERDADEIRO	:	2,	-3,	150.54,	0.003	
•  Os	 valores	 lógicos	 resultam,	 normalmente,	 de	 afirmações	 que	 são	
analisadas	 e	 cuja	 avaliação	 determina	 se	 a	 afirmação	 é	 verdadeira	 ou	
falsa.	
Testes,	Condicionais,	Seleções	
•  Os	 valores	 lógicos	 resultam,	 normalmente,	 de	 afirmações	 que	 são	
analisadas	 e	 cuja	 avaliação	 determina	 se	 a	 afirmação	 é	 verdadeira	 ou	
falsa.	
•  Exemplo:		
–  A	terra	é	quadrada	(FALSO)	
–  O	gelo	apresenta-se	no	estado	sólido.	(VERDADEIRO)	
–  O	valor	20		é	superior	ao	valor	a	14.	(VERDADEIRO)	
–  O	valor	20	é	superior	ao	valor	30.	(FALSO)	
Testes,	Condicionais,	Seleções	
•  IF	–	ELSE	
–  SINTAXE:	
•  COMO	FUNCIONA:	
–  A	condição	é	avaliada;	
–  Se	o	resultado	da	condição	for	verdadeiro,executa	a	instrução1;		
–  Se	o	resultado	da	condição	for	falso,	executa	a	instrução2	(caso	exista	o	else).	
	
Testes,	Condicionais,	Seleções	
•  IF	–	ELSE	
	
	
Testes,	Condicionais,	Seleções	
•  IF	–	ELSE	
	
•  Em	C	o	valor	de	uma	variável	pode	ser	aproveitado	pelo	programador	como	
valor	 lógico,	 u]lizando-o	 como	 FALSO	 (caso	 0)	 ou	 VERDADEIRO	 (caso	 seja	
diferente	de	0).	
	
	
Testes,	Condicionais,	Seleções	
•  Bloco	de	Instruções	
•  U]lizar	instruções	entre	{}.	
	
	
	
Testes,	Condicionais,	Seleções	
•  IF-ELSE	encadeados	(aninhados)	
–  Quando	o	teste	de	uma	condição	não	é	suficiente	para	tomar	a	decisão.	
	
	
	
	
Testes,	Condicionais,	Seleções	
•  IF-ELSE	encadeados	
–  Sempre	 que	 existem	 istruções	 if-else	 encadeadas,	 cada	 componente	 else	 pertence	
sempre	ao	úl]mo	if	(que	ainda	não	tenha	um	else	associado).	
•  No	código	anterior,	o	esle	pertence	ao	if	(b>10)	e	não	ao	primeiro	if	
	
	
	
	
Testes,	Condicionais,	Seleções	
•  IF-ELSE	encadeados	
–  Sempre	 que	 existem	 istruções	 if-else	 encadeadas,	 cada	 componente	 else	 pertence	
sempre	ao	úl]mo	if	(que	ainda	não	tenha	um	else	associado).	
•  Para	que	o	esle	pertença	ao	primeiro	if	
	
	
	
	
Testes,	Condicionais,	Seleções	
•  OPERADORES	RELACIONAIS	
Testes,	Condicionais,	Seleções	
•  OPERADORES	RELACIONAIS	
•  Uma	expressão	relacional	que	contenha	um	operador	relacional	devolve	
sempre	como	resultado	o	valor	lógico	VERDADE	(1)	ou	FALSO	(0).	
Testes,	Condicionais,	Seleções	
•  OPERADORES	RELACIONAIS	
•  Exemplo:		
Testes,	Condicionais,	Seleções	
•  OPERADORES	LÓGICOS	
	
•  Duas	ou	mais	expressões	lógicas:	único	valor	lógico.		
	
	
	
	
	
Testes,	Condicionais,	Seleções	
•  OPERADORES	LÓGICOS	
	Duas	ou	mais	expressões	lógicas:	único	valor	lógico.		
	
	
	
	
	
Testes,	Condicionais,	Seleções	
•  OPERADORES	LÓGICOS	
	Duas	ou	mais	expressões	lógicas:	único	valor	lógico.		
	
	
	
	
	
Testes,	Condicionais,	Seleções	
•  OPERADORES	LÓGICOS	
	Duas	ou	mais	expressões	lógicas:	único	valor	lógico.		
	
	
	
	
	
Testes,	Condicionais,	Seleções	
•  OPERADORES	LÓGICOS	
	Duas	ou	mais	expressões	lógicas:	único	valor	lógico.		
	
	
	
	
	
Testes,	Condicionais,	Seleções	
•  PRECEDÊNCIA	DOS	OPERADORES	LÓGICOS	E	RELACIONAIS		
–  A	DIRAÇÃO	DA	SETA	INDICA	A	MAIOR	PRECENDÊNCIA		
	
	
	
	
Testes,	Condicionais,	Seleções	
•  OPERADOR	?	
–  SINTAXE	
•  FUNCIONAMENTO	
–  A	condição	é	avaliada.	
–  Se	o	resultado	 for	VERDADE,	o	 resultado	de	 toda	a	expressão	é	o	valor	devolvido	por	
expressão1;	
–  Se	 o	 resultado	 for	 FALSO,	 o	 resultado	 de	 toda	 a	 expressão	 é	 o	 valor	 devolvido	 por	
expresão2.		
	
	
	
	
Testes,	Condicionais,	Seleções	
•  OPERADOR	?	
–  SINTAXE	
	
	
	
	
	
Testes,	Condicionais,	Seleções	
•  SWICTH	
–  A	Tomada	de	decisões	 com	enúmeras	possibilidades.	 Em	geral,	maior	que	2.	 Reduz	o	
uso	de	if-elses	encadeados.	
–  SINTAXE:	
	
	
	
	
	
Testes,	Condicionais,	Seleções	
•  SWICTH	
	
	
	
	
	
	
Laços	
•  While,	Do	While,	For	
–  -	
–  -	
–  -	
	
	
	
	
	
	
Laços	
•  While	
–  Sintaxe	
–  A	condição	é	avaliada;	
–  Se	FALSA,	o	laço	termina	e	o	programa	con]nua	na	instrução	imediatamente	depois	do	
while;	
–  Se	VERDADEIRA,	é	executada	a	instrução	(ou	bloco	de	instruções);		
	
	
	
	
	
	
Laços	
•  While	
–  Sintaxe	
	
	
	
	
	
	
Laços	
•  While	
–  Sintaxe	
	
	
	
	
	
	
Laços	
•  While	
–  Sintaxe	
	
	
	
	
	
	
Laços	
•  While	
–  Sintaxe	
	
	
	
	
	
	
Laços	
•  While	
	
	
	
	
	
	
Laços	
•  For	
–  Sintaxe	
–  Funcionamento	
	
	
	
	
	
	
3	 4	
Laços	
•  For	
–  Funcionamento	
1.  O	código	em	cargas	iniciais	é	executado	uma	única	vez;	
2.  A	condição	é	avaliada;		
3.  Se	a	condição	for	FALSA,	o	laço	termina	e	o	programa	con]nua	na	instrução	
imediatamente	a	seguir.	
4.  Se	a	condição	for	VERDADEIRA,	a	instrução	é	executada.	
5.  Depois	da	execução	da	instrução,	é	executada	a	pós-instrução.	
6.  Voltar	aoponto2.		
	
	
	
	
	
	
3	 4	
Laços	
•  For	
	
	
	
	
	
	
	
	
Laços	
•  For	
	
	
	
	
	
	
	
	
Laços	
•  For	
	
–  Um	laço	for	
–  Sempre	poderá	ser	reescrito	como	um	laço	while	
	
	
	
	
	
	
Laços	
•  Do…while	
–  Sintaxe	
–  Funcionamento:	
1.  A	instrução	é	executada;	
2.  A	condição	é	avaliada;	
3.  Se	for	VERDADE,	volta-se	ao	ponto	1;	
4.  Se	for	FALSA,	termina	o	laço	e	o	programa	con]nua	na	instrução	seguinte	ao	laço.		
	
	
	
	
	
	
	
Laços	
	
	
	
	
	
	
	
	
	
Laços	
•  RESUMO	
	
	
	
	
	
	
	
	
Laços	
•  Break	
–  Termina	o	laço,	o	programa	con]nua	na	instrução	imediatamente	posterior	ao	laço.	
	
	
	
	
	
	
	
	
Laços	
•  Con]nue	
–  A	instrução	con]nue	passa	o	lanço	para	a	próxima	iteração.		
	
	
	
	
	
	
	
	
Laços	
•  Con]nue	
–  A	instrução	con]nue	passa	o	
lanço	para	a	próxima	
iteração.		
	
	
	
	
	
	
	
	
	
Laços	
•  Aninhados	
	
	
	
	
	
	
	
	
Laços	
•  Aninhados	
	
	
	
	
	
	
	
	
Laços	
•  Infinitos	
	
	
	
	
	
	
	
	
Operadores	-	-	e	++	
	
	
	
	
	
	
	
	
Operadores	-	-	e	++	
•  Diferença	entre	++x	e	x++	
	
	
	
	
	
	
	
	
Atribuição	Composta	
•  Reduzir	código		
•  Exemplos	
	
	
	
	
	
	
	
	
Funções	e	Procedimentos	
CaracterísPcas	de	uma	função	
1.  Nome	único,	para	invocá-la;		
2.  Pode	ser	invocada	a	par]r	de	outras	funções;		
3.  Realizar	uma	única	tarefa	bem	definida;		
4.  Não	interessa	como	funciona,	interessa	o	resultado,	sem	efeitos	colaterais;		
5.  Código	independende	do	resto	do	programa,	genérico	para	que	seja	reu]lizado;		
6.  Pode	receber	parâmetros	que	alteram	seu	comportamento;		
7.  Uma	função	pode	retornar,	para	a	en]dade	que	a	invocou,	um	valor	como	resultado.		
•  Algumas	funções	conhecidas:	prinl,	getchar,	scanf…		
	
	
	
	
	
	
	
	
Funções	e	Procedimentos	
CaracterísPcas	de	uma	função	
	
	
	
	
	
	
	
	
	
Funções	e	Procedimentos	
Nomenclatura	de	uma	função	
	
•  Obedece	às	regras	para	nomemclatura	de	variáveis;	
•  Não	deve	ter	nomes	de	variáveis	ou	de		outras	funções;	
•  Deve	especificar	aquilo	que	a	função	faz.	
	
	
	
	
	
	
	
	
	
Funções	e	Procedimentos	
Como	funciona	uma	função	
	
•  Só	é	executada	quando	é	invocada;	
•  O	progama	que	a	invoca	é	temporariamente	"suspenso”	;	
•  O	programa	pode	enviar	argumumentos,	que	são	armazenados	em	variáveis	locais,	
chamadas	de	parâmetros.	
•  Após	o	término	da	execução	de	uma	função,	ela	pode	devolver	um	valor.		
	
	
	
	
	
	
	
	
	
Funções	
Funções	não	genéricas:	
	
	
•  Três	funções	que	fazem	a	
mesma	tarefa,	escrever	linhas	
de	caracteres,	mudando	
apenas	a	quan]dade.		
•  Apenas	uma	função	genérica	
seria	suficiente	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
Funções	e	Procedimentos	
	
	
	
	
	
	
	
	
	
	
	
Função	genérica:		
Funções	e	Procedimentos	
Funções	
	
	
	
	
	
	
	
	
	
	
	
Funções	e	Procedimentos	
Argumentos	e	parâmetros		
•  Os	]pos	dos	argumentos	precisam	ser	 informados	entre	parênteses,	separados	por	vírgula,	
logo	após	o	nome	da	função;	
•  Quando	 se	 invoca	 uma	 função	 os	 ]pos	 dos	 parâmetros	 devem	 coincidir	 com	 os	 dos	
arqumentos:		
•  O	número	e	a	ordem	de	parâmetros	passados	deve	coincidir	com	dos	argumentos.		
	
	
	
	
	
	
	
	
	
Funções	e	Procedimentos	
Corpo	da	Função:	
•  O	corpo	de	uma	função	tem	que	se	seguir	imediatamente	ao	cabeçalho	da	função,	e	é	escrito	
entre	chaves;	
•  O	cabeçalho	de	uma	função	nunca	deve	ser	seguido	de	ponto-e-vírgula;	
•  Pode-se	escrever	qualquer	instrução	ou	conjunto	de	instruções;	
•  Não	se	pode	definir	funções	dentro	de	funções;	
•  Se	pode	invocar	outras	funções;	
	
	
	
	
	
	
	
	
	
Funções	e	Procedimentos	
RETURN:	
•  A	instrução	return	permite	terminar	a	execução	de	uma	função	e	voltar	ao	programa	que	a	
invocou;	
•  Return	na	função	main	faz	com	que	o	programa	termine.		
	
	
	
	
	
	
	
	
Funções	e	Procedimentos	
Funções	que	retornam	um	valor:	
•  É	possível	que	uma	função	seja	responsável	por	realizar	uma	determinada	tarefa	e	que,	uma	
vez	terminada	essa	tarefa,	devolva	um	único	resultado.		
•  Este	resultado	poderá	ser	armazenado	numa	variável	ou	aproveitado	por	qualquer	instrução.		
•  A	 devolução	 de	 um	 resultado	 é	 feita	 através	 da	 instrução	 return,	 seguida	 do	 valor	 a	 ser	
devolvido.		
•  Após	a	instrução	return	pode	ser	colocada	qualquer	expressão	válida	em	C.		
	
	
	
	
	
	
	
Funções	e	Procedimentos	
Funções	que	retornam	um	valor:	
	
	
	
	
	
	
	
Funções	e	Procedimentos	
Funções	que	retornam	um	valor:	
	
•  Uma	função	pode	ser	invocada	dentro	de	outra	função:		
	
	
	
	
	
	
	
Funções	e	Procedimentos	
Funções	e	procedimentos	
•  Funções	podem	ser	invocadas	dentro	de	a]buição:	
•  Funções	podem	ser	invocadas	dentro	de	uma	função:	
•  Como	se	invoca	um	procedimento,	sem	valor	de	retorno:	
	
		
	
	
	
	
	
	
	
Funções	e	Procedimentos	
VOID	
•  A	palavra	reservada	void	permite	indicar	que	uma	função	não	devolve	qualquer	]po;	
	
		
	
	
	
	
	
	
	
Funções	e	Procedimentos	
Procedimentos	
•  Uma	função	que	“retorna”	void	é	chamada	de	procedimento;	
•  A	instrução	return	termina	a	execução	da	função	(procedimento),	e	o	controle	do	programa	
é	devolvido	ao	local	onde	a	função	(procedimento)	foi	invocada.	
	
		
	
	
	
	
	
	
	
Funções	e	Procedimentos	
ProtóPpos	
•  Um	bom	hábito	de	programação	é	colocar,	sempre,	os	protó]pos	das	funções	no	início	dos	
programas;	
•  Os	protó]pos	indicam	ao	compilador	qual	a	estrutura	das	funções	que	serão	declaradas;	
	
		
	
	
	
	
	
	
	
Funções	e	Procedimentos	
Variáveis	locais	
•  Variáveis	podem	ser	declaradas	dentro	do	corpo	de	uma	função;	
•  Tais	variáveis	são	conhecidas	apenas	dentro	da	prórpia	função;	
•  São	denominadas	variáveis	locais;	
•  Devem	ser	declaradas	antes	de	qualquer	instrução;			
•  Depois	de	terminada	a	execução	de	uma	determinada	função,	todas	as	suas	variáveis	locais	são	
destruídas.	
	
		
	
	
	
	
	
	
	
Funções	e	Procedimentos	
Variáveis	locais

Continue navegando