Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Capitulo 06 Programacion QT Linux
Capitulo 06 Programacion QT Linux
Sesión N° 6
Programación en C++ con las librerías QT sobre entorno Linux
TEMAS
✓ Pilas y Colas
✓ Lectura y escritura de archivos
Programación en C++ con las librerías QT sobre entorno Linux
PILAS
Es una lista de datos en la cual los datos están almacenados uno encima del otro, y por
lo tanto la lectura siempre será por la parte superior, es decir se leerán los datos de
forma inversa a como fueron registrados
Programación en C++ con las librerías QT sobre entorno Linux
PILAS
Con este tipo de estructura de datos, solo se puede realizar dos operaciones: push
(insertar un dato) o pop (leer el dato que está en la parte superior)
Programación en C++ con las librerías QT sobre entorno Linux
PILAS
Se hace uso de una estructura de datos, deberá tener un campo especial de tipo
puntero del mismo tipo de la estructura, este campo permitirá hacer el enlace hacia el
siguiente elemento de la pila.
Nodo *siguiente;
};
Programación en C++ con las librerías QT sobre entorno Linux
PILAS
Para crear una pila se necesita un puntero pila inicializado como nulo y un puntero
nuevo nodo, para quien se deberá solicitar memoria al sistema operativo
*pila
pila
Programación en C++ con las librerías QT sobre entorno Linux
PILAS
Programación en C++ con las librerías QT sobre entorno Linux
COLAS
Es una lista de datos en la cual las operaciones de inserción y extracción se realizan en
los lados opuestos de la cola. A diferencia de las pilas, el primer elemento que ingresa es
el primer elemento que sale.
struct Nodo {
int valor;
Nodo *siguiente;
};
Programación en C++ con las librerías QT sobre entorno Linux
COLAS
En el caso de las colas, se necesita dos punteros para almacenar el inicio y fin de la cola
y un puntero nuevo para asignar el valor que se desea grabar.
nuevo->valor = 20;
Nodo *inicio = NULL;
nuevo->siguiente = NULL;
Nodo *fin = NULL;
inicio = nuevo;
Nodo *nuevo = new Nodo();
fin = nuevo;
Programación en C++ con las librerías QT sobre entorno Linux
COLAS
Para agregar el segundo elemento, solo se necesita asignar la nueva dirección al puntero
final.
MANEJO DE ARCHIVOS
Los archivos son estructura de datos, cuya característica principal es que van a perdurar
en el tiempo, luego de finalizar la ejecución del programa; esto es posible porque no son
grabados en la memoria principal, sino en el disco duro.
Programación en C++ con las librerías QT sobre entorno Linux
ARCHIVOS DE TEXTO
Son estructura de datos que están separados por un saldo de línea. Para visualizar el
contenido no requiere realizar ninguna transformación del dato.
Para la manipulación se requiere incluir el fichero de cabecera <fstream>, que expone
los siguientes tipos de datos:
✓ ifstream entrada; #include <fstream>
✓ ofstream salida; {
ARCHIVOS DE TEXTO
Apertura de Archivos. se puede hacer pasando parámetros al declarar la variable de
estos tipos, o bien declarando la variable sin parámetros y luego llamando al método
open(). Vamos a abrir cada uno de una manera distinta, para que veas ambas
#include <fstream>
int main()
{
ifstream nombre_lógico_entrada ("fichero.txt", ifstream::in);
ofstream nombre_lógico_salida;
nombre_lógico_salida.open("fichero2.txt", ofstream::out);
}
Programación en C++ con las librerías QT sobre entorno Linux
ARCHIVOS DE TEXTO
Parámetros de apertura de archivos:
✓ app (append) Para añadir al final del fichero
✓ ate (at end) Para añadir al final del fichero
✓ binary (binary) Se abre el fichero como fichero binario
✓ in (input) El fichero se abre para lectura.
✓ out (output) El fichero se abre para escritura
✓ trunc (truncate) Si el fichero existe, se ignora su contenido y se empieza como si
estuviera vacío
Programación en C++ con las librerías QT sobre entorno Linux
ARCHIVOS DE TEXTO
#include <fstream>
int main()
{
ifstream nombre_lógico_entrada ("fichero.txt", ifstream::in);
if (!nombre_lógico_entrada){
cout<<“Error al abrir archivo”<<endl;
return;
}
nombre_lógico_entrada<<10;
nombre_lógico_entrada<<“Hola”;
nombre_lógico_entrada.close();
}