SlideShare una empresa de Scribd logo
1 de 23
Facultad de Ciencia, Tecnología y
Ambiente
Departamento de Desarrollo Tecnológico
Laboratorio de programación I
 Manual de laboratorio de programación I
Nombre del profesor/a: Elsner González
Nombre del estudiante/Autor:
 Jhoziel Abraham Dávila Pineda
Número de grupo: 0114.
Carrera: Ingeniería en sistemas de
información.
Managua, Agosto 2016.
1. Qué es C++___________________________________________________________ 1
2. IDE utilizado durante el curso: CODEBLOCKS 16.01___________________________ 1
3. ¿Cuál es la diferencia entre C y C++? ______________________________________ 1
4. Conceptos básicos. ____________________________________________________ 2
5. Elementos del lenguaje_________________________________________________ 2
5.1. Identificadores_____________________________________________________________2
5.2. Palabras reservadas_________________________________________________________2
5.3. Comentarios_______________________________________________________________3
5.4. Tipos de datos _____________________________________________________________3
5.4.1 Enteros_____________________________________________________________________________ 3
5.4.2 Flotantes ___________________________________________________________________________ 4
5.4.3 Caracteres__________________________________________________________________________ 4
5.5. Operadores________________________________________________________________4
6. Declaración de variables________________________________________________ 5
7. Sintaxis _____________________________________________________________ 6
8. Bibliotecas o librerías __________________________________________________ 7
8.1. Sintaxis para declarar Librerías en C++ _________________________________________7
9. Sentencias de control __________________________________________________ 7
9.1. Sentencias condicionales ____________________________________________________8
9.1.1. Sentencia if ______________________________________________________________________ 8
9.1.2. Sentencia else ____________________________________________________________________ 8
9.1.3. Sentencia switch__________________________________________________________________ 9
9.2. Sentencias de control: Iteración _____________________________________________10
9.2.1. Bucles for: ______________________________________________________________________ 10
9.2.2. Bucles while: ____________________________________________________________________ 11
9.2.3. Bucles do-while: _________________________________________________________________ 11
9.3. Sentencias de salto ________________________________________________________11
9.3.1. Sentencia break _________________________________________________________________ 11
9.3.2. Sentencia return_________________________________________________________________ 12
10. Arreglos __________________________________________________________ 12
CCoonntteenniiddoo
10.1. Arreglos bidimensionales _________________________________________________12
11. Estructuras________________________________________________________ 13
12. Funciones de librería para E/S en el Lenguaje C __________________________ 13
13. Ficheros __________________________________________________________ 14
13.1. FILE____________________________________________________________________14
13.2. FOPEN _________________________________________________________________14
13.3. FCLOSE_________________________________________________________________15
13.4. FGETC__________________________________________________________________15
13.5. FPUTC _________________________________________________________________15
13.6. FGETS__________________________________________________________________16
13.7. FPUTS__________________________________________________________________16
13.8. FREAD _________________________________________________________________16
13.9. FWRITE ________________________________________________________________16
13.10. FPRINTF________________________________________________________________17
13.11. FSCANF ________________________________________________________________17
13.12. FFLUSH_________________________________________________________________17
14. Programación Modular______________________________________________ 17
15. Función __________________________________________________________ 18
15.1. Cómo se ejecutan de Funciones____________________________________________19
15.2. Ámbito de las variables___________________________________________________19
15.3. Forma de transferir argumentos ___________________________________________19
15.4. Ejemplo________________________________________________________________20
01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000
01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001
01101111 01101110
Página1
1. Qué es C++
C++ es un lenguaje de programación orientado a objetos que toma la base del lenguaje C y le
agrega la capacidad de abstraer tipos como en Smalltalk.
La intenciónde sucreaciónfue el extenderal exitosolenguaje de programaciónCconmecanismos
que permitieran la manipulación de objetos. En ese sentido, desde el punto de vista de los
lenguajes orientados a objetos, el C++ es un lenguaje híbrido.
Posteriormente se añadieron facilidades de programación genérica, que se sumó a los otros dos
paradigmasque ya estaban admitidos (programación estructurada y la programación orientada a
objetos). Por esto se suele decir que el C++ es un lenguaje de programación multiparadigma.
2. IDE utilizado durante el curso: CODEBLOCKS 16.01
CodeBlocks es un IDE (Integrated
Development Environment, Entorno
integrado de desarrollo), que permite
principalmente el desarrolloenCy C++,
Construido alrededor de un plugin
marco, Code::Blockspuede extenderse
con plugins. Cualquier tipo de
funcionalidad se pueden agregar
mediante la instalación de /
codificaciónde unplugin.Por ejemplo,
la compilación y depuración de la
funcionalidad ya está prevista por los
plugins.
Es multiplataformaylibre.Cuentaconel compilador GNUGCC. Además,soportaloscompiladores:
Borland C++, Compiler, Digital Mars Compiler, GCC, Microsoft visual estudio toolkit, y es posible
expandir Code::Blocks por medio de un sin número de plugins.
3. ¿Cuál es la diferencia entre C y C++?
 C++ es una extensión de C inventado por Bjarne Stroustrup a principio de la década de
1980 en los laboratorios Bell.
01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000
01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001
01101111 01101110
Página2
 Es un lenguaje de programación híbrido. Permite usar tanto la técnica de programación
estructurada y como la técnica de programación orientada a objetos.
4. Conceptos básicos.
Algunos programas simples están contenido en un solo módulo fuente, por ejemplo:
nombre.cc
La extensión de los módulos fuente de C++ puede ser cpp (por lo de "C plus plus") o cc.
Para compilarlos hay que ejecutar la línea de comandos:
CC -g -o nombre nombre.cc
La opción -g genera información adicional por si se quiere utilizar el depurador, el cual se invoca
de la forma siguiente:
gdb nombre cuando se quiere ejecutar nombre bajo el control del depurador.
C++ es compatible hacia abajo con C, lo cual proporciona una vía muy eficaz para aprender C++.
Esto es debido a que, como la mayoría de los programas en C son también programas de C++,
podemos aprender este último introduciendo en programas en C los elementos nuevos de C++.
5. Elementos del lenguaje
5.1. Identificadores
Son nombres elegidos por el programador para representar entidades (variables, tipos,
constantes, etc.) en el programa. El usuario puede elegir cualquier identificador excepto un
pequeño grupo que se reserva para usos específicos.
5.2. Palabras reservadas
Tienen un significado predeterminado para el compilador y sólo
puedenser usadas con dicho sentido. En C++ se escriben siempre con
minúsculas.
01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000
01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001
01101111 01101110
Página3
5.3. Comentarios
Un comentario es una secuencia de caracteres que es ignorada por el compilador. Se usan para
documentarel programa,de maneraque aunque no contribuyanaresolverel problema,síayudan
a mejorar la comprensión del programa. Se pueden insertar en el programa de dos maneras:
escribiendountextoentre lossímbolos /* y */ (este texto se puede extender a lo largo de varias
líneas), o usando el símbolo // (se interpretará como comentario todo lo que siga hasta llegar al
final de la línea).
5.4. Tipos de datos
5.4.1 Enteros
Los enteros son el tipo de dato más primitivo en C. Se usan para representar números enteros.
Pero siempre se pueden encontrar otras aplicaciones para los números enteros. En general se
pueden usar para representar cualquier variable discreta.
01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000
01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001
01101111 01101110
Página4
5.4.2 Flotantes
Se denominaflotante alostiposde datosque representanalosnúmerosreales,yaque utilizanun
sistema de representación basado en la técnica de coma flotante, que permite operar con
números reales de diversas magnitudes.
El tipode dato flotante enlenguajeCsólotiene dostamaños:el float y el double, que son 4 bytes
y 8 bytesrespectivamente.Se lospuedeutilizartantopararepresentarnúmeros decimales, como
para representar números enteros con un orden de magnitud muy grande.
5.4.3 Caracteres
Los caracteres se representan utilizando el tipo char, que tiene
sólo 1 byte de tamaño. Este tipo se utiliza para representar los
256 caracteres de la tabla de caracteres del sistema. El
tipochar estambiénuntipoentero,ya que puede tomarvalores
de 0 a 255. Por lo tanto también puede ser signed o unsigned.
5.5. Operadores
01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000
01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001
01101111 01101110
Página5
6. Declaración devariables
Primerose especificael tipoya continuaciónunalistade variablesyfinalmente un punto y coma.
La declaraciónde variablesesunode lostiposde sentenciade C++.La pruebamás clara de esto es
que la declaración terminará con un ";". Sintaxis:
También es posible inicializar las variables dentro de la misma declaración. Por ejemplo:
7. Tabla Ascii
ASCII es una sigla para "American Standard Code for Information Interchange"(Código Standard
Norteamericano para Intercambio de Información). Este código fue propuesto por Robert W.
Bemer, buscando crear códigos para caracteres alfa-numéricos (letras, símbolos, números y
acentos). De esta forma sería posible que las computadoras de diferentes fabricantes lograran
entender los mismos códigos.
El ASCIIesun código numérico que representa los caracteres, usando una escala decimal del 0 al
127. Esos números decimales son convertidos por la computadora en números binarios para ser
posteriormente procesados. Por lo tanto, cada una de las letras que escribas va a corresponder a
uno de estos códigos.
01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000
01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001
01101111 01101110
Página6
8. Sintaxis
Sintaxiseslaformacorrecta en que se deben escribir las instrucciones para el computador en un
lenguaje de programaciónespecífico.C++heredalasintaxis de C estándar, es decir, la mayoría de
programas escritos para el C estándar pueden ser compilados en C++.
El puntoy coma: El puntoy coma es uno de los símbolos más usados en C, C++; y se usa con el fin
de indicar el final de una línea de instrucción. El punto y coma es de uso obligatorio.
9. Conversionesdetipo casting
El casting o simplemente cast nos permite hacer una conversión explícita de un tipo de dato a
otro, a criterio del programador siempre y cuando estos tipos sean compatibles.
Este cast se realizaa travésde un operadorde conversiónde tipos (type casting operator) y es un
recurso a tener en cuenta ya que hay situaciones en que nos puede resultar de gran utilidad.
Hacer uso de un cast estan sencillocomoponer (tipode dato) delante de laexpresiónovariable a
convertir.
01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000
01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001
01101111 01101110
Página7
10.Bibliotecaso librerías
En C++, se conoce como librerías(obibliotecas) aciertotipo de archivos que podemos importar o
incluir en nuestro programa. Estos archivos contienen las especificaciones de diferentes
funcionalidadesyaconstruidasyutilizablesque podremos agregar a nuestro programa, como por
ejemplo leer del teclado o mostrar algo por pantalla entre muchas otras más.
Al poder incluir estas librerías con definiciones de diferentes funcionalidades podremos
ahorrarnos gran cantidad de cosas, imaginemos por ejemplo que cada vez que necesitemos leer
por teclado,debamosentoncescrearunafunciónque lohaga (algorealmente complejo),al poder
contar con las librerías en C++, podremos hacer uso de una gran variedad de funciones que nos
facilitarán la vida y aumentarán la modularidad de nuestros códigos.
Las librerías no son únicamente archivos externos creados por otros, también es posible crear
nuestras propias librerías y utilizarlas en nuestros programas. Las librerías pueden tener varias
extensiones diferentes, las más comunes son: .lib, .bpl, .a, .dll, .h y algunas más ya no tan
comunes.
10.1. Sintaxis para declarar Librerías en C++
La declaración de librerías, tanto en C como en C++, se debe hacer al principio de todo nuestro
código, antes de la declaración de cualquier función o línea de código, debemos indicarle al
compilador que librerías usar, para el
saber qué términos estarán correctos
en la escritura de nuestro código y
cuáles no. La sintaxis es la
siguiente: #include <nombre de la
librería> o alternativamente #include
"nombre de la librería".Cualquiera de
las 2 formas es válida en C++ (no estoy seguro si en C sea válido), ten en cuenta que siempre el
nombre de la librería debe ir entre " y " o entre < y >. En tu código puedes declarar todas las
libreríasque quieras, aunque enrealidadnotienensentido declarar una librería que no vas a usar
en tu programa, sin embargo, no existe límite para esto.
11.Sentenciasdecontrol
En C, cualquier expresión finalizada en un punto y coma; forma una sentencia.
De todoslostipos,las estructuras (o sentencias) de control son las que controlan la ejecución de
las instrucciones de un programa.
01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000
01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001
01101111 01101110
Página8
La programación estructurada se basa en la utilización de un reducido número de estructuras
que permitenhacerque unprograma seasuficientementelegible,reduciendoconsiderablemente
el número de errores, y facilitando enormemente la detección y solución de estos.
En C diferenciamos tres tipos de sentencias de control:
 Sentencias condicionales o selectivas.
 Sentencias de iteración o repetitivas (bucles).
 Sentencias de salto.
