Buscar

cursoc

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

aulas.html
aulas-main.html
Curso de Linguagem C -
Engenharia Elétrica -  UFMG
Aulas: 
 Aula 1: Introdução e Sumário
 Aula 2 - Primeiros Passos
 Aula 3 - Variáveis,
Constantes, Operadores e Expressões
 Aula 4 - Estruturas de
Controle de Fluxo
 Aula 5 - Matrizes e Strings
 Aula 6 - Ponteiros
 Aula 7 - Funções
 Aula 8 - Diretivas de
Compilação
 Aula 9 - Entradas e Saídas
Padronizadas
 Aula 10 - Tipos de Dados
Avançados
 Aula 11 - Tipos de Dados
Definidos pelo Usuário
Considerações finais
Formulário de Avaliação
Bibliografia 
 Curso de C da Engenharia Elétrica da UFMG - 1996-1999
bullet.gif
c.html
calendario.html
Cronograma do Curso 
Primeiro semestre de 2002
    No primeiro semestre de 2002 as
aulas vão se iniciar em 24 de junho. O curso terá duração de oito semanas. 
		Período		Módulo		Material didático
 utilizado		Atividades
		24/06 a 01/07		Módulo 1		Material inicial de apresentação do curso
 
 Bibliografia 
 Aula 1 - Introdução e Sumário 
 Aula 2 - Primeiros Passos		Lista 1
		01/07 a 08/07		Módulo 2		Aula 3 - Variáveis, Constantes,
 Operadores e Expressões		Lista 2
		08/07 a 15/07		Módulo 3		Aula 4 - Estruturas de Controle de Fluxo		Lista 3
		15/07 a 22/07		Módulo 4		Aula 5 - Matrizes e Strings		Lista 4
		22/07 a 29/07		Módulo 5		Aula 6 - Ponteiros		Lista 5
		29/07 a 05/08		Módulo 6		Aula 7 - Funções 
 Aula 8 - Diretivas de Compilação		Lista 6
		05/08 a 12/08		Módulo 7		Aula 9 - Entradas e Saídas Padronizadas		Lista 7
		12/08 a 19/08		Módulo 8		Aula 10 - Tipos de Dados Avançados
 
 Aula 11 - Tipos de Dados Definidos pelo
 Usuário  
 Considerações finais 
 Formulário de Avaliação		Lista 8
 Curso de C da EE  UFMG - 1996-2002 
  
carta.gif
cont-aul.html
		
 Curso
 de Linguagem C
 Cronograma de Atividades
 Listas de Exercícios
 		Aula		Assunto
		1		Introdução
 e Sumário
		2		Primeiros
 Passos
		3		Variáveis,
 Constantes, Operadores e Expressões
		4		Estruturas de
 Controle de Fluxo
		5		Matrizes e
 Strings
		6		Ponteiros
		7		Funções
		8		Diretivas de
 Compilação
		9		Entradas e
 Saídas Padronizadas
		10		Tipos de Dados
 Avançados
		11		Tipos de Dados
 Definidos pelo Usuário
 Considerações
 finais
 Formulário de Avaliação
 Bibliografia
 
 Dúvidas? Consulte o FAQ
 				Perguntas para a lista do Curso de C (a lista somente funciona
 durante o curso)
 		.
conteudo.html
		
 Curso de Linguagem C
 
 				Informações Gerais
				Inscrições e Des.
				Aulas
				Área de Download
				Cronograma de Atividades
				Listas
 de Exercícios
				Monitores
				E-mails enviados às listas
				Lista
 de usuários de ICQ
 
 Dúvidas? Consulte o FAQ
 				Perguntas para a lista do Curso de C (a lista somente
 funciona durante o curso...)
 		. 
  
  
  
  
  
  
  
  
  
  
  
 
 .
  
cont-exerc.html
		
 Curso
 de Linguagem C
 Aulas
 
 Listas de Exercícios:
 		Lista 1		Gabarito 1
		Lista 2		Gabarito
 2
		Lista 3		Gabarito
 3
		Lista 4		Gabarito
 4
		Lista 5		Gabarito
 5
		Lista 6		Gabarito
 6
		Lista 7		Gabarito
 7
		Lista 8		Gabarito 8
		
 Dúvidas? Consulte o FAQ				.
				Perguntas para a lista do Curso de C (a lista somente funciona
 durante o curso)
 
 		. 
  
  
  
  
  
  
  
  
  
  
  
  
  
cont-faq.html
		
 Curso
 de Linguagem C
 Aulas
 
 Perguntas Frequentes:
 
 				Sobre a
 Inscrição e Desinscrição
				Sobre o
 uso de Compiladores
				Sobre a
 Linguagem C
				Sobre o
 Conteúdo e Duração
				Sobre a
 Organização
				Assuntos
 Diversos
 				
 Perguntas para a lista
 do Curso de C (a lista somente funciona durante o curso)
 
 
 
		.
download.html
Área de Download 
1- Download das aulas: 
      Você pode acessar as aulas das
seguintes maneiras: 
		Ir diretamente às páginas do curso e
 percorrer o site, aula por aula;
		Baixar as aulas como um único arquivo zipado:
 http://www.ead.eee.ufmg.br/cursos/C/cursoc.zip. Grave este arquivo em seu disco e
 descompacte-o com o Winzip ou com o pkunzip, com a opção -d. 
		Utilizar o arquivo pdf com todas as aulas
 (também disponível no formato .doc), preparado pelo William Paiva, (interessante
 para quem quer imprimir). É importante apenas frisar que este arquivo não é atualizado
 à medida que as páginas são atualizadas.
		Utilizar o arquivo para o Word com
 todas as aulas, preparado pelo Henrique José dos Santos, da cidade de
 Santos, SP, (interessante
 para quem quer imprimir). É importante apenas frisar que este arquivo não é atualizado
 à medida que as páginas são atualizadas.
2- Download do compilador: 
 		Para criar seus programas em C e executá-los você vai precisar de
 um compilador C padrão ANSI. Se não tiver um, pode usar o gcc (Linux), buscar o DevC++
 (Windows), o DJGPP, o TClite ou o Turbo C (DOS), em versões gratuitas. Veja como, clicando aqui.
 Curso de C da Engenharia Elétrica da UFMG - 1996-2002
 
   
faq.html
faq-fram.html
faq-main.html
Perguntas
Frequentes
		Sobre
a Inscrição e Desinscrição
		Sobre
o uso de Compiladores
		Sobre
a linguagem C
		
Sobre o conteúdo e duração
		Sobre
a organização do curso
		Assuntos
diversos
a)
Sobre a Inscrição/Desinscrição
0- Como é
que eu me inscrevo no curso de C? Quando vai ter outra turma?
1- Tentei me inscrever
no curso Virtual de C e obtive a seguinte resposta:
From listproc@ead.eee.ufmg.br
Mon Feb 16 08:03 EST 1998
Subject: SUBSCRIBE
ESPERACURSOC Nome Sobrenome
Voce assinou a lista
esperacursoc@ead.eee.ufmg.br ... etc
Seu endereco e' xxx@zzz.com.br.
O que isto significa?
2- O que seriam estas
requisições administrativas?
3- Será que
você poderia trocar o meu e-mail inscrito na lista de xxx@zzz.com.br
para yyy@www.com.br?
 4- HELP!
Como me desinscrever deste curso?
5 - Eu pedi para trocar meu e-mail
e fui desinscrito do curso? Estou participando ou não do curso?
b)
Sobre o uso de compiladores no curso
0- É
necessário um editor de texto específico para escrever as
rotinas em C?
1- Como conseguir uma
cópia do compilador C?
2- Como instalar o DJGPP?
3- Como instalar o TClite?
4- Tenho o compilador
xxx da empresa yyy. Posso usá-lo no curso?
5- O compilador gcc
para DOS (DJGPP) possui algum ambiente integrado de desenvolvimento?
6- O compilador C do
LINUX 2.0.x é padrao ANSI?
7- Existe o tal "RHIDE"
que eu usava com o djgpp(DOS) numa versao para Linux?
8- Gostaria de saber
se existe muita diferenca entre o C padrao e TurboC.
9- Alguns esclarecimentos
sobre "C padrao ANSI"
10- Os compiladores
dos unixes tem o header conio.h?
11- Mais alguem estah
tendo problemas para usar o Rhide? A opcao de menu RUN estah desbilitada
...
12- Tô com o
Borland C++Builder, da pra compilar em C com ele?
13- Como usar o Visual
C++ da Microsoft para compilar programas em C?
14- Como usar o Borland
C++ 5.0 para compilar programas em C?
15- Dá pra usar
o DJGPP e o Rhide no Windows NT 4.0?
16- Quais os argumentos
que devem ser utilizados na hora de compilar com o gcc, por exemplo: gcc
O .... ??
17- Como compilar programas usando
o DevC++?
18- Como usar a biblioteca conio
no DevC++?
19- Como debugar e executar programas
passo a passo usando o DevC++?
 
c)
Sobre a linguagem C
1- Tenho uma
dúvida sobre a linguagem C. Onde achar a resposta?
 2-
Quais as diferenças entre o C e o C++?
d)
Sobre o conteúdo e duração do curso
1- Gostaria
de saber se o curso de C tem duracao estabelecida, ou se extendera o quanto
for necessario.
2- Gostaria de saber
o quanto o curso entra no Windows 95/NT e nas WIN32. O que mais vamos estudar
além do C padrao?
3- Preciso saber alguma
linguagem basica de programação para acompanhar o curso?
 4- Qual a URL
do conteúdo zipado do curso?
 5-Se
