domingo, 15 de julio de 2018

Foro: Introducción a las Técnicas de Programación Estructurada

Como prefacio a la programación debemos sortear algunos aspectos técnicos y cognitivos que permitirán afrontar con mayor certidumbre la resolución de un problema, por este motivo la presente actividad nos brindará la oportunidad de contar con un sitio de referencia donde consultar aquellas soluciones o respuestas que hemos conseguido a las situaciones que han representado un obstáculo o duda en el proceso de codificación en lenguaje C++.
De tal forma que ofrezco una lista inicial de inquietudes a las cuales cada uno de ustedes (estudiantes de programación) deben dar respuesta, elige solo una y formula un resumen de lo que te permitió aclarar tus dudas al respecto.
Esta es la lista inicial, si algún compañero ya dio respuesta a alguna, eres libre de agregar algún tema relacionado y compartir la solución:

  1. Estructura de un programa.
  2. Orden de precedencia y evaluación de expresiones.
  3. Tipos de datos simples y compuestos.
  4. Tipos de operadores, operadores unarios, binarios y ternarios.
  5. Palabras reservadas.
  6. Definición de constante (Define y const).
  7. Declaración de variables.
  8. Inicialización, contadores, acumuladores y centinelas.
  9. Ámbito de una variable y constante.
  10. Librería o biblioteca, funciones más comunes en especial tratamiento de caracteres, matemáticas y operaciones de entrada/salida.
  11. Entrada y salida (cout y cin).
  12. Instalación del compilador C++ bajo windows.
  13. Proceso de compilación C++ bajo consola MS-DOS.
  14. Documentación  bajo C++.
  15. Tratamiento de cadena de caracteres (concatenación, comparación, longitud, mayúscula, minúscula).
  16. Tratamiento de carácter (concatenación, comparación, longitud, mayúscula, minúscula).
  17. Tipos de errores, mensajes de compilación más comunes en C++ y posibles soluciones.
  18. Diferencias entre C y C++.

Fecha Tope de participación: Miércoles, 18/07/2018
Valor: 20%
Actividad individual.
Forma de entrega: 1 participación por estudiante.

29 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  2. Con respecto a la programación estrucututada, se prodria decir que el comportamiento de un programa depende del tipo de lenguaje usado para escribirlo. En cualquier caso, casi todos los lenguajes de programación se basan en el mismo principio. El programa consiste en un conjunto de comandos que el equipo debe ejecutar. El equipo ejecuta los comandos a medida que va leyendo el archivo (de arriba hacia abajo) hasta que alcanza un comando (al que a menudo se hace referencia como un comando ramificado) que ordena al equipo ir a una ubicación específica del programa.

    Es de importancia resaltar, que a la hora de realizar y ejecutar un programa hay que tener en cuenta el concepto de variables, las cuales se utilizan en la mayoría de los lenguajes, de igual manera los tipos de datos a utilizarse (ya sea un número completo o un carácter), el uso de palabras reservadas que no deben utilizarse como variables de nombres,de igual forma el uso de las constantes que son datos cuyo valor no puede modificarse y que por lo general, se definen al comienzo del programa y por último la utilización de comentarios, los cuales al escribir un programa es útil poder agregar líneas de texto a las que el compilador no considera como códigos. Estas líneas de texto generalmente están precedidas (o rodeadas) por comandos especiales que ordenan al compilador omitirlas.

    Por lo tanto,se puede decir que un programa informático es una secuencia de acciones (instrucciones) que manipulan un conjunto de objetos (datos).Se debe tener en cuenta que existen dos partes o bloques que componen un programa:

    *Bloque de declaraciones: en este se detallan todos los objetos que utiliza el programa (constantes, variables, archivos, entre otros...)

    *Bloque de instrucciones: el cual es un conjunto de acciones u operaciones que se han de llevar a cabo para conseguir los resultados esperados.

    Cabe destacar que el bloque de instrucciones está compuesto a su vez por tres partes, aunque en ocasiones no están perfectamente delimitadas y, aparecerán entremezcladas en la secuencia del programa, podemos localizarlas según su función. Estas son:

    *Entrada de datos: que son instrucciones que almacenan en la memoria interna datos procedentes de un dispositivo externo.

    *Proceso o algoritmo: el cual se basa en instrucciones que modifican los objetos de entrada y, en ocasiones, creando otros nuevos.

    *Salida de resultados: que conforma un conjunto de instrucciones que toman los datos finales de la memoria interna y los envían a los dispositivos externos.
    Ana Meléndez C.I 25638856

    ResponderBorrar
  3. En relacion a las principales diferencias entre C y C++ son:

    Los archivos de C se guardan con extensión –c- mientras que los archivos de C++ se guardan con extensión –cpp- (c plus plus).

    Los conocidos operadores lógicos AND, OR y NOT pueden ser utilizados como palabras en el lenguaje C++ o como operadores mientras que en C deben utilizarse únicamente los operadores &&, || y !.

    En C se utilizan las funciones printf y scanf para los flujos IO de entrada y salida mientras que en C++ se utiliza cout y cin como flujos de entrada y salida.

    En el paradigma de programación orientada a objetos, se hace uso de Clases, donde el lenguaje C no tiene soporte para ello mientras que C++ si lo tiene.

    Las bibliotecas en C terminan con h mientras que para C++ se elimina la terminación ‘.h’ y se agrega ‘c’ al principio, como por ejemplo cmath.

    ResponderBorrar
  4. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  5. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  6. Un programa, así como un algoritmo tiene una estructura, son casi idénticos solo que en el programa intervienen librerías, funciones, y otras partes más que en un algoritmo no se pueden llegar a usar por complejidad. Estos están constituidos por un conjunto de instrucciones que se ejecutan ordinariamente de forma secuencial, es decir, cada una a continuación de la otra.
    En lo que respecta a la estructura de un programa en C++ se caracteriza por tener en su código una cabecera indispensable: main( ): este se estructura de la siguiente manera
    1. Archivo de cabecera:
    En esta se incluyen las librerías, donde se indica que se tengan en cuenta las funciones y tipos definidos en la librería que se escoja, por ejemplo tenemos: #include < iostream.h > contiene las funciones de ingresar y mostrar datos, #include < math.h > contiene las funciones matemáticas comunes, #include < time.h > contiene las funciones para tratamiento y conversión entre formatos de fecha y hora, #include < conio.h > contiene los prototipos de las funciones, macros, y constantes para preparar y manipular la consola en modo texto en el entorno de MS-DOS®, #include < stdio.h > contiene los prototipos de las funciones, macros, y tipos para manipular datos de entrada y salida, #include < stdlib.h > contiene tipos, macros y funciones para la conversión numérica, generación de números aleatorios, búsquedas y ordenación, gestión de memoria y tareas similares, #include < string.h > contiene los prototipos de las funciones y macros de clasificación de caracteres
    Ej: #include < iostream.h >
    2. Declaración de variables globales: Una variable es un espacio reservado en el ordenador para contener valores que pueden cambiar durante la ejecución de un programa.
    2. Cabecera de función.
    Posteriormente, se coloca la “cabecera de función”, ésta función es obligatoria en cada programa porque indica el comienzo del programa: en este caso se utiliza:
    main ( )
    Y es importante que se coloquen paréntesis después de la palabra restringida “main“, caso de colocarla palabra “void”, que significa vacío, se esta indicando que a la función main no se le está mandando nada, podría omitirse el void dentro de los paréntesis, el compilador asume que no se enviará nada. La llave que se abre significa que se iniciará un bloque de instrucciones.

    3. Cuerpo o desarrollo.
    Después de colocar main ( ) es decir nuestro indicador que comienza el programa, ya podemos comenzar con la programación, es importante indicar cual es el cuerpo, o sea los limites, estos son marcados por el símbolo { } (llaves), un ejemplo de ello:
    {
    . . . .
    . . . . . . .
    }
    Finalmente se realizan las sentencias definen la lógica de un programa o subprograma (subrutina) y manipulan los datos para producir el resultado deseado por el usuario del programaes; decir, lo que va a hacer el programa al compilarlo y ejecutarlo. Pueden ser instrucciones declarativas: sirven para declarar librerias, variables, constantes, arreglos , punteros, estructuras… • Ejemplo: • #include < time.h , instrucciones repetitivas: Sirven para repetir una condición N veces, siempre y cuando la condición sea verdadera, entre otros. Todo debe ir en el cuerpo y dentro los límites (las llaves principales del programa )

    ResponderBorrar
  7. Con respecto a los tipos de datos, primeramente debemos conocer que un dato en lenguaje de programacion se refiere a una cifra , letra o palabra que se suministra a la computadora como entrada y la maquina almacena en un determinado formato, estos pueden ser de tipo simples o no estructurados o de tipo compuestos o estructurados

    Los de tipo simples o no estructurados se caracterizan por

    1. No estan compuestos por otros tipos
    2. Son atomicos: indivisibles
    3. Se divide en
    3.1 predefinidos: propios del lenguaje empleado
    3.2 definidos por el usuario, es decir por la persona que va a programar

    3.1 En los simples predefinidos se puede expresar que son aquellos que funcionan como base para la programacion , estos dependen del lenguaje empleado , pueden usarse sin necesidad de definirlos, en nuestro pseudolenguaje se encuentran: numeros naturales, numeros enteros, numeros reales, booleanos,caracteres.

    En cuanto a las propiedades de los simples predefinidos, estos son atomicos, ordenados, aceptan operadores relacionales , entre otros.
    En los de tipo natural y tipo entero
    Dominio: conjunto N y conjunto Z
    Operadores especificos: + , - , (binario) * DIV MOD- (Unario)
    Funciones predefinidas especificas: ABS (expresion) POW (base, exponente) entre otros
    Literales: 34 , -999, 0 , entre otros
    En los de tipo real R:
    Dominio: Conjunto R
    Operadores especificos: + , - , (binario) * / - unario
    Funciones predefinidas especificas: SQRT (EXPRESION) POW (base, exponente) entre otros
    Literales: 10, -12.25, 36.3, 3e9, entre otros

    En los de tipo caracter {
    Dominio: conjunto de caracteres graficos y de control del sistema
    Operadores: ninguno en especifico
    Funciones predefinidas especificas: CHR y CAP
    Literales ‘a’, ‘A’, ‘0’, ‘&’, ‘\n’, ‘\0’, ‘\\’,
    ‘\’’, ‘\”’, entre otros.

    Tipos logicos o booleano :
    Dominio: verdadero y falso
    Operadores logicos Y O NO
    Literales: verdadero y falso
    Tipos predefinidos en C++

    Enteros (int, long, short)
    Naturales (unsigned int, unsigned short, unsigned long)
    Reales (float, double)
    Logicos (bool): Valores True , false, operadores &&, ||, !
    Caracteres: shart

    3.2 Tipos simples definidos por el usuario
    3.2.1 Los tipos ennumerados permiten definir nuevos tipos simples, de cardinalidad reducida y valores facilmente interpretables, se declaran en la seccion de tipos de un algoritmo, Enum Id1, Id2..... Idn IdTipoennumerado, son tipos ordinales: ORD(), SUC() Y PRED(), no tienen operadores especificos, entre otras

    Por otro lado ,los de tipo compuestos o estructurados: se componen de otros, simples y compuestos a su vez, posee componentes homogeneos: arrays, y componentes heterogeneos: registros, , los datos compuestos se caracterizan por ser no ordenados es decir que no se les puede aplicar los operadores relacionales, y de la misma forma se caracteriza con que la asignacion entre datos del mismo tipo compuesto es siempre posible, compia completa del dato.

    Mauriant Briceño
    C.I 26.673.334



    ResponderBorrar
  8. Los errores mas importantes son los lógicos, por tiempo de ejecución y por tiempo de compilación.
    ERRORES LÓGICOS
    Estos son los más difíciles de detectar y corregir y pues bueno porque digo que son difíciles, es que con este tipo de errores la aplicación compila y se ejecuta de forma normal, pero, y entonces dónde está el error? El error se da porque la aplicación no muestra los resultados esperados digamos que ya
    el algoritmo y el resultado que debo obtener es 10, pero en la aplicación obtengo 5 o lo peor de todo que de seguro te a pasado, que escribes el código haces pruebas y los resultados son correctos subes a producción y resulta que para un caso particular no se obtuvo el resultado esperado.
    ERRORES EN TIEMPO DE COMPILACIÓN
    Los errores de compilación ocurren porque la sintaxis del lenguaje no es correcta, de cajón este tipo de errores no permiten que la aplicación se ejecute, por ejemplo:
    Olvidarnos de un punto y coma al final de una sentencia. No cerrar llaves en algún bloque de código, método, clase o en alguna estructura de control. Repetir variables con el mismo nombre aunque sean de diferente tipo.
    ERRORES EN TIEMPO DE EJECUCIÓN
    Estos errores ocurren cuando la aplicación se está ejecutando, imaginate que cuando estás haciendo la presentación o probando tu aplicación en público o frente a tu profesor y de repente pummm la aplicación explota (se cuelga) por lo general a este tipo de errores se los conoce como errores de compilación, ahora, por qué ocurren estos errores?, bueno, hay muchos factores desde los más básicos como por ejemplo: El usuario ingresa valores diferentes a los que la aplicación recibe. Acceder a una posición en un arreglo la cual no existe. Almacenar cadenas donde se debe almacenar números. Divisiones por cero. ue.
    A continuación se describen los mensajes de error mas comunes
    1. `variable' undeclared (first use in this function)
    Este es uno de los más comunes y a la vez más fáciles de detectar. El símbolo que se muestra al comienzo del mensaje se utiliza pero no ha sido declarado. Sólo se muestra la primera de las apariciones.
    2. warning: implicit declaration of function `...'
    Esta advertencia aparece cuando el compilador encuentra una función que se utiliza en el código y de la que no tienen ningún tipo de información hasta el momento. El compilador asume que la función devuelve un entero.
    3. warning: initialization makes integer from pointer without a cast
    Esta advertencia nos dice que hemos utilizado un puntero en un contexto en el que se espera un entero. Esto está permitido en C y el compilador sabe qué hacer para traducir el código, pero igualmente se notifica por si se quiere “confirmar” esta operación mediante un cast . El siguiente código muestra un ejemplo que produce esta advertencia.
    4. dereferencing pointer to incomplete type
    Este error aparece cuando se utiliza un puntero a una estructura de datos para acceder a alguno de sus campos, pero el compilador no tiene información suficiente sobre esa estructura de datos.
    5. warning: control reaches end of non-void function
    Esta advertencia aparece cuando una función se ha declarado como que devuelve un resultado y no se incluye ningún comando return para devolver ese resultado. Por tanto, o se ha definido incorrectamente la función, o se ha olvidado este comando. El compilador igualmente genera el ejecutable y aunque la función no devuelva resultado, el compilador sí devuelve un resultado a la función que ha hecho la invocación.
    Para las posibles soluciones, no es mas que saber el significado de cada mensaje de error y así poder solvertar dicho error. También al momento del mensaje de error, el mismo nos define en que parte se presenta y nos especifica de forma lógica cuál es la deficiencia que tiene la programación.
    Jesús Lugo
    25.945.352

    ResponderBorrar
  9. Se puede definir un algoritmo como, un conjunto finito de pasos y acciones que especifican de forma clara y concisa la secuencia de operaciones a realizar para procesar adecuadamente una serie de datos con el objeto de resolver un problema.
    con respecto a las Técnicas Algorítmicas de Resolución de Problemas tenemos : las pseudocódigo y diagrama de flujo;

    El lenguaje pseudoformal o pseudocódigo, es un lenguaje a medio camino entre el lenguaje natural y los lenguajes de programación de alto nivel, el cual se utiliza para especificar un algoritmo independientemente del lenguaje de programación en el cual esté se a codificar. La estructura para escribir un algoritmo en pseudocódigo es el siguiente:
    algoritmo nombre
    [const
    // declaración de constantes]
    [tipo
    // declaración de tipos]
    [var
    // declaración de variables]
    inicio
    // cuerpo del algoritmo
    Fin
    Ejemplo 1
    Diseñar un algoritmo que lea cuatro variables y calcule e imprima su producto, suma y media aritmética.
    inicio
    leer (a, b, c, d)
    producto <-- (a * b * c * d)
    suma <-- (a + b + c + d)
    media <-- (a + b + c + d) / 4
    escribir (producto, suma, media)
    fin

    El diagrama de flujo o diagrama de actividades es la representación gráfica del algoritmo o proceso. Estos diagramas utilizan símbolos con significados definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de fin del proceso.

    Un algoritmo debe cumplir una serie de reglas características para su construcción entre ellas tenemos:
     Debe ser Preciso, porque cada uno de sus pasos debe indicar de manera precisa e inequívoca que se debe hacer.
     Debe tener un limite, porque un algoritmo debe tener un número limitado de pasos.
     Debe ser Definido, porque debe producir los mismos resultados para las mismas condiciones de entrada.
     Puede tener cero o más elementos de entrada.
     Debe producir un resultado. Los datos de salida serán los resultados de efectuar las instrucciones.

    ResponderBorrar
  10. con respeto a la Instalación del compilador C++ bajo windows,sabemos que
    Un compilador es un programa informático que traduce un programa que ha sido escrito en un lenguaje de programación a un lenguaje común,reúne diversos elementos o fragmentos en una misma unidad. 1​ usualmente lenguaje de máquina, aunque también puede ser traducido a un código intermedio (bytecode) o a texto. Este proceso de traducción se conoce como compilación, compilar consiste en traducir un programa escrito en un cierto lenguaje a otro
    En windows
    El paquete C/C++ de NetBeans requiere un compilador C, un compilador C++, una utilidad make, y un depurador gdb.

    Windows
    El paquete C/C++ de NetBeans ha sido probado con los siguientes compiladores y herramientas:

    Cygwin 1.5.21
    Cygwin gcc-core (compilador C) 3.4.x
    Cygwin gcc-c++ (compilador C++) 3.4.x
    Cygwin gdb (Depurador GNU) 6.5.50
    Cygwin make 3.80
    Si ya se tiene los compiladores GNU Cygwin, GNU make, y el depurador gdb instalados en el sistema Windows y el path está configurado correctamente, hay que asegurarse de tener las versiones correctas. Si se tienen las versiones correctas, entonces no hacen falta configuraciones futuras.

    Para verificar las versiones de sus compiladores Cygwin y de sus herramientas:

    Verifique la versión de Cygwin escribiendo:

    cygcheck -c cygwin

    Verifique las versiones de los compiladores, make, y gdb escribiendo:
    gcc --version
    g++ --version
    make --version
    gdb --version

    Para instalar los compiladores GNU, make, y el depurador gdb desde cygwin.com:

    Descargue el programa Cygwin setup.exe
    Ejecute el programa setup.exe. Acepte las opciones por defecto hasta llegar a la página Select Your Internet Connection. Seleccione las opciones en esta página que se ajustan mas a sus necesidades. haga click en Next.
    En la página Choose Download Site, seleccione una dirección que usted crea que esté relativamente cerca a usted. Haga click en Next.
    En la página Select Packages seleccione los paquetes (packages) para descargar. Haga click en el signo + próximo a Devel para expandir las categorías de las herramientas de desarrollo. Quizá usted quiera reajustar el tamaño de la ventana para ver mas categorías al mismo tiempo.
    Seleccione cada paquete que desea descargar haciendo click en la etiqueta Skip al lado de cada paquete. Como mínimo, seleccione gcc-core: el compilador C, gcc-g++: el compilador C++, gdb: el depurador GNU, y make: la versión GNU de la utilidad 'make'.
    Ahora agregue el directorio del Compilador a su path:

    Abra el Panel de Control (Inicio > Configuración > Panel de Control) y haga doble click sobre el ícono Sistema.
    Seleccione la pestaña Avanzado y haga click en Variables de Entorno.
    En el panel de las Variables de Sistema del cuadro de diálogo Variables de Entorno, seleccione la variable Path y haga click en Editar.
    Agregue el directorio directorio-cygwin\bin a la variable Path, y haga click en OK. Por defecto, directorio-cygwin es C:\cygwin. Los nombres de los directorios deben estar separados con punto y coma.
    Haga click en OK en el cuadro de diálogo Variables de Entorno y en el cuadro de diálogo Propiedades del Sistema.
    Brennery yepez

    ResponderBorrar
  11. Con respecto a la declaración de las variables, primeramente debemos tener claro que es una variable, se sabe que a través de operaciones ariméticas (sumas,resta,etc) y lógicas (por ejemplos, comparaciones) los programas manipulan datos tales como números y caracteres. C++ y prácticamente todos los lenguajes de programación utilizan una estructura de lenguaje conocida como "variable" para almacenar e identificar la información. El término de variable es muy utilizado en matemáticas para representar una cantidad que debe ser calculada o cuyo valor puede cambiar durante algún procedimiento de cálculo. El concepto es muy similar en programación, la diferencia principal, sin embargo, es que en programación las variables pueden representaar no sólo números y caracteres. De esta forma, a la cantidad o símbolo que una variable representa se le conoce como el "valor" de una variable.

    Por ejemplo: Si una variable sirve para almacenar información de tipo nuúmerico un valor (válido) para esa variable pudiera ser el número 2, pero si la variable almacena una cadena de caracteres, un valor (válido) para la variable puede ser cualquier palabra("libro","manzana",etc).

    Por lo que el compilador dependiendo del lenguaje asigna una posición de memoria a cada variable de programa como en el caso del C++. Así, el valor de la variable, en formato binario, se guarda en la posición de memoria asignada a la variable.

    Así mismo se debe hablar de la identificación de una variable,el cual no es máas que el nombre de una variable para que los programas sean fáciles de que un identificador debe comenzar con una letra o con el guión bajo(_), mientras que el resto del identificador pueden ser cualquier combinación de letras, dígitos y el guión bajo.

    Por ejemplo: Los siguientes son identificadores válidos para las variables: x x1 x_1 _abc ABC123z7 suma datos2 area Producto.
    Los siguientes no son identificadores válidos: 12 3x %cambio data-1 miprimer.c programa.cpp


    Hay una clave especial de identificadores conocidos como "palabras reservadas" (keywords), Estas palabrs reservadas tienen ya un significado definido por el lenguaje de programación que se esté usando de manera que el programador no puede utilizarlos para identificar variables.

    Ejemplo en C++ como: auto, const, double, float, int, entre otros.


    Por lo tanto la declaración de variables. Todas las variables de un programa deben de ser declaradas. Cuando se declara una variable se está indicando al compilador (y a la computadora) que tipo de información se está almacenando en esa variable.

    Por ejemplo: Las siguientes dos declaraciones sirven para indicar el tipo de las 3 variables de un programa.

    int numero_de_cajas;

    double peso_por_caja, peso_total;

    La palabra int en la primera declaración es una abreviación de integer, de forma que la primera declaración indica que la variable numero_de_cajas es de tipo entero. Observe que en la segunda declaración, las variables se separan por (comas). También que cada declaración termina con un (punto y coma).

    En la segunda declaración la palabra double indica que las variables peso_por_caja y peso_total son de tipo doble (punto flotante). Posteriormente se indica el significado de doble. La clase de información que una variable almacena se le conoce como su (tipo). A las palabras int y double se les conoce como (nombre del tipo).

    En general, la sintaxis de una declaracion de una variable es:

    Nombre_del_tipo Indentificador_1, Identificador_2, ... ;


    Recordar que la sintaxis de un lenguaje de programación es el conjunto de reglas gramticales definidas para ese lenguaje.



    Jordalis Portela CI:24.784.472

    ResponderBorrar
  12. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  13. Cabe destacar que el ámbito de una variable y constaste; son aquellas que se crean en la memoria del ordenador cuando se llama a la función y se destruyen cuando se sale. Es necesario a veces, que una variable tenga un valor que pueda ser accesible desde todas las funciones de un mismo fuente, e incluso desde otros fuentes. En C++ existen tres tipos de ámbitos:
     Global o de programa
     Local o de función.
     De bloque.
    Por su parte, el ámbito de una variable es el contexto dentro del que la variable está definida. Esto implica los sitios en donde dicha variable puede ser empleada y por tanto reconocida. Las variables globales o públicas se pueden acceder en cualquier lugar de la página, mientras que las variables locales o privadas sólo tienen validez dentro de la función donde han sido creadas. De modo que una variable global la podemos acceder dentro de cualquier parte del código, mientras que si intentamos acceder a una variable local fuera de la función donde fue creada, nos encontraremos con que esa variable no tiene contenido alguno.
    En el mismo orden de ideas se debe mencionar que en c, el ámbito de las variables depende de dónde han sido declaradas y si se les ha aplicado algún modificador. Una variable definida en una función es, por defecto, una defecto una variable. Esto es, que sólo existe y puede ser accedida dentro de la función. Para que una variable sea visible desde una función cualquiera de la misma fuente debe declararse fuera de cualquier función. Esta variable sólo será visible en las funciones definidas después de su declaración. Es por ello que, el lugar más común para definir las variables globales es antes de la definición de ninguna función. Cabe destacar que de una variable y/o constante indica en qué partes del código es lícito su uso.


    Por otro lado, en cuanto al ámbito de una variable constante; estas variables toman un valor, y ese valor que ha tomado será siempre el mismo durante toda la ejecución del programa.
    A diferencia de las variables, sólo se puede crear una constante por línea de código y debe asignársele un valor al momento de definirse la misma, ya que las constantes jamás cambian su valor.
    Las constantes se definen después de la inclusión de los archivos cabecera, y las variables deben ser declaradas al inicio de la función principal (main()).
    Ejemplo:
    //Inclusión de cabeceras
    #include
    //Definición de constantes
    #define CONSTANTE1 16
    #define CONSTANTE2 20
    void main()

    ResponderBorrar
  14. Las palabras reservadas se definen como identificadores reservados predefinidos que tienen un significado especial y no se pueden utilizar como identificadores creados por el usuario en los programas, excepto si llevan delante el carácter @ como prefijo.

    Las palabras reservadas de C++ pueden agruparse en 3 grupos.
    El primero contiene las palabras de C y que C++ como evolución de C también contiene:

    Auto, Const, Double,Float, Int, Short, Struct, Unsigned, Break, Continue, Else, For, Long, Signed, Switch, Void, CasE, Default, Enum, Goto, Register, Sizeof, Typedef, Volatile, Char, Do, Extern, If, Return, Static, Union, while.

    Palabras que no provienen de C y que, por tanto, solo utiliza C++:

    Asm, Dynamic_cast, Namespace, Reinterpret_cast, Try, Bool, Explicit, New, Static_cast, Typeid, Catch, False, Operator, Template, Typename, Class, Friend, Private, This, Using, Const_cast, Inline, Public, Throw, Virtual, Delete, Mutable , Protected, True, Wchar_t.

    Las siguientes palabras reservadas se han añadido como alternativas para algunos operadores de C++ y hacen los programas más legibles y fáciles de escribir:

    And, Bitand, Compl, Not_eq, or_eq, Xor_eq, And_eq, Bitor, Not, Or, Xor.

    ResponderBorrar
  15. Con respecto a los tipos de operadores, se debe comprender primeramente que los operadores son elementos de programa que se aplica a uno o varios operandos en una expresión o instrucción.
    El operador unario se define
    Como los operadores que requieren un operando. Los operadores unarios solamente necesitan un operando; realizan diferentes operaciones como incrementar o decremento un valor en una unidad, negar una expresión o invertir el valor de un booleano.
    + Operador unario «más», indica un valor positivo (sin embargo los número son positivos sin el operador)
    - Operador unario «menos»; niega una expresión
    ++ Operador de incremento; incrementa un valor en 1
    -- Operador de decremento; decremento un valor en 1
    ! Operador de complemento lógico; invierte el valor de un booleano
    Ejemplo:

    #include
    #include
    main()
    {
    int x=5;
    printf("\tPRIMERO OBSERVAREMOS EL RESULTADO DE ++X\n\n");
    printf("%d\n", ++x);
    printf("%d\n", ++x);
    printf("%d\n", ++x);
    printf("\tAHORA OBSERVAREMOS EL RESULTADO DE --X\n\n");
    printf("%d\n", --x);
    printf("%d\n", --x);
    printf("%d\n", --x);
    printf("\tEL RESULTADO DE X++ ES:\n\n");
    printf("%d\n", x++);
    printf("%d\n", x++);
    printf("\tY EL DE X-- ES:\n\n");
    printf("%d\n", x--);
    printf("%d\n", x--);
    getch();
    return 0;
    }
    Operador Binarios Los operadores binarios indican operaciones sencillas de incremento (suma o multiplicación ) y decremento (resta, división y modulo), los operadores son:
    +: Representa la suma de dos o más valores o variables.
    -: representa la resta de dos o más valores o variables.
    *: Representa la multiplicación de dos o más valores o variables.
    /: Representa la división de dos o más valores o variables.
    %: representa el modulo (obtención del residuo de una división) de dos o más valores o variables.
    Operador ternario
    proporciona un resultado entre dos posibilidades en función de una condición. produce un resultado. En la expresión E1 ? E2 : E3, E1 es una expresión relacional que se evalúa primero. Si el resultado es cierto, entonces se evalúa E2 y este es el resultado. En caso contrario (si E1 resulta falso), entonces se evalúa E3 y este es el resultado. Si la premisa E1 es cierta, entonces no llega a evaluarse la expresión E3.
    E2 y E3 deben seguir las reglas siguientes:
    1. Si E2 y E3 son de tipos distintos, se realiza una conversión de tipo estándar, de forma que el Resultado será siempre del mismo tipo, con independencia de E1.
    2. Si E2 y E3 son de tipos unión o estructuras compatibles. El resultado es una unión o estructura del
    Tipo de E2 y E3.
    3. Si E2 y E3 son de tipo vid, el resultado es vid.
    4. Ambos operandos son punteros a versiones cualificadas o no cualificadas de tipos compatibles. El
    Resultado es un puntero a cualquiera de los tipos de ambos operandos.
    5. Un operando es un puntero y el otro es un puntero nulo. El resultado es un puntero que puede
    Señalar a un tipo del primero o del segundo operando.
    6. Un operando es un puntero a un objeto o tipo incompleto, y el otro es un puntero a una versión
    cualificada o no cualificada de void. El tipo resultante es el del puntero distinto de void.
    En el siguiente ejemplo se muestra el uso del operador condicional, donde a la variable y se le asigna el valor de 100.
    X=100;
    Y=X≤9?100:200;

    ResponderBorrar
  16. En relación a la iniciación, se puede decir que se utiliza una variable para indicarle al programa a partir de que lugar empieza a existir, que nombre tendrá y que tipo de datos almacenara. la iniciación puede hacerse en la misma instrucción que la declara o en una instrucción separada. es importante tener en cuenta que las variables deben recibir un valor inicial antes de poder leer los datos que contienen, si un programador trata de leer los datos de una variable que no ha sido iniciada los compiladores normalmente reportan un error y no compilan el programa.

    Por su parte, el contador es el que se utiliza para llevar la cuenta de determinadas acciones que se pueden solicitar durante la resolución de un problema, en las instrucciones de preparación se realiza la iniciación del contador o contadores,dicha iniciación consiste en poner el valor inicial de la variable que representa al contador, generalmente se inicia en 0

    Asimismo, el acumulador es una variable en la memoria cuya misión es almacenar grandes cantidades de variables, se utiliza para realizar sumas sucesivas, la principal diferencia con el contador es que el incremento o decremento de cada suma es variable en lugar de constante como en el caso del contador

    Finalmente, los centinelas también llamados ¨banderas¨ son variables normalmente de tipo lógicas (boolean) conservan un estado hasta que un evento requiera cambiarlo y ejecutar otra funcionalidad.


    ResponderBorrar
  17. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  18. Para comprender de forma sencilla y estratégica lo concerniente a la entrada y salida en un programa C++ donde existen una variedad de formas de entrada y salida: Un flujo de entrada es la serie de entradas que alimentan un ordenador para que el programa las utilice mientras que un flujo de salida es la serie de salidas que el programa genera.
    Los valores de las variables se pueden enviar a la pantalla ¿como? pues, para imprimir una salida de texto en C++ utiliza instrucción cout<<, la instrucción cout debe ir siempre acompañada de << para controlar el flujo de datos que sale. es posible usar la misma instrucción para mostrar en pantalla el valor de las variables, ya sean numéricas o cadenas de texto. También podemos concatenar (&) los valores de esas variables entre sí y también concatenarlas con otros valores directamente (espacios, puntos, símbolos, entre otros).
    Ejemplo:
    cout << num_dulces ;
    cout << “dulces\n”;
    Dato: El doble símbolo << se conoce como operador de inserción.
    Ahora bien ¿y la entrada?, la lectura de datos es sencilla en C++, usando el comando cin >> cada vez que se vaya a usar la instrucción cin se debe agregar >> para quedar con un cin>>. Una manera muy fácil de recordar esta instrucción es que in significa entrar y como estamos programando en C++ le añadimos la letra C al comienzo quedando así cin>>.
    Ejemplo:
    cin >> num_pasteles;
    Aclaratoria: los signos en cin>> como en count<< ejercen el mismo rol.

    Espero que les haya sido de muchísima utilidad y de fácil comprensión este resumen.

    Participante: Argelia Castro Cuart

    ResponderBorrar
  19. Al momento en que nos referimos a los tipos de operadores es de resaltar que existen 3 tipos de operadores unarios, binarios y ternarios, para lograr una mejor comprensión de ellos, es necesario primero comprender lo que es un operador en la parte de lo que es la programación. un operador en la rama de la informática se define como el elemento de un programa que se usa para la aplicación y uno o varios operandos en una expresión o en la misma ejecución de un comando.

    ahora bien los operadores se clasifican según el número de operandos requeridos por (uno, dos o tres) en unarios, binarios y ternarios.

    *Los operadores unarios son aquellos que soportan notación de prefijo y postfijo dependiendo de que lado aparezca el operador con respecto al operando, es decir, que este va ha depender de la ubicación del operando ya sea antes o después como por ejemplo:

    operador op //notación de prefijo, el operador aparece antes el operando
    Ejemplo: -x

    op operador //notación de postfijo, el operador aparece después del operando
    Ejemplo: x++

    *Ya al referirnos sobre todos los operadores binarios, tienden a utilizar notación de infijo, esto significa que el operador aparece entre dos operandos:

    op1 operator op2 //notación de infijo

    Ejemplo: a + b

    *Finalmente los operadores ternarios donde el el lenguaje Java dispone del operador ternario, que es una abreviación de la estructura if-then-else

    El operador ternario, también utiliza notación de infijo, cada componente del operador aparece entre dos operandos:

    op1 ? op2 : op3 //notación de infijo


    Al igual que en todos los lenguajes, además de realizar una operación, un operador retorna un valor. El valor retornado y su tipo depende del operador y de los tipos de los operandos. Por ejemplo si sumas dos enteros el resultado será de tipo entero.

    Miguel Mejia
    26.100.639

    ResponderBorrar
  20. En referncia a las bibliotecas o librerias:
    Junto con los compiladores de C y C++, se incluyen ciertos archivos llamados bibliotecas mas comúnmente librerías.
    En C++, se conoce como librerías (o bibliotecas) a cierto tipo de archivos que podemos importar o incluir en nuestro programa. Estos archivos contienen las especificaciones de diferentes funcionalidades ya construidas y utilizables que podremos agregar a nuestro programa, como por ejemplo leer del teclado o mostrar algo por pantalla entre muchas otras más.
    Al poder incluir estas librerías con definiciones de diferentes funcionalidades podremos ahorrarnos gran cantidad de cosas, imaginemos por ejemplo que cada vez que necesitemos leer por teclado, debamos entonces crear una función que lo haga (algo realmente complejo), al poder contar con las librerías en C++, podremos hacer uso de una gran variedad de funciones que nos facilitaran la vida y aumentarán la modularidad de nuestros códigos.
    Las librerías no son únicamente archivos externos creados por otros, también es posible crear nuestras propias librerías y utilizarlas en nuestros programas. Las librerías pueden tener varias extensiones diferentes, las más comunes son: .lib, .bpl, .a, .dll, .h y algunas más ya no tan comunes.
    En conclusión: Las librearías son archivos (no siempre externos) que nos permiten llevar a cabo diferentes tareas sin necesidad de preocuparnos por cómo se hacen sino simplemente entender cómo usarlas. Las librearías en C++ permiten hacer nuestros programas más modulares y reutilizables, facilitando además crear programas con funcionalidades bastante complejas en unas pocas líneas de código
    La declaración de librerías, tanto en C como en C++, se debe hacer al principio de todo nuestro código, antes de la declaración de cualquier función o línea de código, debemos indicarle al compilador que librerías usar, para el saber que términos estaran correctos en la escritura de nuestro código y cuáles no. La sintaxis es la siguiente: #include o alternativamente #include "nombre de la librería". Cualquiera de las 2 formas es válida en C++ (no estoy seguro si en C sea válido), ten en cuenta que siempre el nombre de la librería debe ir entre " y " o entre < y >. En tu código puedes declarar todas las librerías que quieras aunque en realidad no tienen sentido declarar una librería que no vas a usar en tu programa, sin embargo no existe límite para esto.
    Alejandro Rangel
    C.I:27.384.066

    ResponderBorrar
    Respuestas
    1. A continuación pondré algunas de las librerías de uso más común de C++ y que forman parte de las librerías estandar de este lenguaje.
      fstream: Flujos hacia/desde ficheros. Permite la manipulación de archivos desde el programar, tanto leer como escribir en ellos.
      iosfwd: Contiene declaraciones adelantadas de todas las plantillas de flujos y sus typedefs estándar. Por ejemplo ostream.
      iostream: Parte del a STL que contiene los algoritmos estándar, es quizá la más usada e importante (aunque no indispensable).
      La biblioteca list: Parte de la STL relativa a contenedores tipo list; listas doblemente enlazadas
      math: Contiene los prototipos de las funciones y otras definiciones para el uso y manipulación de funciones matemáticas.
      memory: Utilidades relativas a la gestión de memoria, incluyendo asignadores y punteros inteligentes (auto_ptr).
      "auto_ptr" es una clase que conforma la librería memory y permite un fácil manejo de punteros y su destrucción automaticamente.
      Biblioteca new: Manejo de memoria dinámica
      numeric: Parte de la librería numérica de la STL relativa a operaciones numéricas.
      ostream: Algoritmos estándar para los flujos de salida.
      queue: Parte de la STL relativa a contenedores tipo queue (colas de objetos).
      Librería stdio: Contiene los prototipos de las funciones, macros, y tipos para manipular datos de entrada y salida.
      Librería stdlib: Contiene los prototipos de las funciones, macros, y tipos para utilidades de uso general.
      string: Parte de la STL relativa a contenedores tipo string; una generalización de las cadenas alfanuméricas para albergar cadenas de objetos. Muy útil para el fácil uso de las cadenas de caracteres, pues elimina muchas d elas dificultades que generan los char
      typeinfo: Mecanismo de identificación de tipos en tiempo de ejecución
      vector: Parte de la STL relativa a los contenedores tipo vector; una generalización de las matrices unidimensionales C/C++
      forward_list Esta librería es útil para implementar con gran facilidad listas enlazadas simples.
      list Permite implementar listas doblemente enlzadas (listas enlazadas dobles) facilmente.
      iterator Proporciona un conjunto de clases para iterar elementos.
      regex Proporciona fácil acceso al uso de expresiones regulares para la comparación de patrones.
      thread Útil para trabajar programación multihilos y crear múltiples hilos en nuestra aplicación.
      Alejandro Rangel
      C.I:27.384.066

      Borrar
  21. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  22. Se podria comentar que para la realizacion de una estructura secuencial es necesario comentar Las cadenas de caracteres, frecuentemente nombrados en inglés como strings.
    Una cadena en C++ es un conjunto de caracteres, o valores de tipo char, terminados con el carácter nulo, es decir el valor numérico 0. Internamente, en el ordenador, se almacenan en posiciones consecutivas de memoria. Este tipo de estructuras recibe un tratamiento muy especial, ya que es de gran utilidad y su uso es continuo. Son un tipo particular de vectores, que como su nombre lo dice son vectores de char, con la particularidad que tienen una marca en el fin del (el caracter '\0'), además el lenguaje nos permite escribirlas como texto dentro de comillas dobles si son simples no.
    La manera de definir una cadena es la siguiente:
    char [];
    Cuando se declara una cadena hay que tener en cuenta que tendremos que reservar una posición para almacenar el carácter nulo terminador, de modo que si queremos almacenar la cadena "HOLA", tendremos que declarar la cadena como:
    char Saludo[5];
    Las cuatro primeras posiciones se usan para almacenar los caracteres "HOLA" y la posición extra, para el carácter nulo. También nos será posible hacer referencia a cada uno de los caracteres individuales que componen la cadena, simplemente indicando la posición. Por ejemplo el tercer carácter de nuestra cadena de ejemplo será la 'L', podemos hacer referencia a él como Saludo[2].
    Es muy importante tener presente que en C++, los índices tomarán valores empezando siempre en cero, así el primer carácter de nuestra cadena sería Saludo[0], que es la letra 'H'. En un programa C++, una cadena puede almacenar informaciones en forma de texto, como nombres de personas, mensajes de error, números de teléfono, etc. La asignación directa sólo está permitida cuando se hace junto con la declaración. El siguiente ejemplo producirá un error en el compilador, ya que una cadena definida de este modo se considera una constante, como veremos en el capítulo de "arrays" o arreglos.
    char Saludo[5];
    Saludo = "HOLA"
    La manera correcta de asignar una cadena es:
    char Saludo[5];
    Saludo[0] = 'H';
    Saludo[1] = 'O';
    Saludo[2] = 'L';
    Saludo[3] = 'A';
    Saludo[4] = 0;
    O bien:
    char Saludo[5] = "HOLA";
    Jose Gamero
    C.I.:25.945.530

    ResponderBorrar
  23. Dentro de las cadenas de caracteres tambien puede hacer referencia a los arrays.
    Los arrays son usados extensamente por los programadores para contener listas de datos en la memoria, por ejemplo, los datos almacenados en un disco suelen leerse y ponerse dentro de un array con el objetivo de facilitar la manipulación de dichos datos, ya que los datos en memoria pueden ser modificados, clasificados, marcados para su eliminacion, etc. para luego ser reescritos al disco. Otro ejemplo podría ser el de un menú de opciones que se desplegarán dentro de una ventana para que el usuario pueda elegir una de éstas, en tales casos y cuando las opciones son numerosas, solamente se ponen unas cuantas de ellas dentro de la ventana pero se le da al usuario la oportunidad de poder subir y bajar a su antojo para ver el resto de opciones que, aunque no se vean en la ventana, forman parte del menú o array de opciones.

    Array:

    Un array es un conjunto de datos del mismo tipo ordenados de forma líneal uno después de otro. Los componentes de un array se han de referenciar por medio del nombre del array y un índice de desplazamiento para indicar el componente deseado.
    En C, C++ para declarar un array se emplea la sintaxis:

    tipo identificador [tamaño] = { lista de inicialización } ;

    donde,

    tipo se refiere al tipo de datos que contendrá el array. El tipo puede ser cualquiera de los tipos estándar (char, int, float, etc.) o un tipo definido por el usuario. Es más, el tipo del array puede ser de una estructura creada con: struct, union y class.

    identificador se refiere al nombre que le daremos al array.

    tamaño es opcional e indica el número de elementos que contendrá el array. Si un array se declara sin tamaño, el mismo no podrá contener elemento alguno a menos que en la declaración se emplee una lista de inicialización.

    lista de inicialización es opcional y se usa para establecer valores para cada uno de los componentes del array. Si el array es declarado con un tamaño específico, el número de valores inicializados no podrá ser mayor a dicho tamaño.

    Ejemplos:

    int intA[5];
    long longA[5] = { 1, 2, 3, 4, 5 };
    char charA[3] = { 'a', 'b', 'c' };
    Jose Gamero
    C.I.:25.945.530

    ResponderBorrar
  24. Algo muy relevante que muchas veces nos puede complicar una programacion, son los errores que podemos cometer, ya que a la hora de programar se torna dificil ubicar a simple vista los errores que esta misma pueda tener, estos son corregibles, y evitables en posteriores programaciones, a continuacion una lista con la clasificacion de los errores mas comunes:
    Sobre el fichero markefile, y la compilacion
    Sobre las directivas de inclusion
    Sobre las clases
    Sobre la sobrecarga de operadores
    Sobre la memoria
    Sobre las cadenas

    Cada mensaje de error emitido por el compilador, sea este cualquiera deben contener
    El nombre del archivo donde se ha detectado el error
    El numero de linea dentro del archivo donde se ha detectado dicho error
    El numero de referencia segun el tipo de error
    Y una breve descripcion del error

    Hablando en terminos mas comunes, se consiguen como principales estos errores:

    Errores al tiempo de ejecutar
    Estos errores ocurren cuando la aplicación se está ejecutando, imaginate que cuando estás haciendo la presentación o probando tu aplicación en público, la aplicación explota (se cuelga) por lo general a este tipo de errores se los conoce como errores de compilación, ahora, por qué ocurren estos errores?, bueno, hay muchos factores desde los más básicos como por ejemplo: El usuario ingresa valores diferentes a los que la aplicación recibe. Acceder a una posición en un arreglo la cual no existe. Almacenar cadenas donde se debe almacenar números.

    Errores en compilacion
    Los errores de compilación ocurren porque la sintaxis del lenguaje no es correcta, de cajón este tipo de errores no permiten que la aplicación se ejecute, por ejemplo:
    Olvidarnos de un punto y coma al final de una sentencia. No cerrar llaves en algún bloque de código, método, clase o en alguna estructura de control. Repetir variables con el mismo nombre aunque sean de diferente tipo.

    Errores logicos
    Estos son los más difíciles de detectar y corregir y pues bueno porque digo que son difíciles, es que con este tipo de errores la aplicación compila y se ejecuta de forma normal, pero, y entonces dónde está el error? El error se da porque la aplicación no muestra los resultados esperados digamos que ya
    el algoritmo y el resultado que debo obtener es 10, pero en la aplicación obtengo 5 o lo peor de todo que de seguro te a pasado, que escribes el código haces pruebas y los resultados son correctos subes a producción y resulta que para un caso particular no se obtuvo el resultado esperado.

    COMO POSIBLES SOLUCIONES O METODOS PARA PREVEER ESTE TIPO DE ERRORES!..tenemos que para evitar estos problemas y hacer que nuestra programación tenga una mejor eficiencia?.
    Debemos obtener un hábito. Un hábito se obtiene al realizar siempre las mismas acciones.Debes de aplicar las siguientes reglas en todos los programas que realices.

    Declarar correctamente las librerías y repasarlas 3 veces antes de comenzar a programar.

    Poner nombres de variables coherentes al problema. Por ejemplo, si se desea hacer una suma de dos datos, mejor llamar a la variable final, suma.

    Usar siempre nombres en minúsculas e intentar evitar las mayúsculas.

    Repasar las palabras reservadas y los puntos y comas al finalizar las sentencias.

    En el caso de tener un error de compilación, el compilador marcará la línea y el error, si no se encuentra nada, mira bien la línea anterior.

    Sin mas que hacer referencia, me despido y felicito a mis compañeros por sus valiosos comentarios..



    ResponderBorrar
  25. Para tener una variable en un programa, previamente hay que definirla con un tipo y un identificador (es decir, un nombre para la variable).
    Por ejemplo:

    int numero

    define una variable de tipo entero que se llama numero.
    Y seguidamente hay que añadir un punto y coma a la expresión:

    int numero;

    El punto y coma transforma la expresión en una instrucción que se ejecutará en el programa. Cuando se llegue a ella, el programa reservará espacio de memoria según el tipo de variable para poder escribir y leer valores.
    Por lo tanto, la fórmula general es:

    <;>

    Es lo que llamamos una declaración de variable. En C y C++ todas las variables se deben declarar antes de su uso. Si no, se producirá un error de compilación.
    A continuación se muestra un programa completo que funciona: solo declara variables de tipos distintos:

    int main()
    {

    char caracter;

    short valor;

    int numero;

    long numeroMasLargo;

    float numeroRealFloat;

    double numeroRealDoble;

    // fin

    return 0;

    }

    Para declarar una variable, basta con indicar su tipo y su nombre. Existen ciertas
    convenciones en cuanto al nombre de las variables. Algunos prefieren separar las partes de un nombre con '_', otros prefieren escribir una mayúscula para separarlas. Ejemplo:

    int recetaDelMes;

    O


    int receta_del_mes;


    Lo importante es utilizar siempre la misma convención para los programas.

    Se debe asignar un valor al momento de realizar la asignación de un valor a una variable al momento de declararla, ejemplo:

    int recetaDelMes = 12301;

    También es posible declarar varias variables en una misma línea, pero en este caso, todas las variables de la línea tendrán el mismo tipo.

    int recetaDelMes = 12301, recetaDelAño = 45644545;

    El sistema es siempre el mismo, primero se especifica el tipo y a continuación una lista de variables y finalmente un punto y coma.
    La declaración de variables es uno de los tipos de sentencia de C++. La prueba más clara de esto es que la declaración terminará con un ";". Sintaxis:

    ;

    También es posible inicializar las variables dentro de la misma declaración. Por ejemplo:

    int a = 1234;

    bool seguir = true, encontrado;

    Declararía las variables a, seguir y encontrado; y además iniciaría los valores de a y seguir con los valores 1234 y true, respectivamente. En C++, contrariamente a lo que sucede con otros lenguajes de programación, las variables no inicializadas tienen un valor indeterminado y contienen lo que normalmente se denomina "basura". Cuando se declara una variable se reserva un espacio de memoria para almacenarla, pero no se hace nada con el contenido de esa memoria, se deja el valor que tuviera previamente, y ese valor puede interpretarse de distinto modo, dependiendo del tipo.

    ResponderBorrar
  26. Antes de referirnos a los que son las diferencias entre c y c++ es relevante conocer que El lenguaje C apareció en 1972, en el diseño del sistema operativo UNIX. Este lenguaje, que en la actualidad está bajo el estandar ANSI C, se ha utilizado para diseñar hojas de cálculo, gestores de bases de datos, compiladores, sistemas operativos....

    Es un lenguaje de nivel medio, facilmente adaptable a cualquier sistema y sumamente potente y eficiente con lo que lo pueden convertir en la base para muchas aplicaciones.
    Es importante saber que C++ es un potente lenguaje de programación que apareció en 1980, continuando con las ventajas, flexibilidad y eficacia del C. Es un lenguaje de programación que permite programar desde sistemas operativos, compiladores, aplicaciones de bases de datos, procesadores de texto, juegos...

    C++ ha ido evolucionando y ha contribuido con la aparición de Java, simplificando instrucciones de C++, añadiendo nuevas y apareciendo nuevas funcionalidades para realizar aplicaciones utilizables desde Internet.

    Diferencias entre C y C++
    Aunque C++ es un super conjunto de C, existen algunas diferencias entre los dos. En primer lugar, en C cuando una función no toma parámetros, su prototipo tiene la palabra void. Sin embargo en C++ void no es necesario(opcional).

    Prototipo en C: char f1(void);
    Prototipo en C++: char f1();

    Otra diferencia entre C y C++ es que en un programa de C++ todas las funciones deben estar en forma de prototipo, en C los prototipos se recomiendan, pero son opcionales. También si una función de C++ es declarada para devolver un valor obligatoriamente la sentencia return debe devolver un valor, en C no es necesario que se devuelva.

    Cabe destacar Otra diferencia es el lugar donde se declaran las variables locales. En C, deben ser declaradas solo al principio del bloque, mientras que en C++ las variables se pueden declarar en cualquier punto. Aunque es conveniente realizarlo siempre al comienzo de la función.

    ResponderBorrar