11.1. Sentencias condicionales
Hay tres sentencias condicionales en C: if, else y switch.
11.1.1. Sentencia if
La sentenciaif nospermite elegirsi se ejecutaonoun bloque de instrucciones.La "expresión" del
if es una expresión que debe ser evaluada: falsa si es cero y verdadera si vale distinto de cero.
11.1.2. 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.
01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000
01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001
01101111 01101110
Página9
11.1.3. Sentencia switch
Permite seleccionarentre multiples alternativasposibles. La expresión del switch es una variable
int o char, que puede tomar los valores, entre otros, dados por "opción 1", "opcion 2", etc.
01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000
01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001
01101111 01101110
Página
10
11.2. Sentencias de control: Iteración
Las instrucciones de iteración también llamados bucles, se ejecutan hasta que se cumpla alguna
condición predeterminada en el bucle en el caso del “for” o también en los casos del “while” y
“do-while”. Podemos destacar los antes mencionados bucles que son los bucles for,while y do
while.
11.2.1. Bucles for:
Tienen una gran potencia y flexibilidad, y tienen un esquema muy
sencillo y definido. Este esquema es así:
for(inicialización del bucle; condición; incremento).
Ahoravamos a procedera definircadaunade laspartesdel esquema
básico, inicialización (exp1): es una asignación que se utiliza para
01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000
01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001
01101111 01101110
Página
11
comenzarla variable del bucle,estoesde lavariable de laque parte el bucle.Condición (exp2): es
una expresión relacional que hace que el bucle concluya cuando no se cumpla. Por último el
incremento (exp3): es la parte que determina como cambia la variable hasta que el bucle
concluye. Es importante señalar que cada parte ha de ser separado por; .Para que deje de
ejecutarse el bucle como antes hemos mencionado depende de la condición, que deberá de ser
falsa para que el bucle se detenga.
Debemos tener en cuenta que a diferencia de otros bucles este no llegará a ejecutarse si la
condición es falsa, ya que la condición se comprueba antes de entrar en el bucle.
11.2.2. Bucles while:
Tiene ciertasemejanzacon el bucle for, así es
en el uso de una inicialización, una condición
y un incremento.Otrade sussimilitudes es el
momentoenel que analizan la condición que
en ambos es antes de ejecutar el bucle. Sin
embargo, en su esquema básico aunque
parezcan diferentes, son el mismo:
11.2.3. Bucles do-while:
Este es el único bucle que al menos se va a
ejecutarunavezpuestoque este bucle examinalacondiciónunavezse ha ejecutadoel bucle, esto
es, al final del mismo. El esquema básico de este bucle sería algo así:
11.3. Sentencias de salto
Hay cuatro sentenciasde salto en C: break, return, go to y
continue. Suelenestarcondicionadas(que sololasejecute
el programa en un determinado caso).
11.3.1. Sentencia break
La instrucción de salto break se usa para interrumpir
(romper) la ejecución normal de un bucle, es decir, la
instrucción break finaliza la ejecución de un bucle y, por
tanto, el control del programa se transfiere (salta) a la
primera instrucción después del bucle.
01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000
01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001
01101111 01101110
Página
12
11.3.2. Sentencia return
La instrucción de salto return es utilizada en lenguaje C para devolver el control de ejecución
desde lafunciónque contiene el returna la rutina que la invocó y para indicar el valor de retorno
de una función.
12.Arreglos
Los arregloso vectoresformanparte de laampliavariedadde estructurasde datosque nos ofrece
C++, siendo además una de las principales y más útiles estructuras que podremos tener como
herramienta de programación. Los arreglos o vectores (como los quieras llamar), son utilizados
para almacenarmúltiplesvaloresenunaúnicavariable.En un aspecto más profundo, los arreglos
permitenalmacenarmuchosvaloresenposicionesde memoriacontinuas,locual permite acceder
a un valoru otro de manera rápiday sencilla.Estosvalorespuedensernúmeros,letrasocualquier
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 almacenar las identificaciones de las personas ingresadas al sistema. Los
arreglos o vectores son una estructura que nos permite solucionar este tipo de problemas.
12.1. Arreglos bidimensionales
Los arreglos bidimensionales son tablas de valores. Cada elemento de un arreglo bidimensional
está simultáneamente en una fila y en una columna. En matemáticas, a los arreglos
bidimensionales se les llama matrices, y son muy utilizados en problemas de Ingeniería. En un
arreglobidimensional,cadaelementotiene unaposiciónque se identificamediante dosíndices:el
de su fila y el de su columna.
Para referenciarunelementode lamatriz,debe darse unnombre de la matriz y el índice de la fila
y de la columna que el elemento ocupa en dicha matriz. Es importante que los índices de las
matrices tanto de las filas como de las columnas empezar en 0 y terminar en tamaño fila-1 y
tamaño columna-1 respectivamente.
01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000
01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001
01101111 01101110
Página
13
13. Estructuras
Al contrario que los arreglos, las estructuras nos permiten agrupar varios datos, que mantengan
algún tipo de relación, aunque sean de distinto tipo, permitiendo manipularlos todos juntos,
usando un mismo identificador, o cada uno por separado.
Las estructurasson llamadastambiénmuyamenudoregistros, oeninglés records.Tienenmuchos
aspectos en común con los registros usados en bases de datos.
El identificador de la estructura es un nombre
opcional para referirse a la estructura. Los
objetos de estructura son objetos declarados
del tipode la estructura,ysu inclusióntambién
es opcional. Sin bien, aun siendo ambos
opcionales, al menos uno de estos elementos
debe existir. En el interior de una estructura,
entre las llaves, se pueden definir todos los
elementos que consideremos necesarios, del mismo modo que se declaran los objetos.
Las estructuras pueden referenciarse completas, usando su nombre, como hacemos con los
objetosque yaconocemos,ytambiénse puede accederaloselementosdefinidosenel interiorde
la estructura, usando el operador de selección (.), un punto.
Una vez definida una estructura, es decir, si hemos especificado un nombre para ella, se puede
usar igual que cualquier otro tipo de C++. Esto significa que se pueden declarar más objetos del
tipo de estructura en cualquier parte del programa.
14. Funcionesdelibrería para E/Sen elLenguajeC
Las funciones printf () y scanf () permiten aplicar formato a los datos de E/S, como por ejemplo,
cantidadde decimales, justificación de texto, conversión a mayúsculas/minúsculas, numeración
hexadecimal, etc. Ambas funciones toman al menos dos argumentos (pueden ser mas): 1. La
cadenade formato2. Los datos a enviara lasalida,enel caso de printf () o a recibir de la entrada,
en el caso de scanf () La cadena de formato es un literal encerrado ente comillas dobles (“y “)
01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000
01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001
01101111 01101110
Página
14
precedida de un símbolo '%'. La tabla siguiente muestra especificadores frecuentemente
utilizados:
Especificador Significado
C Un carácter (char)
i, d Número entero (int o double)
x, X Número hexadecimal (0-9 A-F)
s Cadena de caracteres (char *)
f Númerode puntoflotante (floatodouble)
m.n M cifras enteras y n decimales
- Ajuste de texto a la izquierda
k Número de cifras de un número entero
15. Ficheros
15.1. FILE
C define la estructura de datos FILE en el fichero de cabecera stdio.h para el manejo de ficheros.
Nosotros siempre usaremos punteros a estas estructuras.
La definición de ésta estructura depende del compilador, pero en general mantienen un campo
con la posición actual de lectura/escritura, un buffer para mejorar las prestaciones de acceso al
fichero y algunos campos para uso interno.
15.2. FOPEN
Esta función sirve para abrir y crear ficheros en disco. El valor de retorno es un puntero a una
estructura FILE. Los parámetros de entrada son:
1. nombre:unacadena que contiene unnombre de ficheroválido,estodepende del sistema
operativo que estemos usando. El nombre puede incluir el camino completo.
01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000
01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001
01101111 01101110
Página
15
2. modo:especificaentipode ficheroque se abrirá o se creará y el tipo de datos que puede
contener, de texto o binarios:
o r: sólolectura.El ficherodebe existir.
o w: se abre para escritura,se crea un ficheronuevoose sobrescribe si yaexiste.
o a: añadir,se abre para escritura,el cursorse sitúaal final del fichero.Si el ficherono
existe,se crea.
o r+: lecturay escritura.El ficherodebe existir.
o w+: lecturay escritura,se creaun ficheronuevoose sobrescribe si yaexiste.
o a+: añadir,lecturay escritura,el cursorse sitúaal final del fichero.Si el ficheronoexiste,
se crea.
o t: tipo texto,si nose especifica"t"ni "b",se asume por defectoque es"t"
o b: tipobinario.
15.3. FCLOSE
Es importante cerrarlosficheros abiertosantesde abandonarlaaplicación.Estafunciónsirve para
eso. Cerrar un fichero almacena los datos que aún están en el buffer de memoria, y actualiza
algunosdatosde la cabeceradel ficheroque mantiene el sistemaoperativo. 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 retorno es la constante EOF. El parámetro es un puntero a la estructura FILE del
fichero que queremos cerrar.
15.4. FGETC
Esta función lee un carácter desde un fichero.
El valor de retorno es el carácter leído como un unsigned char convertido a int. Si no hay ningún
carácter disponible, el valor de retorno es EOF. El parámetro es un puntero a una
estructura FILE del fichero del que se hará la lectura.
15.5. 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
contrario será EOF. Los parámetros de entrada son el carácter a escribir, convertido a int y un
puntero a una estructura FILE del fichero en el que se hará la escritura.
01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000
01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001
01101111 01101110
Página
16
15.6. FGETS
Esta funciónestádiseñadaparaleercadenasde caracteres.Leeráhasta n-1caracteres o hasta que
lea un retorno de línea. En este último caso, el carácter de retorno de línea también es leído.
El parámetro n nos permite limitar la lectura para evitar desbordar el espacio disponible en
la cadena.
El valorde retornoes un puntero a la cadena leí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á.
15.7. FPUTS
La función fputsescribe unacadenaenun fichero.Nose añade el carácter de retornode líneani el
carácter nulo final.
El valor de retorno es un número no negativo o EOF en caso de error. Los parámetros de entrada
son lacadena a escribiryun punteroa laestructuraFILE del ficherodonde se realizarálaescritura.
15.8. FREAD
Esta función está pensada para trabajar con registros de longitud constante. Es capaz de leer
desde un fichero uno o varios registros de la misma longitud y a partir de una dirección de
memoriadeterminada.El usuarioesresponsable de asegurarse de que hayespaciosuficientepara
contener la información leída.
El valorde 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úmerode registrosaleeryun punteroa laestructura FILE del fichero del que se hará
la lectura.
15.9. FWRITE
Esta función también está pensada para trabajar con registros de longitud constante y forma
parejacon fread.Es capaz de escribirhacia un fichero uno o varios registros de la misma longitud
almacenados a partir de una dirección de memoria determinada.
El valorde retornoes el númerode registrosescritos,noel númerode 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
01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000
01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001
01101111 01101110
Página
17
registro,el númerode registrosaleeryun punteroa laestructura FILE del fichero del que se hará
la lectura.
15.10. FPRINTF
La función fprintf funcionaigual que printf encuantoaparámetros,perolasalidase dirige a un
ficheroenlugarde a lapantalla.
15.11. FSCANF
La función fscanf funcionaigual que scanf encuantoa parámetros,perolaentradase tomade un
ficheroenlugardel teclado.
15.12. 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 temporales de
datosen memoria,lasoperacionesde salida se hacen a través del buffer, y sólo cuando el buffer
se llenase realizalaescrituraenel discoy se vacía el buffer.Enocasionesnoshace falta vaciar ese
buffer de un modo manual, para eso sirve ésta función.
El valor de retorno es cero si la función se ejecutó con éxito, y EOF si hubo algún error. 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.
16.Programación Modular
La programación modular es una técnica que consiste en dividir un programa en tareas y dar
origen a la creación de pequeños programas llamados módulos, subprogramas o subrutinas
con la finalidadde simplificarla elaboración y mantenimiento del mismo, donde cada módulo se
codificayse procesa de manera independiente, sin importar los detalles de otros módulos. Esto
facilita la localización de un error cuando se produce. Este tipo de programación es uno de los
métodos de diseño más flexibles y potentes para mejorar la productividad de un programa.
01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000
01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001
01101111 01101110
Página
18
Al método que plantea la solución de un problema principal partiendo de las soluciones de sus
subproblemasse le conoce como diseño descendente.Se denomina así ya que inicia en la parte
superior con un problema general y el diseño específico de las soluciones de los subproblemas.
Funciónmain()
El papel más importante del programa principal main() es coordinar a las otras funciones
mediante llamadas invocaciones.
17.Función
Es un subprogramaque realiza una tarea específica que puede o no recibir valores (parámetros).
En C podemosdevolvercualquiertipode datosescalares(puntero,tiponuméricoyel tipocarácter
o en su caso regresar un valor nulo que llamaremos nada o ninguno). Asimismo, no se pueden
devolver arreglos ni estructuras.
El uso de funciones es una práctica común y recomendable ya que permite dividir el código,
simplificandoasíel desarrollo y la depuración del mismo. Para utilizar funciones en un programa
es necesario declararlas previamente.
Programa Principal
Módulo 1 Módulo 2
Módulo 3
SubMódulo 1 SubMódulo 2
SubMódulo 5 SubMódulo
6
SubMódulo
3
SubMódulo
4
01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000
01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001
01101111 01101110
Página
19
La estructurageneral de unafunciónenCes la siguiente:
17.1. Cómo se ejecutan de Funciones
El compilador siempre inicia con la primera instrucción que encuentra en el programa principal
(main) ycontinúaejecutándolosegún la estructura de control (secuencial, selectiva o repetitiva)
del programa;cuando encuentralallamadaa unafunciónéste se trasladay ejecutael cuerpode la
función desde la primera instrucción hasta encontrar el fin de la misma; cuando esto sucede el
compilador regresa a la siguiente instrucción que llamó a la función y continúa de la misma
manera.
17.2. Ámbito de las variables
Variable local. Variable declarada en una determina función, sólo se encuentra disponible
durante el funcionamiento de la misma, es decir está en memoria cuando dicha función está
activa.
Variable global.Variable declaradafuerade cualquier función y que puede ser utilizada por las
funciones que se encuentran después de dicha declaración; por lo tanto si la declaramos junto a
las librerías, la podrá utilizar todo el programa. Esta característica es propia del lenguaje C.
17.3. Forma de transferir argumentos
Pase por valor:copia el valorde un argumentode lallamadaenel parámetroformal de la función.
Por lotanto,los cambiosenlosparámetrosde la funciónnoafectana lasvariables que se usan en
la llamada.
Pase por referencia: se copia la dirección del argumento en el parámetro. Los cambios hechos a
los parámetros afectan a las variables usadas en la llamada a la función.
01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000
01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001
01101111 01101110
Página
20
17.4. Ejemplo
Vamos a suponer que queremos crear un programa para calcular el precio de un producto
basándose en el precio base del mismo y el impuesto aplicable. A continuación mostramos el
código fuente de dicho programa:

