Ir para conteúdo
Fórum Script Brasil

Farofa Pereira

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Farofa Pereira

Farofa Pereira's Achievements

0

Reputação

  1. Olá pessoal, estou fazendo um trabalho na faculdade, que precisa converter um programa em pascal para c. Meu programa tem dois arquivos em c... o Programa propriamente dito... e um arquivo .h com as funções que serã usadas... Estou tendo problemas na hora de passar os 3 arquivos (programa em pascal, dicionario de conversao, e programa convertido) como referencia, para as funções do segundo arquivo... Se alguém puder me dar uma mão, eu agradeço. Estou usando o W7 Ultimate, compilador de c DEV C++ 4.9.9.2 Segue abaixo os dois codigos. conversorPascalC.c /* ESSE PROGRAMA CONVERTE UM ARQUIVO EM PASCAL COM UM SWITCH E UMA ESTRUTURA DO TIPO WHILE PARA UM ARQUIVO EM C NÃO APAGAR O ARQUIVO GCC.EXE DA PASTA DO PROJETO. COMO NO FINAL ELE COMPILA E EXECUTA O O PROGRAMA CONVERTIDO ELE PRECISA DE COMPILADOR DE C. ESSE COMPILADOR FOI COPIADO DA PASTA C:\Dev-Cpp\bin DO COMPILADOR DEV-C++ VERSÃO 4.9.9.2. FIZ DIVERSOS TESTES PARA VER SE ELE DARIA CONTA DE COMPILAR VARIOS ARQUIVOS DIFERENTES NA LIGUAGEM C, RODANDO ELE POR LINHA DE COMANDO, NÃO TIVE NENHUM ERRO OU PROBLEMA EM RELACAO A ISSO, VARIOS CODIGOS EM C FORAM COMPILADOS E EXECUTADOS EXATAMENTE COMO SE TIVESSEM SIDO COMPILADOS POR DENTRO DO DEV */ #include <stdio.h> #include <stdlib.h> #include <windows.h> #include "./conversor.h" //MAIN void main() { FILE *base, *convertido, *dicionarioConversao; //APAGA POSSIVEIS ARQUIVOS CONVERTIDOS ANTIGOS apagaArquivosAntigos(); //ABERTURA DE ARQUIVOS abreArquivos(&base, &convertido, &dicionarioConversao); //POSICIONA TODOS OS ARQUIVOS NO COMEÇO posicionaComeco(&base, &convertido, &dicionarioConversao); //CONVERTE PROGRAMA PASCAL PARA C converte(&base, &convertido, &dicionarioConversao); //FECHA OS ARQUIVOS fechaArquivos(&base, &convertido, &dicionarioConversao); //COMPILA E EXECUTA O ARQUIVO CONVERTIDO EM C compilaExecuta(); } conversor.h /*============================================================================================== APAGA ARQUIVOS CONVERTIDOS ANTIGOS ==============================================================================================*/ void apagaArquivosAntigos() { system("cls"); printf("Apagando arquivos convertidos antigos!"); /*NÃO FOI USADO O remove() PARA REMOVER ARQUIVOS, PORQUE VAI SER MAIS DE UM ARQUIVO COM O COM O NOME DE CONVERTIDO, MAS ELE VAI TER NO MINIMO DOIS ARQUIVOS DIFERENTES: CONVERTIDO.C E CONVERTIDO.EXE. POR ISSO EU RESOLVI APAGAR OS ARQUIVOS COM A LINHA DE COMANDO DO DOS, COM OS PARAMETROS DEL CONVERTIDO.*, QUE IRA APAGAR TODOS OS ARQUIVOS CHAMADOS DE CONVERTIDO, MAS DE QUALQUER EXTENSÃO*/ system("del convertido.*"); printf("\nArquivos convertidos antigos foram apagados!" "\n\nPressione qualquer tecla para iniciar o programa..."); system("pause>>NULL"); } /*============================================================================================== ABRE ARQUIVOS ==============================================================================================*/ void abreArquivos(FILE *base, FILE *convertido, FILE *dicionarioConversao) { system("cls"); //ARQUIVO BASE if ((base = fopen("./base.pas", "rt")==NULL)) { printf("não foi possivel abrir o programa base\n"); system("pause>>NULL"); exit(1); } else printf("Arquivo base aberto com sucesso!\n"); //DICIONARIO DE CONVERSAO if ((dicionarioConversao = fopen("./dicionarioConversao.txt", "rt")==NULL)) { printf("não foi possivel abrir o dicionarioConversao\n"); system("pause>>NULL"); exit(1); } else printf("Arquivo dicionarioConversao aberto com sucesso!\n"); //ARQUIVO CONVERTIDO if ((convertido = fopen("./convertido.c","wt")==NULL)) { printf("Não foi possivel criar o programa convertido\n"); system("pause>>NULL"); exit(1); } else printf("Arquivo convertido criado com sucesso!\n"); printf("\nPressione qualquer tecla para iniciar a conversao..."); system("pause>>NULL"); } /*============================================================================================== //POSICIONA TODOS OS ARQUIVOS NO COMEÇO ==============================================================================================*/ void posicionaComeco(FILE *base, FILE *convertido, FILE *dicionarioConversao) { system("cls"); rewind(base); rewind(convertido); rewind(dicionarioConversao); printf("\n\nTodos os arquivos foram voltados ao inicio!" "\nPressione qualquer tecla para iniciar conversão!"); system("pause>>NULL"); } /*============================================================================================== //FECHA ARQUIVOS ==============================================================================================*/ void fechaArquivos(FILE *base, FILE *convertido, FILE *dicionarioConversao) { system("cls"); Sleep(1000); //ARQUIVO BASE fclose(base); printf("Arquivo Base fechado com sucesso!\n"); //DICIONARIO DE CONVERSAO fclose(dicionarioConversao); printf("Arquivo dicionarioConversao fechado com sucesso!\n"); //ARQUIVO CONVERTIDO fclose(convertido); printf("Arquivo convertido fechado com sucesso!\n"); printf("\n\nPressione qualquer tecla para iniciar compilação do programa convertido!"); system("pause>>NULL"); } /*============================================================================================== //CONVERTE ==============================================================================================*/ void converte(FILE *base, FILE *convertido, FILE *dicionarioConversao) { //CONVERTE printf("\nO programa foi convertido com sucesso!"); printf("\n\nPressione qualquer tecla para iniciar a compilacao do programa em C..."); system("Pause>>NULL"); } /*============================================================================================== //COMPILA E EXECUTA O PROGRAMA CONVERTIDO EM C ==============================================================================================*/ void compilaExecuta() { FILE *teste; system("cls"); system("pause>>NULL"); printf("Compilando o arquivo convertido!"); system("start ./gcc.exe ./convertido -o ./convertido"); if ((teste = fopen("./convertido.exe" , "rb")) != NULL) //EXISTE O ARQUIVO CONVERTIDO.EXE { printf("\n\nPressione qualquer tecla para rodar o arquivo convertido"); system("pause>>NULL"); system("start ./convertido.exe"); } else //NÃO EXISTE O ARQUIVO CONVERTIDO.EXE printf("A Compilação deu erro verifique o arquivo convertido!"); printf("\n\nPressione qualquer tecla para finalizar o programa..."); system("pause>>NULL"); } Obrigado
×
×
  • Criar Novo...