Top Banner
Integrantes: Samuel Pérez, Ojeda Christian, Anthony Mayta
38

Libro

Mar 24, 2016

Download

Documents

Proyecto

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Libro

Integrantes: Samuel Pérez, Ojeda Christian,

Anthony Mayta

Page 2: Libro

INDICE GENERAL:

Capítulo 1

Fundamentos de programación

1.1: Algoritmos y programas…………………………………………………………………………………………………………….

1.2: Conceptos básicos de la programación………………………………………………………………………………………

1.3: C, un lenguaje estructurado. El compilador………………………………………………………………………………

1. 4: Comenzando a programar……………………………………………………………………………………………………….

1.5: Estructuras estáticas………………………………………………………………………………………………………………….

1.6: Estructuras externas…………………………………………………………………………………………………………………

1.7: Estructuras dinámicas……………………………………………………………………………………………………………….

1.8: Programación avanzada……………………………………………………………………………………………………………

1.9: Estructura básica de un programa en C…………………………………………………………………………………….

1.11:Estructuras de Repetición en C………………………………………………………………………………………………

1.12: Estructuras de control…………………………………………………………………………………………………………..

Capítulo 2

Desarrollo de funciones en el sistema informático

2. 1: Características del sistema de desarrollo elegido………………………………………………………………………

2.2: Arquitectura del sistema operativo……………………………………………………………………………………………

2.3: Ficheros……………………………………………………………………………………………………………………………………

2.4: Ficheros especiales…………………………………………………………………………………………………………………..

2.5: Procesos estructura. Creación…………………………………………………………………………………………………..

2.6: Tipos d variables ………………………………………………………………………………………………………………..

2.7: Ejemplos de programas realizados en turbo c++……………………………………………………………………

Page 3: Libro

INTRODUCCION

C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en

los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado

en BCPL.

Al igual que B, es un lenguaje orientado a la implementación de Sistemas

Operativos, concretamente Unix. C es apreciado por la eficiencia del código

que produce y es el lenguaje de programación más popular para crear

software de sistemas, aunque también se utiliza para crear aplicaciones.

Se trata de un lenguaje de tipos de datos estáticos, débilmente tipificado,

de medio nivel pero con muchas características de bajo nivel. Dispone de las

estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de

construcciones del lenguaje que permiten un control a muy bajo nivel. Los

compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar

código en ensamblador con código C o acceder directamente

a memoria o dispositivos periféricos.

La primera estandarización del lenguaje C fue en ANSI, con el estándar

X3.159-1989. El lenguaje que define este estándar fue conocido vulgarmente

como ANSI C. Posteriormente, en 1990, fue ratificado como

estándar ISO (ISO/IEC 9899:1990). La adopción de este estándar es muy

amplia por lo que, si los programas creados lo siguen, el código es portátil

entre plataformas y/o arquitecturas.

Page 4: Libro

CAPITULO 1

1.1: Algoritmos y programas INDICE

Este capítulo trata de ser una introducción a la metodología y tecnología de

la programación con el objetivo de proporcionar al lector los procedimientos

y técnicas para el desarrollo de programas

1.2: Conceptos básicos de metodología de la programación

Un lenguaje de programación es un lenguaje formal diseñado para expresar

procesos que pueden ser llevados a cabo por máquinas como las

computadoras.

Pueden usarse para crear programas que control el comportamiento físico y

lógico de una máquina, para expresar algoritmos con precisión, o como modo

de comunicación humana.

Está formado por un conjunto de símbolos y reglas sintácticas y semánticas

que definen su estructura y el significado de sus elementos y expresiones.

https://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n

1.3: C, un lenguaje estructurado. El compilador INDICE

Un compilador es un programa informático que traduce un programa escrito

en un lenguaje de programación a otro lenguaje de programación, generando

un programa equivalente que la máquina será capaz de interpretar.

Usualmente el segundo lenguaje es lenguaje de máquina, pero también

puede ser un código intermedio (bytecode), o simplemente texto. Este

proceso de traducción se conoce como compilación.

Un compilador es un programa que permite traducir el código fuente de un

programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior

Page 5: Libro

De esta manera un programador puede diseñar un programa en un lenguaje

mucho más cercano a cómo piensa un ser humano, para luego compilarlo a

un programa más manejable por una computadora.

https://es.wikipedia.org/wiki/Compilador

1.4: Comenzando a programar INDICE

Para empezar a programar en lenguaje C, necesitaras un compilador como

Turbo C++. Si usas un sistema operativo Linux este por defecto trae algún

compilador C.

Lo pueden descargar de forma gratis en el siguiente link:

http://www.mediafire.com/download/178ko5ssd5458mx/TurboC%2B%2B.zi

p

Posteriormente procedemos a descomprimir el archivo con winrar si no lo

tienen le dejamos en el siguiente link:

http://www.mediafire.com/download/fi14yhi1cc16z61/Winrar+by.+2011corr

idos.exe

Al haber descomprimido abrimos la carpeta de turbo c++.

Buscamos el instalador que ahí se encuentra (INSTALL.EXE)

Domos doble clic y nos aparece la siguiente ventana:

Page 6: Libro

Grafico#1

Titulo: Nos da la bienvenida e turbo c ++.

Debemos pulsar enter para continuar. Entonces nos aparecerá otra ventana.

Ahora debemos escribir la letra de la unidad donde se encuentran los

ficheros de instalación. Si éstos se encuentran en la unidad C, pulsaremos la

tecla C y después enter:

Grifico#2

Título : Nos muestra en donde está el instalar.

Page 7: Libro

A continuación se muestra otra ventana en la que aparece por defecto el

directorio donde se encuentran los archivos de instalación. Lo normal será

que aquí simplemente pulsemos enter para continuar.

Grafico#3

Título: donde vamos a instalar el programa.

La siguiente ventana nos indica en primer lugar el directorio donde se

instalará Turbo C++, que siguiendo el ejemplo será:C:\TC Con los cursores nos

desplazamos hasta la opción Start Installation y pulsamos enter, que iniciará

la instalación.

Grafico#4

Título: Presionamos para comenzar la instalación.

Page 8: Libro

Mientras se instala, en la parte inferior de la ventana aparecerán los ficheros

que se están copiando, como se muestra en la siguiente figura:

Grafico#5

Título: Comienza la estación

Una vez se hayan copiado todos los archivos, saldrá una un cuadro (como el

que se muestra bajo este párrafo) que nos informa de los últimos pasos de la

instalación. Pulsamos enter para continuar.

Grifico#6

Titulo: Finaliza la instalación.

Page 9: Libro

Tras pulsar enter nos aparece el contenido del fichero "leeme" de Turbo C++:

Grafico#7

Título: muestra un manual del programa.

Para finalizar pulsamos Escape.

Para ejecutar nuestro programa nos tenemos que dirigir a C:\TC\BIN y

localizar el ejecutable para acceder al compilador (TC.EXE).

Grafico#8

Título: el ejecutable del programa.

Page 10: Libro

He aquí un pantallazo del compilador funcionando …

Grafico#9

Título: Este es el programa.

Para poder comenzar a programar debemos saber la estructura básica de

turbo c++ que les mostramos a continuación.

#include <stdio.h>-------- (biblioteca estándar)

int main() ----------(estándar para que regrese un entero “resultado”)

{---------------------- (inicialización del programa el programa)

printf("¡Hola, mundo!\n"); (El printf nos sirve para visualizar un mensaje )

getchar();----------------(Nos sirve para parar el programa para que se pueda

visualizar el menjaje)

}

Page 11: Libro

1.5: Estructuras estáticas INDICE

Son aquellas en las que el tamaño ocupado en memoria se define antes de

que el programa se ejecute y no puede modificarse dicho tamaño durante la

ejecución del programa.

Estas estructuras están implementadas en casi todos los lenguajes.

Su principal característica es que ocupan solo una casilla de memoria, por lo

tanto una variable simple hace referencia a un unico valor a la vez, dentro de

este grupo de datos se encuentra: enteros, reales, caracteres, boléanos,

enumerados y subrangos (los últimos no existen en algunos lenguajes de

programación).

http://estructura-quique.blogspot.com/2012/10/estructura-estatica-y-estructura.html

1.6: Estructuras externas INDICE

El término estructura externa o configuración externa de un autómata

programable industrial se refiere al aspecto físico exterior del mismo,

bloques o elementos en que está dividido.

Actualmente son tres las estructuras más significativas que existen en el

mercado:

1: Estructura compacta.

2: Estructura semimodular. ( Estructura Americana)

3: Estructura modular. (Estructura Europea)

Estructura compacta

Page 12: Libro

Este tipo de autómatas se distingue por presentar en un solo bloque todos

sus elementos, esto es, fuente de alimentación, CPU, memorias,

entradas/salidas, etc..

Son los autómatas de gama baja o nanoautómatas los que suelen tener una

estructura compacta. Su potencia de proceso suele ser muy limitada

dedicándose a controlar máquinas muy pequeñas.

Estructura semimodular

Se caracteriza por separar las E/S del resto del autómata, de tal forma que en

un bloque compacto están reunidas las CPU, memoria de usuario o de

programa y fuente de alimentación y separadamente las unidades de E/S .

Son los autómatas de gama media los que suelen tener una estructura

semimodular.

Estructura modular

Su característica principal es la de que existe un módulo para cada uno de los

diferentes elementos que componen el autómata como puede ser una

fuente de alimentación, CPU, E/S, etc. La sujeción de los mismos se hace por

carril DIN, placa perforada o sobre RACK, en donde va alojado el BUS externo

de unión de los distintos módulos que lo componen.

http://www.grupo-

maser.com/PAG_Cursos/Auto/auto2/auto2/PAGINA%20PRINCIPAL/PLC/ESTRUCTURAS/ESTRUCTU

RA%20EXTERNA/estructura_externa.htm

Page 13: Libro

1.7: Estructuras dinámicas INDICE

ESTRUCTURA DINAMICA

No tienen las limitaciones o restricciones en el tamaño de memoria ocupada

que son propias de las estructuras estáticas.

Mediante el uso de un tipo de datos especifico, denominado puntero, es

posible construir estructuras de datos dinámicas que no son soportadas por

la mayoría de los lenguajes, pero que en aquellos que si tienen estas

características ofrecen soluciones eficaces y efectivas en la solución

de problemas complejos.

Se caracteriza por el hecho de que con un nombre se hace referencia a un

grupo de casillas de memoria. Es decir un dato estructurado tiene varios

componentes.

http://estructura-quique.blogspot.com/2012/10/estructura-estatica-y-estructura.html

1.8: Programación avanzada INDICE

1.9: Estructura básica de un programa en C

En general, un programa en C consta de las siguientes partes:

Directivas al preprocesador. Definición de tipos de datos. Declaración de variables. Definición de funciones.

Cualquier programa debe poseer una función, llamada main, que es la función que toma el control cuando se corre el programa.

El primer programa

El ejemplo siguiente muestra un programa completo en C, que imprime un texto en pantalla.

Page 14: Libro

#include <stdio.h>

int main()

{

printf(" Mi primer programa\n");

getch();

}

1.11: Estructuras de Repetición en C INDICE

Las estructuras de repetición generan ciclos que permiten repetir una o mas

veces ciertas instrucciones. Es importante para el uso de estas estructuras

tener especial cuidado que la condición lógica tenga un punto de termino,

para así evitar un bucle infinito en un caso no deseado. En el lenguaje de

programación C se utilizan 3 tipos de estructuras de repetición

Estructura de repetición While

Mientras la condición lógica resulte verdadera se repetirán las instrucciones

del cuerpo de while.

Estructura:

while (condición_lógica){

... cuerpo ...

}

Ejemplo

#include <stdio.h>

int main() {

int repetir = 1;

Page 15: Libro

while(repetir==1) {

printf("Ingrese un valor: ");

scanf("%d", &repetir);

}

return 0;

}

Estructura de repetición Do While

Para este caso se ejecutan las instrucciones del cuerpo y posteriormente se

evalúa la condición lógica y mientras resulte ser verdadera se repetirá el

cuerpo. Esta estructura de repetición nos asegura que al menos se ejecutará

una vez el cuerpo de la estructura.

Estructura:

do{

... cuerpo ...

} while(condición lógica);

Ejemplo

#include <stdio.h>

int main() {

int repetir;

do {

printf("Ingrese un valor: ");

Page 16: Libro

scanf("%d", &repetir);

} while(repetir==1);

return 0;

}

Estructura de repetición For

Esta estructura consta de 2 campos de asignación y uno de condición.

Normalmente se usa para ciclos controlados, con una variable de iteración,

asignándole un valor de inicio, la condición de término y la asignación de

cambio. El cuerpo de "for" se repite mientras la condición sea verdadera.

Estructura del for:

for(asignación_inicial; condición_lógica; asignación_de_cambio){

... cuerpo ...

}

Ejemplo

#include <stdio.h>

int main() {

int i;

for(i=0; i<10; i++) {

printf("i: %d\n", i);

}

return 0;

}

Page 17: Libro

http://wiki.decom-uv.cl/index.php/Estructuras_de_Repetici%C3%B3n_en_C

1.12: Estructuras de control INDICE

En lenguajes de programación, las estructuras de control permiten modificar

el flujo de ejecución de las instrucciones de un programa.

Con las estructuras de control se puede:

De acuerdo a una condición, ejecutar un grupo u otro de sentencias (If-Then-

Else)

De acuerdo al valor de una variable, ejecutar un grupo u otro de sentencias

(Select-Case)

Todas las estructuras de control tienen un único punto de entrada y un

único punto de salida. Las estructuras de control se puede clasificar

en : secuenciales, iterativas y de control avanzadas.

Tipos de estructura de control

Sentencias if

Se trata de una estructura de control que permite redirigir un curso de acción

según la evaluación de una condición simple, sea falsa o verdadera.

Si la condición es verdadera, se ejecuta el bloque de sentencias 1, de lo

contrario, se ejecuta el bloque de sentencias 2.

IF (Condición) THEN

(Bloque de sentencias 1)

ELSE

(Bloque de sentencias 2)

END IF

Se pueden plantear múltiples concisiones simultáneamente, si se cumple la

(Condición 1), se ejecuta (Bloque de sentencias 1) en caso contrario se 2),

Page 18: Libro

comprueba la (Condición si es cierta se ejecuta (Bloque de sentencias 2), y así

sucesivamente hasta n condiciones, si ninguna de ellas es cumple se ejecuta

(Bloque de sentencias else).

IF (Condición 1)

(Bloque de sentencias 1)

ELSE

IF (Condición 2)

(Bloque de sentencias 2)

.....

ELSEIF (Condición n)

(Bloque de sentencias n)

ELSE

(Bloque de sentencias ELSE)

Select-Case

Sentencia Select-Case

Esta sentencia permite ejecutar una de entre varias acciones en función del

valor de una expresión. Es una alternativa a if then else cuando se compara la

misma expresión con diferentes valores.

Se evalúa la expresión, dando como resultado un número.

Luego, se recorren los "Case" dentro de la estructura buscando que el

número coincida con uno de los valores.

Page 19: Libro

Es necesario que coincidan todos sus valores.

Cuando se encuentra la primera coincidencia, se ejecuta el bloque de

sentencias correspondiente y se sale de la estructura Select-Case.

Si no se encuentra ninguna coincidencia con ningún valor, se ejecuta el

bloque de sentencias de la sección "Case Else".

SELECT (Expresión)

CASE Valor1

(Bloque de sentencias 1)

CASE Valor2

(Bloque de sentencias 2)

CASE Valor n

(Bloque de sentencias n)

CASE ELSE

(Bloque de sentencias "Else")

END SELECT

http://es.wikipedia.org/wiki/Estructuras_de_control

Page 20: Libro

CAPITULO 2

2.1: Características del sistema de desarrollo elegido INDICE

Características del lenguaje C++

Las principales características del Lenguaje C son:

1.-Tiene un conjunto completo de instrucciones de control.

2.-Permite la agrupación de instrucciones.

3.-Incluye el concepto de puntero (variable que contiene la dirección de otra

variable).

4.-Los argumentos de las funciones se transfieren por su valor.

5.-No forma parte del lenguaje, sino que se proporciona a través de una

biblioteca de funciones.

Permite la separación de un programa en módulos que admiten compilación

independiente.

Se conoce como un lenguaje de programación de sistemas, no se adapta mal

al resto de aplicaciones. De hecho, hoy en día un alto porcentaje de software

para ordenadores personales está escrito en Lenguaje C. Por ejemplo, el

sistema operativo MS-DOS.

Algunas de las características más importantes que definen el lenguaje de

programación son:

Tamaño pequeño.

Uso extensivo de llamadas a funciones.

Comandos breves .

Lenguaje estructurado.

Programación de bajo nivel

Implementación de apuntadores - uso extensivo de apuntadores para la

memoria, arreglos, estructuras y funciones

Las diversas razones por la cual se ha convertido en un lenguaje de uso

profesional son:

El uso de constructores de alto nivel.

Page 21: Libro

El poder manejar actividades de bajo-nivel.

El generar programas eficientes.

La posibilidad de poder ser compilado en una variedad de computadoras, con

pocos cambios .

Un punto en contra es que tiene una detección pobre de errores, lo cual en

ocasiones es problemático para los principiantes.

Links:

http://teoria-de-programacion.globered.com/categoria.asp?idcat=34

2.2: Arquitectura del sistema operativo INDICE

Es un conjunto de programas, rutinas, Funciones software, etc. que hace de

Interfaz entre el usuario y el hardware de un sistema informático.

El núcleo

El núcleo es la componente del sistema operativo que siempre está residente

en la memoria real del computador. La función primordial del núcleo es

transformar los recursos reales del computador en recursos estándares y

cómodos de usar.

La API del núcleo

Una API (Interfaz de Programación de Aplicaciones) es el conjunto de

servicios que ofrece un sistema a las aplicaciones usuarias de ese sistema. Las

aplicaciones invocan estos servicios a través de llamadas a procedimientos.

La API queda definida por lo tanto por los nombres de estos procedimientos,

sus argumentos y el significado de cada uno de ellos.

Ejemplos de llamadas al sistema en Unix son:

Manejo de Procesos: creación ( fork), destrucción ( kill), término ( exit),

sincronización ( wait), carga de un binario ( exec).

Manejo de memoria: extensión de la memoria de datos ( sbrk).

Manejo de archivos y dispositivos: open, read, write y close.

Page 22: Libro

Los drivers para dispositivos

La operación de los dispositivos es altamente dependiente de su

implementación. Es así como un disco SCSI se opera de una forma distinta de

un disco IDE. Para independizar el código del núcleo de los variados

mecanismos de interacción con los dispositivos, el núcleo define clases de

dispositivos. Ejemplos de clases son disco, cinta, puerta de comunicación,

interfaz de red, etc. Para cada clase se define una interfaz estándar para

interactuar con cualquier dispositivo que pertenezca a la clase. Esta interfaz

corresponde a las declaraciones de un conjunto de procedimientos no

implementados.

Links

http://asignaturas.diatel.upm.es/ffacc/doc/Arquitectura%20Sistemas%20Operativos.pdf

http://users.dcc.uchile.cl/~jpiquer/Docencia/SO/aps/node16.html

2.3: Ficheros INDICE

6. Introducción a ficheros

Hasta ahora un programa podía almacenar información en la memoria

mediante las variables declaradas . Este almacenamiento es temporal y está

limitado al tiempo de ejecución del programa.

Cuando surge la necesidad de almacenar información de manera

permanente se deben usar ficheros. Un fichero es una entidad que contiene

información de un conjunto de elementos. El fichero puede estar guardado

en algún medio de almacenamiento secundario como por ejemplo disco

rígido, disckette, etc. La agrupación de ficheros relacionados entre sí por

algún concepto se denomina base de datos.

Un fichero puede estar compuesto por registros, cada uno de los cuales

contiene información sobre un elemento..

Ejemplo: se tiene un fichero de registros o estructuras Articulo

Page 23: Libro

struct Articulo

{

int codigo;

char descripcion[maxdesc];

float precio;

};

La clave de acceso de cada registro es el campo codigo, pues dado un código

en particular se puede identificar un único registro. En cambio, el campo

precio no sirve como clave de acceso pues puede existir más de un artículo

con el mismo precio.

Ejemplo: el almacenamiento en una cinta es de acceso secuencial.

El modo de organización lógica de los datos de un fichero puede ser de tres

maneras:

Secuencial: las consultas de los registros se hace secuencialmente desde el

primer elemento hasta el elemento i-ésimo. La alta de un nuevo registro se

realiza al final del fichero.

Directa: se establece una relación entre la clave del registro y la posición del

registro en el fichero. Para acceder al elemento i-ésimo se aplica una función

de acceso que calcula la posición del registor en el fichero de acuerdo a la

clave del mismo.

Ejemplo: se tiene un fichero de registros Articulo cuyo campo clave es el

código. Los códigos son numeros que van de 10 en 10, ej. 10, 20, 30, 40, 50,

etc. Se realiza la siguiente función de acceso F:

Page 24: Libro

F (código) = código / 10;

la cual que devuelve la posición del registro a partir del código, y por lo tanto

puede accederse a él directamente.

Indexada: básicamente es una organización secuencial a la que se le agrega

una o más tablas de índices que permiten acceder a los registros de manera

más directa.

Ejemplo: se tiene un fichero de registros Articulo cuyo campo clave es el

código. Los códigos son numeros que no siguen un orden determinado, por

lo tanto no se puede construir una función de acceso directo. Se construye

una tabla de índices que permite acceder directamente a los registros cuyo

código se encuentra en un rango dado. Si se desea buscar los registros

mediante parte de su descripción, se puede construir otra tabla de índices

que permita, por ejemplo, acceder a todos los registros cuya descripción

comienza con una letra o una serie de letras dadas.

6.2. Operaciones con ficheros

Existen operaciones que afectan a todo el fichero, entre las cuales se

enumeran:

Crear un fichero

Borrar un fichero

Ordenar un fichero según algún criterio de orden

Fusionar dos ficheros para formar un tercer fichero

Dividir un fichero en dos o más ficheros

Además, existen otras operaciones que afectan a uno o más registros del

fichero, entre las cuales se enumeran:

Alta de un nuevo registro

Baja de un registro

Page 25: Libro

Modificación de uno o más registros

Consulta de uno o más registros

6.3. Ficheros en /C++

6.3.1. Streams

Existe una manera de manipular ficheros en C++ mediante los

denominados streams.

Un stream representa un flujo de información:

desde el programa a un dispositivo o periférico de salida, o

desde un periférico de entrada al programa

La manera de utilizar un stream de entrada es:

stream_entrada >> variable;

La manera de utilizar un stream de salida es:

stream_salida << información;

Hasta el momento se han utilizado dos streams predefinidos:

cin es un stream de entrada asociado al teclado

cout es un stream de salida asociado a la pantalla

Pueden definirse stream de entrada y/o salida y asociarlos a un fichero, de

manera que se puedan recibir datos del fichero y/o enviar datos al fichero

respectivamente.

La librería que se debe utilizar es <fstream.h>.

Se debe declarar un stream mediante el constructor:

fstream nombre_stream (nombre_fichero, opciones);

Page 26: Libro

Los parámetros son optativos. Si están presentes sirven para realizar la

apertura del fichero. El nombre del fichero es un string que indica la ruta del

fichero que se asocia al stream.

Las opciones indican diferentes modos entre los cuales se encuentran:

ios::in: crea un stream de entrada, es decir, para lectura de datos del fichero

ios::out: crea un stream de salida, es decir, para escritura de datos en el

fichero

ios::ate: hace que la posición inicial sea al final del fichero

ios::app: se sitúa al final del fichero antes de cada escritura

ios::trunc: borra cualquier cosa que pudiera haber en el fichero

ios::nocreate: si el fichero no existe fallará

ios::noreplace: si el fichero existe fallará

ios::bin: abre el fichero como binario

Entre las operaciones disponibles se encuentran:

Ejemplo:

if (fichero1.eof()){

//fin de fichero, no hay más datos

}

Se debe considerar que para leer o escribir un stream existe un "cabezal" que

se posiciona en el lugar a realizar la operación. Las siguientes funciones

informan la posición o manipulan el cabezal.

tellp(), es una función que devuelve como resultado la posición actual (tipo

pos_type) de un stream de salida

seekp(posición, posición_inicial), sitúa el lugar de escritura indicada en

posición en forma relativa a posicion_inicial, la cual puede ser ios::beg

(comienzo), ios::cur (actual), ios::end (fin).

Ficheros de estructuras

Page 27: Libro

Cuando se quiere guardar información de estructuras o registros en C++ se

deben utilizar las funciones de ficheros de la librería <stdio.h>.

Existe un tipo de datos denominado FILE por medio del cual se manipulan los

ficheros.

Entre las funciones definidas para trabajar con ficheros se encuentran:

FILE* fopen (const char *name, const char *mode)

La función fopen recibe como parámetros:

un string name con el nombre del fichero

un string mode con el modo de apertura del fichero que puede ser:

"r" : abre fichero existente para lectura. Si no existe falla la operación

"w" : abre fichero para escritura. Si existe, sus contenidos se borran.

"a" : abre fichero para escritura. Si existe, se agregan los datos al final

"r+" : abre fichero para lectura y escritura. El fichero debe existir.

"w+" : abre fichero para lectura y escritura. Si existe, sus contenidos se

borran

"a+" : abre fichero para lectura y escritura. Si existe, se agregan datos al final

Devuelve un puntero a un fichero, que en caso de error en la operación será

NULL.

int fclose (FILE *file)

La función fclose cierra el fichero abierto file.

Devuelve un int que si es 0 indica que la operación se realizó con éxito.

size_t fread (void *pbuffer, size_t size, size_t number, FILE *file)

Page 28: Libro

La función fread se usa para leer desde el fichero, y recibe como parámetros:

un puntero a FILE del fichero file desde el cual se quiere leer

un número number de tipo size_t que indica la cantidad de elementos que se

quiere leer

un número size de tipo size_t que indica el tamaño en bytes de cada

elemento

un puntero pbuffer a un lugar donde se copiarán los elementos leídos.

Considerar que el tamaño que debe tener el buffer apuntado por pbuffer

tiene que se lo suficientemente grande como para albergar la cantidad de

elementos indicada.

Devuelve un número de tipo size_t que indica el número de elementos que

se han leído.

size_t fwrite (void *pbuffer, size_t size, size_t number, FILE *file)

La función fwrite se usa para escribir en el fichero, y recibe los mismos

parámetros que la función fread.

Devuelve un número de tipo size_t que indica el número de elementos que

se han escrito.

int fseek (FILE *file, long offset, int mode)

La función fseek desplaza el cabezal de lectura, y recibe los parámetros:

un long offset que indica la cantidad de bytes que se desplaza

Page 29: Libro

un int mode que indica desde dónde se desplaza, con uno de los siguientes

valores:

SEEK_SET: desde el comienzo

SEEK_CUR: desde el cursor

SEEK_END: desde el final

Devuelve un int que si es 0 indica que la operación se realizó con éxito.

int ftell (FILE *file)

La función ftell devuelve un int que indica el número de bytes desde el

comienzo hasta la posición donde se encuentra el cabezal de lectura.

int feof (FILE *file)

Luego del primer intento de lectura más allá de la señal de fin de fichero, la

función feof devuelve un valor diferente de 0.

Devuelve 0 mientras las lecturas hehcas no lleguen al final del fichero.

void rewind (FILE *file)

La función rewind sitúa el cabezal de lectura al inicio del fichero.

Cabe destacar que tanto las funciones fread, fwrite, fseek, ftell manejan

posiciones o tamaños indicados en bytes. Para obtener el tamaño en bytes

de una estructura dada puede usarse la función

sizeof (estructura)

y con este valor pueden calcularse los parámetros necesarios de las funciones

anteriores.

Page 30: Libro

Ejemplo: Crear un fichero de artículos. Se debe permitir agregar artículos,

modificar un artículo existente y listar todos los artículos existentes.

#include <iostream.h>

#include <stdio.h>

const int maxart = 100;

const int maxdesc = 30;

struct articulo {

int codigo;

char descripcion[maxdesc];

float precio;

Link:

http://dmi.uib.es/~abasolo/foninf/2002-2003/capitulos/6-ficheros.html

http://dmi.uib.es/~abasolo/foninf/2002-2003/capitulos/6-ficheros.html

2.4: Ficheros especiales INDICE

breFichero)

{

ifstream in;

TPersona persona;

Page 31: Libro

in.open(nombreFichero, ios::binary);

if (in.bad())

{

cout << "Error al abrir el fichero: " << nombreFichero << endl;

}

else

{

LeePersonaFicheroBIN(in,persona);

while (!in.eof())

{

EscribirPersona(persona);

LeePersonaFicheroBIN(in,persona);

pausa();

}

in.close();

}

}

void LeePersonaFicheroBIN(ifstream &fichero, TPersona &p)

{

Page 32: Libro

fichero.read((char *)(&p),sizeof(TPersona));

}

void EscribePersonaFicheroBIN(ofstream &fichero, TPersona p)

{

fichero.write((char *)(&p),sizeof(TPersona));

}

Link:

http://www.lcc.uma.es/~pastrana/LP/curso0405/P13_05.pdf

2.5: Procesos estructura. Creación INDICE

Estructura general de un programa en C

/* Comentarios de un parrafo completo

comprendidos entre /*.....*/, sirven para

aclarar qué el programa o una parte del programa */

// Comentarios de 1 sola línea

// Zona de ficheros de cabecera de las librerías

#include <....... . h> // h de Head

Page 33: Libro

#include <....... . h>

// Zona de prototipos de funciones

int Potencia (int x,y)

// Zona de variables globales

int valor;

float media_total;

void main (void) // Prog. ppal. típico de Turbo C

{

// llave de inicio del programa

// codigo del programa

.......

.......

.......

// fin del programa

}

// Desarrollo del código de las funciones anteriores

Page 34: Libro

Link:

http://mimosa.pntic.mec.es/~flarrosa/lengc.pdf

2.6: Tipos d variables

Existen varios tipos de variables, y cada uno corresponde a un tamaño

máximo de un número, un carácter o una verdad.

1.1 bool

Por lo general utiliza 1 byte de memoria, valores: true o false.

1.2 char

Utiliza generalmente 1 byte de memoria, permite almacenar un carácter,

valores; 256 caracteres.

1.3 unsigned short int

Utiliza generalmente 2 bytes de memoria, valores: de 0 a 65 535

1.4 short int

Utiliza generalmente 2 bytes de memoria, valores: de -32768 a 32767.

1.5 unsigned long int

Utiliza generalmente 4 bytes de memoria, valores: de 0 a 4 294 967 295.

1.6 long int

Utiliza generalmente 4 bytes de memoria, valores: de -2 147 483 648 a 2 147

483 647.

1.7 int (16 bits)

Utiliza generalmente 2 bytes de memoria, valores: de -32 768 a 32 767.

1.8 int (32 bits)

Utiliza generalmente 4 bytes de memoria, valores: de -2 147 483 648 a 2 147

483 647.

1.9 unsigned int (16 bits)

Utiliza generalmente 2 bytes de memoria, valores: de 0 a 65 535.

Page 35: Libro

1.10 unsigned int (32 bits)

Utiliza generalmente 2 bytes de memoria, valores: de 0 a 4 294 967 295.

1.11 double

Utiliza generalmente 8 bytes de memoria, valores: de 2.2e-308 a 3.4e-38.

1.12 float

Utiliza generalmente 4 bytes de memoria, valores: de 1.2e-308 a 3.4e-38.

Atención!

El tamaño de las variables en memoria puede variara de un PC a otro.

2.7: Ejemplos de programas realizados en turbo c++

Link de descarga de los ejercicios

http://www.mediafire.com/download/avehq4zbu61himd/ejercicios+recopila

dos2+.CPP

Para realizar este menú utilizamos los siguientes ciclos adicionales:

Gotoxy Para esto tilizamos pentium dar un reciente la librería math.h nos regala la función sin gente ( ).

La pantalla de turbo c ++ está compuesto por dos ejes "x y"

Ejemplo:

gotoxy(30,2);printf(" ESCOJA UNA OPCION ");

Donde (30,2)

Page 36: Libro

30 equivale al eje de las x .

2 equivale al eje de las y.

-Textcolor

Esta función selecciona el color de texto especificado.

void textcolor(int color);

Ejemplo

textcolor( LIGHTRED );

cprintf( "Este mensaje tiene otro color de fondo y

de texto.\r\n" );

Colocamos cprintf ,c para que le pueda coger el

color al texto.

Colores:

-Recuadros en C++ ” margen”

Ya sabemos usar los ciclos for y el gotoxy, vamos a hacer un recuadro en c++,

es decir, un margen o contorno para darle más presentación a un programa.

#include<stdio.h>

Page 37: Libro

#include<conio.h>

int main()

{

int x=0;

for(x=1;x<=80;x++)

{

gotoxy(x,1);printf(".");

gotoxy(x,22);printf(".");

gotoxy(4,23);printf("Nombre: Programa: Numero: ");

gotoxy(x,24);printf(".");

if(x<=24)

{

gotoxy(1,x);printf(".");

gotoxy(80,x);printf(".");

}

}

getch();

}

Page 38: Libro

Lenguaje c

En este libro nos

introducimos en

el lenguaje de

programación C creado

en 1972 por Dennis M.

Ritchie en los Laboratorios

Bell como evolución del

anterior lenguaje B, a su

vez basado en BCPL.

Al igual que B, es un

lenguaje orientado a la

implementación de Sistemas

Operativos,

concretamente Unix. C es

apreciado por la eficiencia

del código que produce y es

el lenguaje de

programación más popular

para crear software de

sistemas, aunque también

se utiliza para crear

aplicaciones.