Está en la página 1de 28

REPUBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA EDUCACION


UNIVERSIDAD EXPERIMENTAL RAFAEL MARIA BARALT
PROGRAMA DE INGENERIA Y TECNOLOGIA
PROYECTO: PNF EN INFORMATICA
MARACAIBO – ESTADO/ZULIA

DESARROLLO TEÓRICO
TRAYECTO 2
ESTUDIANTES GRUPO 4:
HUERTA GUILLERMO C.I: 30.319.441
LOZADA MANUEL C.I: 30.250.923
PIRE IRWIN C.I: 30.439.858
RIOS SANTIAGO C.I: 30.093.188
YANEZ GEORGE C.I: 31.125.807
SECCION: 11
TRAYECTO: 1-2
PROFESOR: Rafael Puentes
ÁREA: PROGRAMACIÓN Y ALGORITMICA
Maracaibo, julio de 2021
PRIMRA PARTE (PROGRAMACIÓN MODULAR):
Funciones y Procedimientos: Definición y Declaración:

Los procedimientos y funciones son unidades de programas diseñados

para ejecutar una tarea específica. Por ejemplo, los procedimientos

predefinidos LEER y ESCRIBIR están diseñados para realizar operaciones

de entrada y salida de datos de un programa.

La declaración de un procedimiento no indica a la computadora que

ejecute las instrucciones dadas, sino que

Indica a la computadora cuáles son estas instrucciones y dónde están

localizadas cuando sea necesario.

Declaración
Formato 1
Subrutina nombre ()
Declaración de variables
Inicio
Acciones
Fin subrutina
Formato 2
Subrutina nombre (lista de parámetros formales)
Declaración de variables
Inicio
Acciones
Fin subrutina
Nombre: identificador válido

Lista de parámetros formales:

Parámetros formales del procedimiento; sirven para pasar información al

procedimiento y/o devolver información del procedimiento a la unidad de

programa que le invoca. Están separados por comas, y precedidos por las

letras E (entrada), S (Salida) o E/S (Entrada/Salida)


Ámbitos de variables:

Datos locales y globales:

Una variable local es aquella cuyo ámbito se restringe a la función que

se declaró. Una variable global se define fuera del cuerpo de cualquier

función

Variables Globales:

Las variables permanecen activas durante todo el programa. Se crean al

iniciarse éste y se destruyen de la memoria al finalizar. Pueden ser

utilizadas en cualquier función.

Variables Locales:

Las variables son creadas cuando el programa llega a la función en la

que están definidas. Al finalizar la función desaparecen de la memoria.

Llamada de una función y pase de parámetros:

La llamada a una función especifica la relación entre los parámetros

reales y los formales y ejecuta la función. La llamada a

una función devuelve un resultado que ha de ser recogido, bien

asignándolo a una variable del tipo adecuado, bien integrándolo en una

expresión.

En ciencias de la computación, un parámetro es una variable utilizada

para recibir valores de entrada en una rutina, subrutina o método. Dichos

valores, que serán enviados desde la rutina invocaste, son


llamados argumentos. La subrutina usa los valores asignados a sus

parámetros para alterar su comportamiento en tiempo de ejecución. La

mayor parte de los lenguajes de programación pueden definir subrutinas

que aceptan cero o más argumentos

SEGUNDA PARTE (ARREGLOS):


Los arreglos: Definición, clasificación y operaciones básicas.

¿Qué es un arreglo?:

Un arreglo es una estructura, es decir es un conjunto de variables que se

citan y manejan con un mismo nombre, y que permite además la utilización

individual de sus elementos. (Joyanes, 2008).

Esto significa que un arreglo es una variable que provee la opción de

disponer de varios datos o espacio para datos a los cuales se puede

acceder con un mismo nombre.

Un arreglo es en resumen un conjunto de datos finito y del mismo

tipo. En realidad funciona como cualquier variable cualquiera, excepto que

en lugar de almacenar un solo valor, guarda algunos valores. Los arreglos

pueden representarse en varias dimensiones: Unidimensionales,