Más contenido relacionado

La actualidad más candente

Programación c++forcsma
Programación c++forcsmaProgramación c++forcsma
Programación c++forcsmaCarlos Avila
 
Manual de Programación c/c++ Ricky Bonilla
Manual de Programación c/c++ Ricky BonillaManual de Programación c/c++ Ricky Bonilla
Manual de Programación c/c++ Ricky BonillaEstudiantes ISI_UCA
 
PRESENTACION LENGUAJE C Y SISTEMAS OPERATIVOS
PRESENTACION LENGUAJE C Y SISTEMAS OPERATIVOSPRESENTACION LENGUAJE C Y SISTEMAS OPERATIVOS
PRESENTACION LENGUAJE C Y SISTEMAS OPERATIVOSRoxa1190
 
Programacion En Lenguaje C
Programacion En Lenguaje CProgramacion En Lenguaje C
Programacion En Lenguaje CKritius
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciamonty19
 
Java Ago Dic07
Java Ago Dic07Java Ago Dic07
Java Ago Dic07adrianpro
 
Programación en c++
Programación en c++Programación en c++
Programación en c++K-rlos Pac
 
Manual de el lenguaje de programacion c# ( español spanish) x richy
Manual de el lenguaje de programacion c# ( español spanish) x richyManual de el lenguaje de programacion c# ( español spanish) x richy
Manual de el lenguaje de programacion c# ( español spanish) x richyRoberto Lll
 
Curso de programacion en c++ prev
Curso de programacion en c++ prevCurso de programacion en c++ prev
Curso de programacion en c++ prevjtk1
 
PRESENTACION LENGUAJE C
 PRESENTACION LENGUAJE C  PRESENTACION LENGUAJE C
PRESENTACION LENGUAJE C Niel Velasquez
 
Programacion c# vbnet
Programacion c# vbnetProgramacion c# vbnet
Programacion c# vbnetKevin Reaño
 
Resolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusResolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusAbefo
 
Resolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusResolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusGladys Arce
 

La actualidad más candente (20)

Programación c++forcsma
Programación c++forcsmaProgramación c++forcsma
Programación c++forcsma
 
Manual de Programación c/c++ Ricky Bonilla
Manual de Programación c/c++ Ricky BonillaManual de Programación c/c++ Ricky Bonilla
Manual de Programación c/c++ Ricky Bonilla
 
1. introducción a c#
1.  introducción a c#1.  introducción a c#
1. introducción a c#
 
Proyecto
ProyectoProyecto
Proyecto
 
PRESENTACION LENGUAJE C Y SISTEMAS OPERATIVOS
PRESENTACION LENGUAJE C Y SISTEMAS OPERATIVOSPRESENTACION LENGUAJE C Y SISTEMAS OPERATIVOS
PRESENTACION LENGUAJE C Y SISTEMAS OPERATIVOS
 
Programacion En Lenguaje C
Programacion En Lenguaje CProgramacion En Lenguaje C
Programacion En Lenguaje C
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
 
Java Ago Dic07
Java Ago Dic07Java Ago Dic07
Java Ago Dic07
 
Consulta c++
Consulta c++Consulta c++
Consulta c++
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Manual de el lenguaje de programacion c# ( español spanish) x richy
Manual de el lenguaje de programacion c# ( español spanish) x richyManual de el lenguaje de programacion c# ( español spanish) x richy
Manual de el lenguaje de programacion c# ( español spanish) x richy
 
Manual C/C++ Jason Martinez
Manual C/C++ Jason MartinezManual C/C++ Jason Martinez
Manual C/C++ Jason Martinez
 
Curso de programacion en c++ prev
Curso de programacion en c++ prevCurso de programacion en c++ prev
Curso de programacion en c++ prev
 
Tutorial de- c. ++
Tutorial de- c. ++ Tutorial de- c. ++
Tutorial de- c. ++
 
PRESENTACION LENGUAJE C
 PRESENTACION LENGUAJE C  PRESENTACION LENGUAJE C
PRESENTACION LENGUAJE C
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Cppbasico
CppbasicoCppbasico
Cppbasico
 
Programacion c# vbnet
Programacion c# vbnetProgramacion c# vbnet
Programacion c# vbnet
 
Resolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusResolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplus
 
Resolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusResolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplus
 

Destacado

Trabajo de ingles facundo acevedo 2b-
Trabajo de ingles  facundo acevedo 2b- Trabajo de ingles  facundo acevedo 2b-
Trabajo de ingles facundo acevedo 2b- englishceppi2015
 
National Coalition of Girls' Schools Global Forum Presentation Graham-Pelton...
National Coalition of Girls' Schools Global Forum Presentation  Graham-Pelton...National Coalition of Girls' Schools Global Forum Presentation  Graham-Pelton...
National Coalition of Girls' Schools Global Forum Presentation Graham-Pelton...Kathleen Ault
 
11 NUESTRO HONOR SE LLAMA LEALTAD Palabras de Miguel Serrano.
11 NUESTRO  HONOR SE LLAMA LEALTAD     Palabras de Miguel Serrano. 11 NUESTRO  HONOR SE LLAMA LEALTAD     Palabras de Miguel Serrano.
11 NUESTRO HONOR SE LLAMA LEALTAD Palabras de Miguel Serrano. Alma Heil 916 NOS
 
EncoreConcepts2015Brochure
EncoreConcepts2015BrochureEncoreConcepts2015Brochure
EncoreConcepts2015BrochureEncore Concepts
 
1. Giải pháp kết nối không dây trong IoT và xu hướng phát triển BLE _ Mr. Ngu...
1. Giải pháp kết nối không dây trong IoT và xu hướng phát triển BLE _ Mr. Ngu...1. Giải pháp kết nối không dây trong IoT và xu hướng phát triển BLE _ Mr. Ngu...
1. Giải pháp kết nối không dây trong IoT và xu hướng phát triển BLE _ Mr. Ngu...iotviet
 
Breve resumen de la historia de la computacion
Breve resumen de la historia de la computacionBreve resumen de la historia de la computacion
Breve resumen de la historia de la computacionmairaalex31
 

Destacado (14)

Trabajo de ingles facundo acevedo 2b-
Trabajo de ingles  facundo acevedo 2b- Trabajo de ingles  facundo acevedo 2b-
Trabajo de ingles facundo acevedo 2b-
 
Environment matias rey
Environment matias reyEnvironment matias rey
Environment matias rey
 
Li fi
Li fiLi fi
Li fi
 
Photo album
Photo albumPhoto album
Photo album
 
Noise pollution
Noise pollutionNoise pollution
Noise pollution
 
National Coalition of Girls' Schools Global Forum Presentation Graham-Pelton...
National Coalition of Girls' Schools Global Forum Presentation  Graham-Pelton...National Coalition of Girls' Schools Global Forum Presentation  Graham-Pelton...
National Coalition of Girls' Schools Global Forum Presentation Graham-Pelton...
 
11 NUESTRO HONOR SE LLAMA LEALTAD Palabras de Miguel Serrano.
11 NUESTRO  HONOR SE LLAMA LEALTAD     Palabras de Miguel Serrano. 11 NUESTRO  HONOR SE LLAMA LEALTAD     Palabras de Miguel Serrano.
11 NUESTRO HONOR SE LLAMA LEALTAD Palabras de Miguel Serrano.
 
信息2
信息2信息2
信息2
 
EncoreConcepts2015Brochure
EncoreConcepts2015BrochureEncoreConcepts2015Brochure
EncoreConcepts2015Brochure
 
Figueredo famous people
Figueredo famous peopleFigueredo famous people
Figueredo famous people
 
Aditivos, alergenos y trasgenicos
Aditivos, alergenos y trasgenicosAditivos, alergenos y trasgenicos
Aditivos, alergenos y trasgenicos
 
1. Giải pháp kết nối không dây trong IoT và xu hướng phát triển BLE _ Mr. Ngu...
1. Giải pháp kết nối không dây trong IoT và xu hướng phát triển BLE _ Mr. Ngu...1. Giải pháp kết nối không dây trong IoT và xu hướng phát triển BLE _ Mr. Ngu...
1. Giải pháp kết nối không dây trong IoT và xu hướng phát triển BLE _ Mr. Ngu...
 
Operaciones de separación secado (2)
Operaciones de separación secado (2)Operaciones de separación secado (2)
Operaciones de separación secado (2)
 
Breve resumen de la historia de la computacion
Breve resumen de la historia de la computacionBreve resumen de la historia de la computacion
Breve resumen de la historia de la computacion
 

Similar a Manual laboratorio de programación#1

Similar a Manual laboratorio de programación#1 (20)

Manual AGFV
Manual AGFVManual AGFV
Manual AGFV
 
Presentacion1
Presentacion1Presentacion1
Presentacion1
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad3 130504163038-phpapp02 (1)
Unidad3 130504163038-phpapp02 (1)Unidad3 130504163038-phpapp02 (1)
Unidad3 130504163038-phpapp02 (1)
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Curso c++
Curso c++Curso c++
Curso c++
 
Como usar el lenguaje c++
Como usar el lenguaje c++Como usar el lenguaje c++
Como usar el lenguaje c++
 
Unidad 3 margie
Unidad 3 margieUnidad 3 margie
Unidad 3 margie
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Lenguaje c nardy y daniela
Lenguaje c nardy y danielaLenguaje c nardy y daniela
Lenguaje c nardy y daniela
 
Informatica
InformaticaInformatica
Informatica
 
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
 
Lenguaje de programación C - Cleibery.
Lenguaje de programación C - Cleibery.Lenguaje de programación C - Cleibery.
Lenguaje de programación C - Cleibery.
 
Deber
DeberDeber
Deber
 
CAPÍTULO 1 FUNDAMENTOS MZ-CV-DA-ESPE.pdf
CAPÍTULO 1 FUNDAMENTOS MZ-CV-DA-ESPE.pdfCAPÍTULO 1 FUNDAMENTOS MZ-CV-DA-ESPE.pdf
CAPÍTULO 1 FUNDAMENTOS MZ-CV-DA-ESPE.pdf
 
historia del lenguaje c++
historia del lenguaje c++historia del lenguaje c++
historia del lenguaje c++
 
Informe lpi
Informe lpiInforme lpi
Informe lpi
 
Deber 130912163339-phpapp01
Deber 130912163339-phpapp01Deber 130912163339-phpapp01
Deber 130912163339-phpapp01
 
Introducción al curso de C.docx
Introducción al curso de C.docxIntroducción al curso de C.docx
Introducción al curso de C.docx
 

Más de Estudiantes ISI_UCA (20)

Manual
ManualManual
Manual
 
Manual C/C++
Manual C/C++ Manual C/C++
Manual C/C++
 
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 C / C++ Melvin
Manual C / C++ MelvinManual C / C++ Melvin
Manual C / C++ Melvin
 
Manual programación
Manual programaciónManual programación
Manual programación
 
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++
 
Manual c
Manual cManual c
Manual c
 
Manual de c/c++
Manual de c/c++Manual de c/c++
Manual de c/c++
 
Manual de usuario - christian García
Manual de usuario - christian GarcíaManual de usuario - christian García
Manual de usuario - christian García
 
Manual henry hernadez
Manual henry hernadezManual henry hernadez
Manual henry hernadez
 

Último

TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfAntonioGonzalezIzqui
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptMarianoSanchez70
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.pptoscarvielma45
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricoalexcala5
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxYajairaMartinez30
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023RonaldoPaucarMontes
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfDiegoMadrigal21
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrialGibranDiaz7
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdfCristhianZetaNima
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajasjuanprv
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAJOSLUISCALLATAENRIQU
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 

Último (20)

TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctrico
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptx
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdf
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrial
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajas
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 

Manual laboratorio de programación#1

  • 1. Facultad de Ciencia, Tecnología y Ambiente Departamento de Desarrollo Tecnológico Laboratorio de programación I  Manual de laboratorio de programación I Nombre del profesor/a: Elsner González Nombre del estudiante/Autor:  Jhoziel Abraham Dávila Pineda Número de grupo: 0114. Carrera: Ingeniería en sistemas de información. Managua, Agosto 2016.
  • 2. 1. Qué es C++___________________________________________________________ 1 2. IDE utilizado durante el curso: CODEBLOCKS 16.01___________________________ 1 3. ¿Cuál es la diferencia entre C y C++? ______________________________________ 1 4. Conceptos básicos. ____________________________________________________ 2 5. Elementos del lenguaje_________________________________________________ 2 5.1. Identificadores_____________________________________________________________2 5.2. Palabras reservadas_________________________________________________________2 5.3. Comentarios_______________________________________________________________3 5.4. Tipos de datos _____________________________________________________________3 5.4.1 Enteros_____________________________________________________________________________ 3 5.4.2 Flotantes ___________________________________________________________________________ 4 5.4.3 Caracteres__________________________________________________________________________ 4 5.5. Operadores________________________________________________________________4 6. Declaración de variables________________________________________________ 5 7. Sintaxis _____________________________________________________________ 6 8. Bibliotecas o librerías __________________________________________________ 7 8.1. Sintaxis para declarar Librerías en C++ _________________________________________7 9. Sentencias de control __________________________________________________ 7 9.1. Sentencias condicionales ____________________________________________________8 9.1.1. Sentencia if ______________________________________________________________________ 8 9.1.2. Sentencia else ____________________________________________________________________ 8 9.1.3. Sentencia switch__________________________________________________________________ 9 9.2. Sentencias de control: Iteración _____________________________________________10 9.2.1. Bucles for: ______________________________________________________________________ 10 9.2.2. Bucles while: ____________________________________________________________________ 11 9.2.3. Bucles do-while: _________________________________________________________________ 11 9.3. Sentencias de salto ________________________________________________________11 9.3.1. Sentencia break _________________________________________________________________ 11 9.3.2. Sentencia return_________________________________________________________________ 12 10. Arreglos __________________________________________________________ 12 CCoonntteenniiddoo
  • 3. 10.1. Arreglos bidimensionales _________________________________________________12 11. Estructuras________________________________________________________ 13 12. Funciones de librería para E/S en el Lenguaje C __________________________ 13 13. Ficheros __________________________________________________________ 14 13.1. FILE____________________________________________________________________14 13.2. FOPEN _________________________________________________________________14 13.3. FCLOSE_________________________________________________________________15 13.4. FGETC__________________________________________________________________15 13.5. FPUTC _________________________________________________________________15 13.6. FGETS__________________________________________________________________16 13.7. FPUTS__________________________________________________________________16 13.8. FREAD _________________________________________________________________16 13.9. FWRITE ________________________________________________________________16 13.10. FPRINTF________________________________________________________________17 13.11. FSCANF ________________________________________________________________17 13.12. FFLUSH_________________________________________________________________17 14. Programación Modular______________________________________________ 17 15. Función __________________________________________________________ 18 15.1. Cómo se ejecutan de Funciones____________________________________________19 15.2. Ámbito de las variables___________________________________________________19 15.3. Forma de transferir argumentos ___________________________________________19 15.4. Ejemplo________________________________________________________________20
  • 4. 01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001 01101111 01101110 Página1 1. Qué es C++ C++ es un lenguaje de programación orientado a objetos que toma la base del lenguaje C y le agrega la capacidad de abstraer tipos como en Smalltalk. La intenciónde sucreaciónfue el extenderal exitosolenguaje de programaciónCconmecanismos que permitieran la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido. Posteriormente se añadieron facilidades de programación genérica, que se sumó a los otros dos paradigmasque ya estaban admitidos (programación estructurada y la programación orientada a objetos). Por esto se suele decir que el C++ es un lenguaje de programación multiparadigma. 2. IDE utilizado durante el curso: CODEBLOCKS 16.01 CodeBlocks es un IDE (Integrated Development Environment, Entorno integrado de desarrollo), que permite principalmente el desarrolloenCy C++, Construido alrededor de un plugin marco, Code::Blockspuede extenderse con plugins. Cualquier tipo de funcionalidad se pueden agregar mediante la instalación de / codificaciónde unplugin.Por ejemplo, la compilación y depuración de la funcionalidad ya está prevista por los plugins. Es multiplataformaylibre.Cuentaconel compilador GNUGCC. Además,soportaloscompiladores: Borland C++, Compiler, Digital Mars Compiler, GCC, Microsoft visual estudio toolkit, y es posible expandir Code::Blocks por medio de un sin número de plugins. 3. ¿Cuál es la diferencia entre C y C++?  C++ es una extensión de C inventado por Bjarne Stroustrup a principio de la década de 1980 en los laboratorios Bell.
  • 5. 01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001 01101111 01101110 Página2  Es un lenguaje de programación híbrido. Permite usar tanto la técnica de programación estructurada y como la técnica de programación orientada a objetos. 4. Conceptos básicos. Algunos programas simples están contenido en un solo módulo fuente, por ejemplo: nombre.cc La extensión de los módulos fuente de C++ puede ser cpp (por lo de "C plus plus") o cc. Para compilarlos hay que ejecutar la línea de comandos: CC -g -o nombre nombre.cc La opción -g genera información adicional por si se quiere utilizar el depurador, el cual se invoca de la forma siguiente: gdb nombre cuando se quiere ejecutar nombre bajo el control del depurador. C++ es compatible hacia abajo con C, lo cual proporciona una vía muy eficaz para aprender C++. Esto es debido a que, como la mayoría de los programas en C son también programas de C++, podemos aprender este último introduciendo en programas en C los elementos nuevos de C++. 5. Elementos del lenguaje 5.1. Identificadores Son nombres elegidos por el programador para representar entidades (variables, tipos, constantes, etc.) en el programa. El usuario puede elegir cualquier identificador excepto un pequeño grupo que se reserva para usos específicos. 5.2. Palabras reservadas Tienen un significado predeterminado para el compilador y sólo puedenser usadas con dicho sentido. En C++ se escriben siempre con minúsculas.
  • 6. 01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001 01101111 01101110 Página3 5.3. Comentarios Un comentario es una secuencia de caracteres que es ignorada por el compilador. Se usan para documentarel programa,de maneraque aunque no contribuyanaresolverel problema,síayudan a mejorar la comprensión del programa. Se pueden insertar en el programa de dos maneras: escribiendountextoentre lossímbolos /* y */ (este texto se puede extender a lo largo de varias líneas), o usando el símbolo // (se interpretará como comentario todo lo que siga hasta llegar al final de la línea). 5.4. Tipos de datos 5.4.1 Enteros Los enteros son el tipo de dato más primitivo en C. Se usan para representar números enteros. Pero siempre se pueden encontrar otras aplicaciones para los números enteros. En general se pueden usar para representar cualquier variable discreta.
  • 7. 01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001 01101111 01101110 Página4 5.4.2 Flotantes Se denominaflotante alostiposde datosque representanalosnúmerosreales,yaque utilizanun sistema de representación basado en la técnica de coma flotante, que permite operar con números reales de diversas magnitudes. El tipode dato flotante enlenguajeCsólotiene dostamaños:el float y el double, que son 4 bytes y 8 bytesrespectivamente.Se lospuedeutilizartantopararepresentarnúmeros decimales, como para representar números enteros con un orden de magnitud muy grande. 5.4.3 Caracteres Los caracteres se representan utilizando el tipo char, que tiene sólo 1 byte de tamaño. Este tipo se utiliza para representar los 256 caracteres de la tabla de caracteres del sistema. El tipochar estambiénuntipoentero,ya que puede tomarvalores de 0 a 255. Por lo tanto también puede ser signed o unsigned. 5.5. Operadores
  • 8. 01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001 01101111 01101110 Página5 6. Declaración devariables Primerose especificael tipoya continuaciónunalistade variablesyfinalmente un punto y coma. La declaraciónde variablesesunode lostiposde sentenciade C++.La pruebamás clara de esto es que la declaración terminará con un ";". Sintaxis: También es posible inicializar las variables dentro de la misma declaración. Por ejemplo: 7. Tabla Ascii ASCII es una sigla para "American Standard Code for Information Interchange"(Código Standard Norteamericano para Intercambio de Información). Este código fue propuesto por Robert W. Bemer, buscando crear códigos para caracteres alfa-numéricos (letras, símbolos, números y acentos). De esta forma sería posible que las computadoras de diferentes fabricantes lograran entender los mismos códigos. El ASCIIesun código numérico que representa los caracteres, usando una escala decimal del 0 al 127. Esos números decimales son convertidos por la computadora en números binarios para ser posteriormente procesados. Por lo tanto, cada una de las letras que escribas va a corresponder a uno de estos códigos.
  • 9. 01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001 01101111 01101110 Página6 8. Sintaxis Sintaxiseslaformacorrecta en que se deben escribir las instrucciones para el computador en un lenguaje de programaciónespecífico.C++heredalasintaxis de C estándar, es decir, la mayoría de programas escritos para el C estándar pueden ser compilados en C++. El puntoy coma: El puntoy coma es uno de los símbolos más usados en C, C++; y se usa con el fin de indicar el final de una línea de instrucción. El punto y coma es de uso obligatorio. 9. Conversionesdetipo casting El casting o simplemente cast nos permite hacer una conversión explícita de un tipo de dato a otro, a criterio del programador siempre y cuando estos tipos sean compatibles. Este cast se realizaa travésde un operadorde conversiónde tipos (type casting operator) y es un recurso a tener en cuenta ya que hay situaciones en que nos puede resultar de gran utilidad. Hacer uso de un cast estan sencillocomoponer (tipode dato) delante de laexpresiónovariable a convertir.
  • 10. 01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001 01101111 01101110 Página7 10.Bibliotecaso librerías En C++, se conoce como librerías(obibliotecas) aciertotipo de archivos que podemos importar o incluir en nuestro programa. Estos archivos contienen las especificaciones de diferentes funcionalidadesyaconstruidasyutilizablesque podremos agregar a nuestro programa, como por ejemplo leer del teclado o mostrar algo por pantalla entre muchas otras más. Al poder incluir estas librerías con definiciones de diferentes funcionalidades podremos ahorrarnos gran cantidad de cosas, imaginemos por ejemplo que cada vez que necesitemos leer por teclado,debamosentoncescrearunafunciónque lohaga (algorealmente complejo),al poder contar con las librerías en C++, podremos hacer uso de una gran variedad de funciones que nos facilitarán la vida y aumentarán la modularidad de nuestros códigos. Las librerías no son únicamente archivos externos creados por otros, también es posible crear nuestras propias librerías y utilizarlas en nuestros programas. Las librerías pueden tener varias extensiones diferentes, las más comunes son: .lib, .bpl, .a, .dll, .h y algunas más ya no tan comunes. 10.1. Sintaxis para declarar Librerías en C++ La declaración de librerías, tanto en C como en C++, se debe hacer al principio de todo nuestro código, antes de la declaración de cualquier función o línea de código, debemos indicarle al compilador que librerías usar, para el saber qué términos estarán correctos en la escritura de nuestro código y cuáles no. La sintaxis es la siguiente: #include <nombre de la librería> o alternativamente #include "nombre de la librería".Cualquiera de las 2 formas es válida en C++ (no estoy seguro si en C sea válido), ten en cuenta que siempre el nombre de la librería debe ir entre " y " o entre < y >. En tu código puedes declarar todas las libreríasque quieras, aunque enrealidadnotienensentido declarar una librería que no vas a usar en tu programa, sin embargo, no existe límite para esto. 11.Sentenciasdecontrol En C, cualquier expresión finalizada en un punto y coma; forma una sentencia. De todoslostipos,las estructuras (o sentencias) de control son las que controlan la ejecución de las instrucciones de un programa.
  • 11. 01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001 01101111 01101110 Página8 La programación estructurada se basa en la utilización de un reducido número de estructuras que permitenhacerque unprograma seasuficientementelegible,reduciendoconsiderablemente el número de errores, y facilitando enormemente la detección y solución de estos. En C diferenciamos tres tipos de sentencias de control:  Sentencias condicionales o selectivas.  Sentencias de iteración o repetitivas (bucles).  Sentencias de salto. 11.1. Sentencias condicionales Hay tres sentencias condicionales en C: if, else y switch. 11.1.1. Sentencia if La sentenciaif nospermite elegirsi se ejecutaonoun bloque de instrucciones.La "expresión" del if es una expresión que debe ser evaluada: falsa si es cero y verdadera si vale distinto de cero. 11.1.2. 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.
  • 12. 01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001 01101111 01101110 Página9 11.1.3. Sentencia switch Permite seleccionarentre multiples alternativasposibles. La expresión del switch es una variable int o char, que puede tomar los valores, entre otros, dados por "opción 1", "opcion 2", etc.
  • 13. 01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001 01101111 01101110 Página 10 11.2. Sentencias de control: Iteración Las instrucciones de iteración también llamados bucles, se ejecutan hasta que se cumpla alguna condición predeterminada en el bucle en el caso del “for” o también en los casos del “while” y “do-while”. Podemos destacar los antes mencionados bucles que son los bucles for,while y do while. 11.2.1. Bucles for: Tienen una gran potencia y flexibilidad, y tienen un esquema muy sencillo y definido. Este esquema es así: for(inicialización del bucle; condición; incremento). Ahoravamos a procedera definircadaunade laspartesdel esquema básico, inicialización (exp1): es una asignación que se utiliza para
  • 14. 01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001 01101111 01101110 Página 11 comenzarla variable del bucle,estoesde lavariable de laque parte el bucle.Condición (exp2): es una expresión relacional que hace que el bucle concluya cuando no se cumpla. Por último el incremento (exp3): es la parte que determina como cambia la variable hasta que el bucle concluye. Es importante señalar que cada parte ha de ser separado por; .Para que deje de ejecutarse el bucle como antes hemos mencionado depende de la condición, que deberá de ser falsa para que el bucle se detenga. Debemos tener en cuenta que a diferencia de otros bucles este no llegará a ejecutarse si la condición es falsa, ya que la condición se comprueba antes de entrar en el bucle. 11.2.2. Bucles while: Tiene ciertasemejanzacon el bucle for, así es en el uso de una inicialización, una condición y un incremento.Otrade sussimilitudes es el momentoenel que analizan la condición que en ambos es antes de ejecutar el bucle. Sin embargo, en su esquema básico aunque parezcan diferentes, son el mismo: 11.2.3. Bucles do-while: Este es el único bucle que al menos se va a ejecutarunavezpuestoque este bucle examinalacondiciónunavezse ha ejecutadoel bucle, esto es, al final del mismo. El esquema básico de este bucle sería algo así: 11.3. Sentencias de salto Hay cuatro sentenciasde salto en C: break, return, go to y continue. Suelenestarcondicionadas(que sololasejecute el programa en un determinado caso). 11.3.1. Sentencia break La instrucción de salto break se usa para interrumpir (romper) la ejecución normal de un bucle, es decir, la instrucción break finaliza la ejecución de un bucle y, por tanto, el control del programa se transfiere (salta) a la primera instrucción después del bucle.
  • 15. 01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001 01101111 01101110 Página 12 11.3.2. Sentencia return La instrucción de salto return es utilizada en lenguaje C para devolver el control de ejecución desde lafunciónque contiene el returna la rutina que la invocó y para indicar el valor de retorno de una función. 12.Arreglos Los arregloso vectoresformanparte de laampliavariedadde estructurasde datosque nos ofrece C++, siendo además una de las principales y más útiles estructuras que podremos tener como herramienta de programación. Los arreglos o vectores (como los quieras llamar), son utilizados para almacenarmúltiplesvaloresenunaúnicavariable.En un aspecto más profundo, los arreglos permitenalmacenarmuchosvaloresenposicionesde memoriacontinuas,locual permite acceder a un valoru otro de manera rápiday sencilla.Estosvalorespuedensernúmeros,letrasocualquier 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 almacenar las identificaciones de las personas ingresadas al sistema. Los arreglos o vectores son una estructura que nos permite solucionar este tipo de problemas. 12.1. Arreglos bidimensionales Los arreglos bidimensionales son tablas de valores. Cada elemento de un arreglo bidimensional está simultáneamente en una fila y en una columna. En matemáticas, a los arreglos bidimensionales se les llama matrices, y son muy utilizados en problemas de Ingeniería. En un arreglobidimensional,cadaelementotiene unaposiciónque se identificamediante dosíndices:el de su fila y el de su columna. Para referenciarunelementode lamatriz,debe darse unnombre de la matriz y el índice de la fila y de la columna que el elemento ocupa en dicha matriz. Es importante que los índices de las matrices tanto de las filas como de las columnas empezar en 0 y terminar en tamaño fila-1 y tamaño columna-1 respectivamente.
  • 16. 01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001 01101111 01101110 Página 13 13. Estructuras Al contrario que los arreglos, las estructuras nos permiten agrupar varios datos, que mantengan algún tipo de relación, aunque sean de distinto tipo, permitiendo manipularlos todos juntos, usando un mismo identificador, o cada uno por separado. Las estructurasson llamadastambiénmuyamenudoregistros, oeninglés records.Tienenmuchos aspectos en común con los registros usados en bases de datos. El identificador de la estructura es un nombre opcional para referirse a la estructura. Los objetos de estructura son objetos declarados del tipode la estructura,ysu inclusióntambién es opcional. Sin bien, aun siendo ambos opcionales, al menos uno de estos elementos debe existir. En el interior de una estructura, entre las llaves, se pueden definir todos los elementos que consideremos necesarios, del mismo modo que se declaran los objetos. Las estructuras pueden referenciarse completas, usando su nombre, como hacemos con los objetosque yaconocemos,ytambiénse puede accederaloselementosdefinidosenel interiorde la estructura, usando el operador de selección (.), un punto. Una vez definida una estructura, es decir, si hemos especificado un nombre para ella, se puede usar igual que cualquier otro tipo de C++. Esto significa que se pueden declarar más objetos del tipo de estructura en cualquier parte del programa. 14. Funcionesdelibrería para E/Sen elLenguajeC Las funciones printf () y scanf () permiten aplicar formato a los datos de E/S, como por ejemplo, cantidadde decimales, justificación de texto, conversión a mayúsculas/minúsculas, numeración hexadecimal, etc. Ambas funciones toman al menos dos argumentos (pueden ser mas): 1. La cadenade formato2. Los datos a enviara lasalida,enel caso de printf () o a recibir de la entrada, en el caso de scanf () La cadena de formato es un literal encerrado ente comillas dobles (“y “)
  • 17. 01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001 01101111 01101110 Página 14 precedida de un símbolo '%'. La tabla siguiente muestra especificadores frecuentemente utilizados: Especificador Significado C Un carácter (char) i, d Número entero (int o double) x, X Número hexadecimal (0-9 A-F) s Cadena de caracteres (char *) f Númerode puntoflotante (floatodouble) m.n M cifras enteras y n decimales - Ajuste de texto a la izquierda k Número de cifras de un número entero 15. Ficheros 15.1. FILE C define la estructura de datos FILE en el fichero de cabecera stdio.h para el manejo de ficheros. Nosotros siempre usaremos punteros a estas estructuras. La definición de ésta estructura depende del compilador, pero en general mantienen un campo con la posición actual de lectura/escritura, un buffer para mejorar las prestaciones de acceso al fichero y algunos campos para uso interno. 15.2. FOPEN Esta función sirve para abrir y crear ficheros en disco. El valor de retorno es un puntero a una estructura FILE. Los parámetros de entrada son: 1. nombre:unacadena que contiene unnombre de ficheroválido,estodepende del sistema operativo que estemos usando. El nombre puede incluir el camino completo.
  • 18. 01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001 01101111 01101110 Página 15 2. modo:especificaentipode ficheroque se abrirá o se creará y el tipo de datos que puede contener, de texto o binarios: o r: sólolectura.El ficherodebe existir. o w: se abre para escritura,se crea un ficheronuevoose sobrescribe si yaexiste. o a: añadir,se abre para escritura,el cursorse sitúaal final del fichero.Si el ficherono existe,se crea. o r+: lecturay escritura.El ficherodebe existir. o w+: lecturay escritura,se creaun ficheronuevoose sobrescribe si yaexiste. o a+: añadir,lecturay escritura,el cursorse sitúaal final del fichero.Si el ficheronoexiste, se crea. o t: tipo texto,si nose especifica"t"ni "b",se asume por defectoque es"t" o b: tipobinario. 15.3. FCLOSE Es importante cerrarlosficheros abiertosantesde abandonarlaaplicación.Estafunciónsirve para eso. Cerrar un fichero almacena los datos que aún están en el buffer de memoria, y actualiza algunosdatosde la cabeceradel ficheroque mantiene el sistemaoperativo. 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 retorno es la constante EOF. El parámetro es un puntero a la estructura FILE del fichero que queremos cerrar. 15.4. FGETC Esta función lee un carácter desde un fichero. El valor de retorno es el carácter leído como un unsigned char convertido a int. Si no hay ningún carácter disponible, el valor de retorno es EOF. El parámetro es un puntero a una estructura FILE del fichero del que se hará la lectura. 15.5. 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 contrario será EOF. Los parámetros de entrada son el carácter a escribir, convertido a int y un puntero a una estructura FILE del fichero en el que se hará la escritura.
  • 19. 01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001 01101111 01101110 Página 16 15.6. FGETS Esta funciónestádiseñadaparaleercadenasde caracteres.Leeráhasta n-1caracteres o hasta que lea un retorno de línea. En este último caso, el carácter de retorno de línea también es leído. El parámetro n nos permite limitar la lectura para evitar desbordar el espacio disponible en la cadena. El valorde retornoes un puntero a la cadena leí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á. 15.7. FPUTS La función fputsescribe unacadenaenun fichero.Nose añade el carácter de retornode líneani el carácter nulo final. El valor de retorno es un número no negativo o EOF en caso de error. Los parámetros de entrada son lacadena a escribiryun punteroa laestructuraFILE del ficherodonde se realizarálaescritura. 15.8. FREAD Esta función está pensada para trabajar con registros de longitud constante. Es capaz de leer desde un fichero uno o varios registros de la misma longitud y a partir de una dirección de memoriadeterminada.El usuarioesresponsable de asegurarse de que hayespaciosuficientepara contener la información leída. El valorde 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úmerode registrosaleeryun punteroa laestructura FILE del fichero del que se hará la lectura. 15.9. FWRITE Esta función también está pensada para trabajar con registros de longitud constante y forma parejacon fread.Es capaz de escribirhacia un fichero uno o varios registros de la misma longitud almacenados a partir de una dirección de memoria determinada. El valorde retornoes el númerode registrosescritos,noel númerode 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
  • 20. 01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001 01101111 01101110 Página 17 registro,el númerode registrosaleeryun punteroa laestructura FILE del fichero del que se hará la lectura. 15.10. FPRINTF La función fprintf funcionaigual que printf encuantoaparámetros,perolasalidase dirige a un ficheroenlugarde a lapantalla. 15.11. FSCANF La función fscanf funcionaigual que scanf encuantoa parámetros,perolaentradase tomade un ficheroenlugardel teclado. 15.12. 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 temporales de datosen memoria,lasoperacionesde salida se hacen a través del buffer, y sólo cuando el buffer se llenase realizalaescrituraenel discoy se vacía el buffer.Enocasionesnoshace falta vaciar ese buffer de un modo manual, para eso sirve ésta función. El valor de retorno es cero si la función se ejecutó con éxito, y EOF si hubo algún error. 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. 16.Programación Modular La programación modular es una técnica que consiste en dividir un programa en tareas y dar origen a la creación de pequeños programas llamados módulos, subprogramas o subrutinas con la finalidadde simplificarla elaboración y mantenimiento del mismo, donde cada módulo se codificayse procesa de manera independiente, sin importar los detalles de otros módulos. Esto facilita la localización de un error cuando se produce. Este tipo de programación es uno de los métodos de diseño más flexibles y potentes para mejorar la productividad de un programa.
  • 21. 01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001 01101111 01101110 Página 18 Al método que plantea la solución de un problema principal partiendo de las soluciones de sus subproblemasse le conoce como diseño descendente.Se denomina así ya que inicia en la parte superior con un problema general y el diseño específico de las soluciones de los subproblemas. Funciónmain() El papel más importante del programa principal main() es coordinar a las otras funciones mediante llamadas invocaciones. 17.Función Es un subprogramaque realiza una tarea específica que puede o no recibir valores (parámetros). En C podemosdevolvercualquiertipode datosescalares(puntero,tiponuméricoyel tipocarácter o en su caso regresar un valor nulo que llamaremos nada o ninguno). Asimismo, no se pueden devolver arreglos ni estructuras. El uso de funciones es una práctica común y recomendable ya que permite dividir el código, simplificandoasíel desarrollo y la depuración del mismo. Para utilizar funciones en un programa es necesario declararlas previamente. Programa Principal Módulo 1 Módulo 2 Módulo 3 SubMódulo 1 SubMódulo 2 SubMódulo 5 SubMódulo 6 SubMódulo 3 SubMódulo 4
  • 22. 01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001 01101111 01101110 Página 19 La estructurageneral de unafunciónenCes la siguiente: 17.1. Cómo se ejecutan de Funciones El compilador siempre inicia con la primera instrucción que encuentra en el programa principal (main) ycontinúaejecutándolosegún la estructura de control (secuencial, selectiva o repetitiva) del programa;cuando encuentralallamadaa unafunciónéste se trasladay ejecutael cuerpode la función desde la primera instrucción hasta encontrar el fin de la misma; cuando esto sucede el compilador regresa a la siguiente instrucción que llamó a la función y continúa de la misma manera. 17.2. Ámbito de las variables Variable local. Variable declarada en una determina función, sólo se encuentra disponible durante el funcionamiento de la misma, es decir está en memoria cuando dicha función está activa. Variable global.Variable declaradafuerade cualquier función y que puede ser utilizada por las funciones que se encuentran después de dicha declaración; por lo tanto si la declaramos junto a las librerías, la podrá utilizar todo el programa. Esta característica es propia del lenguaje C. 17.3. Forma de transferir argumentos Pase por valor:copia el valorde un argumentode lallamadaenel parámetroformal de la función. Por lotanto,los cambiosenlosparámetrosde la funciónnoafectana lasvariables que se usan en la llamada. Pase por referencia: se copia la dirección del argumento en el parámetro. Los cambios hechos a los parámetros afectan a las variables usadas en la llamada a la función.
  • 23. 01001101 01100001 01101110 01110101 01100001 01101100 00100000 01100100 01100101 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 01100011 01101001 01101111 01101110 Página 20 17.4. Ejemplo Vamos a suponer que queremos crear un programa para calcular el precio de un producto basándose en el precio base del mismo y el impuesto aplicable. A continuación mostramos el código fuente de dicho programa: