0% encontró este documento útil (0 votos)
80 vistas67 páginas

Visual Basic y Lenguaje C

Este documento describe tres tipos de errores en Visual Basic: errores de sintaxis que ocurren al escribir el código, errores en tiempo de ejecución que ocurren después de la compilación y ejecución, y errores lógicos que ocurren cuando la aplicación está en funcionamiento. También describe la característica de corrección automática de Visual Basic que sugiere correcciones para los errores.

Cargado por

DarlizPotter
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
80 vistas67 páginas

Visual Basic y Lenguaje C

Este documento describe tres tipos de errores en Visual Basic: errores de sintaxis que ocurren al escribir el código, errores en tiempo de ejecución que ocurren después de la compilación y ejecución, y errores lógicos que ocurren cuando la aplicación está en funcionamiento. También describe la característica de corrección automática de Visual Basic que sugiere correcciones para los errores.

Cargado por

DarlizPotter
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 67

Tipos de errores (Visual Basic)

Errores de sintaxis: Los errores de sintaxis son aquellos que aparecen mientras se escribe el código. Visual Basic comprueba el
código mientras se escribe en la ventana Editor de código y alerta si se comete un error, por ejemplo, si se escribe mal una
palabra o se usa un elemento del lenguaje de forma incorrecta. Los errores sintácticos son los errores más frecuentes. Se pueden
corregir fácilmente en el entorno de codificación en cuanto se producen.

Errores en tiempo de ejecución: Los errores en tiempo de ejecución son aquellos que aparecen solamente después de la
compilación y la ejecución del código. Pueden darse errores de este tipo, por ejemplo, en fragmentos de código aparentemente
correctos, por no presentar errores sintácticos, pero que no se ejecutan correctamente. Por ejemplo, podría escribir correctamente
una línea de código que abre un archivo. Pero, si el archivo está dañado, la aplicación no podrá ejecutar la función Open y se
detendrá su ejecución. La mayoría de los errores de este tipo pueden corregirse modificando el código que presenta errores, para
después compilarlo y volver a ejecutarlo.

Errores lógicos: Los errores lógicos son aquellos que aparecen cuando la aplicación está en funcionamiento. Son a menudo
resultados no deseados o inesperados en respuesta a acciones del usuario. Por ejemplo, una clave mal escrita u otra influencia
externa podrían hacer que la aplicación dejase de funcionar aún siendo correctos los parámetros, o que simplemente no
funcionase. Por lo general, los errores lógicos son los más difíciles de corregir, puesto que no siempre está claro dónde se
originan.

Corrección automática de compilación inteligente (Visual


Basic)
La característica Corrección automática de compilación inteligente sugiere correcciones cuando se producen los errores,
permitiéndole elegir una solución que se va a aplicar al código.

Cuando se produce un error, si hay un símbolo debajo del lado derecho del subrayado ondulado, al colocar el mouse sobre la
línea ondulada o al hacer doble clic en el mensaje de error en la lista de tareas, el símbolo se convierte en un panel de etiquetas
inteligentes. Al hacer clic o colocar el puntero del mouse sobre el panel de etiquetas inteligentes, se abre la ventana auxiliar
Opciones de corrección de errores, que muestra una descripción del error junto con un conjunto de sugerencias para corregirlo.
Cuando sea necesario, la ventana auxiliar le permite obtener una vista previa de la corrección en una ventana independiente.

Puede deshacer los cambios una vez aplicados con una operación Deshacer (CTRL+Z).

Para desechar la ventana auxiliar Corrección automática de compilación inteligente, haga clic en cualquier otra parte del editor.

Esta tabla muestra y explica los elementos mostrados en la ventana Corrección automática de compilación inteligente:

Elemento Descripción
Mensaje de error Muestra el mensaje asociado al error.
Corrección sugerida Muestra posibles maneras de corregir el error. Haga clic en uno para que se aplique a su código.
Vista previa Muestra una vista previa del código corregido. En situaciones donde la corrección no afecta al
código, no se muestra una vista previa.
Expandir todas las vistas Al activar esta casilla, se expandirán todas las vistas previas.
previas

Cómo: Corregir los errores del compilador con la función de


corrección automática (Visual Basic)
La característica Corrección automática de compilación inteligente sugiere correcciones cuando se producen errores y permite elegir una
solución para aplicar al código.

Para corregir un error con Corrección automática de compilación inteligente


1. Cuando se produce un error que se puede corregir con Corrección automática de compilación inteligente, se muestra un glifo bajo el
lado derecho de la línea ondulada. Al detener el puntero del mouse sobre esta línea, el símbolo se convierte en un panel de etiquetas
inteligentes.
2. Haga clic o detenga el puntero del mouse sobre el panel de etiquetas inteligentes. Aparece la ventana de aplicación auxiliar Opciones
de corrección de errores, que muestra una descripción del error y un conjunto de sugerencias para solucionarlo. Haga clic en la
corrección que desea aplicar.

3. Puede deshacer cambios que se han aplicado con una operación Deshacer (CTRL+Z). Para cerrar la ventana de aplicación auxiliar
Opciones de corrección de errores, haga clic en otra parte del editor.

Configurar advertencias en Visual Basic


El compilador de Visual Basic incluye un conjunto de advertencias sobre código que puede producir errores en tiempo de ejecución. Puede
utilizar esta información para escribir código más limpio, rápido y mejor con menos errores. Por ejemplo, el compilador muestra una
advertencia cuando el usuario intenta invocar un miembro de una variable de objeto sin asignar, volver de una función sin establecer el valor
devuelto o ejecutar un bloque Try con errores en la lógica para detectar excepciones.

En ocasiones, el compilador proporciona lógica adicional en nombre del usuario para que éste pueda centrarse en la tarea actual en lugar de
dedicarse a anticipar posibles errores. En versiones anteriores de Visual Basic, se utilizaba Option Strict para limitar la lógica adicional que
proporciona el compilador de Visual Basic. La configuración de las advertencias permite limitar esta lógica de una manera más específica,
en el nivel de las advertencias individuales.

Puede personalizar su proyecto y desactivar algunas advertencias que no afectan a su aplicación o convertir otras advertencias en errores.
Esta página explica cómo activar y desactivar las advertencias individuales.

Activar y desactivar advertencias


Hay dos maneras de configurar las advertencias: puede configurarlas mediante *** Project Designer *** o puede utilizar las opciones del
compilador /warnaserror y /nowarn.

La ficha Compilar de la página Diseñador de proyectos permite activar y desactivar las advertencias. Active la casilla Deshabilitar todas las
advertencias para deshabilitar todas las advertencias; active Considerar todas las advertencias como errores para tratar todas las advertencias
como errores. Algunas advertencias individuales se pueden alternar como errores o advertencias en la tabla mostrada.
Cuando Option Strict se establece como Off, las advertencias relacionadas con Option Strict no se pueden tratar como independientes entre
sí. Cuando Option Strict se establece como On, las advertencias asociadas se tratan como errores, independientemente de su estado. Si
Option Strict se establece como Custom mediante la especificación de /optionstrict:custom en el compilador de la línea de comandos, las
advertencias de Option Strict se pueden activar y desactivar de manera independiente.

También se puede utilizar la opción de la línea de comandos /warnaserror del compilador para especificar si las advertencias se tratan como
errores. Puede agregar una lista delimitada por comas a esta opción para especificar qué advertencias se deben tratar como errores o
advertencias, utilizando + o -. En la tabla siguiente se especifican las opciones posibles.

Opción de la línea de Especifica


comandos
/warnaserror+ Tratar todas las advertencias como errores
/warnsaserror- No tratar las advertencias como errores. Éste es el valor predeterminado.
/warnaserror+:<warning list Tratar advertencias concretas como errores, indicadas por su número de identificador de error en una lista
> delimitada por comas.
/warnaserror-:<warning list> No tratar advertencias concretas como errores, indicadas por su número de identificador de error en una
lista delimitada por comas.
/nowarn No indicar advertencias.
/nowarn:<warning list> No indicar advertencias concretas, indicadas por su número de identificador de error en una lista
delimitada por comas.
La lista de advertencias contiene el número de identificador de error de las advertencias que deben tratarse como errores, que se puede
utilizar en las opciones de la línea de comandos para activar o desactivar advertencias concretas. Si la lista de advertencias contiene un
número no válido, se muestra un error.

Ejemplos
Esta tabla de ejemplos de argumentos de la línea de comandos describe qué hace cada argumento.

Argumento Descripción
vbc /warnaserror Especifica que todas las advertencias se deben tratar como errores.
vbc /warnaserror:42024 Especifica que la advertencia 42024 se debe tratar como un error.
vbc /warnaserror:42024,42025 Especifica que las advertencias 42024 y 42025 se deben tratar como errores.
vbc /nowarn Especifica que no se deben indicar advertencias.
vbc /nowarn:42024 Especifica que no se debe indicar la advertencia 42024.
vbc /nowarn:42024,42025 Especifica que no se deben indicar las advertencias 42024 y 42025.

Tipos de advertencias
A continuación se muestra una lista de advertencias que podría tratar como errores.

Advertencia de conversión implícita


Se genera para las instancias de conversión implícita. No incluyen las conversiones implícitas de un tipo numérico intrínseco a una cadena
cuando se utiliza el operador &. Deshabilitado de forma predeterminada para nuevos proyectos.

Id: 42016

Advertencia de invocación de métodos enlazados en tiempo de ejecución y de resolución de sobrecarga


Se genera para las instancias de enlace en tiempo de ejecución. Deshabilitado de forma predeterminada para nuevos proyectos.

Id: 42017

Advertencia de operandos de tipo Object


Se genera cuando se producen operandos de tipo Object que crearían un error con Option Strict On. Habilitado de forma predeterminada
para nuevos proyectos.

Id: 42018 y 42019

Advertencia de declaraciones que requieren la cláusula 'As'


Se genera cuando una declaración de variable, función o propiedad a la que le falta una cláusula As habría creado un error con Option Strict
On. Se supone que las variables que no tienen un tipo asignado son del tipo Object. Habilitado de forma predeterminada para nuevos
proyectos.

Id: 42020 (declaración de variable), 42021 (declaración de función) y 42022 (declaración de propiedad).
Advertencia de posible excepción de referencia NULL
Se genera cuando se utiliza una variable antes de ser asignada a un valor. Habilitado de forma predeterminada para nuevos proyectos.

Id: 42104, 42030

Advertencia de variable local no usada


Se genera cuando se declara una variable local pero no se hace referencia a ella. Habilitado de forma predeterminada.

Id: 42024

Advertencia de acceso a miembro Shared mediante una variable de instancia


Se genera cuando el acceso a un miembro Shared desde una instancia puede tener efectos secundarios o cuando el acceso a un miembro
Shared desde una vista de instancia no constituye la parte derecha de una expresión o se pasa como un parámetro. Habilitado de forma
predeterminada para nuevos proyectos.

Id: 42025

Advertencia de acceso recursivo a un operador o una propiedad


Se genera cuando el cuerpo de una rutina usa el mismo operador o propiedad donde se ha definido. Habilitado de forma predeterminada para
nuevos proyectos.

Id: 42004 (operador), 42026 (propiedad)

Advertencia de función u operador sin valor devuelto


Se genera cuando la función o el operador no tiene un valor devuelto especificado. Incluye la omisión de Set en la variable local implícita
con el mismo nombre que la función. Habilitado de forma predeterminada para nuevos proyectos.

Id: 42105 (función), 42016 (operador)

Advertencia de modificador Overloads utilizado en un módulo


Se genera cuando se utiliza Overloads en un objeto Module. Habilitado de forma predeterminada para nuevos proyectos.

Id: 42028
Advertencia de bloques Catch duplicados o superpuestos
Se genera cuando no se alcanza un bloque Catch debido a su relación con otros bloques Catch definidos. Habilitado de forma
predeterminada para nuevos proyectos.

Id: 42029, 42031

Agregar error de validación de las importaciones (Cuadro


de diálogo) (Visual Basic)
El cuadro de diálogo Agregar error de validación de las importaciones aparece cuando el compilador determina que la adición de
una instrucción Imports para definir un nombre de tipo no reconocido presentará otros cambios en el significado del código.
Específicamente, se han producido los eventos siguientes.

1. El compilador informa de que un nombre de tipo de código es indefinido.


2. El nombre de tipo se define en el proyecto o en un ensamblado al que se hace referencia desde el proyecto, pero se define
en un espacio de nombres o elemento del espacio de nombres (como una clase o un módulo) que está fuera del ámbito.
3. En una lista de las opciones sugeridas por Corrección automática de compilación inteligente, elija corregir el problema
importando el espacio de nombres o el elemento del espacio de nombres.
4. El compilador comprueba el archivo y determina que agregar la instrucción Imports cambiará el enlace de otras variables
o métodos del archivo.

El cuadro de diálogo Agregar error de validación de las importaciones tiene las siguientes opciones para corregir el problema.

Elemento Descripción
Importar espacio de nombres , y calificar los Inserta una instrucción del Importsespacio de nombres en el archivo. Cada
identificadores afectados nombre de tipo que no se define en el archivo pero se define en el espacio de
nombres se enlazará a su definición en el espacio de nombres importado. Se
incluyen todas las apariciones del nombre de tipo que produjo el error.
Cada tipo de nombre que ya está definido en el archivo y que cambiaría esta
instrucción Imports, lleva el prefijo del nombre del espacio de nombres, del
módulo o de la clase para conservar su significado original.
No importe el espacioDeNombres, pero Cambia el nombre del tipo no definido a
cambie el nombreDeTipo a espacioDeNombres.nombreDeTipopara especificar la ubicación de la
espacioDeNombres.nombreDeTipo definición del nombre de tipo. De esta forma, sólo se cambia la instancia
actual del nombre de tipo no definido. El resto del archivo no se ve afectado.
Cancel Cierra el cuadro de diálogo.

Ejemplo
En un proyecto de aplicación de consola de Visual Basic denominado ConsoleApplication1, el siguiente código provoca un error
porque la definición de la clase C2 no está en el ámbito cuando se usa en Main.

VB
Imports ConsoleApplication1.Ns2

Module Module1

Sub Main()
Dim instance1 As New C1
' The following line will show an error for C2. C2 is defined
' in namespace Ns1, but only Ns2 is imported.
Dim instance2 As New C2
End Sub

End Module

' Namespace Ns1 defines two classes, C1 and C2.


Namespace Ns1
Class C1
End Class

Class C2
End Class

End Namespace

' Namespace Ns2 defines one class, C1.


Namespace Ns2

Class C1
End Class

End Namespace

Deje el puntero del mouse sobre C2 en Main y haga clic en el signo de exclamación de Opciones de corrección de errores. Verá
estas dos opciones para corregir el problema:

 Import ConsoleApplication1.Ns1
 Change 'C2' to 'Ns1.C2'

Opciones de corrección de errores

Si elige la segunda opción, C2 se cambia a Ns1.C2 en el código y se resuelve el error. Sólo se cambia la instancia actual de C2.

Si elige la primera opción, la situación es más complicada en este ejemplo. El compilador detecta que agregando la instrucción
Imports provocaría otros cambios de significado del código y aparece el cuadro de diálogo Agregar error de validación de las
importaciones. Específicamente, importar ConsoleApplication.Ns1 para corregir el problema con C2 produce un error nuevo
para C1 en la primera línea de Main: Dim instance1 As New C1. Dos definiciones de clase C1 ahora están en el ámbito: el que se
define en el espacio de nombres Ns1 y que se define en el espacio de nombres Ns2.
El cuadro de diálogo Agregar error de validación de las importaciones proporciona dos opciones:

 Importar 'ConsoleApplication1.Ns1' y calificar los identificadores afectados.


 No importar 'ConsoleApplication1.Ns1', pero cambiar 'C2' a 'Ns1.C2'.

Agregar error de validación de las importaciones (Cuadro de diálogo)

Si elige la primera opción, Imports ConsoleApplication1.Ns1 se agrega en la parte superior del archivo y Dim instance1 As New
C1 se cambia a Dim instance1 As New ConsoleApplication1.Ns2.C1 para conservar el enlace original de C1.

Nota
Esta es una buena solución cuando aparece el nombre de tipo sin definir muchas veces en el archivo o cuando es probable que
sean útiles otros elementos del espacio de nombres.

Si elige la segunda opción, C2 se cambia a Ns1.C2 en el código y se resuelve el error. Sólo se cambia la instancia actual de C2.

Nota
Se recomienda esta solución limitada cuando el nombre de tipo no definido aparezca sólo una o dos veces en el archivo; o bien,
cuando el espacio de nombres en el que se define el nombre de tipo sea largo.
Agregar error de validación de las importaciones (Métodos
de extensión) (Visual Basic)
El cuadro de diálogo Agregar error de validación de las importaciones (métodos de extensión) aparece cuando el compilador
determina que la adición de una instrucción Imports para definir un nombre de tipo no reconocido cambiaría el significado de
otras partes de código del archivo. Específicamente, se han producido los eventos siguientes.

1. El compilador informa de que un nombre de tipo de código es indefinido.


2. El nombre de tipo se define en el proyecto o en un ensamblado al que se hace referencia desde el proyecto, pero la
definición está en un espacio de nombres o elemento del espacio de nombres, como una clase o un módulo, que está fuera
del ámbito.
3. En una lista de las opciones sugeridas por Corrección automática de compilación inteligente, elija corregir el problema
importando el espacio de nombres o el elemento del espacio de nombres.
4. El compilador comprueba el archivo y determina que agregar la instrucción Imports cambiará el enlace de otras variables
o métodos del archivo.
5. Puesto que, al menos, uno de los conflictos de enlace incluye un método de extensión, el compilador no admite la adición
de la instrucción Imports.

El cuadro de diálogo Agregar error de validación de las importaciones (métodos de extensión) contiene las opciones siguientes
para corregir el problema.

Elemento Descripción
Haga clic en Aceptar para corregir Cambia el nombre del tipo no definido a espacioDeNombres.nombreDeTipopara
nombreDeTipo cambiándolo a espacio especificar la ubicación de la definición del nombre de tipo. De esta forma, sólo se
de nombres.nombreDeTipo cambia la instancia actual del nombre de tipo no definido. No se importa el espacio
de nombres.
Cancel No realice ningún cambio y cierre el cuadro de diálogo.

Ejemplo
En un proyecto de aplicación de consola de Visual Basic denominado ConsoleApplication1, el siguiente código provoca un error
porque la definición de la clase C2 no está en el ámbito cuando se usa en Main.

VB
Imports System.Runtime.CompilerServices
Imports ConsoleApplication1.Ns1

Class Base
End Class

' Namespace Ns1 defines one class, C1.


Namespace Ns1

Public Class C1
End Class

Module M1

<Extension()>
Sub exampleSub(ByVal caller As Base)
Console.WriteLine("exampleSub in Ns1")
End Sub

End Module
End Namespace

' Namespace Ns2 defines two classes, C1 and C2


Namespace Ns2

Public Class C2
End Class
Module M2

<Extension()>
Sub exampleSub(ByVal caller As Base)
Console.WriteLine("exampleSub in Ns2")
End Sub

End Module
End Namespace

Module Module1

Sub Main()
Dim a As New C1
' The following line will show an error for C2. C2 is
' defined in namespace Ns2, but only Ns1 is imported.
Dim b As New C2
Dim c As New Base
c.exampleSub()
End Sub

End Module

Se produce un error en Sub Main cuando se hace referencia a C2. El error notifica que C2 no es un tipo reconocido. Deje el
puntero del mouse sobre C2 y haga clic en el signo de exclamación de Opciones de corrección de errores. Verá estas dos
opciones para corregir el problema:

 Importar ConsoleApplication1.Ns2
 Cambiar 'C2' a 'Ns2.C2'

Opciones de corrección de errores


Si opta por importar ConsoleApplication1.Ns2, el compilador detecta que la importación provoca un conflicto con el método de
extensión exampleSub, que se define tanto en Ns1 como en Ns2. En ese punto, puede elegir calificar C2 o hacer clic en Cancelar
en el cuadro de diálogo y volver al código para efectuar otro cambio.

Agregar error de validación de las importaciones (Cuadro de diálogo)


Descripción del control
Este control " Botón de comando ", nos permite ejecutar alguna rutina, función o procedimiento, generalmente en el evento click
del mismo, para realizar de esta manera alguna tarea dentro del programa

Como se dijo, se utiliza generalmente en el evento Click par ejecutar alguna acción cuando se produce dicho evento, y es
precisamente el evento Click, el que por defecto añade Visual Basic al control

Por ejemplo, si colocamos un control Command1 en un formulario, y le damos DobleClick para que se abra la ventana de
código de visual basic, podemos ver la siguiente rutina:

Texto planoImprimir

1. Private Sub Command1_Click()


2.
3.
4. End Sub

Todas las instrucciones que estén dentro de este procedimiento, llamado Command1_Click, se ejecutarán cuando presionemos
el botón. Por ejemplo si ejecutamos el siguiente código, lo que haría sería mostrar la fecha del sistema en la barra de título del
formulario, utilizando la función Date de Visual Basic

Texto planoImprimir

1. Option Explicit
2.
3. Private Sub Command1_Click()
4. ' -- Establecemos en la barra de título del formulario la fecha del Pc
5. Me.Caption = Date
6.
7. End Sub

Este otro ejemplo, al presionar el botón, termina el programa utilizando la función End de vb. Colocar un Botón en el form

Texto planoImprimir

1. Option Explicit
2.
3. Private Sub Command1_Click()
4. End
5. End Sub
6.
7. Private Sub Form_Load()
8. Command1.Caption = "Salir"
9. End Sub

Propiedades
Las propiedades que posee el control CommandButton son prácticamente las que poseen el resto de controles estandar de visual
basic, salvo algunas exclusivas como la propiedad Style.

Propiedad Style

La propiedad Style tiene 2 valores, 0 - Standar y 1 - Graphical. La primera es del clásico botón y este valor es el asignado por
defecto. En cambio Graphical permite utilizar CommandButton para poder mostrar imágenes, cambiarle el color del fondo, el
tipo de fuente, y utilizando el Api de windows, se puede cambiar por ejemplo el color de la fuente, es decir el ForeColor que este
control no lo posee.

Esta imagen muestra, en el Command1 , una imagen, por medio de la propiedad Picture que la puedes cargar desde la ventana
de propiedades. El segundo, el Command2, no tiene imagen, pero muestra como se puede establecer el color de fondo, propiedad
Backcolor, siempre y cuando la propiedad Style sea de tipo gráfico, ya que si está en estándar no surtirá efecto.
Otro ejemplo sobre esta propiedad: Al pasar el mouse por encima del Commandbutton, se cambiará la fuente, en Negrita, el
Subrayado, y el color de fondo, al salir el puntero fuera del botón, se reestablecerá a la fuente normal, y se restaurará el color de
fondo usando el color por defecto que utiliza windows para los botones, mediante la constante VbButtonFace

Para el ejemplo, colocar un Command1, colocar la propiedad Style en Graphical y pegar estas líneas en el formulario:

Texto planoImprimir

1. Option Explicit
2.
3. ' -- Flag para que no se ejecute constantemente
4. ' -- el código del Form y del CommandButton
5. Dim Flag As Boolean
6.
7. Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
8.
9. ' -- Establecer la fuente del commandButton en negrita y con subrayado
10. If Flag Then
11. Command1.Font.Bold = True
12. Command1.Font.Underline = True
13. Command1.BackColor = vbWhite
14. Flag = False
15. End If
16.
17. End Sub
18.
19. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
20. ' -- Quita la negrita, el subrayado, y restaura el color de fondo
21. If Flag = False Then
22. Command1.Font.Bold = False
23. Command1.Font.Underline = False
24. Command1.BackColor = vbButtonFace
25. Flag = True
26. End If
27.
28. End Sub

Propiedad Default

Esta propiedad es muy útil en ciertas locaciones, sobre todo en formularios y programas que utilizan bases de datos, y opciones
para buscar.

Default puede tener dos valores , True o False. Si está en True, el botón será el botón por defecto que se ejecutará cuando se
presione la tecla enter. Por ejemplo hagamos de cuenta que nuestro programa contiene un botón. Ese botón ejecuta un código
para buscar datos en una base de datos. Si el usuario en un momento determinado, se encuentra escribiendo datos en un control
textbox, y presiona la tecla Enter, el CommandButton al tener la propiedad Default en True, ejecutará el código que tenga en el
evento click. En este caso , en el evento clic, contendría todo el código para realizar la búsqueda de registros.

Un simple ejemplo

Coloca: Un control TextBox, un CommandButton. Pega el siguiente código


Texto planoImprimir

1. Option Explicit
2.
3. Private Sub Command1_Click()
4. MsgBox "Se ejecutó el evento Click del commandButton", vbInformation
5. End Sub
6.
7. Private Sub Form_Load()
8. ' -- Establecer propiedad Default
9. Command1.Default = True
10.
11. MsgBox "Coloca el cursor en un control textbox para que tome el foco, " & _
12. "y luego, presiona la tecla enter, y verás como de todas formas " & _
13. "se ejecutó el evento click ya que es el control por defecto del" & _
14. "formulario. ( Nota .Solo puede haber un solo botón con la propiedad " & _
15. "Default en un formuario)", vbInformation
16.
17. End Sub

Propiedades de posición

Las propiedades de posición son las que permiten cambiar el tamaño y la posición en el objeto que lo contiene. estas propiedades
son cuatro : Left, Top, Height y Width.

El siguiente ejemplo muestra como usar estas propiedades. Supongamos que nuestro formulario contiene un botón "Salir" en la
parte inferior:
Ahora bien ¿ como hacer para que al presionar el botón de maximizar del formulario o cambiar de tamaño el formulario, el botón
continúe situado en la esquina inferior derecha ? Para ello hay que modificar la propiedad Left y Top del botón. ¿ Pero donde
colocar el código? para ello se debe colocar en el evento Resize del formulario.

Puedes probar este simple ejemplo con el siguiente código:

Texto planoImprimir

1. Option Explicit
2.
3. ' Valores para márgenes - Prueba cambiando estos valores
4. Private Const MARGEN_IZQUIERDO As Single = 60
5. Private Const MARGEN_INFERIOR As Single = 60
6.
7. Private Sub Command1_Click()
8. Unload Me
9. End Sub
10.
11. Private Sub Form_Load()
12. Command1.Caption = "Salir"
13. End Sub
14.
15. ' -- Posicionar el botón al cambiar de tamaño la ventana de formulario
16. Private Sub Form_Resize()
17. Command1.Left = (Me.ScaleWidth - Command1.Width) - MARGEN_IZQUIERDO
18. Command1.Top = (Me.ScaleHeight - Command1.Height) - MARGEN_INFERIOR
19. End Sub

Propiedad Enabled

Esta propiedad lo que hace es habilitar o deshabilitar el botón. Es una propiedad que la poseen casi todos los controles, tanto los
de Visual basic, como otros controles de terceros ( controles ocx o Activex )

Aquí puedes ver ver un pequeño ejemplo de su uso.

Supongamos que nuestro programa contiene un un control de texto donde se ingresan datos para buscar registros en una base de
datos. Y también tenemos un botón que contiene el código que debe ejecutar para realizar la búsqueda dentro de la base de datos.
Si en algún momento el control de texto no contiene datos, es decir no contiene texto valga la redundancia, no sería necesario
que el botón se encuentre habilitado, por el contrario, deberíamos deshabilitarlo.

Puedes probar este simple ejemplo, colocando un control Textbox , un botón y pegando el siguiente código en el formulario
principal
Texto planoImprimir

1. Option Explicit
2.
3.
4. Private Sub Command1_Click()
5. MsgBox Text1.Text, vbInformation
6. End Sub
7.
8. Private Sub Form_Load()
9. Text1.Text = ""
10. Command1.Caption = "Buscar .."
11. End Sub
12.
13. ' -- El evento Change se produce cuando cambia el contenido
14. ' -- de la caja de texto
15. Private Sub Text1_Change()
16. If Text1.Text = "" Then
17. Command1.Enabled = False
18. Else
19. Command1.Enabled = True
20. End If
21. End Sub

Modificar propiedades de varios controles

Si en el algún momento se necesita, por ejempo, habilitar o deshabilitar todos los botones que hay en el formulario, o por
ejemplo camabiarle y establecerle otras propiedades que se deseen, puedes utilizar un bucle For Each para recorrer todos los
controles del formulario,y utilizando el operador TypeOf de Visual basic, comprobar si el control dentro del bucle es de tipo
CommandButton.

Nota. El ejemplo no tiene ninguna utilidad especifica, solo muestra el uso del ejemplo.
Debes colocar dos controles textBox. Text1 y Text2, y todos los botones que desees, por ejemplo 4 como mustra la imagen de
abajo

Al colocar el cursor en el Text1 se habilitarán todos los botones, luego al colocar el cursor en el Text2, es decir cuando recibe el
foco, se deshabilitarán todos los botones.

Texto planoImprimir

1. Option Explicit
2.
3. Private Sub Form_Load()
4. Command1.Caption = "Opción 1"
5. Command2.Caption = "Opción 2"
6. Command3.Caption = "Opción 3"
7. Command4.Caption = "Opción 4"
8. End Sub
9.
10. ' \\ -- Procedimiento para activar y desactivar los botones
11. Sub EnabledDisabled(ByVal bValue As Boolean)
12.
13. ' -- Recorrer todos los objetos y controles del form
14. Dim xCtrl As Control
15. For Each xCtrl In Me.Controls
16. ' xCtrl ¿ es un Command Button ?
17. If TypeOf xCtrl Is CommandButton Then
18. ' si lo es, entonces habilitarlo o deshabilitarlo
19. xCtrl.Enabled = bValue
20. End If
21. Next
22. End Sub
23.
24. '\\ -- Deshabilitar
25. Private Sub Text2_GotFocus()
26. Call EnabledDisabled(False)
27. End Sub
28.
29. '\\ -- Activar
30. Private Sub Text1_GotFocus()
31. Call EnabledDisabled(True)
32. End Sub

Propiedad MousePointer y Mouseicon

Estas dos propiedades son muy simples de usar y son comunes a la mayoría de objetos y controles de vb

Mousepointer devuelve o establece el tipo de puntero del mouse mostrado al pasar por encima de un objeto

MouseIcon establece un icono personalizado para el mouse

Ejemplo. Colocar un control ListBox y un botón. Pegar el siguiente código fuente en el formulario
Texto planoImprimir

1. Option Explicit
2.
3. Private Sub Form_Load()
4.
5. With Command1
6. ' -- Puntero de mouse personalizado - Pasar usar con íconos
7. .MousePointer = 99
8. ' --
usar el ícono del formulario ( Puedes especificar el que desees cargandolo desde la ventana de propiedades o utilizando la función
LoadPicture)
9. .MouseIcon = Me.Icon
10. End With
11.
12. ' -- Cargar la lista de punters de mouse para el botón
13. With List1
14. .AddItem "0 - Default"
15. .AddItem "1 - Arrow"
16. .AddItem "2 - Cross"
17. .AddItem "3 - Beam"
18. .AddItem "4 - Icon"
19. .AddItem "5 - Size Ne SW"
20. .AddItem "6 - Size Ne SW"
21. .AddItem "7 - Size N S"
22. .AddItem "8 - Size NW Se"
23. .AddItem "9 - Up Arrow"
24. .AddItem "10 - HourGlass"
25. .AddItem "Custom"
26. End With
27.
28. End Sub
29.
30. Private Sub List1_Click()
31. ' -- Cambiar la propiedad MousePointer
32. With List1
33. If .ListIndex <> -1 Then
34. Command1.MousePointer = .ListIndex
35. End If
36. If .ListIndex = .ListCount - 1 Then
37. Command1.MousePointer = 99
38. Command1.MouseIcon = Me.Icon
39. End If
40. End With
41. End Sub

Métodos y funciones
Este control prácticamente no contiene métodos o funciones. El mas importante y el mas utilizado es el método SetFocus, que
también lo posen muchos otros controles.

Lo que hace el método setFocus, es poder establecer el enfoque a un objeto especifico, en este caso al botón. Su uso es muy
simple, solo basta con ejecutarlo desde alguna parte de nuestro programa para que el Commandbutton pase a tener el foco.
Una cosa muy importante a tener en cuenta , es que para poder establecer el foco a cualquier control de visual basic, el objeto se
debe encontrar visible, y también se debe encontrar habilitado. Es decir, si la propiedad Visible o la propiedad Enabled del objeto
se encuentran en False, esto producirá un error en tiempo de ejecución. Por ello siempre se debe colocar una rutina de error para
poder controlar esto, o comprobando estas propiedades mediante una instrucción If Then

Para recrear este error puedes ejecutar este código

Coloca dos botones

Texto planoImprimir

1. Option Explicit
2.
3. Private Sub Command2_Click()
4. ' -- Esta instrucción generará un error, ya que le intentará pasar el foco
5. ' -- al command1, que se encuentra deshabilitado
6. Command1.SetFocus
7. End Sub
8.
9. Private Sub Form_Load()
10. ' -- Deshabilitamos el Command1
11. Command1.Enabled = False
12. MsgBox "Presiona el Botón Command2", vbInformation
13. End Sub

Para solucionarlo, simplemente puedes hacer algo asi

Colocar dos botones

Texto planoImprimir

1. Option Explicit
2.
3. Private Sub Command2_Click()
4. With Command1
5. ' -- Si está visible y esta habilitado, entonces .. pasar el foco
6. If .Visible And .Enabled Then
7. .SetFocus
8. End If
9. End With
10. End Sub
11.
12. Private Sub Form_Load()
13. MsgBox "Presiona el Botón Command2", vbInformation
14. End Sub

Eventos principales del control CommandButton


Aparte del evento Click que se ejecuta cuando lo presionamos, otros eventos importantes son:

 Evento GotFocus y LostFocus : Se disparan dichos eventos cuando el control recibe o pierde el foco
 MouseMove, MouseDown y MouseUp: El primero se dispara cuando el puntero del mouse se mueve encima del botón,
MouseDown cuando el botón está abajo y cuando está arriba MouseUp

Por ejemplo para probar el uso de los métodos GotFocus y LostFocus (recibe y pierde el foco) colocar 3 CommandButton,
Command1, Command2 y Command3. Luego un Label1 que mostrará el control que recibe el foco (GotFocus) y un Label2
que mostrará el control que pierde el foco (LosFocus)

Luego de añadir los controles pegar el código siguiente en el formulario


Texto planoImprimir

1. Private Sub Command1_GotFocus()


2. Label1 = "El foco lo tiene: " & Command1.Caption
3. End Sub
4.
5. Private Sub Command2_GotFocus()
6. Label1 = "El foco lo tiene: " & Command2.Caption
7. End Sub
8.
9. Private Sub Command3_GotFocus()
10. Label1 = "El foco lo tiene: " & Command3.Caption
11. End Sub
12.
13. Private Sub Command1_LostFocus()
14. Label2 = "Perdió el foco el: " & Command1.Caption
15. End Sub
16.
17. Private Sub Command2_LostFocus()
18. Label2 = "Perdió el foco el: " & Command2.Caption
19. End Sub
20.
21. Private Sub Command3_LostFocus()
22. Label2 = "Perdió el foco el: " & Command3.Caption
23. End Sub

Nota: en la ventana de código podés ver que tenés 2 combos o listas desplegables:
El combo de la izquierda muestra los objetos que tiene el formulario, es decir los controles, rutinas y funciones, y la lista de la
derecha los eventos y métodos del objeto seleccionado en la lista izquierda.

En la captura del ejemplo anterior, se puede ver que cuando el cursor se encuentra dentro de la ventana de código está situado en
un procedimiento determinado, las listas se actualizan mostrándote dicho objeto, por ejemplo el cursor está en el control u objeto
llamado Command3 en el evento Gotfocus, y las listas desplegables muestran esto mismo.

Siguiendo el ejemplo anterior, para escribir código en el evento MouseMove del Command1 para que muestre un mensaje
cuando pasa el mouse encima del botón, se tendría que seleccionar de la lista izquierda el Command1 de esta forma:
y después seleccionar el evento que se quiera utilizar disponible en el otro combo desplegable, en este caso el MouseMove
Al hacer esto en la ventana de código visual basic te agrega un procedimiento vacío:

Ahora el código que escribas dentro de este procedimiento se va a disparar cada vez que pases el mouse encima del Command1.
Por ejemplo para mostrar un mensaje con la función MsgBox cada ves que pases el puntero encima, agrega lo siguiente:

Texto planoImprimir

1. Option Explicit
2.
3. ' -- \\ Evento MouseMove
4. Private Sub Command1_MouseMove( _
5. Button As Integer, _
6. Shift As Integer, X As Single, Y As Single)
7.
8. MsgBox "Estás encima del botón", vbInformation
9.
10. End Sub

Operadores de C y C++
Esta es una lista de los 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 tipos const_cast, static_cast, dynamic_cast y reinterpret_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 la misma precedencia, asociatividad y
semántica. Con una única excepción: la asociatividad del operador ternario en PHP es de izquierda a derecha.

Tabla
Para los objetivos de esta tabla a, b y c representan valores válidos (literales, valores de variables o valores de retorno), nombres
de objetos o valores según el caso.

Operadores de comparación
Nombre del operador Sintaxis Sobrecargable Incluido en C
Menor que a<b Sí Sí
Menor o igual que a <= b Sí Sí
Mayor que a>b Sí Sí
Mayor o igual que a >= b Sí Sí
Diferente de a != b Sí Sí
Igual que a == b Sí Sí
Negación lógica !a Sí Sí
AND lógico a && b Sí Sí
OR lógico a || b Sí Sí

Operadores a nivel de bit


Nombre del operador Sintaxis Sobrecargable Incluido en C
Desplazamiento a la izquierda a << b Sí Sí
Asignación con desplazamiento a la izquierda a <<= b Sí Sí
Desplazamiento a la derecha a >> b Sí Sí
Asignación con desplazamiento a la derecha a >>= b Sí Sí
Complemento a uno ~a Sí Sí
AND binario a&b Sí Sí
Asignación con AND binario a &= b Sí Sí
OR binario a|b Sí Sí
Asignación con OR binario a |= b Sí Sí
XOR binario a^b Sí Sí
Asignación con XOR binario a ^= b Sí Sí

Otros operadores
Nombre del operador Sintaxis Sobrecargable Incluido en C
Asignación básica a=b Sí Sí
Llamada a función a() Sí Sí
Índice de Array a[b] Sí Sí
Indirección (Desreferencia) *a Sí Sí
Dirección de (Referencia) &a Sí Sí
Miembro de puntero a->b Sí Sí
Miembro a.b No Sí
Desreferencia a miembro por puntero a->*b Sí No
Desreferencia a miembro por objeto a.*b No No
Conversión de tipo (tipo) a Sí Sí
Coma a,b Sí Sí
Condicional ternario a?b:c No Sí
Resolución de ámbito a::b No No
Puntero a función miembro a::*b No No
Tamaño de sizeof a No Sí
sizeof(tipo)
Identificación de tipo typeid(a) No No
typeid(tipo)
Asignar almacenamiento new tipo Sí No
Asignar almacenamiento (Vector) new tipo[n] Sí No
Desasignar almacenamiento delete a Sí No
Desasignar almacenamiento (Vector) delete[] a Sí No
Negación y asignación !!a Sí SíCout<<.h>>

Extensiones del lenguaje


Nombre del operador Sintaxis Sobrecargable Incluido en C Compilador
Dirección de la etiqueta && etiqueta No Sí GCC / G++
Obtener tipo typeof a No Sí GCC / G++
typeof(expr)
min y max a <? b No No G++
a >? B
Precedencia de operadores
La tabla siguiente es una lista que muestra el orden de precedencia y la asociatividad de todos los operadores del lenguaje de
programación C++. Están listados de arriba a abajo por orden de precedencia descendente y con la misma descendencia en la
misma celda (puede haber varias filas de operadores en la misma celda). La precedencia de los operadores no cambia por la
sobrecarga

Una tabla de precedencias, aunque adecuada, no puede resolver todos los detalles. Por ejemplo, el operador ternario permite
expresiones arbitrarias como operador central independientemente de la precedencia del resto de operadores. Así a ? b , c : d es
interpretado como a ? (b, c) : d en vez de (a ? b), (c : d). También hay que tener en cuenta que el resultado sin paréntesis de una
expresión de conversión en C no puede ser el operando de sizeof. Por eso sizeof (int) * x es interpretado como (sizeof(int)) * x y no
como sizeof ((int) *x).

Operador Descripción Asociatividad


:: Resolución de ámbito (solo C++) Izquierda a
++ -- Post- incremento y decremento derecha
() Llamada a función
[] Elemento de vector
. Selección de elemento por referencia
->
Selección de elemento con puntero
typeid()
Información de tipo en tiempo de ejecución (solo C++)
const_cast
dynamic_cast Conversión de tipo (solo C++)
reinterpret_cast Conversión de tipo (solo C++)
static_cast Conversión de tipo (solo C++)
Conversión de tipo (solo C++)
++ -- Pre- incremento y decremento Derecha a
+ - Suma y resta unitaria izquierda
! ~ NOT lógico y NOT binario
(type) Conversión de tipo
*
Indirección
&
Dirección de
sizeof Tamaño de
new new[]Asignación dinámica de memoria (solo C++)
delete delete[] Desasignación dinámica de memoria (solo C++)
.* ->* Puntero a miembro (solo C++) Izquierda a
*/% Multiplicación, división y módulo derecha
+- Suma y resta
<< >> Operaciones binarias de desplazamiento
< <= Operadores relaciones "menor que", "menor o igual que", "mayor que" y "mayor o igual que"
> >=
== != Operadores relaciones "igual a" y "distinto de"
& AND binario
^ XOR binario
| OR binario
&& AND lógico
|| OR lógico
c?t:f Operador ternario Derecha a
= Asignaciones izquierda
+= -=
*= /= %=
<<= >>=
&= ^= |=
throw Operador Throw (lanzamiento de excepciones, solo C++)
, Este es el operador de menor prioridad en C. Sirve para separar una colección de expresiones, que se
irán evaluando de izquierda a derecha

Palabras Claves
Las palabras clave son identificadores predefinidos y reservados que tienen un significado especial para el compilador. No se
pueden utilizar como identificadores en un programa a menos que incluyan el carácter @ como prefijo. Por ejemplo, @if es un
identificador válido pero if no lo es porque if es una palabra clave.
En la primera tabla de este tema se enumeran las palabras clave que son identificadores reservados en cualquier parte de un
programa de C#. En la segunda tabla de este tema se enumeran las palabras clave contextuales en C#. Las palabras clave
contextuales solamente tienen un significado especial en un contexto de programa limitado y se pueden utilizar como
identificadores fuera de ese contexto. Normalmente, al agregarse nuevas palabras clave al lenguaje C#, éstas se agregan como
palabras clave contextuales para evitar errores en programas escritos en versiones anteriores.

abstract as base bool


break byte case catch
char checked Clase const
continue decimal default delegate
do double else enum
Event explicit extern false
finally fixed float for
foreach goto if implicit
in in (modificador genérico) int Interface
internal is lock Long
Espacio de new null Objeto
nombres
operador out out (modificador genérico) override
params private Protegido Público
readonly ref return sbyte
sealed short sizeof stackalloc
static string struct switch
this throw true try
typeof uint ulong unchecked
unsafe ushort using virtual
void volatile while

Palabras clave contextuales


Las palabras clave contextuales se utilizan para proporcionar un significado concreto en el código, sin embargo no son palabras
reservadas de C#. Algunas palabras clave contextuales, como partial y where, tienen significados especiales en dos o más
contextos.

Agregar alias ascending


descending dynamic DESDE
get global group
into join let
orderby partial (tipo) partial (método)
remove select set
value var where (restricción de tipo genérico)
where (cláusula de consulta) yield

Mediante otra fuente pudemos decir que se encuentran los siguientes:

Operadores y porcentajes
C# proporciona muchos operadores, que son símbolos que especifican las operaciones (matemáticas, indización, llamada de
función, etc.) que se realizan en una expresión. Puede sobrecargar muchos operadores para cambiar su significado al aplicarlos a
un tipo definido por el usuario.

Las operaciones en tipos enteros (como ==, !=, <, >, &, |) se suelen permitir en tipos de enumeración (enum).

En las secciones se enumeran los operadores de C# desde la precedencia más alta a la más baja. Los operadores de cada sección
comparten el mismo nivel de precedencia.

Operadores principales

Estos son los operadores de precedencia más alta. Tenga en cuenta que puede hacer clic en los operadores para ir a las páginas
de detalles con ejemplos.
x.y: acceso a miembros.

x?.y: acceso a miembros condicional null. Devuelve null si el operando izquierdo es null.

f(x): invocación de función.

a[x]: indización de objeto agregado.

a?[x]: indización condicional null. Devuelve null si el operando izquierdo es null.

x++: incremento de postfijo. Devuelve el valor de x y, a continuación, actualiza la ubicación de almacenamiento con el valor de
x que es uno mayor (normalmente agrega el entero 1).

x--: decremento de postfijo. Devuelve el valor de x; a continuación, actualiza la ubicación de almacenamiento con el valor de x
que es uno menos (normalmente resta el entero 1).

New: creación de instancias de tipo.

Typeof: devuelve el objeto System.Type que representa el operando.

Checked: habilita la comprobación de desbordamiento para operaciones con enteros.

Unchecked: deshabilita la comprobación de desbordamiento para operaciones con enteros. Este es el comportamiento
predeterminado del compilador.

default(T): devuelve el valor inicializado predeterminado de tipo T, null para tipos de referencia, cero para tipos numéricos y
cero o null en miembros para tipos de struct.

Delegate: declara y devuelve una instancia de delegado.

Sizeof: devuelve el tamaño en bytes del operando de tipo.

->: desreferenciación del puntero combinada con acceso a miembros.


Operadores unarios

Estos operadores tienen mayor precedencia que los de la sección siguiente y menor que los de la anterior. Tenga en cuenta que
puede hacer clic en los operadores para ir a las páginas de detalles con ejemplos.

+x: devuelve el valor de x.

-x: negación numérica.

!x: negación lógica.

~x: complemento bit a bit.

++x: incremento de prefijo. Devuelve el valor de x después de actualizar la ubicación de almacenamiento con el valor de x que
es uno mayor (normalmente agrega el entero 1).

--x: decremento de prefijo. Devuelve el valor de x después de actualizar la ubicación de almacenamiento con el valor de x que es
uno menos (normalmente resta el entero 1).

(T)x: conversión de tipos.

Await: espera una Task.

&x: dirección de.

*x: desreferenciación.

Operadores multiplicativos

Estos operadores tienen mayor precedencia que los de la sección siguiente y menor que los de la anterior. Tenga en cuenta que
puede hacer clic en los operadores para ir a las páginas de detalles con ejemplos.

x * y: multiplicación.
x / y: división. Si los operandos son enteros, el resultado es un entero que se trunca hacia cero (por ejemplo, -7 / 2 is -3).

x % y: módulo. Si los operandos son enteros, devuelve el resto de dividir x entre y. Si q = x / y y r = x % y, entonces x = q * y +
r.

Operadores aditivos

Estos operadores tienen mayor precedencia que los de la sección siguiente y menor que los de la anterior. Tenga en cuenta que
puede hacer clic en los operadores para ir a las páginas de detalles con ejemplos.

x + y: suma.

x – y: resta.

Operadores de desplazamiento

Estos operadores tienen mayor precedencia que los de la sección siguiente y menor que los de la anterior. Tenga en cuenta que
puede hacer clic en los operadores para ir a las páginas de detalles con ejemplos.

x << y: desplaza los bits a la izquierda y rellena con cero a la derecha.

x >> y: desplaza los bits a la derecha. Si el operando izquierdo es int o long, los bits de la izquierda se rellenan con el bit de
signo. Si el operando izquierdo es uint o ulong, los bits de la izquierda se rellenan con cero.

Operadores de comprobación de tipos y relacionales

Estos operadores tienen mayor precedencia que los de la sección siguiente y menor que los de la anterior. Tenga en cuenta que
puede hacer clic en los operadores para ir a las páginas de detalles con ejemplos.

x < y: menor que (true si x es menor que y).

x > y: mayor que (true si x es mayor que y).


x <= y: menor o igual que.

x >= y: menor o igual que.

Is: compatibilidad de tipos. Devuelve true si el operando izquierdo evaluado se puede convertir al tipo especificado en el
operando derecho (un tipo estático).

As: conversión de tipos. Devuelve el operando izquierdo convertido al tipo especificado por el operando derecho (un tipo
estático), pero as devuelve null donde (T)x produciría una excepción.

Operadores de igualdad

Estos operadores tienen mayor precedencia que los de la sección siguiente y menor que los de la anterior. Tenga en cuenta que
puede hacer clic en los operadores para ir a las páginas de detalles con ejemplos.

x == y: igualdad. De forma predeterminada, para los tipos de referencia distintos de string, devuelve igualdad de referencia
(prueba de identidad). Sin embargo, los tipos pueden sobrecargar ==, por lo que si su intención es probar la identidad, es mejor
usar el método ReferenceEquals en object.

x != y: distinto de. Vea el comentario de ==. Si un tipo sobrecarga ==, debe sobrecargar !=.

Operador lógico AND

Este operador tiene mayor precedencia que el de la sección siguiente y menor que los de la anterior. Tenga en cuenta que puede
hacer clic en el operador para ir a la página de detalles con ejemplos.

x & y: AND lógico o bit a bit. El uso con tipos enteros y tipos enum suele estar permitido.

Operador lógico XOR

Este operador tiene mayor precedencia que el de la sección siguiente y menor que el de la anterior. Tenga en cuenta que puede
hacer clic en el operador para ir a la página de detalles con ejemplos.
x ^ y: XOR lógico o bit a bit. Por lo general puede usarlo con tipos enteros y tipos enum.

Operador lógico OR

Este operador tiene mayor precedencia que el de la sección siguiente y menor que el de la anterior. Tenga en cuenta que puede
hacer clic en el operador para ir a la página de detalles con ejemplos.

x | y: OR lógico o bit a bit. El uso con tipos enteros y tipos enum suele estar permitido.

Operador condicional AND

Este operador tiene mayor precedencia que el de la sección siguiente y menor que el de la anterior. Tenga en cuenta que puede
hacer clic en el operador para ir a la página de detalles con ejemplos.

x && y: AND lógico. Si el primer operando es false, C# no evalúa el segundo operando.

Operador condicional OR

Este operador tiene mayor precedencia que el de la sección siguiente y menor que el de la anterior. Tenga en cuenta que puede
hacer clic en el operador para ir a la página de detalles con ejemplos.

x || y: OR lógico. Si el primer operando es true, C# no evalúa el segundo operando.

Operador de uso combinado de null

Este operador tiene mayor precedencia que el de la sección siguiente y menor que el de la anterior. Tenga en cuenta que puede
hacer clic en el operador para ir a la página de detalles con ejemplos.

x ?? y: devuelve x si no es null; de lo contrario, devuelve y.

Operador condicional
Este operador tiene mayor precedencia que el de la sección siguiente y menor que el de la anterior. Tenga en cuenta que puede
hacer clic en el operador para ir a la página de detalles con ejemplos.

t ? x : y: si la prueba t es true, evalúa y devuelve x; en caso contrario, evalúa y devuelve y.

Operadores de asignación y Lambda

Estos operadores tienen mayor precedencia que los de la sección siguiente y menor que el de la anterior. Tenga en cuenta que
puede hacer clic en los operadores para ir a las páginas de detalles con ejemplos.

x = y: asignación.

x += y: incremento. Agregue el valor de y al valor de x, almacene el resultado en x y devuelva el nuevo valor. Si x designa un
event, y debe ser una función adecuada que C# agregue como un controlador de eventos.

x -= y: decremento. Reste el valor de y del valor de x, almacene el resultado en x y devuelva el nuevo valor. Si x designa un
event, y debe ser una función adecuada que C# quite como un controlador de eventos.

x *= y: asignación y multiplicación. Multiplique el valor de y por el valor de x, almacene el resultado en x y devuelva el nuevo
valor.

x /= y: asignación y división. Divida el valor de x por el valor de y, almacene el resultado en x y devuelva el nuevo valor.

x %= y: asignación y módulo. Divida el valor de x por el valor de y, almacene el resto en x y devuelva el nuevo valor.

x &= y: asignación y AND. AND el valor de y con el valor de x, almacene el resultado en x y devuelva el nuevo valor.

x |= y: asignación y OR. OR el valor de y con el valor de x, almacene el resultado en x y devuelva el nuevo valor.

x ^= y: asignación y XOR. XOR el valor de y con el valor de x, almacene el resultado en x y devuelva el nuevo valor.
x <<= y: asignación y desplazamiento a la izquierda. Desplace el valor de x a la izquierda y lugares, almacene el resultado en x
y devuelva el nuevo valor.

x >>= y: asignación y desplazamiento a la derecha. Desplace el valor de x a la derecha y posiciones, almacene el resultado en x
y devuelva el nuevo valor.

=>: declaración lambda.

Desbordamiento aritmético

Los operadores aritméticos (+, -, *, /) pueden producir resultados fuera del rango de valores posibles para el tipo numérico
implicado. Para obtener detalles debe ir a la sección del operador en cuestión, pero en general:

El desbordamiento aritmético de enteros produce una OverflowException o descarta los bits más significativos del resultado.
La división de enteros por cero siempre produce una DivideByZeroException.

El desbordamiento aritmético de punto flotante o la división por cero nunca producen una excepción, porque los tipos de punto
flotante se basan en el estándar IEEE 754 y por tanto tienen disposiciones para representar el infinito y NaN (No es un número).

El desbordamiento aritmético decimal siempre produce una OverflowException. La división decimal por cero siempre
produce una DivideByZeroException.

Cuando se produce el desbordamiento de enteros, lo que suceda dependerá del contexto de ejecución, que puede ser comprobado
o no comprobado. En un contexto comprobado, se produce una OverflowException. En un contexto no comprobado, se
descartan los bits más significativos del resultado y la ejecución continúa. Por lo tanto, C# ofrece la posibilidad de controlar u
omitir el desbordamiento.

Además de los operadores aritméticos, las conversiones de tipo entero a tipo entero también pueden provocar un desbordamiento
(por ejemplo, la conversión de un long a un int) y están sujetas a ejecución comprobada o no comprobada. Sin embargo, los
operadores bit a bit y los de desplazamiento nunca producen desbordamiento.
Los operadores aritméticos se utilizan para realizar muchas de las operaciones aritméticas habituales que implican el cálculo de
valores numéricos representados por literales, variables, otras expresiones, llamadas a funciones y propiedades, y
constantes. También se clasifican como operadores aritméticos los operadores de desplazamiento de bits, que actúan al nivel de
bits individuales de los operandos y cambian sus modelos de bits a la izquierda o la derecha.

Operaciones aritméticas
Puede sumar dos valores en una expresión con el + (Operador, Visual Basic) o restar un valor de otro con el - (Operador, Visual
Basic), como se muestra en el siguiente ejemplo.

VB

Dim x As Integer
x = 67 + 34
x = 32 - 12

La negación también utiliza el - (Operador, Visual Basic), pero con un solo operando, como se puede ver en el ejemplo siguiente.

VB

Dim x As Integer = 65
Dim y As Integer
y = -x

La multiplicación y la división utilizan los * (Operador, Visual Basic) y / (Operador, Visual Basic), respectivamente, como se
muestra en el ejemplo siguiente.

VB

Dim y As Double
y = 45 * 55.23
y = 32 / 23
La exponenciación utiliza el ^ (Operador, Visual Basic), como se puede ver en el ejemplo siguiente.

VB

Dim z As Double
z = 23 ^ 3
' The preceding statement sets z to 12167 (the cube of 23).

La división de enteros se lleva a cabo con el \ (Operador, Visual Basic). La división de enteros devuelve el cociente, es decir, el
número entero que representa el número de veces que puede se puede dividir dividendo entre el divisor sin tener en cuenta el
valor del resto. El divisor y el dividendo deben ser tipos enteros (SByte, Byte, Short, UShort, Integer, UInteger, Long y
ULong) para este operador. Todos los demás tipos deben convertirse antes a tipos enteros. El ejemplo siguiente ilustra la
división de enteros.

VB

Dim k As Integer
k = 23 \ 5
' The preceding statement sets k to 4.

El módulo aritmético se calcula con el Mod (Operador, Visual Basic). Este operador devuelve el resto después de dividir el
divisor por el dividendo un número integral de veces. Si tanto el divisor como el dividendo son tipos enteros, el valor devuelto
es entero. Si el divisor y el dividendo son tipos de punto flotante, el valor devuelto es una variable de punto flotante. En el
siguiente ejemplo se muestra este comportamiento.

VB

Dim x As Integer = 100


Dim y As Integer = 6
Dim z As Integer
z = x Mod y
' The preceding statement sets z to 4.
VB
Dim a As Double = 100.3
Dim b As Double = 4.13
Dim c As Double
c = a Mod b
' The preceding statement sets c to 1.18.

Intento de dividir por cero

La división por cero produce resultados diferentes dependiendo de los tipos de datos que se utilicen. En divisiones de enteros
(SByte, Byte, Short, UShort, Integer, UInteger, Long, ULong), .NET Framework inicia una excepción
DivideByZeroException. En operaciones de división del tipo de datos Decimal o Single, .NET Framework también produce una
excepción DivideByZeroException.

En las divisiones de punto flotante que impliquen el tipo de datos Double, no se produce ninguna excepción y el resultado es el
miembro de clase que representa NaN, PositiveInfinity o NegativeInfinity, dependiendo del dividendo. La siguiente tabla
resume los diferentes resultados de intentar dividir un valor Double por cero.

Tipo de datos del dividendo Tipo de datos del divisor Valor del dividendo Resultado
Double Double 0 NaN (no es un número definido matemáticamente)
Double Double >0 PositiveInfinity
Double Double <0 NegativeInfinity

Cuando se detecta una excepción DivideByZeroException, puede utilizar los miembros de la excepción para controlarla. Por
ejemplo, la propiedad Message contiene el texto del mensaje de la excepción. Para obtener más información, vea Instrucción
Try...Catch...Finally (Visual Basic).

Operaciones de desplazamiento de bits


Una operación de desplazamiento de bits realiza un desplazamiento aritmético sobre un modelo de bits. El patrón está contenido
en el operando de la izquierda, mientras que el operando de la derecha especifica el número de posiciones que debe desplazarse
el modelo. Puede desplazar el modelo a la derecha con >> (Operador, Visual Basic) o a la izquierda con << (Operador, Visual
Basic).

El tipo de datos del operando del modelo debe ser SByte, Byte, Short, UShort, Integer, UInteger, Long o ULong. El tipo de
datos del operando de cantidad de desplazamiento debe ser Integer o se debe ampliar a Integer.

Los desplazamientos aritméticos no son circulares, lo que significa que los bits desplazados a un extremo del resultado no se
vuelven a introducir en el otro extremo. Las posiciones de bits que quedan vacantes debido a un desplazamiento se establecen de
la siguiente manera:

 0 para un desplazamiento aritmético a la izquierda


 0 para un desplazamiento aritmético a la derecha de un número positivo
 0 para un desplazamiento aritmético a la derecha de un tipo de datos sin signo (Byte, UShort, UInteger, ULong)
 1 para un desplazamiento aritmético a la derecha de un número negativo (SByte, Short, Integer o Long)

El ejemplo siguiente desplaza un valor Integer tanto a la izquierda como a la derecha.

VB

Dim lResult, rResult As Integer


Dim pattern As Integer = 12
' The low-order bits of pattern are 0000 1100.
lResult = pattern << 3
' A left shift of 3 bits produces a value of 96.
rResult = pattern >> 2
' A right shift of 2 bits produces value of 3.

Los desplazamientos aritméticos nunca generan excepciones de desbordamiento.

El operador de % calcula el resto después de dividir el primer operando por el segundo.Todos los tipos numéricos han
predefinido a operadores del resto.

class MainClass6
{
static void Main()
{
Console.WriteLine(5 % 2); // int
Console.WriteLine(-5 % 2); // int
Console.WriteLine(5.0 % 2.2); // double
Console.WriteLine(5.0m % 2.2m); // decimal
Console.WriteLine(-5.2 % 2.0); // double
}
}
/*
Output:
1
-1
0.6
0.6
-1.2
*/

Bibliotecas de Funciones
El lenguaje C, C++ contiene numerosas funciones, cuando se emplean funciones de esta biblioteca estandar, se incrementa la
transportabilidad de los programas.

Las funciones estandar se dividen en grupos, todas las funciones que pertenecen al mismo grupo estan declaradas en el archivo
de cabecera (aquel que dice xxx.h), la letra "h" significa header en inglés y es lo que se llama cabecera.

Para incluir alguna función perteneciente a estas cabeceras debemos escribir líneas de código como se muestra de ejemplo:

#include

He disenado esta tabla para que estudiemos las bibliotecas de funciones, obviamente son las que he encontrado en mis libros y
sistemas.
Bibliotecas y Descripciones de Uso
Nombre de Descripcion
Biblioteca
assert.h Es proporcionar una definicion de la macro assert, que imprime un mensaje de error y aborta el programa
alloc.h Existen funciones para asignar, liberar memoria, u obtener informacion de bloques de memoria.
ctype.h Son funciones que nos permiten conocer la naturaleza de un caracter, o bien para convertir de mayusculas a
minusculas y viceversa; y valores enteros a codigos ASCII.
dir.h Esto permite ordenar, crear, modificar, mover y eliminar directorios
errno.h Representa los numeros de error, despues que ocurre un error se puede consultar el valor de la varianble del
sistema deerrno para obtener mas informacion sobre ese error.
float.h Define los limites de los tipos de coma flotante
limits.h Define los limites de los diferentes tipos de enteros
math.h Contiene las funciones matematicas estandar utilizadas en C y C++
setjmp.h Define el tipo de jmp_buf para algunas funciones.
signal.h Contiene funciones de estado.
stdarg.h Define funciones que pueden ser llamadas con diferentes numeros de argumentos, de modo que se pueda
escribir f(a) y f(a,b).
stdef.h Se definen algunos tipos especiales
stdio.h Incorporan las funciones de Entrada - Salida E/S estandar, tipos y macros
stlib.h Declara funciones que son utiles para diferentes propositos, en especial de busqueda y ordenacion.
string.h Este archivo contiene funciones para manejo de cadenas de caracteres.
time.h Contiene funciones relativas a fechas y horas

Funciones Encontradas en las Bibliotecas


# Nombr Tipo Bibliotec Sintaxis Descripción Ejemplo
e de a a la
función cual
pertenec
e
1 abs(i) int stdlib.h int abs(int i); Devuelve el valor x = abs(-7) // x es 7
absoluto de i
2 acos(d) double math.h double acos(double d); Devuelve el arco coseno angulo = acos(0.5); // angulo devuelto
de d es phi/3
3 asin(d) double math.h double asin(double d); Devuelve el arco seno de angulo = asin(0.707); //
d aproximadamente phi/4
4 atan(d) double math.h double atan(double d); Devuelve la arco angulo atan(1.0); // angulo es phi/4
long double tanl(long tangente de d. Calcula el
double d); arco tangente del
argumento x. Requiere el
llamado de la biblioteca
complex.h
5 atan(d1, double math.h double atan(double d1, Devuelve el arco angulo = atan(y, x)
d2) double d2); tangente de d1/d2
6 atof(s) double stdlib.h double atof(const char Convierte la cadena s a double x;
*cadena) una cantidad de doble char *cad_dbl = "200.85"; ...
precisión. Requiere el x=atof(cad_dbl); // convierte la cadena
llamdo de la biblioteca "200.85" a valor real
math.h
7 atoi(s) int stdlib.h int atoi(const char Convierte la cadena s a int i;
*cadena) un entero. char *cad_ent="123";
La cadena debe tener el ...
siguiente formato: i=atoi(cad_ent); //convierte la cadena
[espacio en "123" al entero 123
blanco][signo][ddd]
(siendo obligatorio los
digitos decimales).
8 atol(s) long stdlib.h long atol(const char Convierte la cadena s a long int i;
*cadena); un entero largo. char cad_ent="9876543";
La cadena debe tener el ...
siguiente formato: i=atol(cad_ent); //convierte la cadena
[espacio en "9876543" al entero largo
blanco][signo][ddd]
(siendo obligatorio los
digitos decimales).
9 calloc(n, void(punter malloc.h y void *calloc(size_t n, Reserva memoria para long *buffer
s) o) stdlib.h size_t s); una formación de n buffer=(long *) calloc(40, sizeof(long));
o bien elementos , cada uno de
alloc.h y s bytes. Devuelve un
stdlib.h puntero al principio del
espacio reservado.
Si no existente bastante
espacio para el nuevo
bloque o bien n o s es 0,
calloc devuelve nulo.
10 ceil(d) double math.h double ceil(double d); Devuelve un valor redondeo=ceil(5.1); //redondeo es 6
redondeado por exceso
al siguiente entero mayor
11 cos(d) double math.h double cos(double d); Devuelve el coseno de d coseno_x=cos(1.6543)
complex cos(complex
d);
12 cosh(d) double math.h double cos(double d); Devuelve el coseno d=1.00;
complex cos(complex hiperbólico de d printf("d=%f.\n\n,d);
d);
13 difftime( double time.h double difftime(time_t Devuelve la diferencia time_t inicio, fin;
11, 12) hora2, time_t hora1) de tiempo 11(hora2) - clrscrl();
12(hora1) , donde 11 y inicio=time(NULL);
12 representan el tiempo delay(5000)
transcurrido despues de fin=time(NULL)
un tiempo base (ver print("Diferencia en segundos: %f\n",
función time) difftime(inicio,fin));
14 exit(u) void stdlib.h void exit(int estado) Cierra todos los archivos exit(0);
y buffers y termina el
programa. El valor de u
es asignado por la
funcion para indicar el
estado de terminación.
15 exp(d) double math.h double exp(double d); Eleve e a la potencia d d=100.00;
complex exp(complex (e=2,7182818... es la y=exp(d);
d) base del sistema de printf("El exponencial de
logaritmos naturales x=%f.\n\n",y);
(neperianos))
16 fabs(d) double math.h double fabs(double d); Devuelve el valor y=fabs(-7.25); // y vale 7.25
absoluto de d
17 fclose(f) int stdio.h int fclose(FILE *f); Cierra el archivo f. int fclose(FILE "archivo");
Devuelve el valor 0 si el
archivo se ha cerrado
con exito.
18 feof(f) int stdio.h int feof(FILE *f); Determina si se ha feof(fichen);
encontrado un fin de
archivo. si es asi,
devuelve un valor
distinto de cero, en otro
caso devuelve 0
19 fgetc(f) int stdio.h int fgetc(FILE f); Lee un caracter del c+fgetc(fp)
archivo f
20 fegts(s, i, char(punter stdio.h char *fgets(char s, int Lee una cadena s, con i fgets(caddemo, 80, fp);
f) o) s, FILE *f); caracteres, del archivo f
21 floor(d) double math.h double floor(double d); Devuelve un valor x=floor(6.25); // x vale 6
redondeado por defecto
al entero menor mas
cercano
22 fmod(d1, double math.h double fmod(double Devuelve el resto de resto=fmod(5.0,2.0); // resto igual a 1.0
d2) d1, double d2); d1/d2 (con el mismo
signo que d1)
23 fopen(s1, file(puntero stdio.h FILE *fopen(const Abre un archivo llamado if
s2) ) char *s1, const char s1, del tipo s2. Devuelve ((corriente2=fopen("datos","W+"))==N
*s2) un puntero al archivo. * ULL
printf("El archivo...no se ha abierto
Mod \n");
Accion
o

Abre para
"r"
lectura

Abre un
"w" archivo vacio
para escritura

Abre para
escritura al
"a"
final del
archivo

Abre para
"r+" lectura/escrit
ura

Abre un
archivo vacio
"w+" para
lectura/escrit
ura

Abre para
"a+" lectura y
anadir
Abre un
archivo
"rb"
binario para
lectura.

Abre un
archivo
"wb"
binario para
escritura

Abre un
archivo
"ab"
binario para
anadir

Abre un
archivo
"rb+
binario para
"
lectura/escrit
ura.

Abre un
archivo
"wb
binario para
+"
lectura/escrit
ura

"ab+ Abre o crea


" un archivo
binario para
lectura/escrit
ura

24 fprintf(f, int stdio.h int fprintf(FILE *f, Escribe datos en el fprintf(f1, "El resultado es
...) const char *formato archivo f (el resto de los %f\n",result);
[,arg,...]); argumentos
25 fputc(c, int stdio.h int fputc(int c, FILEEscribe un caracter en el fputc(*(p++), stdout);
f) *f); archivo f
26 fputs(s, int stdio.h int fputs(const char Escribe una cadena de fputs("esto es una prueba", f1);
f) *cad, FILE *f) caracteres en el archivo f
27 fread(s, int stdio.h size_t fread(void *b,Lee i2 elementos, cada fread(buf, strlen(msg)+1, 1, flujo);
i1, i2, f) size_t t, size_t n, FILE
uno de tamano i1 bytes,
*f); desde el archivo f hasta
la cadena s
28 free(p) void malloc.h o void free(void Libera un bloque de char *cad;
stdlib.h *dir_memoria); memoria reservada cuyo // asignar memoria a la cadena
principio esta indicado cad=(char *)malloc(50);
por p. ...
free(cad); // liberar memoria
29 fscanf(f, int math.h int fscanf(FILE *f, Lee datos del archivo f ( fscanf(flujo, %s%f, cad, &f);
...) const char *formato, [, el resto de los
direccion,... ]); argumentos
30 fseek(f, l, int stdio.h int fseek(FILE *f, long Mueve el puntero al fseek(f1,OL,SEEK_SET); // ir al
i) desplaza, int origen); archivo f una distancia principio
de 1 bytes desde la
posicion i (i puede
representar el principio
del archivo, la posicion
actual del puntero o el
fin del archivo.
Notas
Significa
Origen
do

Principio
SEEK_SE
de
T
archivo

Posicion
SEEK_C
actual
UR
puntero

SEEK_E Final del


ND archivo

31 ftell(f) long int stdio.h long int ftell(FILE *f); Devuelve la posicion ftell(fichen)
actual del puntero dentro
del archivo f
32 fwrite(s, int stdio.h size_t fwrite(const void Escribe i2 elementos, num=fwrite(lista,sizeof(char),25,flujo);
i1, i2, f) *p, size_t i1, size_t i2, cada uno de tamano 1
FILE *f); bytes, desde la cadena s
hasta el archivo f
33 getc(f) int stdio.h int getc(FILE *f); Lee un caracter del while(c=getc(fx) !=EOF {
archivo f print ("%c",c);
}
34 getchar( int stdio.h int getchar(void); Lee un caracter desde el int c;
) dispostivo de entrada while((*c=getchar()) != '\n')
estandar print ("%c",c);
35 gets(s) char(punter stdio.h char *gets(char *cad); Lee una cadena de gets(nombre);
o) caracteres desde el
dispositivo de entrada
estandar
36 isalnum( int ctype.h int isalnum(int c); Determina si el carac=getch();
c) argumento es if (isalnum(carac))
alfanumerico. Devuelve print("%c letra|digito \n",carac);
un valor disitinto de cero else
si es cierto; en otro caso printf("%c no letra|digito \n", carac);
devuelve 0
37 isalpha(c int ctype.h int isalpha(int c); Determina si el int c;
) argumento es alfabetico. if (isalpha(c)) printf("%c es letra\n",c);
Devuelve un valor
distinto de cero si es
cierto; en otro caso
devuelve 0.
38 isascii(c) int ctype.h int isascii(int c); Determina si el int c;
argumento es un caracter if (isascii(c)) printf('%c es un ascii\n",c)
ASCII. Devuelve un
valor disitinto de cero si
es cierto; en otro caso
devuelve 0
39 iscntrl(c) int ctype.h int isacntrl(int c); Determina si el if(iscntrl(c)) printf"%c es un caracter de
argumento es un caracter control\n",c);
ASCII de control.
Devuelve un valor
distinto de cero si es
cierto; en otro caso
devuelve 0
40 isdigit(c) int ctype.h int isdigit(int c); Determina si el numero if(isdigit(c)) printf"%c es un
es un digito decimal. digito\n",c);
Devuelve un valor
disitinto de cero si es
cierto; en otro caso
devuelve 0
41 isgraph( int ctype.h int isgraph(int c); Determina si el if(isgraph(c)) printf"%c es un caracter
c) argumento es un caracter imprimible(no espacio)\n",c);
ASCII grafico (hex 0x21
-0x7e; octal 041 -176).
Devuelve un valor
distinto de cero si es
cierto; en otro caso
devuelve 0
42 islower(c int ctype.h int islower(int c); Determina si el if(islower(c)) printf"%c es una letra
) argumento es ua minuscula\n",c);
minuscula. Devuelve un
valor distinto de cero si
es cierto; en otro caso
devuelve 0
43 isodigit(c int ctype.h int isodigit(int c); Determina si el if(isodigit(c)) printf"%c es un digito
) argumento es un digito octal\n",c);
octal. Devuelve un valor
distinto de cero si es
cierto; en otro caso
devuelve 0
44 isprint(c int ctype.h int isprintint c); Determina si el el if(isprint(c)) printf("\n"c
) argumento es un caracter imprimible\n",c);
ASCII imprimible (hex
0x20 -0x7e; octal 040 -
176). Devuelve un valor
distinto de cero si es
cierto; en otro caso
devuelve 0
45 ispunct(c int ctype.h int ispunct(int c); Determina si el if(ispunct(c)) printf"%c es un caracter
) argumento es un caracter de puntuacion\n",c);
de puntuacion. Devuelve
un valor distinto de cero
si es cierto; en otro caso
devuelve 0
46 isspace(c int ctype.h int isspace(int c); Determina si el if(isspace(c)) printf"%c es un
) argumento es un espacio espacio\n",c);
en blanco. Devuelve un
valor distinto de cero si
es cierto; en otro caso
devuelve 0
47 isupper( int ctype.h int isupper(int c); Determina si el if(isupper(c)) printf"%c es una
c) argumento es una mayuscula\n",c);
mayuscula. Devuelve un
valor distinto de cero si
es cierto; en otro caso
devuelve 0
48 isxdigit(c int ctype.h int isxdigit(int c); Determina si el ifisxdigit(c)) print"%c es un digito
) argumento es un digito hexadecimal\n",c)
hexadecimal. Devuelve
un valor distinto de cero
si es cierto; en otro caso
devuelve 0
49 labs(l) long int math.h long int labs(long int Devuelve el calorlong lx=-51654,ly;
l); absoluto de 1 ly=labs(lx);
50 log(d) double math.h double log(double d); Devuelve el logaritmo hdouble x,y;
natural de d x=10;
y=log(x);
51 log10(d) double math.h double log10(double Devuelve el logaritmno hdouble x,y;
d); (en base 10) de d x=10;
y=log10(x);
52 malloc(u void(punter stdlib.h void *malloc(size_t u); Reserva u bytes de cadena=malloc(MAX_CHR);
) o) memoria. devuelve un
puntero al principio del
espacio reservado
53 pow(d1, double math.h double pow(double d1, Devuelve d1 elevado a la double x=2.0, y=4.0, z;
d2) double d2); potencia d2 z=pow(x,y); //z sera 1.60
54 printf(...) int stdio.h int printf(const char Escribe datos en print("producto %d y %d es
*formato[,argumento,.. dispositivo de salida %d\n",x,y,x*y);
.]); estandar.
Codig
Formato
o

%c Caracter

Entero
%d
Decimal

Real
(double o
%e float),
notacion
cientifica.

Coma
%f
flotante

Cadena de
%s
caracteres

Hexadecim
%x
al sin signo

55 putc(c, f) int stdio.h int putc(int c, FILE *f);


Escribe un caracter en el putc('*',demo);
archivo f
56 putchar( int stdio.h int putchar(int c); Escribe un caracter en el putchar('B');
c) dispositivo de salida
estandar
57 puts(s) int stdio.h int puts(const char Escribe una cadena de puts("Desea continuar (s/n);
*cad) caracteres en el
dispositivo de salida
estandar
58 rand( ) int stdlib.h int rand(void); Devuelve un entero // visualizar 10 numeros aleatorios
positivo aleatorio
for (i=0;i<10;i++)
printf("%6d\",rand());

59 rewind(f) void stdio.h void rewind(FILE *f); Mueve el puntero al rewind(fx);


principio del archivo f
60 scanf(...) int stdio.h int scanf(const char Lee datos en dispositivo scanf('%d %f %c %s, &i, &fp, &c, s);
*formato de entrada estandar
{,direccion,...]);
Codig
Formato
o

%c Caracter

Enetero
%d
Decimal

Hexadecim
%x
al

Entero
%i
Decimal

Numero
%f
Real

%o Octal
%p Puntero

%s Cadena

61 sin(d) double math.h double sin(double d); Devuelve el seno de d double x, y;


x=0.52;
printf('x =%f radianes\n",x);
y=cos(x);
printf("el coseno de x =%f\n",y);
62 sinh(d) double math.h double sinh(double d); Devuelve el seno y=sinh(x);
hiperbolico de d
63 sqrt(d) double math.h double sqrt(double d); Devuelve la raiz printf("%lf",sqrt(25.0); //se visualiza 5
cuadrada de d
64 srand(u) void stdlib.h void srand(unsigned Inicializa el generador de srand(semilla);
u); numeros aleatorios
65 strcmp(s int string.h int strcmp(const Compara dos cadenas de i=strcmp("MNP", "mnp"); // resultado <
1, s2) char*s1, const char caracteres 0
*s2); lexicograficamente. i=strcmp("abc", "abc"); // resultado = 0
Devuelve un valor i=strcmp("xy", "abc"); // resultado > 0
negativo si s1 < s2; 0 si
s1 y s2 son identicas; y char s1[80]="Mayo";
un valor positivo si s1 > char s2[80]="Octubre";
s2 int j;
j=strcmp(s1,s2);
66 strcmpi( int string.h int strcmpi(const Compara dos cadenas de v=strcmpi(s1,s2);
s1, s2) char*s1, const char caracteres
*s2); lexicograficamente, sin
diferenciar mayusculas
de minusculas. Devuelve
un valor negativo si s1 <
s2; 0 si s1 y s2 son
identicas; y un valor
positivo si s1 > s2
67 strcpy(s1 char string.h char *strcpy(char s1, Copia la cadena de
, s2) const char s2); caracteres s2 en la char *s1="Pepe Luis";
cadena s1 char b[12];
strcpy(s2,s1);
cout <<s2<< '\n';
68 strlen(s) int string.h size_t strlen(const char Devuelve el numero de
*s); caracteres de una cadena longitud=strlen(nombre);
char s[81]="Cadena demo';
printf("La longitud de s es: %d\n"
strlen(s));
69 strset(c, char(punter string.h char *strset(char *cad, Pone todos los caracteres char *cad="----";
s) o) int c); de s a c (excluyendo el strset (cad,'x'); // cad es ahora xxxx
caracter nulo del final \0)
70 system(s int string.h system(comd); Pasa la orden al sistema system(dir);
) operativo. Devuelve cero
si la orden se ejecuta
correctamente; en otro
caso devuelve un valor
distinto de cero,
tipicamente -1.
71 tan(d) double math.h double tan(double d); Devuelve la tangente de y=tan(x);
d
72 tanh(d) double math.h double tanh(double d); Devuelve la tangente a=tanh(x);
hiperbolica de d
73 time(p) long int time.h time_t time(time_t *h); Devuelve el numero de time(&hora);
segundos transcurridos
despues de un tiempo
base designado
74 toascii int ctype.h int toascii(int c); Convierte el valor del c=toascii(entero);
argumento a ASCII
75 tolower int ctype.h o int tolower(int c); Convierte una letra a c=tolower('s'); //c se convierte en 's'
stdlib.h minuscula
76 toupper int ctype.h o int toupper(int c); Convierte una letra a c=toupper('s'); //c se convierte en 'S'
stdlib.h mayuscula
Referencias Electrónicas
https://msdn.microsoft.com/es-es/library/shz02d41%28v=vs.100%29.aspx

http://www.recursosvisualbasic.com.ar/htm/tutoriales/control_commandbutton.htm

https://es.wikipedia.org/wiki/Anexo:Operadores_de_C_y_C%2B%2B

https://msdn.microsoft.com/es-es/library/6a71f45d.aspx

https://msdn.microsoft.com/es-es/library/x53a06bb(v=vs.100).aspx

http://www.data-2013.cl/DOCS/INFORMATICA/PROGRC/cap-c9.html

También podría gustarte