Bidimensionales, hasta dimensionales. En esta unidad se estudiarán los de

una y dos dimensiones. Iniciaremos por los primeros.

Clasificación de los arreglos:


Los arreglos se pueden clasificar en 3 tipos distintos, comenzaremos

hablando del tipo abstracto de datos arreglos, tanto de una (vectores), dos

(matrices) o múltiples dimensiones.

Vectores:

Los vectores, también llamados tablas unidimensionales, son estructuras de

datos caracterizadas por:

 Una colección de datos del mismo tipo.

 Referenciados mediante un mismo nombre.

 Almacenados en posiciones de memoria físicamente contiguas, de

forma que, la dirección de Memoria más baja corresponde a la del

primer elemento, y la dirección de memoria más alta Corresponde a

la del último elemento.

El formato general para la declaración (ya vista previamente) de una

variable de tipo vector es el siguiente:

Tipo_de_datos nombre_vector [tamaño]; Donde:

--- Tipo_de_datos indica el tipo de los datos almacenados por el vector.

Recordemos que todos los elementos del vector son forzosamente del

mismo tipo. Debe aparecer necesariamente en la declaración, puesto que

de ella depende el espacio de memoria que se reservara para almacenar el

vector.
--- nombre_vector es un identificador que usaremos para referiremos tanto

al vector como un todo, como a cada uno de sus elementos.

--- tamaño es una expresión entera constante que indica el número de

elementos que contendrá el vector. El espacio ocupado por un vector en

memoria se obtiene como el producto del número de elementos que lo

componen y el tamaño de cada uno de estos.

Representación Gráfica de un Vector.

En muchas ocasiones, antes de usar un vector (una tabla en general)

por primera vez, es necesario dar a sus elementos un valor inicial. La

manera más habitual de inicializar un vector en tiempo de ejecución

consiste en recorrer secuencialmente todos sus elementos y darles el valor

inicial que les corresponda. Veámoslo en el siguiente ejemplo, donde todos

los elementos de un vector de números enteros toman el valor 0:

#define TAM 100


int main()
{
int vector[TAM], i;
for (i= 0; i< TAM; i++)
vector[i] = 0;
return 0;
}
Nótese que el bucle recorre los elementos del vector empezando por el

elemento 0 (i=0) y hasta el elemento TAM-1 (condición i < TAM).

*Matrices:

Las matrices, también llamadas tablas bidimensionales, no son otra cosa

que vectores con dos dimensiones. Por lo que los conceptos de acceso,

inicialización, etc. son similares. La declaración de una variable matriz tiene

la forma siguiente:

Tipo_de_datos nombre_matriz [tamaño1] [tamaño2]; Donde:

--- [tamaño1] [tamaño2] es una expresión entera constante que indica el

número de filas y columnas respectivamente que contendrá la matriz.

Otro hecho importante es que las matrices en C se almacenan "por

filas". Es decir, que los elementos de cada fila se sitúan en memoria de

forma contigua. Así pues, en la matriz de la figura anterior, el primer

elemento almacenado en memoria es el (0,0), el segundo el (0,1), el tercero

el (0,2), . . . , (0,M-1), después (1,0), y así sucesivamente hasta el ´ultimo

elemento, es decir (N-1,M-1).


Representación Gráfica de una Matriz.

Podemos declarar matrices muy fácilmente:

int a[10][5];

En este ejemplo, a es una matriz de 10 × 5 enteros.

La inicialización de las matrices necesita bucles anidados para ser


ejecutada:

int main()
{
int a[10][5];
int i, j;
for (i=0; i<10; i++)
for (j=0; j<5; j++)
a[i][j] = 0;
return 0;
}

También puedes inicializar explícitamente un vector multidimensional:

int c[3][3] = { {1, 0, 0},


{0, 1, 0},
{0, 0, 1} };

Por claridad, se ha usado identación en los datos, aunque hubiesen podido


escribirse todos en una sola línea.

int c[3][3] = { {1, 0, 0}, {0, 1, 0}, {0, 0, 1} };

