Manual c

36
Facultad de ciencia, tecnología y ambiente Ingeniería en sistemas 1 CRISTHEL CENTENO Profesor: Elsner Go Manual de Laboratorio de prog 1

Transcript of Manual c

Facultad de ciencia, tecnología y ambienteIngeniería en sistemas

1

CRISTHEL CENTENO

Profesor: Elsner Gonzáles

Manual de Laboratorio de prog 1

ContenidoLenguaje C++......................................................................................................................................1

Elementos......................................................................................................................................1

La función main()........................................................................................................................1

Comentarios...............................................................................................................................1

Tipos de datos básicos en C++....................................................................................................1

Tipo de datos básicos.................................................................................................................1

Caracteres válidos......................................................................................................................1

Librerías de C++..........................................................................................................................2

Palabras reservadas....................................................................................................................5

Cout y cin....................................................................................................................................5

Sizeof..........................................................................................................................................5

Arreglos......................................................................................................................................7

Arreglo bidimensional................................................................................................................7

Estructuras.................................................................................................................................7

Arreglos de estructuras..............................................................................................................8

Lenguaje C........................................................................................................................................12

Elementos....................................................................................................................................12

Comentarios.............................................................................................................................12

Identificadores.........................................................................................................................12

Constantes...............................................................................................................................12

Sentencias................................................................................................................................13

Palabras reservadas..................................................................................................................13

Printf y scanf.............................................................................................................................13

Precisión...................................................................................................................................14

Especificadores de conversión.................................................................................................15

Otras funciones para leer y escribir..........................................................................................15

Ficheros....................................................................................................................................16

Estructuras de control..............................................................................................................17

Funciones.................................................................................................................................20

Ejercicios en clase.....................................................................................................................21

Tabla 2 ASCII

2

Ilustración 1 Laboratorio_1Ilustración 2 sizeof_C++Ilustración 3 Tipos de datosIlustración 4 Laboratorio_3Ilustración 5 ArregloIlustración 6 cadena de carácterIlustración 7 EstructuraIlustración 8 Declaración de arreglos de estructurasIlustración 9Guardar datos en arreglos de estructuras

Lenguaje C++C++ es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al lenguaje de programación C mecanismos que permiten la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido.

ElementosLa función main()Una función C++ es un subprograma que devuelve un valor, un conjunto de valores o realiza una tarea específica.

ComentariosUn comentario es cualquier información que se escribe el en programa para proporcionar información de cualquier tipo.

Tipos de datos básicos en C++El tipo de dato determina la naturaleza del valor que puede tomar una variable.Un tipo de dato define un dominio de valores y las operaciones que se pueden realizar con éstos valores. C++ dispone de unos cuantos tipos de datos predefinidos (simples) y permite al programador crear otros tipos de datos.

Tipo de datos básicosInt (Números enteros) Tamaño en bytes: 2 bytes (16 bits) Dominio: son todos los números enteros entre los valores -32.768 y 32.767

Float (Números reales) Tamaño en bytes: 4 bytes Dominio: son todos los números reales que contienen una coma decimal comprendidos entre los valores: 3,4 × 10-38 y 3,4 × 1038

Double (Números reales más grandes que float) Tamaño en bytes: 8 bytes Dominio: son todos los números reales que contienen una coma decimal comprendidos entre los valores: 1,7 × 10-308 y 1,7 × 10308

Bool (Valores lógicos) Tamaño en bytes: 1 byte Dominio: dos únicos valores: { true, false }

Char (Caracteres y cualquier cantidad de 8 bits) Tamaño en bytes: 1 byte Dominio: dígitos, letras mayúsculas, letras minúsculas y signos de puntuación.

Void (Nada. Sirve para indicar una función que no devuelve valor)

Caracteres válidos/ ! % ^ & * () - + {} [] \ ; : <> ¿ .>, < ,>=, <=, ==, !=

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, K, R, S, T, U, V, W, X, Y, Z

a, b, c, d, e, f, g, h, i, j, k, l, m, n, o ,p,q, r, s, s, t, u, v, w, x, y, z.

Librerías de C++Junto con los compiladores de C y C++, se incluyen ciertos archivos llamados bibliotecas mas comúnmente librerías. Las bibliotecas contienen el código objeto de muchos programas que permiten hacer cosas comunes, como leer el teclado, escribir en la pantalla, manejar números, realizar funciones matemáticas, etc.

Las bibliotecas están clasificadas por el tipo de trabajos que hacen, hay bibliotecas de entrada y salida, matemáticas, de manejo de memoria, de manejo de textos y como imaginarás existen muchísimas librerías disponibles y todas con una función específica.

¿Qué son exactamente las librerías?

En C++, se conoce como librerías (o bibliotecas) a cierto tipo de archivos que podemos importar o incluir en nuestro programa. Estos archivos contienen las especificaciones de diferentes funcionalidades ya construidas y utilizables que podremos agregar a nuestro programa, como por ejemplo leer del teclado o mostrar algo por pantalla entre muchas otras más.

Al poder incluir estas librerías con definiciones de diferentes funcionalidades podremos ahorrarnos gran cantidad de cosas, imaginemos por ejemplo que cada vez que necesitemos leer por teclado, debamos entonces crear una función que lo haga (algo realmente complejo), al poder contar con las librerías en C++, podremos hacer uso de una gran variedad de funciones que nos facilitarán la vida y aumentarán el modularidad de nuestros códigos.

Las librerías no son únicamente archivos externos creados por otros, también es posible crear nuestras propias librerías y utilizarlas en nuestros programas. Las librerías pueden tener varias extensiones diferentes, las más comunes son: .lib, .bpl, .a, .dll, .h y algunas más ya no tan comunes.

En conclusión: Las librearías son archivos (no siempre externos) que nos permiten llevar a cabo diferentes tareas sin necesidad de preocuparnos por cómo se hacen sino simplemente entender cómo usarlas. Las librearías en C++ permiten hacer nuestros programas más modulares y reutilizables, facilitando además crear programas con funcionalidades bastante complejas en unas pocas líneas de código.

Sintaxis para declarar Librerías en C++

La declaración de librerías, tanto en C como en C++, se debe hacer al principio de todo nuestro código, antes de la declaración de cualquier función o línea de código, debemos indicarle al compilador que librerías usar, para el saber que términos estaran correctos en la escritura de nuestro código y cuáles no. La sintaxis es la siguiente: #include <nombre de la librería> o alternativamente #include "nombre de la librería". Cualquiera de las 2 formas es válida en C++ (no estoy seguro si en C sea válido), ten en cuenta que siempre el nombre de la librería debe ir entre " y " o entre < y >. En tu código puedes declarar todas las librerías que quieras aunque en realidad no tienen sentido declarar una librería que no vas a usar en tu programa, sin embargo no existe límite para esto.

Librerías Estandar de C++ (Standar Template Library o STL)

A continuación, pondré algunas de las librerías de uso más común de C++ y que forman parte de las librerías estándar de este lenguaje.

fstream:

Flujos hacia/desde ficheros. Permite la manipulación de archivos desde el programar, tanto leer como escribir en ellos.

iosfwd:

Contiene declaraciones adelantadas de todas las plantillas de flujos y sus typedefs estándar. Por ejemplo, ostream.

iostream:

Parte del a STL que contiene los algoritmos estándar, es quizá la más usada e importante (aunque no indispensable).

La biblioteca list:

Parte de la STL relativa a contenedores tipo list; listas doblemente enlazadas

math:

Contiene los prototipos de las funciones y otras definiciones para el uso y manipulación de funciones matemáticas.

memory:

Utilidades relativas a la gestión de memoria, incluyendo asignadores y punteros inteligentes (auto_ptr).

"auto_ptr" es una clase que conforma la librería memory y permite un fácil manejo de punteros y su destrucción automaticamente.

Biblioteca new:

Manejo de memoria dinámica

numeric:

Parte de la librería numérica de la STL relativa a operaciones numéricas.

ostream:

Algoritmos estándar para los flujos de salida.

queue:

Parte de la STL relativa a contenedores tipo queue (colas de objetos).

Librería stdio:

Contiene los prototipos de las funciones, macros, y tipos para manipular datos de entrada y salida.

Librería stdlib:

Contiene los prototipos de las funciones, macros, y tipos para utilidades de uso general.

string:

Parte de la STL relativa a contenedores tipo string; una generalización de las cadenas alfanuméricas para albergar cadenas de objetos. Muy útil para el fácil uso de las cadenas de caracteres, pues elimina muchas d elas dificultades que generan los char

typeinfo:

Mecanismo de identificación de tipos en tiempo de ejecución

vector:

Parte de la STL relativa a los contenedores tipo vector; una generalización de las matrices unidimensionales C/C++

forward_list

Esta librería es útil para implementar con gran facilidad listas enlazadas simples.

list

Permite implementar listas doblemente enlzadas (listas enlazadas dobles) facilmente.

iterator

Proporciona un conjunto de clases para iterar elementos.

regex

Proporciona fácil acceso al uso de expresiones regulares para la comparación de patrones.

thread

Útil para trabajar programación multihilos y crear múltiples hilos en nuestra aplicación.

Nota: Para más información sobre las librerías estandar de C++ y STL puedes ingresar aquí

¿Cómo declarar una librería en C++?

Veamos a continuación como se haría la declaración de unas cuantas librerías conocidas, recuerda que se pueden declarar todas las librerías necesarias y siempre debe hacerse al comienzo del código fuente.

Palabras reservadas

Cout y cinSe usan para la entrada y salida de datos en lenguaje c++.

SizeofProporciona la cantidad de almacenamiento, en bytes, necesaria para almacenar un objeto del tipo del operando.

Ilustración 2 sizeof_C++

Ilustración 3 Tipos de datos

Ilustración 4 Laboratorio_3

Pueden modificarse los rango de valores agregando las siguientes palabras:

Short (Corto)

Largo (Largo)

Signe (Con signo)

Unsigne (Sin signo)

ArreglosSon tipos de datos complejos, abarcan un conjunto de variables del mismo tipo

Para declarar un arreglo primero se escribe el tipo de dato, luego el nombre, luego el tamaño y se le asigna un valor.

Ilustración 5 Arreglo

Al llamar un arreglo solo se escribe el nombre, no es necesario el tamaño.

Ilustración 6 cadena de carácter

Arreglo bidimensionalEs un arreglo con 2 dimensiones, en memoria se guardan como si fueran una matriz

Para declarar un arreglo se escribe el tipo de dato, el nombre del arreglo, el número de filas y el número de columnas.

Para llamar a un arreglo se escribe el nombre y la ubicación de la fila y la columna

EstructurasLas estructuras nos permiten agrupar varios datos, que mantengan algún tipo de relación, aunque sean de distinto tipo, permitiendo manipularlos todos juntos, usando un mismo identificador, o cada uno por separado.

Cada objeto de una estructura se denomina a menudo campo o elementos.

Para declarar una estructura se debe de escribir la palabra struct luego el nombre y entre llaves se declaran las variables. Debe declararse fuera del proceso principal.

Ilustración 7 Estructura

También pueden declarase estructuras de tipo estructura “empleado” escribiendo el nombre de la estructura antes del punto y coma.

Arreglos de estructurasUna vez que una estructura se convierte en un tipo de dato en el menú principal se declara un arreglo de estructuras que va a guardar las mismas variables dependiendo del tamaño del arreglo. Para declarar un arreglo de estructura se debe de escribir el tipo de estructura, el nombre y entre corchetes [] el tamaño del arreglo.

Ilustración 8 Declaración de arreglos de estructuras

Como podemos ver fam es una estructura del tipo struct familiar y se le asigno un tamaño de 3 lo que significa que puede guardar todos estos datos para 3 personas diferentes recordando que se guarda desde el arreglo 0 hasta el 2.

Ilustración 9Guardar datos en arreglos de estructuras

Para guardar un dato primero llamamos a la estructura fam que es de tipo familiar, dentro de la familiar llamamos a la estructura datos que es de tipo personal y en esta estructura guardamos el dato en la variable nombre.

Tabla ASCII

Tabla 2 ASCII

ASCIIHex Símbolo

0123456789

101112131415

0123456789ABCDEF

NULSOHSTXETXEOTENQACKBELBS

TABLFVTFFCRSOSI

ASCII Hex símbolo

16171819202122232425262728293031

101112131415161718191A1B1C1D1E1F

DLEDC1DC2DC3DC4NAKSYNETBCANEMSUBESCFSGSRSUS

