\input cwebmac
% Zé Augusto 8/98

\documentclass[language=brazil,structure=flat]{cweb}

%% Escrevendo em português:
\usepackage[brazil]{babel}
\usepackage[T1]{fontenc}
%----------------------------

\setlength{\topmargin}{-0.5in}
\setlength{\textheight}{9in}
\setlength{\oddsidemargin}{-.125in}
\setlength{\evensidemargin}{-.125in}
\setlength{\textwidth}{6.75in}




\title{{\small Exemplo de Uso do Stanford GraphBase usando \texttt{CWEB}-\LaTeX%
\\
MAC 328 --- Introdução à Teoria dos Grafos --- 1998 \\}
Leitura de Cidades}
\author{Zé Augusto}

\begin{document}

\maketitle


\N{1}{1}Descrição.
Este programa em \texttt{CWEB} lê e imprime na tela o arquivo
$\\{sorocaba}.\\{gb}$ que foi criado com o programa \\{sorocaba}.

\fi

\M{2}Precisamos incluir as definições da estrutura de dados do Stanford
GraphBase.

\Y\B\8\#\&{include} \.{"gb\_graph.h"}\C{ A estrutura de dados para criar o
grafo }\6
\8\#\&{include} \.{"gb\_save.h"}\C{ \\{restore\_graph} }\6
\&{int} \\{main}(\,)\1\1\2\2\6
${}\{{}$\5
\1\&{Graph} ${}{*}\\{grafo};{}$\6
\&{Vertex} ${}{*}\|v;{}$\6
\&{Arc} ${}{*}\|a;{}$\7
${}\\{grafo}\K\\{restore\_graph}(\.{"sorocaba.gb"});{}$\6
\&{if} ${}(\\{grafo}\E\NULL){}$\5
${}\{{}$\1\6
${}\\{fprintf}(\\{stderr},\39\.{"Não\ foi\ possível\ a\ }\)\.{leitura\ do\
grafo!\ (c}\)\.{ódigo\ de\ erro\ \%ld)\\n}\)\.{"},\39\\{panic\_code});{}$\6
\&{return} ${}({-}\T{1});{}$\6
\4${}\}{}$\2\6
${}\\{printf}(\.{"\ \ O\ grafo\ cujo\ nome}\)\.{\ oficial\ é:\ \%s\\n"},\39%
\\{grafo}\MG\\{id});{}$\6
${}\\{printf}(\.{"\ \ tem\ \%ld\ cidades\ e}\)\.{\ \%ld\ estradas\\n\\n"},\39%
\\{grafo}\MG\|n,\39\\{grafo}\MG\|m/\T{2});{}$\6
\&{for} ${}(\|v\K\\{grafo}\MG\\{vertices};{}$ ${}\|v<\\{grafo}\MG\\{vertices}+%
\\{grafo}\MG\|n;{}$ ${}\|v\PP){}$\1\6
\&{for} ${}(\|a\K\|v\MG\\{arcs};{}$ \|a; ${}\|a\K\|a\MG\\{next}){}$\1\5
${}\\{printf}(\.{"De\ \%s\ para\ \%s:\ \%ld\ }\)\.{km\\n"},\39\|v\MG\\{name},%
\39\|a\MG\\{tip}\MG\\{name},\39\|a\MG\\{len});{}$\2\2\6
\\{gb\_recycle}(\\{grafo});\C{ Libera memória que foi alocada para criar o
grafo }\6
\&{return} (\T{0});\C{ Saída normal }\6
\4${}\}{}$\2\par
\fi

\M{3}

\cwebIndexIntro{%
Aqui vai uma lista de identificadores usados e onde eles aparecem.
Entradas grifadas indicam os lugares de definições. Mensagens de erros
também são mostradas.
}

\end{document}

\fi


\inx
\fin
\con
