viernes, 3 de mayo de 2013

tarea 5 unidad 3


·       Cuestionario


1.    ¿Qué es lo que se necesita para recuperar datos fuera de un programa de C++?
Se necesita un archivo y un objeto de flujo de archivo.

2.    ¿Qué es un archivo?
Es una colección de datos almacenados juntos bajo un nombre común, por lo general en un disco, cinta magnética o DC-ROOM.

3.    ¿Cómo se almacena un archivo?
Se almacena en forma física en un medio externo con un disco. Cada archivo tiene un nombre de archivo único conocido como el nombre externo del archivo.

4.    ¿Cómo se le conoce al flujo de archivos que recibe o lee datos de un archivo a un programa?
Se le conoce como flujo de archivos de entrada.

5.    ¿Cómo se le conoce al flujo de archivos que envía o escribe datos en un archivo?
Se le conoce como flujo de archivos de salida.

6.    ¿Qué se necesita para que un programa lea y escriba en un archivo?
 Se requiere un objeto de flujo de archivo de entrada y uno de salida.

7.    ¿Como se deben declarar los objetos de flujo de archivo de entrada y salida?
  Archivo de Entrada (ifstream) y archivo de Salida (ofstream).

8.    ¿Qué indica cuando el método fail () devuelve un valor booleano?
 Indica que la apertura ha fallado.

9.    ¿Cuál es la descripción del método dail ()?
Devuelve un valor booleano verdadero.

10. ¿Cuál es la descripción de método  wif ()?
Devuelve un valor booleano verdadero o se ha invertido leer más allá de final de archivo.

11. ¿Con se cierra un archivo?
Un archivo se cierra usando el método close ().

12. ¿Cómo trabaja la funcion close ()?
 Este método rompe la conexión entre el nombre entero del archivo y el objeto de flujo de archivo, le cual puede ser usado por otro archivo.

13. ¿De que depende el almacenamiento real de caracteres en el archivo?
 Depende de los códigos de caracteres usados por la computadora.

14. ¿Cuales son los dos tipos de archivos básicos que existen?
Archivos de texto y archivos binarios.

15. ¿Cual es la ventaja de los archivos binarios?
Son más compactos y usan menos espacio al almacenarlos.


16. ¿Cuál es la descripción del método get ()?
Devuelve el siguiente carácter del flujo de entrada como un int.

17. ¿Qué es un objeto de archivo lógico?
Es un flujo que conecta un archivo de datos relacionado lógicamente.

18. ¿Qué un objeto de archivo físico?
Es un flujo que conecta a un dispositivo de hardware como teclado, pantalla o impresora.

19. ¿A que se le llama archivo estándar de entrada?
 El dispositivo físico asignado a su programa para la instrucción de datos.

20. ¿Cuál es la descripción del método peek ()?
Devuelve el siguiente carácter en el flujo de entrada sin extraerlo del flujo.





Tarea 5 Unidad 3, Problema 10(a) Seccion 6.8
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
#include <fstream>
#include <string>

int main()
{

string nombre_archivo="datos.dat";
ofstream archivo_sal;

archivo_sal.open(nombre_archivo.c_str());

if (archivo_sal.fail())
{
cout<<"el archivo no  habrio con exito"<<endl;
exit(1);
}
archivo_sal<<setiosflags(ios::fixed)<<setiosflags(ios::showpoint)<<setprecision(3);

cout<<"Nombre"<<"\t    "<<"   Tarifa"<<"  "<<"Horas"<<endl;
cout<<"----------------------------"<<endl;
cout<<"Callaway,G."<<"\t"<<"6.00"<<"\t"<<"40"<<endl;
cout<<"Hanson,P."<<"\t"<<"5.00"<<"\t"<<"48"<<endl;
cout<<"Lasard,D."<<"\t"<<"6.50"<<"\t"<<"35"<<endl;
cout<<"Stillman,W."<<"\t"<<"8.00"<<"\t"<<"50"<<endl;

archivo_sal<<"Nombre"<<"\t    "<<"   Tarifa"<<"  "<<"Horas"<<endl;
archivo_sal<<"-----------------------------"<<endl;
archivo_sal<<"Callaway,G."<<"\t"<<"6.00"<<"\t"<<"40"<<" "<<endl;
archivo_sal<<"Hanson,P."<<"\t"<<"5.00"<<"\t"<<"48"<<endl;
archivo_sal<<"Lasard,D."<<"\t"<<"6.50"<<"\t"<<"35"<<endl;
archivo_sal<<"Stillman,W."<<"\t"<<"8.00"<<"\t"<<"50"<<endl;
archivo_sal.close();
getch();
return 0;
}