Ejemplo.
Para ilustrar el manejo de matrices, construiremos ahora un programa

que lee de teclado dos matrices de números en coma flotante y muestra por

pantalla su suma y su producto. Las matrices leídas serán de 3 × 3 y se

denominaran a y b. El resultado de la suma se almacenara en una matriz s

y el del producto en otra p.

#include <stdio.h>
#define TALLA 3
int main()
{
float a[TALLA][TALLA], b[TALLA][TALLA];
float s[TALLA][TALLA], p[TALLA][TALLA];
int i, j, k;

/* Lectura de la matriz a */
for (i=0; i<TALLA; i++)
for (j=0; j<TALLA; j++) {
printf ("Elemento (%d, %d): ", i, j);
scanf ("%f", &a[i][j]);
}

/* Lectura de la matriz b */
for (i=0; i<TALLA; i++)
for (j=0; j<TALLA; j++) {
printf ("Elemento (%d, %d): ", i, j);
scanf ("%f", &b[i][j]);
}

/* Calculo de la suma */
for (i=0; i<TALLA; i++)
for (j=0; j<TALLA; j++)
s[i][j] = a[i][j] + b[i][j]

/* Calculo del producto */


for (i=0; i<TALLA; i++)
for (j=0; j<TALLA; j++) {
p[i][j] = 0.0;
for (k=0; k<TALLA; k++)
p[i][j] += a[i][k] * b[k][j];
}

/* Impresión del resultado de la suma */


printf ("Suma\n");
for (i=0; i<TALLA; i++) {
for (j=0; j<TALLA; j++)
printf ("%8.3f", s[i][j]);
printf ("\n");
}

/* Impresión del resultado del producto */


printf ("Producto\n");
for (i=0; i<TALLA; i++) {
for (j=0; j<TALLA; j++)
printf ("%8.3f", p[i][j]);
printf ("\n");
}
return 0;
}

Tablas multidimensionales:

Este tipo de tablas se caracteriza por tener tres o más dimensiones. Al

igual que vectores y matrices, todos los elementos almacenados en ellas

son del mismo tipo de datos. La declaración de una tabla multidimensional

tiene la forma siguiente

Tipo_de_datos nombre_tabla [tamaño1]…[tamaño_n];

Donde:

---[tamaño1]…[tamaño_n] son expresiones enteras constantes.

Representación Gráfica de un arreglo multidimensional N x M x 3


Podemos declarar arreglos multidimensionales muy fácilmente:

int a[10][8][3];

En este ejemplo, a es un arreglo de 10 × 8 x 3 enteros

La inicialización de arreglos multidimensionales necesita tantos bucles

anidados como dimensiones tengan estos:

#include <stdio.h>
int main()
{
float b[3][2][4];
int i, j, k;

for (i=0; i<3; i++)


for (j=0; j<2; j++)
for (k=0; k<4; k++)
b[i][j][k] = 0.0;
return 0;
}

Ejemplo

El siguiente ejemplo muestra el empleo de una tabla multidimensional.

Concretamente, el programa utiliza una tabla de 3 dimensiones para

almacenar 1000 números aleatorios. Para generar números aleatorios se

usa la función rand de la librera estándar stdlib.h. También se ha usado la

función getchar (stdio.h), que interrumpe el programa y espera a que el

usuario presione una tecla.

#include <stdio.h>
#include <stdlib.h>
#define DIM 10
int main()
{
int tabla_random [DIM][DIM][DIM], a, b, c;
for (a= 0; a< DIM; a++)
for (b= 0; b< DIM; b++)
for (c= 0; c< DIM; c++)
tabla_random[a][b][c] = rand();

/* Muestra series de DIM en DIM elementos. */


for (a= 0; a< DIM; a++)
for (b= 0; b < DIM; b++) {
for (c= 0; c < DIM; c++) {
printf("\n tabla[%d][%d][%d] = ", a, b, c );
printf("%d", tabla random[a][b][c] );
}
printf("\nPulse ENTER para seguir" );
getchar();
}
return 0;
}

Operaciones básicas:

Sobre un arreglo es posible realizar una variedad de operaciones, las

cuales permiten manipular el arreglo de acuerdo a las necesidades, que se

presenten al administrar información con este tipo de estructura:

 Ingresar

 Sumar y Promedio

 Mayor y Menor

 Buscar y Reemplazar

 Ordenar e Invertir

 Insertar y Eliminar

 entre otras que facilitarían las acciones sobre un arreglo, luego

podría ampliarse a operaciones entre dos arreglos.

Para resolver los problemas con arreglos, se deberán tener en cuenta la

siguiente consideración: Al ser un problema muy amplio, cada operación


sobre los arreglos será considerada como un subproblema, por lo tanto se

realizará el análisis, diseño, e implementación de cada uno de ellos y al final

se integrarán todas sus partes en un solo programa.

Variables del programa:

arreglo: variable para manipular el arreglo

tamanio: cantidad máxima de datos del arreglo

ind: posición inicial del arreglo.

Metodos de ordenamiento:

Los algoritmos de ordenamiento se pueden clasificar en las siguientes

maneras:

 La más común es clasificar según el lugar donde se realice la

ordenación

o Algoritmos de ordenamiento interno: en la memoria del ordenador.

o Algoritmos de ordenamiento externo: en un lugar externo como

un disco duro.

 Por el tiempo que tardan en realizar la ordenación, dadas entradas ya

ordenadas o inversamente ordenadas:

o Algoritmos de ordenación natural: Tarda lo mínimo posible cuando la

entrada está ordenada.

o Algoritmos de ordenación no natural: Tarda lo mínimo posible

cuando la entrada está inversamente ordenada.


 Por estabilidad: un ordenamiento estable mantiene el orden relativo que

tenían originalmente los elementos con claves iguales. Por ejemplo, si

una lista ordenada por fecha se reordena en orden alfabético con un

algoritmo estable, todos los elementos cuya clave alfabética sea la

misma quedarán en orden de fecha. Otro caso sería cuando no

interesan las mayúsculas y minúsculas, pero se quiere que si una clave

aBC estaba antes que AbC, en el resultado ambas claves aparezcan

juntas y en el orden original: aBC, AbC. Cuando los elementos son

indistinguibles (porque cada elemento se ordena por la clave completa)

la estabilidad no interesa. Los algoritmos de ordenamiento que no son

estables se pueden implementar para que sí lo sean. Una manera de

hacer esto es modificar artificialmente la clave de ordenamiento de

modo que la posición original en la lista participe del ordenamiento en

caso de coincidencia.

Los algoritmos se distinguen por las siguientes características:

 Complejidad computacional (peor caso, caso promedio y mejor caso) en

términos de n, el tamaño de la lista o arreglo. Para esto se usa el

concepto de orden de una función y se usa la notación O(n). El mejor

comportamiento para ordenar (si no se aprovecha la estructura de las

claves) es O(n log n). Los algoritmos más simples son cuadráticos, es

decir O(n²). Los algoritmos que aprovechan la estructura de las claves

de ordenamiento (p. ej. bucket sort) pueden ordenar en O(kn)

donde k es el tamaño del espacio de claves. Como dicho tamaño es


conocido a priori, se puede decir que estos algoritmos tienen un

desempeño lineal, es decir O(n).

 Uso de memoria y otros recursos computacionales. También se usa la

notación O(n).

Métodos de búsqueda

Un problema de búsqueda puede enunciarse del siguiente modo: dado

un conjunto de elementos CB (Conjunto Búsqueda) de un cierto tipo

determinar si un elemento ("dato") se encuentra en el conjunto o no. Existen

diferentes algoritmos de búsqueda y la elección depende de la forma en

que se encuentren organizados los datos: si se encuentran ordenados o si

se ignora su disposición o se sabe que están al azar. También depende de

si los datos a ordenar pueden ser accedidos de modo aleatorio o deben ser

accedidos de modo secuencial.

Búsqueda secuencial:

Es el algoritmo de búsqueda más simple, menos eficiente y que menos

precondiciones requiere: no requiere conocimientos sobre el conjunto de

búsqueda ni acceso aleatorio. Consiste en comparar cada elemento del

conjunto de búsqueda con el valor deseado hasta que éste sea encontrado

o hasta que se termine de leer el conjunto.


TERCERA PARTE (TRATAMIENTO DE CADENAS DE CARACTERES):

Definición:

Las cadenas de caracteres son vectores de tipo carácter (char) que

reciben un tratamiento especial para simular el tipo de datos “string”,

presente en otros lenguajes de programación.

Para que un vector de caracteres pueda ser considerado como una

cadena de caracteres, el ´último de los elementos útiles del vector debe ser

el carácter nulo (código ASCII 0). Según esto, si se quiere declarar una

cadena formada por N caracteres, deberá declararse un vector con N + 1

elementos de tipo carácter. Por ejemplo, la declaración char cadena [6];

reserva suficiente espacio en memoria para almacenar una cadena de 5

caracteres, como la palabra "casco":

Funciones asociada:

Aunque C no incorpora en su definición operadores para el manejo de

cadenas de caracteres, todo compilador de C proporciona una librera

estándar (string.h) con funciones para facilitar su utilización. Destacar

algunas de ellas:

strcpy: La función strcpy se encuentra en la biblioteca <string.h> y se

utiliza para copiar una cadena de caracteres (fuente) en el lugar que

ocupaba otra (destino). Esta copia es destructiva, o sea, que todos los

caracteres que estaban en la cadena destino desaparecen, aunque la


cadena destino fuera más larga que la cadena fuente .La cadena destino se

pone como primer argumento de la función y la cadena fuente como

segundo.

Un ejemplo:

#include<stdio.h>

#include<string.h>

int main()

char texto1[]="corta";

char texto2[]="mediana";

char texto3[]="larguisima";

strcpy(texto2,texto1);

printf("%s\n",texto2);

strcpy(texto2,texto3);

printf("%s\n",texto2);

getch();

return 0; }

strcat: En el programa anterior vimos que la función strcpy es desctructiva,

pero hay otra función en la librería <string.h> que copia una cadena (fuente)

en otra (destino) sin destruir ésta, es decir, que copia una cadena detrás de

la otra esta función es conocida como strcat.

Un ejemplo:
#include<stdio.h>

#include<string.h>

int main()

char texto1[]="Don Pepito";

char texto2[]=" y ";

char texto3[]="Don Jose";printf("%s\n",texto1);

strcat(texto1,texto2);

printf("%s\n",texto2);

strcat(texto1,texto3);

printf("%s\n",texto2);

getchar();

return 0;

strlen: esta función devuelve el total (entero) de caracteres que conforman

una cadena (excluyendo el caracter nulo \0).

Un ejemplo:

#include <stdio.h>

#include <string.h>

#include <conio.h>

#define MAXLON 80

int main(void)

{
char a[MAXLON+1];

int longitud;

clrscr();

printf ("Introduce una cadena (max. %d caracteres): ", MAXLON);

scanf("%s",&a);

longitud = strlen(a);

printf ("\nLongitud de la cadena: %d\n", longitud);

getch();

return 0;

Resultado:

strcmp: La función strcmp recibe dos cadenas, a y b, devuelve un entero.

El entero que resulta de efectuar la llamada strcmp(a, b) codifica el

resultado de la comparación:

es menor que cero si la cadena a es menor que b, es 0 si la cadena a es

igual que b, y es mayor que cero si la cadena a es mayor que b.

Naturalmente, menor significa que va delante en orden alfabético, y mayor

que va detrás.

Un ejemplo:

#include <stdio.h>

#include <string.h>
int main()

char s1[6] = "Abeja";

char s2[6] = "abeja";

int i;

printf( "s1=%s\t", s1 );

printf( "s2=%s\n", s2 );

i = strcmp( s1, s2 );

printf( "s1 es " );

if( i < 0 ) printf( "menor que" );

else if( i > 0 ) printf( "mayor que" );

else printf( "igual a" );

printf( " s2\n" );

return 0;

Operaciones con cadenas

Consiste en asignar una cadena a otra, útiles para el tratamiento de

cadenas.

Isalnum(carácter): devuelve cierto (un entero cualquiera distinto de cero) si

carácter es una letra o dígito, y falso (el valor entero 0) en caso contrario.

isalpha(carácter): devuelve cierto si carácter es una letra, y falso en caso

contrario.
isblank(carácter): devuelve cierto si carácter es un espacio en blanco o un

tabulador.

Isdigit(carácter): devuelve cierto si carácter es un digito, y falso en caso

contrario.

isspace(carácter): devuelve cierto si carácter es un espacio en blanco, un

salto de línea, un retorno de carro, un tabulador, etc., y falso en caso

contrario.

Islower(carácter): devuelve cierto si carácter es una letra minúscula, y

falso en caso contrario.

isupper(carácter): devuelve cierto si carácter es una letra mayúscula, y

falso en caso contrario.

toupper(carácter): devuelve la mayúscula asociada a carácter, si la tiene;

si no, devuelve el mismo carácter.

tolower(carácter): devuelve la minúscula asociada a carácter, si la tiene; si

no, devuelve el mismo carácter.


CUARTA PARTE (ESTRUCTURAS DE REGISTROS):

Definición:

Declaración: En la sección de declaraciones de un algoritmo se declaran

las constantes, los tipos de datos y las variables que se usan en el mismo.

Acceso: En informática, un acceso es el resultado positivo de una

autentificación, para que el acceso dure un tiempo predeterminado, el

servidor guarda en el cliente una cookie, esta permitirá que el usuario

pueda entrar a su cuenta en el servidor hasta que esta caduque.

Estructura: En el ámbito de la informática, la estructura de datos es la

forma de organización de los datos elementales con la intención de facilitar

el trabajo de programación.

Arreglo: Un arreglo (vector, array, matriz) es un conjunto de datos o una

estructura de datos homogéneos que se encuentran ubicados en forma

consecutiva en la memoria
QUINTA PARTE (ARCHIVOS):

Concepto:
Es una colección de registros relacionados entre sí con aspectos en

común y organizados para un propósito específico almacenados en algún

dispositivo de almacenamiento externo. Ejemplo: archivo de nómina,

archivo de inventario, archivo de inscripciones

Estructura Y Acceso:
C++ posee una librería denominada fstream que contiene una serie

de funciones y operadores para trabajar con archivos tanto para entrada

como para salida de datos.

Para tener acceso a un archivo hay que abrirlo. El proceso de la

apertura se inicia identificando el nombre lógico del archivo (descriptor) que

se va a utilizar y el modo de apertura: lectura o escritura. Es de hacer notar

que este descriptor permitirá la asociación con el archivo físico que se

guardará en el medio de almacenamiento secundario.

Apertura de un archivo para lectura: Si queremos abrir el archivo

para leer su contenido se debe indicar el nombre lógico o descriptor del

archivo. Para ello se utiliza la siguiente instrucción:

ifstream descriptor_o_nombre_logico_del_archivo;

Ejemplo:

ifstream archivo;
Apertura de un archivo para escritura: Si lo que se quiere es abrir el archivo

para grabar datos en el archivo, se utiliza la siguiente instrucción:

ofstream descriptor_o_nombre_logico_del_archivo;

Ejemplo:

ofstream archivo;

Tipos de Archivos: Datos y De Texto.

C++ soporta dos tipos de archivos: texto y datos o binario. Los

archivos tipo texto almacenan datos como códigos ASCII. Los valores

simples, tales como números y caracteres están separados por espacios en

blanco. Este tipo de archivo se utiliza para almacenar datos o crear salidas

que se pueden imprimir después.

Los archivos binarios almacenan flujos de bits, sin prestar atención a

los códigos ASCII o a la separación de espacios. Son adecuados para

almacenar objetos y requiere usar la dirección de una posición de

almacenamiento.

Métodos para realizar la Gestión de Archivos

Para la gestión de archivos texto, además de abrir el archivo para entrada o

salida se utilizan las funciones miembro open y close y los operadores << y

>>.
La función miembro open: permite indicar el nombre físico del archivo al que

se le asociará al nombre lógico.

Sintaxis:
descriptor.open(“nombre_Fisico_del_archivo”);
Ejemplo:
archivo.open(“datos.txt”);
Si se desea abrir el archivo para agregar datos al final del archivo se utiliza

la siguiente instrucción:

descriptor.open(“nombre_Fisico_del_archivo”,ios::app);
Ejemplo:
archivo.open("datos.txt",ios::app);
La función miembro close: permite cerrar el archivo.
Sintaxis:
descriptor.close();
Ejemplo:
archivo.close();
El operador >>: se utiliza para la lectura de un archivo texto.
Sintaxis:
descriptor >> variable_que_guardará el valor;
Ejemplo:
archivo >> dato;
El operador <<: se utiliza para guardar un dato en un archivo texto.
Sintaxis:
descriptor << variable_o dato_a guardar;
Ejemplo:
Archivo << dato;
Ejercicio Resuelto
a) Realice un programa que permita guardar en un archivo texto la cédula,
nota definitiva y resultado de tres estudiantes.
#include <fstream> // Biblioteca para el manejo de archivos o ficheros
#include <iostream>
using namespace std;
int main()
{
ofstream archout;
archout.open("notas.txt");
if (!archout)
{ cout << " No se puede crear o abrir el archivo "; }
else
{ // Escritura en el archivo
archout << "15.432.152" << " " << 15.75 << " APROBADO" << endl;
archout << "18.547.666" << " " << 8.75 << " PER" << endl;
archout << "18.965.321" << " " << 5.0 << " REPROBADO " << endl;
archout.close();
}
}
b) Realice un programa que permita visualizar por pantalla el contenido del
archivo creado en el ejercicio anterior.
#include <fstream> // Biblioteca para el manejo de ficheros
#include <iostream>
using namespace std;
int main()
{ int i;
ifstream archin;
float nota;
char cadena[30];
archin.open("notas.txt");
if (archin.bad())
{ cout << "No se puede abrir el archivo " << endl; }
else
{ archin >> cadena; // Lectura del primer valor en el archivo
while (!archin.eof()) // mientras no se llegue al fin del archivo
{ cout << cadena << " ";
archin >> nota; // Lectura del siguiente valor en el archivo
cout << nota << " ";
archin >> cadena;
cout << cadena << endl;
archin >> cadena;
}
archin.close();
}
}
REFERENCIA BIBLIOGRÁFICAS

 Bassard, G y Bratley, P. (2010). Fundamentos de algoritmia. Prentice-Hall.

 Joyanes, L. (2008). Fundamentos de programación. Algoritmos ,

Estructuras de datos y objetos. Mc Graw Hill. Tercera edición.

 Joyanes, L. y Zahonero, I. (2005). Programación en C. Metodología,

algoritmos y Estructura de datos. Mc Graw Hill. Segunda Edición

 Martí, N. y Ortega, Y. (2004). Estructuras de datos y Métodos Algorítmicos.

Ejercicios Resueltos. Pearson Education.

 Autores: Julián Pérez Porto y Ana Gardey. Publicado: 2015.


Actualizado: 2020. Definiciones: Definición de acceso
(https://definicion.de/acceso/)
 https://paginadec.webcindario.com/old/cadenas-definicion.html
 https://www.google.com/search?q=metodos+de+busqueda&oq=metodos+d
e+busqueda&aqs=chrome..69i57.1030252j0j4&sourceid=chrome&ie=UTF-8
 http://www.utn.edu.ec/reduca/programacion/arreglos/operaciones_sobre_arr
eglos.html

 https://paginadec.webcindario.com/old/arreglos-
casificacion.html#:~:text=Los%20arreglos%20se%20pueden%20clasificar,(
matrices)%20o%20m%C3%BAltiples%20dimensiones.

También podría gustarte