+ All Categories
Home > Engineering > Manual de programacion

Manual de programacion

Date post: 17-Feb-2017
Category:
Upload: estudiantes-isiuca
View: 30 times
Download: 0 times
Share this document with a friend
37
UNIVERSIDAD CENTROAMERICANA Facultad de Ciencia, Tecnología y Ambiente Ingeniería en sistemas de la información Manual De laboratorio de programación I Elaborado Por: Mario de Jesús Arce Díaz Docente: Elsner Boanerge González Ortega 24 de junio de 2016
Transcript
Page 1: Manual de programacion

UNIVERSIDAD CENTROAMERICANAFacultad de Ciencia, Tecnología y Ambiente

Ingeniería en sistemas de la información

Manual De laboratorio de programación I

Elaborado Por: Mario de Jesús Arce Díaz

Docente: Elsner Boanerge González Ortega

24 de junio de 2016

Contenido

Page 2: Manual de programacion

Definición de algoritmo......................................................................................................................1

Identificadores...................................................................................................................................1

Comentarios.......................................................................................................................................2

Tipos de datos En C/C++.....................................................................................................................2

Definición de variable.........................................................................................................................2

Tipos de variables...............................................................................................................................3

Declaración de una variable en c++................................................................................................4

Como realizar las acciones de E/S en C y C++.....................................................................................4

Constantes.........................................................................................................................................5

casting................................................................................................................................................5

Tipos de constantes........................................................................................................................6

Declaración de una constante........................................................................................................6

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

Concepto........................................................................................................................................7

Arreglos unidimensionales.............................................................................................................7

Concepto....................................................................................................................................7

Declaración de un arreglo unidimensional.................................................................................7

Inicialización de un arreglo.........................................................................................................8

Arreglos bidimensionales...................................................................................................................8

Estructuras de datos........................................................................................................................10

Printf y scanf.....................................................................................................................................12

Entrada de datos: función scanf().................................................................................................12

Salida de datos: función scanf()....................................................................................................13

Entrada y salida sin formato.............................................................................................................14

Manejo de ficheros en c...................................................................................................................15

Creación de un archivo de acceso secuencial...............................................................................15

Creación de un archivo de acceso aleatorio.....................................................................................16

Estructura de control repetitiva o de iteración condicional.............................................................18

Implementación del ejemplo:......................................................................................................20

Uso de bucles...................................................................................................................................20

Funciones.........................................................................................................................................21

Uso de variables globales y locales..................................................................................................26

Variable local................................................................................................................................26

Page 3: Manual de programacion

Variable Global.............................................................................................................................26

Bibliografía.......................................................................................................................................28

Page 4: Manual de programacion

1

Manual de laboratorio de programación I

Definición de algoritmoSe denomina algoritmo al conjunto de pasos ordenados y finitos que permiten resolver un problema o tarea específica. Los algoritmos son independientes del lenguaje de programación y de la computadora que se vaya a emplear para ejecutarlo.

IdentificadoresUn 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 C11 sólo los primeros 31 caracteres son significativos (ANSI C). El programador tiene libertad para darle cualquier nombre a un identificador, siguiendo estas reglas:

1. Debe resultar significativo, sugiriendo lo que representa.2. No podrá coincidir con palabras reservadas, propias del lenguaje3. Debe comenzar con una letra entre A y Z mayúscula o minúscula y no puede contener

espacios en blanco.4. El lenguaje C distingue mayúsculas de minúsculas porque tienen diferente código ASCII.5. Letras, dígitos y el carácter guion bajo están permitidos después del primer carácter.6. 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.

7. No se puede utilizar una palabra reservada como identificador, sin embargo, los identificadores estándar se pueden redefinir.

8. En lenguaje C existen identificadores que podrían tener uno o varios puntos, tales como: datos.nombrePersonal

Lenguajes de programación C/C++

General: Debe tolerar cambios que se puedan presentar en la definición del problema.

Definido: No debe ser ambiguo (dobles interpretaciones); si se ejecuta el mismo algoritmo el resultado

Finito en tamaño o número de instrucciones, debe terminar en algún momento. Por lo tanto, debe tener un punto particular de inicio y fin.

Preciso: Debe tener un orden entre los pasos.

Todo algoritmo debe ser:

Page 5: Manual de programacion

2

Manual de laboratorio de programación I

Algunos identificadores que es preferible no utilizar:

A9, 1, Z, primer-nombre, esto porque el identificador debe representar claramente el dato que se almacena en la variable, además el ultimo identificador no es válido porque el guion alto en c /c++ representa el signo de resta, no obstante pueden existir identificadores como ( i ) que son utilizados como contadores dentro de un bucle.

Comentarios Los comentarios son textos que no son procesado por el compilador. Sirven como información al programado.

Para que un texto sea comentario debe estar entre los símbolos /* (marca el inicio) y */ (marca el fin del comentario)

Tipos de datos En C/C++Los tipos de datos en C/C++ se clasifican en primitivos y derivados.

Los tipos de datos primitivos son los que están definidos

dentro del lenguaje.

Los tipos de datos derivados se forman a partir de los tipos

primitivos.

En C++ los tipos de datos numéricos enteros son los siguientes:

Tipo de Dato Descripción

Tipo de Dato Descripción Número de bytestípico

Rango

Int 2 -32768 a 32767float (flotante) 4 3.4 E-38 a 3.4 +138Long 8 1.7 E-308 a 1.7 +1308char 1 -128 a 127

Con los tipos enteros pueden utilizarse los calificadores signed y unsigned. Estos calificadores indican si el número tiene signo o no. Si se usan solos, sin indicar el tipo de dato se asume int.

Definición de variableUna variable es un objeto del lenguaje cuyo valor se puede cambiar. Antes de utilizar una variable ésta debe de ser declarada. Al declarar una variable, se le asocia un identificador, es decir, un nombre, con un tipo de almacenamiento cuya forma determina la visibilidad y existencia de la variable.

Lenguajes de programación C/C++

Page 6: Manual de programacion

3

Manual de laboratorio de programación I

Tipos de variables El tipo de la variable nos indica el conjunto de valores que puede tomar y las operaciones que pueden realizarse con ella. Existen cinco tipos de datos básicos en C:

Tipo de dato

Descripción Memoria

Int Cantidad entera 2 bytes o una palabra (varía según el (compilador).

Char Carácter 1 byte.Float Almacena valores reales en punto flotante. 1 palabra (4 bytes).Double Almacena valores reales en doble precisión. 2 palabras (8 bytes).Void Se utiliza para definir una función que no devuelve

ningún valor o declarar punteros genéricos (lo veremos más tarde).

Estos tipos básicos a excepción de void admiten una modificación del rango de valores, aplicando las siguientes palabras reservadas:

Short (corto) Long (largo) Signed (con signo) Unsigned (sin signo)

Veamos los siguientes ejemplos:

Tipo Tamaño en bits RangoChar 8 -127 a 127Unsigned char 8 0 a 255Signed char 8 -127 a 127Int 16 -32767 a 32767Unsigned int 16 0 a 65535Signed int 16 -32767 a 32767Shor int 16 -32767 a 32767Unsigned short int 16 0 a 65535Signed short int 16 -32767 a 32767Long int 32 -2147483647 a 2147483647Signed long int 32 -2147483647 a 2147483647Unsigned long int 32 0 a 4294967295Float 32 Seis dígitos de precisióndouble 64 Diez dígitos de precisiónLong double 64 Diez dígitos de precisión

Lenguajes de programación C/C++

Page 7: Manual de programacion

4

Manual de laboratorio de programación I

Declaración de una variable en c++Para Declarar una variable en c++ debemos tomar en cuenta que necesitamos incluir librerías y las palabras reservadas de c con using namespace std primero se digita el tipo de variable, luego se escribe el identificador si se desea se puede inicializar con un igual y su valor luego se finaliza con punto y coma. Veamos un ejemplo:

#include<iostream>

using namespace std;

int main()

{

int a,b,c; //Declaración de variables enteras.

float n,m,o; //Declaración de variables reales o decimales.

char x,y,z; //Declaración de variables tipo carácter.

char cadena[12]; //Declaración de variables cadena.

return 0;

}

Nota: Como podemos observar en el ejemplo las variables de tipo cadena son un arreglo de tipo carácter y el limite lo define el programador siguiendo la estructura: identificador [núm de caráct] debemos de tener siempre en cuenta que no hay que desperdiciar espacios de memoria es decir si conocemos el tamaño al que podría llegar la variable no lo excedamos.

Como realizar las acciones de E/S en C y C++Para realizar las acciones de entrada y salida se tiene que tomar en cuenta algunos factores que inciden en esta acción como las palabras reservadas de los lenguajes como por ejemplo scanf y printf palabras propias del lenguaje c para profundizar un poco más analicemos los siguientes ejemplos:

Algortmo en el lenguaje C Algoritmo en el lenguaje C++#include<stdio.h>#include<conio.h>

int main (){ int num;

printf ("\n Digite un número"); scanf ("%d", &num);}

#include <iostream>

using namespace std;

int main(){ int x; x=0; cout << "Digite un numero" << endl; cin >>x; return 0;}

Lenguajes de programación C/C++

Page 8: Manual de programacion

5

Manual de laboratorio de programación I

En C++ using namespace std; funciona para poder utilizar las palabras reservadas de C.

ConstantesUna constante es un dato que permanece sin cambio durante el desarrollo del algoritmo o durante la ejecución del programa, es decir valores fijos que no pueden ser alterados por el usuario. La mayoría de los lenguajes de programación permiten el manejo de diferentes tipos de constantes; éstas pueden ser enteras, reales, caracteres y cadenas.

castingconsiste en almacenar un dato de una variable en otra diferente, aunque para esto se debe tomar en cuenta que esto no se puede hacer con todos los tipos de datos ejemplo de esto tenemos que no se puede realizar un casting entre una variable de tipo char con una de tipo entero porque posee datos muy diferentes.

Para ejemplificar esta acción observemos el siguiente algoritmo:

#include <iostream>

using namespace std;

int main()

{

signed long ls=+1230000;

short lu=125;

//castin

cout<<"Resultado del cambio"<<endl;

ls=(signed long)lu;

cout<<ls;

return 0;

}

En este casting la variable (ls) toma el valor de la variable (lu) y se imprime en pantalla el numero 125.

Lenguajes de programación C/C++

Page 9: Manual de programacion

6

Manual de laboratorio de programación I

Tipos de constantes

Tipos de constante

Descripción y ejemplos

Enteras Son una sucesión de dígitos precedidos o no por el signo 1 o 2 dentro de un rango determinado. Ejemplos: 234, 2456, etcétera.

Reales Son una sucesión de dígitos con punto adelante, al final o en medio y seguidos opcionalmente de un exponente. Ejemplos: 82.347, 0.63, 32.4e205, 7.4e03

Carácter Un constante carácter (char) es un carácter del código ASCII encerrado entre apóstrofos. Ejemplos: ‘a’, ‘b’, ‘c’

cadenas Una constante cadena es una secuencia de caracteres encerrados entre dobles comillas. Ejemplos: “123”, “26 de noviembre de 1974”, “Esto es una cadena”

Declaración de una constanteEn lenguaje C++ una constante se define por medio de la palabra const:

const float iden_variab = valor;

para ejemplificar esto se mostrará un ejemplo que consiste en un algoritmo que calcule el área del círculo:

#include <iostream>

using namespace std;

//Declaración de constantes

const float pi=3.1416;

int main ()

{

//declaración de variables

float radio,area;

//inicialización de variables

radio=0.0;

area=0.0;

cout<<"Digite el valor del radio del circulo"<<endl;

cin>>radio;

area=pi*(radio*radio);

cout<<"El area del circulo es de: "<<area; }

Lenguajes de programación C/C++

Page 10: Manual de programacion

7

Manual de laboratorio de programación I

Arreglos ConceptoUn 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 contiguas donde la dirección más baja corresponde al primer elemento y la dirección más alta al último. Por sí mismo, el nombre del arreglo apunta a la dirección del primer elemento del arreglo.

Para acceder a un elemento almacenado en un arreglo se especifica el identificador de la variable mas el índice entre corchete: indent [índice].

Arreglo [4]:

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.

Cuando decimos memoria contigua nos referimos a que el espacio de memoria que se reserva es uno tras otro es decir seguido

3. Tener un único nombre de variable que representa a todos los elementos y éstos se diferencian por un índice o subíndice.

Los arreglos se clasifican en:

1. Unidimensionales (vectores o listas)2. Bidimensionales (tablas o matrices)3. Multidimensionales (más de dos dimensiones)

Los más utilizados son los unidimensionales y los bidimensionales

Arreglos unidimensionalesConceptoUn arreglo unidimensional es un conjunto de n elementos del mismo tipo almacenados en memoria continua en un vector o lista. Para acceder a cada elemento del arreglo se requiere de un solo índice o subíndice, el cual representa la posición en la que se encuentra.

Declaración de un arreglo unidimensional

Para declarar una en c/c++ se debe especificar el tipo seguido de el identificador y entre corchete [] la cantidad de elementos del arreglo para esto podemos utilizar la siguiente declaración:

Tipo_de_dato identificador [tam_arreglo];

Lenguajes de programación C/C++

0 1 2 3

Page 11: Manual de programacion

8

Manual de laboratorio de programación I

Donde:

tipo_dato: se refiere al tipo de dato de cada elemento del arreglo; puede ser entero, real, carácter, etcétera.

Identificador: es el nombre que representa a todo el arreglo

tam_arreglo: es la cantidad de elementos que contiene el arreglo.

Inicialización de un arreglo

Existen tres formas de inicializar un arreglo:

1. Inicializar el arreglo donde lo definimos en ceroa. int arreglo1[5]= {0};

2. Inicializar el arreglo donde lo definimos, pero con valores diferentesa. int arreglo2[3]= {0,1,2};

3. inicializar el arreglo de forma independientea. int arreglo3[3];

arreglo3[0]=1;arreglo3[1]=2;arreglo3[2]=3;arreglo3[3]=4;

A continuación, se muestra un arreglo de números reales cuyo identificador es a:

Lenguaje c

Int a[5];

Arreglos bidimensionalesSegún (corona & Acona, 2011) en su libro Diseño de algoritmos y su codificación en lenguaje C afirman que un arreglo bidimensional es un conjunto de n elementos del mismo tipo almacenados en memoria contigua en una matriz o tabla. A diferencia de los arreglos unidimensionales que sólo requieren de un subíndice, los arreglos bidimensionales para acceder a cada elemento del arreglo requieren de dos índices o subíndices declarados en dos pares de corchetes, donde el primer corchete se refiere al tamaño de filas y el segundo al tamaño de columnas.

Lenguajes de programación C/C++

a[0] a[0] a[0] a[0] a[0]

Elementos Posiciones

1 2 2 4 5

Page 12: Manual de programacion

9

Manual de laboratorio de programación I

También debemos tomar en cuenta cómo podemos declarar dicho arreglo que es de esta forma:

Int arreglo [4] [3]

Donde:

int representa el tipo de arreglo

Arreglo: Este es el identificador

[4]: representa el número de filas de nuestro arreglo también considerado una matriz

[3]: Determina el número de columnas que poseerá nuestro arreglo bidimensional

Para poder llamar a un arreglo de este tipo o simplemente mandar a imprimir debemos especificar el identificador más su posición a través de los índices.

Para poder hacer uso del dato en la última posición del arreglo que se muestra en rojo lo debemos hacer de la siguiente forma:

Arreglo 3 2

Ahora nos preguntaremos y porque 3,2 y no 4,3 como podemos visualizar el arreglo bidimensional al igual que el unidimensional empiezan en la posición 0 por esa razón el último elemento se encuentra en la posición i-1 para ambos índices

Para verlo de forma más clara realizamos un ejemplo en el cual solo declararemos un arreglo bidimensional

Lenguajes de programación C/C++

Segundo índice

Primer índice

0 1 2

0 1 2

Segundo índice

Primer índice

0 1 2

0 1 2

Page 13: Manual de programacion

10

Manual de laboratorio de programación I

Estructuras de datosUna estructura define una plantilla con la que posteriormente se puede declarar una variable. Una de las características de las estructuras es que hay que definirlas antes de usarlas en la declaración de variables. En la definición no se declara ni reservando memoria para ninguna variable, sólo se construye una estructura con determinadas características, para después poder declarar una variable de ese tipo. Aunque también se puede definir la estructura y declarar variables del tipo estructura definida, lo normal es declararlas fuera de la definición. Más adelante se muestra la forma de declarar una estructura, un tipo de dato y una variable tipo registro (struct).

Para crear una estructura se empieza por definir su tipo para ello realizamos una acción similar a la de definición de una variable, para esto se utiliza la palabra reservada struct normalmente seguida por un nombre y llave izquierda; después se define el tipo y nombre para uno o más campos.

Observemos la forma más común de declarar una estructura:

struct empleado

{

char nombre[35];

int edad;

char sexo;

double sal;

};

En este arreglo se ha definido el tipo de dato empleado; pero si nos damos cuenta aún no existe ninguna variable asociada a este nuevo tipo de dato por lo que declararemos la variable reg con este tipo de dato:

struct empleado reg;

ahora lo implementaremos en un algoritmo que tiene como tarea registrar algunos datos como el nombre, sexo, edad y mostrar los datos en pantalla.

#include <iostream>

#include <stdlib.h>

using namespace std;

struct empleado

{

char nombre[35];

int edad

Lenguajes de programación C/C++

Page 14: Manual de programacion

11

Manual de laboratorio de programación I

char sexo;

double sal;

};

int main()

{

struct empleado reg;

cout << "Digite los datos del empleados"<< endl;

cout<<"Escribia los nombres del empleado"<< endl;

cin.getline(reg.nombre, 35);

cout<<"Digite la edad"<< endl;

cin>>reg.edad;

cout<<"Escriba F - femenino o M masculino"<< endl;

cout<<"para indicar el genero"<< endl;

cin>>reg.sexo;

cout<<"Digite el salario por hora del empleado"<< endl;

cin>>reg.sal;

system("cls");

cout<<"DATOS DEL EMPLEADO\n\n";

cout<<"Nombre: "<<reg.nombre;

cout<<"\nEdad: "<<reg.edad;

cout<<"\nSexo: "<<reg.sexo;

cout<<"\nsalario: "<<reg.sal<<endl<<endl;

system("pause");

return 0;

}

Existen dos formas de declarar una variable de tipo empleado:

struct empleado reg y escribiendo el identificador fuera de las llave de la estructura como se muestra en el siguiente ejemplo:

Lenguajes de programación C/C++

Page 15: Manual de programacion

12

Manual de laboratorio de programación I

struct empleado

{

char nombre[35];

int edad

char sexo;

double sal;

}registrosDat;

Donde registroDat es la variable de tipo empleado.

Printf y scanf

El lenguaje C no tiene palabras reservadas para la e/s estándar del sistema (teclado y pantalla). Estas operaciones se realizan mediante funciones de biblioteca que encontramos en el archivo de cabecera stdio.h (standard input-output header). La e/s con formato se realiza por medio de las funciones scanf() y printf. Las f de scanf() y de printf() significan “con formato”.

Entrada de datos: función scanf() La función scanf() se usa para la entrada y nos permite leer (introducir) datos desde el teclado y asignarlos a variables de C, de acuerdo con el formato especificado.

Sintaxis: scanf (“cadena de control”, argumento1, argumento2 …);

La cadena de control tiene uno o varios especificadores o códigos de formato que harán referencia al tipo de dato de los argumentos y, si se desea, su anchura. Los códigos estarán precedidos por el carácter % seguido de un carácter de conversión. La cadena de control deberá escribirse entre comillas (“ ”).

La lista de argumentos serán las variables; scanf necesita saber la posición de memoria de la computadora en que se encuentra la variable para poder almacenar la información obtenida, para ello utilizaremos el símbolo ampersand (&), que colocaremos antes del nombre de cada variable. Por lo tanto, el & sirve para apuntar a la dirección de memoria de dicha variable. A continuación, presentamos varios ejemplos.

Cuando realizamos una lectura a través de scanf de una cadena no es necesario utilizar el ampersand veamos el siguiente ejemplo:

Char nombre[10];scanf( “%s”,nombre); o scanf( “%s”,&nombre);

El scanf (“%f %d %c”, &x, &y, &z); almacena en x, m y z, respectivamente, los datos introducidos de cualquierade las siguientes formas:

Lenguajes de programación C/C++

Page 16: Manual de programacion

13

Manual de laboratorio de programación I

• Oprimir la tecla <enter> después de introducir cada dato.• Oprimir la tecla <tab> después de introducir cada dato.• Oprimir un espacio en blanco después de introducir cada dato.• Alternar cualquiera de las opciones anteriores entre cada dato.

A continuación, veremos una tabla con los distintos formatos y tipos de datos en el lenguaje C Entero Decimal Int %d,%i 232768 a 32767 (2

bytes)Real (punto flotante)

Float %f, %g, %G, %e, %E 3.4E238 a 3.4E138

Carácter con signo

Signed char %c -128 a 127

Real Double %lf, %lg, %lG, %le, %lE

Real Long doublé %lf, %lg, %lG, %e, %lE 3.37E24932 a 1.18E14932

Entero largo decimal

Long int %ld 22147483648 a 2147483647

Salida de datos: función scanf()

printf (cadena de control de formato, otros argumentos);

la cadena de control de formato describe el formato de salida y, otros argumentos (los cuales son opcionales) corresponden a cada especificación de conversión de la cadena de control de formato. Cada especificación de conversión comienza con un signo de porcentaje que termina con un especificador de conversión. Puede haber muchas especificaciones de conversión en una cadena de control de formato.

Algunas cosas que debemos tomar en cuenta es no olvidar cerrar los paréntesis, por presentación debemos editar claras las salidas de un programa, para que sean más legibles y poder disminuir los errores de los usuarios.

La cadena de control debe escribirse entre comillas (“ ”) y puede tener al menos uno de los tres elementossiguientes:1. Los caracteres que se imprimirán en pantalla (los cuales se visualizarán idénticos).2. Secuencias de escape.3. Uno o varios códigos de formato (indica de qué tipo de dato se trata).

Al igual que en la sentencia scanf un especificador o código de formato se inicia con un carácter % y termina con un carácter de conversión; por ejemplo, en el formato %s la letra ese (s) es el carácter de conversión para imprimir cadenas. Debe haber el mismo número de códigos de formato que de argumentos y cada uno de éstos debe tener un orden. En caso contrario el resultado no será correcto.

Los argumentos pueden ser variables, constantes, o en general expresiones de salida. Para imprimir las letras XYZ en la pantalla, podría hacerse de las siguientes formas:

• printf (“XYZ”); //La lista de argumentos es opcional.

Lenguajes de programación C/C++

Page 17: Manual de programacion

14

Manual de laboratorio de programación I

• printf (“%s”,“ XYZ”); //El formato % s imprime el texto “XYZ” como cadena de caracteres.

• printf(“%c%c%c” , ’ X ’ , ’ Y ’ , ’ Z ’ ); //Los apóstrofos que encierran cada letra se emplean para designar constantes de caracteres. El formato %c imprime el valor como un carácter.

Los códigos de formato pueden controlar aspectos de la apariencia de los datos: la longitud, el número de decimales y la justificación a izquierda o derecha.

Sintaxis: % [signo] [longitud] [.precisión] [l/L] Carácter de Conversión

Los valores entre [ ] son opcionales, donde:

signo: indica si el valor aparecerá a la izquierda (signo menos), o a la derecha (por defecto).

longitud: longitud máxima del valor que aparecerá en la pantalla.

precisión: indica el número máximo de decimales que tendrá el valor.

l/L: utilizamos l cuando se trata de una variable de tipo long, y L cuando es de tipo double.

El código de formato %4d indica que imprimiremos un número entero en cuatro posiciones o lugares.

Entrada y salida sin formatoLas funciones principales que realizan la entrada y salida sin formato son:

getche() Lee un carácter del teclado, no hay que esperar hasta que se pulse la tecla <enter>. Visualiza el eco del carácter.

getchar() Lee un carácter del teclado, espera hasta que se pulsa la tecla <enter>. getch() Lee un carácter del teclado, no hay que esperar que se pulse la tecla <enter>. No

visualiza el eco del carácter. putchar() Imprime un carácter en la pantalla en la posición actual del cursor. gets() Lee una cadena de caracteres introducida por el teclado. puts() Imprime una cadena en la pantalla, seguida de un carácter de salto de línea. justificando a la derecha. El relleno es blanco.

Ejemplos

#include <stdio.h>

#include <conio.h>

main()

{

char c;

puts(“Dame un carácter: “); fflush(stdin);

c=getche(); //Lee un carácter del teclado

putchar(c); //Lo imprime en la pantalla

Lenguajes de programación C/C++

Page 18: Manual de programacion

15

Manual de laboratorio de programación I

puts(“Dame otro carácter: “); fflush(stdout);

c=getchar(); // Lee un carácter del teclado, espera hasta que se pulse la tecla <enter>

putchar(c); //Lo imprime en la pantalla

puts(“Dame otro carácter: “); fflush(stdin);

c=getch(); //Lee un carácter del teclado

putchar(c); //Lo imprime en la pantalla

getch(); return 0;

}

Manejo de ficheros en c

La biblioteca estándar proporciona muchas funciones para leer datos desde archivos y para escribir datos en archivos. La función fgetc, al igual que getchar, lee un carácter desde un archivo. La función fgetc recibe como argumento un apuntador FILE para el archivo desde el que se lee el carácter. La llamada a fgetc( stdin ) lee un carácter desde stdin, la entrada estándar. Esta llamada es equivalente a la llamadaba getchar(). La función fputc, al igual que putchar, escribe un carácter en un archivo. La función fputc recibe como argumentos un carácter a escribir y un apuntador para el archivo en el cual se escribirá el carácter. La llamada a la función fputc( ‘a’, stdout ) escribe el carácter ‘a’ en stdout, la salida estándar.nEsta llamada es equivalente a putchar( ‘a’ ).

Muchas otras funciones para leer datos desde la entrada estándar y escribir datos hacia la salida estándar tienen funciones similares de procesamiento de archivos. Por ejemplo, las funciones fgets y fputs pueden utilizarse para leer una línea desde un archivo y para escribir una línea en un archivo, respectivamente. La salida estándar. En las siguientes secciones, presentamos los equivalentes para el procesamiento de archivos de scanf y printf, fscanf y fprintf. Más adelante en este capítulo, explicaremos las funciones fread y fwrite.

Creación de un archivo de acceso secuencial

C no impone una estructura a un archivo. Por lo tanto, las ideas de registro de un archivo no existen como parte del lenguaje C. Entonces, el programador debe proporcionar la estructura del archivo para cumplir con los requerimientos de una aplicación en particular. En el siguiente ejemplo, mostraremos cómo el programador puede insertar una estructura de registro dentro de un archivo.

Ejemplo: Algoritmo para realizar registros de herramientas

Lenguajes de programación C/C++

#include <stdio.h>

int main()

{

int numCta;

char nombreHerram[30];

int cantidad;

Page 19: Manual de programacion

16

Manual de laboratorio de programación I

Creación de un archivo de acceso aleatorioLa función fwrite transfiere un número específico de bytes que comienzan en una ubicación específica de la memoria hacia un archivo. Los datos se escriben al principio de la ubicación del archivo indicada por la posición del apuntador. La función fread transfiere un número específico de bytes desde la ubicación especificada en el archivo por medio del apuntador de posición del archivo, hacia un área en memoria que comienza con la dirección especificada. Ahora, cuando se escribe un entero, en lugar de utilizar

fprintf( ptrF, “%d”, numero );

Lo que podría imprimir un solo dígito o hasta 11 (10 dígitos más un signo, cada uno de los cuales requiere 1 byte de almacenamiento) para un entero de 4 bytes, puede utilizarse

fwrite( &numero, sizeof( int ), 1, ptrF );

Lenguajes de programación C/C++

#include <stdio.h>

int main()

{

int numCta;

char nombreHerram[30];

int cantidad;

Page 20: Manual de programacion

17

Manual de laboratorio de programación I

Lo que siempre escribe 4 bytes (o 2 bytes en un sistema con enteros de 2 bytes) desde una variable numero hacia el archivo representado por ptrF (más adelante explicaremos el argumento 1). Posteriormente, fread puede utilizarse para leer 4 de estos bytes dentro de la variable entera numero. Aunque fread y fwrite leen y escriben datos, tales como enteros, de tamaño fijo en lugar de formatos de tamaño variable, los datos que manipulan se procesan en el formato fuente la computadora (es decir, bytes o datos), en lugar del formato de

printf y scanf legible para el humano.

Ejemplo: programa para inicializar una estructura y crear un fichero

Lenguajes de programación C/C++

#include <stdio.h>

//definicion de la estructura DatosCliente

struct DatosCliente{

int numCta;

char apellido[15];

char nombre[10];

double saldo;

};

int main()

{

//crea DatosCliente con informacion en blanco

struct DatosCliente clienteEnBlanco={0,"","",0.0};

FILE *ptrCf;

//fopen abre el archivo

if((ptrCf=fopen("credito.dat","wb"))==NULL){

printf("\nEl archivo no pudo abrirse");

}else{

//inicializa el archivo con 100 registros en blanco

for(int i=1; i<=100; i++){

fwrite(&clienteEnBlanco,sizeof(struct DatosCliente),1,ptrCf);

}//fin de for

fclose(ptrCf); //cierra el archivo

printf("\nSe inicializo el archivo con 100 registros en blanco\n");

}//fin de else

return 0;

}

Page 21: Manual de programacion

18

Manual de laboratorio de programación I

Estructura de control repetitiva o de iteración condicional

Las computadoras están diseñadas primordialmente para aquellas aplicaciones en las cuales una operación o conjunto de ellas deben repetirse más de una vez.

La repetición de una acción (una o varias instrucciones) se lleva a cabo mientras se cumpla cierta condición; para que la acción termine, la acción misma debe modificar la(s) variable(s) de control que interviene(n) en la condición. Dicha condición puede estar predefinida como en el ciclo desde (for); o no predeterminada, como en los bucles mientras (while) y hacer-mientras (do_while).

Bucles, ciclo o iteración. Es un segmento de un algoritmo o programa, cuya(s) instrucción(es) se repite(n) un número conocido o indefinido de veces mientras se cumpla una determinada condición. En cada vuelta del ciclo comprueba si la condición es verdadera, rompiéndose el ciclo cuando es falsa. La condición en algún momento tiene que ser falsa ya que en caso contrario el bucle se hará infinito.

Ejemplo: Calculo de número mayor menor y el promedio

Lenguajes de programación C/C++

#include <iostream>

#include <stdlib.h>

using namespace std;

int main ()

{

int a,b,c;

float prom;

prom=0.0;

a=0;

b=0;

c=0;

cout<<"Digite el primer numero"<<endl;

cin>>a;

cout<<"Digite el segundo numero"<<endl;

cin>>b;

cout<<"Digite el tercer numero"<<endl;

cin>>c;

system("pause");

system("cls");

Page 22: Manual de programacion

19

Manual de laboratorio de programación I

system("cls");

Lenguajes de programación C/C++

if (a>=b && a>=c)

{

cout<<"El mayor es: " <<a;

}

else if (b>=a && b>=c)

{

cout<<"El mayor es: " <<b;

}

else if (c>=a && c>=b)

{

cout<<"El mayor es: " <<c;

}

if (a<=b && a<=c)

{

cout<<"\nEl menor es: " <<a;

}

else if (b<=a && b<=c)

{

cout<<"\nEl menor es: " <<b;

}

else if (c<=a && c<=b)

{

cout<<"\nEl menor es: " <<c;

}

prom=(a+b+c)/3;

cout<<"\nEl promedio es: "<<prom<<endl;

}

Page 23: Manual de programacion

20

Manual de laboratorio de programación I

Implementación del ejemplo:

Uso de bucleswhile(condicion)//MIENTRAS LA CONDICION NO SE CUMPLA REALIZA LAS ACCIONES DEFINIDAS

{

Accion 1 a realizar

Accion 2 a realizar

Accion 3 a realizar

}

for (sumador=0; sumador<=valorLimite;sumador++)//SE INICIALIZA EN 0 EL SUMADOR

{ //Y HASTA QUE SEA <= A VALOR DE 1 EN 1 HACER

Accion 1 a realizar

Accion 2 a realizar

Accion 3 a realizar

}

do

Lenguajes de programación C/C++

Page 24: Manual de programacion

21

Manual de laboratorio de programación I

{

Accion 1 a realizar

Accion 2 a realizar

Accion 3 a realizar

}while (condición); //ES SIMILAR ALWHILE PERO ESTE PERMITE REALIZAR UNA VES LA SENTENCIA DE ACCIONES

Funciones

Las funciones permiten a los usuarios dividir un programa en módulos. Aplicando el termino muy famoso en programación divide y vencerás es decir es más fácil dividir el problema en problemas pequeños y así poder solucionarlos de manera independiente con el objetivo sé que estas acciones aporten a un problema macro esto también esto esta denominado en la programación descendente. Todas las variables que se definen en una función son variables locales, es decir, se conocen sólo en la función en la que se definen. La mayoría de las funciones tiene una lista de parámetros. Los parámetros proporcionan los medios para transferir información entre funciones. Los parámetros de una función también son variables locales de dicha función.

¿Cómo crear una función?

Tipo de función nombre de la función (tipo de variable parámetros);

Cunado hablamos de una función hablamos de dos acciones muy importantes crear e invocar para entender un poco más esto veremos las siguientes ilustraciones:

Como crear una función

Tipo de función nombre de la función (tipo de variable parámetros);

{

Lista de acciones;

Lista de acciones;

}

¿Cómo invocar una función?

nombre de la función (parámetros);

Como se mencionaba anteriormente es necesario definir el tipo de parámetro que se le pasan a l función (por valor o por referencia);

Lenguajes de programación C/C++

Paso por referencia

Page 25: Manual de programacion

22

Manual de laboratorio de programación I

Si es por referencia esta es la forma:

Tipo de función nombre de la función (&primer_parametro);

Por valor solo se escribe el identificador de la variable sin el &.

Veamos los siguientes ejemplos:

Durante la programación en C/C++ lograremos identificar 6 funcione básicas dentro del manejo de ficheros en C entre los cuales tenemos: Crear, registrar, Modificar, visualizar, modificar, eliminar

Lenguajes de programación C/C++

Crear un fichero

Registrar información

Visualizar la información

Page 26: Manual de programacion

23

Manual de laboratorio de programación I

Lenguajes de programación C/C++

Buscar un registro

Page 27: Manual de programacion

24

Manual de laboratorio de programación I

Lenguajes de programación C/C++

Modificar un registro

Page 28: Manual de programacion

25

Manual de laboratorio de programación I

Uso de variables globales y locales

Definición

Lenguajes de programación C/C++

Eliminar un registro

Page 29: Manual de programacion

26

Manual de laboratorio de programación I

Variable local

Una variable local es aquella cuyo ámbito se restringe a la función que la ha declarado se dice entonces que la variable es local a esa función. Esto implica que esa variable sólo va a poder ser manipulada en dicha sección, y no se podrá hacer referencia fuera de dicha sección. Cualquier variable que se defina dentro de las llaves del cuerpo de una función se interpreta como una variable local a esa función.

Variable Global

Una variable global es aquella que se define fuera del cuerpo de cualquier función, normalmente al principio del programa, después de la definición de los archivos de biblioteca (#include), de la definición de constantes simbólicas y antes de cualquier función. El ámbito de una variable global son todas las funciones que componen el programa, cualquier función puede acceder a dichas variables para leer y escribir en ellas. Es decir, se puede hacer referencia a su dirección de memoria en cualquier parte del programa.

Como podemos observar la variable se encuentra antes de la función principal por lo que se considera de ámbito global y puede ser utilizada por cualquier otra función que este debajo del main.

Como se los mencionaba anteriormente en el concepto las variables locales solo pueden ser utilizada dentro de

la función esto representa que si declaramos en dos funciones diferentes la misma variable no habrá ningún problema algo sucede con las variables globales porque si se define un variable global y otra igual es definida es definida como variable local se provoca

Lenguajes de programación C/C++

Variable global

Variables locales

Page 30: Manual de programacion

27

Manual de laboratorio de programación I

un error porque el compilador toma la última declaración como una redefinición y lo que causa un conflicto y se tiene que eliminar o redefinir inmediatamente.

Conclusiones

Considero que la elaboración de este manual contribuyó al desarrollo de mis habilidades dentro de la programación, facilita el aprendizaje dentro de la asignatura porque permite que nosotros como estudiantes podamos poner en práctica lo aprendido dentro de las cesiones de clase impartidas en laboratorio de programación I, además representa una documentación de la clase que podrá me podrá servir en el futuro porque representa las bases de la programación e C/C++

La realización de este manual es envase al libro Diseño de algoritmos y su codificación en lenguaje C de (corona & Acona, 2011), haciendo uso de conceptos o teoría para la debida documentación.

Lenguajes de programación C/C++

Page 31: Manual de programacion

28

Manual de laboratorio de programación I

Bibliografíacorona, M., & Acona, M. (2011). Diseño de algoritmos y su codificación en lenguaje C. México, D.F:

McGRAW-HILL.

Lenguajes de programación C/C++


Recommended