Upload
lamhanh
View
224
Download
0
Embed Size (px)
Citation preview
UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACIÓN ALGORITMOS Y PROGRAMACIÓN
GDAyP pág. 1
Laboratorio 5 Tema 7. Tipos de Datos Estructurados:
Arreglos, Registros y Archivos
PARTE 1. Arreglos Unidimensionales o Vectores
Un arreglo es una estructura de datos conformada por una sucesión de celdas, que permite almacenar en la memoria principal del computador un conjunto finito de elementos que tienen el mismo tipo de dato.
Para hacer referencia a cualquiera de las celdas del arreglo es necesario el nombre del arreglo y el valor de uno de los índices asignados al arreglo, esto permite tener acceso aleatorio.
Declaración
Un arreglo se declara de la siguiente manera:
Pseudocódigo C++
Arreglo <identificador> de <tipo de dato> [Li .. Ls]; <tipo de dato> <identificador>[tamaño];
En pseudocódigo Li y Ls representan los límites superior e inferior respectivamente. En C++ sólo se indica el tamaño del arreglo, ya que el límite inferior siempre es cero (0) y el límite superior es el tamaño menos uno (tamaño - 1).
Operaciones
Al igual que en pseudocódigo, C++ permite realizar la operación constructora y la selectora. En el siguiente ejemplo se puede ver cómo se aplican estas operaciones:
Pseudocódigo C++
//Se declara un arreglo de enteros
// y se aplica la operación constructora
Arreglo a de Entero[1..4] = {10, 15, 20, 25};
//Se cambia el valor de la segunda posición
//utilizando la operación selectora
a[2] = 14;
//Se muestran algunos valores utilizando
//la operación selectora
Escribir(a[2]);
Escribir(a[4]);
//Se declara un arreglo de enteros
// y se aplica la operación constructora
int a[4] = { 10, 15, 20, 25 };
// Se cambia el valor de la segunda posición
//utilizando la operación selectora
a[1] = 14;
//Se muestran algunos valores utilizando
//la operación selectora
cout << a[1] << endl;
cout << a[3] << endl;
Recorrido secuencial
Se utiliza cuando se necesita hacer una operación sobre todos los elementos del arreglo, para ello se utiliza una estructura de control iterativa (por lo general se utiliza un Para). Una de las operaciones que se
UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACIÓN ALGORITMOS Y PROGRAMACIÓN
GDAyP pág. 2
puede hacer al recorrer secuencialmente es leer los valores que se quieren almacenar en el arreglo. Esto se puede hacer de la siguiente manera:
Pseudocódigo C++
//Se declara el arreglo
Arreglo a de Entero[1..10];
//Se recorre para leer los valores
Para i=1 hasta 10 hacer
Escribir(“Introduzca el valor ”+i+“:”);
Leer(a[i]);
FinPara
//Se declara el arreglo
int a[10];
//Se recorre para leer los valores
for(int i=0; i < 10; i++){
cout << “Introduzca el valor ”<<i<<“:”;
cin >> a[i];
}
PARTE 2. Arreglos Bidimensionales o Matrices
Una matriz es un arreglo bidimensional. Para localizar o almacenar un valor en una matriz se deben especificar dos subíndices, uno para la fila y otro para la columna. Los arreglos pueden ser n-dimensionales, por lo tanto cuando se agrega una nueva dimensión se debe localizar cada posición utilizando un subíndice adicional.
Declaración
Una matriz se declara de la siguiente manera:
Pseudocódigo C++
Arreglo <identificador> de <tipo de dato> [Lifil..Lsfil ,Licol..Lscol]; <tipo de dato> <identificador>[n][m];
En pseudocódigo Li y Ls representan los límites superior e inferior, para las filas y para las columnas. En C++ sólo se indica la cantidad de filas y columnas, ya que el límite inferior para filas y columnas siempre es cero (0) y el límite superior es el cantidad menos uno (n-1 y m-1).
Operaciones
En el siguiente ejemplo se puede ver cómo se pueden inicializar y seleccionar los elementos en una matriz:
Pseudocódigo C++
//Se declara una matriz m de enteros
Arreglo m de Entero[1..2 , 1..3];
//Se inicializa la primera fila
m[1,1] = 0; m[1,2] = 1; m[1,2] = 3;
//Se inicializa la segunda fila
//Se declara una matriz m de enteros
int m[2][3];
//Se inicializa la primera fila
m[1][1] = 0; m[1][2] = 1; m[1][2] = 3;
//Se inicializa la segunda fila
UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACIÓN ALGORITMOS Y PROGRAMACIÓN
GDAyP pág. 3
m[2,1] = 4; m[2,2] = 2; m[2,2] = 8;
//Se cambia el valor de la fila 2 columna 1
m[2,1] = 3;
//Se toma un valor de la matriz y se asigna a
una variable
Entero a;
a = m[1,3];
m[2][1] = 4; m[2][2] = 2; m[2][2] = 8;
//Se cambia el valor de la fila 2 columna 1
m[2][1] = 3;
//Se toma un valor de la matriz y se asigna a
una variable
int a;
a = m[1][3];
Recorrido secuencial
Se utiliza cuando se necesita hacer una operación sobre todos los elementos de la matriz, para ello se utilizan dos estructuras iterativas anidadas (por lo general se utilizan dos Para). Una de las operaciones que se puede hacer al realizar un recorrido secuencial es leer los valores de la matriz. Esto se puede hacer de la siguiente manera:
Pseudocódigo
//Se declara la matriz de 10 filas y 5 columnas
Arreglo mat de Entero[1..10,1..5];
//Un PARA que recorre las 10 filas
Para i=1 hasta 10 hacer
//Un PARA que recorre las 5 columnas
Para j=1 hasta 5 hacer
Escribir(“Introduzca el valor ” + i + “,” + j + “:”);
Leer(mat[i,j]);
FinPara
FinPara
C++
//Se declara la matriz de 10 filas y 5 columnas
int mat[10][5];
//Un FOR que recorre las 10 filas
for(i=1; i<10; i++)
{ //Un FOR que recorre las 5 columnas
for(j=1; j<10; j++)
{
cout << “Introduzca el valor ” << i << “,” << j << “:”;
cin >> mat[i][j];
}
}
UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACIÓN ALGORITMOS Y PROGRAMACIÓN
GDAyP pág. 4
Pase de parámetros
Para pasar un arreglo como parámetro a una acción o función se puede hacer de la siguiente manera:
C++
//AL DEFINIR LA ACCIÓN O FUNCIÓN:
void proc(int arr[], int n){
//arr es el arreglo y n es el tamaño
//Cuerpo de la acción
}
//AL INVOCAR A LA ACCIÓN:
//se debe tener el arreglo declarado
int a[3];
//se invoca a la acción
proc(a,3);
Como se ve en el ejemplo anterior, los arreglos unidimensionales se pueden pasar como parámetro a una acción pasando como parámetro su tamaño. Sin embargo, con las herramientas vistas hasta el momento, al utilizar matrices se debe indicar la cantidad de columnas que posee la matriz. Por ejemplo:
C++
//AL DEFINIR LA ACCIÓN O FUNCIÓN:
void proc(int matriz[][4], int n){
//Cuerpo de la acción
}
//AL INVOCAR A LA ACCIÓN, se debe tener el arreglo declarado
int mat[3][4];
//se invoca a la acción
proc(mat,3);
Definición de tipos de dato
C++ permite la definición de nuevos tipos de datos con la palabra reservada typedef. Esto es útil cuando se quieren declarar varios arreglos o matrices del mismo tamaño. Por ejemplo:
C++
//Se declara el tipo de dato “numeros”
typedef int numeros[3];
//ahora se puede utilizar “numeros” como un tipo de dato y declarar variables
numeros a,b;
//se utilizan a y b como arreglos de enteros de 3 posiciones
a[0] = 3; a[1] = 5; a[2] = -4;
b[0] = -1; b[1] = a[2]; b[2] = 7;
UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACIÓN ALGORITMOS Y PROGRAMACIÓN
GDAyP pág. 5
PARTE 3. Registros
Un registro es una estructura de datos formado por un conjunto de elementos llamados campos, no necesariamente del mismo tipo y que permiten almacenar una serie de datos relacionados entre sí bajo un nombre común.
Declaración
Un registro se declara de la siguiente manera:
Pseudocódigo C++
Tipo Registro <identificador> =
<Tipo de dato>1 <Identificador>1;
<Tipo de dato>2 <Identificador>2;
...
<Tipo de dato>N <Identificador>N;
Fregistro;
struct <identificador> {
<tipo de dato>1 <Identificador>1;
<tipo de dato>2 <Identificador>2;
...
<tipo de dato>N <Identificador>N;
} ;
En el siguiente ejemplo se declara un registro y luego variables de ese tipo de registro:
Pseudocódigo C++
//Se declara un tipo registro
Tipo Registro Producto =
String nombre;
Entero cantidad;
Real precio;
Real peso;
Fregistro;
//Se declaran las variables de tipo producto
Producto prod1, prod2;
//Se declara un tipo registro
struct producto {
string nombre;
int cantidad;
float precio;
float peso;
};
//Se declaran las variables de tipo
producto
producto prod1, prod2;
Operaciones
A los registros se le pueden aplicar varias operaciones, como aplicar la operación constructora para inicializarlos o la operación selectora para cambiar los valores de los campos.
Utilizando el registro y las variables declaradas en ejemplo anterior, se pueden aplicar las siguientes operaciones:
UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACIÓN ALGORITMOS Y PROGRAMACIÓN
GDAyP pág. 6
Pseudocódigo y C++
//Se inicializa prod1 utilizando la operación constructora
prod1 = {“Cámara digital”, 5, 800.0, 0.5};
//Se inicializa prod2 utilizando la operación selectora para cada campo
prod2.nombre = “Impresora inalámbrica”;
prod2.cantidad = 2;
prod2.precio = 580.0;
prod2.peso = 7.0;
//Se incrementa el campo cantidad de prod1
prod1.cantidad = prod1.cantidad + 1;
Pase de parámetros
Para pasar un registro como parámetro a una acción o función se puede hacer de la siguiente manera:
C++
//AL DEFINIR LA ACCIÓN O FUNCIÓN:
void proc(producto p){
//p es el registro de tipo producto previamente declarado
//Cuerpo de la acción
}
//AL INVOCAR A LA ACCIÓN:
//se debe tener el arreglo declarado
producto p3;
//se invoca a la acción
proc(p3);
PARTE 4. Archivos
Un archivo es una secuencia de elementos del mismo tipo, que residen generalmente en memoria auxiliar. Los archivos son utilizados cuando se desea que los datos puedan recuperarse aún después de haber apagado la máquina y también cuando se manejan grandes volúmenes de información.
Declaración
Antes de empezar a utilizar un archivo se debe declarar una variable que haga referencia al archivo con el que se va a trabajar. A continuación se muestra como se puede hacer:
UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACIÓN ALGORITMOS Y PROGRAMACIÓN
GDAyP pág. 7
Pseudocódigo C++
//Declaración de dos archivos
Archivo archivoEntrada, archivoSalida;
//Inclusión de bibliotecas
#include <fstream>
using namespace std;
. . .
//Declaración de dos archivos
fstream archivoEntrada, archivoSalida;
Operaciones
Al trabajar con archivos secuenciales se pueden realizar diversas operaciones tales como:
1. Abrir el archivo: se debe hacer antes de hacer otras operaciones en le archivo.
2. Cerrar el archivo: se debe hacer cuando se termina de utilizar el archivo.
3. Verificar el fin del archivo (FDA o EOF).
4. Leer del archivo.
5. Escribir en el archivo.
A continuación se muestran ejemplos de estas operaciones utilizando los archivos declarados anteriormente.
Ejemplo de abrir archivos:
Pseudocódigo C++
//Abrir archivo de texto para lectura
AbrirArchivo(archivoEntrada,
“prueba1.txt”, Lectura y Texto);
//Abrir archivo de texto para escritura
AbrirArchivo(archivoSalida,
“prueba2.txt”, Escritura y Texto);
//Abrir archivo de texto para lectura
archivoEntrada.open(“prueba1.txt”, ios::in);
//Abrir archivo de texto para escritura
archivoSalida.open(“prueba2.txt”, ios::out);
Ejemplo de lectura de un archivo caracter por caracter (asumiendo que el archivo está abierto y es de lectura):
Pseudocódigo C++
//Se declara un caracter
Caracter c;
//Mientras no sea el fin del archivo
Mientras NO FDA(archivoEntrada)
//Se declara un caracter
char c;
//Mientras no sea el fin del archivo
while(!archivoEntrada .eof()){
UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACIÓN ALGORITMOS Y PROGRAMACIÓN
GDAyP pág. 8
//se lee una línea y se guarda en c
LeerArchivo(archivoEntrada, c);
//se muestra el caracter leído
Escribir(c);
Fmientras
//Se cierra el archivo
CerrarArchivo(archivoEntrada);
//se lee una línea y se guarda en c
archivoEntrada >> c;
//se muestra el caracter leído
cout << c;
}
//Se cierra el archivo
archivoEntrada.close();
Ejemplo de escritura en un archivo (asumiendo que el archivo está abierto y es de escritura):
Pseudocódigo C++
//Se declara un String y se inicializa
String cad;
cad = “segunda línea de escritura”;
//Se escribe la primera línea
EscribirArchivo(archivoSalida,“primera
escritura”);
//Se escribe la segunda línea
EscribirArchivo(archivoSalida, cad);
//Se cierra el archivo
CerrarArchivo(archivoSalida);
//Se declara un string y se inicializa
string cad;
cad = “segunda linea de escritura”;
//Se escribe la primera línea
archivoSalida << “primera escritura” << endl;
//Se escribe la segunda línea
archivoSalida << cad << endl;
//Se cierra el archivo
archivoSalida.close();
UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACIÓN ALGORITMOS Y PROGRAMACIÓN
GDAyP pág. 9
1
5 2
9 6 3
13 10 7 4
14 11 8
15 12
16
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
EJERCICIOS A PROGRAMAR PARA EL LABORATORIO 5
En este laboratorio debes desarrollar programas capaces usar acciones, funciones y pase de parámetros y tipos de datos estructurados (arreglos, registros y archivos), utilizando lenguaje C++ y creando programas que compilen y corran en el entorno Linux.
EJERCICIOS: todos deben agregarse en el mismo archivo .cpp, el cual debe compilar
NOTA: en todos los ejercicios debe solicitarse los valores de entrada al usuario, leerlos, realizar las validaciones necesarias en los datos de entrada y mostrar resultados del procedimiento. Todos deben agregarse en el mismo archivo .cpp
1. Inicialice un arreglo A con n=12 números enteros suministrados por el usuario con valores
entre 1 y 10.
1.1. Escriba un algoritmo que guarde en un arreglo B la secuencia de sumas parciales de los factoriales (función fact) de los valores de A.
B = ( fact( S[1] ), fact( S[1]+S[2] ), fact( S[1]+S[2]+S[3] ), fact( S[1]+S[2]+S[3] +S[4] ), ... )
1.2. Calcule y muestre la media de los valores del arreglo B.
1.3. Muestre el mayor valor y el menor valor del arreglo B, indicando también la posición en donde se encuentra.
1.4. Muestre los divisores de cada valor guardado en el arreglo A.
2. Dada una matriz de dimensión NxN, cuyos elementos son números enteros, construya un programa que imprima los valores de las diagonales secundarias de la matriz según la distribución en forma de rombo y espacios que observa en el siguiente ejemplo:
Entrada Salida del programa
Los valores de la matriz Entrada deben ser llenados mediante un ciclo.
3. Dado un arreglo A de enteros de N posiciones, construya un algoritmo para crear arreglos de apuntadores a las posiciones de A. Se desea generar el arreglo apuntador para cada uno de los siguientes casos:
3.1. Orden descendente utilizando el Método de Selección.
3.2. Orden ascendente utilizando el Método de Burbuja.
UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACIÓN ALGORITMOS Y PROGRAMACIÓN
GDAyP pág. 10
4. Cree un archivo de texto, llamado datosEj4.txt y escriba en él “ a los últimos ”, guarde y cierre el archivo.
Utilice las operaciones de manipulación de archivos de C++ para agregar al inicio de
datosEj4.txt la expresión “Ya nos acercamos” y agregarle al final la expresión “temas de la
materia”. Debe modificar el contenido del archivo sin borrar el contenido ya existente.
5. Dada un archivo llamado gente.bin que contiene: nombre, cédula, sexo y edad de un grupo de por lo menos 10 personas, se desea generar otro archivo llamado menores.bin que
contenga sólo la información de las personas menores en edad que la primera persona del archivo. La cédula de identidad no deben repetirse en el archivo gente.bin, ya que es un
dato de identificación único a cada persona.
La estructura de datos que almacena la información de cada persona es la siguiente:
Tipo Registro Persona =
String Nombre;
Entero Cédula;
Entero Edad;
Carácter Sexo; // sexo ‘M’ ó ‘F’, correspondiente a masculino y femenino
Fregistro;
5.1. Mostrar del archivo gente.bin todas las personas que están en un rango de edad
suministrado por el usuario.
5.2. Ordenar el archivo gente.bin ascendentemente por número de cédula. Puede utilizar
estructuras auxiliares como un arreglo de registros.
5.3. Indican cuántas mujeres y cuántos hombres hay en el archivo menores.bin, así como el porcentaje que representan cada uno del total de personas en el archivo.
5.4. Solicitar un número de cédula al usuario e indicar si la persona se encuentra en el archivo menores.bin. Si se encuentra, mostrar su nombre, cédula, edad y sexo; de lo contrario indicar que no está incluida en el archivo de menores.
ARCHIVOS DE DATOS A UTILIZAR:
Para los ejercicios 4 y 5 el estudiante debe crear los archivos de texto con los datos de entrada, a fin de realizar su procesamiento y obtener los resultados solicitados en cada ejercicio. Los nombres a utilizar para los archivos será: datosEj4.txt y gente.bin
Para crear cada archivo de entrada puede utilizar un editor de texto como el Bloc de notas o el WordPad, también puede usar un editor de código como el Dev C++, o se puede crear a través de un programa que inicialice o llene almacene los datos de entrada en un archivo con extensión.txt
Los datos en cada línea del archivo deben tener un separador, el cual puede ser la coma o el espacio en blanco.
UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACIÓN ALGORITMOS Y PROGRAMACIÓN
GDAyP pág. 11
Ejemplo de la estructura y datos del archivo datosEj4.txt
// este texto ya estaría guardado en el archivo, no debe eliminarse al realizar la actualización
a los últimos
Ejemplo de la estructura y datos del archivo gente.bin
// estos datos reflejan la estructura para los datos:
Nombre Cédula Edad Sexo
Carlos Castro 920000 8 M
Betty Díaz 850000 16 F
Ana Lara 1900000 5 F
Víctor Salazar 1100000 75 M
… otras filas, al menos los datos de 10 personas
RESTRICCIONES
El laboratorio debe ser desarrollado en C++, bajo el sistema operativo Ubuntu. Sugerimos la utilización de geany como ambiente de desarrollo en Linux y en Windows sugerimos el uso de Dev C++.
Se debe usar lectura y escritura estándar. Se permite usar tipos de datos básicos,
operaciones aritméticas, estructuras de control condicional, estructuras iterativas o ciclos, procedimientos (acciones, funciones y pase de parámetros), además de tipos de datos estructurados. Se permite el uso de elementos de la Librería Estándar de C++ (stdio, iostream, string, cmath, math, entre otras).
Cualquier copia será penalizada para todos los involucrados con la nota de CERO (0)
puntos, además del reporte respectivo al Profesor de la Sección y a la Coordinadora de la Materia.
Se debe seguir estrictamente el formato de entrada de datos y mensajes de salida cuando se indique en los enunciados, de lo contrario esto repercutirá en su nota.
IMPORTANTE:
Archivos de laboratorios o proyectos que no cumplan con este formato de nombre NO SERÁN CORREGIDOS. No se aceptarán envíos posteriores con el nombre corregido.
NO SE ACEPTARÁN ENVÍOS posteriores a la fecha y hora indicada, correos que no respeten el formato del asunto y del nombre de archivo, o archivos enviados a un correo-e que no sea el del preparador.
CONSULTAS:
En caso de dudas sobre el enunciado del laboratorios, consultar al Preparador II David Rojas, [email protected]. En el sitio web de la materia están publicados los horarios en que los Preparadores darán consultas de laboratorio en Sala de Micros.
UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACIÓN ALGORITMOS Y PROGRAMACIÓN
GDAyP pág. 12
MATERIAL DE APOYO
Tipos de datos en C++: http://www.zator.com/Cpp/E2_2_4.htm
C con Clase: tema Arreglos: http://c.conclase.net/curso/?cap=010
Tutorial Programación C++: Clase 8 Arreglos: https://www.youtube.com/watch?v=DNWa8pIpJC8
AprenderAProgramar.com: Tema 7. Registros (struct): http://www.aprendeaprogramar.com/mod/resource/view.php?id=495
C++ Language Tutorial: Data Structures. Juan Soulie. http://www.cplusplus.com/doc/tutorial/structures/
C++ Language Tutorial: Input / Output with files. Juan Soulie. http://www.cplusplus.com/doc/tutorial/files/
Trabajar con archivos: http://c.conclase.net/curso/?cap=039
Archivos: http://www.nebrija.es/~abustind/Informatica/MetodologiaI/Archivos.pdf
C++: Ejemplo de guardar texto en un archivo y leerlo: http://jsbsan.blogspot.com/2012/01/c-ejemplo-de-guardar-texto-en-un.html
Rafael Rivas y Gilberto Díaz. Universidad de Los Andes. Archivos, Archivos de texto: http://webdelprofesor.ula.ve/ingenieria/hyelitza/semestres/A2010/pr2/practicas/practica12-archivos-texto.pdf
Como programar archivos de texto en C++: https://www.youtube.com/watch?v=wqUaw0ahrGs
UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACIÓN ALGORITMOS Y PROGRAMACIÓN
GDAyP pág. 13
Cuestionario Laboratorio 5 Tema 7. Tipos de Datos Estructurados
1. Tanto los registros como los archivos son tipos de datos heterogéneos, esto debido a:
Permiten almacenar valores sólo de un tipo de datos en particular
Podemos almacenar una cantidad infinita de datos en ellos Permiten almacenar datos de diferentes tipos de datos Todas las anteriores Falso, ninguna de las anteriores
2. Si declaramos una matriz de N dimensiones, ¿Cuántos sub-índices son necesarios para acceder a una posición en la matriz?
N índices
N-1 índices 0 índices No se puede saber con anticipación
3. ¿El límite inferior para un arreglo en C++ siempre es cero (0)?
Verdadero
Falso
4. ¿Los arreglos son siempre pasados a las funciones por valor? Verdadero
Falso
5. ¿En qué lugar de la memoria se guardan generalmente los archivos? En la memoria principal En la memoria auxiliar En los periféricos
En todas las anteriores
ENTREGA DEL LABORATORIO
El laboratorio es de realización individual y la entrega del mismo será hasta viernes 10 de julio de 2015 a las 11:00 p.m.
Se debe enviar el código del proyecto únicamente al Preparador David Rojas, al correo [email protected]
El asunto del correo-e debe cumplir con el siguiente formato :
AyP-Lab5-Sección-Cédula
por ejemplo:
AyP-Lab5-C2-12345678
UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACIÓN ALGORITMOS Y PROGRAMACIÓN
GDAyP pág. 14
Los archivos con la solución a enviar por correo-e (.cpp y cuestionario con sus respuestas) deben guardarse respetando el siguiente formato para su nombre, sin usar acentos o ñ:
Lab5-Seccion-NombreyApellido-Cedula.cpp
Lab5-Seccion-NombreyApellido-Cedula-cuestionario.pdf
por ejemplo, para María Angélica Peñaloza:
Lab5-C2-MariaPenaloza-12345678.cpp
Lab5-C2-MariaPenaloza-12345678-cuestionario.pdf
Enviar ambos archivos (.cpp con la solución y .pdf con el cuestionario y sus respuestas) como dos archivos anexos al correo. NO comprimirlos.
Los proyectos y laboratorios son actividades de investigación, por ello los alumnos deben iniciar el análisis, diseño y desarrollo de la solución con antelación a la fecha de entrega.
No es requisito que la materia o las herramientas a usar en la solución de los proyectos o laboratorios hayan sido vistas en clases. El alumno debe investigar en manuales y tutoriales de lenguaje C++.
GDAyP, 25 de Junio de 2015