Pseudocodigo:


Inicio


string nombre_archivo="datos.dat"
ofstream archivo_sal

archivo_sal.open(nombre_archivo.c_str())

if (archivo_sal.fail())
{
Print "el archivo no  habrio con exito"
exit(1)
}
archivo_sal, setiosflags(ios::fixed), setiosflags(ios::showpoint), setprecision(3)

Print "Nombre", "    ", "   Tarifa", "  ", "Horas"
Print "----------------------------"
Print "Callaway,G.", "", "6.00", "", "40"
Print "Hanson,P.", "", "5.00", "", "48"
Print "Lasard,D.", "", "6.50", "", "35"
Print "Stillman,W.", "", "8.00", "", "50"

archivo_sal, "Nombre", "    ", "   Tarifa", "  ", "Horas"
archivo_sal, "-----------------------------"
archivo_sal, "Callaway,G.", "", "6.00", "", "40", "              "
archivo_sal, "Hanson,P.", "", "5.00", "", "48"
archivo_sal, "Lasard,D.", "", "6.50", "", "35"
archivo_sal, "Stillman,W.", "", "8.00", "", "50"
archivo_sal.close()
Final











area 5 Unidad 3, Problema 10(b) Seccion 6.8
//Integrantes del equipo: Avendaño Reveles Daniel

#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
#include <fstream>
#include <string>

int main()
{

string nombre_archivo="Datos.dat";
ofstream archivo_sal;

archivo_sal.open(nombre_archivo.c_str());

if (archivo_sal.fail())
{
cout<<"el archivo no  habrio con exito"<<endl;
exit(1);
}
archivo_sal<<setiosflags(ios::fixed)<<setiosflags(ios::showpoint)<<setprecision(3);

cout<<"Nombre"<<"\t    "<<"   Tarifa"<<"  "<<"Horas"<<"  "<<"Pago bruto"<<"  "<<"Pago de tiempo extra"<<"  "<<"Pago regular"<<endl;
cout<<"-----------------------------------------------------------------------------"<<endl;
cout<<"Callaway,G."<<"\t"<<"6.00"<<"\t"<<"40"<<" "<<(40*6)<<"    "<<(0)<<"          "<<(40*6)<<endl;
cout<<"Hanson,P."<<"\t"<<"5.00"<<"\t"<<"48"<<" "<<(48*1.5+48*5)<<"   "<<48*1.5<<"       "<<48*5<<endl;
cout<<"Lasard,D."<<"\t"<<"6.50"<<"\t"<<"35"<<" "<<(35*6.50)<<"    "<<0<<"         "<<35*6.50<<endl;
cout<<"Stillman,W."<<"\t"<<"8.00"<<"\t"<<"50"<<" "<<(50*1.5+50*8.0)<<"    "<<50*1.5<<"       "<<50*8.0<<endl;

archivo_sal<<"Nombre"<<"\t    "<<"   Tarifa"<<"  "<<"Horas"<<"  "<<"Pago bruto"<<"  "<<"Pago de tiempo extra"<<"  "<<"Pago regular"<<endl;
archivo_sal<<"-----------------------------------------------------------------------------"<<endl;
archivo_sal<<"Callaway,G."<<"\t"<<"6.00"<<"\t"<<"40"<<" "<<(40*6)<<"    "<<(0)<<"         "<<(40*6)<<endl;
archivo_sal<<"Hanson,P."<<"\t"<<"5.00"<<"\t"<<"48"<<" "<<(48*1.5+48*5)<<"         "<<(48*1.5)<<"      "<<(48*5)<<endl;
archivo_sal<<"Lasard,D."<<"\t"<<"6.50"<<"\t"<<"35"<<" "<<(35*6.50)<<"    "<<(0)<<"         "<<(35*6.50)<<endl;
archivo_sal<<"Stillman,W."<<"\t"<<"8.00"<<"\t"<<"50"<<" "<<(50*1.5+50*8.0)<<"    "<<(50*1.5)<<"       "<<(50*8.0)<<endl;
archivo_sal.close();
getch();
return 0;
}


Pseudocodigo:


Inicio

string nombre_archivo="Datos.dat"
ofstream archivo_sal

archivo_sal.open(nombre_archivo.c_str())

if (archivo_sal.fail())
{
Print "el archivo no  habrio con exito"
exit(1)
}
archivo_sal, setiosflags(ios::fixed), setiosflags(ios::showpoint), setprecision(3)

Print "Nombre", "    ", "   Tarifa", "  ", "Horas", "  ", "Pago bruto", "  ", "Pago de tiempo extra", "  ", "Pago regular"
Print "-----------------------------------------------------------------------------"
Print "Callaway,G.", "", "6.00", "", "40", "             ", (40*6), "                          ", (0), "                 ", (40*6)
Print "Hanson,P.", "", "5.00", "", "48", "                ", (48*1.5+48*5), "                         ", 48*1.5, "         ", 48*5
Print "Lasard,D.", "", "6.50", "", "35", "  ", (35*6.50), "                    ", 0, "                    ", 35*6.50
Print "Stillman,W.", "", "8.00", "", "50", "              ", (50*1.5+50*8.0), "                      ", 50*1.5, "         ", 50*8.0

archivo_sal, "Nombre", "    ", "   Tarifa", "  ", "Horas", "  ", "Pago bruto", "  ", "Pago de tiempo extra", "  ", "Pago regular"
archivo_sal, "-----------------------------------------------------------------------------"
archivo_sal, "Callaway,G.", "", "6.00", "", "40", "              ", (40*6), "                          ", (0), "                 ", (40*6)
archivo_sal, "Hanson,P.", "", "5.00", "", "48", "  ", (48*1.5+48*5), "         ", (48*1.5), "     ", (48*5)
archivo_sal, "Lasard,D.", "", "6.50", "", "35", "    ", (35*6.50), "                    ", (0), "                 ", (35*6.50)
archivo_sal, "Stillman,W.", "", "8.00", "", "50", "               ", (50*1.5+50*8.0), "                      ", (50*1.5), "                      ", (50*8.0)
archivo_sal.close()
Final



















tarea 4 Unidad 3


·       Cuestionario

1.    ¿Cuál es la relación que existe entre la memoria principal, el microprocesador y los dispositivos de almacenamiento secundario?
Existe una estrecha relación entre la memoria principal, el microprocesador y los dispositivos de almacenamiento secundario ya que el procesamiento que realiza una computadora es tarea absoluta del microprocesador en conjunción con la memoria principal; es decir, los dispositivos de almacenamiento secundario (diskettes, discos duros, CD, flash drives, etc.), no procesan datos, sólo los almacenan.

2.    ¿Cómo se le llama a los elementos individuales de los archivos?
Datos o campos.

3.    ¿Cómo se clasifican los archivos por tipo de contenido?
Se clasifican por texto y por códigos binarios.

4.    ¿Qué son los archivos de texto?
Son aquellos que pueden contener cualquier clase de datos y de tal manera que son “entendibles” por la gente. Los datos en un archivo de texto se almacenan usando el código ASCII, en el cual cada carácter es representado por un simple byte.

5.    ¿Qué son los archivos binarios?
Son los archivos almacenan los datos numéricos con su representación binaria. Pueden ser archivos que contienen instrucciones en lenguaje máquina listas para ser ejecutadas.

6.    ¿Cómo se clasifican los archivos por tipo de acceso?
Se clasifican por archivos secuenciales y archivos directos (relativos o aleatorios).

7.    ¿Cómo funcionan los archivos secuenciales?
En este tipo de archivos los registros se graban en secuencia o consecutivamente y deben acezarse de ese mismo modo, es decir, conforme se van insertando nuevos registros, éstos se almacenan al final del último registro almacenado; por lo tanto, cuando se desea consultar un registro almacenado es necesario recorrer completamente el archivo leyendo cada registro y comparándolo con el que se busca.

8.    ¿Cómo funcionan los archivos directos?
En los archivos directos no es necesario recorrerlo completamente para acceder un registro en particular, sino se puede colocar el apuntador interno del archivo directamente en el registro deseado, permitiendo con esto mayor rapidez de acceso.

9.    ¿Cuál es el encabezado que se necesita escribir dentro de un programa de C++ en el que se utilizaran archivos?
#include <stdio.h>

10. ¿Para que se utiliza la funcion fopen?
Se utiliza para abrir un archivo, determinar el modo de apertura y establecer la vía de comunicación mediante su alias correspondiente. Además determinar el tipo de contenido del archivo (texto o binario).

11. ¿Cuáles son las funciones que se utilizan para cerrar un archivo?
Funcion fclose () o fcloseall (). Si se usa fclose es necesario indicarle el alias del archivo que se desea cerrar. La función fcloseall cierra todos los archivos abiertos.

12. ¿Para que sirve la funcion fwrite ()?
Proporciona el mecanismo para almacenar todos los campos de un registro en un archivo. Cabe destacar que al utilizar esta función, se almacena una variable (de tipo struct) que representa un bloque de datos o campos; es decir, no se almacena campo por campo.

13. ¿Qué son los buffers?
Son un área de almacenamiento temporal en memoria para el conjunto de datos leídos o escritos en el archivo. Estos buffers retienen datos en tránsito desde y hacia al archivo y tienen la finalidad de hacer más eficiente las operaciones de entrada/salida en los archivos de disco, provocando menor cantidad de accesos, los cuales son más lentos que la memoria.

14. ¿Para que se utiliza la funcion fread ()?
La función fread permite “cargar” todos los campos de un registro en un archivo, es decir, lee un registro y lo copia en la memoria RAM. Esta función tiene los mismos argumentos que la función fwrite.

15. ¿Cómo finalidad de la funcion fseek ()?
Esta funcion puede reposicionar el apuntador de los archivos, es decir, la posición dentro del archivo.

16. ¿Cuáles son los argumentos que permiten reposicionar el apuntador del archivo en la dirección física?
El alias del archivo, la dirección física (en bytes) y el punto de referencia. Para poder reposicionar el apuntador del archivo es necesario que éste se encuentre abierto y se le haya asignado el alias correspondiente, también es necesario calcular la dirección física donde se desea colocar e indicarle el punto de referencia de donde se partirá en el conteo de la cantidad de bytes indicado por la dirección física, los cuales pueden ser desde el principio, desde donde se encuentre el apuntador del archivo y desde el final.

17. ¿Para que se utiliza la funcion rewind ()?
Se utiliza para colocar el apuntador del archivo al principio de un archivo abierto sin necesidad de usar la función fseek. Basta con enviar el alias del archivo como argumento.

18. ¿Para que se utiliza el macro feof ()?
Se utiliza para determinar si se ha encontrado el final de un archivo. Si se encuentra el final de un archivo, devuelve un valor diferente de cero y cero en caso contrario. Para invocarlo es necesario colocar el alias del archivo abierto como argumento. Se utiliza mucho esta función en recorridos de tipo secuencial.

19. ¿Para que sirve la funcion rename ()?
Esta función tiene como objetivo cambiar el nombre de un archivo o subdirectorio especificado por su ruta de acceso. Sólo necesita dos argumentos: el nombre anterior del archivo y el nuevo nombre. Es importante destacar que esta función sólo puede aplicarse a archivos cerrados.

20. ¿Para que sirve la funcion remove ()?
La función remove elimina definitivamente un archivo especificando su nombre. Es importante destacar que esta función sólo puede aplicarse a archivos cerrados.

21. ¿De que depende el modificar el contenido de los campos de registros de un archivo?
Depende de la rutina de consulta, ya que es necesario localizar previamente el registro que se desea modificar, capturar los nuevos valores y posteriormente grabar el registro completo en la misma posición que se encontraba.

22. ¿En que consiste la rutina de bajas lógicas?
Consisten en “marcar” los registros eliminados. En el ejemplo práctico que se muestra a continuación, el registro borrado se “limpia”, dejando en blanco todos sus campos (colocando el valor cero en los campos numéricos y blancos en las cadenas o de tipo carácter).

23. ¿En que consiste la rutina de bajas físicas?
Consiste en eliminar definitivamente los espacios dejados por los registros borrados lógicamente. Cuando se elimina un registro en forma lógica dejando en blanco sus campos, sigue ocupando espacio en el archivo, sin embargo se puede diseñar una rutina que se apoye de un archivo auxiliar (también secuencial), en el cual se graben todos los registros válidos, es decir, los registros no eliminados, para posteriormente eliminar el archivo original y renombrar este archivo auxiliar como el archivo original.

24. ¿Qué sucede cuando se crea un archivo ya existente?
Se pierde su contenido anterior.

25. ¿A que rutina se asemeja la rutina de bajas lógicas?
Se asemeja mucho a la rutina de modificaciones, sólo que en las bajas no se capturan los nuevos valores, sino se les asigna valores en blanco y se graba el registro completo en la misma posición en la que se encontraba. La diferencia entre las rutinas de bajas lógicas del archivo secuencial y el archivo directo radica en el mecanismo utilizado para localizar el registro que se desea eliminar.

tarea 3 Unidad 3


  ·       Cuestionario