eu nao conseguir terminar o curso em 7 semanas. Se precisar de mais tempo
pra ler todas as aulas o que farei ?
6- Neste curso estudaremos alguma
coisa sobre programação de portas seriais ou paralelas?
7- Neste curso estudaremos alguma
coisa sobre programação gráfica?
e)
Sobre a organização do curso
1- O curso
de C em questão oferece certificado de conclusão e participação
ao término do mesmo?
2- O curso vai ser dado
na WWW ou via e-mail?
3- Quais as regras para
uso da lista cursoc@ead.eee.ufmg.br?
4- Por que os e-mails
tem que ser mandados para toda a lista e nao somente para os monitores?
5- Por que não
acentuar o texto do seu e-mail?
6- Vale qualquer pergunta
sobre a linguagem C na lista?
7- Onde estão
as listas de Exercícios? Qual o endereço para enviar as respostas?
8- O que são
estas mensagens sem texto que aparecem de vez em quando na lista?
9- Existe alguma maneira
de eu conseguir todos os e-mails que foram enviados para a lista?
10- Posso mandar uma dúvida
diretamente para o professor Renato?
11- Como configurar meu leitor de
e-mails para filtrar as mensagens do curso de C, enviando-as para uma pasta
específica?
f)
Diversos
1- Gostaria de
saber porque voces não colocam um curso de Matlab( versão
nova).
Respostas:
a) Sobre a
Inscrição
0- Como é que eu me
inscrevo no curso de C? Quando vai ter outra turma?
Consulte nossa página
de inscrições.
1 - Tentei me inscrever no
curso Virtual de C e obtive a seguinte resposta:
 From listproc@ead.eee.ufmg.br Mon Feb 16
08:03 EST 1998
 Subject: SUBSCRIBE ESPERACURSOC Nome Sobrenome
 Voce assinou a lista esperacursoc@ead.eee.ufmg.br
... etc
Seu endereco e' xxx@zzz.com.br. O que isto significa?
 
Isto significa que você esta' inscrito na
nossa lista de espera para o proximo curso. Aguarde o início do
curso.
2 - O que seriam estas requisições
administrativas? Para me inscrever no curso virtual de C preciso fazer
mais alguma coisa além do que já fiz ?
Não, você não precisa fazer mais
nada. O listproc é um programa de administracao de listas eletrônicas.
O que ele quis dizer com estas "requisições
administrativas" e' relativo aa administracao das proprias listas: por
exemplo, para voce entrar numa lista, saber quem esta' inscrito numa lista,
se desligar de uma lista, etc, deve enviar as suas requisicoes para listproc@ead.eee.ufmg.br
e não para o endereco da lista.
3 - Será que você
poderia trocar o meu e-mail inscrito na lista do curso de C de xxx@zzz.com.br
para yyy@www.com.br?
 
Consulte a página
de inscrições, desinscrições e mudanças
de endereços.
4- HELP! Como desinscrever
deste curso?
Veja na nossa página de inscrições
e desinscrições.
 
5 - Eu pedi para
trocar meu e-mail e fui desinscrito do curso? Estou participando ou não
do curso?
Quando você pede para trocar de e-mail, o e-mail
antigo é retirado do curso e o novo é incluido. Você
recebe duas correspondências: uma com a exclusão do antigo
endereço e outra com a inclusão do novo endereço no
curso.
b) Sobre o
uso de Compiladores no curso
0 - É necessário
um editor de texto específico para escrever as rotinas em C?
Você pode usar qualquer editor que gere arquivo
ASCII. Exemplos: Edit (DOS), Notepad (Windows) ou o vi (Unix). Alguns compiladores
possuem um ambiente integrado para desenvolvimento de programas em C (IDE,
do inglês Integrated Development Environment). Neste caso, voce pode
usar este ambiente para criar seus programas. E' o caso dos compiladores
da Microsoft, da Borland, do LCC-Win32, do DevC++ e o caso do Rhide
para o compilador gcc.
1 - Como conseguir uma cópia
do compilador ?
Para fazer o curso, você precisará de
um compilador C, padrao ANSI, instalado em seu computador. No caso de máquinas
Unix/Linux, este compilador normalmente já vem com o sistema operacional
e se chama cc (C Compiler) ou gcc (GNU C Compiler). Estes compiladores
geralmente seguem o padrão ANSI.
Máquinas rodando o DOS ou Windows, necessitam
da instalação um compilador C.  Existem várias
opções:
a) No ambiente Windows você tem duas
boas opções de compiladores gratuitos.
		
A primeira opção é o compilador
DevC++ , que é um compilador C/C++ (ANSI) e com uma boa interface
com o usuário. Você pode baixa-lo diretamente em http://ftp1.sourceforge.net/dev-cpp/devcpp4.zip
ou em http://www.simtel.net/pub/dl/17456.shtml
ou na página oficial  http://www.bloodshed.net/devcpp.html
. Depois de baixar, basta descompactá-lo e rodar o programa Setup.exe
. Instruções simplificadas para compilar e executar programas
neste ambiente estão disponíveis abaixo.
Se voce tiver problemas com o compilador por favor verifique o seu FAQ.
		
Uma opção alternativa é o LCC-Win32,
que é um compilador C que pode ser baixado  a partir do endereço
http://www.cs.virginia.edu/~lcc-win32/index.html
. O compilador é padrão ANSI C (ele não compila programas
em C++, apenas em C). A documentação de uso deste compilador
pode ser buscada
aqui.
Dentre estas duas opções, recomendamos
o DevC++, que, além de compilar programas em C, também compila
em C++ e poderá ser utilizado em seus estudos futuros dessa linguagem.
b) Para DOS, também existem vários
compiladores gratuitos:
		
Existe uma versão grátis do compilador
gcc para DOS, sob o nome de DJGPP. Este compilador é disponível
na Internet.  Para saber quais arquivos são necessários,
como baixá-los e instalá-los, leia as
instruções abaixo. Para instruções mais
completas sobre o DJGPP você pode consultar o DJGPP-FAQ
List. Leia também o arquivo readme.1st.
Somente recomendamos este compilador para quem tem um
certo conhecimento de configuração utilizando o DOS. Se você
quer algo mais simples, pegue um dos compiladores abaixo.
		
Outra opção de compilador grátis
para DOS é o TClite, da Borland. Este compilador é mais simples
de instalar do que o DJGPP e pode ser obtido em http://www.cprogramming.com/tclite.html.
Para facilitar sua vida, também estamos disponibilizando o arquivo
aqui. As instruções de instalação podem
ser consultadas abaixo. Uma desvantagem do TClite
é que os programas que você gera somente podem ser executados
dentro do ambiente do TClite.
		
A Borland recentemente disponibilizou versões
gratuitas (antigas) do Compilador Turbo C.  Você pode baixar
a versão 2.01 do Turbo C em http://community.borland.com/museum/borland/software/TC201.zip
. A vantagem desta versão em relação ao TClite é
que ela gera programas que podem ser executados fora do ambiente de compilação.
A desvantagem é que o ambiente de
compilação não
trabalha com o mouse, com sua interface sendo toda baseada no teclado.
A instalação é simples: você deve descompactar
o arquivo tc201.zip (por exemplo, usando o winzip) e serão gerados
3 diretórios: disk1, disk2 e disk3 . A seguir, você deve copiar
o conteúdo de cada um destes diretórios para um disquete
e  rodar o programa install, a partir do primeiro disquete. Depois
é só seguir as instruções que aparecerão
na tela, fornecendo, quando pedido, o segundo e depois o terceiro disquete.
Finalmente você deve ir no diretório raiz ( C:\  )e editar
o autoexec.bat. Nele escreva lá no final mesmo as seguintes linhas,
exatamente como abaixo (não coloque nenhum espaço em branco
a mais!) :
 
 
SET PATH=C:\TC;%PATH%
Onde consta C:\TC acima ponha o nome do diretório
em que você instalou o Turbo C. Reinicie o computador, abra uma janela
DOS, vá ao diretório em que você vai trabalhar e digite
tc. O ambiente de edição e compilação é
um pouco pior do que o do RHIDE, porém você pode adaptar as
instruções para uso do Rhide para usar o tc.
c) Existem  vários compiladores comerciais
(pagos) disponíveis e os mais comuns são os da Borland (Borland
C/C++ e Borland C++ Builder) e da Microsoft.
d) Se você não quiser usar estes compiladores,
pode tentar o
catálogo de compiladores grátis na Internet.
2- Como instalar o DJGPP?
O DJGPP não é tão simples de
se instalar quanto o DevC++ . Portanto, seguem algumas
dicas:
Pegue os seguintes arquivos no site
do curso (caso nosso site esteja muito carregado, é melhor você
tentar um site alternativo)
:
1----djdev202.zip
2----gcc281b.zip
3----bnu281b.zip
4----rhide14b.zip
5----csdpmi4b.zip,
caso você não vá
rodar o DJGPP em uma janela DOS do Windows 95 ou 98, ou seja, caso você
esteja trabalhando com o Windows 3.11, ou simplesmente com o DOS.
Se voce quiser compilar programas em C++ (e não
apenas em C), deve também pegar o arquivo:
6----gpp281b.zip
Consulte o readme.1st
para verificar o que são os outros arquivos e qual a utilidade deles.
Se quiser maiores detalhes ainda, pegue o arquivo de FAQ
do DJGPP, ou os arquivos do programa INFO
e instale-os em seu computador também.
Depois de pegar os 4 (ou 5, se você também
precisar do csdpmi4b.zip, ou 6, se for trabalhar com o C++) arquivos acima,
descompacte-os mantendo a estrutura de diretórios presente nos arquivos
*.zip (isto é, se estiver usando o pkunzip, use o comando pkunzip
-d *.zip. Se estiver usando o Winzip, marque a caixa "Use Folder Names"
na hora de descompactar) em uma pasta (por exemplo crie a pasta C:\DJGPP
). OBS: Não descompacte em uma pasta com nome com mais de 8 caracteres,
pois o DJGPP não reconhece as pastas com nomes longos do Windows
(ou mesmo pastas com espacos no nome, como Meus Documentos ou Arquivos
de Programas). Vá no C:\ e edite o autoexec.bat. Nele escreva lá
no final mesmo as seguintes linhas, exatamente como abaixo:
SET DJGPP=C:\DJGPP\DJGPP.ENV
SET PATH=C:\DJGPP\BIN;%PATH%
OBS:
		
Onde consta C:\DJGPP acima ponha o nome do diretório
em que você descompactou os seus arquivos.
		
Não deixe nenhum espaço além dos
constantes entre a palavra SET e DJGPP e SET e PATH.
		
Se você estiver usando o Windows NT, siga
as instruções adicionais para o Windows NT 4.0.
		
