Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Apostila de C
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
5
Issues
5
List
Boards
Labels
Service Desk
Milestones
Merge Requests
1
Merge Requests
1
Operations
Operations
Incidents
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
PET Computação
Apostila de C
Commits
95050c98
Commit
95050c98
authored
Aug 02, 2015
by
Vytor Calixto
👾
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Espaçamento de tabelas no capítulo de funcões
parent
0ba173b1
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
38 deletions
+40
-38
funcoes.tex
funcoes.tex
+40
-38
No files found.
funcoes.tex
View file @
95050c98
...
...
@@ -5,17 +5,17 @@
\chapter
{
Funções
}
Uma função é uma seção independente de código em C, designada por um nome,
que realiza uma tarefa específica e, opcionalmente,
Uma função é uma seção independente de código em C, designada por um nome,
que realiza uma tarefa específica e, opcionalmente,
retorna um valor ao programa que a chamou.
\section
{
Protótipo
}
O protótipo da função fornece ao compilador uma descrição de uma função que
será definida posteriormente no programa. O protótipo inclui o tipo de
retorno, que indica o tipo de variável que a função retornará.
O protótipo da função fornece ao compilador uma descrição de uma função que
será definida posteriormente no programa. O protótipo inclui o tipo de
retorno, que indica o tipo de variável que a função retornará.
Além disso, ele inclui também o nome da função, os tipos de variáveis dos argumentos que
serão passados para a função e opcionalmente o nome dos argumentos.
serão passados para a função e opcionalmente o nome dos argumentos.
O protótipo sempre termina com `;'.
\begin{lstlisting}
...
...
@@ -24,17 +24,19 @@ tipo_de_retorno nome_funcao (tipo1 arg1,..., tipoN argN);
\section
{
Definição
}
A definição da função é a função propriamente dita.
A definição contém as instruções que serão executadas.
A primeira linha de uma definição de função, chamada de cabeçalho da função,
A definição da função é a função propriamente dita.
A definição contém as instruções que serão executadas.
A primeira linha de uma definição de função, chamada de cabeçalho da função,
deve ser idêntica ao protótipo da função, com exceção do ponto-e-vírgula final.
Os nomes das variáveis usadas como argumentos devem necessariamente
Os nomes das variáveis usadas como argumentos devem necessariamente
ser incluídos no cabeçalho. A seguir vem o corpo da função, contendo as
instruções que a função executará contidas num bloco.
instruções que a função executará contidas num bloco.
Se o tipo de retorno da função não for void, uma
instrução return deve ser incluída para retornar um valor compatível com o
instrução return deve ser incluída para retornar um valor compatível com o
tipo de retorno especificado.
\vspace*
{
\fill
}
\begin{lstlisting}
tipo
_
de
_
retorno nome
_
funcao(tipo1 arg1, ..., tipoN argN)
{
...
...
@@ -45,8 +47,8 @@ tipo_de_retorno nome_funcao(tipo1 arg1, ..., tipoN argN)
\subsection
{
Tipo de retorno
}
Especifica o tipo de dado que a função deverá retornar ao programa
que a chamou. O tipo pode ser qualquer dos tipos válidos em C ou um
Especifica o tipo de dado que a função deverá retornar ao programa
que a chamou. O tipo pode ser qualquer dos tipos válidos em C ou um
tipo definido pelo programador. A função pode não retornar nenhum valor.
\begin{lstlisting}
...
...
@@ -54,9 +56,9 @@ int func1(...) // retorna um tipo int
void func2(...) // não retorna dados
\end{lstlisting}
Para retornar um valor a partir de uma função, é usada a palavra-chave return
seguida por uma expressão válida em C. Quando a execução atinge a instrução
return, a expressão é avaliada e o valor é transmitido para o programa que
Para retornar um valor a partir de uma função, é usada a palavra-chave return
seguida por uma expressão válida em C. Quando a execução atinge a instrução
return, a expressão é avaliada e o valor é transmitido para o programa que
originou a chamada. O valor de retorno de uma função é o valor da expressão.
\begin{lstlisting}
...
...
@@ -65,7 +67,7 @@ int func1(...)
int x; // declaracao da variavel
... // demais instrucoes
...
return x*2; // retorna x*2
}
\end{lstlisting}
...
...
@@ -73,39 +75,39 @@ int func1(...)
\subsection
{
Nome da função
}
Pode ser qualquer nome, contanto que siga as regras adotadas para atribuir
nomes de variáveis em C. O nome da função deve ser único e é sempre
Pode ser qualquer nome, contanto que siga as regras adotadas para atribuir
nomes de variáveis em C. O nome da função deve ser único e é sempre
aconselhável usar um nome que reflita a finalidade da função.
\subsection
{
Corpo da função
}
É delimitado por chaves e colocado imediatamente após o cabeçalho da função.
Quando uma função é chamada, a execução começa no início do corpo e termina
(retornando ao programa de origem) quando uma instrução return é encontrada
É delimitado por chaves e colocado imediatamente após o cabeçalho da função.
Quando uma função é chamada, a execução começa no início do corpo e termina
(retornando ao programa de origem) quando uma instrução return é encontrada
ou quando a execução chega ao final do bloco.
Podemos declarar variáveis dentro do corpo de uma função. Estas variáveis
são chamadas de variáveis locais, significando que são privativas desta
função e distintas de outras variáveis com o mesmo nome que possam ter sido
declaradas em outras partes do programa. A declaração destas variáveis deve
Podemos declarar variáveis dentro do corpo de uma função. Estas variáveis
são chamadas de variáveis locais, significando que são privativas desta
função e distintas de outras variáveis com o mesmo nome que possam ter sido
declaradas em outras partes do programa. A declaração destas variáveis deve
ser feita antes de qualquer instrução.
\section
{
Chamada de funções
}
\subsection
{
Chamadas por valor
}
Quando uma variável é passada para uma função pelo valor, a função tem
acesso ao valor da variável, mas não à própria variável original.
Portanto, as instruções contidas na função não podem modificar o valor da
Quando uma variável é passada para uma função pelo valor, a função tem
acesso ao valor da variável, mas não à própria variável original.
Portanto, as instruções contidas na função não podem modificar o valor da
variável original.
\subsection
{
Chamadas por referência
}
Neste caso a função recebe o endereço de memória (uma referência) do
parâmetro, ao invés do valor do parâmetro. Desta forma, a função pode alterar
Neste caso a função recebe o endereço de memória (uma referência) do
parâmetro, ao invés do valor do parâmetro. Desta forma, a função pode alterar
o valor da variável mediante a utilização deste endereço.
Tanto a função quanto o programa devem ser informados de que um parâmetro é
chamado por referência utilizando os operadores
\&
(para passar um endereço)
Tanto a função quanto o programa devem ser informados de que um parâmetro é
chamado por referência utilizando os operadores
\&
(para passar um endereço)
e * (para receber um endereço).
exemplo:
...
...
@@ -114,7 +116,7 @@ exemplo:
A saída será:
A saída será:
\begin{verbatim}
Antes de chamar por valor() : x = 2, y = 4, z = 6
Depois de chamar por valor(): x = 2, y = 4, z = 6
...
...
@@ -124,7 +126,7 @@ Depois de chamar por ref() : x = 0, y = 0, z = 0
Obs.:
\begin{description}
\item
[\&]
Passa o endereço de memória da variável passada por parâmetro e,
\item
[\&]
Passa o endereço de memória da variável passada por parâmetro e,
portanto, as modificações sobre esta variável realizadas na função são permanentes.
\item
[*]
Acessa o conteúdo de tal endereço de memória.
\end{description}
...
...
@@ -140,7 +142,7 @@ Obs.:
1. Transforme o programa que detecta se um número é primo em uma função.
2. Escreva uma função que gera e imprime os primeiros n números primos,
2. Escreva uma função que gera e imprime os primeiros n números primos,
sendo que n é o parâmetro desta função.
\end{document}
\ No newline at end of file
\end{document}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment