ANALIZADOR DE CONSTANTES MINI-BASIC
Enviado por ShadowNK • 17 de Febrero de 2019 • Apuntes • 2.349 Palabras (10 Páginas) • 103 Visitas
ESCUELA POLITÉCNICA NACIONAL
Facultad de Ingeniería en Sistemas y de Computación
Materia: Compiladores y Lenguajes
Código: SIC-424
Grupo: GR2
Tema: “Informe del Primer Bimestre”
Constantes Minibasic
Grupo de Trabajo Número 3
Integrantes:
Anatoa Erika
Chicaiza Nelson
Cisneros Evelyn
Huacho Robinson
Moreano Ana
Oña Katherine
Vernaza Marlon
Villalta Luis
Fecha de Entrega: 26 de Enero del 2016
Período Lectivo: Septiembre/2015 - Febrero/2016
ANALIZADOR DE CONSTANTES MINI-BASIC
INTRODUCCIÓN:
El analizador de constantes Mini-Basic nos permite realizar un análisis léxico de una constante o de una expresión Mini-Basic, para posteriormente determinar si esta expresión es válida y cumple con el estándar predeterminado.
OBJETIVOS:
- Analizar la estructura básica de una instrucción Mini-Basic.
- Validar si la sentencia ingresada es válida o no.
MARCO TEÓRICO
Llamamos cadena de caracteres a los textos usados como datos en nuestros programas, se les dice cadena de caracteres, porque los caracteres usados se colocan uno detrás del otro formando frases.
El tipo de dato string nos permite declarar variables para almacenar un texto, hasta un máximo de 255 caracteres. Se puede definir entre corchetes la cantidad de caracteres que se desea usar. Cuando no se coloca la cantidad de caracteres, entonces el compilador asume que se usará una cantidad de 255 caracteres como máximo.
Si queremos modificar un determinado carácter, accedemos al carácter indicando su posición, la posición debe ser de tipo entero excepto int64 y qword.
La cantidad de bytes que ocupa en memoria una variable de tipo string está determinado por la cantidad de caracteres que se declara al momento de definir la variable, más un primer carácter adicional que se usa para determinar la cantidad de caracteres que se colocarán en la variable. Si se declara una variable como string[30], ocupará en memoria 31 bytes. El carácter adicional se coloca en la posición o índice 0 de la cadena de caracteres. Para saber la cantidad de caracteres colocados en la variable de tipo string, se debe acceder al carácter que se encuentra en la posición 0 de la variable (cad[0]). Como este byte adicional es interpretado como un carácter entonces se necesita el uso de la función ord.
Verificar que tipo de caracteres tiene una cadena ingresada
Hacer un programa en C que verifique cuantos valores están ingresado en una cadena y que tipo de variables están siendo ingresadas.
Solución:
Tomado en cuenta que la cadena va a tener signos, números, letras, espacios, punto y punto y coma se genera un algoritmo que vaya recorriendo la cadena de calor en valor y verificando que tipo de valor se incrementa en una variable específica, para saber cuántos hay de este espécimen.
Seudocódigo de Solución del Problema:
Inicio
Declaramos las variables
Definimos la matriz con todos los estados de la tabla de transición.
Ingresamos la cadena.
Analizamos el primer elemento de la cadena si es – la entrada va a ser igual a 4 caso contrario seguirá siendo 0
Mientras cadena[i]!=\0 se analiza la cadena
Si cadena [i]!= ., E, -
Si cadena [i] = digito
Entonces
El estado de aceptación = 0
La función de transición = al valor de la tabla dada la celda según la entrada y el estado de aceptación
Si la función de transición \0 = error
Caso contrario
La entrada = función de transición
Si no es un digito
Entonces
Se analiza el ., E, -
Si es un punto el estado de aceptación = 2
La función de transición = al valor de la tabla dada la celda según la entrada y el estado de aceptación
Si la función de transición \0 = error
Caso contrario
La entrada = función de transición
Si es la E el estado de aceptación = 1
La función de transición = al valor de la tabla dada la celda según la entrada y el estado de aceptación
Si la función de transición \0 = error
Caso contrario
La entrada = función de transición
Caso contrario
La entrada = función de transición
Si es la E el estado de aceptación = 3
La función de transición = al valor de la tabla dada la celda según la entrada y el estado de aceptación
Si la función de transición \0 = error
Caso contrario
La entrada = función de transición
Si no hay error la cadena es correcta
Caso contrario nos muestra un mensaje de error
CODIGO:
#include
int main() {
int l=0,i,j, intControl=10, intTope=0;
char chrDigitos[10]={0,1,2,3,4,5,6,7,8,9} ;
char chrSigno[2]={'+','-'} ;
char VN[15]; //arreglo de Valores Numerico
char NI[15]; //arreglo de caracteres ingresados
char Simbols[10]; //arreglo de simbolos transliterados
int intNumeroDeCaracteres=0; //intNumeroDeCaracteres Ingresados
int SN[10]; //SC-->arreglo de valores numericos
printf("INGRESE UNA CADENA\n");//LA CADENA INGRESADA DEBE SER DE UN MAXIMO DE 10 CARACTERES
scanf("%s", NI);
while(NI[l++]!= '\0'){
...