Estamos começando a correção do EP1.
Os critério usados estão nesta página: http://www.ime.usp.br/~jose/mac122/ep1/criterios.html.
É importante você lerem esses critérios antes da entrega do EP 2.
Zé Augusto
Olá,Zé Augusto
Lendo a orientação para correção do EP1, percebi que o comando, aí indicado, para compilação no LINUX (gcc -Wall -ansi -pedantic -O2 ep1.c -o ep1. ) é diferente do que eu usei (gcc -Wall --ansi --pedantic -O ep1.c -o ep1. ), que está indicado no site do curso em : Programação / Informações Gerais / Compilador da Linguagem C / Usuários LINUX. Será que pode dar problema?
Eliane Pinheiro
O que o -O faz é o compilador otimizar o código gerado. O compilador tenta gerar um executável mais esperto que rode mais rápido.
O nosso interesse no -O não é esse. Com o -O aparecem warnings de variáveis sendo usadas sem inicialização, e isso é importante para corrigir erros no programa.
Não acredito que dê diferença entre -O e -O2 no sentido que você está perguntando.
Zé Augusto
O nosso interesse no -O não é esse. Com o -O aparecem warnings de variáveis sendo usadas sem inicialização, e isso é importante para corrigir erros no programa.
Não acredito que dê diferença entre -O e -O2 no sentido que você está perguntando.
Zé Augusto
Tenho uma dúvida nesse critério:
Nesse caso, vocês estão se referindo a quem apenas colocou os includes, mas não entregou o CriaImagem.c junto com o código, ou não é recomendável nunca usar isso?
- (CriaImagem.c: No such file or directory) Resulta de um #include "CriaImagem.c". Avisar para não fazer assim e sim incluir o código da função no programa. Corrigir e não descontar nada.
Nesse caso, vocês estão se referindo a quem apenas colocou os includes, mas não entregou o CriaImagem.c junto com o código, ou não é recomendável nunca usar isso?
Não é usual usar includes com arquivos fonte.
O que se costuma fazer é:
1. Colocar protótipos de funções num ou mais arquivos com extensões .h
2. Colocar códigos de funções (fora o main) num ou mais arquivos com extensões .c
3. Colocar o código do main num arquivo com extensão .c
No Dev-C++ isso pode ser feito escolhendo
Arquivo -> Novo -> Projeto...
Na orelha "Basic" escolher "Console Application".
Em "Opções do Projeto" escolher "Projeto C" e um nome.
Uma vez aberto o projeto, clique em
Projeto -> Novo arquivo
ou
Projeto -> Adicionar ao Projeto
para colocar arquivos considerados no projeto.
Por exemplos, adicionando ao projeto os três arquivos abaixo, durante a compilação o código das funções é incluido automaticamente no arquivo executado criado.
No Linux, não é necessário a criação de "Projeto" e basta executar o comando abaixo para criar o executável:
Zé Augusto
------------------------------------------------------------
Arquivo principal.c
-------------------------------------------------------------
Arquivo fatorial.h
------------------------------------------------------------
Arquivo fatorial.c
--------------------------------------------------------------
O que se costuma fazer é:
1. Colocar protótipos de funções num ou mais arquivos com extensões .h
2. Colocar códigos de funções (fora o main) num ou mais arquivos com extensões .c
3. Colocar o código do main num arquivo com extensão .c
No Dev-C++ isso pode ser feito escolhendo
Arquivo -> Novo -> Projeto...
Na orelha "Basic" escolher "Console Application".
Em "Opções do Projeto" escolher "Projeto C" e um nome.
Uma vez aberto o projeto, clique em
Projeto -> Novo arquivo
ou
Projeto -> Adicionar ao Projeto
para colocar arquivos considerados no projeto.
Por exemplos, adicionando ao projeto os três arquivos abaixo, durante a compilação o código das funções é incluido automaticamente no arquivo executado criado.
No Linux, não é necessário a criação de "Projeto" e basta executar o comando abaixo para criar o executável:
gcc -Wall -ansi -pedantic -O2 fatorial.c principal.c -o principalSe vocês usarem algum desses esquemas, precisa entregar, por exemplos, os arquivos principal.c, fatorial.h e fatorial.c.
Zé Augusto
------------------------------------------------------------
Arquivo principal.c
-------------------------------------------------------------
#include <stdio.h>------------------------------------------------------------
#include <stdlib.h>
#include "fatorial.h"
int main(int argc, char *argv[])
{
int n;
printf("Digite um inteiro nao-negativo: ");
scanf("%d", &n);
printf("%d fatorial = %d\n", n, fat(n));
system("PAUSE");
return 0;
}
Arquivo fatorial.h
------------------------------------------------------------
/* Prototipos de funcoes */-------------------------------------------------------------
/* Determina o fatorial de n >= 0 */
int fat(int n);
Arquivo fatorial.c
--------------------------------------------------------------
/* Codigos das funcoes */
/* Determina o fatorial de n >= 0 */
int fat(int n)
{
if (n <= 1)
return 1;
else
return n*fat(n-1);
}
Obrigado!
Já vou organizar o EP2 dessa maneira.
Já vou organizar o EP2 dessa maneira.
Opa, esqueci de perguntar, e não dá mais para editar...
As estructures geralmente são declaradas no .c ou no .h ?
As estructures geralmente são declaradas no .c ou no .h ?
A definição da estrutura deve ir no .h.
Todo arquivo com código em C que usa a estrutura deve ter o
#include "arquivo_com_a_definicao_da_estrutura.h"
Zé Augusto
Todo arquivo com código em C que usa a estrutura deve ter o
#include "arquivo_com_a_definicao_da_estrutura.h"
Zé Augusto