WebQuest

Introducción al lenguaje de programación C++

Procesos

20180926021349LavyB.png

Características del Lenguaje C++

1.-Tiene un conjunto completo de instrucciones de control.
2.-Permite la agrupación de instrucciones.
3.-Incluye el concepto de puntero (variable que contiene la dirección de otra variable).
4.-Los argumentos de las funciones se transfieren por su valor.
5.- E/S no forma parte del lenguaje, sino que se proporciona a través de una biblioteca de funciones.
Permite la separación de un programa en módulos que admiten compilación independiente.
Originalmente el Lenguaje C estuvo muy ligado al sistema operativo UNIX como se había mencionado antes que, en su mayor parte, está escrito en C. Más adelante se comenzó a utilizar en otros sistemas operativos para programar editores, compiladores, etc.


Sintaxis de Algunos Elementos de Un Programa en C

Como su nombre lo indica, estos son los nombres, con los que identificamos las variables, constantes, funciones, vectores, etc, de nuestro programa. Para ello debemos tener presente algunas reglas:

-pueden tener de 1 hasta un máximo de 31 caracteres

-Debe de iniciar con una letra o subrayado

Ejemplo:
(Correctos)
c2
_c2
( Incorrectos)
2c
2 c

-No es lo mismo una minúscula que una mayúscula, ya que c distingue de entre ellas. Ejemplo: BETA ¹ Beta ¹ beta ¹ BeTa

-No son válidos los identificadores de palabras reservadas. En un inicio hablamos que c posee 32 palabras reservadas, entre ellas están:

float char while

int else return

Estas palabras no pueden ser utilizadas para identificar variables, constantes, funciones etc

b. identificadores:

En todo programa que estemos diseñando en C (o en cualquier otro lenguaje de programación); es necesario insertar ciertos comentarios en el código, para que en posteriores modificaciones y cuando se realice el mantenimiento, podamos recordar cosas importantes ya que, en los comentarios, podemos incluir aspectos importantes del programas, explicaciones del funcionamiento de las sentencias, etc.

El formato de los comentarios en C, es el siguiente:

/*este es un comentario en C */

/*Podemos colocar mucha información importante

de nuestro Programa */

c. Comentarios
Permite que, el pre-procesador, incluya funciones proporcionadas por el fabricante, a nuestro programa. Ejemplo:

#include /* le decimos al compilador que incluya la librería

stdio.h */

d. La Directiva #include :
permite definir constantes simbólicas. Pero hasta ahora ha sido poco lo que hemos hablado acerca de las constantes, es por ello que en aprovechando, este especio; dedicaré unas cuantas líneas para aclarar ello.

Las variables pueden cambiar de valor, durante la ejecución del programa, por eso es que se llaman variables. Y las constantes como su nombre lo indica, son valores que permanecen constantes durante toda la ejecución del programa, un ejemplo de ello, es el valor de p (pi) que equivale a 3.14159....

En C existen diferentes tipos de variables, entre ellas tenemos:

1. Constates Numéricas:

Son valores numéricos, enteros o de reales (de punto flotante). Se permiten también constantes octales y hexadecimales.

2. Constantes Simbólicas:

las constantes simbólicas tiene un nombre (identificador), y en esto se parecen las variables. Sin embargo, no pueden cambiar de valor a lo largo de la ejecución del programa. En C, se pueden definir mediante el preprocesador.

(Tomado del Manual "Aprenda Lenguaje ANSI C como si estuviera en Primero" Escuela superior de Ingenieros Industriales. Universidad de Navarra. Febrero de 1998).

Ejemplo
:

#define N 100

#define PI 3.1416

#define B 45

Esta directiva (#define) va, inmediatamente después de los #include. Se escribe la directiva, se deja un espacio y se escribe el identificador de la constante, otro espacio y su valor.

e. la directiva #define
/ ! % ^ & * () - + {} [] \ ; : <> ¿ .

Signos de Puntuación y de Separación
Al momento de programar en C, esta es una regla de oro, y la causa por la cual nuestro programa puede darnos muchos errores de sintaxis, cuando se omite, al final de cada sentencia un punto y coma (;). Ya que con ello le indicamos al compilador que ha finalizado una sentencia.

NOTA: el lector no debe confundirse, las directivas: #include, #define. Main(), no llevan punto y coma, por que no son sentencias.

Recordemos el ejemplo 1.1, y vea que al final de cada sentencia lleva su correspondiente punto y coma:

#include

#include

main()

{ float radio, area;

printf("Radio=\n");

scanf("%f", &radio);

area=3.14159*radio*radio;

printf("El Area es %f\n\n", area);

getch();

return 0; }

g. Todas las Instrucciones o sentencias del programa terminan con un punto y coma (;)
Esta consideración toma mayor auge, cuando veamos las instrucciones anidadas en condiciones, ciclos, etc.

Ejemplo:

{ ... printf("Hola\n\b"); ... }

h. Todo Bloque de Instrucciones debe ir entre llaves
i. En una línea se pueden escribir más de una instrucción separada por un punto y coma
Esto es posibles, por que con el punto y coma, le estamos indicando al compilador el fin de una sentencia o instrucción.

Ejemplo:

b = c + d; d = 2*k;


Tipos de Datos en C

Un tipo de dato, se define como un conjunto de valores que puede tener una variables, junto con ciertas operaciones que se pueden realizar con ellas

tres tipos de datos básicos: 

- Números enteros definidos con la palabra clave int

- Letras o caracteres definidos con la palabra clave char

- Números reales o en coma flotante definidos con las palabras claves float o double

Enteros
Se definen con “int” y admiten de forma opcional dos prefijos modificadores:

“short” y “long”: Modifica el tamaño en bits del entero. Existen por tanto tres tipos de enteros: “int”, “short int” (que se puede abreviar como “short”), y “long int” (que se puede abreviar como “long”).

El lenguaje C no define tamaños fijos para sus tipos de datos básicos. Lo único que garantiza es que un short int tiene un tamaño menor o igual que un int y este a su vez un tamaño menor o igual a un long int. Esta característica del lenguaje ha complicado la creación de programas que sean compatibles entre varias plataformas.

“unsigned”: define un número natural (mayor o igual a cero).

Letras y cadenas
Las variables de tipo letra se declaran como “char”. Para referirse a una letra se rodea de comillas simples: 'M'. Como las letras se representan internamente como números, el lenguaje C permite realizar operaciones aritméticas como 'M' + 25.

Las cadenas de texto o strings son simplemente tablas de “char”. Las funciones de biblioteca para manipular estas cadenas asumen que el último byte tiene valor cero. Las cadenas de texto se escriben en el programa rodeadas de dobles comillas y contienen el valor cero al final. 

Números reales
Los números reales se definen con “float” o “double”. La diferencia entre ambas es la precisión que ofrece su representación interna. Hay un número infinito de reales, pero se representan con un número finito de bits. A mayor número de bits, mayor número de reales se representan, y por tanto, mayor precisión. Los reales definidos con “double” tienen un tamaño doble a los definidos con “float”. Al igual que en el caso de los enteros, el tamaño de estas representaciones varía de una plataforma a otra.

Algunas plataformas ofrecen números reales con tamaño mayor al “double” que se definen como “long double”. Los tamaños típicos para los tipos “float”, “double” y “long double” son 4, 8 y 12 bytes respectivamente.

Tablas
Las tablas en C son prácticamente idénticas a las de Java, con el tamaño entre corchetes a continuación del nombre. Al igual que en Java, los índices de la tabla comienzan por cero.

Los elementos de la tabla se acceden con el nombre de la tabla seguido del índice entre corchetes.

Una de las diferencias entre C y Java es que el acceso a una tabla en C no se verifica. Cuando se ejecuta un programa en Java si se accede a una tabla con un índice incorrecto, se genera una excepción de tipo “ArrayIndexOutOfBounds”. Estas comprobaciones no se hacen nunca en C (a no ser que se escriban explícitamente en el programa). Si se accede a una tabla con un índice incorrecto se manipulan datos en una zona de memoria incorrecta y el programa continua su ejecución.

Tras este acceso incorrecto pueden suceder dos cosas. La primera es que la memoria a la que ha accedido por error esté fuera de los límites del programa. En este caso la ejecución termina de manera abrupta y en el intérprete de comandos se muestra el mensaje “segmentation fault”. La otra posibilidad es que se acceda a otro lugar dentro de los datos del programa. Esta situación seguramente producirá un error cuyos síntomas sean difíciles de relacionar con el acceso incorrecto.

Tablas de múltiples dimensiones
C permite la definición de tablas de múltiples dimensiones escribiendo los diferentes tamaños rodeados de corchetes y concatenados. El acceso se realiza concatenando tantos índices como sea preciso rodeados de corchetes. Al igual que en el caso de las tablas unidimensionales, no se realiza ningún tipo de comprobación de los índices cuando se accede a un elemento.

Tamaño de los tipos de datos básicos
En C, el tamaño de los tipos de datos básicos puede variar de una plataforma a otra. Esta característica está detrás de buena parte de las críticas que recibe este lenguaje, pues de ella se derivan problemas de compatibilidad (una aplicación se comporta de forma diferente cuando se ejecuta en plataformas diferentes).


Declaración de Variables

Una Variable, como su nombre lo indica, es capaz de almacenar diferentes valores durante la ejecución del programa, su valor varía. Es un lugar en la memoria el cual, posee un nombre (identificador), y un valor asociado.


La declaración de variables en C, se hace en minúsculas.

Formato:

Tipo_de_dato nombre_de_la_variable;

Ejemplos:

*Declare una variable de tipo entero y otra de tipo real, una con el nombre de "x" y otra con el identificador "y":

int x;

float y;

*Declare una variable de tipo entero llamada moon, e inicialícela con un valor de 20

int x = 20;

*Declare una variable de tipo real, llamada Pi, e inicialícela con una valor de 3.1415

float pi=3.1415;

*Declare una variable de tipo caracrter y asígnele el valor de "M"

char car = ’M’;

*Declare una variable llamada nombre, que contenga su nombre:

char nombre[7]="Manuel";

Explicación:
En el apartado anterior, se explicó, que C, no tiene el tipo de dato llamado string, o mejor conocido como cadenas de texto, pero nosotros podemos hacer uso de ellas, por medio de un arreglo, (de lo cual hablaremos con más detalle, posteriormente); pero para declarar este tipo de datos colocamos el tipo de datos, es decir la palabra reservada char luego el nombre, e inmediatamente abrimos, entre corchetes, va el número de letras, que contendrá dicha variable. Es muy importante que al momento de declarar el tamaño, sea un número mayor, al verdadero número de letras; por ejemplo, la palabra "Manuel", solo tiene 6 letras, pero debemos declararlo para 7 letras ¿Por qué?.

Veámoslo gráficamente, en la memoria, C crea un variable llamada nombre y esta posee la palabra Manuel, así:



en realidad, hay 7 espacios, pero la cuanta llega hasta 6, por que c, toma la primera posición como la posición cero, y para indicar el final de la cadena lo hace con un espacio en blanco.


Declaración de Constantes

Las constantes, como su nombre lo indica, son valores que se mantiene invariables durante la ejecución del programa.
Su formato es el siguiente:

const tipo_de_dato nombre= valor;

donde const, es una palabra reservada, para indicarle al compilador que se esta declarando una constante.

Ejemplo:

const int dia=7;

const float pi=3.14159;

const char caracter= ‘m’;

const char fecha[]="25 de diciembre";

Caso Especial Constantes Simbólicas

Las constantes simbólicas, se declaran mediante la directiva #define, como se explicó anteriormente. Funcionan de la siguiente manera, cuando C, encuentra el símbolo que representa a la constante, lo sustituye por su respectivo valor.

Ejemplo:

#define N 150

#define PI 3.1416

#define P 50

NOTA: El lector debe comprender algunas diferencias fundamentales entre la declaratoria const y #define; la primera, va dentro del programa, es decir, dentro de la función main() o alguna función definida por el usuario, mientras que #define va en el encabezado, después de los #include, por eso estas no llevan al final el punto y coma (;).


Entrada y Salida Por Consola

Entrada y Salida por consola: se refiere a las operaciones que se producen en el teclado y en la pantalla de la computadora. En C no hay palabras claves para realizar las acciones de Entrada/Salida, estas se hacen mediante el uso de las funciones de la biblioteca estándar (stadio.h).

Para utilizar las funciones de E / S debemos incluir en el programa el archivo de cabecera stdio.h, mediante la declaratoria:

#include

Las Funciones de E / S más simples son getchar() que lee un carácter del teclado, espera un retorno de carro (¿ ), es decir un enter y el eco aparece. Es decir la tecla presionada.

*putchar(): Imprime un carácter en la pantalla, en la posición actual del cursor.

Algunas variaciones:

*getche(): Aparece el Eco

*getch(): No aparece el eco

estas instrucciones se encuentran en la biblioteca conio.h

Ejemplos:

Programa que espera que se presiona una tecla, la muestra en pantalla, y además muestra el carácter siguiente:

Ejemplo :

#include

#include

main()

{ char car;

clrscr(); /*Se encarga de borrar la pantalla por eso se llama claer screen*/

car=getchar();

putchar(car+1);

getch();

return 0; }

Ejemplo 2:

#include

#include

main()

{ char x; /*Declaramos x como caracter*/

printf("Para Finalizar Presione cualquier Tecla:");

x= getchar();/*Captura y muestra el caracter presionado*/

getch();/*Espera a que se presione cualquier otra tecla para finalizar*/

return 0; }

Entrada y Salida de Cadenas

Una Cadena, es una frase, compuesta por varias palabras. En C, podemos hacer uso de las cadenas, mediante, la sentencia:

*gets(): Lee una cadena de carácter introducido por el teclado. Se puede introducir caracteres hasta que se de un retorno de carro, (enter); el cual no es parte de la cadena; en su lugar se coloca un terminador nulo \0.

*puts(): Imprime en pantalla, el argumento guardado en la variable que se manda a impresión.



Ejemplo:

Diseñe un programa en C, que lea su nombre; lo salude y mande a impresión su nombre, usando gets e y puts

#include

#include

main()

{ char nombre[40];

puts("digite su nombre:");

gets(nombre);

puts("BIENVENIDO:");

puts(nombre);

getch();

return 0; }

Secuencias de Escapes

Indica que debe ejecutar algo extraordinario.

Secuencia                                                                                    Valor
\n                                               Nueva línea (new line). El cursor pasa a la primera posición de la línea siguiente
\r                                                (carriage return). El cursor pasa a la primera posición de la línea donde nos  encontremos.
\t                                                Tabulador. El cursor pasa a la siguiente posición de tabulación.
\a                                               Alerta. Crea un aviso bien de forma visible o bien mediante sonido.
\b                                               Espacio atrás (backspace). Hace retroceder el cursor una posición a la izquierda.                               

\f                                                Alimentación de página (form feed). Crea una nueva página.

\\                                                Muestra la barra invertida.
\”                                                Muestra la comilla doble.
\?                                                Muestra un interrogante.
\número_octal                         Muestra el carácter ASCII correspondiente según el número octal que se haya especificado.
\xnúmero_hexadecimal         Muestra el carácter ASCII correspondiente según el número hexadecimal que se haya especificado.
\v                                                Tabulación vertical.
\'                                                 Apóstrofo o comilla simple.


Cadena de Control

Las cadenas de caracteres (también llamadas cadenas o strings) son un tipo particular de vectores, que como su nombre lo dice son vectores de char, con la particularidad que tienen una marca en el fin del mismo (el caracter '\0'), además el lenguaje nos permite escribirlas como texto dentro de comillas dobles si son simples no. 


Ejemplo:

char cadena_hola[]="Hola";
char otro_hola[]={'H','o','l','a','\0'}; // Igual al anterior
char vector[]={'H','o','l','a'}; /* Un vector de 4 elementos,
con los elementos 'H','o','l' y 'a' */
char espacio_cadena[1024]="Una cadena en C";
char cadena_vacia[]="";


Operadores lógicos


Estos son los que nos permiten unir varias comparaciones: 10>5 y 6==6. Los operadores lógicos son: AND (&&), OR (||), NOT(!).


Ejemplo:

Operador ! (NOT, negación): Si la condición se cumple NOT hace que no se cumpla y viceversa.
Operador || (OR, en castellano O): Devuelve un 1 si se cumple una de las dos condiciones.

printf( "Resultado: %i", (10==10 && 5>2 );

Operador && (AND, en castellano Y): Devuelve un 1 si se cumplen dos condiciones.


Operadores Aritméticos


Los operadores aritméticos son aquellos que "manipulan" datos numéricos, tanto enteros como reales. Hay 2 tipos de operadores aritméticos: unarios y binarios. Los operadores unarios se anteponen a la expresión aritmética, y son los operadores de signo. Los operadores binarios se sitúan entre 2 expresiones aritméticas.


Ejemplo:

Operadores aritméticos binarios

admiten expresiones enteras y reales a excepción de div y mod, que sólo admiten expresiones enteras, por lo que devuelven expresiones enteras. En el caso de los otros operadores, si los 2 operados a los que afecta son enteros, la expresión resultante será entera, pero si alguno o ambos son reales, la expresión resultado es de tipo real.


Operador    Operación 

mod              Módulo (resto)  
div                 División entera 
/                     División                                                                                                                                                                                               *                    Multiplicación                                                                                                                                                                                      -                      Resta                                                                                                                                                                                                    +                     Suma                


Operadores aritméticos  unarios

Los operadores unarios devuelven expresiones del mismo tipo que la expresión a la que afectan.

Operador    Operación
-                     Signo negativo
+                    Signo positivo


Operadores Unarios:


incluye una clase de operadores que actúan sobre un solo operador para producir un nuevo valor. Por eso el nombre de unarios, por que para poder funcionar solo necesitan de un operador.


 Operador   Propósito 

                                                                                                                                                                                                                                   Operador Decremento: Hace que su variable, constante o expresión disminuya en uno

--

Operador Incremento: Hace que la variable, constante o expresión se aumente en uno.

++

Menos Unario: Es el signo menos que va delante de una variable, constante o expresión.

-



Operadores asignación:


Donde el identificador representa por lo general una variable y una constante, una variable o una expresión más compleja.
identificador = expresión;

Se utilizan en forma de expresiones de asignación en los que se asigna en el valor de una expresión a un identificador. El operador de asignación más utilizado es "=" y su formato es:

Los Operadores de Asignación, como su nombre lo indica, se encargan de atribuirle, asignarle, confinarle, etc a una variable, el resultado de una expresión o el valor de otra variable.


Ejemplo: 


*Un valor en coma flotante puede ser truncado, se asigna a un identificador entero.

*Un valor de doble precisión puede ser redondeado si se asigna a un identificador de coma flotante.

En C, están permitidas las asignaciones múltiples, así:

Identificador1 = identificador2 = identificador3.....= identificadorn=expresión

C, posee además los siguientes operadores de asignación:


Operador  Explicación 

P%n. Equivale a: p=p%


%=

K/=m, equivale a: k=k/m

/=

J*=2. Equivale a: j=j*2

*=

i-=1. equivale a: i=i-1

-=

Expresión1+=expresión2. Equivale a: expresión1=expresión1 + expresión2

+=














The Public URL for this WebQuest:
http://zunal.com/webquest.php?w=388485
WebQuest Hits: 570
Save WebQuest as PDF

Ready to go?

Select "Logout" below if you are ready
to end your current session.