Nuevas NORMAS para el foro
Bienvenido(a),
Visitante
. Favor de
ingresar
o
registrarse
.
¿Perdiste tu
email de activación?
- Agosto 21, 2008, 08:02:07
Boton Buscar
Visita:
Articulos
-
Juegos Gratis
-
Da Foros
Comunidad Underground Hispana
|
Programacion
|
Programación
|
Carbide C/C#/C++
| Tema:
programa ke lee palabras reservadas de pascal
0 Usuarios y 1 Visitante están viendo este tema.
« anterior
próximo »
Páginas:
[
1
]
Autor
Tema: programa ke lee palabras reservadas de pascal (Leído 506 veces)
wiker
Recien Llegado
Desconectado
Mensajes: 14
programa ke lee palabras reservadas de pascal
«
en:
Octubre 18, 2007, 06:29:24 »
bueno a ki les dejo el codigo de un programa que lee palabras reservadas de pascal y devuelve el numero de veces que se repite una palabra reservada de un archivo, se aceptan sugerencias para ir mejorando este programa.......
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <iostream.h>
#include <ctype.h>
enum PALid{
P_AND,
P_NINGUNO,
P_BEGIN,
P_END,
P_ARRAY,
P_MOD,
P_INTERFACE,
P_PROGRAM,
P_LABEL,
P_VAR,
P_OBJECT,
P_PACKED,
P_RECORD,
P_REPEAT,
P_SELF,
P_THEN,
P_TO,
P_TYPE,
P_IF,
P_ELSE,
P_STRING,
};
static struct
{
char *codigo;
enum PALid id;
}
lista_dpalabras[]=
{
{"Else", P_ELSE},
{"If", P_IF},
{"And", P_AND},
{"Object", P_OBJECT},
{"Packed", P_PACKED},
{"Record", P_RECORD},
{"Repeat", P_REPEAT},
{"Self", P_SELF},
{"String", P_STRING},
{"Then", P_THEN},
{"To", P_TO},
{"Type", P_TYPE},
{"Begin", P_BEGIN},
{"End", P_END},
{"Array", P_ARRAY},
{"Mod", P_MOD},
{"Interface", P_INTERFACE},
{"Program", P_PROGRAM},
{"Label", P_LABEL},
{"Var", P_VAR},
{NULL, P_NINGUNO}
};
char texto[128];
int itexto=0, c;
char nomArchi[13];
int cif=-1, cels=0, cvar=-1,cty=0,cto=0,cthe=0,cstri=0,celf=0,crep=0;
int crek=0, cpro=0,cpak=0,cob=0,cmod=0,clab=0,cfas=0,cen=0;
int carr=0, cand=0, cb=0;
int main(){
clrscr();
int i;
char etiqueta[100];
FILE *archivo;
enum PALid codigo;
clrscr();
printf("\nIntroduce nombre del archivo: ");
cin.getline(nomArchi,13);
archivo=fopen(nomArchi, "r"); /* Abre el archivo para lectura */
if (archivo == NULL)
{
printf("El archivo no existe...\n");
exit(0);
}
else {
do
{
c=fscanf(archivo,"%s",etiqueta);
if(c!=EOF){
codigo=P_NINGUNO;
for(i=0; lista_dpalabras
.codigo!=NULL; i++)
{
if(stricmp(etiqueta,lista_dpalabras
.codigo)==0)
{
codigo=lista_dpalabras
.id;
break;
}
}
switch (codigo)
{
case P_NINGUNO:
break;
case P_BEGIN:
cb++;
break;
case P_END:
cen++;
break;
case P_ARRAY:
carr++;
break;
case P_MOD:
cmod++;
break;
case P_INTERFACE:
cfas++;
break;
case P_PROGRAM:
cpro++;
break;
case P_LABEL:
clab++;
break;
case P_VAR:
cvar++;
break;
case P_AND:
cand++;
break;
case P_IF:
cif++;
break;
case P_OBJECT:
cob++;
break;
case P_PACKED:
cpak++;
break;
case P_ELSE:
cels++;
break;
case P_RECORD:
crek++;
break;
case P_REPEAT:
crep++;
break;
case P_SELF:
celf++;
break;
case P_STRING:
cstri++;
break;
case P_THEN:
cthe++;
break;
case P_TO:
cto++;
break;
case P_TYPE:
cty++;
break;
}
}
} while(c!=EOF);
}
printf("\n And %d",cand);
printf("\n Array %d",carr);
printf("\n Begin %d",cb);
printf("\n End %d",cen);
printf("\n Interfce %d",cfas);
printf("\n Label %d",clab);
printf("\n Mod %d",cmod);
printf("\n If %d",cif);
printf("\n Object %d",cob);
printf("\n Else %d",cels);
printf("\n Packet %d",cpak);
printf("\n Program %d",cpro);
printf("\n Record %d",crek);
printf("\n Repeat %d",crep);
printf("\n Self %d",celf);
printf("\n String %d",cstri);
printf("\n Then %d",cthe);
printf("\n To %d",cto);
printf("\n Type %d",cty);
printf("\n Var %d",cvar);
fclose(archivo);
getch();
return 0;
}
En línea
FreakMind
Habitual
Desconectado
Mensajes: 181
Re: programa ke lee palabras reservadas de pascal
«
Respuesta #1 en:
Octubre 20, 2007, 04:38:44 »
Buenas
Me parece que quedaria mejor algo como esto... (se aceptan criticas)
PD: Cabe la aclaracion de que no lo probe asi que lo mas probable es que no funcione... es solo una idea
Código:
#include <stdio.h>
#include <string.h>
struct{
char *codigo;
int count;
} words[]= {{"Else", 0}, {"If", 0}, {"And", 0}, {"Object", 0}, {"Packed", 0},
{"Record", 0}, {"Repeat", 0}, {"Self", 0}, {"String", 0}, {"Then", 0},
{"To", 0}, {"Type", 0}, {"Begin", 0}, {"End", 0}, {"Array", 0}, {"Mod", 0},
{"Interface", 0}, {"Program", 0}, {"Label", 0}, {"Var", 0}, {NULL, 0} };
int main(int argc, char *argv[])
{
char line[100];
FILE *f;
int i, j;
if(argc != 2){
printf("Error de parametros\n");
return 1;
}
if((f = fopen(argv[1], "r")) == NULL){
printf("Error al abrir archivo %s\n", argv[1]);
return 1;
}
while(!feof(f)){
fgets(line, 100, f);
for(i = 0; i < strlen(line); ++i){
for(j = 0; words[j].codigo; ++j)
if(strncmp(line + i, words[j].codigo , strlen(words[j].codigo)) == 0)
words[j].count++;
}
}
for(i = 0; words[i].codigo; ++i){
printf("%s se repitio %d\n", words[i].codigo, words[i].count);
}
return 0;
}
En línea
Connoisseurs of C semantics find C++ inferior to ++C
Páginas:
[
1
]
Comunidad Underground Hispana
|
Programacion
|
Programación
|
Carbide C/C#/C++
| Tema:
programa ke lee palabras reservadas de pascal
« anterior
próximo »
Ir a:
Por favor selecciona un destino:
-----------------------------
Foros De Consulta General
-----------------------------
=> Novedades
=> Dudas, Comentarios Y Sugerencias
=> Top 100
=> Off-Topic
=> Revista E-Zine
===> Noticias
-----------------------------
Phreaking, Hacking y Seguridad
-----------------------------
=> HacK GeneraL
===> Ingenieria Inversa
===> Encriptacion, Cryptografia
===> TV HACK
===> Seguridad
===> Cursos y Ezines
=====> Trucos Internet
=====> Textos Hacking
===> Defacing
=> Phreaking
===> Moviles
=> Bug y Exploits
-----------------------------
Hack Novato
-----------------------------
=> Hack para newbies
=> Todo Messenger
=> Troyanos y virus
-----------------------------
Sistemas Operativos
-----------------------------
=> Windows y otros sistemas operativos no libres
===> Problemas Tecnicos Windows
=> Sistemas operativos libres.
===> GNU/Linux
===> Manuales y Tutoriales
===> Descargas
-----------------------------
Programacion
-----------------------------
=> Programación
===> Programación Basica
===> Otros Lenguajes
===> Visual Basic y Net
===> ASM
===> Programacion Shell
===> Perl
===> Carbide C/C#/C++
===> Batch
===> SQL
=> Programacion para webmasters
===> Consultas
===> Php
===> Html
===> Java - Java Script
===> Php Nuke
===> Scripts Pre-Fabricados
===> Mysql
===> CSS y Diseño Web
-----------------------------
Artes Graficas
-----------------------------
=> Diseño Grafico
===> Battle Arts
===> Flash
===> Tutoriales
===> Galerías
===> Software
-----------------------------
Area Tecnica
-----------------------------
=> Networking & Wireless
=> Overclocking, Refrigeracion y demas
=> Hardware
===> Cursos Y manuales
=> Electronica Y Robotica
-----------------------------
Programas
-----------------------------
=> Software
===> Configuraciones de software
===> Pedidos de software
=> Cracks & Serialz
=> P2p, Bittorrent, Elinks
-----------------------------
Multimedia Y Divx
-----------------------------
=> Juegos PC Y Consolas
===> Dudas ayudas y comentarios de juegos
===> Pedidos de juegos
=> Mp3
=> Multimedia
=> Peliculas Divx
-----------------------------
Entretenimiento Y sitios de interes
-----------------------------
=> Juegos, Humor y Adultos. (Diversión)
===> Adultos
=> Paginas Webs Recomendadas
=> Videos
Powered by SMF 1.1.5
|
SMF © 2006-2007, Simple Machines LLC
Loading...