Reinicie o computador (dê boot), abra uma janela
DOS, vá ao diretório em que você vai trabalhar (isto
é, o diretório onde você vai armazenar seus programas)
e chame o programa Rhide. Siga as instruções
de uso do Rhide.
		
Se não funcionar, verifique passo a passo o que
foi feito. Um problema que as vezes acontece é não se ter
espaço de ambiente suficiente para as alterações que
estão sendo feitas no Autoexec.bat. Para verificar se este problema
está causando erros no seu caso e como solucioná-lo, clique
aqui.
		
Outra coisa que deve ser lembrada é que o DJGPP
é um programa DOS e não reconhece os nomes de arquivos longos
do Windows 95. Portanto, dê nomes de no máximo 8 caracteres
para seus arquivos fonte. O ideal é instalar o DJGPP no diretório
C:\DJGPP.
FIM! Mais fácil
que roubar o doce de uma criança, não?  Porém,
se você achou tudo isto muito complicado, pode tentar o compilador
DevC++, de instalação e uso bem mais
simples.
3- Como instalar o TClite?
 
O TClite também precisa de algumas instruções
de instalação, ao contrário do DevC++.
Seguem ...
		
Descompacte o arquivo tclite.zip
mantendo a estrutura de diretórios presente no arquivo.  Isto
é, se estiver usando o pkunzip, use o comando pkunzip -d tclite.zip.
Se estiver usando o Winzip, marque a caixa "Use Folder Names" na hora de
descompactar. O TClite deve ser descompactado em um diretório (por
exemplo o diretório C:\TCLITE ).
		
Vá no C:\ e edite o autoexec.bat. Nele escreva
lá no final mesmo a seguinte linha, exatamente como abaixo (OBS:substitua
TCLITE abaixo pelo nome do diretório onde você o instalou):
           
SET PATH=C:\TCLITE\BIN;%PATH%
		
Não deixe nenhum espaço além dos
constantes entre a palavra SET e PATH.
		
 Não instale o TClite em um diretório
com um nome com mais de 8 caracteres, pois ele é um programa para
DOS que não entende o sistema de nomes com mais de 8 caracteres
do Windows 95.
		
Reinicie o computador, abra uma janela DOS, vá
ao diretório em que você vai trabalhar e digite tc. O ambiente
de edição e compilação é semelhante
ao do RHIDE e você pode usar as instruções
para uso do Rhide para usar o tc.
		