ASCII Hex Símbolo

32333435363738394041424344454647

202122232425262728292A2B2C2D2E2F

(space)!"#$%&'()*+,-./

ASCII Hex Símbolo

48495051525354555657585960616263

303132333435363738393A3B3C3D3E3F

0123456789:;<=>?

ASCII Hex Símbolo

64656667686970717273747576777879

404142434445464748494A4B4C4D4E4F

@ABCDEFGHIJKLMNO

ASCII Hex Símbolo

80818283848586878889909192939495

505152535455565758595A5B5C5D5E5F

PQRSTUVWXYZ[\]^_

ASCII Hex Símbolo

96979899

100101102103104105106107108109110111

606162636465666768696A6B6C6D6E6F

`abcdefghijkl

mno

ASCII Hex Símbolo

112113114115116117118119120121122123124125126127

707172737475767778797A7B7C7D7E7F

pqrstuvwxyz{|}~�

Lenguaje CPrograma: La descripción de los elementos, la descripción de acciones y descripción de datos.

Dato: Es un conjunto de información.

C es un lenguaje de programación originalmente desarrollado por Dennis M. Ritchie entre 1969 y 1972 en los Laboratorios Bell,2como 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.

ElementosComentarios Sirven como información al programador. Para que un texto sea comentario debe estar entre los símbolos /* (marca el comienzo) y */ (marca el final de comentario).

IdentificadoresSe usan para referenciar las variables, las funciones, las etiquetas y otros objetos definidos por el usuario.

El primer carácter debe ser una letra o un símbolo subrayado y los caracteres siguientes pueden ser letras, números o símbolos de subrayado. Las minúsculas y las mayúsculas se tratan como distintas.

Un identificador no puede ser igual a una palabra clave de C y no debe tener el mismo nombre que una función ya escrita o que se encuentre en la biblioteca de C.

ConstantesAl contrario que las variables, las constantes mantienen su valor a lo largo de todo el programa.Para indicar al compilador que se trata de una constante, usaremos const.

Ilustración 1 Laboratorio_1

SentenciasSon las instrucciones, cada sentencia finaliza con un punto y coma.

Palabras reservadas

Printf y scanfEntada y salida de datos en lenguaje c.

Precisión

Salida

\t es para tabulación.

%.4d indica un entero con 4 cifras.

\n es un salto de línea.

Salida

%.3f indica que el decimal va a tener 3 cifras después del punto.

Salida

\t tabulación

%.5s va a imprimirse 5 caracteres en pantalla.

Especificadores de conversiónd, i= para enteros.

f, g, e, a= para decimales.

s= cadena.

c= caracter.

Otras funciones para leer y escribir. Puts: Sirve para imprimir en pantalla una cadena de caracteres.

Salida

Putchar: Imprime un caracter en la pantalla.

Salida

gets: Lee una cadena de caracteres.

Salida

Getchar: lee un caracter.

Salida

FicherosSe declaran de la siguiente manera.

Con la palabra reservada FILE se escribe un asterisco y el nombre del archivo.

r: sólo lectura. El fichero debe existir. w: se abre para escritura, se crea un fichero nuevo o se sobreescribe si ya existe. a: añadir, se abre para escritura, el cursor se situa al final del fichero. Si el fichero no

existe, se crea. r+: lectura y escritura. El fichero debe existir. w+: lectura y escritura, se crea un fichero nuevo o se sobreescribe si ya existe. a+: añadir, lectura y escritura, el cursor se situa al final del fichero. Si el fichero no existe,

se crea. t: tipo texto, si no se especifica "t" ni "b", se asume por defecto que es "t" b: tipo binario.

fwrite: Sirve para escribir un dato en el archivo.

fread: Lee datos del fichero.

fprintf: Tiene la misma función que printf pero dentro de un fichero.

fscanf: Lee datos de un fichero al igual que fread.

Función fseek:

Esta función sirve para situar el cursor del fichero para leer o escribir en el lugar deseado.

El parámetro origen puede tener tres posibles valores:

SEEK_SET el desplazamiento se cuenta desde el principio del fichero. El primer byte del fichero tiene un desplazamiento cero.

SEEK_CUR el desplazamiento se cuenta desde la posición actual del cursor.

SEEK_END el desplazamiento se cuenta desde el final del fichero.

Función ftell:

Sintaxis:

long int ftell(FILE *fichero);

La función ftell sirve para averiguar la posición actual del cursor de lectura/excritura de un fichero.

El valor de retorno será esa posición, o -1 si hay algún error.

El parámetro de entrada es un puntero a una estructura FILE del fichero del que queremos leer la posición del cursor de lectura/escritura.

Estructuras de controlIf, else:

La instrucción if … else permite controlar qué procesos tienen lugar, típicamente en función del valor de una o varias variables, de un valor de cálculo o booleano, o de las decisiones del usuario. La sintaxis a emplear es:

if (condición) {

instrucciones

} else {

instrucciones

}

Switch:

La sentencia switch evalúa la expresión y dependiendo del valor de la expresión, así se llevará a cabo un "caso" u otro. La sintanxis de SWITCH es la siguiente:

switch(<variable>){ case <expresión_constante>: [<sentencias>][break;] . . . [default: [<sentencias>]] }

switch(expresión){

case 1:

sentencias a ejecutarse en caso de que expresión valga 1;

break;

El número de casos depende del número de opciones.

While:

La condición es cualquier expresión simple que al evaluarse devuelve el valor verdadero o falso. El bucle se repite mientras la condición sea verdadera. Cuando es falsa, el programa pasa a la instrucción siguiente, después del cuerpo de la estructura.

La sintaxis de while es:

While (condición){

Sentencias;

}

Do while:

Los ciclos do-while son una estructura de control cíclica, los cuales nos permiten ejecutar una o varias líneas de código de forma repetitiva sin necesidad de tener un valor inicial e incluso a veces sin siquiera conocer cuándo se va a dar el valor final, hasta aquí son similares a los ciclos while, sin embargo el ciclo do-while nos permite añadir cierta ventaja adicional y esta consiste que nos da la posibilidad de ejecutar primero el bloque de instrucciones antes de evaluar la condición necesaria.

La sintaxis de do while es:

do

{

.... .... Bloque de Instrucciones.... .... ....

}

while(condición de finalización);

for:

Es una estructura de control en programación en la que se puede indicar de antemano el número mínimo de iteraciones que la instrucción realizará.1Está disponible en casi todos los lenguajes de programación imperativos.

For (i=0, i<10,i++ )

{

Sentencias;

}

Primero se inicializa la variable, luego se pone la condición y al final el incremento o decremento dependiendo del problema.

FuncionesLas funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman ciertos valores de entrada, llamados parámetros y proporcionan un valor de salida o valor de retorno.

a) Aquellas cuyo tipo de retorno es void (nulo), equiparables a lo que denominamos módulo genérico tipo procedimiento.

b) Aquellas cuyo tipo de retorno es un tipo de dato (como int, double o cualquier otro), equiparables a lo que denominamos módulo genérico tipo función.

Para llamar una función solo se escribe el nombre:

Ejercicios en clase

Este ejercicio consistía en ingresar el sueldo o salario de una persona y si era menor de mil se aumentaba un 15 por ciento y si era mayor se le aumenta un 12 por ciento del salario.

Este programa consistía en informar al estudiante según su promedio y semestre, en que carreras fue aceptado.

Este programa consistía en vender productos de diferente categoría y conforme salga el total se le aplicará un descuento.

A cada producto se le asignó un precio y conforme el comprara se aumentaba el costo a pagar en la factura.

Este programa se basa a lo que es base de datos, crea un archivo donde se guardan datos de varias personas y se muestran en una lista.

Almacena los datos de 2 atletas en un fichero, los guarda en un fichero, luego los lee y los vuelve a mostrar.

Consiste en eliminar un empleado dependiendo del código.

La lógica de este programa consiste en crear 2 ficheros, leemos la información, si es diferente al código que ingresamos, se guarda en un nuevo fichero, luego este se renombra con el nombre del que posee la información y se borra el original.

Esta parte del programa consiste en modificar datos de un registro almacenado en el fichero.

Primero solicitamos el código del registro que se desea eliminar, si es diferente lo escribimos en un nuevo fichero, y si es igual solicitamos el dato que desea modificar se guarda en la estructura y lo almacenamos en el fichero, se renombra con el nombre del archivo original y este se borra.