Trabajo de lenguajes de programación
Enviado por kevincencio • 8 de Septiembre de 2023 • Trabajo • 1.883 Palabras (8 Páginas) • 55 Visitas
TRABAJO DE LENGUAJES DE PROGRAMACION
Nombre: Kevin Sánchez
Rut: 20.776.372-1
índice
1.
índice 2
2. Introducción 3
3. Carta Gantt 4
4. Sintaxis mediante BNF (función 1) 5
5. Tabla hash (función 2) 6
6. Operación con conjuntos potencia (función 3) 9
7. Matriz triangular T (función 4) 13
8. Wallis (función 5) 15
9. Conclusión 18
10. Referencias 19
11. Anexos 20
Introducción
En este trabajo voy a implementar los conocimientos aprendidos en este semestre en la asignatura de lenguajes de programación, tanto teóricamente como en código, buscando dar solución a los problemas dados, buscando información respecto a los temas vistos, siendo capaz de comprender, crear y modificar un código funcional que me permita resolver todos los problemas dados para este trabajo
Carta Gantt
[pic 1]
Sintaxis mediante BNF (función 1)
Se requería de una función que utilizará reglas de bnf, que son reglas gramáticas que deben seguirse para un uso correcto y eficiente del código, que en este caso permitían el uso de letras y números en una secuencia
<S> ::= <D> | <D> <E>| <E> utilizando lo aprendido en clases decidí utilizar un string
<E> ::= <L> | <L> <S> donde guardar la información escrita por teclado, luego
<D> ::= 0 | 1 | 2 | … | 9 usando el comando cin>> se restringe la información
<L> ::= a | b | c | … | z guardada a una sola secuencia que es lo que se pedía
cómo se puede ver aquí en el código se puede ver como al ingresar la secuencia esta se guarda y es capaz de imprimirla sin problemas
string secuencia;
cout<<"ingrese la secuencia: "<<endl;
cin>>secuencia;
cout<<endl<<"la secuencia ingresada fue: "<<secuencia<<endl<<endl;
output:
[pic 2]
Se identifica correctamente la secuencia en los resultados obtenidos
Tabla hash (función 2)
En esta función se requería utilizar arreglos asociativos con el fin de crear una tabla hash para poder acceder al contenido utilizando una clave y no tener que recorrer todo el arreglo buscando algo en específico, utilizando lo visto en clase durante la unidad 3 y viendo ejemplos de distintos tipos de tablas hash en stock overflow y otras páginas he creado una tabla hash utilizando la librería <list> la cual permite crear arreglos con listas en cada índice con el cual se pueden guardar distintos tipos de valores, además que en caso de colisión se crea una lista lineal simple para que no se pierdan datos. Se debe crear un class donde se guardará la información del tamaño de la tabla y la lista de valores a guardar.
Luego se deben crear todas las funciones que utilicen el class, se dejan en el apartado publico para facilitar su uso en todo el código, creo las ¿funciones getvalor(int a) para que retorne el valor del elemento que se busca, la función insertar(int clave, int valor) que como su nombre indica inserta el valor en la tabla utilizando la clave para saber en qué elemento ira, las funciones primo() y getprimo() para obtener un numero primo que se usa en la creación de la tabla hash, la función hash que usando una clave se genera un índice con el cual se intenta acceder a un elemento vacío, y la función ver() que despliega toda la tabla hash[pic 3]
luego se crean funciones aparte donde crear la tabla y buscar un dato utilizando la clave.[pic 4]
La función Creartabla(TablaHash A) permite el ingreso de datos ingresados mediante teclado, utilizando el mismo valor ingresado como clave, luego la función BuscarDato(TablaHash A) utilizando la clave y algunos auxiliares se busca si se encuentra el dato y en que posición de la tabla esta, en caso de que no este se imprime que no se encuentra
Se genera una tabla hash de 100 elementos para evitar colisión, aunque de todas maneras hay, aunque con la implementación de la lista lineal los datos no se pierden ni ocurre ningún error, como se puede ver no hay ningún error al ingresar datos o creando la tabla.[pic 5]
[pic 6]
Como se puede ver en la imagen anterior al buscar un elemento utilizando la clave (el mismo numero a buscar) da como resultado que el elemento si existe y que se encuentra en la posición 50 de la tabla y viendo la imagen de mas arriba se puede comprobar que esto es correcto.
Operación con conjuntos potencia (función 3)
Se pide crear un conjunto potencia, el cual consiste en un conjunto compuesto de todos los subconjuntos de un conjunto dado, incluyendo el conjunto vacío, como no se especifica que conjunto, decidí usar el conjunto {1, 2, 3} y el conjunto {4, 2, 3} luego viendo la documentación de la unidad 3 y algo de ayuda de algunas páginas de Internet implementé una función capaz de crear conjuntos potencia.[pic 7]
...