Se você baixou o TCLite, o instalou
e está recebendo mensagens de erro com relação à
falta de alguns arquivos .h (por exemplo, ele reclama da falta do <stdio.h>,
então você deve fazer o seguinte:
Digite tc
Vá em Options -> Directories...
Modifique: Include Directories
    C:\TCLITE\INCLUDE;     
(substitua o TCLITE pelo diretório onde você instalou o TCLITE)
Modifique: Library Directories:
    C:\TCLITE\LIB;     
(substitua o TCLITE pelo diretório onde você instalou o TCLITE)
4- Tenho o compilador xxx da
empresa yyy. Posso usá-lo no curso?
 
Voce pode usar qualquer compilador C padrão
ANSI, conforme visto na resposta 1. Verifique
na documentação do seu compilador se ele é  padrão
ANSI.   Nao ensinaremos a trabalhar com este compilador ou com
qualquer outro, especificamente. Voce deve sempre se referir à documentação
do seu compilador para verificar como produzir o seu programa executável
a partir dos seus fontes. Mostramos, apenas como exemplo, como compilar
usando o DevC++, o ambiente RHIDE
do DJGPP (o que também é válido para o TClite), 
o Borland C++ 5.0, o Microsoft
Visual C++ 5.0, e o Borland Builder.
5- O compilador gcc para DOS
(DJGPP) possui algum ambiente integrado
de desenvolvimento, onde eu consiga editar o programa, compilá-lo
e debugá-lo?
Sim! Existe um programa chamado RHIDE que pode ser
usado junto com o DJGPP como ambiente integrado de desenvolvimento (IDE
= Integrated Development Environment). Você pode consegui-lo no mesmo
site da Internet onde você conseguiu o DJGPP, arquivo
rhide14b.zip. As instruções de uso do Rhide podem ser
consultadas clicando aqui.
6- O compilador C do LINUX
é padrão ANSI?
O compilador C do linux (chamado gcc) é ideal
para o curso, já que ele segue o padrao ANSI. Com ele você
não terá problema algum.
7- Existe algum ambiente de
desenvolvimento semelhante ao RHIDE para Linux?
1- Se você usa o ambiente gráfico do
Linux, procure executar o XWPE (X Window Programming Environment) - que
é um ambiente de desenvolvimento, muito parecido com o do Turbo
C do DOS. Para acionar o XWPE:
1 - Entre no ambiente grafico do linux (XFree86
ou outro);
2 - Acione o menu start na barra de tarefas;
3 - Acesse a opcao Xapplications;
4 - Acesse a opcao XWpe.
Para quem não tem o XWPE,
pode buscá-lo
no ftp da UNICAMP: http://ftp.unicamp.br/
1. Clique em  Global Search (pesquisa
ao repositorio);
2. digite o nome "xwpe" + enter;
3. depois que obtiver a lista dos arquivos disponiveis,
você tem que escolher a versão que corresponde ao teu Linux
(slackware, debian, redhat..). É muito fácil de instalar
(soh tem q compilar, mas eh soh ler os arquivos que acompanham o programa)
2- Também  existe o "RHIDE" para LINUX,
mas diversos dos alunos do curso reportaram problemas utilizando-o. Voce
pode encontrar maiores informacoes no endereco: http://www.tu-chemnitz.de/~sho/rho/rhide/rhide.html
8- Gostaria de saber se existe
muita diferenca entre o C padrao e TurboC.
Existem diferencas entre o TurboC e o C padrao sim,
mas o TurboC tem as funcoes do C padrão, e algo a mais.
9- Alguns esclarecimentos sobre
"C padrao ANSI"
Um "padrao" e' um acordo documentado contendo especificacoes,
tecnicas ou outro criterio preciso para ser usado consistentemente como
regra, orientacao ou definicao de caracteristicas, para  assegurar
que o produtos, processos ou servicos sejam adequados para seus propositos.
Um padrao e' periodicamente revisto e atualizado, de forma a incorporar
novas necessidades e evolucoes. No nosso caso, "C padrao ANSI" significa
que um grupo de especialistas em C pertencentes a ANSI (American National
Standards Institute) se reuniu, discutiu muito, elaborou um documento "rascunho",
submeteu a apreciacao da comunidade interessada e por fim aprovou um documento
final extremamente detalhado que e' o padrao, devendo ser RIGOROSAMENTE
cumprido por todos que dizem "seguir o padrao". Seguir um padrao para software
e' muito importante, pois ele garante a compatibilidade e a portabilidade
do software entre diversos compiladores e plataformas. Dai' a importancia
deste assunto. O padrao ANSI apenas especifica uma biblioteca padrao minima,
o que nao impede que compiladores que seguem o padrao nao possam incluir
recursos adicionais. A maioria dos compiladores fornece bibliotecas que
contem muito mais funcoes que as definidas pelo ANSI, visando facilitar
a vida do programador e ser um diferencial para o produto. Assim sendo,
compiladores que seguem o padrao, como o Turbo C, o gcc, etc, possuem tambem
outros recursos (que podem ser - e sao - diferentes entre si), mas o que
esta' definido no padrao e' seguido a risca. Mais uma observacao: algumas
funcoes encontradas na versao original do C para UNIX nao sao definidas
pelo padrao ANSI por serem consideradas redundantes.
10- Eu gostaria de saber se
os compiladores dos unixes tem o header conio.h (acho que eh esse que tem
o getche())?
Como esta citado no texto,
a biblioteca conio nao faz parte das bibliotecas do C ANSI. Na realidade
esta biblioteca foi introduzida pela Borland em uma das versoes do Turbo
C (3.0?). Logo, os compiladores UNIX nao deverao ter esta biblioteca.
O conio.h significa console I/O, que e' diferente
do stdio.h, que significa standard I/O. Para compiladores baseados em DOS,
as funcoes de E/S direto pela console geralmente usam o arquivo de cabecalho
CONIO.H (de toda forma, verifique no manual do seu compilador, pois o nome
pode variar de um compilador para outro).
Para quem usa C no linux... pegue esta lib: 
http://sunsite.unc.edu/pub/Linux/libs/ui/linux-conio-1.02.tgz e' uma
conio.h feita com ncurses, de modo que a maioria das funcoes da conio do
dos estao emuladas aqui nesta versao!
A biblioteca "conio.h" eh device-dependent, geralmente
com funcoes especificas para cada hardware. Nao convem utiliza-la em um
programa que se pretende "portar" para outras plataformas de hardware/software.
11- Mais alguem estah tendo
problemas para usar o Rhide? Consigo compilar, mas não executar
os programas. A opcao de menu RUN estah desbilitada 8(
1- Veja se você seguiu rigorosamente
as instruções de instalação
do DJGPP.
2- Tive o mesmo problema, resolvendo-o da forma abaixo:
-fechar o projeto existente (Project | Close);
-abrir o arquivo novamente (File | Open);
-informar o diretório onde os arquivos estão
sendo gravados (Options | Directories | Sources).
12- Tô com o Borland
C++Builder 5.0, dá pra compilar em C com ele?
Sim, dá para compilar programas em C com o
C++ Buider. Abra o programa e chame a opção File -> New ...
-> Console Wizard.  Escolha as opções: C e Console Application
na caixa de diálogos que vai ser aberta e clique em OK. Digite seu
código na janela de textos. Para compilar e rodar seu programa,
basta apertar a seta verde (Run) ou a tecla F9..
13- Como usar o Visual C++
da Microsoft para compilar programas em C?
Para compilar, criar executaveis e executar programas
C padrão ANSI no mesmo, deve-se proceder da seguinte forma:
1-Abrir o MSVC
2-Clicar em File,
3-Clicar em New,
4-Assim que abrir a janela, escolher na lista de
tipos de projetos, Win32 Console Aplication, nao esquecer de colocar o
nome "nome" para o projeto e modificar o caminho (se for o caso) nos campos
ao lado,
5-Clicar OK (so esta disponivel se tiver colocado
o nome do projeto),
6-Aparecendo a janela de tres paginas chamada Workspace
nome, escolher a pagina file (na parte de baixo),
7-Clicar com o botao direito do mouse em nome files
e escolher Add Files to Project
8-Ao aparecer a janela Insert Files into Project,
colocar o nome: nome_do_arquivo.c (nao esquecer da terminacao .c),
9-Na janela de tres paginas que devera permanecer
aberta na pagina file, clicar no "mais" que esta antes de nome files e
clicar duas veses em nome.c,
10-Escrever seu codigo no editor ao lado,
11-Para compilar, criar executável e executar
a partir do MSVC ir em Build na barra de menu e escolher a acao desejada.
12-Se o aplicativo for executado a partir do MSVC
aparecera a mensagem Press any key to continue talvez ate mais de uma vez.
Isto nao eh erro e basta apertar uma tecla para continuar. Esta mensagem
nao mais aparecera se voce executar o aplicativo de fora do MSVC, como
por exemplo, no explorer, indo no diretorio onde esta o seu projeto e clicando
duas vezes em nome.exe.
14- Como usar o Borland C++
5.0 para compilar programas em C?
No Borland C++ 5.0, basta voce chamar a opcao File
-> New -> Text Edit e então digitar o seu programa na janela que
vai aparecer. Depois é so' chamar a opção Project
-> Build all para compilar e linkar, gerando o executável. Chame
então Debug -> Run, para rodar o seu executável.
15- Dá pra usar o DJGPP
e o Rhide no Windows NT 4.0?
Sim. Você pode usar as mesmas instruções
de instalação acima.  A única diferença
é que o arquivo equivalente ao AUTOEXEC.BAT para o WINDOWS NT 4.0
é o AUTOEXEC.NT. O arquivo se encontra em C:\WINNT\SYSTEM32\ e deve
ser editado  da mesma forma que o AUTOEXEC.BAT. As alterações
no arquivo AUTOEXEC.NT como em vários outros do sistema só
podem ser efetuadas por um administrador de rede. Se você não
é o administrador da máquina, deve criar um arquivo de lote
(*.BAT) contendo as linhas onde são setadas as variáveis
de ambiente e  executá-lo antes de executar o RHIDE.
16- Quais os argumentos que
devem ser utilizados na hora de compilar com o gcc, por exemplo: gcc O
.... ??
 Execute o comando: man gcc, se você
estiver em ambiente Unix. Se estiver em ambiente DOS, pode instalar o FAQ
e o help "info" (se ja nao tiver feito), que sao os arquivos  faq211b.zip
e  txi312b.zip,
respectivamente. Após instalado o txi390b.zip, digite info
no prompt do DOS. Porém, se estiver apenas compilando um programa
composto de um único arquivo, por exemplo, prog.c, execute 
gcc prog.c -o prog.exe .
17- Como compilar programas
usando o DevC++?
 Uma vez instalado o programa, você pode
criar um novo programa através da opção: File -> New
Source File. Na janela que aparece, você digita o
seu programa. Veja
que o DevC++ oferece para você um programa inicial que você
pode apagar, se quiser. Uma vez digitado o seu programa, você pode
compila-lo e executá-lo através da opção: Execute
-> Compile and Run, ou digitando diretamente Cntrl+F10, ou buscando a opção
"Compile and Run" na barra de ferramentas. Note que se você fizer
isto para um programa que não espera nenhuma entrada do usuário,
o programa será executado, terminará sua execução, 
e a janela onde ele está executando será automaticamente
fechada ao seu final. Com isto, você não conseguirá
ver a saída do programa. Para evitar que isto aconteça, você
pode modificar seus programas incluindo as linhas:
#include <stdlib.h>                 
no início do programa
e
system("pause");                  
antes do return (0);
como feito no primeiro programa, abaixo:
#include <stdlib.h>
#include <stdio.h>
/* Um Primeiro Programa */
int main ()
{
printf ("Ola! Eu estou vivo!\n");
system("pause");
return(0);
}
18- Como usar a biblioteca
conio no DevC++?
Para usar as funções da biblioteca conio no DevC++ voce
vai ter que "montar um projeto", seguindo os seguintes passos:
1 - File -> New Project -> Console Application -> C Project (ou C++
Project, se voce preferir) -> OK;
2 - Entre com um nome para o projeto. Exemplo: prconio -> OK -> Escolha
a pasta onde o projeto sera' gravado;
3 - Um arquivo inicial com um programa basico sera' criado. Voce pode
digitar seu programa que utiliza a conio nesta janela;
4 - Grave seu programa, com um nome diferente do nome do projeto (o
Dev nao aceita o mesmo nome);
5 - Antes de mandar compilar e executar, voce vai ter que modificar
as opcoes de seu projeto, para poder utilizar a Conio. Vá em Project
-> Project Options (ou clique no icone "Project Options" da barra de ferramentas).
Na caixa "Further object files or linker options" escreva: C:\Dev-C++\Lib\conio.o
, onde C:\Dev-C++\ deve ser substituido pela pasta onde voce instalou o
Dev-C++. Clique
em OK.
6 - Pode compilar e executar, agora, que vai funcionar.
Para testar, use o programa abaixo. Deve compilar e executar sem problemas
no Dev, se as instrucoes acima forem seguidas:
#include <stdio.h>
#include <conio.h>
int main()
{
    clrscr();
    gotoxy(10,10);
    printf("Oi, estou vivo");
    gotoxy(40,5);
    printf("Continuo vivo, em outra posicao");
    getch();
    return 0;
}
19-  Como debugar e executar
programas passo a passo usando o DevC++?
Você pode usar o programa gdb (GNU Debugger) que vem com o Dev.
Porém, este programa não é de uso muito simples. Se
você quiser uma interface mais intuitiva, pode buscar o Cygnus
Insight Debugger. Ele tambem é gratuito e pode ser baixado
a partir da pagina http://www.bloodshed.net/dev/
. Uma vez instalado o Debugger, voce vai poder executar seu programa passo
a passo, fazendo o seguinte:
Aperte a tecla F8:
vai aparecer a janela do debug.
Clique em Run (boneco azul)
Na janela "Load new executable" que aparece, escolha o diretorio e
o nome do seu programa .exe .
Depois disto, e' so' ir apertando o botao Step (que esta do lado do
boneco azul).
Voce pode alternar entre a tela de saida (DOS) e a tela do debug com
o ALT ->TAB do Windows.
c) Sobre a
linguagem C
1- Tenho uma dúvida
sobre a linguagem C. Onde achar a resposta?
Tente achar a resposta nas páginas
do curso. Caso a resposta não esteja lá, tente a nossa
bibliografia. Caso sua dúvida seja
mais complexa, talvez seja o caso de tentar o FAQ
sobre linguagem C. Se ainda não resolveu, mande a dúvida
para a lista do curso. Lembre-se,
apenas, que a lista do curso funciona somente durante os cursos, e você
tem que estar inscrito no curso para poder participar.
2- Quais as diferenças
entre o C e o C++?
O C++ é um aperfeiçoamento da linguagem
C. O C++, além dos melhoramentos incluidos na sintaxe da linguagem
C, inclui suporte para a Programação Orientada a Objetos
(POO). Você pode se referir ao FAQ
da linguagem C++   para maiores informações.
Um bom livro sobre C++ é o Thinking
in C++, que está disponível para download na Internet.
d) Sobre o
conteúdo e duração do curso
1- Gostaria de saber se o
curso de C tem duracao estabelecida, ou se extendera o quanto for necessario.
A duração estabelecida para o curso
e' de 8 semanas, conforme pode ser verificado no nosso cronograma.
2- Gostaria de saber o quanto
o curso entra no Windows 95/NT e nas WIN32, que e o meu objetivo a medio
prazo . O que mais vamos estudar além do C padrao?
Nao entra em nada relativo a programacao do Windows.
O C e' uma linguagem que pode ser usada para efetuar programacao em varios
ambientes, incluindo o Windows. Porem nao e' nosso objetivo neste curso
estudar a programacao para o Windows. Uma excelente referencia sobre o
uso da linguagem C para a programacao Windows 95 e' o livro do Charles
Petzold: "Programming
Windows " , da Microsoft Press, com 1100 paginas de informação
de excelente qualidade. O pré-requisito para entender este livro
é conhecer bem a programação utilizando a linguagem
C e isto você poderá obter no nosso curso!
Não vamos estudar nada além do C padrão!
Nao vamos estudar CGI's,
programacao de portas seriais,
de portas paralelas, programacao Windows 95, C++, Java, programação
gráfica, o movimento das galaxias, ou qualquer coisa alem do
C. Qualquer duvida sobre o que vai ser visto, consultem o programa
do curso.
3- Preciso saber alguma linguagem
basica de programação para acompanhar o curso?
Nao precisa, porém seu aprendizado será
facilitado se voce ja' souber programar.
4- Qual a URL com o conteúdo
zipado do curso?
Veja a noss página de download.
5-Se eu nao conseguir terminar
o curso em 8 semanas. Se precisar de mais tempo pra ler todas as aulas
o que farei ?
Voce podera' continuar lendo as paginas do curso,
que continuarao disponiveis, mesmo depois dele ter terminado. Apenas a
lista devera' ser desativada algumas semanas depois de terminado o curso.
6- Neste curso vamos estudar
alguma coisa sobre programação de portas seriais ou paralelas?
Não, isto não faz parte do ANSI C. Porém, você
pode encontrar alguma coisa nos sites abaixo:
http://www.lvr.com/parport.htm
http://www.lvr.com/spc.htm
http://www.hut.fi/Misc/Electronics/circuits/parallel_output.html
http://casa.dos.programadores.com.br/c_art0009.html
http://www.beyondlogic.org/
http://www.cubic.org/source/archive/hardware/parallel/usingparallel.htm
http://www.li.facens.br/~f98335/
http://sites.uol.com.br/rogercom/index.htm
http://margo.student.utwente.nl/stefan/hwb/menu_Connector.html
http://home.rmi.net/~hisys/parport.html
http://www.linuxave.net/~artheos/
http://casa.dos.programadores.com.br/builder_art0002.html
O The Hardware Book tambem é muito bom:
http://www.fortunecity.com/skyscraper/photoshop/129/hwb/menu_Download.html
7- Neste curso vamos estudar
alguma coisa sobre programação gráfica?
Não. Isto não faz parte do ANSI C.
e) Sobre a
organização do curso
1- O curso de C em questão
oferece certificado de conclusão e participação ao
término do mesmo?
Não são fornecidos certificados de
participação no curso pois não desenvolvemos ainda
nenhum esquema de avaliação confiável (apenas auto-avaliação).
Nosso objetivo é estimular o auto-aprendizado e não que as
pessoas fiquem atrás de um papel que burocraticamente certifique
alguma coisa.
2- O curso vai ser dado na
WWW ou via e-mail?
Ambos. O curso vai ser dado usando ambas ferramentas.
Vocês lerão "o livro" do curso nas páginas da WWW e
interagirão com o professor, monitores e demais colegas usando o
e-mail. As listas de exercício serão enviadas para vocês
também por e-mail. Vocês poderão fazer perguntas, usando
a lista do curso. As respostas para suas perguntas serão também
enviadas para esta lista.
3- Quais as regras para uso
da lista do curso de C?
 
1- Só envie mensagens que tenham algo a ver
com o curso de C(lembre-se que tem mais de  5000 pessoas te ouvindo).
Cuidado com respostas que deveriam ir para o sujeito que postou a mensagem
e que acabam sendo enviadas para toda a lista!
2- Seja educado: use a Netiqueta. Se voce
nao conhece a Netiqueta, de uma olhada em http://www.ifi.unicamp.br/ccjdr/netiqueta/dis.html
3- No inicio do curso, restringimos as mensagens
que avançam na matéria, para nao "assustar" os iniciantes
em C. Deixe estas perguntas para o final do curso.
Mais para o final do curso, valem perguntas que nao estejam estritamente
dentro do topico em discussao.
4- A lista somente funciona durante o curso. Ela
é desativada após o seu final e as mensagens deixarão
de ser enviadas aos alunos.
5- Não espere que os monitores ou os outros
alunos do curso resolvam os exercícios da matéria de programação
de computadores que você está fazendo em sua universidade.
Alguém pode até te ajudar, desde que o problema esteja dentro
dos tópicos estudados no momento no curso. Porém, lembre-se
que a finalidade da lista não é esta!
6- Não envie arquivos "attachados" nos
seus e-mails para a lista. O envio de "attachments" cria problemas pelo
fato das mensagens ficarem enormes, sobrecarregando o nosso servidor de
e-mails.
7 - Não envie mensagens diretamente para
o professor, apenas para a lista. Mensagens para o professor
não serão respondidas..
8 - Não envie perguntas cujas respostas
estejam no FAQ. Se sua pergunta estiver no FAQ e a resposta do FAQ
não te satisfizer, explique isto em sua mensagem. Caso contrário,
ela não será enviada à lista.
4- Por que os e-mails tem que
ser mandados para toda a lista e nao somente para os monitores?
Nosso objetivo nao e' que as perguntas sejam direcionadas
apenas aos monitores. Segundo nossa concepcao, o aluno aprende muito com
as duvidas dos outros. Alem disto, se tivessemos que responder individualmente
a cada aluno, a equipe de monitores teria que crescer muito.
5- Por que não acentuar
o texto do e-mail?
Por favor nao acentuem seus e-mails pq com certeza
muita gente estah lendo seus e-mails com o pine ou qualquer outro leitor
unix e eles não têm suporte a acentos.. fica tudo confuso... 
uma droga mesmo...
6- Vale qualquer pergunta sobre
a linguagem C na lista?
No inicio do curso, restringimos as mensagens que
avançam na matéria, para nao "assustar" os iniciantes em
C. Deixe estas perguntas para o final do curso.
Além disto, lembre-se que a finalidade da lista não é
resolver os problemas que você está tendo na matéria
de programação de computadores de sua universidade...
Mais para o final do curso, valem perguntas que nao
estejam estritamente dentro do topico em discussao.
7- Onde estão as listas
de Exercícios? Qual o endereço para enviar as respostas?
 
As listas de exercícios são enviadas
semanalmente para a lista do Curso. Você não precisa enviar
as respostas para nenhum lugar. Resolva as questões e aguarde porque
na próxima semana será enviado um gabarito com as soluções.
Se você perdeu alguma lista, clique aqui
para acessar os arquivos das listas de exercícios:
8- O que são estas mensagens
sem texto que aparecem de vez em quando na lista?
Na realidade estas são mensagens que foram
enviadas por alguem usando o programa Outlook Express da Microsoft. O Listproc
não está reconhecendo o formato MIME gerado pelo programa
que acompanha o Internet Explorer.  Para evitar este erro, peco as
pessoas que estao usando o Outlook Express que façam uma pequena
modificação em sua configuração. Na versão
em Portugues do programa, escolher: Menu Ferramentas -> Opcoes -> Enviar
->  Formato de envio de Mensagens -> Escolha a opcao Texto sem formatacao,
ao invés da opção anterior que era HTML.
9- Existe alguma maneira de
eu conseguir todos os e-mails que foram enviados para a lista de discussões?
Sim, basta acessar os arquivos
das listas de discussão. Os arquivos são atualizados
diariamente.
10- Posso mandar uma dúvida
diretamente para o Professor Renato?
Não. Suas dúvidas devem ser enviadas
para a lista do curso. Mensagens enviadas diretamente para o endereço
do professor não serão respondidas, pois o professor não
tem tempo para atender os mais de 2000 alunos individualmente.
11- Como configurar meu leitor
de e-mails para filtrar as mensagens do curso de C, enviando-as para uma
pasta específica?
1 - Para configurar o Outlook: 
 (Primeira forma):
 Clique em uma mensagem do curso de
C
 Vá em Mensagem - Criar regra a partir
de mensagem
 Quando a linha Assunto contiver palavras especificas
-> CURSOC
 Move-la para a pasta especificada -> CursoC
 (Segunda forma):
1. crie uma pasta em sua caixa de entrada
2. vá em ferramentas/regras para menssagens/correio/click
em nova
3 em 1 "sel. as cond p/ regra" escolha: qdo a linha
assunto contiver ....
4 depois em 2 coloque mover p/ pasta esp.
5 em 3 click em "contiver pal. especificas" r digite
CURSOC e click em
adicionar
6 depois em 3 click em "especificada"
7 selecione a pasta que vc criou e click em ok!!!!!!!!1
8 pronto!!!!!!!
2 - Para configurar o Netscape Messenger:
Edit -> Message
Filters... -> New...
Configure o filtro, colocando um nome e uma descricao
para o mesmo.
Selecione Subject
Selecione Contains
Adicione a palavra "CURSOC" ao lado do "contains"
Selecione Move To Folder e selecione o folder a
ser direcionada a mensagem.
3 - Para configurar o Eudora:
Adicionar nova pasta no Eudora:
1) clique com o botao direito sobre o EUDORA, selecione
New;
2) digite Curso_C e OK;
Adicionar Filtro:
1) clique no menu Tools, e escolha o apcao Filters;
2) abrira´ uma caixa de dialogo;
3) nela clique no botao NEW;
4) em HEADER selecione o campo do e-mail que devera´
ser observado pelo
Eudora no momento que forem recebidas novas mensagens,
no nosso caso
coloque "From:"
5) abaixo coloque "contains" e ao lado digite "CURSOC"
(sem as aspas)
para que o Eudora verifique no campo "Form:" do
e-mail recebido o
conteudo "CURSOC" ;
6) se quiser que o filtro verifique outros campos
continue a preecher
semelhantemente aos passos  4 e 5.
4 - Para configurar o Pine, com procmail ou fetchmail.
(enviada pelo Paulo  hypolito@uol.com.br )
[hypolito@neptune hypolito]$ more .procmailrc
# Please check if all the paths in PATH are reachable,
# remove the ones that are not.
SHELL=/bin/sh
PATH=$HOME/bin:/usr/bin:/usr/ucb:/bin:/usr/local/bin
MAILDIR=$HOME/mail
DEFAULT=/var/spool/mail/$LOGNAME
LOGFILE=$HOME/.procmail/.procmail.log  
#recommended
LOCKFILE=$HOME/.procmail/.lockmail
:0
* ^Reply-To:.*cursoc@ead.eee.ufmg.br
chegada/cursoc
:0
* ^Reply-To:.*cursoc@ead1.eee.ufmg.br
chegada/cursoc
em .pinerc
[..]
# List of directories where saved-message folders
may be. First one is
# the default for Saves. Example: Main {host1}mail/[],
Desktop mail\[]
# Syntax: optnl-label {optnl-imap-hostname}optnl-directory-path[]
folder-collections=UOL mail/uol/[],
        Chegada
mail/chegada/[],
        Sent-Mail
mail/uol/sent-mail/[],
        Listas
mail/uol/listas/[],
        Netscape
nsmail/[]
[..]
Se voce usa o fetchmail para puxar as mensagens do
seu provedor:
em .fethmailrc
server pop3.sti.com.br \
protocol pop3 \
username hypolito \
password cUrIOsO \
no rewrite \
mda "procmail -d hypolito"
f) Diversos
1- Gostaria de
saber porque
voces não colocam um curso de Matlab( versão nova).
Porque nosso tempo e' finito! :-)  Nao da'
para colocar cursos de tudo quanto e' assunto ...
Curso de C da Engenharia Elétrica
da UFMG - 1996-2002
 
form-desinsc.html
Formulário de Desinscrição do
Curso de C
 
 Para se desinscrever do Curso de Programação em Linguagem C, basta
 preencher o formulário abaixo. 
 Lembre-se que o curso possui duas listas: An_cursoC e CursoC. 
 Se voce quiser continuar recebendo as mensagens do professor,
 desinscreva-se apenas da lista CursoC. 
 Se você não quiser receber as mensagens do professor
 desinscreva-se da lista An_cursoC.
 
 Não se desinscreva de uma lista da qual você já tenha se desinscrito anteriormente, ou
 o sistema lhe enviará um e-mail com mensagem de erro e não efetuará a desinscrição:
 desinscreva-se somente das listas das quais você continua recebendo mensagens!
 Você receberá a confirmação de desinscrição no e-mail
 fornecido.
 
 E-mail:
          
              
 Quero me desinscrever das listas: 
		CursoC2002 (não receber as
 mensagens dos alunos)
		An_CursoC (não receber as
 mensagens do professor)
   
 
Curso de C da EE/UFMG - 1996 - 2002
form-inscri.html
Formulário de Inscrição no Curso
de C
 
 Para se inscrever no Curso de Programação em Linguagem C, basta
 preencher o formulário abaixo. Se você possuir mais de um
 endereço de e-mail, inscreva-se naquele em que você quer receber as mensagens do curso.
 Lembre-se que, como o curso é muito movimentado, pode "entupir" uma caixa
 postal que não seja lida freqüentemente. Só se inscreva se você puder
 ler uma boa quantidade de e-mails diariamente e ter tempo para estudar os módulos do
 curso. O curso é gratuito.
 
 Preencha todos os campos. Não deixe nenhum em branco. Atenção no preenchimento do
 campo e-mail!!!
 Nome Completo (não utilize acentos):
 
 E-mail:
          
              
 
 Idade:
            
              
 
 Cidade / Pais:    
        
 
 Escolaridade: 
		Primeiro Grau Completo
		Segundo Grau Completo
		Cursando Terceiro
 Grau
		Terceiro Grau
 Completo
		Pós-Graduação
		Não respondeu
 Ao me inscrever, estou concordando com os termos explicitados
 no cabeçalho deste formulário 
   
 
Curso de C da EE/UFMG - 1996 - 2002
form-troca-email.html
Formulário de Troca de e-mail no
Curso de C, depois do início do curso
 
 Para trocar seu e-mail no Curso de Programação em Linguagem C, basta preencher os
 campos do formulário abaixo. Este formulário só funciona depois que o curso
 começar.
 
 E-mail antigo:       
 
 E-mail novo:
           
 
 Nome (não utilize acentos):
 
   
 
Curso de C da EE/UFMG - 1996 - 2000
form-troca-email2.html
Formulário de Troca de e-mail no
Curso de C, antes do início do curso
 
 Para trocar seu e-mail no Curso de Programação em Linguagem C, basta preencher os
 campos do formulário abaixo. Este formulário só funciona antes do seu curso
 começar.
 
 E-mail antigo:       
 
 E-mail novo:
           
 
 Nome (não utilize acentos): 
 
   
 
Curso de C da EE/UFMG - 1996 - 2000
lista.html
Arquivos das listas de discussão do curso de C  
Procura nos arquivos do curso de C por conteúdo específico
 		 		 
Turma do Primeiro Semestre de
2002 
Anúncios do
 Professor (An_CursoC)
 		E-mails ordenados por data.
		E-mails ordenados
 por assunto.
Lista de discussão
 dos alunos e monitores (CursoC)
 		E-mails ordenados por
 data.
		E-mails ordenados por
 assunto.
Turma do Primeiro Semestre de
2001 
Anúncios do
 Professor (An_CursoC)
 		E-mails ordenados
 por data.
		E-mails ordenados
 por assunto.
Lista de discussão dos alunos e monitores (CursoC)
 		E-mails ordenados por
 data.
		E-mails ordenados por
 assunto.
Turma do Segundo Semestre
de 2000 
Anúncios do
 Professor (An_CursoC)
 		E-mails ordenados
 por data.
		E-mails ordenados
 por assunto.
Lista de discussão
 dos alunos e monitores (CursoC)
 		E-mails ordenados por
 data.
		E-mails ordenados por
 assunto.
Turma do Primeiro Semestre
de 2000 
Anúncios do
 Professor (An_CursoC)
 		E-mails ordenados
 por data.
		E-mails ordenados
 por assunto.
Lista de discussão
 dos alunos e monitores (CursoC)
 		E-mails ordenados por
 data.
		E-mails ordenados por
 assunto.
Turma do Segundo Semestre de
1999 
Anúncios do
 Professor (An_CursoC)
 		E-mails ordenados
 por data.
		E-mails ordenados por
 assunto.
 
Lista de discussão dos alunos e monitores
 (CursoC)
 		E-mails ordenados por
 data.
		E-mails ordenados por
 assunto.
Turma do Primeiro Semestre de
1999 
Anúncios do
 Professor (An_CursoC)
 		E-mails ordenados
 por data.
		E-mails ordenados por
 assunto.
Lista de discussão
 dos alunos e monitores (CursoC)
 		E-mails ordenados por
 data.
		E-mails ordenados por
 assunto.
       
Lista de discussão do projeto final do curso (ProjCursoC) 
 		E-mails ordenados
 por data.
		E-mails ordenados
 por assunto.
  
Turma do Segundo Semestre de 1998:
Anúncios do Professor (An_CursoC) 
		 E-mails ordenados
 por data.
		E-mails ordenados por
 assunto.
Lista de discussão dos alunos e monitores (CursoC) 
		 E-mails ordenados por
 data.
		E-mails ordenados por
 assunto.
Turma do primeiro semestre de 1998: 
 		E-mails ordenados por
 data
		E-mails ordenados por
 assunto.
Turma do segundo semestre de 1997: 
 		E-mails ordenados por
 data
		E-mails ordenados por
 assunto.
 Curso de C da Engenharia Elétrica da UFMG - 1996-2002
 
   
  
help.gif
home.html
 
 
 
 
 				 
 
 
 
 
 
 		Informações
 Gerais
 Aulas
 Inscrições e Desinscrições
 Área de Download 
 Cronograma de atividades
 Listas de exercícios
 Monitores
 E-mails enviados às listas
 FAQ
 Lista de
 usuários de ICQ 
 
 
Visualização ideal:
resolução 800x600
256 cores ou mais
Curso de C da EE UFMG - 1996-2002
   
image29.gif
index.html
info.html
Informações Gerais
		Sobre o curso
		Funcionamento do
 curso
		O que é necessário
 para acompanhar o curso 
Sobre o Curso 
    Este curso foi implementado na UFMG - Universidade Federal de Minas Gerais pelo
Núcleo de Ensino à Distância da
Escola de Engenharia - fazendo parte de um projeto apoiado pela Pró-Reitoria de
Graduação da UFMG, através do programa PROGRAD97/FUNDO-FUNDEP. O curso é oferecido
regularmente, a cada semestre, desde 1997. Na nossa
página de
inscrições você pode verificar o número de participantes em cada edição. Desde
sua primeira edição, o curso tem sido oferecido gratuitamente e não oferece
certificados de conclusão. Ou seja, você deve fazer este curso se estiver interessado em
seu aprimoramento pessoal.
    Quem originalmente escreveu o curso de C foi o
aluno de graduação em Engenharia Elétrica, Daniel Balparda de Carvalho. Algumas
modificações foram introduzidas pela aluna de doutorado Ana Liddy Cenni de Castro Magalhães  e pelo
aluno de graduação em Engenharia Elétrica, Ebenezer Silva
Oliveira. Posteriormente, Guilherme Neves Cavalieri, também aluno de graduação em Engenharia
Elétrica, modificou as páginas, de forma a facilitar a navegação e utilização do
curso. Atualmente ele é mantido  pelo professor Renato Cardoso Mesquita. 
Funcionamento do Curso 
    O professor, seguindo o
calendário do curso, envia à lista de
discussão do curso uma série de tarefas (que constam de tópicos a serem estudados nas páginas do curso e exercicios a serem resolvidos) e
uma data limite para a solução deles pelos alunos. Na data limite, um gabarito com as
respostas dos exercícios é enviado à lista e  novas tarefas são propostas. 
A lista de discussões também serve para que os alunos resolvam, assincronamente, suas
dúvidas. Um FAQ com as dúvidas mais frequentes é
criado com o seu desenrolar. 
  
    Você pode trabalhar a qualquer hora, desde que complete suas tarefas
no tempo especificado pelo professor. Você estuda nas
páginas do Curso, tenta resolver os problemas propostos, envia suas dúvidas para a
lista (ou responde as dúvidas de seus colegas) e, posteriormente, lê as respostas. Isto
e' chamado "Comunicação Assíncrona". 
    O curso foi pensado para tirar partido dos pontos
fortes da comunicação assíncrona, ao invés de tentar copiar um modelo que funciona bem
nas salas de aula tradicionais. Existem benefícios cognitivos significativos atribuídos
à comunicação assíncrona. Como os estudantes tem tempo para rever o material
(comentários, páginas do WWW, discussões) e também podem gastar o tempo que quiserem
para compor suas respostas, o material e os conceitos são abordados em uma velocidade
individualizada. Pode-se atingir um nível de profundidade na comunicação assíncrona
superior àquele atingido com a comunicação síncrona. 
  
    Apesar da falta de contato físico criar suas dificuldades, ela não
necessariamente prejudica o processo educacional. Em um curso como este, todos os
estudantes têm oportunidade de participação nas discussões igualadas - não somente os
mais extrovertidos. Fatores potenciais de discriminação, como aparência, raça, sexo,
etc, desaparecem e as idéias se tornam o foco principal da discussão. 
O
que é necessário para acompanhar o Curso? 
    Para acompanhar o curso você
necessitará de acesso à WWW através de um navegador (Netscape ou Microsoft Internet
Explorer) e também de um programa para envio e recebimento de e-mails. Além disto, é
importante que você tenha disponível um compilador C, padrão ANSI. Um compilador lê o
programa que você escreveu em linguagem C e o converte em um código objeto, que e' uma
tradução do código fonte em uma forma que o computador pode executar diretamente. Se
você não tem um compilador disponível, clique aqui para
verificar como obter um. 
 Curso de C da Engenharia Elétrica da UFMG - 1996-2000
   
insc.html
Inscrições, Desinscrições e Mudanças de Endereço.
    
Inscrições: 
    Turmas do curso são oferecidas periodicamente
(no mínimo uma vez por ano), geralmente no início de cada semestre letivo da UFMG.  As
inscrições para o curso de 2003 deverão ser abertas em março de 2003. 
    Este e' um curso extremamente
movimentado, com uma grande interação entre alunos, monitores e professores. Para se ter
uma ideia do grau de interação, na versão do curso de 2002, foram gerados 1880 e-mails
na lista de discussão dos alunos, mais 29 e-mails de anúncios do professor. Desta forma,
é recomendável que você se inscreva somente se tiver a possibilidade de dedicar um
certo tempo diário à leitura do material on-line, e-mails e à execução dos
exercícios do curso. 
 O número de alunos, por edição do curso foi: 
		2002, segundo semestre, 5334 alunos;
		Segundo semestre de 2001, não houve curso, devido a greve nas
 Universidades Federais;
		Primeiro semestre de 2001, 2870 alunos;
		Segundo semestre de 2000: 2793 alunos;
		Primeiro semestre 2000: 2400 alunos
		Segundo semestre de 1999, limitamos o número de alunos em 2000. 
		Primeiro semestre de 1999, 2488 alunos.
		Segundo semestre de 1998, 1769 inscritos;
		Primeiro semestre de 1998,  865 inscritos;  
		Segundo semestre de 1997, 284 alunos. 
    O
curso é gratuito.   
 Desinscrições:
     Para se desinscrever do curso de C, depois de iniciado o curso,   basta
 preencher o formulário de desinscrição. 
    Se você quiser se desinscrever
 antes do curso se iniciar, envie e-mail para
 listproc@ead.eee.ufmg.br  com o conteúdo: UNSUB
 ESPERACURSOC . Não é necessário colocar nada no
 subject. 
 
 Mudança
 de Endereço para o Curso:
 Como trocar o meu e-mail inscrito no curso de C de xxx@zzz.com.br
 para yyy@www.com.br? 
   
 Se o curso já tiver começado, basta preencher o formulário
 de troca de e-mail. 
 Se estiver inscrito na lista de espera do
 curso, antes de começar o curso,
 preencha o formulário alternativo de troca de e-mail.
 
 
 Curso de C da Engenharia Elétrica UFMG - 1996-2002
 
   
  
left.gif
l-exerc-fram.html
line.gif
lista_exercicio.html
lista_main.html
Listas de exercícios 
OBS: As listas e os gabaritos somente estarão disponíveis nas datas
definidas no cronograma 
  
		 Lista 1		 Gabarito 1
		 Lista 2		 Gabarito 2
		 Lista 3		 Gabarito 3
		 Lista 4		 Gabarito 4
		 Lista 5		 Gabarito 5
		 Lista 6		 Gabarito 6
		 Lista 7		 Gabarito 7
		 Lista 8		 Gabarito 8
  
 Curso de C da Engenharia Elétrica da /UFMG - 1996-2002
  
lixo.htm
atençao
monitores.html
Monitores
do Curso
     Neste curso, a  equipe 
é composta pelo:
		
Coordenador e Professor do Curso: Prof.
Renato Cardoso Mesquita, professor do Depto. de Engenharia Elétrica
da UFMG, no GOPAC, Grupo de Otimização
e Projeto Assistido por Computador.
    E pelos seguintes monitores:
1 -Andrea Moreira - Aluna de graduação em Engenharia Elétrica
na UFMG
2 -Hélio Barbosa Yamaki - Físico Unicamp, Analista de
Sistemas Empresa1
3 -Hilton de O. Mota - Aluno do doutorado em Engenharia Elétrica
da UFMG
4 -Jonathan Araujo - Aluno de graduação em Engenharia
Elétrica da UFMG
5 -Leandro Pinheiro Cintra - Aluno
do mestrado em Engenharia Elétrica da UFMG
6 -Luciano Ferreira Lopes - Engenheiro Eletricista (UFMG) com pós
graduação em Engenharia de Software (UFMG)
7 -Matheus Castro Vargas - Aluno de graduação em Engenharia
Elétrica da UFMG
8 -Thadeu Lima de Souza Cascardo - Aluno de graduação
em Ciência de Computação da UFMG
9 -Renato Cardoso Mesquita - Professor do Departamento de Engenharia
Elétrica da UFMG
0 -William Leite Araujo - Aluno de graduação em Ciência
da Computação da UFMG
Os números acima indicam o número final
das questões que cada monitor ficará responsável por
"monitorar".
Curso de C da Engenharia Eletrica da
UFMG - 1996-2002
 
o_curso_mudou.html
O Curso de C mudou de servidor!!!!!!! 
   Atenção: modifique seus bookmarks. O novo
endereço do curso de Programação em linguagem C é 
                                        http://ead1.eee.ufmg.br/cursos/C/
 Curso de C da Engenharia
Elétrica da UFMG - 1996-1999
   
ponta.gif
pontagde.gif
prog1.c
 #include <stdio.h>
 main () /* Um Primeiro Programa */
 {
 printf ("Ola! Eu estou vivo!\n");
 }
rhide.html
Uso do RHIDE 
Nesta página fornecemos algumas instruções básicas para uso do
ambiente de programação RHIDE (estas instruções também são válidas para o TClite).
O RHIDE facilita em muito a criação de programas em C. As instruções fornecidas são
básicas, para que se consiga compilar e executar os primeiros programas em C. Com o uso
do HELP do RHIDE você conseguirá maiores informações. 
Passos a serem seguidos para utilizar o RHIDE:
1- Instalar o DJGPP e o RHIDE em seu computador. Veja
como, clicando aqui. 
2- Abrir uma janela do DOS, ir para o diretório onde voce vai criar
seus programas e digitar: rhide    
3- Se você vai criar um novo arquivo de programa, chamar a opção
File -> New (ver figura abaixo) 
 
4- Uma vez criado um novo arquivo, digite o seu
programa nele, como indicado abaixo: 
  
5- Agora você pode salvar o seu programa, chamando
File -> Save, e digitando o nome do arquivo .c que vai armazenar seu programa. Por
exemplo, digite prog1.c e a seguir clique em Open (sim, é  Open mesmo, esta caixa de
diálogo está trocada), como no exemplo abaixo: 
OBS:     
               
1) não use nomes com número de caracteres maior que 8. O Rhide é um programa para DOS e
não entende os nomes longos do Windows 95
               
2) Sempre coloque a extensão do arquivo que você está criando. O
Rhide não coloca o .c automáticamente!
  
6- O próximo passo a ser seguido é compilar o programa (gerando o
arquivo .o) e linkar com as bibliotecas do C (gerando o arquivo executável, .exe). Chame
a opção Compile -> Make. Caso não existam erros no seu programa, aparecerão as
mensagens: 
Compiling: prog1.c 
No errors 
Creating: prog1.exe 
no errors 
na janela de mensagens, conforme a figura abaixo. Se
houver erros, o Rhide indicará a linha onde este erro ocorreu e você deverá corrigir o
seu programa.
  
7- Agora você pode executar o programa, chamando a
opção Run -> Run, conforme a figura abaixo: 
  
8- Um programa simples como este vai enviar a mensagem Ola!
Eu estou vivo!  para a tela do DOS e terminar a execução, apresentando uma
caixa de dialógo com um botão de OK e a mensagem Program exit code -1 (0xffffff).
Não se assuste, isto não é uma mensagem de erro! Se você quiser ver a tela do DOS,
após o término da execução, poderá chamar FILE -> DOS Shell. Depois é só digitar
exit <enter> para você voltar ao RHIDE. Você também pode apertar simultaneamente
as teclas <ALT> e <F5>, para chavear entre a tela do DOS e a
tela do RHIDE.  Se você quiser ver a tela do DOS antes do término da execução,
terá que momentaneamente parar a execução. Existem várias formas de fazer isto. Uma
delas é modificar o seu programa para que ele tenha uma entrada "fictícia" de
dados. Inclua a linha scanf("\n");   no programa, como indicado
na figura abaixo. 
  
 9- Ao fazer isto, recompile o programa e
execute-o novamente. Você vai ver uma tela semelhante à apresentada na figura abaixo.
Repare a mensagem Ola! Estou vivo. , na parte inferior da tela. Para continuar a
execução, você terá que digitar alguma coisa para o scanf e apertar a tecla
<Enter> em seguida. O programa então terminará sua execução e você voltará ao
ambiente do Rhide. 
  
10- Outra forma de verificar o que um programa está
fazendo é executá-lo passo a passo. O Rhide permite isto. Basta chamar a opção Run
-> Step over, como indicado na figura abaixo, ou então apertar a tecla F8. A cada vez
que você fizer isto, o programa executará uma instrução. A barra azul claro indica
qual é a instrução corrente. Para ver a tela de saída, você pode apertar
simultaneamente <ALT> e <F5>. Existem várias outras opções de execução
disponíveis no menu Run. Você pode verificar o que elas fazem consultando o Help do Rhide, conforme item 11 abaixo. É também interessante você
conhecer as opções que estão no menu Debug, que auxiliam
bastante no processo de depuração de programas.  
 
 11- O Rhide possui um bom sistema de HELP, que
você deve consultar para verificar todas as suas potencialidades. Para acessá-lo, basta
chamar a opcao Help  no menu principal. Veja que o Help tem opções não somente
quanto ao uso do Rhide, mas também sobre funções da linguagem C. Veja a figura abaixo.
  
 Só apresentamos uma introdução ao uso do RHIDE. Com o seu
uso, você aprenderá muito mais, especialmente se você não tiver medo de consultar o
HELP! Você também pode consultar a
documentação on-line no site original do RHIDE para maiores detalhes. 
Curso de C da Engenharia Elétrica da UFMG - 1996-1999
  
up.gif
Programa_C.pdf
1 
Curso de Programação em C 
 