1.    ¿A que se le conoce como transmisión por valor?
Se le conoce cuando una funcion almacena y manipula los valores transmitidos y devuelve directamente un solo valor.
2.    ¿A que se le conoce como transmisión por referencia?
Es cuando la funcion llamada tiene la dirección de la variable, sabe donde se encuentra la variable y puede tener acceso al valor almacenado ahí y cambiarlo directamente.
3.    ¿Cuales son los parámetros de dirección que proporciona C++?
Son las referencias y los apuntadores.
4.    ¿Cuál es la forma escrita el esquema inicial de un programa de computadora?
Generalmente es una descripción en seudocódigo o un diagrama de estructura de primer nivel.
5.    ¿Para que sirve ese esquema inicial?
Comienza con el proceso de definir un problema mas complicado en un conjunto de tareas más pequeñas y más manejables.
6.    Escriba el algoritmo que se aplica a muchas tareas de ingeniería y científicas:
Obtener las entradas del problema
Calcular el resultado deseado
Reportar los resultados del calculo
7.    ¿Cómo se le conoce al algoritmo mencionado anteriormente?
Algoritmo para resolver problemas.
8.    ¿Cuales son los 2 compiladores de C++ para crear números aleatorios?
Los compiladores son rand () srand ().
9.    ¿Que hace la funcion rand ()?
Produce una serie de numeros aleatorios en el  rango 0<rand<rand_max donde la constante rand_max sedefine en el archivo de encabezado cmath.
10. ¿Que hace la funcion srand ()?
Produce un valor "semilla “inicial para rand ().
11. ¿Que pasa si no se usa srand u otra técnica de sembrado?
Producirá siempre la misma serie de números aleatorios.
12. ¿Cómo se le conoce al método para ajustar los números aleatorios producidos por un generador de números aleatorios para que residan dentro de dichos rangos?
Se le conoce como escalamiento.
13. ¿Cuáles son los tres pasos del algoritmo de intercambio?
Guardar el valor del primer parámetro en una ubicación temporal
Almacenar el valor segundo parámetro en la primera variable
Almacenar  el valor temporal en el segundo parámetro.
14. ¿Cuál es la característica fundamental de los parámetros de referencia? 
Proporcionan la capacidad  para que una función llamada y una que llama tenga acceso a la misma área de almacenamiento usando nombres diferentes.
15. ¿Qué es lo que se debe atender al intercambiar datos?
El emisor y el receptor del intercambio de datos.
16. ¿Cual es una opción por omisión en C++?  
Transmitir por valor en lugar de transmisión por referencia.
17. ¿Cuál es la sintaxis para declarar un parámetro de referencia? 
Tipo-de-datos nombre-de-referencia.
18. ¿Cómo se define la rutina randomize en C++? 
Usando la función srand ().
19. Menciona un uso común de los números aleatorios:
Un uso común es simular eventos usando un programa, en lugar de dedicar tiempo y costos a construir un experimento real.
20. ¿Cómo se logra el escalamiento de un número aleatorio como un valor entero entre 0 y N-1?
Se logra usando cualquiera de las expresiones rand () %N o int (doublé(rand ()/RAND_MAX*N).



Tarea 3 Unidad 3, Problema 3 Seccion 6.3

#include <iostream.h>
#include <conio.h>

int encontrarMax(int, int);

int main()
{
int primernum, segundonum, max;

cout<< "\nIntroduzca el primer numero: ";
cin>>primernum;
cout<< "\nIntroduzca el segundo numero: ";
cin>>segundonum;

max=encontrarMax(primernum, segundonum);

cout<< "\nEl maximo de los dos numeros es: "<<max<<endl;
cout<< "\nEL valor almacenado en max es: "<<max<<endl;


getch();
return 0;

}

int encontrarMax(int x, int y)
{
int numMax;

if(x>=y)
{
numMax=x;
}
else
{
numMax=y;
}
return numMax;
}

Pseudocodigo:

funcion encontrarMax(int, int)

inicio funcion
{
primernum        int
segundonum    int
max       int 
print  "Introduzca el primer numero: "
read primernum
print  "Introduzca el segundo numero: "
read segundonum 
max=encontrarMax(primernum, segundonum) 
print  "El maximo de los dos numeros es: ", max
print  "EL valor almacenado en max es: ", max
final funcion
incio programa
funcion encontrarMax(int x, int y)
{
numMax             int
if(x>=y)
{
numMax=x
}
else
{
numMax=y
}
return numMax
}
final programa












Tarea 3 Unidad 3, Problema 2 Seccion 6.4
#include <iostream.h>
#include <conio.h>
#include <math.h>
void calcradioarea(float r , float a)
{
cout<<"\nEl radio es: "<<r<<endl;
cout<<"\nEl area es: "<<a<<endl;
getch();
return ;
}

int main()
{

float r, a,c;
cout<<"Introduce la circuferencia del circulo: ";
cin>>c;

r=c/(2*3.1416);

a=(3.1416)*pow(r,2);

calcradioarea(r , a);
getch();
return 0;
}

Pseudocodigo:

Funcion calcradioarea(float r , float a)
inicio funcion
{
print "El radio es: ", r
print "El area es: ", a
}
final funcion
inicio programa

int main()
{

r              float
a             float
c              float
print "Introduce la circuferencia del circulo: "
read c

r=c/(2*3.1416)

a=(3.1416)*pow(r,2)

calcradioarea(r , a)
final programa













Tarea 3 Unidad 3, Problema 5 Seccion 6.4
#include <iostream.h>
#include <conio.h>
#include <math.h>

void encontrarDistancia(float d)
{


cout<< "\nLa distancia entre los dos puntos es: "<<d<<endl;
}

int main()
{
float x1, y1, x2, y2, d;

cout<< "\nIntrodusca las coordenadas del primer punto: ";
cin>>x1>>y1;
cout<< "\nIntrodusca las coordenadas del segundo punto: ";
cin>>x2>>y2;


d=sqrt(pow(x2-x1,2)+pow(y2-y1,2));


encontrarDistancia(d);
getch();
return 0;

}

Pseudocodigo:

funcion encontrarDistancia(float d)
inicion funcion
{
print  "La distancia entre los dos puntos es: ", d
}
final funcion
inicio programa
{
x1           float
y1           float
x2           float
y2           float
d             float

print  "Introdusca las coordenadas del primer punto: "
read x1
read y1
print  "Introdusca las coordenadas del segundo punto: "
read x2
read y2


d=sqrt(pow(x2-x1,2)+pow(y2-y1,2))


encontrarDistancia(d)
final programa