SlideShare a Scribd company logo
1 of 53
Manual de
Laboratorio de
Programación I
2016
Autor: Ricky DeyrinBonillaRodríguez
Profesor: Ing. Elsner Boanerge González
Facultad: Ciencia, Tecnologíay Ambiente
Carrera: Ingenieríaen Sistemas de Información
Introducción
Creador del lenguaje C
Dennis MacAlistair Ritchie (9 de septiembre de 1941 - 12 de octubre de 2011) fue
un científico de la computación estadounidense.
Colaboróen el diseño y desarrollode los sistemas operativos Multics y Unix, así como el
desarrollodevarios lenguajesde programación como el C, tema sobreel cual escribió un
célebre clásico de las ciencias de la computación junto a Brian Wilson Kernighan: El
lenguaje de programación C.
¿Qué es el lenguaje C?
C es unlenguaje de programación de propósito general que ofrece economía sintáctica,
control de flujo y estructuras sencillas y un buen conjunto de operadores. No es un
lenguaje de muy alto nivel y más bien un lenguaje pequeño, sencillo y no está
especializado en ningún tipo de aplicación. Esto lo hace un lenguaje potente, con un
campo de aplicación ilimitado y sobre todo, se aprende rápidamente. En poco tiempo,
un programador puede utilizar la totalidad del lenguaje.
Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX, puesto que
fuerondesarrolladosconjuntamente.Sinembargo,este lenguajenoestá ligadoa ningún
sistema operativo ni a ninguna máquina concreta. Se le suele llamar lenguaje de
programación de sistemas debido a su utilidad para escribir compiladores y sistemas
operativos, aunque de igual forma se puede desarrollar cualquier tipo de aplicación.
Etapas o pasos en la creación de un programa
Definición del problema
Esta fase la proporciona el enunciado del problema, el cual requiere unadefinición clara
y precisa (no debe ser ambiguo). Es importante que se entienda perfectamente lo que
pretendemos que haga la computadora para poder continuar con la siguiente etapa.
Análisis del problema
Una vez que se ha comprendido lo que se desea que la computadora haga, la etapa de
análisis es muy importante ya que en ésta se identifican tres factores indispensables:
1. Qué información se necesita para obtener el resultado deseado (datos de entrada).
2. Qué información se desea producir (datos de salida).
3. Losmétodos y fórmulasque senecesitan paraprocesarlos datosy produciresa salida.
Diseño y técnicas para la formulación de un algoritmo
La etapa de diseño se centra en desarrollar el algoritmo basándonos en las
especificaciones de la etapadel análisis;podemos representarun algoritmomediante el
diagrama de flujo o el pseudocódigo.
Codificación
En la etapa de codificación se transcribe el algoritmo definido en la etapa de diseño en
un código reconocido por la computadora; es decir, en un lenguaje de programación; a
éste se le conoce como código fuente. Por ejemplo el lenguaje “C” es un lenguaje de
programación y es el que utilizaremos en el presente curso.
Prueba y depuración
La prueba consiste en capturardatoshasta que el programafuncione correctamente. A
la actividad de localizar errores se le llama depuración. Existen dos tipos de pruebas:de
sintaxis y de lógica.
Las pruebas de sintaxis se ejecutan primero, son las más sencillas y las realiza el
compilador del programa cada vez que se ejecuta el programa hasta que el código no
presente errores, es decir que la sintaxis que requiere el lenguaje sea la correcta, de lo
contrario el propio compilador va mostrando los errores encontrados para que se
modifiquen y se pueda ejecutar el código; estos errores pueden ser falta de paréntesis,
o puntos y comas o palabras reservadas mal escritas.
Las pruebas de lógica son las más complicadas ya que éstas las realiza el programador;
consisten en la captura de diferentes valores y revisar que el resultado sea el deseado,
es decir el programadortendríaque modificar el código hastaque el programafuncione
correctamente.
Documentación
Es la guía o comunicación escrita que permite al programador o al usuario conocer la
funcionalidad del programa.
La documentación sirve para que el código fuente sea más comprensible para el
programador o para otros programadores que tengan que utilizarlo, así como para
facilitar futuras modificaciones (mantenimiento).
Hay dos tipos de documentación:
• Interna. Se generan en el mismo código y generalmente es mediante comentarios.
• Externa. Son los manuales y es independiente al programa. También puede ser la
ayuda en el mismo software.
Mantenimiento
Se dice que un programano se termina al 100%, ya que es necesario hacer algúncambio,
ajuste o complementación para que siga funcionando correctamente; para llevarlo a
cabo se requiere que el programa esté bien documentado.
¿Qué es un identificador?
Un identificador es una secuencia de caracteres alfabéticos, numéricos y el guión bajo.
Con ellos podemos dar nombre a variables, constantes, tipos de dato, nombres de
funciones o procedimientos, etcétera.
Cada lenguaje de programación tiene sus propias características del tamaño del
identificador; el estándar de lenguaje C no especifica un límite de tamaño para un
identificador, pero para ciertas implementaciones de C11sólo los primeros 31 caracteres
son significativos (ANSI C). El programadortiene libertad para darle cualquier nombre a
un identificador, siguiendo estas reglas:
1. Debe comenzar con unaletra(A a Z) mayúsculao minúsculay nopuede contener
espacios en blanco.
En lenguaje C, el carácter “_” (guion bajo) es considerado como letra,por lo que
se puede utilizar como primer carácter.
2. El lenguaje Cdistingue mayúsculas de minúsculasporquetienen diferente código
ASCII.
3. Letras, dígitos y el carácter guion bajo están permitidos después del primer
carácter.
4. No pueden existir dos identificadores iguales, es decir, dos elementos de un
programa no pueden nombrarse de la misma forma. Sin embargo, un
identificador puede aparecer más de una vez en un programa.
5. No se puede utilizar una palabra reservada como identificador, sin embargo, los
identificadores estándar se pueden redefinir.
6. En lenguajeC existen identificadores que podríantener unoo variospuntos,tales
como: persona.apellidoPaterno.
El punto indica el acceso a un campo de unaestructura.
Sugerencias:
1. El identificador debe tener un nombre que sea significativo, es decir, que dé una
idea de la información que almacena.
2. No utilizar nombres muy largos,es mejor utilizar abreviaturasestándar para que
éstos tengan una longitud razonable.
3. En lenguaje C es usual escribir variables en minúscula, dejando las mayúsculas
paralas constantes.En los casosde nombrescompuestosse sueleponer la inicial
de la segunda palabra en mayúscula.
Para poder almacenarlos datos de cualquier índole, podemos crear un identificador
con un nombre relativo a lo que guardaremosen el identificador:
¿Qué son los variables?
Una variable, en realidad, no es más que unnombre para identificar una(o varias)
posiciones de memoria donde el programaguardalos distintos valoresde unamisma
entidad. Un programadebe DEFINIR a todas las variablesque utilizará, antes de
comenzar a usarlas,a fin de indicarle al compilador de que tipo serán, y por lo tanto
cuantamemoria debe destinarpara albergara cada unade ellas.
Para definir una variabledebe tener en cuenta:
 Darles nombre que tenganun significado que luego permita una fácil lectura del
programa.
 Los identificadores deben comenzar con una letraó con el símbolo de subrayado
"_" , pudiendo continuar con cualquier otro caractér alfanumérico ó el símbolo
"_" .
 El lenguajeC essensible altipo de letrausado;asítomarácomo variablesdistintas
a una llamada "variable”, de otra escrita como "VARIABLE". Es una convención
entre losprogramadoresdeC escribir losnombres de lasvariablesy las funciones
con minúsculas, reservando las mayúsculas para las constantes.
 Los compiladores reservandeterminados términos ó palabrasclaves
(Keywords) para el uso sintáctico del lenguaje, talescomo: asm, auto, break,
case, char,do, for, etc. Si bien estas palabrasestándefinidas para el ANSI C, los
distintos compiladores extienden esta definición a OTROS términos, por lo que
es aconsejable leer la tablacompleta de palabrasreservadasdel compilador que
se vaya a usar,para no utilizarlas en nombres de variables.
¿Cuáles son los tipos de datos?
Los diferentes objetos de información con los que unalgoritmo o programatrabaja se
conocen colectivamente como datos.Todos los datostienen un tipo asociado con
ellos; el tipo de un dato es el conjunto (rango) de valoresque puede tomardurante el
programa.Por ejemplo el tipo de un dato determina la naturalezadel conjunto de
valoresque puede tomaruna variable.
Tipos básicos predefinidos:
 int (entero)
 float (flotante
 double (flotante de doble precisión)
 char (carácter)
 bool (booleano o lógico)
Las formas de declararun identificador con los tipos de datosanteriores son los
siguientes:
El compilador dará como error de "Definición incorrecta" a la definición de variables
con nombres del tipo de:
¿Qué son las constantes?
Aquellos valores que una vez compilado el programa no pueden ser cambiados, como
por ejemplo los valores literales que hemos usadohasta ahora en las inicializaciones de
las variables (100, 3, ‘a’, 'n’), suelen denominarse CONSTANTES.
Como dichas constantes son guardadas en memoria de la manera que al compilador le
resulta más eficiente suelen aparecer ciertos efectos secundarios, a veces
desconcertantes, ya que las mismas son afectadas por las reglas de RECONVERSION
AUTOMATICA DE TIPO vista previamente.
A fin de tener control sobre el tipo de las constantes, se aplican las siguientes reglas:
Una variable expresada como entera (sin parte decimal) es tomada como tal salvo que
se la siga de las letras F ó L (mayúsculas ó minúsculas) ejemplos:
1 : tomada como ENTERA
1F : tomada como FLOAT
1L : tomada como LONG DOUBLE
Una variable con parte decimal es tomada siempre como DOUBLE, salvo que se la siga
de la letra F ó L
1.0 : tomada como DOUBLE
1.0F : tomada como FLOAT
1.0L : tomada como LONG FLOAT
Si en cualquiera de los casos anteriores agregamos la letra U ó u la constante queda
calificada como UNSIGNED (consiguiendo mayor alcance) :
1u : tomada como UNSIGNED INT
1.0UL : tomada como UNSIGNED LONG DOUBLE
Una variable numérica que comienza con "0" es tomado como OCTAL asi : 012 equivale
a 10 unidades decimales
Una variable numérica que comienza con "0x" ó "0X" es tomada como hexadecimal:
0x16 equivale a 22 unidades decimales y 0x1A a 26 unidades decimales.
Conversiones de datos
Las conversiones automáticas pueden ser controladas a gusto por el programador,
imponiendo el tipo de variable al resultado de una operación.
Los tipos de datos que si se pueden transformar a otro tipo de dato son las “S” de sí y
las “N” de no son las que no se pueden transformar:
Ejemplo 1:
En la conversión de Double a Short :
Ejemplo 2:
En la conversión de Char a Short:
¿Qué expresiones aritméticas existen en C?
De la evaluación de una expresión aritmética siempre se obtiene unvalor de tipo entero
o real. En lenguaje C existen algunos operadores que no se utilizan en pseudocódigo, y
al revés. A continuación, se van a ver algunas similitudes y diferencias entre
ambos lenguajes.
Las expresiones se evalúande acuerdo con la precedencia de los operadores. Ante una
secuencia de operadoresde igual precedencia, la evaluaciónse realiza segúnel ordende
escritura, de izquierda a derecha. El orden de evaluación puede modificarse usando
paréntesis.
Comentarios
La primera línea de un programaen C suele ser unalínea de comentario, en la cual se
escribe el nombre del programa, lo que realiza, los datos del autor,la fecha y la versión.
Las líneas de comentario en C estándarse encierran entre los caracteres /* y */. En C11
los comentarios se inician con //.
¿Qué son los arreglos en C?
Un arreglo es un tipo de dato estructurado que almacena en una sola variable un
conjunto limitado de datos
o elementos del mismo tipo. Asimismo, es un conjunto de localidades de memoria
contiguasdondela direcciónmás baja correspondeal primer elementoy ladirección más
alta al último. Por sí mismo, el nombre del arreglo apunta a la dirección del primer
elemento del arreglo.Losdatos se llamanelementos delarreglo y suposición se numera
consecutivamente: 1, 2, 3…n. Un arreglo en lenguaje C inicia en la posición cero, por lo
tanto el i-ésimo elemento está en la posición i-1, es decir si el arreglo llamado a tiene n
elementos, sus nombresson a[0],a[1],..., a[n-1].El tipo de elementos almacenadosen el
arreglo puede ser cualquier tipo de dato.
Para acceder a un elemento específico de un arreglo se usa un índice o subíndice.
Un arreglo se caracteriza por:
1. Ser una lista de un número finito de n elementos del mismo tipo.
2. Almacenar los elementos del arreglo en memoria contigua.
3. Tener un único nombre de variable que representa a todos los elementos y éstos se
diferencian por un índice o subíndice.
4. Acceder de manera directa o aleatoria a los elementos individuales del arreglo,por el
nombre del arreglo y el índice o subíndice.
Los arrays, arreglos o vectores forman parte de la amplia variedad de estructuras de
datos que nos ofrece C++, siendo además una de las principales y más útiles estructuras
quepodremostenercomo herramientade programación.Losarrays, arreglosovectores
(como los quieras llamar), son utilizados para almacenar múltiples valores en una única
variable. En un aspecto más profundo, los arrays, permiten almacenar muchos valores
en posiciones de memoria continuas,locualpermite acceder a unvaloruotrode manera
rápida y sencilla. Estos valores pueden ser números, letras o cualquier tipo de variable
que deseemos incluso tipos de datos propios.
En múltiples ocasiones es necesario almacenar gran cantidad de información en una
variable y a menudo sucede que no conocemos con exactitud la cantidad de datos que
debemos almacenar, pero sabemos que sí sería más de uno, como por ejemplo
almacenarlas identificaciones de laspersonasingresadasalsistema. Los arrays,arreglos
o vectores son una estructura que nos permite solucionar este tipo de problemas.
Ejemplos de arreglos
Imaginemos que queremos crear un programa con el cual podamos de algún modo
almacenar los títulos y los autores de diferentes libros. El usuario es el encargado de
suministrar la información de cada libro, así entonces, dado que es el usuario quien lo
hace, nosotrosno tenemos manera algunade saber cuántoslibros va querer él ingresar
por medio de nuestro programa. El caso principal es que queremos almacenar en la
memoria el título y el autor de TODOS y cada uno de los libros.
¿Cómo declarar un Array o Vector en C++?
Paradeclararunvector en C++, se debenseguir lasmismas normasbásicas quese siguen
para declarar una variable cualquiera, con un pequeño cambio en la sintaxis. Para
declarar un vector, arreglo o como lo quieras llamar, necesitaremos saber el tipo de los
datosque irán al interior de este, es decir, serán númeroenteros, o número decimales o
cadenas de texto, etc. necesitamos también, como siempre, un nombre para el vector y
un tamaño máximo. La sintaxis para declarar un vector en C++ es la siguiente:
tipo_de_dato nombre_del_vector[tamaño];
Paradeclarar unvector en C++, debemos definirle un tipo de los datos,sea entero, float,
string,etc., debemos darleun nombrey al interior de los corchetes "[ ]" debemos poner
el tamañomáximo que tendráel vector, es decir la cantidadmáxima de datosque podrá
contener(recuerdaque en C++ estoes necesario hacerlo). A continuación unejemplo de
cómo declarar un arreglo:
Ahoramandaremos a imprimir este arreglo de la siguiente forma:
Al compilar el programatendremosel siguiente resultado:
Arreglos bidimensionales
Son arreglos con dos dimensiones, es decir tienen filas y columnas, los valores de la
variable se llamanelementos, de la misma forma que en losarreglosunidimensionales y
sus índices están compuesto por dos caracteres que indican posición. Para acceder a su
elemento se debe poner su posición compuesta de los dos índices.
Porejemplo paralamatriz Ay laposición en lafila 1 y lacolumna2. Se debe ponerA [1][2],
denotándoseque el primer índice indica la posición de la fila y el segundola posición de
la columna.
0 1 2 3 4 5 6 7
0
1
2
3
Nota: todoslos arreglosinician desde 0.
Un arreglobidimensional se declara de la siguiente manera:
Ahoramandaremos a imprimir este arreglobidimensional de la siguiente forma:
Al compilar el programatendremosel siguiente resultado:
Bibliotecas o librerías en C
Juntocon loscompiladores de C y C++, se incluyen ciertos archivos llamadosbibliotecas
más 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.
Nota: Muchospersonasconsideranque el nombre adecuado es archivos de biblioteca, y
están en lo correcto. Sin embargo, la mayoría llamamos a estos archivos librerías, y
también me incluyo entre estos. El error proviene del nombre en inglés, que es library.
Este término se traduce como biblioteca, y no como librería. De este modo a lo largode
esta sección las llamaré de cualquiera de las dos formas, para estar más claros.
Hay un conjunto de bibliotecas (o librerías) muy especiales, que se incluyen con todos
loscompiladores de Cy de C++. Sonlas librerías(o bibliotecas) ANSI o estándar.También
hay librerías que no son parte del estándar pero en esta sección sólo usaremos algunas
bibliotecas (o librerías) ANSI.
¿Cómo declarar una librería en C++?
Veamos a continuacióncomo se haría ladeclaración de unascuantaslibrerías conocidas,
recuerda que ese pueden declarar todas las librerías necesarias y siempre debe hacerse
al comienzo del código fuente:
#include "iostream"
#include "string"
#include <math.h>
#include <conio.h>
¿Qué es un struct?
Estas estructuras controlan cómo se ejecutan los programas, es decir el orden de las
instrucciones, ya que tienen un solo punto de entrada y un punto de salida. En la
programación estructurada se mezclan las estructuras de control y las podemos
clasificar en:
Estructura de control secuencial
Las instrucciones se ejecutan en orden, una por una desde la primera hastala última, es
decir el programa ejecuta todas las instrucciones del programa en el orden establecido
sin saltarse ninguna de ellas.
Estructura de control selectiva o alternativa
De acuerdo con una condición que puede ser verdadera o falsa se elige una opción, la
cual realiza una acción (una o varias instrucciones). La condición puede ser simple o
compuesta (una o varias).
Estructuras de
control
Secuencial
Selectiva
Repetitiva o de
iteración
Estructura de control repetitiva o de iteración condicionada
Una acción se repite unacantidad definida o indefinida de veces mientras unacondición
sea verdadera.
La lógica de programación se centra sobre todo en el cuerpo del programa, utilizando
las estructuras de datos y las de control, además de la programación modular. Para
diseñar los programas de computadora, comúnmente se utilizan diferentes estructuras
de control a fin de poder llegar a la solución de un problema, cuáles y cuántas
dependerán del problema mismo.
Para facilitar la comprensión de la lógica de programación, primero realizaremos el
diagrama de flujo, el pseudocódigo y lenguaje C de algunos ejercicios y después
solamente el pseudocódigo y lenguaje C.
Unaestructuracontienevariosdatos.La forma dedefinir unaestructuraeshaciendouso
de la palabra clave struct. Aquí hay ejemplo de la declaración de una estructura:
Estructuras anidadas
Una estructura puede estar dentro de otra estructura a esto se le conoce como
anidamiento o estructuras anidadas. Ya que se trabajan con datos en estructuras si
definimos un tipo de dato en una estructura y necesitamos definir ese dato dentro de
otra estructura solamente se llama el dato de la estructura anterior.
Definamos una estructura en nuestro programa:
A continuación un programa completo sobre los struct, para una mejor
compresión y dar por finalizado este tema:
1. Diseñe un programa en el que se puedan registrar los datos
personales de dos atletas en una estructura, tales como: nombre y
país, además cree otra estructura en la que pueda guardar datos
como:eldeportequepracticayel númerode medallas obtenidas.Las
estructuras deben actuar simultáneamente.
a) Declaramos las librerías que usaremos (unaeneste caso), además del
using namespace ya antes visto.
b) Declaramos la primera estructura llamada struct datos
c) Declaramos la segunda estructura que usaremos llamada struct
atleta, además de que anidaremos laestructuraanterior,conelfinde
declarar una solo estructura en el int main().
d) Entramos en el int main() en el cual declararemos la estructura de
atleta que contiene a las estructura datos
e) Mandamos a imprimir enpantalla los requerimientos apedir, en este
caso para el primer atleta
En la imagen anterior, alpedir al usuario que ingrese los datos,
podemos ver que primero parapoderingresar undato en una variable
en específico, debemos ponerlavariable que le dimos a la estructura
atleta que eneste caso es: ats[2].
f) Ahora vamos a pedir los datos del segundo atleta con el mismo
procedimiento:
g) Sin olvidar el return 0
De este modo hemos terminado conlos requerimientos delprograma, por
lo cual proseguiremosaimprimir enpantalla, lo cual dará como resultado
lo siguiente:
Una vez que hayamos ingresado los datos el programafinalizará:
Ficheros
Losficheros, en contraposicióncon lasestructurasdedatosvistashastaahora(variables
simples, vectores, registros, etc.), son estructuras de datos almacenadas en memoria
secundaria. Para utilizar la información en memoria principal se emplea
fundamentalmentela instrucción de asignación; sin embargo, para guardaro recuperar
información de un fichero es necesario realizar una serie de operaciones que
describiremos en este apartado. El formato de declaración de un fichero es el siguiente:
FILE * nom_ var_fich;
En otros lenguajes la declaración del fichero determina el tipo de datos que se van a
almacenar en él. En C la filosofía es distinta, todos los ficheros almacenan bytes y es
cuando se realiza la aperturay la escritura cuandose decide cómo y qué se almacena en
el mismo; durante la declaración del fichero no se hace ninguna distinción sobre el tipo
del mismo. En la operación de aperturase puede decidir si el fichero va a ser de texto o
binario, los primeros sirven para almacenar caracteres, los segundos para almacenar
cualquier tipo de dato. Si deseamos leer un fichero como el autoexec.bat utilizaremos
un fichero de texto, si queremos leer y escribir registros (struct) usaremos un fichero
binario.
Función fopen
Esta función sirve para abrir y crear ficheros en disco. El valorde retornoes un puntero
a una estructura FILE. Los parámetrosde entradason:
1. Nombre: una cadena que contiene unnombre de fichero válido, esto depende
del sistema operativo que estemos usando.El nombre puede incluir el camino
completo.
2. Modo: especifica en tipo de fichero que se abrirá o se creará y el tipo de datos
que puede contener, de texto o binarios:
 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 cursorse sitúa 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, lecturay escritura, el cursorse sitúa 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.
Por aquí un ejemplo de cómo se declara un fopen:
Función fclose
Es importante cerrarlos ficheros abiertos antes de abandonarla aplicación. Estafunción
sirve para eso. Cerrar un fichero almacena los datos que aún están en el buffer de
memoria, y actualiza algunos datos de la cabecera del fichero que mantiene el sistema
operativo. Además permite que otros programas puedan abrir el fichero para su uso.
Muy a menudo, los ficheros no pueden ser compartidos por varios programas.
Un valor de retorno cero indica que el fichero ha sido correctamente cerrado, si ha
habido algún error, el valor de retornoes la constante EOF. El parámetro es un puntero
a la estructura FILE del fichero que queremos cerrar.
A continuación un ejemplo de cómo cerrar el fichero que hemos abierto:
Función fgetc
Esta función lee un carácter desde un fichero.
El valorde retornoes el carácterleído como un unsignedchar convertido a int. Si no hay
ningúncarácter disponible, el valorde retornoes EOF. El parámetro es unpunteroa una
estructura FILE del fichero del que se hará la lectura.
Función fputc
Esta función escribe un carácter a un fichero.
El valor de retorno es el carácter escrito, si la operación fue completada con éxito, en
caso contrarioseráEOF. Losparámetrosde entradasonelcarácter a escribir, convertido
a int y un puntero a una estructura FILE del fichero en el que se hará la escritura.
Función fgets
Esta función está diseñada para leer cadenas de caracteres. Leerá hasta n-1 caracteres o hasta
que lea unretorno de línea. En este último caso, el carácter de retorno de línea también esleído.
El parámetro n nos permite limitar la lectura para evitar desbordar el espacio disponible en la
cadena.
El valor de retorno es un puntero a la cadenaleída, si se leyó con éxito,y es NULL si se detecta el
final del fichero o si hay un error. Los parámetros son: la cadena a leer, el número de caracteres
máximo a leer y un puntero a una estructura FILE del fichero del que se leerá.
Función fputs
La función fputsescribe unacadena en unfichero. No se añade el carácterde retornode
línea ni el carácter nulo final.
El valorde retornoes unnúmerono negativo o EOF en caso de error.Los parámetrosde
entrada son la cadena a escribir y un puntero a la estructura FILE del fichero donde se
realizará la escritura.
Función fwrite
Esta función también está pensada para trabajar con registros de longitud constante y
forma pareja con fread. Es capaz de escribir hacia un fichero uno o varios registrosde la
misma longitud almacenados a partir de una dirección de memoria determinada.
El valor de retorno es el número de registros escritos, no el número de bytes. Los
parámetros son: un puntero a la zona de memoria donde se almacenarán los datos
leídos, el tamaño de cada registro, el número de registros a leer y un puntero a la
estructura FILE del fichero del que se hará la lectura.
En la siguienteimagen mandaremosapedir losdatosrequeridoscon el fin de guardarlos
en el fichero dándole una ubicación de memoria del fichero:
Función fread
Esta función estápensadapara trabajarcon registrosde longitudconstante.Escapaz de
leer desde un fichero uno o varios registros de la misma longitud y a partir de una
dirección de memoria determinada. El usuario es responsablede asegurarsede que hay
espacio suficiente para contener la información leída.
El valor de retorno es el número de registros leídos, no el número de bytes. Los
parámetros son: un puntero a la zona de memoria donde se almacenarán los datos
leídos, el tamaño de cada registro, el número de registros a leer y un puntero a la
estructura FILE del fichero del que se hará la lectura.
Con esta función estamos mandando a pedir que primeramente hemos guardado el
fichero:
Función feof
Esta función sirve para comprobar si se ha alcanzado el final del fichero. Muy
frecuentemente deberemos trabajar con todos los valores almacenados en un archivo
de forma secuencial, la forma que suelentenerlos buclespara leertodos losdatosde un
archivo es permanecer leyendo mientras no se detecte el fin de fichero. Esta función
suele usarse como prueba para verificar si se ha alcanzado o no ese punto.
El valor de retorno es distinto de cero sólo si no se ha alcanzado el fin de fichero. El
parámetro es un puntero a la estructura FILE del fichero que queremos verificar.
En la siguiente imagen presentaremos un poco de la estructura que debe llevar un feof:
En este caso el feof fue usado en conjunto con el ciclo while, dicha acción quiere decir
que mientras no se el final del archivo de donde se ingresanlos datos, el fichero seguirá
recibiendo cualquier cantidad de información que sea registrada.
Función rewind
Es una función heredada de los tiempos de las cintas magnéticas. Literalmente significa
"rebobinar", y hace referencia a que para volver al principio de un archivo almacenado
en cinta, había que rebobinarla. Eso es lo que hace ésta función, sitúa el cursor de
lectura/escritura al principio del archivo.
El parámetro es un puntero a la estructura FILE del fichero que queremos rebobinar.
Función fprintf
La función fprintf funciona igual que printf en cuanto a parámetros, pero la salida se
dirige a un fichero en lugar de a la pantalla.
Función fscanf
La función fscanf funciona igual que scanf en cuanto a parámetros, pero la entrada se
toma de un fichero en lugar del teclado.
Función fflush
Esta función fuerza la salida de los datos acumulados en el buffer de salida del fichero.
Para mejorar las prestaciones del manejo de ficheros se utilizan buffers, almacenes
temporalesde datosen memoria, las operaciones de salidase hacen a travésdel buffer,
y sólo cuando el buffer se llena se realiza la escritura en el disco y se vacía el buffer. En
ocasiones nos hace falta vaciar ese buffer de un modo manual, para eso sirve ésta
función.
El valorde retorno es cero si la función se ejecutó con éxito, y EOF si huboalgúnerror.El
parámetro de entrada es un puntero a la estructura FILE del fichero del que se quiere
vaciar el buffer. Si es NULL se hará el vaciado de todos los ficheros abiertos.
Existen dos tipos de fflush, son:
fflush(stdin);
Se usa a la hora de ingresar cualquier tipo de dato, sobre todo cuando usamos gets().
fflush(stdout);
Se usa a la hora de leer datos, para que no haya combinación de información o el
programa de archivos basura.
Función fseek
Esta función sirvepara situarelcursor del fichero paraleer oescribir en el lugardeseado.
El valor de retorno es cero si la función tuvo éxito, y un valor distinto de cero si hubo
algún error.
Los parámetros de entrada son: un puntero a una estructura FILE del fichero en el que
queremos cambiar el cursor de lectura/escritura,el valor del desplazamiento y el punto
de origen desde el que se calculará el desplazamiento.
El parámetro origen puede tener tres posibles valores:
1. SEEK_SET el desplazamiento se cuenta desde el principio del fichero. El primer
byte del fichero tiene un desplazamiento cero.
2. SEEK_CUR el desplazamiento se cuenta desde la posición actual del cursor.
3. SEEK_END el desplazamiento se cuenta desde el final del fichero.
Función ftell
La función ftell sirve para averiguar la posición actual del cursor de lectura/escritura 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.
Sentencias de control
En C, cualquier expresión finalizada en un punto y coma forma una sentencia.
De todos los tipos, las estructuras (o sentencias) de control son las que controlan la
ejecución de las instrucciones de un programa.
La programación estructurada se basa en la utilización de un reducido número de
estructuras que permiten hacer que un programa sea suficientemente legible,
reduciendo considerablemente el número de errores, y facilitando enormemente la
detección y solución de estos.
La característica fundamentaldela programaciónestructuradaconsisteenquetodaslas
estructuras tienen un único punto de entrada y un único punto de salida. Esto permite
descomponer fácilmente un problema en subproblemas, reduciendo la complejidad y
facilitando la programación.
En C diferenciamos tres tipos de sentencias de control:
-Sentencias condicionales o selectivas.
-Sentencias de iteración o repetitivas (bucles).
-Sentencias de salto.
Se recomienda evitar la utilización de este último tipo de sentencias.
Sentencias condicionales
Hay tres sentencias condicionales en C: if, else y switch.
Sentencia if
La sentencia if nos permite elegir si se ejecuta o no un bloque de instrucciones. La
"expresión" del if es una expresión que debe ser evaluada:falsa si es cero y verdaderasi
vale distinto de cero.
Tendrá como resultado:
Sentencia else
Una sentencia if cuando incluye un else, permite ejecutar un bloque de código si se
cumple la condición y otro bloque diferente de código si la condición no se cumple.
En caso de ser negativo entrará en el else:
Sentencia switch
La sentencia switch() en Lenguaje C es una sentencia de selección. Esta sentencia
permite seleccionar las acciones a realizar de acuerdo al valor que tome una variable.
Comportamiento de la instrucción switch
Estructuras de control repetitivas
Sentencia while
Al ejecutarse la instrucción mientras (while), se evaluará la expresión booleana
suministrada en los paréntesis (condición), y si su valor es verdadero (distinto de cero)
se realizará el ciclo o bucle (una o varias instrucciones).
Después, la condición es reevaluada y se procede de la misma manera. Cuando la
condición se vuelve falsa (es decir, cero), en la siguiente evaluación se dará por
terminado el ciclo mientras (while).
Si la condición nunca se vuelve cero, el ciclo nunca terminará y, dependiendo de las
instrucciones incluidas en el bucle, se generaría un error de ejecución que detendría el
programa, o podría ser que el programa itere indefinidamente hasta ser detenido en
forma manual.
En esta estructuranoseconoce necesariamenteel número de veces que entraráalciclo,
ya que esto dependerá de la condición definida.
Características:
1. La condición (expresión lógica) se evalúaantes del ciclo. Si la condición es verdadera
se ejecuta el bucle, y si es falsa se sale y el controlpasa a la instrucciónsiguiente al ciclo.
2. Si la condición es falsa cuando se revisa por primera vez el bucle no se ejecuta nunca,
es decir no entra ningunavez.
3. Mientras la condición sea verdaderael bloquede instrucciones se ejecutará
indefinidamente a menos que exista por lo menos unainstrucción que modifique el
valorde un elemento de la condición.
4. Si existe más de una instrucción se necesitan las palabras reservadas inicio - fin ({2})
para delimitar el bloque de instrucciones.
Sentencia do-while
Esta estructurale permite al programadorespecificar que se repita una acción en tanto
cierta condición sea verdadera; cuando ésta es falsa se sale del ciclo. La condición la
revisa después del ciclo o bucle.
Existen algoritmos y programas que requieren que por lo menos se ejecute el ciclo una
vez y al final se revise la condición; en este caso utilizamos la estructura hacer_mientras.
Es muy semejante al ciclo mientras, con la diferencia de que la condición se evalúa
después de ejecutar el cuerpo del bucle. Tantoel ciclo mientras como el hacer_mientras
pueden utilizarse cuandono se conoce de antemano el númerode veces que se repetirá
el ciclo.
A diferencia del while, alfinaldel do_while sillevapuntoy comadespuésde lainstrucción
while (condición). Donde condición es cualquierexpresión numérica, relacionalo lógica.
Características:
1. Siempre entra por lo menos una vez al ciclo, ya que la condición está después del
ciclo.
2. Si la condición es verdadera entrade nuevoal ciclo y regresa a revisar la condición,
hastaque ésta sea falsa se sale del bucle.
3. Debe existir una instrucción dentrodel ciclo que modifique la condición, de lo
contrario se hace infinita.
4. Si tiene más de unainstrucción, necesita obligadamentedel inicio-fin ({-}).
Sentencia for
El desde (for) es laestructurarepetitiva más utilizada y simple de manejar, ya que repite
un conjuntode instrucciones un númerodeterminado de veces. Una de susaplicaciones
principales son los arreglos.
Donde:
expr_ini(s): expresión(es) de asignación que se utilizan para iniciar la(s) variable(s) de
control del bucle.
cond: es unaexpresión relacional o lógica (booleana)quedetermina cuándofinalizará el
ciclo o bucle. La condición puede ser simple o compuesta (una o varias).
inc(s): define cómo cambiará(n) la(s) variable(s) de control cada vez que se repite el
bucle o ciclo.
Las tres componentes pueden tener una o varias instrucciones, las cuales deben ir
separadas por comas. La cond nos lleva al valor final.
Omisión de expresiones
Cualquierade loscomponentes en losparéntesis se puede omitir, incluso los tres, pero
los separadorescoma (puntoy coma) deben aparecer siempre.
Las tres expresiones del bucle desde (for) se puedenomitir, con el siguiente resultado:
Se omite Resultado
Expresión_inicial No se hace nada antesdel bucle
Condición La condición es siempre cierta
Incremento o expresión_de_paso No se hace nada trascada iteración
En la instrucción desde (for), primero se ejecutará la(s) inicialización(es), posteriormente se
evaluará la condición y, en caso de ser verdadera (no cero), se ejecutará(n) la(s) instrucción(es)
que compone(n) el ciclo.
Después, se realizará el incremento(s) y se volverá a verificar la condición. Cuando la condición
se vuelve falsa, en la siguiente evaluación se terminará el desde (for). Si la condición nunca se
vuelve cero, la estructura nunca terminará y el ciclo se repetirá indefinidamente hasta que se
detenga en forma manual.
Características:
1. Se debe conocer por anticipado el valor de la variable inicial y final antes de entrar al ciclo.
2. La condición se evalúa antes del bloque de instrucciones. Si la condición es verdadera se
ejecuta el bloque, y si es falsa se sale y pasa el control a la instrucción siguiente al bloque.
3. No se debe cambiar el valor de la(s) variable(s) de control, del valor inicial ni del valor final
dentro del ciclo.
4. Se puede incrementar o decrementar la variable de control según se requiera.
5. El incremento o decremento de la variable de control es automático.
6. Sólo si existe más de una instrucción dentro del ciclo desde se necesita el inicio-fin ({-}).
7. Puede tener una o varias expresiones de inicialización, de condición y de incremento; estas
expresiones se separan mediante comas en pseudocódigo y con puntos y comas en lenguaje C.
8. Puede tener alguna o todas las expresiones vacías: desde (,,)-for ( ; ; ).
9. Si la condición está vacía, tenemos un bucle infinito.
Declaración de variables globales y constantes
Las constantes y variables son elementos que tienen el objetivo de identificar los datos
que se utilizan en las operaciones y cálculosque realiza el programay que se almacenan
en la memoria de la computadora.Si las variablesglobalesson declaradasen esta parte,
pueden ser utilizadas en todo el programa.
Ciclos anidados
En unalgoritmopuedehabervariosbucles.Éstospuedenseranidadoso independientes.
Dentro de las instrucciones que se pueden incluir en un ciclo se encuentran, a su vez,
otros ciclos, es decir, instrucciones mientras (while), hacer-mientras (do-while), y desde
(for). Este tipo de construcciones, en las que se incluye una instrucción de repetición
dentro del cuerpo de otra, se conoce como iteración anidada.
En una iteración anidada, en cada iteración del ciclo exterior se completa un grupode
iteraciones del ciclo interior. Considere, por ejemplo, el siguiente fragmento de código:
for (i51; i,52; i11)
for (j51; j,53; j11)
printf(“%d %dn”, i, j);
El ciclo exterior se ejecutará dos veces, haciendo variar la variable i por los valores 1, 2.
En cada una de estas iteraciones se ejecutará un ciclo de tres iteraciones (el desde (for)
interior), en el que se variará la variable j por los valores 1, 2, 3. De esta forma, por cada
valor que toma la variable i, la variable j tomará todos sus valores.
Así, la instrucción printf se ejecutará seis veces (233); de la misma manera lo hicimos en
el ejemplo 10.
Es posible anidar cualquier cantidad de instrucciones de iteración, prácticamente hasta
que la implementación del compilador lo soporte. Sin embargo, demasiados niveles de
anidamiento pueden volver el programa difícil de leer.
Funciones
Ejemplo de una función
Para comenzar, vamos a considerar el caso en el cual se desea crear la función
cuadrado(),que deberá devolver el cuadradode unnúmero real (de puntoflotante), es
decir, cuadrado()aceptaránúmeros de puntoflotante y regresará una respuestacomo
número flotante.
Nota: aunquepara la función que veremos el tipo de retornocoincide con el tipo de
parámetropasado, algunasveces las cosas puedencambiar, es decir, no es obligatorio
que una función reciba un parámetrode untipo y que tenga que regresaruna
respuestade dicho tipo.
Parámetros
Normalmente, las funciones operan sobre ciertos valores pasados a las mismas ya sea
como constantes literales o como variables, aunque se pueden definir funciones que
reciban parámetros.Existen dos formas en C++ de pasar parámetros a una función; por
referencia o por valor. El hecho es que si en una declaración de función se declaran
parámetrosporreferencia, a losmismos no se les podrápasarvaloresliteralesya quelas
referencias apuntana objetos (variablesofunciones) residentes en lamemoria; porotro
lado, si un parámetro es declarado para ser pasado por valor, el mismo puede pasarse
como unaconstanteliteral o como unavariable. Los parámetrospasadospor referencia
puedenser alteradosporlafunción que losreciba, mientrasque losparámetrospasados
por valor o copia no pueden ser alterados por la función que los recibe, es decir, la
función puedemanipulara suantojoal parámetro,peroningúncambio hechosobre este
se reflejará en el parámetro original.
Parámetros porvalor
La función cuadrado() (ver arriba) es un clásico ejemplo que muestra el paso de
parámetros por valor, en ese sentido la función cuadrado() recibe una copia del
parámetron. En la misma función se puede observarque se realiza un cálculo( n*n ), sin
embargo el parámetrooriginal no sufrirá cambio alguno, esto seguirá siendo cierto aun
cuando dentro de la función hubiera una instrucción parecida a n = n * n; o n*=n;.
Parámetros porreferencia
Paramostrarunejemplo delpasode parámetrosporreferencia, vamosa retomarel caso
de la función cuadrado, salvo que en esta ocasión cambiaremos ligeramente la sintaxis
para definir la misma. Veamos:
Funciones void
Bajo ciertas circunstancias se deseará escribir funciones que no regresen valor alguno
(esto sería algoparecido a escribir proceduresen Pascal)y para ellopodemos declarar a
la función como void. La palabrareservada void es utilizada para declarar funciones sin
valor de retorno y también para indicar que una función específica no requiere de
parámetros.
A continuación unos ejercicios en los que se aplica todo lo que se
ha enseñado a lo largo del manual:
1) Cajero virtual (Paso por paso)
2)Cálculo del IR y recolección de basura
3) Login
Manual de Programación c/c++ Ricky Bonilla

More Related Content

What's hot

Repaso del lenguaje C++
Repaso del lenguaje C++Repaso del lenguaje C++
Repaso del lenguaje C++
g_torrealba
 

What's hot (20)

Practica 1
Practica 1Practica 1
Practica 1
 
LENGUAJE DE PROGRAMACION C++ INTRODUCCION
LENGUAJE DE PROGRAMACION C++ INTRODUCCIONLENGUAJE DE PROGRAMACION C++ INTRODUCCION
LENGUAJE DE PROGRAMACION C++ INTRODUCCION
 
Computacion alejandro
Computacion alejandroComputacion alejandro
Computacion alejandro
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Aprendiendo Lenguaje C
Aprendiendo Lenguaje CAprendiendo Lenguaje C
Aprendiendo Lenguaje C
 
Programacion
ProgramacionProgramacion
Programacion
 
Lenguaje c
Lenguaje c Lenguaje c
Lenguaje c
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador
 
Repaso del lenguaje C++
Repaso del lenguaje C++Repaso del lenguaje C++
Repaso del lenguaje C++
 
franco lorentz word2
franco lorentz word2franco lorentz word2
franco lorentz word2
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Fundamentos de visual basic 6.0.
Fundamentos de visual basic 6.0. Fundamentos de visual basic 6.0.
Fundamentos de visual basic 6.0.
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Sintaxis de lenguaje de programacion
Sintaxis de lenguaje de programacionSintaxis de lenguaje de programacion
Sintaxis de lenguaje de programacion
 
c++ introduccion
c++ introduccionc++ introduccion
c++ introduccion
 
Programación de nivel básico 1. c1. p1.
Programación de nivel básico 1. c1. p1.Programación de nivel básico 1. c1. p1.
Programación de nivel básico 1. c1. p1.
 
Programacion En Lenguaje C
Programacion En Lenguaje CProgramacion En Lenguaje C
Programacion En Lenguaje C
 
C++
C++C++
C++
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 

Viewers also liked

3899699 manual-de-programacion-con-php-y-my sql
3899699 manual-de-programacion-con-php-y-my sql3899699 manual-de-programacion-con-php-y-my sql
3899699 manual-de-programacion-con-php-y-my sql
ffernandog1978
 
Inter p referencia completa
Inter p referencia completaInter p referencia completa
Inter p referencia completa
tammyurbe
 
Manual Programaciòn
Manual ProgramaciònManual Programaciòn
Manual Programaciòn
Ephikness
 
Librerias en-lenguaje-c
Librerias en-lenguaje-cLibrerias en-lenguaje-c
Librerias en-lenguaje-c
Kevin2811
 
Bibliotecas en c
Bibliotecas en cBibliotecas en c
Bibliotecas en c
demata
 
Charla Web Services
Charla Web ServicesCharla Web Services
Charla Web Services
Jose Selman
 
Variables y Constantes en C++
Variables y Constantes en C++Variables y Constantes en C++
Variables y Constantes en C++
ivanjvic
 

Viewers also liked (20)

Tipos de datos en C
Tipos de datos en CTipos de datos en C
Tipos de datos en C
 
Herramientas para programar en C
Herramientas para programar en CHerramientas para programar en C
Herramientas para programar en C
 
Pilas Pilas
Pilas PilasPilas Pilas
Pilas Pilas
 
3899699 manual-de-programacion-con-php-y-my sql
3899699 manual-de-programacion-con-php-y-my sql3899699 manual-de-programacion-con-php-y-my sql
3899699 manual-de-programacion-con-php-y-my sql
 
Inter p referencia completa
Inter p referencia completaInter p referencia completa
Inter p referencia completa
 
Manual Programaciòn
Manual ProgramaciònManual Programaciòn
Manual Programaciòn
 
Como funciona Visual Studio
Como funciona Visual StudioComo funciona Visual Studio
Como funciona Visual Studio
 
Manual programacion c++
Manual programacion c++Manual programacion c++
Manual programacion c++
 
Libreria c++
Libreria c++Libreria c++
Libreria c++
 
Lenguaje C para Administradores de Red - Script II Punteros
Lenguaje C para Administradores de Red - Script II PunterosLenguaje C para Administradores de Red - Script II Punteros
Lenguaje C para Administradores de Red - Script II Punteros
 
Lenguaje C (pdf)
Lenguaje C (pdf)Lenguaje C (pdf)
Lenguaje C (pdf)
 
Librerias en-lenguaje-c
Librerias en-lenguaje-cLibrerias en-lenguaje-c
Librerias en-lenguaje-c
 
Bibliotecas en c
Bibliotecas en cBibliotecas en c
Bibliotecas en c
 
Manual Programacion Php
Manual Programacion PhpManual Programacion Php
Manual Programacion Php
 
Librerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación CLibrerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación C
 
Estructura de la materia
Estructura de la materiaEstructura de la materia
Estructura de la materia
 
Charla Web Services
Charla Web ServicesCharla Web Services
Charla Web Services
 
Manual del dev c++
Manual del dev c++Manual del dev c++
Manual del dev c++
 
Analisis y diseño de algoritmos
Analisis y diseño de algoritmosAnalisis y diseño de algoritmos
Analisis y diseño de algoritmos
 
Variables y Constantes en C++
Variables y Constantes en C++Variables y Constantes en C++
Variables y Constantes en C++
 

Similar to Manual de Programación c/c++ Ricky Bonilla

Glosario de conceptos de la creación de los programas
Glosario de conceptos de la creación de los programasGlosario de conceptos de la creación de los programas
Glosario de conceptos de la creación de los programas
Gabriel Méndez
 
Introducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptxIntroducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptx
DavidGarca147527
 
Actividad....... 26
Actividad....... 26Actividad....... 26
Actividad....... 26
grachika
 
Estructura de un programa en c
Estructura de un programa en cEstructura de un programa en c
Estructura de un programa en c
Armando Jori
 
Actividad26
Actividad26Actividad26
Actividad26
grachika
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
tf94
 
Unidad3 130504163038-phpapp02 (1)
Unidad3 130504163038-phpapp02 (1)Unidad3 130504163038-phpapp02 (1)
Unidad3 130504163038-phpapp02 (1)
Leslie Diaz
 
Clase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacionClase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacion
joel210696
 

Similar to Manual de Programación c/c++ Ricky Bonilla (20)

Glosario de conceptos de la creación de los programas
Glosario de conceptos de la creación de los programasGlosario de conceptos de la creación de los programas
Glosario de conceptos de la creación de los programas
 
Act26
Act26Act26
Act26
 
Unmsm02 2008
Unmsm02 2008Unmsm02 2008
Unmsm02 2008
 
Introducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptxIntroducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptx
 
Actividad....... 26
Actividad....... 26Actividad....... 26
Actividad....... 26
 
Lenguaje de la programación orientada a objetos c#
Lenguaje de la programación orientada a objetos c#Lenguaje de la programación orientada a objetos c#
Lenguaje de la programación orientada a objetos c#
 
Estructura de un programa en c
Estructura de un programa en cEstructura de un programa en c
Estructura de un programa en c
 
Actividad26
Actividad26Actividad26
Actividad26
 
Herramientas computacionales
Herramientas computacionales Herramientas computacionales
Herramientas computacionales
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Lenguaje C
Lenguaje CLenguaje C
Lenguaje C
 
P01 secuencial
P01 secuencialP01 secuencial
P01 secuencial
 
Unidad3 130504163038-phpapp02 (1)
Unidad3 130504163038-phpapp02 (1)Unidad3 130504163038-phpapp02 (1)
Unidad3 130504163038-phpapp02 (1)
 
Fundamentos de Programación
Fundamentos de ProgramaciónFundamentos de Programación
Fundamentos de Programación
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
La programación informática o programación algorítmica, acortada
La programación informática o programación algorítmica, acortadaLa programación informática o programación algorítmica, acortada
La programación informática o programación algorítmica, acortada
 
Unidad 3 margie
Unidad 3 margieUnidad 3 margie
Unidad 3 margie
 
Xd1
Xd1Xd1
Xd1
 
Clase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacionClase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacion
 

More from Estudiantes ISI_UCA

More from Estudiantes ISI_UCA (20)

Manual
ManualManual
Manual
 
Manual C/C++
Manual C/C++ Manual C/C++
Manual C/C++
 
Manual C/C++ Jason Martinez
Manual C/C++ Jason MartinezManual C/C++ Jason Martinez
Manual C/C++ Jason Martinez
 
Manual C-C++ Pablo
Manual C-C++ PabloManual C-C++ Pablo
Manual C-C++ Pablo
 
Manual programación
Manual programaciónManual programación
Manual programación
 
Manual C/C++ Carlos Diaz
Manual C/C++ Carlos Diaz Manual C/C++ Carlos Diaz
Manual C/C++ Carlos Diaz
 
Manual de usuario c
Manual de usuario  cManual de usuario  c
Manual de usuario c
 
Manual C/C++ Néstor Flores
Manual C/C++ Néstor FloresManual C/C++ Néstor Flores
Manual C/C++ Néstor Flores
 
Manual AGFV
Manual AGFVManual AGFV
Manual AGFV
 
Manual C / C++ Melvin
Manual C / C++ MelvinManual C / C++ Melvin
Manual C / C++ Melvin
 
Manual laboratorio de programación#1
Manual laboratorio de programación#1Manual laboratorio de programación#1
Manual laboratorio de programación#1
 
Manual programación
Manual programaciónManual programación
Manual programación
 
Manual de usuario (C/C++)
Manual de usuario (C/C++)Manual de usuario (C/C++)
Manual de usuario (C/C++)
 
Manualito C/C++ - Leonardo Aquino
Manualito C/C++ - Leonardo AquinoManualito C/C++ - Leonardo Aquino
Manualito C/C++ - Leonardo Aquino
 
Manual de programación en C/C++
Manual de programación en C/C++Manual de programación en C/C++
Manual de programación en C/C++
 
Lenguaje de programacion en c
Lenguaje de programacion en cLenguaje de programacion en c
Lenguaje de programacion en c
 
Manual de c c++
Manual de c c++Manual de c c++
Manual de c c++
 
manualitoRodolfo
manualitoRodolfomanualitoRodolfo
manualitoRodolfo
 
Manual Francis Jarquin R
Manual Francis Jarquin RManual Francis Jarquin R
Manual Francis Jarquin R
 
Manual C/C++
Manual C/C++Manual C/C++
Manual C/C++
 

Recently uploaded

analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
Ricardo705519
 

Recently uploaded (20)

2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
Presentación Instrumentos de Medicion Electricos.pptx
Presentación Instrumentos de Medicion Electricos.pptxPresentación Instrumentos de Medicion Electricos.pptx
Presentación Instrumentos de Medicion Electricos.pptx
 
Trazos paileros para realizar trazos, cortes y calculos.pptx
Trazos paileros para realizar trazos, cortes y calculos.pptxTrazos paileros para realizar trazos, cortes y calculos.pptx
Trazos paileros para realizar trazos, cortes y calculos.pptx
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
Minería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptosMinería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptos
 
Tabla de referentes empíricos para tesis-1.docx
Tabla de referentes empíricos para tesis-1.docxTabla de referentes empíricos para tesis-1.docx
Tabla de referentes empíricos para tesis-1.docx
 
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdfDISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
 
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelosFicha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo process
 
ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptx
 
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdfAnálisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
 
Desigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfDesigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdf
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalación
 

