Manual AGFV

28
UNIVERSIDAD CENTROAMERICANA Manual de C/C++ Allan Gabriel Fuentes Vanegas Lic. Elsner González 25/08/2016

Transcript of Manual AGFV

Page 1: Manual AGFV

Universidad CENTROAMERICANA

Manual de C/C++

Allan Gabriel Fuentes Vanegas

Lic. Elsner González

25/08/2016

Page 2: Manual AGFV

ContenidoI. Introducción:.......................................................................................................................................3

II. Lenguajes de programación:................................................................................................................4

1. Lenguaje C.......................................................................................................................................4

2. Lenguaje C++...................................................................................................................................4

III. Tipo de datos:..................................................................................................................................5

1. Tipo entero:.....................................................................................................................................5

2. Tipo real:..........................................................................................................................................5

3. Tipo caracter:...................................................................................................................................5

4. Tipo cadena:....................................................................................................................................5

IV. Palabras reservadas:........................................................................................................................6

1. Palabras compartidas por ambos lenguajes....................................................................................6

2. Palabras pertenecientes a C++.........................................................................................................6

3. Palabras alternativas........................................................................................................................7

V. Declaración de variables:.....................................................................................................................8

VI. Sintaxis:............................................................................................................................................9

I. El punto y coma:..............................................................................................................................9

II. Espacios y tabulaciones:..................................................................................................................9

VII. Sentencias de control:...................................................................................................................10

1. If-else:............................................................................................................................................10

2. While:............................................................................................................................................10

3. Do-while:.......................................................................................................................................10

4. For:................................................................................................................................................10

5. Switch:...........................................................................................................................................10

VIII. Arreglos:........................................................................................................................................11

1. Arreglos Unidimensionales:...........................................................................................................11

2. Arreglos Bidimensionales:.............................................................................................................11

IX. Estructuras:....................................................................................................................................12

X. Ficheros:............................................................................................................................................13

XI. Printf/Scanf:...................................................................................................................................14

Page 3: Manual AGFV

XII. Bibliotecas:....................................................................................................................................15

XIII. Ficheros:........................................................................................................................................16

XIV. CodeBlocks:...................................................................................................................................17

Ejemplos:.......................................................................................................................................17

a) Arreglos unidimensionales…......................................................................................................17

b) Arreglos bidimensionales…........................................................................................................18

c) Estructuras…..............................................................................................................................19

d) Printf/Scanf:...............................................................................................................................22

Page 4: Manual AGFV

I. Introducción:Las computadoras modernas son uno de los productos más importantes del siglo XXI, ya que se han transformado en un dispositivo esencial para la vida diaria de los seres humanos, como un electrodoméstico más de la casa o la oficina que ha cambiado el modo de vivir de la sociedad.

El papel de los programas en la computadora es fundamental. Ya que sin una lista de instrucciones que seguir, la computadora es virtualmente inútil. Estos lenguajes nos permiten escribir esos programas y así comunicarnos con las computadoras. De esta manera, la computadora puede ser utilizada como una herramienta más del ser humano que lo puede ayudar a resolver todo tipo de problemas.

Dado que las aplicaciones que tienen estos dispositivos son más cada día: Como hacer investigaciones, cálculos matemáticos, enviar y recibir mensajes de texto y multimedia, hacer y recibir llamadas con individuos que se encuentran a largar distancias, redactar documentos, entre otras cosas.

En la clase de Laboratorio de Programación I, empezaremos a aprender acerca de los lenguajes de programación que usaremos de que en adelante como estudiantes y futuros programadores.

Dado que para poder entender el funcionamiento de una computadora, primero tenemos que entender los lenguajes con los que opera…

3

Page 5: Manual AGFV

II. Lenguajes de programación:Existen varios tipos de lenguajes de programación que se han creado a lo largo de la historia de la computación, pero nosotros solo estudiaremos los más recientes y los más utilizados en la actualidad: El lenguaje C, y el C++.

1. Lenguaje CEs un lenguaje de programación originalmente desarrollado por Dennis M. Ritchie entre 1969 y 1972, bajo el propósito de ser el sucesor del ya menos popular lenguaje B. Pero que está orientado bajo la misma función: La implementación de Sistemas Operativos.

C es 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.

2. Lenguaje 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.

Posteriormente se añadieron facilidades de programación genérica, que se sumaron a los paradigmas de programación estructurada y programación orientada a objetos. Por esto se suele decir que el C++ es un lenguaje de programación multi-paradigma.

Una particularidad del C++ es la posibilidad de redefinir los operadores, y de poder crear nuevos tipos que se comporten como tipos fundamentales.

Page 6: Manual AGFV

III. Tipo de datos:Existen varias categorías respecto a la información que se ingresa en el programa…

1. Tipo entero:Son todos aquellos números enteros, estos pueden ser de signo positivo, o bien, de signo negativo. Como el 23, o el -32. Siempre y cuando, claro, que los números no tengan decimales.Dado que esos se encuentran en la siguiente categoría…

2. Tipo real:Aquí se encuentran los números que si son decimales, que también son conocidos como Números Reales.Números como el 0.5, o el -0.6, entre otros similares.

3. Tipo caracter:Utilizados para representar un código que es comúnmente usado por el ordenador.Unos buenos ejemplos seria: a, b, c… entre otros similares a esos.

4. Tipo cadena:Aquí yacen los datos que ya pueden ser considerados palabras consecutivos, que se encuentran encerrados, comúnmente, entre casillas dobles.

Los ejemplos abundan, podrían ser cualquier palabra, como: “Hola” o “Adiós”.

Page 7: Manual AGFV

IV. Palabras reservadas:Las palabras reservadas son identificadores predefinidos que tienen significados especiales y no pueden usarse como identificadores creados por el usuario en los programas.

Las palabras reservadas de los lenguajes anteriormente mencionados pueden dividirse en tres grupos…

1. Palabras compartidas por ambos lenguajesAquí se ubican las palabras de C y que C++ como evolución de C también contiene…

auto short else const struct for double unsigned long float break signed int continue switch void sizeof return case typedef static default volatile union enum char while goto do extern register

2. Palabras pertenecientes a C++Aquí se ubican las palabras que son única y completamente exclusivas del lenguaje de programación C++ y que, por ende, no se encuentran en el lenguaje C…

asm typeid this dynamic_cast catch using namespace false const_cast reinterpret_cast operator inline try template public

Page 8: Manual AGFV

bool typename throw explicit class virtual new friend delete static_cast private mutable protected true wchar_t

3. Palabras alternativasAquí se ubican las palabras reservadas se han añadido como alternativas para algunos operadores de C++ y hacen los programas más legibles y fáciles de escribir…

and not_eq and_eq bitand or_eq bitor compl xor_eq not

Page 9: Manual AGFV

V. Declaración de variables:En programación, una variable es un espacio de memoria reservado para almacenar un valor correspondiente a un dato presente en el lenguaje de programación. Una variable es representada y usada a partir de una etiqueta que le asigne un programador o también puede presentarse el caso en que esta ya venga predefinida.Siempre se recomienda que una variable no este separada por espacios o alguna especie de caracter especial. De preferencia, todo tipo de variable debe de empezar con una letra.Las variables están divididas en diferentes tipos, y se declaran de la siguiente manera:

Para variables numéricas sin decimales, se usa: int (Ejemplo: int num=23).

Para variables numéricas con decimales, se usa: float (Ejemplo: float num=3.2).

Para variables de tipo caracter o tipo cadena, se usa: char (Ejemplo: char nombre=Barry).

Para variables de tipo booleana, se usa: bool (Ejemplo: bool terminado=False).

Page 10: Manual AGFV

VI. Sintaxis:Se define como sintaxis a la forma en correcta en que se deben escribir las instrucciones para que el computador pueda ejecutar correctamente la orden planteada.La mayoría de los lenguajes modernos (C y C++), se rigen por las siguientes sintaxis:

I. El punto y coma:Este es uno de los símbolos más utilizaos en ambos lenguajes, y se usa con el propósito de indicar en donde se termina la línea de una instrucción.Cabe destacar, que el uso del punto y coma en ambos programas, es obligatorio.

II. Espacios y tabulaciones:Usar caracteres extras de espaciado o tabuladores, es un mecanismo que nos permite ordenar de manera más clara el código del programa en el que estamos trabajado.Sin embargo, el uso de estos es opcional, por el hecho de que el mismo programa ignora su presencia.

Page 11: Manual AGFV

VII. Sentencias de control:Las sentencias de control son todos aquellos comandos que nos permiten separar ciertas variables y ciertas órdenes del programa a un sector en específico, si previamente cumplió con todas las especificaciones requeridas.

Existen múltiples sentencias de control, pero las más usadas hasta ahora, son las siguientes:

1. If-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.

2. 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.

3. 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.

4. 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á.

5. 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.

Page 12: Manual AGFV

VIII. Arreglos:Ahora bien, a partir de todo lo ya anteriormente mencionado, uno ya puede empezar a programar.Y uno de las lecciones más fáciles con las que empezaremos, será con los arreglos. Bases de información que brinda el usuario y que se integran al programa en ejecución. Estos datos pueden ser tanto numéricos, como alfabéticos.Hay dos tipos de arreglos:

1. Arreglos Unidimensionales:En este tipo de arreglos, solo consta de una columna, pero puede contener un número indefinido de filas, declarándose de la siguiente manera:TipodeDato NombredelArreglo [TamañodelArreglo];O sea…int arregloD [6];

Luego de eso, la poción en donde ira el dato a ingresar se definirá a partir de 0, para luego colocar un igual, y el dato que se ubicará en dicho espacio.Esto quiere decir, que si el tamaño de arreglo es de seis, para colocar algo en la 5ta posición, se tendrá que escribir:arregloD[6]=32;

2. Arreglos Bidimensionales:En este caso, los arreglos hechos a partir de arreglos en dos dimensiones pueden también ser vistos y considerados como una matriz, ya que este tipo de arreglos, puede contar con un número indefinido tanto de filas, como de columnas.Los arreglos bidimensionales se declaran de la siguiente manera:TipodeDato NombredelArreglo [NroFilasArreglo][NroColumnasArreglo];O sea…int arregloB [2][3];

Ya habiendo hecho eso, para poder ingresar un dato se deber de hacer lo mismo que para un arreglo dimensional, solo que esta vez, se deberá ingresar la fila, y la columna, en donde se quiere colocar dicho dato.De la siguiente manera:arregloB[1][1]=23;

Page 13: Manual AGFV
Page 14: Manual AGFV

IX. Estructuras:Las estructuras, que también pueden ser llamados registros, nos permiten agrupar varios datos, que mantengan cierto tipo de relación los unos con los otros. De esta forma, los datos brindados en una estructura en específico, podrán ser manipulados, con un mismo identificador, ya sea todos juntos, o por separado.Las estructuras se declaran de la siguiente manera:struct identificador{

TipodeDato NombredeObjeto;};

La representación anteriormente dada se puede ver ejemplificar de la siguiente manera:struct individuo{

char Nombre;int Edad;};

Tanto el identificador como el nombre del objeto pueden ser nombrados como se desee.Respecto al tipo de dato, se puede ingresar el que sea, y la cantidad que se requiera, siempre y cuando siempre se mantengan la sintaxis correcta de estos, como el tener siempre presente el punto y coma al final de cada línea.

Page 15: Manual AGFV

X. Ficheros:Muy bien, hasta ahora ya hemos aprendido como se declaran variables y con ejecutarlas.Pero… ¿Cómo se almacena la información adquirida?Para estas situaciones, se usan los ficheros.

Los ficheros pueden clasificar de muchas maneras: De entrada: Si los datos son leídos por el programa desde el archivo. De salida: Si los datos se escriben por el programa hacia el archivo. De entrada y salida: Si los datos pueden ser escritos y leídos.

Dependiendo de los valores, pueden ser: De texto. Binarios.

Dependiendo del tipo de acceso, estos archivos serán: Secuenciales: Que se encargan de imitar el modo de acceso de antiguos ficheros existentes. De acceso aleatorio: Que permiten acceder al archivo desde cualquier punto para la lectura

y/o escritura.

Y respecto al flujo de datos de dichos ficheros, estos admiten seis modos diferentes: r: Son solo de lectura, y el fichero ya deberá de existir. w: Es para escritura, funciona tanto para ficheros nuevos como viejos. a: Sirve para añadir más información a ficheros existente. Y si el fichero no existe, se crea. r+: Lectura y escritura, y el fichero ya deberá de existir. w+: Lectura y escritura, funciona tanto para ficheros nuevos como viejos. a+: Lectura, escritura, y también para añadir más información un fichero, que si en dado

caso no existe, se crea.

Page 16: Manual AGFV

