manual programación

45
MANUAL PROGRAMACIÓN C/C++ Abigail Saballos LABORATORIO PROGRAMACIÓN I

Upload: estudiantes-isiuca

Post on 17-Feb-2017

99 views

Category:

Engineering


3 download

TRANSCRIPT

Manual Programación C/C++

Abigail Saballos

LABORATORIO PROGRAMACIÓN I

Tabla de contenido1. Tipos de datos............................................................................................................................1

1.1 Numéricos enteros.............................................................................................................1

1.2 Numéricos reales................................................................................................................2

1.3 Lógico.................................................................................................................................2

2. Juego de caracteres....................................................................................................................3

3. Declaración de variables............................................................................................................4

4. Entradas y Salidas.......................................................................................................................5

4.1 Entrada y Salida C...............................................................................................................5

4.1.1 fflush, getchar y putchar.............................................................................................6

4.1.2 printf y scanf...............................................................................................................8

4.2 Entrada y Salida C++.........................................................................................................11

.....................................................................................................................................................11

3. Keywords..................................................................................................................................13

4. Funciones.................................................................................................................................14

4.1 sizeof................................................................................................................................14

5. Tipos de Datos y Requerimientos de Memoria........................................................................15

6. Tratamiento de los tipos por el compilador de C/C++..............................................................16

7. Casting......................................................................................................................................19

8. Arreglos................................................................................................................................20

8.1 Concepto..........................................................................................................................20

8.2 Sintaxis.............................................................................................................................20

9. Estructuras...............................................................................................................................22

10. Ficheros................................................................................................................................25

10.1 fopen y fclose...................................................................................................................25

10.2 Rename............................................................................................................................29

10.3 Remove............................................................................................................................30

10.4 fgetc.................................................................................................................................31

.....................................................................................................................................................31

10.5 fgets..................................................................................................................................31

10.6 fread.................................................................................................................................32

10.7 fscanf................................................................................................................................32

10.8 fwrite................................................................................................................................33

10.9 ftell...................................................................................................................................33

11. Sentencias de control...........................................................................................................34

11.1 if.......................................................................................................................................34

11.2 if else................................................................................................................................34

11.3 while.................................................................................................................................34

11.4 for.....................................................................................................................................35

11.5 do while............................................................................................................................35

12. Funciones.............................................................................................................................38

12.1 Parámetros...........................................................................................................................38

12.1.1 Parámetro por Valor......................................................................................................38

12.1.2 Parámetro por Referencia.............................................................................................38

12.2 Función Void.........................................................................................................................38

1. Tipos de datos1.1 Numéricos enteros

Tipo de Dato

Descripción Número de bytes

Rango

short Entero corto 2 -32768 a 32767int Entero 4 -2147483648

a +2147483647long Entero largo 4 -2147483648

a +2147483647char Carácter 1 -128 a 127

Tipo de Dato Descripción Número de bytes

Rango

signed short Entero corto 2 -32768 a 32767unsigned

shortEntero corto sin

signo2 0 a 65535

signed int Entero 4 -2147483648 a +2147483647unsigned int Entero sin signo 4 0 a 4294967295signed long Entero largo 4 -2147483648 a +2147483647unsigned

longEntero largo sin

signo4 0 a 4294967295

signed char Carácter 1 -128 a 127unsigned

charCarácter sin signo 1 0 a 255

1

1.2 Numéricos reales.

Tipo de Dato Descripción Número de bytes

Rango

float Real (Número en coma flotante)

4 Positivos: 3.4E-38 a 3.4E38

Negativos: -3.4E-38 a -3.4E38

double Real doble(Número en coma flotante de doble precisión)

8 Positivos: 1.7E-308 a 1.7E308

Negativos: -1.7E-308 a -1.7E308

long double Real doble largo 10 Positivos: 3.4E-4932 a 1.1E4932

Negativos: -3.4E-4932 a -1.1E4932

1.3 Lógico

Tipo de

Dato

Descripción Número de bytes

Rango

bool Dato de tipo lógico 1 0, 1

2

2. Juego de caracteres

El juego básico de caracteres de código fuente consta de 96 caracteres que pueden usarse en archivos de código fuente. Este conjunto incluye el carácter de espacio, tabulación horizontal, tabulación vertical, avance de página y caracteres de control de nueva línea, además del siguiente conjunto de caracteres gráficos:

a b c d e f g h i j k l m n o p q r s t u v w x y zA B C D E F G H I J K L M N O P Q R S T U V W X Y Z0 1 2 3 4 5 6 7 8 9_ { } [ ] # ( ) < > % : ; . ? * + - / ^ & | ~ ! = , \ " '

3

3. Declaración de variables

Tipo de variable, nombre de la variable e inicialización.

4

4. Entradas y Salidas4.1 Entrada y Salida C

5

Se utiliza printf para mostrar un mensaje.

4.1.1 fflush, getchar y putchar

6

Se declara “x” y se muestra un mensaje con puts. Se limpia el buffer y a través del getchar se almacena el carácter ingresado por el usuario en la variable “x”. El putchar permite que se muestre el valor del carácter en la salida.

7

4.1.2 printf y scanf

8

Si se desea introducir un número se debe usar “%d” y como regla general el & antes de la variable en el caso del scanf.

9

Si se desea introducir un caracter se debe usar “%c” y como regla general el & antes de la variable en el caso del scanf.

10

Si se desea introducir una cadena se debe usar “%s” y como regla general el & antes de la variable en el caso del scanf.

4.2 Entrada y Salida C++

11

12

Se utiliza cout para imprimir un mensaje y cin para la lectura de datos.

13

3. Keywords

Las palabras claves son identificadores reservados predefinidos que tienen significados especiales. Es decir, que no pueden ser utilizados como identificadores en tu programa.

14

4. Funciones4.1 sizeof

Determina el tamaño en bytes de una variable o tipo de dato.

15

16

5. Tipos de Datos y Requerimientos de Memoria

Nº Instrucciones Resultado y Observaciones1 Escriba el siguiente fragmento de código,

compile y ejecute:int cantidad;cantidad=100;cout<<”valor: “<<cantidad<<endl;cout<<”tamaño: “<<sizeof(cantidad)<<endl;

Aparece el valor que se le asignó a la variable “cantidad” y el tamaño (4 bytes) del tipo de dato (entero) de la variable “cantidad”.

2 Asigne a la variable cantidad el valor 1234567890 e imprima nuevamente la cantidad de bytes que requiere.

Aparece nuevamente que el tamaño requerido por la variable cantidad, cuyo tipo de dato es entero es de 4 bytes.

3 Escriba el siguiente fragmento de código, compile y ejecute:float medida;medida=20.2536;cout<<”valor: “<<medida<<endl;cout<<”tamaño: “<<sizeof(medida)<<endl;

Aparece el valor que se le asignó a la variable “medida” y el tamaño (4 bytes) del tipo de dato (real) de la variable “medida”.

4 Escriba el siguiente fragmento de código, compile y ejecute:char zona;zona=’X’;cout<<”valor: “<<zona<<endl;cout<<”tamaño: “<<sizeof(zona)<<endl;

Aparece el valor que se le asignó a la variable “zona” y el tamaño (1 byte) del tipo de dato (real) de la variable “zona”.

5 Escriba el siguiente fragmento de código, compile y ejecute:char ciudad[25];ciudad=”Managua”;cout<<”valor: “<<ciudad<<endl;cout<<”tamaño: “<<sizeof(ciudad)<<endl;

Aparece error “Asignación del arreglo inválida” debido a que se debe inicializar la variable cuando esta se declara en el caso de que se esté trabajando con dimensiones.

6 Escriba el siguiente fragmento de código, compile y ejecute:double temperatura;temperatura=25.123456789;cout<<”valor: “<<temperatura<<endl;cout<<”tamaño: “<<sizeof(temperatura)<<endl;

Aparece el valor que se le asignó a la variable “temperatura” y el tamaño (8 bytes) del tipo de dato (doble) de la variable “temperatura”.

7 Escriba el siguiente fragmento de código, compile y ejecute:bool estado;estado=false;cout<<”valor: “<<estado<<endl;cout<<”tamaño: “<<sizeof(estado)<<endl;

Aparece el valor de la variable “estado” (0) y el tamaño (1 byte) del tipo de dato (lógico) de la variable “estado”.

17

6. Tratamiento de los tipos por el compilador de C/C++

Nº Instrucciones Resultado y Observaciones1 Escriba el siguiente fragmento de código, compile y

ejecute:int cantidad;cantidad=100;cout<<”valor: “<<cantidad<<endl;

Se muestra el valor de la variable “cantidad”, en este caso 100.

2 Modifique el valor asignado a la variable, compile y ejecutecantidad=25.8945;cout<<”valor: “<<cantidad<<endl;

Se muestra el valor de cantidad pero redondeado, es decir no se muestra la cifra completa.

3 Modifique el valor asignado a la variable, compile y ejecutecantidad=’F’;cout<<”valor: “<<cantidad<<endl;

Se muestra un valor distinto al asignado, en este caso “70”.

4 Modifique el valor asignado a la variable, compile y ejecutecantidad=”Completa”;cout<<”valor: “<<cantidad<<endl;

Aparece que existe un “error: conversión inválido al de const char a int”. Es decir, la declaración correcta sería un const char.

5 Modifique el valor asignado a la variable, compile y ejecutecantidad=True;cout<<”valor: “<<cantidad<<endl;

Se muestra el valor como “1”.

6 Escriba el siguiente fragmento de código, compile y ejecute:float medida;medida=20.2536;cout<<”valor: “<<medida<<endl;

Se muestra el valor de la variable “cantidad”, en este caso 20.2536.

7 Modifique el valor asignado a la variable, compile y ejecutemedida=85;cout<<”valor: “<<medida <<endl;

Se muestra el valor asignado a la variable, en este caso “85”.

8 Modifique el valor asignado a la variable, compile y ejecutemedida=’P’;cout<<”valor: “<<medida <<endl;

Se muestra un valor distinto al asignado, en este caso “80”.

9 Modifique el valor asignado a la variable, compile y ejecutemedida=”Corta”;cout<<”valor: “<<medida <<endl;

Aparece que existe un “error: conversión inválido al de const char a float”. Es decir, la declaración correcta sería un const char.

10 Modifique el valor asignado a la variable, compile y ejecutemedida=True;cout<<”valor: “<<medida <<endl;

Se muestra el valor como “1”.

11 Escriba el siguiente fragmento de código, compile y ejecute:char zona;zona=’X’;cout<<”valor: “<<zona<<endl;

Se muestra el valor asignado a la variable, en este caso ‘X’.

18

Nº Instrucciones Resultado y Observaciones12 Modifique el valor asignado a la variable, compile y

ejecutezona=65;cout<<”valor: “<<zona<<endl;

Se muestra un valor distinto al asignado, en este caso “A”.

13 Modifique el valor asignado a la variable, compile y ejecutezona=95.56;cout<<”valor: “<<zona<<endl;

Se muestra un valor distinto al asignado, en este caso “_”.

14 Modifique el valor asignado a la variable, compile y ejecutezona=”Central”;cout<<”valor: “<<zona<<endl;

Aparece que existe un “error: conversión inválido al de const char a char”. Es decir, la declaración correcta sería un const char.

15 Modifique el valor asignado a la variable, compile y ejecutezona=False;cout<<”valor: “<<zona<<endl;

No se muestra ningún valor.

16 Escriba el siguiente fragmento de código, compile y ejecute:ciudad=”Managua”;cout<<”valor: “<<ciudad<<endl;

Aparece que la variable “ciudad” no fue declarada.

17 Modifique el valor asignado a la variable, compile y ejecuteciudad=25;cout<<”valor: “<<ciudad<<endl;

Aparece que la variable “ciudad” no fue declarada.

18 Modifique el valor asignado a la variable, compile y ejecuteciudad=100.50;cout<<”valor: “<<ciudad<<endl;

Aparece que la variable “ciudad” no fue declarada.

19 Modifique el valor asignado a la variable, compile y ejecuteciudad=’C’;cout<<”valor: “<<ciudad<<endl;

Aparece que la variable “ciudad” no fue declarada.

20 Modifique el valor asignado a la variable, compile y ejecuteciudad=False;cout<<”valor: “<<ciudad<<endl;

Aparece que la variable “ciudad” no fue declarada.

21 Escriba el siguiente fragmento de código, compile y ejecute:double temperatura;temperatura=25.123456789;cout<<”valor: “<<temperatura<<endl;

Se muestra el valor de cantidad pero redondeado, es decir no se muestra la cifra completa. En este caso “25.1235”.

22 Modifique el valor asignado a la variable, compile y ejecutetemperatura=30;cout<<”valor: “<<temperatura<<endl;

Se muestra el valor asignado a la variable, en este caso “30”.

23 Modifique el valor asignado a la variable, compile y ejecutetemperatura=’T’;cout<<”valor: “<<temperatura<<endl;

Se muestra un valor distinto al asignado, en este caso “84”.

19

Nº Instrucciones Resultado y Observaciones24 Modifique el valor asignado a la variable, compile y

ejecutetemperatura=”Caliente”;cout<<”valor: “<<temperatura<<endl;

Aparece que existe un “error: conversión inválido al de const char a double”. Es decir, la declaración correcta sería un const char.

25 Modifique el valor asignado a la variable, compile y ejecutetemperatura=True;cout<<”valor: “<<temperatura<<endl;

Se muestra el valor como “1”.

26 Escriba el siguiente fragmento de código, compile y ejecute:bool estado;estado=false;cout<<”valor: “<<estado<<endl;

Se muestra el valor como “0”.

27 Modifique el valor asignado a la variable, compile y ejecuteestado=100;cout<<”valor: “<<estado<<endl;

Se muestra el valor como “1” y no cómo “100”, los 0 son eliminados en la salida.

28 Modifique el valor asignado a la variable, compile y ejecuteestado=500.85;cout<<”valor: “<<estado<<endl;

Se muestra el valor como “1” y no cómo “500.85”.

29 Modifique el valor asignado a la variable, compile y ejecuteestado=’E’;cout<<”valor: “<<estado<<endl;

Se muestra el valor como “1”.

30 Modifique el valor asignado a la variable, compile y ejecuteestado=”Aceptado”;cout<<”valor: “<<estado<<endl;

Aparece que existe un “error: conversión inválido al de const char a bool”. Es decir, la declaración correcta sería un const char.

20

7. Casting

21

8. Arreglos8.1 Concepto

Los arrays permiten agrupar datos usando un único identificador. Todos los elementos de un array son del mismo tipo, y para acceder a cada elemento se usan índices.

8.2 Sintaxis

<tipo> <identificador>[número de elementos];

22

23

9. Estructuras

Al contrario que los arrays, las estructuras le 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 estructuras son llamadas también muy a menudo registros, o en inglés records. Tienen muchos aspectos en común con los registros usados en bases de datos. Y siguiendo la misma analogía, cada objeto de una estructura se denomina a menudo campo, o field.Sintaxis:

struct [<identificador>]{[<tipo> <nombre_objeto>[nombre_objeto]];}<objeto_estructura>[<objeto_estructura>,…];

24

25

26

10. Ficheros10.1fopen y fclose

El fopen abre el documento cuyo nombre es especificado en el parámetro y el fclose cierra el documento.

"r" Lectura: Abre el archive para operaciones de entrada. El archive debe existir. 

"w"Escritura: Crea un archivo vacío para operaciones de salida. Si el archivo con el mismo nombre ya existe, su contenido es borrado y el archivo es tratado como un archivo nuevo vacío. Es decir, se sobrescribe. 

"a"Añadir: Abre un documento para la salida al final de un documento. Las operaciones de salida siempre escriben datos al final del documento, expandiéndolo. El documento es creado si no existe.

"r+" Lectura/actualización: Abre un documento para actualización (ambos para entrada y salida). El documento debe existir.

"w+"

Escritura/actualización: Crea un archivo vacío y lo abre para actualización (ambos para entrada y salida). Si el archivo con el mismo nombre ya existe, su contenido es borrado y el archivo es tratado como un archivo nuevo vacío. Es decir, se sobrescribe. 

"a+" Añadir/actualización: Abre un archivo para actualización (ambos para entrada y salida. El archivo es creado si no existe.

27

28

Se crea el archivo de forma exitosa y se guardan 3 caracteres en el archivo.

29

Se crea el archivo y se guarda la letra con “fputc”.

30

10.2Rename

31

Se asigna como nuevo nombre de archivo a “new”.

10.3 Remove

32

Se elimina el archivo que se renombró anteriormente.

10.4 fgetc

Esta función lee un carácter a la vez del archivo que está siendo señalado con el puntero *archivo. En caso de que la lectura sea exitosa devuelve el carácter leído y en caso de que no lo sea o de encontrar el final del archivo devuelve EOF.

10.5 fgets

Esta función está diseñada para leer cadenas de caracteres. Leerá hasta n-1 caracteres o hasta que lea un cambio de línea '\n' o un final de archivo EOF. En este último caso, el carácter de cambio de línea '\n' también es leído.

33

10.6 freadEsta función lee un bloque de una "stream" de datos. Efectúa la lectura de un arreglo de elementos "count", cada uno de los cuales tiene un tamaño definido por "size". Luego los guarda en el bloque de memoria especificado por "ptr". El indicador de posición de la cadena de caracteres avanza hasta leer la totalidad de bytes. Si esto es exitoso la cantidad de bytes leídos es (size*count).

10.7 fscanfLa función fscanf funciona igual que scanf en cuanto a parámetros, pero la entrada se toma de un fichero en lugar del teclado.El prototipo correspondiente de fscanf es:int fscanf(FILE *fichero, const char *formato, argumento, ...);

34

10.8fwriteEsta función está pensada para trabajar con registros de longitud constante y forma pareja con fread. Es capaz de escribir hacia un fichero uno o varios registros de la misma longitud almacenados a partir de una dirección de memoria determinada. El valor de retorno es el número de registros escritos, no el número de bytes. Los parámetros son: un puntero a la zona de memoria de donde se obtendrán los datos a escribir, el tamaño de cada registro, el número de registros a escribir y un puntero a la estructura FILE del fichero al que se hará la escritura.

10.9ftellLa función ftell retorna el valor del indicador de posición de fichero para el stream, si se tiene éxito. Si falla, la función ftell retorna -1L y guarda un valor positivo, según la definición de la implementación, en errno.

35

11. Sentencias de control

11.1 if La sentencia if («si») ejecuta las instrucciones sólo si se cumple una condición. Si la condición es falsa, no se hace nada:

if (condición)

{

sentencias

}

11.2 if elseLa sentencia if-elif-else depende de dos o más condiciones, que son evaluadas en orden. La primera que es verdadera determina qué instrucciones serán ejecutadas:

if (condición)

{

sentencias

}

else {

}

11.3 whileEl ciclo while («mientras») ejecuta una secuencia de instrucciones mientras una condición sea verdadera:

while (condición)

{

sentencias

}

36

11.4 forEl ciclo for con rango ejecuta una secuencia de sentencias una cantidad fija de veces.

Para llevar la cuenta, utiliza una variable de control que toma valores distintos en cada iteración.

for (int i, i<5, i++)

{

sentencias

}

11.5 do whileEn un bucle do while, primero se ejecuta el bloque de instrucciones y, después, se evalúa la condición. En el caso de que ésta sea verdadera, se vuelve a ejecutar el bloque de instrucciones. Y así sucesivamente, hasta que, la condición sea falsa.

do {

sentecias }

while (condición)

37

38

39

12. Funciones

<tipo> [clase::] <nombre> ( [Parámetros] )

{

cuerpo;

}

12.1 Parámetros12.1.1 Parámetro por Valor

El parámetro original no sufrirá cambio alguno, esto seguirá siendo cierto aún cuando dentro de la función hubiera una instrucción parecida

12.1.2 Parámetro por Referencia

Se cambia el valor del parámetro original.

12.2 Función VoidLa palabra reservada void es utilizada para declarar funciones sin valor de retorno y también para indicar que una función específica no requiere de parámetros.

40