Quick Tutorial de C++ y CLion

Documentos relacionados
Paradigmas de lenguajes de programación. Introducción a la programación imperativa. Lenguaje C. Programación imperativa

Repaso: Teórica. Introducción a la programación imperativa. Paradigmas de lenguajes de programación. Repaso: Tipos de datos

Introducción a c++ Introducción a la programación EIS Informática III

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III

There are no translations available. En este artículo vamos a aprender a realizar operaciones en el lenguaje de programación C Introducción.

26 de Octubre del 2013

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

Programación 1 Tema 3. Información, datos, operaciones y expresiones

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Definición Es una directiva using que ayuda al compilador a localizar una clase que se usa en la aplicación.

FUNDAMENTOS DE PROGRAMACIÓN Asignatura correspondiente al plan de estudios de la carrera de Ingeniería Informática

LABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++

Curso de Java Introducción a la Programación II

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Introducción a C++ y Code::Blocks

Introducción a Java. Dr. (c) Noé Alejandro Castro Sánchez

Capítulo 3. Introducción a la programación. Continuar

Introducción rápida a la programación (estructurada ) con C++

Introducción al lenguaje C

Introducción a C++ y Code::Blocks

Datos Elementales y formato de un programa en Java

Principios de Computadoras II

Programación 1. Tema I. Conceptos y elementos básicos de Programación. Lección 1. Problemas de tratamiento de información, algoritmos y programas

INTRODUCCIÓN AL LENGUAJE C++

Informática General 2018 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 1

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

INTRODUCCIÓN A LA PROGRAMACIÓN. 1º Bachillerato

JavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante.

Autoestudio 2: Variables y Operadores

CAPITULO 2: VARIABLES Y CONSTANTES

SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 9 Departamento de Arquitectura y Tecnología de Computadores Universidad de Sevilla

Introducción a C++ Algoritmos y Estructuras de datos II Dra. Carmen Mezura Godoy. Febrero 2009

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica

roducción a la programación con el lenguaje C usando el entorno de trabajo Dev-C. Nociones básicas de programación

El lenguaje de programación C - El primer programa -

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa

Programación 1 Tema 2. Lenguaje de programación y ejecución de un programa

Introducción a imperativo usando C++

Introducción a Python Qué es Python?

Conceptos Básicos. Programación

Fundamentos de Programación 2017-I

Cuáles son los lenguajes que pueden utilizarse para programar Karel?

Programación I Teoría I.

REPASO ARRAYS O ARREGLOS UNIDIMENSIONALES EN JAVA. EJEMPLOS DE CÓDIGO. (CU00903C)

Programación estructurada. Programación estructurada

Lenguajes de programación. Algoritmos y Estructuras de Datos I. Lenguajes compilados. Lenguajes compilados

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Cursosindustriales. Curso de C / C++ Por Deimos_hack

LENGUAJE. Tema 2 Elementos de un programa

Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación:

El programa en JavaScript debe ir encerrado entre la marca script e inicializada la propiedad type con la cadena text/javascript:

Primeramente, qué es C++? Qué necesitas para programar en C++?

Formato para prácticas de laboratorio

NOCIONES BASICAS DE Miguel Iván Bobadilla

El lenguaje C. 1. Identificadores, constantes y variables

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota:

GUÍA DE TRABAJO N 1 C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 13

Operadores aritméticos

Clase 2: Tipos de Datos y Condiciones. Profesora de Cátedra: Jocelyn Simmonds

ING1310 Introducción a la Computación. Python. Conceptos Básicos. Carlos Reveco

1. Explorando la ventana Python

Informática General Cátedra: Valeria Drelichman Pedro Paleo Leonardo Nadel Norma Morales

Cursosindustriales. Curso de C / C++ Por Deimos_hack

Introducción al lenguaje C

EJEMPLOS LENGUAJE C. DECLARAR VARIABLES Y ASIGNARLES CONTENIDO. PROGRAMA BÁSICO INT MAIN MOSTRAR MENSAJE. (CU00511F)

4. Operadores Operador asignación

Introducción a Arduino

Fundamentos de la POO 1

Agosto de 2012 TUTORIAL PSEINT. Servicio Nacional de Aprendizaje SENA Jordan Angulo Canabal

PRÁCTICA DE PROCESADORES DE LENGUAJE EVALUACIÓN ORDINARIA CURSO 2009/2010 OBJETIVO DE LA PRÁCTICA

Introducción a los Computadores ITTELSI. Curso

Objetivo N 2. Conocer la Estructura General de un Programa en C++ Estructura de Datos Prof. Egilde Márquez

REPRESENTACIÓN DE DATOS

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.

Java para programadores

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 1

1. Repaso del Lenguaje C M.C. Luis A. Zarza López

Sintaxis básica, variables y 7pos

Taller #1 (versión del 18 de septiembre de 2009) Programación básica y aproximación al paradigma orientado a objetos

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

Tema: Entorno a C# y Estructuras Secuenciales.

Estructura de Datos Unidad 1: Repaso del Lenguaje Java

FUNDAMENTOS DE INFORMÁTICA 1º Ingeniería Industrial

Estructuras y clases. Dept. Ciencias de la Computación e I.A. Universidad de Granada

Programación 1. Tema I. Conceptos y elementos básicos de Programación. Lección 2. Lenguaje de programación y ejecución de un programa

MANUAL BÁSICO DE PSEUDOCÓDIGO A LENGUAJE C.

Fundamentos de Informática E.U.P. Universidad de Sevilla

PROGRAMACION ESTRUCTURADA: Tema 1. El lenguaje de programación C

Indique la veracidad o falsedad de cada una de las afirmaciones siguientes, explicando detalladamente en cada caso el motivo de su respuesta.

1.1 Tipos de Datos Primitivos. 1.2 Tipos de datos estructurados. 1.3 Definición de estructura de datos

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

Transcripción:

Quick Tutorial de C++ y CLion Departamento de Computación, FCEyN, Universidad de Buenos Aires. 28 de Agosto de 2017

Bienvenidos al Laboratorio de Programación de Algoritmos y Estructura de Datos Equipo docente Pablo Negri (JTP) Matias Marino (Ay1) Sebastián Galimberti (Ay2) Brian Goldstein (Ay2)

Bienvenidos al Laboratorio de Programación de Algoritmos y Estructura de Datos Equipo docente Pablo Negri (JTP) Matias Marino (Ay1) Sebastián Galimberti (Ay2) Brian Goldstein (Ay2) Aula o Laboratorio Laboratorio Turing (mayoria de los talleres) Laboratorio 1 (dos clases) Aula 4

Qué es un programa?

Qué es un programa? Un programa es la descripción de un algoritmo en un lenguaje de programación.

Qué es un programa? Un programa es la descripción de un algoritmo en un lenguaje de programación. Corresponde a la implementación concreta del algoritmo para ser ejecutado en una computadora.

Qué es un programa? Un programa es la descripción de un algoritmo en un lenguaje de programación. Corresponde a la implementación concreta del algoritmo para ser ejecutado en una computadora. Se describe en un lenguaje de programación.

Qué precisamos para ejecutar un programa?

Qué precisamos para ejecutar un programa? 1 Hardware: en nuestro caso, una PC, pero también puede ejecutarse en...

Qué precisamos para ejecutar un programa? 1 Hardware: en nuestro caso, una PC, pero también puede ejecutarse en... 2 Compilador: traduce a código de máquina las instrucciones del programa.

Qué precisamos para ejecutar un programa? 1 Hardware: en nuestro caso, una PC, pero también puede ejecutarse en... 2 Compilador: traduce a código de máquina las instrucciones del programa. 3 Editor de Texto: es el entorno donde escribimos las instrucciones del programa.

CLion En el Taller de Algo-1 vamos a utilizar un entorno de desarrollo de C++ (IDE) denominado CLion. Esta IDE permite crear proyectos, editar archivos, compilar, debuggear, entre otras cosas. Es una herramienta que se puede descargar bajo licencia estudiantil, y está instalada en las PCs del laboratorio.

Pantalla de bienvenida del CLion Para lanzar el CLion en las PCs del laboratorio, abrir una consola (boton derecho del mouse sobre el escritorio), y escribir: clion.sh

Pantalla de bienvenida del CLion Para lanzar el CLion en las PCs del laboratorio, abrir una consola (boton derecho del mouse sobre el escritorio), y escribir: clion.sh La ventana de inicio puede mostrar:

Pantalla de bienvenida del CLion La ventana de nuevo proyecto permite seleccionar el directorio de destino y el tipo de aplicación. En el ejemplo, el directorio destino es HolaMundo, y el tipo de aplicación C++ Executable.

Proyecto Hola Mundo CLion genera autoáticamente dos archivos para el proyecto: 1 main.cpp 2 CMakeList.txt

Proyecto Hola Mundo CLion genera autoáticamente dos archivos para el proyecto: 1 main.cpp 2 CMakeList.txt y muestra al usuario la IDE

Proyecto Hola Mundo La IDE contiene dos paneles principales: 1 Explorador de los archivos del proyecto 2 Editor de texto

Proyecto Hola Mundo Primera sorpresa: En el editor de texto, podemos ver que el archivo main.cpp no está vacio. 1 #include <iostream> 2 3 int main() { 4 std::cout << Hello, World! << std::endl; 5 return 0; 6 }

Proyecto Hola Mundo 1 #include <iostream> 2 3 int main() { 4 std::cout << Hello, World! << std::endl; 5 return 0; 6 } Que hace el programa?

Proyecto Hola Mundo 1 #include <iostream> 2 3 int main() { 4 std::cout << Hello, World! << std::endl; 5 return 0; 6 } #include <iostream> sirve para incorporar al programa un set de funciones. 1 # es un caracter que indica al compilador una instrucción especial 2 include instrucción que incluye la librería que puede estar entre llaves o parentesis 3 iostream es una libreria de funciones para el manejo de entrada/salida de c++

Proyecto Hola Mundo 1 #include <iostream> 2 3 int main() { 4 std::cout << Hello, World! << std::endl; 5 return 0; 6 } int main() { define el inicio del bloque de la función principal del programa. Por convención, el programa siempre inicia su ejecución en esta funcion. Podemos ver dos características: 1 Esta función main no recibe parámetros () 2 La función devuelve una variable de tipo int o sea entero. 3 { Es la llave de apertura de la función.

Proyecto Hola Mundo 1 #include <iostream> 2 3 int main() { 4 std::cout << Hello, World! << std::endl; 5 return 0; 6 } std::cout << "Hello, World!" << std::endl; 1 std es una librería de funciones definida dentro de iostream. Para acceder a una de esas funcions se usan dos puntos consecutivos :: 2 cout es una instrucción para imprimir en pantalla el mensaje entre << y <<, aqui es un mensaje de tipo String, entre comillas ", pero es capaz de imprimir todo tipo de variables. 3 La instrucción endl indica el fin de la ĺınea (retorno de carro) 4 ; finaliza la instrucción. El compilador lo precisa para identificar que termina la ĺınea de instrucción. Olvidarse el punto y coma representa el 50 % de los errores de compilación en C++ :-)

Proyecto Hola Mundo 1 #include <iostream> 2 3 int main() { 4 std::cout << Hello, World! << std::endl; 5 return 0; 6 } return 0; El programa termina retornando 0, que significa que no hubo errores en la ejecución. } La llave de cierre termina el bloque de la función main. Olvidarse de los cierres de bloques es otra fuente común de error de compilación.

Proyecto Hola Mundo Ahora vamos a compilar el programa para generar el archivo ejecutable.

Proyecto Hola Mundo Ahora vamos a compilar el programa para generar el archivo ejecutable. Esto se hace con CLion utilizando el icono verde de RUN. La IDE abre un nuevo panel que muestra el avance y estado de la compilación.

Proyecto Hola Mundo Ahora vamos a compilar el programa para generar el archivo ejecutable. Esto se hace con CLion utilizando el icono verde de RUN. La IDE abre un nuevo panel que muestra el avance y estado de la compilación. Podemos ver que el cmake ejecutó secuencialmente una compilación, un linking y terminó por construir el ejecutable.

Proyecto Hola Mundo Luego de la compilación, el IDE ejecuta automáticamente el programa y muestra el resultado en un nuevo panel.

Proyecto Hola Mundo Luego de la compilación, el IDE ejecuta automáticamente el programa y muestra el resultado en un nuevo panel. En este panel podemos ver efectivamente, el mensaje generado por la función cout.

Proyecto Hola Mundo Que pasa cuando la compilación falla por un error?

Proyecto Hola Mundo Que pasa cuando la compilación falla por un error? Ejecutemos el programa con errores de sintaxis: 1 Quitar el punto y coma al final de la linea del cout. 2 Borrar la llave de cierre del main. Analizar el mensaje de error que nos devuelve el IDE. Es útil para resolver el problema?.

Programación Imperativa: Variables Para almacenar valores utilizamos variables, que se declaran con un tipo de datos asociado: 1 #include <iostream> 2 3 int main() { 4 int a = 11; 5 std::cout << a; 6 return 0; 7 } A partir de la ĺınea 4, la variable a contiene el entero 11. En el siguiente comando, se accede a esta variable y se imprime por consola su valor.

Tipos de datos de C++ Un tipo de datos es... 1... un conjunto de valores (llamado el conjunto base del tipo), 2... junto con una serie de operaciones para trabajar con los elementos de ese conjunto. En C++ tenemos tipos de datos que implementan (en algunos casos parcialmente) cada uno de los tipos de datos del lenguaje de especificación: El tipo int para números enteros (Z) El tipo float para números reales ( R) El tipo bool para valores booleanos (Bool) El tipo char para caracteres (Char) Atención: Ni int ni float contienen todos los valores de Z y R, pero a los fines de AED1, podemos asumir que Z = int y R = float.

Concordancia de tipos En C/C++ es obligatorio asignar a cada variable una expresión que coincida con su tipo, o que el compilador sepa cómo convertir en el tipo de la variable. Se dice que C++ es un lenguaje débilmente tipado. 1 int main() { 2 int a = Hey, hey! ; // No! La expresion asignada no es un int 3... 4 }

Declaración y asignación de variables TODAS LAS VARIABLES se deben declarar antes de su uso. 1 Declaración: Especificación de la existencia de la variable, con su tipo de datos. 2 Asignación: Asociación de un valor a la variable, que no cambia a menos que sea expĺıcitamente modificado por otra asignación. 3 Inicialización: La primera asignación a una variable. Entre la declaración y la inicialización tiene basura. 1 int main() { 2 int a; // Declaracion, aqui a no tiene valor util 3 a = 5; // Inicializacion 4 a = a+2; // Asignacion de un nuevo valor 5... 6 } Una variable puede ser inicializada al declararla: int a = 5 es válido.

Operadores aritméticos Asociados a los tipos de variables, se definen los siguientes operadores aritméticos: 1 + y -: suma y resta. 2 *, /: multiplicación y división. 3 %: módulo, devolviendo el resto de la división entre dos números.

Operadores de Comparación e Igualdad Existen operadores de comparación e igualdad que devuelven un resultado booleano: 1 == y!=: igualdad y desigualdad. 2,, = y =: mayor, menor, mayor e igual, menor e igual. Las comparaciones pueden realizarse sobre constantes numéricas o sobre variables. 1 (5 == 5); // devuelve true 2 (6 <= 2); // devuelve false 3 (b == d); // depende de las varialbes b y d 4 (c > a); 5 }

Operadores Lógicos Los operadores lógicas en C++ son: 1 &&: AND lógico. 2 : OR lógico. 3! : NOT lógico.

Operadores Lógicos Los operadores lógicas en C++ son: 1 &&: AND lógico. 2 : OR lógico. 3! : NOT lógico. Veamos un ejemplo utilizando variables y operaciones lógicas.

Ejemplo de Operaciones Lógicas Crear un nuevo proyecto File --> New Project. Llamarlo, por ejemplo LogicOp. Reemplazar el main.cpp con el siguiente código: 1 #include <iostream> 2 3 int main() { 4 5 bool a = false; 6 bool b = true; 7 bool c; 8 10 9 c = a && b; 11 std::cout << Valor c: << c << std::endl; 12 return 0; 13 }

Ejemplo de Operaciones Lógicas Al ejecutarlo, el panel de salida muestra:

Ejemplo de Operaciones Lógicas Al ejecutarlo, el panel de salida muestra: variable c: 0 Process finished with exit code 0

Ejemplo de Operaciones Lógicas Al ejecutarlo, el panel de salida muestra: variable c: 0 Process finished with exit code 0 El valor de la variable c es 0!!!

Ejemplo de Operaciones Lógicas Al ejecutarlo, el panel de salida muestra: variable c: 0 Process finished with exit code 0 El valor de la variable c es 0!!! Y el valor booleano????

Ejemplo de Operaciones Lógicas Al ejecutarlo, el panel de salida muestra: variable c: 0 Process finished with exit code 0 El valor de la variable c es 0!!! Y el valor booleano???? Podemos imprimir un mensaje más adecuado?.

Ejemplo de Operaciones Lógicas Introducimos el Operador Condicional Ternario expresion? resultado1 : resultado2 ( les hace recordar de la teoria?)

Ejemplo de Operaciones Lógicas Introducimos el Operador Condicional Ternario expresion? resultado1 : resultado2 ( les hace recordar de la teoria?) Reemplazar el código 1 std::cout << Valor c: << (c? true : false ) << std::endl;

Ejemplo de Operaciones Lógicas Introducimos el Operador Condicional Ternario expresion? resultado1 : resultado2 ( les hace recordar de la teoria?) Reemplazar el código 1 std::cout << Valor c: << (c? true : false ) << std::endl; Tambien puede realizar otro tipo de operaciones interesantes 1 std::cout << El maximo es: << (a > b? a : b) << std::endl;

Operadores Lógicos Los operadores && y utilizan lógica de cortocircuito: No se evalúa la segunda expresión si no es necesario. En otras palabras && implementa el L y implementa el L 1 // inversomayor entre n y m 2 bool c = (n!= 0 && 1/n > m); 3 std::cout << El inverso de n << (c? : no ); 4 std::cout << es mayor que m << std::endl;

Operadores Lógicos Los operadores && y utilizan lógica de cortocircuito: No se evalúa la segunda expresión si no es necesario. En otras palabras && implementa el L y implementa el L 1 // inversomayor entre n y m 2 bool c = (n!= 0 && 1/n > m); 3 std::cout << El inverso de n << (c? : no ); 4 std::cout << es mayor que m << std::endl; Si n = 0, entonces el primer término es falso, pero el segundo está indefinido! En C/C++, esta expresión evalúa directamente a falso. Solamente se evalúa 1/n > m si n 0.

Compilación básica desde linea de comando Abrir una terminal e ir hasta el directorio del ultimo proyecto. Vamos a compilar desde ĺınea de comando el main.cpp utilizando la aplicación g++, generando un ejecutable: g++ -o main.o main.cpp Si la compilación fue exitosa, se generó un archivo main.o en el directorio. Ejecutamos el programa mediante:./main.o

Envio de parámetros al ejecutable por ĺınea de comando En este caso la función main si recibe parámetros de entrada: argc (entero, indicando la cantidad Algoritmos dey Estructura parámetros) de Datos I y argv (es En CLion generar un nuevo proyecto y asignarle como nombre LogicOpArg. Reemplazar el codigo de la función main por: 1 #include <iostream> 2 3 int main(int argc, char argv[]) { 4 5 bool a,b,c; 6 7 a = atoi(argv[1]); 8 b = atoi(argv[2]); 9 c = a && b; 10 11 std::cout << a: << argv[1] << a bool << a << std::endl; 12 std::cout << b: << argv[2] << a bool << b << std::endl; 13 std::cout << variable c: << c << std::endl; 14 return 0; 15 }

Envio de parámetros al ejecutable por ĺınea de comando 1 #include <iostream> 2 3 int main(int argc, char argv[]) { 4 5 bool a,b,c; 6 7 a = atoi(argv[1]); 8 b = atoi(argv[2]); 9 c = a && b; 10 11 std::cout << a: << argv[1] << a bool << a << std::endl; 12 std::cout << b: << argv[2] << a bool << b << std::endl; 13 std::cout << variable c: << c << std::endl; 14 return 0; 15 } Compilar el programa desde la linea de comando con g++. Ejecutar el programa enviando los dos parametros para a y b../main.o 1 0 Que da a la salida el programa?