• Ir al contenido
  • Ir a la navegación
  • Ir al buscador
 
Infoudo
ING English  |  ES Spanish
Directorio WAP para móvil, Tablet, iPhone o Smartphone

Centro de Noticias de la Universidad de Oriente

Categorías

 

Inicio  |  Contacto  |  Posts  |  TIENDA PUBLISHOP  |  Sobre nosotros  |  Registro y Planes  |  Pagos  |  Donaciones

Ver Código QR de esta página



Campaña #AyudemosaYuli  |  Campaña #AyudemosaStephany.  |  ¿Interesado(a) en cursos y resolución de ejercicios de materias prácticas? Para más información, contáctenos por: Teléfono: +58 (412) - 8226575. WhatsApp y Telegram: +58 (412) - 8226575 o escriba al correo: [email protected]. Únete al grupo: SISTEMAS (UDOMO).

[»] **Musica para tu celular

WEB TRANSLATOR

LINK for English Language

Use this link for translate into English


+ Buscar en InfoUDO

 

Directiva #define

Tweet
 

lunes julio 11, 2016

La directiva #define especifica un nombre que será reemplazado por un cierto valor en todos los lugares del programa donde se haga referencia.

Se crean fuera de cualquier función o clase normalmente en la parte inicial del archivo. La sintaxis es la siguiente:

#define [nombre de la macro]  [valor de la macro]

Un ejemplo concreto es:

#define TAMANO 20
#define MENSAJEFIN “Presione una tecla para finalizar”

El nombre de la macro es común que se la escriba con caracteres mayúsculas (es una regla que utilizan muchos programadores pero no es obligatoria)

Luego de especificar el nombre de la macro hay uno o más espacios y debemos especificar el valor de la macro.

El primer paso del compilador es reemplazar todas las partes del programa donde hay declaradas macros por los valores de dichas macros.

El uso excesivo de macros puede tornar muy difícil el mantenimiento de programas.

Problema:

Definir tres macros y utilizarlas en distintas partes del programa.

Programa:

#include<iostream>

#define TAMANO 5
#define MENSAJEFIN "Presione una tecla para finalizar"
#define DETENER cin.get();cin.get();

using namespace std;

void main()
{
    int vec[TAMANO];
    for(int f=0;f<TAMANO;f++)
    {
        cout <<"Ingrese elemento:";
        cin >>vec[f];
    }
    for(int f=0;f<TAMANO;f++)
    {
        cout << vec[f] << "-";
    }
    cout <<"";
    cout <<MENSAJEFIN;
    DETENER
}

Este proyecto lo puede descargar en un zip desde este enlace :

Macros1.zip

Es importante entender que lo primero que hace el compilador es reemplazar todos los lugares donde se hace referencia a la macro por el valor de la misma, luego este programa lo que realmente se está compilando es:

#include<iostream>

using namespace std;

void main()
{
    int vec[5];
    for(int f=0;f<5;f++)
    {
        cout <<"Ingrese elemento:";
        cin >>vec[f];
    }
    for(int f=0;f<5;f++)
    {
        cout << vec[f] << "-";
    }
    cout <<"";
    cout <<"Presione una tecla para finalizar";
    cin.get();cin.get();
}

Es decir en el programa en ejecución no podemos hacer referencias a las macros como hacemos en las variables. Las macros en el programa final no ocupan espacio ya que son sustituidas por las valores asignados a las mismas en tiempo de compilación.

  1. Plantear una clase para administrar una matriz de enteros de 4 filas y 2 columnas. Definir dos macros para indicar la cantidad de filas y columnas.
Solución
#include <iostream>

#define FILAS 4
#define COLUMNAS 2

using namespace std;

class Matriz {
    int mat[FILAS][COLUMNAS];
public:
    void cargar();
    void imprimir();
};

void Matriz::cargar()
{
    for(int f=0;f<FILAS;f++)
    {
        for(int c=0;c<COLUMNAS;c++)
        {
            cout<<"Ingrese elemento de la fila "<< f << " columna:" << c << ":";
            cin >> mat[f][c];
        }
    }
}

void Matriz::imprimir()
{
    for(int f=0;f<FILAS;f++)
    {
        for(int c=0;c<COLUMNAS;c++)
        {
            cout << mat[f][c] << " ";
        }
        cout << "";
    }
}

void main()
{
    Matriz matriz1;
    matriz1.cargar();
    matriz1.imprimir();
    cin.get();
    cin.get();
}

Este proyecto lo puede descargar en un zip desde este enlace :Macros2.zip

Síguenos en Twitter@SergioAleman1 | Síguenos en Facebook@INFOUDO.OFICIAL | Síguenos en Twitter@infoudomonagas

Categorías: #C++, #


[0] Atrás | Directorio
« Inicio

Apps Infoudo
Apps Infoudo ¡Descarga el icono directo en el menú de tu equipo!
[»] Las mejores Apps para tu celular
[»] Imágenes Gratis


Comenta o lee lo que otros opinan

COMPÁRTELO:

Indica que te gusta y comparte

Me Gusta :)Facebook Tuiteame :)Twitter .WhatsApp .Telegram . LinkedIn


También te puede interesar:

NOCIONES BÁSICAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS.
Material de Apoyo del Curso de Programación - Lenguaje C++ - Periodo (Feb - May) del año en curso
Parámetros por valor y por referencia de objetos
Parámetros por valor y por referencia de datos simples
Métodos constantes (const)
Parámetros de un método constante (const)
Definición de constantes (const)
Puntero this
Métodos estáticos de una clase
Atributos estáticos de una clase

Ver Todas Las Páginas Relacionadas

« Puntero this  |  Definición de constantes (const) »
 
Apps Infoudo
 
Buscador:
Powered by Google:


Web móvil
Imágenes
La Web

 

Síguenos por RSS


Puedes leerlos mediante el navegador Firefox, lectores de noticias en la computadora o el móvil o usando el servicio de Feedburner de Google para recibir las notificaciones por correo electrónico.
RSS - Suscribirse usando Feedburner de Google

email Recibir las nuevas publicaciones de Infoudo por email

Atom


»Ir a URL
.....
Registra Gratis Tu Negocio
....
Sugerir un nuevo sitio WAP

...
¡Bloguea Ya!

..
Registro de Profesionales(Abogados, escritores, doctores, licenciados, ingenieros, etc.)
.
Soporte

Síguenos en las redes sociales

Síguenos en Facebook facebook.com/INFOUDO.OFICIAL Síguenos en Twitter @infoudomon Síguenos en Instagram @infoudooficial Síguenos en Telegram t.me/Infoudooficial
Síguenos en Facebook facebook.com/tuinfou Síguenos en Twitter @infoudomonagas
Síguenos en WhatsApp INFO UDO Síguenos en YouTube youtube.com/@infoudooficial
Síguenos en Facebook facebook.com/SergioAlemanOficial Síguenos en Twitter @SergioAleman1 Síguenos en Instagram @alemansergio
Síguenos en Threads @alemansergio
Síguenos en WhatsApp wa.me/qr/Y7Q232VLZPR5O1 Síguenos en Tiktok @alemansergio
Síguenos en Telegram t.me/SergioAlemanOficial Síguenos en YouTube youtube.com/@sergioaleman
Síguenos en Facebook facebook.com/boludooficial Síguenos en Twitter @bolUDOoficial Síguenos en Instagram @boludooficial Síguenos en Telegram t.me/Boludooficial
Síguenos en WhatsApp BolUDOoficial Síguenos en YouTube youtube.com/@boludo.oficial

Mis cuentas sociales

FB
Twitter
Pinterest
Instagram
Canales RSS con las últimas publicaciones
Otras  |  Linktree

Móvil: 0412 8226575 - E-mail: [email protected] - [email protected] - WhatsApp: +58 (0412) 822.65.75


Copyscape
Volver arriba

Protocolo  |  Mapa del Sitio  |  Report Abuse - DMCA  |  Términos y Condiciones  |  Ayuda  |  Privacidad de Datos  |  Política de Cookies  |  Reportar un bug  |  Licencia: CC BY-NC-ND 3.0

Copyright ©2023 Infoudo. Todos los derechos reservados. Diseñado, desarrollado, administrado y mantenido por Sergio Alemán Mi perfil en GitHub


SUBIR