XI. Printf/Scanf:Comúnmente, se tiende a usar sola y únicamente las palabras reservadas “Cin” y “Cout” a la hora de declarar una variable, sobre todo si se hace en C++.Pero también existen “printf” y “scanf”, que son las funciones de declaración usadas en el lenguaje C.Para este tipo de declaración hay que ser más cuidadosos, ya que para usar estas funciones también hay que saber usar correctamente los ficheros, ya que son necesarios para su correcta ejecución.

Su sintaxis es la siguiente:printf/scanf (“%tipodefichero”, datos);

Page 17: Manual AGFV

XII. Bibliotecas:Las bibliotecas, o librerías, son el componente de la programación, que contienen el código de muchos programas que permiten ejecutar todas y cada una de las funciones anteriormente mencionadas.Estas están clasificadas según lo que hacen, y pueden ser de entrada/salida, matemáticas, manejo de textos, entre muchas cosas más.

Para poder declarar, y así inlcluir una biblioteca a nuestro programa, se debe de escribir de conocer el nombre y a función del librero que necesitamos, ya sabiendo eso, se escribe de la siguiente manera:#include <Nombre de la librería a agregar>;

NOTA: El nombre de la librería debe ir siempre entre “<>” para que funcione correctamente, ya que si no se hace esto, el programa fallará y no se ejecutará.

Entre las librerías más comunes se encuentran las siguientes: ftream math ostream typeinfo iterator iosfwd memory stdio vector regex iostream new stdlib forward_list thread list numeric string list iterator

Page 18: Manual AGFV

XIII. Ficheros:Los ficheros bien pueden definirse como el sistema usado para declarar archivos en un programa, en el cual se puede guardar múltiples datos que llegaran a usarse más adelante.

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

Según su comando clave, hay varios tipos de archivos que se pueden crear… 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.

Y así como esos comandos, también hay multiples declaraciones que se usan principalmente en los ficheros. Entre ellos están: 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.

Page 19: Manual AGFV

XIV. CodeBlocks:Bien, ya conocemos lo básico acerca de los lenguajes de programación que usaremos. Pero para poder ejecutarlos nos hará falta un programa especial, uno que nos permita ejecutar todo tipo de acciones con todos esos comandos y así crear nuestros propios programas. Y el programa que usaremos para ello, es CodeBlocks.

A continuación, se mostraran algunas demostraciones de las lecciones previamente aprendidas planteadas y ejecutadas en CodeBlocks…

Ejemplos:

a) Arreglos unidimensionales…

Seguido de eso, se coloca la información que se desea ingresar en cada una de las casillas del arreglo. Tal y como se habia explicado anteriormente.

Page 20: Manual AGFV

b) Arreglos bidimensionales…

c) Estructuras…

De una manera muy similar al ejemplo anterior, se inicia declarando el tamaño de arreglo con el que vamos a trabajar, solo que en este caso, se deben especificar tanto las filas como las columnas.

Seguido de eso, se coloca la información que se desea ingresar en cada una de las casillas del arreglo. Con el cuidado de no escribir erróneamente las posiciones, evitando confundir filas con columnas y viceversa.

Y luego se escribe lo que se quiere que aparezca en pantalla.

La tabla anterior se puede ver aquí, planteada correctamente.

Page 21: Manual AGFV

En el caso de las estructuras, estas deben siempre colocarse primero que el Main Principal, con la estructura que se puede ver y que fue orientada en puntos anteriores, sin olvidar nunca el punto y coma al final de las llaves.

Nota: Esto SOLAMENTE se hace en el struct.

Seguido de eso, se escriben las variables y la forma de ingresarlas al programa, Teniendo en cuenta la estructura a la que pertenecen.Se pueden usar las palabras “fflush” y “getline” para así integrar los espacios al programa.

Page 22: Manual AGFV

Esta parte es muy delicada, ya que se debe de ver la estructura a la que la variable pertenece y así integrarla de la forma correcta. Sino, habrá un error y el programa no se podrá inicializar.

Para ya luego al final, lanzar la información brindada de una vez al usuario.

Al ejecutarse la aplicación, será en esta parte en la que el usuario llenar los requerimientos pedidos por el programa…

Para que ya al final, esta sea presentada una vez más por el programa al usuario que ingreso dicha información.

Page 23: Manual AGFV

d) Printf/Scanf:

Aquí se muestran ejemplos claros, del “printf” y el “scanf”.

En donde también se usan los ficheros según el dato que este ingresado o se vaya a ingresar.