Commit 82782ea0 authored by Jomaro Rodrigues's avatar Jomaro Rodrigues

revisão do capítulo 10

parent e70f1483
......@@ -2,6 +2,7 @@
\begin{document}
\chapter{estruturas}
Uma estrutura é uma coleção de uma ou mais variáveis agrupadas sob um único nome para facilitar a
......@@ -35,29 +36,29 @@ existem basicamente duas maneiras de definir e declarar estruturas em C:
imediatamente após a definição da estrutura, conforme o exemplo a seguir:
\begin{lstlisting}
struct coord { /* definicao de uma estrutura */
struct coord { // definicao de uma estrutura
int x;
int y;
} primeira, segunda; /* declaracao de variaveis */
} primeira, segunda; // declaracao de variaveis
\end{lstlisting}
estas instruções definem o tipo de estrutura coord e declaram duas estruturas (variáveis) deste
tipo, chamadas primeira e segunda.
\item A segunda maneira é declarar variáveis da estrutura em algum outro ponto do código-fonte. Por
exemplo:
\begin{lstlisting}
struct coord { /* definicao de uma estrutura */
struct coord { // definicao de uma estrutura
int x;
int y;
};
/* instrucoes adicionais aqui... */
// instrucoes adicionais aqui...
/* declaração de variaveis */
// declaração de variaveis
struct coord primeira, segunda;
\end{lstlisting}
\end{itemize}
......@@ -65,9 +66,9 @@ struct coord primeira, segunda;
Os membros individuais de uma estrutura podem ser usados como qualquer outra variável
respeitando-se as características do seu tipo. Para acessar os membros de uma estrutura,
utiliza-se o operador de membro de estrutura '.' entre o nome da estrutura e o nome do membro.
utiliza-se o operador de membro de estrutura `.' entre o nome da estrutura e o nome do membro.
exemplo:
Exemplo:
\begin{lstlisting}
struct coord {
......@@ -80,10 +81,12 @@ primeira.y = -30;
\end{lstlisting}
Uma das vantagens de se utilizar estruturas ao invés de variáveis individuais é a capacidade de copiar
informações entre estruturas do mesmo tipo através de uma única instru,cão de atribui,c~ao. Continuando
informações entre estruturas do mesmo tipo através de uma única instrução de atribuição. Continuando
com o exemplo anterior, a instrução:
\begin{lstlisting}
segunda = primeira;
\end{lstlisting}
é equivalente a:
......@@ -92,7 +95,7 @@ segunda.x = primeira.x;
segunda.y = primeira.y;
\end{lstlisting}
exemplo:
Exemplo:
Recebe informações sobre as coordenadas dos cantos de um retângulo e calcula a sua área. Presume
que a coordenada y no canto superior esquerdo é maior que a coordenada y no canto inferior direito, que
......@@ -118,7 +121,7 @@ void main ()
long area;
struct retang quadro;
/* recebe as coordenadas */
// recebe as coordenadas
printf("Digite a coordenada x superior esq.:\n");
scanf("%d", &quadro.esqcima.x);
......@@ -131,11 +134,11 @@ void main ()
printf("Digite a coordenada y inferior dir.:\n");
scanf("%d", &quadro.dirbaixo.y);
/* calcula o comprimento e a largura */
// calcula o comprimento e a largura
largura = quadro.dirbaixo.x - quadro.esqcima.x;
altura = quadro.esqcima.y - quadro.dirbaixo.y;
/* calcula e informa a area */
// calcula e informa a area
area = largura * altura;
printf("O retangulo tem uma area de %ld unidades.\n", area);
}
......@@ -152,12 +155,12 @@ O retângulo tem uma área de 81 unidades.
\end{verbatim}
OBS.: Quando estruturas são passadas por referência, utilizamos o operador `\verb|->|' ao invés do operador
'.'.
`.'.
exemplo:
\begin{lstlisting}
/* Passando argumentos por valor e por referencia */
// Passando argumentos por valor e por referencia
struct coord{
int x;
......@@ -177,10 +180,10 @@ void main ()
printf("Antes de chamar por valor(): x = %d, y = %d\n", ponto.x,ponto.y);
por_valor(ponto); /* chamada por valor */
por_valor(ponto); // chamada por valor
printf(""nDepois de chamar por valor(): x = %d, y = %d", ponto.x,ponto.y);
por_ref(&ponto); /* chamada por referencia */
por_ref(&ponto); // chamada por referencia
printf(""nDepois de chamar por ref(): x = %d, y = %d", ponto.x,ponto.y);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment