Lenguaje C

25
Fases para programar en C Para empezar debemos definir que es un programa. Un programa puede entenderse como la forma de expresar la solución a un problema de manera que sea comprensible para el ordenador. En otras palabras, un programa es un conjunto ordenado de instrucciones que se dan a la computadora indicando el conjunto de operaciones o tareas que se desea llevar a cabo. Una instrucción es un conjunto de símbolos que representa una orden de operación o tratamiento para el ordenador. A la hora de crear un programa, hay que tener en cuenta los siguientes pasos: 1. Realizar un análisis del problema definiendo los requisitos a los que se deben dar solución. 2. Diseñar y verificar el algoritmo que se va a seguir para solucionar el problema. 3. Se codifica el algoritmo diseñado anteriormente en un lenguaje de programación. 4. Se traduce el código fuente escrito a código maquina empleando compiladores, generándose de esta manera el programa ejecutable por el ordenador. 5. Se comprueba que el programa generado funciona correctamente. En caso de encontrar algún error, se depura el código (solución a los problemas). 6. Se realiza la documentación del programa realizado. Palabras reservadas Lenguaje C C utiliza ciertos nombres para designar funciones, dichos nombres se conocen como palabras reservadas. Una variable no puede llamarse igual que una palabra reservada. C cuenta con 48 palabras reservadas, estas son: 1 auto Modificador que indica que una vble local se crea al inicio de la ejecución de la función y se destruye al final

description

Que es y como funciona C

Transcript of Lenguaje C

Page 1: Lenguaje C

Fases para programar en CPara empezar debemos definir que es un programa. Un programa puede entenderse como la forma de expresar la solución a un problema de manera que sea comprensible para el ordenador. En otras palabras, un programa es un conjunto ordenado de instrucciones que se dan a la computadora indicando el conjunto de operaciones o tareas que se desea llevar a cabo.

Una instrucción es un conjunto de símbolos que representa una orden de operación o tratamiento para el ordenador.

A la hora de crear un programa, hay que tener en cuenta los siguientes pasos:

1. Realizar un análisis del problema definiendo los requisitos a los que se deben dar solución.

2. Diseñar y verificar el algoritmo que se va a seguir para solucionar el problema.

3. Se codifica el algoritmo diseñado anteriormente en un lenguaje de programación.

4. Se traduce el código fuente escrito a código maquina empleando compiladores, generándose de esta manera el programa ejecutable por el ordenador.

5. Se comprueba que el programa generado funciona correctamente. En caso de encontrar algún error, se depura el código (solución a los problemas).

6. Se realiza la documentación del programa realizado.

Palabras reservadas Lenguaje C C utiliza ciertos nombres para designar funciones, dichos nombres se conocen como palabras reservadas. Una variable no puede llamarse igual que una palabra reservada. C cuenta con 48 palabras reservadas, estas son:

1auto

Modificador que indica que una vble local se crea al inicio de la ejecución de la función y se destruye al final

2 break Provoca que se termine la ejecución de una iteración o para salir de la sentencia switch

3 case Sentencia que hace parte de cada uno de los casos del switch

4 char Tipo de dato carácter (normalmente 1Byte)

5 constDefine variables cuyo valor debe permanecer constante durante toda la ejecución del programa

6continue

Provoca que se comience una nueva iteración, evaluándose la expresión de control

7 default Es el caso por defecto que se ejecuta si dentro del switch no concuerda ninguno de los casos definidos

Page 2: Lenguaje C

8do

Variación del while donde primero se ejecuta y después se procede a evaluar la expresión de control

9 double Tipo de dato flotante (real) (normalmente 8Bytes)

10else

Es la segunda parte de un condicional if, se ejecuta cuando no se cumpla la primer condición

11enum

Permite declarar valores de datos que se ajustan a series ordenadas en las cuales un elemento sigue, o precede, a otro.

12extern

Define que existe una variable global que está definida en otro archivo fuente

13 float Tipo de dato flotante (real) (normalmente 4Bytes)

14for

Sentencia de control iterativa, que permite inicializar los controles de un ciclo mediante la estructura: for ( Inicialización; Condición; Actualización)

15 goto

Instrucción de control de salto que permite realizar saltos en el flujo de control de un programa, es decir, permite transferir el control del programa, alterando bruscamente el flujo de control del mismo.

16 if Sentencia de control básica en la que se evalúa una expresión condicional17 int Tipo de dato entero con signo (normalmente 2 o 4Bytes)18 long Tipo de dato entero largo con signo (normalmente 4Bytes)

19 registerModificador es aplicable únicamente a variables locales e indica al compilador que esta variable debe ser almacenada permanentemente en un registro del procesador del ordenador

20 return Indica a una función el valor que debe devolver

21 short Tipo de dato entero corto con signo (normalmente 2Bytes)

22 signed Modificador que indica que el tipo dato con signo

23 sizeof Operador que nos permite obtener el tamaño de un tipo o de una variable.

24static

Modificador que indica que una variable local no se destruye al finalizar la función donde fue declarada

25 struct Un registro que agrupa distintos tipos de datos en una misma estructura (sin solapamiento entre sus datos).

26 switchSentencia de control básica en la cual se evalúa una expresión, y definiendo una serie de opciones (casos) para su ejecución

27 typedefUtilizada para renombrar tipos de datos con el fin de que la escritura y lectura del programa se nos haga más sencilla

Page 3: Lenguaje C

28 unionAnáloga a una estructura. La diferencia entre ambas es que los campos que especifiquemos en una union ocupan todos la misma posicion de memoria (solapamiento entre sus datos).

29 unsigned

Modificador que indica que el tipo dato sin signo

30void

Tipo de dato que puede representar: Nada (para funciones) o cualquier tipo de dato (para punteros).

31volatile

Modificador que indica al compilador que el valor de una variable se puede cambiar por medios externos (no especificados) al programa

32 while Sentencia de control iterativa, que evalúa una condición para su control.

ASCIIASCII (acrónimo inglés de American Standard Code for Information Interchange) como una refundición o evolución de los conjuntos de códigos utilizados entonces en telegrafía. Más tarde, en 1967, se incluyeron las minúsculas, y se redefinieron algunos códigos de control para formar el código conocido como US-ASCII.

El código ASCII utiliza 7 bits para representar los caracteres, aunque inicialmente empleaba un bit adicional (bit de paridad) que se usaba para detectar errores en la transmisión. A menudo se llama incorrectamente ASCII a otros códigos de caracteres de 8 bits, como el estándar ISO-8859-1, que es una extensión que utiliza 8 bits para proporcionar caracteres adicionales usados en idiomas distintos al inglés, como el español.

ASCII fue publicado como estándar por primera vez en 1967 y fue actualizado por última vez en 1986. En la actualidad define códigos para 32 caracteres no imprimibles, de los cuales la mayoría son caracteres de control que tienen efecto sobre cómo se procesa el texto, más otros 95 caracteres imprimibles que les siguen en la numeración (empezando por el carácter espacio).

Casi todos los sistemas informáticos actuales utilizan el código ASCII o una extensión compatible para representar textos y para el control de dispositivos que manejan texto como el teclado. No deben confundirse los códigos ALT + número de teclado con los códigos ASCII.

VariableUna variable está formada por un espacio en el sistema de almacenaje (memoria principal de un ordenador) y un nombre simbólico (un identificador) que está asociado a dicho espacio. Ese espacio contiene una cantidad o información conocida o desconocida, es decir un valor. El nombre de la variable es la forma usual de referirse al valor almacenado: esta separación entre nombre y contenido permite que el nombre sea usado independientemente de la información exacta que representa. El identificador, en el código fuente de la computadora puede estar ligado a un valor durante el tiempo de ejecución y el valor de la variable puede por lo tanto cambiar durante el curso de la ejecución del programa. El concepto de variables en computación puede no corresponder directamente al concepto de variables en matemática. El

Page 4: Lenguaje C

valor de una variable en computación no es necesariamente parte de una ecuación o fórmula como en matemáticas. En computación una variable puede ser utilizada en un proceso repetitivo: puede asignársele un valor en un sitio, ser luego utilizada en otro, más adelante reasignársele un nuevo valor para más tarde utilizarla de la misma manera. Procedimientos de este tipo son conocidos con el nombre de iteración. En programación de computadoras, a las variables, frecuentemente se le asignan nombres largos para hacerlos relativamente descriptivas para su uso, mientras que las variables en matemáticas a menudo tienen nombres escuetos, formados por uno o dos caracteres para hacer breve en su transcripción y manipulación.

El espacio en el sistema de almacenaje puede ser referido por distintos identificadores diferentes. Esta situación es conocida entre los angloparlantes como "aliasing" y podría traducirse como "sobre nombramiento" para los hispanoparlantes. Asignarle un valor a una variable utilizando uno de los identificadores cambiará el valor al que se puede acceder a través de los otros identificadores.

Los compiladores deben reemplazar los nombres simbólicos de las variables con la real ubicación de los datos. Mientras que el nombre, tipo y ubicación de una variable permanecen fijos, los datos almacenados en la ubicación pueden ser cambiados durante la ejecución del programa.

FunciónConjunto de líneas de código que realizan una tarea específica y puede retornar un valor. Las funciones pueden tomar parámetros que modifiquen su funcionamiento. Las funciones son utilizadas para descomponer grandes problemas en tareas simples y para implementar operaciones que son comúnmente utilizadas durante un programa y de esta manera reducir la cantidad de código. Cuando una función es invocada se le pasa el control a la misma, una vez que esta finalizó con su tarea el control es devuelto al punto desde el cual la función fue llamada.

SentenciaLas sentencias de programación suelen tener algún carácter que determina su final, por lo general es un punto y coma (;) o un punto final (.), y algunas están separadas simplemente por enters (retorno de carro). Esto depende del lenguaje de programación que se esté empleando. Existen lenguajes que no necesitan un carácter que determine el final de una sentencia.

En algunos lenguajes de programación las sentencias están numeradas, de esta manera, si existe algún error de sintaxis (o alguna advertencia), el compilador entrega un mensaje con el número de sentencia donde fue encontrado.

Una sentencia de programación tiene una sintaxis y una semántica. La sintaxis está determinada por el lenguaje de programación y, si existe algún error, el compilador suele detectarlo. También una sentencia tiene una semántica, si existe algún error de semántica, en general, no puede ser descubierto por el compilador. Esto es porque la semántica está asociada al "significado" o "función" de esa sentencia (o un grupo de sentencias), pero el compilador no puede determinar qué quiere hacer el programador.

Page 5: Lenguaje C

Secuencia de escapeLas combinaciones de caracteres que consisten en una barra diagonal inversa (\) seguida de una letra o una combinación de dígitos se denominan "secuencias de escape". Para representar un carácter de nueva línea, una comilla simple u otros caracteres de una constante de caracteres, debe utilizar secuencias de escape. Una secuencia de escape se considera un carácter individual y por tanto es válida como constante de caracteres.

Las secuencias de escape se suelen utilizar para especificar acciones como retornos de carro y movimientos de tabulación en terminales e impresoras. También se emplean para proporcionar representaciones literales de caracteres no imprimibles y de caracteres que normalmente tienen significados especiales, como las comillas dobles ("). En la tabla siguiente se enumeran las secuencias de escape ANSI y lo que representan.

Tenga en cuenta que el signo de interrogación precedido de una barra diagonal inversa (\?) especifica un signo de interrogación literal en aquellos casos en los que la secuencia de caracteres se malinterpretaría como un trígrafo.

Secuencia de escape

Representa

\a Campana (alerta)

\b Retroceso

\f Avance de página

\n Nueva línea

\r Retorno de carro

\t Tabulación horizontal

\v Tabulación vertical

\' Comilla simple

\ " Comillas dobles

\\ Barra diagonal inversa

\? Signo de interrogación literal

Page 6: Lenguaje C

\ ooo Carácter ASCII en notación octal

\x hh Carácter ASCII en notación hexadecimal

\x hhhh Carácter Unicode en notación hexadecimal si esta secuencia de escape se utiliza en una constante de caracteres anchos o un literal de cadena Unicode.

#define

La directiva #define define una macro. Las macros proporcionan un mecanismo de reemplazo de tokens con o sin una serie de parámetros formales (parecidos a las funciones). Esta similitud con las funciones hace que en ocasiones sirvan para una especie de sustitución inline, aunque esta práctica presenta sus riesgos.

Su sintaxis es la siguiente:

#define macro_identificador <secuencia-de-tokens>

Cada ocurrencia del macro_identificador en el código fuente es reemplazado en su misma posición por secuencia-de-tokens, que puede estar incluso vacío. Por ejemplo:

#define HOLA "Que tengas buen día!"

Cada vez que el macro identificador HOLA aparezca en el fuente será sustituido por la cadena señalada (hay algunas excepciones que se comentan a continuación). Esta sustitución es denominada macro-expansión, y la secuencia-de-tokens se denomina cuerpo de la macro.

Es tradición en C/C++ que los macro-identificadores sean expresados en mayúsculas:

#define adios "espero verte pronto" // no es muy "C"#define ADIOS "espero verte pronto" // Mejor!!

Las directivas de preprocesador no terminan en punto y coma ;.

Por ejemplo:

#define T int;...T* ptr = new T [10]; // Error !!

La sentencia anterior no es traducida a:

Page 7: Lenguaje C

int* ptr = new int [10];

como podría suponerse. Sino a:

int;* ptr = new int; [10];

La acción de la macro comienza en el punto de su definición hasta el final del fichero, sin embargo esta asociación entre el cuerpo de la macro (secuencia-de-tokens) y la etiqueta (macro_identificador) es reversible. Es decir, se puede hacer desaparecer en cualquier punto (#undef). Además, después que un macro_identificador ha sido indefinido, puede ser redefinido con #define, usando el mismo cuerpo de macro u otro distinto.

Ejemplo:

#include <iostream.h>

int main() { // ============= int x = 10; cout << "Valor x == " << x << endl;

#define x 13 cout << "Valor x == " << x << endl;

#undef x cout << "Valor x == " << x << endl;}

Salida:

Valor x == 10Valor x == 13Valor x == 10

Puntuadores

Los signos de puntuación del lenguaje C++ juegan el mismo papel que sus homónimos en el lenguaje natural escrito. Conocidos también como puntuadores, son los que se citan a continuación. La mayoría de ellos tienen un doble uso y en ocasiones funcionan también como operadores.

[ ] ( ) { } , ; : ... * = # ! % ^ & – + | ~ \ ' " < > ? . /

Corchetes [ ]

Los corchetes indican subíndices de matrices uni y multi dimensionales.

char ch, str[] = "Cadena de caracteres";int mat[3][4]; // Matriz de 3 x 4ch = str[3]; // cuarto elemento

Page 8: Lenguaje C

Paréntesis ( )

Los paréntesis sirven para agrupar expresiones; alterar la precedencia normal de los operadores y su asociatividad; aislar expresiones condicionales; indicar llamadas a funciones, y señalar los parámetros de estas. La sintaxis de C++ exige indefectiblemente el uso de paréntesis en múltiples ocasiones. En los ejemplos que siguen se muestran algunos usos.

d = c * (a + b); // modifica la precedencia normal if (d == z) ++x; // imprescindible en la sentencia if for (x =1; x<10; x++) // imprescindible en la sentencia for func(); // señala llamada a función int func(); // declara función int (*fptr)(); // declara puntero a función fptr = func; // asigna valor al puntero.

Observe que en el último caso, la ausencia de paréntesis equivale a &func.

Se recomienda el uso de paréntesis en las macro-definiciones para evitar problemas potenciales en la expansión. Por ejemplo:

#define CUBO(x) ((x) * (x) * (x))

Llaves { }

Los pares de llaves { } señalan el comienzo y final de una sentencia compuesta, es decir, bloques de código (grupos de sentencias que son tratadas como una unidad). Constituyen el segundo paso (después de las sentencias) en la estructuración y compartimentación del código C++:

if (d == z) { ++x; func();}

Un bloque es una sentencia compuesta, se trata de una sucesión (que puede estar vacía) de sentencias delimitadas por un par de corchetes { }. Desde el punto de vista sintáctico, un bloque puede ser considerado como una sola sentencia. Juega un papel importante en el ámbito (scope) de los identificadores, puesto que un identificador declarado dentro de un bloque tiene un ámbito que comienza en el punto de la declaración y termina en el corchete final. Sin embargo, el mismo identificador puede ser ocultado por otro del mismo nombre declarado en un bloque interior al primero.

Dentro de las posibilidades de memoria, los bloques pueden ser anidados a cualquier nivel (profundidad).

Después del corchete de cierre } no se necesita el punto y coma ; de fin de sentencia.

if (statement) {...}; // punto y coma ilegal !!else

Page 9: Lenguaje C

Nota: las llaves sirven también en C para otros usos distintos de la pura delimitación de bloques de código. Por ejemplo, en la definición de estructuras, uniones y clases, en cuyo caso si puede ser necesaria la inclusión del punto y coma después de la llave de cierre }.

Operador apuntadorLos apuntadores son una parte fundamental de C. Si usted no puede usar los apuntadores apropiadamente entonces está perdiendo la potencia y la flexibilidad que C ofrece básicamente. El secreto para C está en el uso de apuntadores.

El uso de apuntadores en C y C++ es muy importante debido a que permite hacer los programas más eficientes y más flexibles. En este artículo se explica de una manera sencilla y breve todo lo referente a la utilización de apuntadores tanto en C como en C++.

Todo lo explicado en este artículo aplica tanto para C como para C++, a menos que se especifique un lenguaje en particular. En algunos ejemplos de código que son aplicables a C aparecen instrucciones de entrada y salida de las librerías estándar de C++.

Para que sirve un apuntadorLos apuntadores son variables que almacenan direcciones de memoria en general una variable contiene un valor específico dependiendo de cómo fue declarada un apuntador contiene la dirección de una variable que contiene un valor específico una variable se refiere directamente a un valor y un apuntador se refiere indirectamente a un valor apuntadores usados en C debido a que a veces son la única manera de expresar un cálculo se puede llegar a obtener un código más compacto y eficiente cuando se emplean sin cuidado pueden crear programas imposibles de entender cuentan con una declaración propia.

Los apuntadores disponen de dos operadores: El operador unario o monódica “&” devuelve la dirección de memoria de una variable; El operador de indirección odesreferencia “*” devuelve el ``contenido de un objeto apuntado por un apuntador''.

Operaciones de relación direcciónLos operadores de los lenguajes de programación C y C++. Todos los operadores listados existen en C++. La tercera columna indica si también están presentes en C. También hay que tener en cuenta que C no permite la sobrecarga de operadores.

Los siguientes operadores son puntos de secuencia en ambos lenguajes (cuando no están sobrecargados): &&, || , ? : , y ,(el operador coma).

C++ también incluye los operadores de conversión de tiposconst_cast, static_cast, dynamic_cast yreinterpret_cast, que no están listados en la tabla por brevedad. El formato de estos operadores significa que su nivel de precedencia no es importante.

La mayoría de los operadores presentes en C y C++ (con la excepción del operador coma y el operador flecha) también se encuentran disponibles en los lenguajes de programación Java, Perl, C# y PHP con la misma precedencia, asociatividad y semántica. Con una única excepción: la asociatividad del operador ternario en PHP es de izquierda a derecha.

Page 10: Lenguaje C

Operadores Lógicos

Los operadores lógicos producen un resultado booleano, y sus operandos son también valores lógicos o asimilables a ellos (los valores numéricos son asimilados a cierto o falso según su valor sea cero o distinto de cero). Por contra, recuerde que las operaciones entre bits producen valores arbitrarios.

Los operadores lógicos son tres; dos de ellos son binarios, el último (negación) es unario. Tienen una doble posibilidad de representación: la representación tradicional que se indica a continuación, y la natural introducida recientemente que se detalla más adelante.

Y lógico && AND O lógico || OR Negación lógica ! NOT

Las expresiones conectadas con los operadores && y || se evalúan de izquierda a derecha, y la evaluación se detiene tan pronto como el resultado verdadero o falso es conocido (muchos programas tienen una lógica que se basa en este propiedad).

&& Operador Y lógico

También denominado por su nombre en inglés (generalmente en mayúsculas) AND lógico. Devuelve un valor lógico true si ambos operandos son ciertos. En caso contrario el resultado es false.

Su sintaxis es la siguiente: expr-AND-logica && expresion-OR-inclusive

La operatoria es como sigue: El primer operando (de la izquierda) es convertido a bool. Para ello, si es una expresión, se evalúa para obtener el resultado (esta computación puede tener ciertos efectos laterales). A continuación, el valor obtenido es convertido abool cierto/falso siguiendo las reglas de conversión estándar. Si el resultado es false, el proceso se detiene y este es el resultado, sin que en este caso sea necesario evaluar la expresión de la derecha (recuérdese que en el diseño de C++ prima la velocidad).

Si el resultado del operando izquierdo es cierto, se continúa con la evaluación de la expresión de la derecha, que también es convertida a bool. Si el nuevo resultado es true, entonces el resultado del operador es true. En caso contrario el resultado es false.

Ejemplo:

int m[3] = {0,1,2};int x = 0;if (m && x) cout << "Cierto.";else cout << "Falso.";

Salida:

Falso.

Page 11: Lenguaje C

El valor m, que es interpretado como un puntero al primer elemento de la matriz, es transformado a un bool. Como es distinto de cero (no es un puntero nulo) el resultado es cierto. A continuación, el valor x es convertido también a bool. En este caso la conversión produce falso, con lo que este es el resultado del paréntesis de la sentencia if.

Ejemplo

#include <iostream.h>

bool alto = true, bajo = false, blanco = true, negro = false;

int main (void) { if (alto && bajo) { cout << "Uno cierto" << endl; } else cout << "Uno falso" << endl; if (alto && blanco) { cout << "Dos cierto" << endl; } else cout << "Dos falso" << endl; if (bajo && negro) { cout << "Tres cierto" << endl; } else cout << "Tres falso" << endl;}

Salida:

Uno falsoDos ciertoTres falso

|| Operador O lógico

Este operador binario devuelve true si alguno de los operandos es cierto. En caso contrario devuelve false.

Su Sintaxis:

expr-OR-logica || expresion-AND-logica

Este operador sigue un funcionamiento análogo al anterior. El primer operando (izquierdo) es convertido a bool. Para ello, si es una expresión, se evalúa para obtener el resultado (esta computación puede tener ciertos efectos laterales). A continuación el valor obtenido es convertido a bool cierto/falso siguiendo las reglas de conversión estándar. Si el resultado es true, el proceso se detiene y este es el resultado, sin que en este caso sea necesario evaluar la expresión de la derecha.

Si el resultado del operando izquierdo es false, se continúa con la evaluación de la expresión de la derecha, que también es convertida a bool. Si el nuevo resultado es true, entonces el resultado del operador es true. En caso contrario el resultado esfalse.

Ejemplo

#include <iostream.h>bool alto = true, bajo = false, blanco = true, negro = false;

Page 12: Lenguaje C

int main (void) { if (alto || bajo) { cout << "Uno cierto" << endl; } else cout << "Uno falso" << endl; if (alto || blanco) { cout << "Dos cierto" << endl; } else cout << "Dos falso" << endl; if (bajo || negro) { cout << "Tres cierto" << endl; } else cout << "Tres falso" << endl;}

Salida

Uno ciertoDos ciertoTres falso

! Operador NO lógico

Este operador es denominado también negación lógica y se representa en el texto escrito por la palabra inglesa NOT (otros lenguajes utilizan directamente esta palabra para representar el operador en el código).

Sintaxis:

! expresion-cast

El operando expresion-cast es convertido a tipo bool, con lo que solo puede ser uno de los valores cierto/falso. A continuación el operador cambia su valor: Si es cierto es convertido a falso y viceversa.

Resulta por tanto, que el resultado de este operador es siempre un tipo bool, aunque al existir una conversión estándar por la que un cero es convertido a false, y cualquier valor distinto de cero a true, coloquialmente se dice que este operador convierte un operando 0 en 1 y uno no-cero en 0. En otras palabras: este operador devuelve cierto (true) si la expresión se evalúa a distinto de cero, en caso contrario devuelve falso (false).

Ejemplo

#include <iostream.h>bool alto = true, bajo = false;

int main (void) { if (alto) { cout << "Uno cierto" << endl; } else cout << "Uno falso" << endl; if (!alto) { cout << "Dos cierto" << endl; } else cout << "Dos falso" << endl; if (!bajo) { cout << "Tres cierto" << endl; } else cout << "Tres falso" << endl;}

Salida:

Page 13: Lenguaje C

Uno ciertoDos falsoTres cierto

Si E es una expresión, !E es equivalente a (0 == E). Como consecuencia, las expresiones que siguen son equivalentes dos a dos:

if (! valid);if (valid == 0);...if (valid);if (valid != 0);

Significado de voidCuando se utiliza como un tipo de valor devuelto de función, la palabra clave void especifica que la función no devuelve ningún valor. Cuando se utiliza para la lista de parámetros de una función, void especifica que la función no toma ningún parámetro. Cuando se utiliza en la declaración de un puntero, void especifica que el puntero es "universal".

Si el tipo de puntero es void *, el puntero puede señalar a cualquier variable que no se declare con la palabra clave const o volatile. Un puntero void no se puede des referenciar a menos que se convierta en otro tipo. Un puntero void se puede convertir en cualquier otro tipo de puntero de datos.

Un puntero void puede señalar a una función, pero no a un miembro de clase en C++.

No se puede declarar una variable de tipo void.

Que es un argumento Los argumentos , también se le llama parámetros, son valores que necesita una función definida por el programador de un código

ejemplo

funcion suma(valor1, valor2){ resultado = valor1+valor2 mostrar resultado }

en esta función llamada suma se necesitan dos argumentos o parámetros, cuando vayas a utilizar la función no es necesario que los argumentos se llamen igual a como los colocas en la función:

mostrar suma(3+6)

n1 = 4 n2 =8

mostrar suma(n1+n2)

Page 14: Lenguaje C

para que se utilizan?, creo que es para hacer que las funciones sean dinámicas, es decir que no funcionen solamente con los mismos valores.

Puedes utilizar una función que no reciba parámetros y que sea "dinámica", pero generalmente estará atada a la forma como se piden los datos, por esto es mejor utilizar parámetros.

Aparecen dentro de los paréntesis seguidos al nombre de la función. No siempre son necesarios, todo depende de tu función

Que es un arregloUn arreglo en C++ es un conjunto de datos que se alamacenan en memoria de manera contigua con el mismo nombre. Para difenciar los elementos de un arreglo se utilizan índices detrás del nombre del arreglo y encerrados por []. El elemento 5° (quinto) de un arreglo, es representado por el índice [4], ya que los índices comienzan en 0. Esto significa que un arreglo de 10 elementos tendría los índices del 0 al 9: [0...9]

Ejemplos:

int arregloEntero[10];

//Declaracion de un arreglo de 10 elementos, sin inicializar.

arregloEntero[5] = 45; //Asignacion de 45 al elemento 6 del arreglo.

double arrPuntoFlotante[3] = {1.1,1.2,1.3};

//Declaracion y asignacion en un arreglo de 3 elementos double.

int a[4], b[5];

//Declaracion de dos arreglos enteros, de 4 y 5 elementos.

Ahora veamos un ejemplo, donde se trata un arreglo de 10 elementos con ciclos for:

//Uso de arreglos en C++

#include <iostream>

using std::cout;

using std::cin;

using std::endl;

int main()

{

int arregloEntero[10] = {0};

//Arreglo entero de 10 elementos inicializados todos en 0.

cout << "Arreglo recien declarado: " << endl;

for (int i = 0 ; i < 10 ; i++)

Page 15: Lenguaje C

//Notar el menor estricto (<) para ir desde 0 hasta 9

cout << "arregloEntero["<<i<<"]="<<arregloEntero[i] << endl;

cout << "Introduzca 10 nuevos valores " << endl;

for (int i = 0 ; i < 10 ; i++)

//Notar el menor estricto (<) para ir desde 0 hasta 9

{

cout << " Introduzca nuevo valor para

arregloEntero["<<i<<"]" << endl;

cin >> arregloEntero[i];

}

cout << "Luego de los valores introducidos, el arreglo quedo asi: " << endl;

for (int i = 0 ; i < 10 ; i++)

//Notar el menor estricto (<) para ir desde 0 hasta 9

cout << "arregloEntero["<<i<<"]="<<arregloEntero[i] << endl;

return 0;

}

Que es una cadenaLas cadenas de caracteres (también llamadas cadenas o strings) son un tipo particular de vectores, son de hecho vectores de char, con la particularidad que tienen una marca de fin (el caracter '\0'), además el lenguaje nos permite escribirlas como texto dentro de comillas dobles. Veamos unos ejemplos de su declaración:

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[]="";

Carácter de controlUn carácter de control es, en el ámbito de la informática, un carácter no imprimible que sirve para uso interno del computador, por ejemplo para controlar un dispositivo específico, indicar el valor nulo NULL.

Hay caracteres de control que no existen en esta tabla P.E.: el final de una línea EOL o el fin del archivo EOF.

Page 16: Lenguaje C

Carácter de impresiónPara imprimir datos de un modo más general el C dispone de la función printf, que se ocupa de la impresión con formato en la salida estándar. Cuando se empieza con un nuevo lenguaje suele gustar el ver los resultados, ver que nuestro programa hace "algo". Por eso la mayor parte de programas de principiantes utilizan rápidamente la función printf, que sirve para sacar información por pantalla.

Carácter de signadoLos tipos fundamentales de C++ se dividen en tres categorías: entero, flotante y void. Los tipos enteros son capaces de controlar números enteros. Los tipos de punto flotante son capaces de especificar valores que pueden tener partes fraccionarias.

El tipo void describe un conjunto de valores vacío. No se puede especificar ninguna variable de tipo void; se utiliza principalmente para declarar funciones que no devuelven ningún valor o para declarar punteros genéricos a datos sin tipo o con un tipo arbitrario. Cualquier expresión se puede convertir explícitamente al tipo void. Sin embargo, estas expresiones se limitan a los siguientes usos:

Una instrucción de expresión.

El operando izquierdo del operador de coma.

El segundo o tercer operando del operador condicional.

Carácter de ciclo o buclePor definición un bucle debe contener condiciones que establezcan cuándo empieza y cuándo acaba, de manera que, mientras las condiciones se cumplan, ejecute una secuencia de código de manera repetitiva. En el caso de ciclo infinito, como la condición de finalización no se alcanza, el bucle sigue ejecutando el segmento de código indefinidamente.

For, while, do.

Describa una breve sintaxis de los siguientes programas

If Else if (i!=4) {

printf("Es primo.");

}

else

{

printf("No es primo.");

}

Page 17: Lenguaje C

Forint main(int argc, char *argv[]) {

for(int i=0;i==i;i++){

cout << "Se repite" << endl;

}

return 0;

}

Whileint main(void) {

while(1) {

printf("\xadNo acabar\x82 en algún momento!\n");

}

return 0; /*De todas maneras no llega nunca a ejecutarse esta l\xd6nea*/

}

Case Breakswitch(var int o char)

{

case const1: instrucción(es);

break;

case const2: instrucción(es);

break;

case const3: instrucción(es);

break; ………………

default: instrucción(es);

};

Dodo{printf(“Soy la variable i, mi valor en esta iteracion es: %d\n”,i);i++;}while(i<=20);

Page 18: Lenguaje C

Continue// continue_statement.cpp

#include <stdio.h>

int main()

{

int i = 0;

do

{

i++;

printf_s("before the continue\n");

continue;

printf("after the continue, should never print\n");

} while (i < 3);

printf_s("after the do loop\n");

}

Combinadosif(numero == 0) //La condicion indica que tiene que ser igual a Cero

{

cout<<"El Numero Ingresado es Igual a Cero";

}

else

{

if(numero > 0) // la condicion indica que tiene que ser mayor a Cero

{

cout<<"El Numero Ingresado es Mayor a Cero";

}

else

{

if(numero < 0) // la condicion indica que tiene que ser menor a Cero

{

Page 19: Lenguaje C

cout<<"El Numero Ingresado es Menor a Cero";

}

}

}

switch (condición)

{

case primer_caso:

bloque de instrucciones 1

break;

case segundo_caso:

bloque de instrucciones 2

break;

case caso_n:

bloque de instrucciones n

break;

default: bloque de instrucciones por defecto

}

Referenciashttp://www.carlospes.com/curso_de_lenguaje_c/01_02_fases.php

http://www.zator.com/Cpp/E4_9_8.htm

http://www.zator.com/Cpp/E3_2_6.htm#Llaves { }

http://recursostic.educacion.es/observatorio/web/es/software/programacion/745-introduccion-a-la-programacion-con-el-lenguaje-c

http://kodrs.com/palabras-reservadas-en-c/

Page 20: Lenguaje C

http://www.zator.com/Cpp/E4_9_10b.htm