Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bloque 2 Metodología para la solución de problemas por medio de computadoras #4

Closed
IoTeacher opened this issue Sep 22, 2019 · 13 comments
Labels
documentation Improvements or additions to documentation

Comments

@IoTeacher
Copy link
Member

IoTeacher commented Sep 22, 2019

2.1 Análisis de los datos
2.2 Diseño de la solución
2.3 Prueba y depuración

CÓDIGO DE LOS PROGRAMAS

El código de los programas que desarrollemos en el lenguaje de programación C++ se puede escribir utilizando cualquier editor de texto (como el Bloc de notas), pero existen muchos entornos de programación más amigables.

En nuestro programa Introducción vamos a usar un entorno de programación online, para que no tengas que preocuparte de hacer ninguna instalación.

Online GDB https://www.onlinegdb.com/

Pero también tienes otros disponibles, por ejemplo:

Repl.it https://repl.it/repls/DisastrousFluidExams
Tutorials point . https://www.tutorialspoint.com/compile_c_online.php
Ideone . https://ideone.com/
CodeChef . https://www.codechef.com/ide

Si prefieres instalar un entorno de programación en tu ordenador para usarlo de forma offline, puedes utilizar JetBrains CLION, multiplataforma, una vez nos activamos para la beca de $450 dlls por año, mientras tengamos el correo .EDU

@IoTeacher IoTeacher added the documentation Improvements or additions to documentation label Sep 22, 2019
@IoTeacher IoTeacher added this to the Bloque 2 milestone Sep 22, 2019
@IoTeacher IoTeacher self-assigned this Sep 22, 2019
@IoTeacher
Copy link
Member Author

IoTeacher commented Sep 26, 2019

Bjarne Stroustrup

Si visita http://www.stroustrup.com/C++.html, encontrará una gran cantidad de información sobre el lenguaje de programación C ++, directamente del diseñador del lenguaje, Bjarne Stroustrup. Bjarne enumera una definición de C ++ como:

_"... un lenguaje de programación de propósito general con un sesgo hacia la programación de sistemas que

es una mejor C
admite abstracción de datos
admite programación orientada a objetos
admite programación genérica "_

El lenguaje comenzó en 1979 y originalmente se conocía como C con clases. Básicamente, significaba que los archivos de clase (utilizados en la programación orientada a objetos) se agregaron al lenguaje C. En 1983 se renombró a C ++.

C++ existe bajo la dirección de un comité de estándares y se convirtió en un estándar ISO en 1998 con una revisión en 2011 y una revisión menor en 2014. Continúa siendo actualizado como parte del trabajo del comité de estándares.

@IoTeacher
Copy link
Member Author

C++ es un lenguaje sensible a mayúsculas y minúsculas. La distinción entre mayúsculas y minúsculas significa que sus palabras clave y declaraciones de variables deben coincidir con las mayúsculas y minúsculas. Por ejemplo, una palabra clave de C ++ para un tipo constante es const. Si tuviera que escribir Const o CONST, el compilador no sabría que su intención era utilizar la palabra clave const.

Además de la distinción entre mayúsculas y minúsculas, C ++ también tiene un esquema definido para el código del programa y los "elementos" específicos que se encuentran en una aplicación típica de C ++. Estos elementos consisten en:

Directivas de preprocesador que se utilizan para que el compilador ejecute tareas antes de compilar el código fuente
usando directivas que se utilizan para indicar qué espacios de nombres incluir en un archivo de código fuente
un encabezado de función que consiste en un tipo de retorno, nombre de función y parámetros
un cuerpo de función que contiene el código que realiza las acciones requeridas de esa función
declaraciones contenidas en el archivo de código fuente de C ++
comentarios para documentar el código fuente para que los programadores entiendan qué pretende hacer el código
una declaración de devolución que devuelve datos a la persona que llama la función
llaves para encerrar cuerpos de declaraciones. Se usa comúnmente para denotar el cuerpo de una función o una instrucción de controles de flujo, como un bucle for

El código fuente de C ++ también permite el uso juicioso del espacio en blanco (pestañas, espacios, nuevas líneas) para crear código que sea más fácil de leer. El compilador ignora por completo el espacio en blanco, con una pequeña excepción con respecto a si las declaraciones que se cubrirán más adelante. Se recomienda encarecidamente que utilice espacios en blanco para sangrar y separar líneas de código para facilitar la lectura de sus archivos de código fuente.

NOTA: A diferencia de Python, las líneas de sangría después de la instrucción for no le indican al compilador que ejecute esas líneas sangradas como parte de la instrucción for. En C ++, las declaraciones múltiples para una sola declaración for deben encerrarse entre llaves. Esto se cubrirá más en el Módulo 3, Declaraciones de control.

@IoTeacher
Copy link
Member Author

IoTeacher commented Sep 26, 2019

Estructura del programa C ++

Un programa C ++ tiene una estructura muy específica en términos de cómo se escribe el código y algunos elementos clave que utiliza en sus programas C ++. Aquí se muestra el más simple de los programas de C ++.

  1. #include
  2. int main()
  3. {
  4. std::cout << "Hello World!";
  5. return 0;
  6. }

En este sencillo programa notamos algunos elementos listados. Los números de línea se usan solo como referencia y no forman parte del código del programa.

Línea 1: esto se conoce como directiva de preprocesador. le indica al compilador que ubique el archivo que contiene el código para una biblioteca conocida como iostream. Esta biblioteca contiene código que permite la entrada y salida a las transmisiones, como la ventana de la consola.

Línea 3: cada programa C ++ debe tener un método conocido como main (). Se le conoce como el punto de entrada de la aplicación cuando inicia la ejecución del programa en su computadora. La parte int es el tipo de retorno del método. Los paréntesis vacíos () después del nombre del método indican que este es un método y que no requiere argumentos, en otras palabras, no hay parámetros para pasar valores.

Línea 4: Los cuerpos de métodos en C ++ comienzan con una llave abierta. Línea 5: Este código utiliza un método conocido como cout (pronunciado "ver") para enviar el texto Hello World! a la consola para salida y visualización. El prefijo std :: de este comando es una forma de indicar que cout es parte de un espacio de nombres conocido como std. :: se usa para indicar que cout es parte del espacio de nombres estándar.

Observe también que la línea termina con un punto y coma. Las declaraciones de C ++ terminan con punto y coma.

Línea 6: La declaración de devolución se usa para finalizar una función o método cuando se espera que un valor se envíe nuevamente a la persona que llama. En este caso, la persona que llama es el sistema operativo y el valor devuelto es un valor entero de 0. Si el programa alcanza esta declaración, devolver un valor de 0 es una indicación al sistema operativo de que el código se ejecutó con éxito. En el pasado, los programadores devolvían 0 para indicar una ejecución exitosa y valores distintos de cero para indicar que se había producido un error en algún lugar del programa.

Línea 7: esta línea cierra el cuerpo de la función main () y es necesaria para que el compilador sepa dónde termina la función o el método, pero también se usa para otros fines que se cubrirán más adelante en el curso sobre alcance y visibilidad variables.

@IoTeacher
Copy link
Member Author

IoTeacher commented Sep 26, 2019

Aplicaciones C ++ en diferentes plataformas

Escribir código en varios idiomas como una forma de ejecutar sus aplicaciones en múltiples plataformas o sistemas operativos diferentes puede llevar una cantidad considerable de tiempo, lo que puede duplicar el esfuerzo. La portabilidad de la aplicación puede no ser un requisito para todas las aplicaciones de software, pero ¿qué pasa si se requiere la portabilidad? Entonces, ¿qué es exactamente la portabilidad o la capacidad de ejecutar en múltiples plataformas?

Principalmente, la portabilidad se refiere al proceso de compilación de su código, sin cambios importantes, en diferentes compiladores o diferentes plataformas. Las plataformas generalmente significan hardware de computadora, sistemas operativos, arquitecturas de CPU o factores de forma del dispositivo. Los compiladores se refieren al proceso de convertir su código en forma ejecutable. Cada plataforma o sistema operativo puede tener diferentes compiladores disponibles de diferentes proveedores como Microsoft, Intel u Oracle.

@IoTeacher
Copy link
Member Author

El papel del enlazador

Una vez que el compilador ha completado sus tareas, se invoca el enlazador. El vinculador es responsable de tomar todos los archivos de objetos, que formarán parte del código ejecutable de la aplicación, y luego los vincula a todos en el archivo .exe de la aplicación. Al mismo tiempo, el vinculador garantiza que se cumplan todas las promesas del compilador durante el proceso de vinculación.

Un ejemplo, si su programa hace uso de la función cout, que se encuentra en el conjunto de archivos iostream, el vinculador se asegurará de que el código necesario para esa función esté incluido en su archivo .exe. (o ejecutable)

@IoTeacher
Copy link
Member Author

Editores y herramientas de C ++

Si bien las demostraciones de este curso utilizan el entorno Visual Studio de Microsoft, puede elegir el editor y el compilador que prefiera. Los ejemplos utilizados aquí siguen el estándar C ++ 11 y, por lo tanto, deberían funcionar en su plataforma de elección y en el editor y compiladores que usa en esas plataformas.

El curso no enseña y no puede enseñar a todos los diferentes editores, compiladores y su sintaxis. Siga este enlace para identificar editores y compiladores que pueda usar para escribir, editar y compilar código C ++.

Para más información, puede ver:
Visual Studio: https://aka.ms/edx-dev210x-vs
JetBrains CLION y muchos mas ...

@IoTeacher
Copy link
Member Author

IoTeacher commented Sep 26, 2019

Declaraciones de C ++

Un programa C++ se compone de varios componentes como funciones, métodos, clases, etc. Las instrucciones que forman parte de un programa C++ generalmente residen dentro de funciones o métodos. Estas funciones se componen de declaraciones de C ++. Se encontrará utilizando varios tipos de declaraciones en su código C++ como se enumeran aquí:

declaraciones: se utilizan para declarar variables y constantes que se utilizarán en su aplicación.

asignaciones: se utilizan para asignar valores a variables en el código de su aplicación directivas de preprocesador: tratadas en el tema sobre Formateo de código

comentarios: utilizados para documentar su código

declaraciones de funciones: cubiertas en el tema sobre Formateo de código

sentencias ejecutables: se utilizan para realizar operaciones y ejecutar instrucciones.

Los ejemplos serían cout << "Hello World!"; que produce Hello World! a la consola

Utilizará estos tipos de sentencias a lo largo de este y sucesivos cursos en C ++.

@IoTeacher
Copy link
Member Author

Datos numéricos

C ++ contiene tipos de datos intrínsecos para almacenar valores numéricos en el código de su aplicación. Es importante recordar que estos valores están basados ​​en binarios y no son tan flexibles como sus contrapartes de base 10. Por ejemplo, en términos matemáticos de un entero de base 10, la definición es un valor que es infinito negativo a infinito positivo números enteros. Las computadoras modernas aún no pueden representar números tan grandes. Tome como ejemplo el tipo int en la tabla Tipos de datos numéricos. El rango no excede los 3 mil millones en cualquier dirección.

La representación de bytes dada en esa tabla le dará una pista sobre cómo se almacenan los valores en la memoria y en el disco.

Screenshot from 2019-09-25 18-17-43

@IoTeacher
Copy link
Member Author

Datos de Caracter (texto)

Los datos de caracteres se utilizan para representar datos no numéricos, como letras y símbolos. Los datos de caracteres se representan realmente como información numérica debajo de las cubiertas. El tipo char estándar se usa para representar los valores numéricos de los datos de caracteres representados por el conjunto de caracteres básico presente en una computadora en particular. Esto está determinado por la configuración regional.

Para fines de internacionalización, se utiliza el tipo wchar_t que se expande en los valores numéricos disponibles para representar conjuntos de caracteres de varios idiomas que se encuentran en todo el mundo.

NOTA: Los nombres de tipo que comienzan con un carácter __ se consideran tipos no estándar.

Screenshot from 2019-09-25 18-19-38

@IoTeacher
Copy link
Member Author

Otros tipos de datos

C ++ admite otros tipos de datos fuera de los tipos de datos numéricos o de caracteres. El primero que vemos en la tabla a continuación es el tipo de datos booleanos llamado bool. Esto se utiliza para representar valores verdaderos o falsos en una aplicación. En lenguajes anteriores como C, falso se representaba como un valor 0 y verdadero se representaba como cualquier valor distinto de cero.

Screenshot from 2019-09-25 18-20-32

C ++ también tiene el concepto de una enumeración, llamada enum. Una enumeración es un conjunto de constantes almacenadas como valores literales. Limitan las opciones para el tipo. Por ejemplo, cuando se trata de un tipo de datos int, puede asignar cualquier valor a ese tipo de datos que se ajuste al rango del tipo entero para esa computadora. Con una enumeración, usted especifica un conjunto limitado de constantes literales que se pueden asignar al tipo.

Considere la necesidad de usar un tipo de datos para representar los días de la semana. ¿Cómo almacena esta información en un tipo de datos? Podría usar una matriz, pero ¿qué tipo de datos usaría? Quizás un tipo de datos de cadena. Pero, ¿cómo evita que alguien agregue un día no válido de la semana, como el lunes, a la matriz? Si crea una enumeración que almacena solo valores válidos de domingo a sábado, restringe el tipo de datos solo a esas constantes literales.

Las enumeraciones se tratan más adelante en este módulo en la lección sobre Tipos de datos complejos.

@IoTeacher
Copy link
Member Author

IoTeacher commented Sep 26, 2019

Elegir tipos de datos

Elegir el tipo de datos correcto es importante en sus aplicaciones para garantizar que pueda representar sus datos de manera eficiente y correcta. Algunos ejemplos de esto serían;

  • haciendo uso de short en lugar de int si su rango de datos lo permite
  • utilizando un doble en lugar de un float para obtener una mayor precisión para los valores que representan dinero
  • utilizando un wchar_t para datos de caracteres que no se ajustan al conjunto de caracteres ASCII estándar, como el kanji japonés

@IoTeacher
Copy link
Member Author

@IoTeacher
Copy link
Member Author

https://www.learncpp.com

@IoTeacher IoTeacher removed their assignment Feb 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

1 participant