Manual de Programación c/c++ Ricky Bonilla

  • 1. Manual de Laboratorio de Programación I 2016 Autor: Ricky DeyrinBonillaRodríguez Profesor: Ing. Elsner Boanerge González Facultad: Ciencia, Tecnologíay Ambiente Carrera: Ingenieríaen Sistemas de Información
  • 2. Introducción Creador del lenguaje C Dennis MacAlistair Ritchie (9 de septiembre de 1941 - 12 de octubre de 2011) fue un científico de la computación estadounidense. Colaboróen el diseño y desarrollode los sistemas operativos Multics y Unix, así como el desarrollodevarios lenguajesde programación como el C, tema sobreel cual escribió un célebre clásico de las ciencias de la computación junto a Brian Wilson Kernighan: El lenguaje de programación C. ¿Qué es el lenguaje C? C es unlenguaje de programación de propósito general que ofrece economía sintáctica, control de flujo y estructuras sencillas y un buen conjunto de operadores. No es un lenguaje de muy alto nivel y más bien un lenguaje pequeño, sencillo y no está especializado en ningún tipo de aplicación. Esto lo hace un lenguaje potente, con un campo de aplicación ilimitado y sobre todo, se aprende rápidamente. En poco tiempo, un programador puede utilizar la totalidad del lenguaje. Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX, puesto que fuerondesarrolladosconjuntamente.Sinembargo,este lenguajenoestá ligadoa ningún
  • 3. sistema operativo ni a ninguna máquina concreta. Se le suele llamar lenguaje de programación de sistemas debido a su utilidad para escribir compiladores y sistemas operativos, aunque de igual forma se puede desarrollar cualquier tipo de aplicación. Etapas o pasos en la creación de un programa Definición del problema Esta fase la proporciona el enunciado del problema, el cual requiere unadefinición clara y precisa (no debe ser ambiguo). Es importante que se entienda perfectamente lo que pretendemos que haga la computadora para poder continuar con la siguiente etapa. Análisis del problema Una vez que se ha comprendido lo que se desea que la computadora haga, la etapa de análisis es muy importante ya que en ésta se identifican tres factores indispensables: 1. Qué información se necesita para obtener el resultado deseado (datos de entrada). 2. Qué información se desea producir (datos de salida). 3. Losmétodos y fórmulasque senecesitan paraprocesarlos datosy produciresa salida. Diseño y técnicas para la formulación de un algoritmo La etapa de diseño se centra en desarrollar el algoritmo basándonos en las especificaciones de la etapadel análisis;podemos representarun algoritmomediante el diagrama de flujo o el pseudocódigo. Codificación En la etapa de codificación se transcribe el algoritmo definido en la etapa de diseño en un código reconocido por la computadora; es decir, en un lenguaje de programación; a éste se le conoce como código fuente. Por ejemplo el lenguaje “C” es un lenguaje de programación y es el que utilizaremos en el presente curso. Prueba y depuración La prueba consiste en capturardatoshasta que el programafuncione correctamente. A la actividad de localizar errores se le llama depuración. Existen dos tipos de pruebas:de sintaxis y de lógica.
  • 4. Las pruebas de sintaxis se ejecutan primero, son las más sencillas y las realiza el compilador del programa cada vez que se ejecuta el programa hasta que el código no presente errores, es decir que la sintaxis que requiere el lenguaje sea la correcta, de lo contrario el propio compilador va mostrando los errores encontrados para que se modifiquen y se pueda ejecutar el código; estos errores pueden ser falta de paréntesis, o puntos y comas o palabras reservadas mal escritas. Las pruebas de lógica son las más complicadas ya que éstas las realiza el programador; consisten en la captura de diferentes valores y revisar que el resultado sea el deseado, es decir el programadortendríaque modificar el código hastaque el programafuncione correctamente. Documentación Es la guía o comunicación escrita que permite al programador o al usuario conocer la funcionalidad del programa. La documentación sirve para que el código fuente sea más comprensible para el programador o para otros programadores que tengan que utilizarlo, así como para facilitar futuras modificaciones (mantenimiento). Hay dos tipos de documentación: • Interna. Se generan en el mismo código y generalmente es mediante comentarios. • Externa. Son los manuales y es independiente al programa. También puede ser la ayuda en el mismo software. Mantenimiento Se dice que un programano se termina al 100%, ya que es necesario hacer algúncambio, ajuste o complementación para que siga funcionando correctamente; para llevarlo a cabo se requiere que el programa esté bien documentado. ¿Qué es un identificador? Un identificador es una secuencia de caracteres alfabéticos, numéricos y el guión bajo. Con ellos podemos dar nombre a variables, constantes, tipos de dato, nombres de funciones o procedimientos, etcétera. Cada lenguaje de programación tiene sus propias características del tamaño del identificador; el estándar de lenguaje C no especifica un límite de tamaño para un
  • 5. identificador, pero para ciertas implementaciones de C11sólo los primeros 31 caracteres son significativos (ANSI C). El programadortiene libertad para darle cualquier nombre a un identificador, siguiendo estas reglas: 1. Debe comenzar con unaletra(A a Z) mayúsculao minúsculay nopuede contener espacios en blanco. En lenguaje C, el carácter “_” (guion bajo) es considerado como letra,por lo que se puede utilizar como primer carácter. 2. El lenguaje Cdistingue mayúsculas de minúsculasporquetienen diferente código ASCII. 3. Letras, dígitos y el carácter guion bajo están permitidos después del primer carácter. 4. No pueden existir dos identificadores iguales, es decir, dos elementos de un programa no pueden nombrarse de la misma forma. Sin embargo, un identificador puede aparecer más de una vez en un programa. 5. No se puede utilizar una palabra reservada como identificador, sin embargo, los identificadores estándar se pueden redefinir. 6. En lenguajeC existen identificadores que podríantener unoo variospuntos,tales como: persona.apellidoPaterno. El punto indica el acceso a un campo de unaestructura. Sugerencias: 1. El identificador debe tener un nombre que sea significativo, es decir, que dé una idea de la información que almacena. 2. No utilizar nombres muy largos,es mejor utilizar abreviaturasestándar para que éstos tengan una longitud razonable. 3. En lenguaje C es usual escribir variables en minúscula, dejando las mayúsculas paralas constantes.En los casosde nombrescompuestosse sueleponer la inicial de la segunda palabra en mayúscula. Para poder almacenarlos datos de cualquier índole, podemos crear un identificador con un nombre relativo a lo que guardaremosen el identificador:
  • 6. ¿Qué son los variables? Una variable, en realidad, no es más que unnombre para identificar una(o varias) posiciones de memoria donde el programaguardalos distintos valoresde unamisma entidad. Un programadebe DEFINIR a todas las variablesque utilizará, antes de comenzar a usarlas,a fin de indicarle al compilador de que tipo serán, y por lo tanto cuantamemoria debe destinarpara albergara cada unade ellas. Para definir una variabledebe tener en cuenta:  Darles nombre que tenganun significado que luego permita una fácil lectura del programa.  Los identificadores deben comenzar con una letraó con el símbolo de subrayado "_" , pudiendo continuar con cualquier otro caractér alfanumérico ó el símbolo "_" .  El lenguajeC essensible altipo de letrausado;asítomarácomo variablesdistintas a una llamada "variable”, de otra escrita como "VARIABLE". Es una convención entre losprogramadoresdeC escribir losnombres de lasvariablesy las funciones con minúsculas, reservando las mayúsculas para las constantes.  Los compiladores reservandeterminados términos ó palabrasclaves (Keywords) para el uso sintáctico del lenguaje, talescomo: asm, auto, break,
  • 7. case, char,do, for, etc. Si bien estas palabrasestándefinidas para el ANSI C, los distintos compiladores extienden esta definición a OTROS términos, por lo que es aconsejable leer la tablacompleta de palabrasreservadasdel compilador que se vaya a usar,para no utilizarlas en nombres de variables. ¿Cuáles son los tipos de datos? Los diferentes objetos de información con los que unalgoritmo o programatrabaja se conocen colectivamente como datos.Todos los datostienen un tipo asociado con ellos; el tipo de un dato es el conjunto (rango) de valoresque puede tomardurante el programa.Por ejemplo el tipo de un dato determina la naturalezadel conjunto de valoresque puede tomaruna variable. Tipos básicos predefinidos:  int (entero)  float (flotante  double (flotante de doble precisión)  char (carácter)  bool (booleano o lógico) Las formas de declararun identificador con los tipos de datosanteriores son los siguientes: El compilador dará como error de "Definición incorrecta" a la definición de variables con nombres del tipo de:
  • 8. ¿Qué son las constantes? Aquellos valores que una vez compilado el programa no pueden ser cambiados, como por ejemplo los valores literales que hemos usadohasta ahora en las inicializaciones de las variables (100, 3, ‘a’, 'n’), suelen denominarse CONSTANTES. Como dichas constantes son guardadas en memoria de la manera que al compilador le resulta más eficiente suelen aparecer ciertos efectos secundarios, a veces desconcertantes, ya que las mismas son afectadas por las reglas de RECONVERSION AUTOMATICA DE TIPO vista previamente. A fin de tener control sobre el tipo de las constantes, se aplican las siguientes reglas: Una variable expresada como entera (sin parte decimal) es tomada como tal salvo que se la siga de las letras F ó L (mayúsculas ó minúsculas) ejemplos: 1 : tomada como ENTERA 1F : tomada como FLOAT 1L : tomada como LONG DOUBLE Una variable con parte decimal es tomada siempre como DOUBLE, salvo que se la siga de la letra F ó L 1.0 : tomada como DOUBLE 1.0F : tomada como FLOAT 1.0L : tomada como LONG FLOAT Si en cualquiera de los casos anteriores agregamos la letra U ó u la constante queda calificada como UNSIGNED (consiguiendo mayor alcance) :
  • 9. 1u : tomada como UNSIGNED INT 1.0UL : tomada como UNSIGNED LONG DOUBLE Una variable numérica que comienza con "0" es tomado como OCTAL asi : 012 equivale a 10 unidades decimales Una variable numérica que comienza con "0x" ó "0X" es tomada como hexadecimal: 0x16 equivale a 22 unidades decimales y 0x1A a 26 unidades decimales. Conversiones de datos Las conversiones automáticas pueden ser controladas a gusto por el programador, imponiendo el tipo de variable al resultado de una operación. Los tipos de datos que si se pueden transformar a otro tipo de dato son las “S” de sí y las “N” de no son las que no se pueden transformar: Ejemplo 1: En la conversión de Double a Short :
  • 10.
  • 11. Ejemplo 2: En la conversión de Char a Short: ¿Qué expresiones aritméticas existen en C? De la evaluación de una expresión aritmética siempre se obtiene unvalor de tipo entero o real. En lenguaje C existen algunos operadores que no se utilizan en pseudocódigo, y al revés. A continuación, se van a ver algunas similitudes y diferencias entre ambos lenguajes.
  • 12. Las expresiones se evalúande acuerdo con la precedencia de los operadores. Ante una secuencia de operadoresde igual precedencia, la evaluaciónse realiza segúnel ordende escritura, de izquierda a derecha. El orden de evaluación puede modificarse usando paréntesis. Comentarios La primera línea de un programaen C suele ser unalínea de comentario, en la cual se escribe el nombre del programa, lo que realiza, los datos del autor,la fecha y la versión. Las líneas de comentario en C estándarse encierran entre los caracteres /* y */. En C11 los comentarios se inician con //. ¿Qué son los arreglos en C? Un arreglo es un tipo de dato estructurado que almacena en una sola variable un conjunto limitado de datos o elementos del mismo tipo. Asimismo, es un conjunto de localidades de memoria contiguasdondela direcciónmás baja correspondeal primer elementoy ladirección más alta al último. Por sí mismo, el nombre del arreglo apunta a la dirección del primer elemento del arreglo.Losdatos se llamanelementos delarreglo y suposición se numera consecutivamente: 1, 2, 3…n. Un arreglo en lenguaje C inicia en la posición cero, por lo tanto el i-ésimo elemento está en la posición i-1, es decir si el arreglo llamado a tiene n
  • 13. elementos, sus nombresson a[0],a[1],..., a[n-1].El tipo de elementos almacenadosen el arreglo puede ser cualquier tipo de dato. Para acceder a un elemento específico de un arreglo se usa un índice o subíndice. Un arreglo se caracteriza por: 1. Ser una lista de un número finito de n elementos del mismo tipo. 2. Almacenar los elementos del arreglo en memoria contigua. 3. Tener un único nombre de variable que representa a todos los elementos y éstos se diferencian por un índice o subíndice. 4. Acceder de manera directa o aleatoria a los elementos individuales del arreglo,por el nombre del arreglo y el índice o subíndice. Los arrays, arreglos o vectores forman parte de la amplia variedad de estructuras de datos que nos ofrece C++, siendo además una de las principales y más útiles estructuras quepodremostenercomo herramientade programación.Losarrays, arreglosovectores (como los quieras llamar), son utilizados para almacenar múltiples valores en una única variable. En un aspecto más profundo, los arrays, permiten almacenar muchos valores en posiciones de memoria continuas,locualpermite acceder a unvaloruotrode manera rápida y sencilla. Estos valores pueden ser números, letras o cualquier tipo de variable que deseemos incluso tipos de datos propios. En múltiples ocasiones es necesario almacenar gran cantidad de información en una variable y a menudo sucede que no conocemos con exactitud la cantidad de datos que debemos almacenar, pero sabemos que sí sería más de uno, como por ejemplo almacenarlas identificaciones de laspersonasingresadasalsistema. Los arrays,arreglos o vectores son una estructura que nos permite solucionar este tipo de problemas. Ejemplos de arreglos Imaginemos que queremos crear un programa con el cual podamos de algún modo almacenar los títulos y los autores de diferentes libros. El usuario es el encargado de suministrar la información de cada libro, así entonces, dado que es el usuario quien lo hace, nosotrosno tenemos manera algunade saber cuántoslibros va querer él ingresar por medio de nuestro programa. El caso principal es que queremos almacenar en la memoria el título y el autor de TODOS y cada uno de los libros.
  • 14. ¿Cómo declarar un Array o Vector en C++? Paradeclararunvector en C++, se debenseguir lasmismas normasbásicas quese siguen para declarar una variable cualquiera, con un pequeño cambio en la sintaxis. Para declarar un vector, arreglo o como lo quieras llamar, necesitaremos saber el tipo de los datosque irán al interior de este, es decir, serán númeroenteros, o número decimales o cadenas de texto, etc. necesitamos también, como siempre, un nombre para el vector y un tamaño máximo. La sintaxis para declarar un vector en C++ es la siguiente: tipo_de_dato nombre_del_vector[tamaño]; Paradeclarar unvector en C++, debemos definirle un tipo de los datos,sea entero, float, string,etc., debemos darleun nombrey al interior de los corchetes "[ ]" debemos poner el tamañomáximo que tendráel vector, es decir la cantidadmáxima de datosque podrá contener(recuerdaque en C++ estoes necesario hacerlo). A continuación unejemplo de cómo declarar un arreglo: Ahoramandaremos a imprimir este arreglo de la siguiente forma: Al compilar el programatendremosel siguiente resultado:
  • 15. Arreglos bidimensionales Son arreglos con dos dimensiones, es decir tienen filas y columnas, los valores de la variable se llamanelementos, de la misma forma que en losarreglosunidimensionales y sus índices están compuesto por dos caracteres que indican posición. Para acceder a su elemento se debe poner su posición compuesta de los dos índices. Porejemplo paralamatriz Ay laposición en lafila 1 y lacolumna2. Se debe ponerA [1][2], denotándoseque el primer índice indica la posición de la fila y el segundola posición de la columna. 0 1 2 3 4 5 6 7 0 1 2 3
  • 16. Nota: todoslos arreglosinician desde 0. Un arreglobidimensional se declara de la siguiente manera: Ahoramandaremos a imprimir este arreglobidimensional de la siguiente forma: Al compilar el programatendremosel siguiente resultado:
  • 17. Bibliotecas o librerías en C Juntocon loscompiladores de C y C++, se incluyen ciertos archivos llamadosbibliotecas más 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. Nota: Muchospersonasconsideranque el nombre adecuado es archivos de biblioteca, y están en lo correcto. Sin embargo, la mayoría llamamos a estos archivos librerías, y también me incluyo entre estos. El error proviene del nombre en inglés, que es library. Este término se traduce como biblioteca, y no como librería. De este modo a lo largode esta sección las llamaré de cualquiera de las dos formas, para estar más claros. Hay un conjunto de bibliotecas (o librerías) muy especiales, que se incluyen con todos loscompiladores de Cy de C++. Sonlas librerías(o bibliotecas) ANSI o estándar.También hay librerías que no son parte del estándar pero en esta sección sólo usaremos algunas bibliotecas (o librerías) ANSI. ¿Cómo declarar una librería en C++? Veamos a continuacióncomo se haría ladeclaración de unascuantaslibrerías conocidas, recuerda que ese pueden declarar todas las librerías necesarias y siempre debe hacerse al comienzo del código fuente:
  • 18. #include "iostream" #include "string" #include <math.h> #include <conio.h> ¿Qué es un struct? Estas estructuras controlan cómo se ejecutan los programas, es decir el orden de las instrucciones, ya que tienen un solo punto de entrada y un punto de salida. En la programación estructurada se mezclan las estructuras de control y las podemos clasificar en: Estructura de control secuencial Las instrucciones se ejecutan en orden, una por una desde la primera hastala última, es decir el programa ejecuta todas las instrucciones del programa en el orden establecido sin saltarse ninguna de ellas. Estructura de control selectiva o alternativa De acuerdo con una condición que puede ser verdadera o falsa se elige una opción, la cual realiza una acción (una o varias instrucciones). La condición puede ser simple o compuesta (una o varias). Estructuras de control Secuencial Selectiva Repetitiva o de iteración
  • 19. Estructura de control repetitiva o de iteración condicionada Una acción se repite unacantidad definida o indefinida de veces mientras unacondición sea verdadera. La lógica de programación se centra sobre todo en el cuerpo del programa, utilizando las estructuras de datos y las de control, además de la programación modular. Para diseñar los programas de computadora, comúnmente se utilizan diferentes estructuras de control a fin de poder llegar a la solución de un problema, cuáles y cuántas dependerán del problema mismo. Para facilitar la comprensión de la lógica de programación, primero realizaremos el diagrama de flujo, el pseudocódigo y lenguaje C de algunos ejercicios y después solamente el pseudocódigo y lenguaje C. Unaestructuracontienevariosdatos.La forma dedefinir unaestructuraeshaciendouso de la palabra clave struct. Aquí hay ejemplo de la declaración de una estructura: Estructuras anidadas Una estructura puede estar dentro de otra estructura a esto se le conoce como anidamiento o estructuras anidadas. Ya que se trabajan con datos en estructuras si definimos un tipo de dato en una estructura y necesitamos definir ese dato dentro de otra estructura solamente se llama el dato de la estructura anterior. Definamos una estructura en nuestro programa:
  • 20. A continuación un programa completo sobre los struct, para una mejor compresión y dar por finalizado este tema: 1. Diseñe un programa en el que se puedan registrar los datos personales de dos atletas en una estructura, tales como: nombre y país, además cree otra estructura en la que pueda guardar datos como:eldeportequepracticayel númerode medallas obtenidas.Las estructuras deben actuar simultáneamente. a) Declaramos las librerías que usaremos (unaeneste caso), además del using namespace ya antes visto. b) Declaramos la primera estructura llamada struct datos
  • 21. c) Declaramos la segunda estructura que usaremos llamada struct atleta, además de que anidaremos laestructuraanterior,conelfinde declarar una solo estructura en el int main(). d) Entramos en el int main() en el cual declararemos la estructura de atleta que contiene a las estructura datos e) Mandamos a imprimir enpantalla los requerimientos apedir, en este caso para el primer atleta
  • 22. En la imagen anterior, alpedir al usuario que ingrese los datos, podemos ver que primero parapoderingresar undato en una variable en específico, debemos ponerlavariable que le dimos a la estructura atleta que eneste caso es: ats[2]. f) Ahora vamos a pedir los datos del segundo atleta con el mismo procedimiento:
  • 23. g) Sin olvidar el return 0 De este modo hemos terminado conlos requerimientos delprograma, por lo cual proseguiremosaimprimir enpantalla, lo cual dará como resultado lo siguiente:
  • 24. Una vez que hayamos ingresado los datos el programafinalizará:
  • 25. Ficheros Losficheros, en contraposicióncon lasestructurasdedatosvistashastaahora(variables simples, vectores, registros, etc.), son estructuras de datos almacenadas en memoria secundaria. Para utilizar la información en memoria principal se emplea fundamentalmentela instrucción de asignación; sin embargo, para guardaro recuperar información de un fichero es necesario realizar una serie de operaciones que describiremos en este apartado. El formato de declaración de un fichero es el siguiente: FILE * nom_ var_fich; En otros lenguajes la declaración del fichero determina el tipo de datos que se van a almacenar en él. En C la filosofía es distinta, todos los ficheros almacenan bytes y es cuando se realiza la aperturay la escritura cuandose decide cómo y qué se almacena en el mismo; durante la declaración del fichero no se hace ninguna distinción sobre el tipo del mismo. En la operación de aperturase puede decidir si el fichero va a ser de texto o binario, los primeros sirven para almacenar caracteres, los segundos para almacenar cualquier tipo de dato. Si deseamos leer un fichero como el autoexec.bat utilizaremos un fichero de texto, si queremos leer y escribir registros (struct) usaremos un fichero binario. Función fopen Esta función sirve para abrir y crear ficheros en disco. El valorde retornoes un puntero a una estructura FILE. Los parámetrosde entradason: 1. Nombre: una cadena que contiene unnombre de fichero válido, esto depende del sistema operativo que estemos usando.El nombre puede incluir el camino completo. 2. Modo: especifica en tipo de fichero que se abrirá o se creará y el tipo de datos que puede contener, de texto o binarios:  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 cursorse sitúa 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.
  • 26.  a+: añadir, lecturay escritura, el cursorse sitúa 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. Por aquí un ejemplo de cómo se declara un fopen: Función fclose Es importante cerrarlos ficheros abiertos antes de abandonarla aplicación. Estafunción sirve para eso. Cerrar un fichero almacena los datos que aún están en el buffer de memoria, y actualiza algunos datos de la cabecera del fichero que mantiene el sistema operativo. Además permite que otros programas puedan abrir el fichero para su uso. Muy a menudo, los ficheros no pueden ser compartidos por varios programas. Un valor de retorno cero indica que el fichero ha sido correctamente cerrado, si ha habido algún error, el valor de retornoes la constante EOF. El parámetro es un puntero a la estructura FILE del fichero que queremos cerrar. A continuación un ejemplo de cómo cerrar el fichero que hemos abierto:
  • 27. Función fgetc Esta función lee un carácter desde un fichero. El valorde retornoes el carácterleído como un unsignedchar convertido a int. Si no hay ningúncarácter disponible, el valorde retornoes EOF. El parámetro es unpunteroa una estructura FILE del fichero del que se hará la lectura. Función fputc Esta función escribe un carácter a un fichero. El valor de retorno es el carácter escrito, si la operación fue completada con éxito, en caso contrarioseráEOF. Losparámetrosde entradasonelcarácter a escribir, convertido a int y un puntero a una estructura FILE del fichero en el que se hará la escritura. Función fgets Esta función está diseñada para leer cadenas de caracteres. Leerá hasta n-1 caracteres o hasta que lea unretorno de línea. En este último caso, el carácter de retorno de línea también esleído.
  • 28. El parámetro n nos permite limitar la lectura para evitar desbordar el espacio disponible en la cadena. El valor de retorno es un puntero a la cadenaleída, si se leyó con éxito,y es NULL si se detecta el final del fichero o si hay un error. Los parámetros son: la cadena a leer, el número de caracteres máximo a leer y un puntero a una estructura FILE del fichero del que se leerá. Función fputs La función fputsescribe unacadena en unfichero. No se añade el carácterde retornode línea ni el carácter nulo final. El valorde retornoes unnúmerono negativo o EOF en caso de error.Los parámetrosde entrada son la cadena a escribir y un puntero a la estructura FILE del fichero donde se realizará la escritura. Función fwrite Esta función también está pensada para trabajar con registros de longitud constante y forma pareja con fread. Es capaz de escribir hacia un fichero uno o varios registrosde la misma longitud almacenados a partir de una dirección de memoria determinada. El valor de retorno es el número de registros escritos, no el número de bytes. Los parámetros son: un puntero a la zona de memoria donde se almacenarán los datos leídos, el tamaño de cada registro, el número de registros a leer y un puntero a la estructura FILE del fichero del que se hará la lectura. En la siguienteimagen mandaremosapedir losdatosrequeridoscon el fin de guardarlos en el fichero dándole una ubicación de memoria del fichero:
  • 29. Función fread Esta función estápensadapara trabajarcon registrosde longitudconstante.Escapaz de leer desde un fichero uno o varios registros de la misma longitud y a partir de una dirección de memoria determinada. El usuario es responsablede asegurarsede que hay espacio suficiente para contener la información leída. El valor de retorno es el número de registros leídos, no el número de bytes. Los parámetros son: un puntero a la zona de memoria donde se almacenarán los datos leídos, el tamaño de cada registro, el número de registros a leer y un puntero a la estructura FILE del fichero del que se hará la lectura. Con esta función estamos mandando a pedir que primeramente hemos guardado el fichero: Función feof Esta función sirve para comprobar si se ha alcanzado el final del fichero. Muy frecuentemente deberemos trabajar con todos los valores almacenados en un archivo de forma secuencial, la forma que suelentenerlos buclespara leertodos losdatosde un archivo es permanecer leyendo mientras no se detecte el fin de fichero. Esta función suele usarse como prueba para verificar si se ha alcanzado o no ese punto.
  • 30. El valor de retorno es distinto de cero sólo si no se ha alcanzado el fin de fichero. El parámetro es un puntero a la estructura FILE del fichero que queremos verificar. En la siguiente imagen presentaremos un poco de la estructura que debe llevar un feof: En este caso el feof fue usado en conjunto con el ciclo while, dicha acción quiere decir que mientras no se el final del archivo de donde se ingresanlos datos, el fichero seguirá recibiendo cualquier cantidad de información que sea registrada. Función rewind Es una función heredada de los tiempos de las cintas magnéticas. Literalmente significa "rebobinar", y hace referencia a que para volver al principio de un archivo almacenado en cinta, había que rebobinarla. Eso es lo que hace ésta función, sitúa el cursor de lectura/escritura al principio del archivo. El parámetro es un puntero a la estructura FILE del fichero que queremos rebobinar. Función fprintf
  • 31. La función fprintf funciona igual que printf en cuanto a parámetros, pero la salida se dirige a un fichero en lugar de a la pantalla. Función fscanf La función fscanf funciona igual que scanf en cuanto a parámetros, pero la entrada se toma de un fichero en lugar del teclado. Función fflush Esta función fuerza la salida de los datos acumulados en el buffer de salida del fichero. Para mejorar las prestaciones del manejo de ficheros se utilizan buffers, almacenes temporalesde datosen memoria, las operaciones de salidase hacen a travésdel buffer, y sólo cuando el buffer se llena se realiza la escritura en el disco y se vacía el buffer. En ocasiones nos hace falta vaciar ese buffer de un modo manual, para eso sirve ésta función. El valorde retorno es cero si la función se ejecutó con éxito, y EOF si huboalgúnerror.El parámetro de entrada es un puntero a la estructura FILE del fichero del que se quiere vaciar el buffer. Si es NULL se hará el vaciado de todos los ficheros abiertos. Existen dos tipos de fflush, son: fflush(stdin); Se usa a la hora de ingresar cualquier tipo de dato, sobre todo cuando usamos gets(). fflush(stdout); Se usa a la hora de leer datos, para que no haya combinación de información o el programa de archivos basura. Función fseek Esta función sirvepara situarelcursor del fichero paraleer oescribir en el lugardeseado.
  • 32. El valor de retorno es cero si la función tuvo éxito, y un valor distinto de cero si hubo algún error. Los parámetros de entrada son: un puntero a una estructura FILE del fichero en el que queremos cambiar el cursor de lectura/escritura,el valor del desplazamiento y el punto de origen desde el que se calculará el desplazamiento. El parámetro origen puede tener tres posibles valores: 1. SEEK_SET el desplazamiento se cuenta desde el principio del fichero. El primer byte del fichero tiene un desplazamiento cero. 2. SEEK_CUR el desplazamiento se cuenta desde la posición actual del cursor. 3. SEEK_END el desplazamiento se cuenta desde el final del fichero. Función ftell La función ftell sirve para averiguar la posición actual del cursor de lectura/escritura 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. Sentencias de control En C, cualquier expresión finalizada en un punto y coma forma una sentencia. De todos los tipos, las estructuras (o sentencias) de control son las que controlan la ejecución de las instrucciones de un programa.
  • 33. La programación estructurada se basa en la utilización de un reducido número de estructuras que permiten hacer que un programa sea suficientemente legible, reduciendo considerablemente el número de errores, y facilitando enormemente la detección y solución de estos. La característica fundamentaldela programaciónestructuradaconsisteenquetodaslas estructuras tienen un único punto de entrada y un único punto de salida. Esto permite descomponer fácilmente un problema en subproblemas, reduciendo la complejidad y facilitando la programación. En C diferenciamos tres tipos de sentencias de control: -Sentencias condicionales o selectivas. -Sentencias de iteración o repetitivas (bucles). -Sentencias de salto. Se recomienda evitar la utilización de este último tipo de sentencias. Sentencias condicionales Hay tres sentencias condicionales en C: if, else y switch. Sentencia if La sentencia if nos permite elegir si se ejecuta o no un bloque de instrucciones. La "expresión" del if es una expresión que debe ser evaluada:falsa si es cero y verdaderasi vale distinto de cero.
  • 34. Tendrá como resultado: Sentencia else Una sentencia if cuando incluye un else, permite ejecutar un bloque de código si se cumple la condición y otro bloque diferente de código si la condición no se cumple.
  • 35. En caso de ser negativo entrará en el else: Sentencia switch La sentencia switch() en Lenguaje C es una sentencia de selección. Esta sentencia permite seleccionar las acciones a realizar de acuerdo al valor que tome una variable.
  • 36. Comportamiento de la instrucción switch
  • 37. Estructuras de control repetitivas Sentencia while Al ejecutarse la instrucción mientras (while), se evaluará la expresión booleana suministrada en los paréntesis (condición), y si su valor es verdadero (distinto de cero) se realizará el ciclo o bucle (una o varias instrucciones). Después, la condición es reevaluada y se procede de la misma manera. Cuando la condición se vuelve falsa (es decir, cero), en la siguiente evaluación se dará por terminado el ciclo mientras (while). Si la condición nunca se vuelve cero, el ciclo nunca terminará y, dependiendo de las instrucciones incluidas en el bucle, se generaría un error de ejecución que detendría el programa, o podría ser que el programa itere indefinidamente hasta ser detenido en forma manual. En esta estructuranoseconoce necesariamenteel número de veces que entraráalciclo, ya que esto dependerá de la condición definida.
  • 38. Características: 1. La condición (expresión lógica) se evalúaantes del ciclo. Si la condición es verdadera se ejecuta el bucle, y si es falsa se sale y el controlpasa a la instrucciónsiguiente al ciclo. 2. Si la condición es falsa cuando se revisa por primera vez el bucle no se ejecuta nunca, es decir no entra ningunavez. 3. Mientras la condición sea verdaderael bloquede instrucciones se ejecutará indefinidamente a menos que exista por lo menos unainstrucción que modifique el valorde un elemento de la condición. 4. Si existe más de una instrucción se necesitan las palabras reservadas inicio - fin ({2}) para delimitar el bloque de instrucciones. Sentencia do-while Esta estructurale permite al programadorespecificar que se repita una acción en tanto cierta condición sea verdadera; cuando ésta es falsa se sale del ciclo. La condición la revisa después del ciclo o bucle. Existen algoritmos y programas que requieren que por lo menos se ejecute el ciclo una vez y al final se revise la condición; en este caso utilizamos la estructura hacer_mientras. Es muy semejante al ciclo mientras, con la diferencia de que la condición se evalúa después de ejecutar el cuerpo del bucle. Tantoel ciclo mientras como el hacer_mientras pueden utilizarse cuandono se conoce de antemano el númerode veces que se repetirá el ciclo.
  • 39. A diferencia del while, alfinaldel do_while sillevapuntoy comadespuésde lainstrucción while (condición). Donde condición es cualquierexpresión numérica, relacionalo lógica. Características: 1. Siempre entra por lo menos una vez al ciclo, ya que la condición está después del ciclo. 2. Si la condición es verdadera entrade nuevoal ciclo y regresa a revisar la condición, hastaque ésta sea falsa se sale del bucle. 3. Debe existir una instrucción dentrodel ciclo que modifique la condición, de lo contrario se hace infinita. 4. Si tiene más de unainstrucción, necesita obligadamentedel inicio-fin ({-}).
  • 40. Sentencia for El desde (for) es laestructurarepetitiva más utilizada y simple de manejar, ya que repite un conjuntode instrucciones un númerodeterminado de veces. Una de susaplicaciones principales son los arreglos. Donde: expr_ini(s): expresión(es) de asignación que se utilizan para iniciar la(s) variable(s) de control del bucle. cond: es unaexpresión relacional o lógica (booleana)quedetermina cuándofinalizará el ciclo o bucle. La condición puede ser simple o compuesta (una o varias). inc(s): define cómo cambiará(n) la(s) variable(s) de control cada vez que se repite el bucle o ciclo.
  • 41. Las tres componentes pueden tener una o varias instrucciones, las cuales deben ir separadas por comas. La cond nos lleva al valor final. Omisión de expresiones Cualquierade loscomponentes en losparéntesis se puede omitir, incluso los tres, pero los separadorescoma (puntoy coma) deben aparecer siempre. Las tres expresiones del bucle desde (for) se puedenomitir, con el siguiente resultado: Se omite Resultado Expresión_inicial No se hace nada antesdel bucle Condición La condición es siempre cierta Incremento o expresión_de_paso No se hace nada trascada iteración En la instrucción desde (for), primero se ejecutará la(s) inicialización(es), posteriormente se evaluará la condición y, en caso de ser verdadera (no cero), se ejecutará(n) la(s) instrucción(es) que compone(n) el ciclo. Después, se realizará el incremento(s) y se volverá a verificar la condición. Cuando la condición se vuelve falsa, en la siguiente evaluación se terminará el desde (for). Si la condición nunca se vuelve cero, la estructura nunca terminará y el ciclo se repetirá indefinidamente hasta que se detenga en forma manual.
  • 42. Características: 1. Se debe conocer por anticipado el valor de la variable inicial y final antes de entrar al ciclo. 2. La condición se evalúa antes del bloque de instrucciones. Si la condición es verdadera se ejecuta el bloque, y si es falsa se sale y pasa el control a la instrucción siguiente al bloque. 3. No se debe cambiar el valor de la(s) variable(s) de control, del valor inicial ni del valor final dentro del ciclo. 4. Se puede incrementar o decrementar la variable de control según se requiera. 5. El incremento o decremento de la variable de control es automático. 6. Sólo si existe más de una instrucción dentro del ciclo desde se necesita el inicio-fin ({-}). 7. Puede tener una o varias expresiones de inicialización, de condición y de incremento; estas expresiones se separan mediante comas en pseudocódigo y con puntos y comas en lenguaje C. 8. Puede tener alguna o todas las expresiones vacías: desde (,,)-for ( ; ; ). 9. Si la condición está vacía, tenemos un bucle infinito. Declaración de variables globales y constantes Las constantes y variables son elementos que tienen el objetivo de identificar los datos que se utilizan en las operaciones y cálculosque realiza el programay que se almacenan en la memoria de la computadora.Si las variablesglobalesson declaradasen esta parte, pueden ser utilizadas en todo el programa. Ciclos anidados En unalgoritmopuedehabervariosbucles.Éstospuedenseranidadoso independientes. Dentro de las instrucciones que se pueden incluir en un ciclo se encuentran, a su vez, otros ciclos, es decir, instrucciones mientras (while), hacer-mientras (do-while), y desde (for). Este tipo de construcciones, en las que se incluye una instrucción de repetición dentro del cuerpo de otra, se conoce como iteración anidada. En una iteración anidada, en cada iteración del ciclo exterior se completa un grupode iteraciones del ciclo interior. Considere, por ejemplo, el siguiente fragmento de código: for (i51; i,52; i11) for (j51; j,53; j11)
  • 43. printf(“%d %dn”, i, j); El ciclo exterior se ejecutará dos veces, haciendo variar la variable i por los valores 1, 2. En cada una de estas iteraciones se ejecutará un ciclo de tres iteraciones (el desde (for) interior), en el que se variará la variable j por los valores 1, 2, 3. De esta forma, por cada valor que toma la variable i, la variable j tomará todos sus valores. Así, la instrucción printf se ejecutará seis veces (233); de la misma manera lo hicimos en el ejemplo 10. Es posible anidar cualquier cantidad de instrucciones de iteración, prácticamente hasta que la implementación del compilador lo soporte. Sin embargo, demasiados niveles de anidamiento pueden volver el programa difícil de leer. Funciones Ejemplo de una función
  • 44. Para comenzar, vamos a considerar el caso en el cual se desea crear la función cuadrado(),que deberá devolver el cuadradode unnúmero real (de puntoflotante), es decir, cuadrado()aceptaránúmeros de puntoflotante y regresará una respuestacomo número flotante. Nota: aunquepara la función que veremos el tipo de retornocoincide con el tipo de parámetropasado, algunasveces las cosas puedencambiar, es decir, no es obligatorio que una función reciba un parámetrode untipo y que tenga que regresaruna respuestade dicho tipo. Parámetros Normalmente, las funciones operan sobre ciertos valores pasados a las mismas ya sea como constantes literales o como variables, aunque se pueden definir funciones que reciban parámetros.Existen dos formas en C++ de pasar parámetros a una función; por referencia o por valor. El hecho es que si en una declaración de función se declaran parámetrosporreferencia, a losmismos no se les podrápasarvaloresliteralesya quelas referencias apuntana objetos (variablesofunciones) residentes en lamemoria; porotro lado, si un parámetro es declarado para ser pasado por valor, el mismo puede pasarse como unaconstanteliteral o como unavariable. Los parámetrospasadospor referencia puedenser alteradosporlafunción que losreciba, mientrasque losparámetrospasados por valor o copia no pueden ser alterados por la función que los recibe, es decir, la función puedemanipulara suantojoal parámetro,peroningúncambio hechosobre este se reflejará en el parámetro original. Parámetros porvalor La función cuadrado() (ver arriba) es un clásico ejemplo que muestra el paso de parámetros por valor, en ese sentido la función cuadrado() recibe una copia del parámetron. En la misma función se puede observarque se realiza un cálculo( n*n ), sin
  • 45. embargo el parámetrooriginal no sufrirá cambio alguno, esto seguirá siendo cierto aun cuando dentro de la función hubiera una instrucción parecida a n = n * n; o n*=n;. Parámetros porreferencia Paramostrarunejemplo delpasode parámetrosporreferencia, vamosa retomarel caso de la función cuadrado, salvo que en esta ocasión cambiaremos ligeramente la sintaxis para definir la misma. Veamos: Funciones void Bajo ciertas circunstancias se deseará escribir funciones que no regresen valor alguno (esto sería algoparecido a escribir proceduresen Pascal)y para ellopodemos declarar a la función como void. La palabrareservada void es utilizada para declarar funciones sin valor de retorno y también para indicar que una función específica no requiere de parámetros.
  • 46. A continuación unos ejercicios en los que se aplica todo lo que se ha enseñado a lo largo del manual: 1) Cajero virtual (Paso por paso)
  • 47.
  • 48.
  • 49. 2)Cálculo del IR y recolección de basura
  • 50.
  • 51.