INTRODUÇÃO 
Vamos, neste curso, aprender os conceitos básicos da linguagem de programação C a 
qual tem se tornado cada dia mais popular, devido à sua versatilidade e ao seu poder. Uma 
das grandes vantagens do C é que ele possui tanto características de "alto nível" quanto de 
"baixo nível". 
Apesar de ser bom, não é pré-requisito do curso um conhecimento anterior de linguagens 
de programação. É importante uma familiaridade com computadores. O que é importante é 
que você tenha vontade de aprender, dedicação ao curso e, caso esteja em uma das turmas do 
curso, acompanhe atentamente as discussões que ocorrem na lista de discussões do curso. 
O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira 
vez usando um DEC PDP-11 rodando o sistema operacional UNIX. O C é derivado de uma outra 
linguagem: o B, criado por Ken Thompson. O B, por sua vez, veio da linguagem BCPL, 
inventada por Martin Richards. 
O C é uma linguagem de programação genérica que é utilizada para a criação de 
programas diversos como processadores de texto, planilhas eletrônicas, sistemas operacionais, 
programas de comunicação, programas para a automação industrial, gerenciadores de bancos 
de dados, programas de projeto assistido por computador, programas para a solução de 
problemas da Engenharia, Física, Química e outras Ciências, etc ... É bem provável que o 
Navegador que você está usando para ler este texto tenha sido escrito em C ou C++. 
Estudaremos a estrutura do ANSI C, o C padronizado pela ANSI. Veremos ainda algumas 
funções comuns em compiladores para alguns sistemas operacionais. Quando não houver 
equivalentes para as funções em outros sistemas, apresentaremos formas alternativas de uso 
dos comandos. 
Sugerimos que o aluno realmente use o máximo possível dos exemplos, problemas e 
exercícios aqui apresentados, gerando os programas executáveis com o seu compilador. 
Quando utilizamos o compilador aprendemos a lidar com mensagens de aviso, mensagens de 
erro, bugs, etc. Apenas ler os exemplos não basta. O conhecimento de uma linguagem de 
programação transcende o conhecimento de estruturas e funções. O C exige, além do domínio 
da linguagem em si, uma familiaridade com o compilador e experiência em achar "bugs" nos 
programas. É importante então que o leitor digite, compile e execute os exemplos 
apresentados. 
 
Capítulo – 1 (Primeiros Passos) 
 
O C é "Case Sensitive" 
Vamos começar o nosso curso ressaltando um ponto de suma importância: o C é "Case Sensitive", isto é, 
maiúsculas e minúsculas fazem diferença. Se declararmos uma variável com o nome soma ela será diferente de Soma, 
SOMA, SoMa ou sOmA. Da mesma maneira, os comandos do C if e for, por exemplo, só podem ser escritos em 
minúsculas pois senão o compilador não irá interpretá-los como sendo comandos, mas sim como variáveis. 
 
Dois Primeiros Programas 
Vejamos um primeiro programa
em C: 
 
 
#include <stdio.h> 
/* Um Primeiro Programa */ 
int main () 
2 
{ 
printf ("Ola! Eu estou vivo!\n"); 
return(0); 
} 
Compilando e executando este programa você verá que ele coloca a mensagem Ola! Eu 
estou vivo! na tela. 
Vamos analisar o programa por partes. 
A linha #include <stdio.h> diz ao compilador que ele deve incluir o arquivo-cabeçalho 
stdio.h. Neste arquivo existem declarações de funções úteis para entrada e saída de dados 
(std = standard, padrão em inglês; io = Input/Output, entrada e saída ==> stdio = Entrada e 
saída padronizadas). Toda vez que você quiser usar uma destas funções deve-se incluir este 
comando. O C possui diversos arquivos-cabeçalhos. 
Quando fazemos um programa, uma boa idéia é usar comentários que ajudem a elucidar 
o funcionamento do mesmo. No caso acima temos um comentário: /* Um Primeiro 
Programa */. O compilador C desconsidera qualquer coisa que esteja começando com /* e 
terminando com */. Um comentário pode, inclusive, ter mais de uma linha. 
A linha int main() indica que estamos definindo uma função de nome main. Todos os 
programas em C têm que ter uma função main, pois é esta função que será chamada quando 
o programa for executado. O conteúdo da função é delimitado por chaves { }. O código que 
estiver dentro das chaves será executado sequencialmente quando a função for chamada. A 
palavra int indica que esta função retorna um inteiro. O que significa este retorno será visto 
posteriormente, quando estudarmos um pouco mais detalhadamente as funções do C. A última 
linha do programa, return(0); , indica o número inteiro que está sendo retornado pela função, 
no caso o número 0. 
A única coisa que o programa realmente faz é chamar a função printf(), passando a 
string (uma string é uma seqüência de caracteres, como veremos brevemente) "Ola! Eu 
estou vivo!\n" como argumento. É por causa do uso da função printf() pelo programa que 
devemos incluir o arquivo- cabeçalho stdio.h . A função printf() neste caso irá apenas colocar 
a string na tela do computador. O \n é uma constante chamada de constante barra invertida. 
No caso, o \n é a constante barra invertida de "new line" e ele é interpretado como um 
comando de mudança de linha, isto é, após imprimir Ola! Eu estou vivo! o cursor passará para 
a próxima linha. É importante observar também que os comandos do C terminam com ; . 
Podemos agora tentar um programa mais complicado: 
 
 #include <stdio.h> 
 int main () 
 { 
 int Dias; /* Declaracao de Variaveis */ 
 float Anos; 
 printf ("Entre com o número de dias: "); /* Entrada de Dados */ 
 scanf ("%d",&Dias); 
 Anos=Dias/365.25; /* Conversao Dias->Anos */ 
 printf ("\n\n%d dias equivalem a %f anos.\n",Dias,Anos); 
 return(0); 
 } 
Vamos entender como o programa acima funciona. São declaradas duas variáveis 
chamadas Dias e Anos. A primeira é um int (inteiro) e a segunda um float (ponto flutuante). 
As variáveis declaradas como ponto flutuante existem para armazenar números que possuem 
casas decimais, como 5,1497. 
É feita então uma chamada à função printf(), que coloca uma mensagem na tela. 
Queremos agora ler um dado que será fornecido pelo usuário e colocá-lo na variável 
inteira Dias. Para tanto usamos a função scanf(). A string "%d" diz à função que iremos ler 
um inteiro. O segundo parâmetro passado à função diz que o dado lido deverá ser armazenado 
3 
na variável Dias. É importante ressaltar a necessidade de se colocar um & antes do nome da 
variável a ser lida quando se usa a função scanf(). O motivo disto só ficará claro mais tarde. 
Observe que, no C, quando temos mais de um parâmetro para uma função, eles serão 
separados por vírgula. 
Temos então uma expressão matemática simples que atribui a Anos o valor de Dias 
dividido por 365.25 (365.25 é uma constante ponto flutuante 365,25). Como Anos é uma 
variável float o compilador fará uma conversão automática entre os tipos das variáveis 
(veremos isto com detalhes mais tarde). 
A segunda chamada à função printf() tem três argumentos. A string "\n\n%d dias 
equivalem a %f anos.\n" diz à função para pular duas linhas, colocar um inteiro na tela, 
colocar a mensagem " dias equivalem a ", colocar um valor float na tela, colocar a 
mensagem " anos." e pular outra linha. Os outros parâmetros são as variáveis, Dias e Anos, 
das quais devem ser lidos os valores do inteiro e do float, respectivamente. 
 
AUTO AVALIAÇÃO 
1 - Veja como você está. O que faz o seguinte programa? 
#include <stdio.h> 
int main() 
{ 
int x; 
scanf("%d",&x); 
printf("%d",x); 
return(0); 
} 
2 - Compile e execute os programas desta seção. 
 
 
Introdução às Funções 
 
Uma função é um bloco de código de programa que pode ser usado diversas vezes em 
sua execução. O uso de funções permite que o programa fique mais legível, mais bem 
estruturado. Um programa em C consiste, no fundo, de várias funções colocadas juntas. 
Abaixo o tipo mais simples de função: 
 #include <stdio.h> 
 
 int mensagem () /* Funcao simples: so imprime Ola! */ 
 { 
 printf ("Ola! "); 
 return(0); 
 } 
 
 int main () 
 { 
 mensagem(); 
 printf ("Eu estou vivo!\n"); 
 return(0); 
 } 
Este programa terá o mesmo resultado que o primeiro exemplo da seção anterior. O que 
ele faz é definir uma função mensagem() que coloca uma string na tela e retorna 0. Esta 
função é chamada a partir de main() , que, como já vimos, também é uma função. A 
diferença fundamental entre main e as demais funções do problema é que main é uma função 
especial, cujo diferencial é o fato de ser a primeira função a ser executada em um programa. 
4 
 
Argumentos 
Argumentos são as entradas que a função recebe. É através dos argumentos que 
passamos parâmetros para a função. Já vimos funções com argumentos. As funções printf() e 
scanf() são funções que recebem argumentos. Vamos ver um outro exemplo simples de 
função com argumentos: 
 #include <stdio.h> 
 
 int square (int x) /* Calcula o quadrado de x */ 
 { 
 printf ("O quadrado e %d",(x*x)); 
 return(0); 
 } 
 
 int main () 
 { 
 int num; 
 printf ("Entre com um numero: "); 
 scanf ("%d",&num); 
 printf ("\n\n"); 
 square(num); 
 return(0); 
 } 
Na definição de square() dizemos que a função receberá um argumento inteiro x. 
Quando fazemos a chamada à função, o inteiro num é passado como argumento. Há alguns 
pontos a observar. Em primeiro lugar temos de satisfazer aos requesitos da função quanto ao 
tipo e à quantidade de argumentos quando a chamamos. Apesar de existirem algumas 
conversões de tipo, que o C faz automaticamente, é importante ficar atento. Em segundo 
lugar, não é importante o nome da variável que se passa como argumento, ou seja, a variável 
num, ao ser passada como argumento para square() é copiada para a variável x. Dentro de 
square() trabalha-se apenas com x. Se mudarmos o valor de x dentro de square() o valor 
de num na função main() permanece inalterado. 
Vamos dar um exemplo de função de mais de uma variável. Repare que, neste caso, os 
argumentos são separados por vírgula e que deve-se explicitar o tipo de cada um dos 
argumentos, um a um. Note, também, que os argumentos passados para a função não 
necessitam ser todos variáveis porque mesmo sendo constantes serão copiados para a variável 
de entrada da função. 
 #include <stdio.h> 
 
 int mult (float a, float b,float c) /* Multiplica 3 numeros */ 
 { 
 printf ("%f",a*b*c); 
 return(0);

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando