La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0

Presentaciones similares


Presentación del tema: "Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0"— Transcripción de la presentación:

1 Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0
SINTAXIS EN C++ Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0

2 LA ESTRUCTURA DE C++ main function Square function Cube function En C++ todos los sub-programas se llaman funciones (“functions”). Un programa en C++ puede ser un conjunto de funciones. Cada función realiza una tarea en particular con el objetivo de resolver un problema. El ejemplo del lado tiene 3 funciones. La principal y dos auxiliares.

3 ESTRUCTURA (CONT.) main function Square function Cube function
Todo programa en C++ tiene una función llamada “main”. La ejecución del programa siempre comienza aqui. Se puede decir que “main” es la función “master” e invoca a las demas para poder completar su tarea. Square y Cube son las funciones auxiliares que son invocadas por la función main. Las tres funciones son necesarias para poder completar el problema.

4 LISTADO DEL PROGRAMA EN C++
//****************************************************************** // Sample program // This program computes the square and cube of 27 #include <iostream> using namespace std; int Square( int ); int Cube( int ); int main() { cout << "The square of 27 is " << Square(27) << endl; cout << "and the cube of 27 is " << Cube(27) << endl; return 0; } int Square( int n ) return n * n; int Cube( int n ) return n * n * n;

5 FUNCIÓN main El resultado que va a devolver este programa es:
Marca el comienzo de las intrucciones que se van a ejecuar. Encabezamiento. int main() { cout << "The square of 27 is " << Square(27) << endl; cout << "and the cube of 27 is " << Cube(27) << endl; return 0; } Primera instrucción del programa. Estas instrucciones se conocen como el cuerpo “body” del programa. Marca el final de las intrucciones que se van a ejecuar. El resultado que va a devolver este programa es: The square of 27 is 729 And the cube of 27 is 19683

6 FUNCIONES AUXILIARES Este identifier establece que la función Square devuelve un resultado entero. int Square( int n ) { return n * n; } int Cube( int n ) return n * n * n; Ambas funciones son ejemplo de funciones llamadas “value-returning functions” El “identifier” return le permite a la función devolver un valor.

7 VOCABULARIO Función – Un sub-programa en C++.
Syntax – Reglas que indican como se escriben las instrucciones correctamente en un lenguaje de programación. Semantics – Conjunto de reglas que determinan el significado de las instrucciones escritas en un lenguaje de programación. Metalanguage – Un lenguaje que es usado para escribir las reglas de sintaxis para otros lenguajes. Identifier – Un nombre asociado a una función o “data object” y se utiliza para hacer referencia a esa función o “data object”.

8 METALANGUAGE “Syntax template”
Existen muchas formas de hacer anotaciones para especificar los lenguages. Estas anotaciones, se llaman “metalanguage”. Utilizaremos el formato llamado “syntax template” para indicar formatos de instrucciones en el programa. Ejemplo: El “template” para un identifier es: Letter Letter _ _ … Digit El área sombreada significa que es opcional. Los 3 puntos significan que se puede repetir el símbolo que le precede.

9 TEMPLATE NÚMERO Y LETRAS
Por lo tanto concluimos que un “identifier” puede comenzar con una letra o un guión y puede seguir repitiendose ese patrón. Los templates para letras y números son: A a J j S s B b K k T t C c L l U u D d M m V v E e N n W w F f O o X x G g P p Y y H h Q q Z z I I R r 1 2 3 4 5 6 7 8 9

10 TEMPLATE DE LA FUNCIÓN “main”
La instrucción en gris significa que es opcional y los tres puntos, que se pueden incluir mas instrucciones. El programa mas corto en C++ sería. int main() { return 0; } int main() { statement . }

11 Ejemplos de “identifiers válidos
Los “identifiers” se utilizan en C++ para nombrar cosas tales como sub-programas, variables, constantes, etc. Se compone de letras (A-Z, a-z) y de dígitos (0-9) y el “underscore” (_). Sin embargo, debe empezar con una letra o con el “underscore”. Los que comienzan con el “underscore”, tienen un significado especial en algunos compiladores de C++, de modo que siempre comenzaremos con letras. Ejemplos de “identifiers válidos suma_de_cuadrados J9 ObtenerDatos Contador Bin3D4 Template del “identifier” Letter Letter _ _ … Digit

12 IDENTIFIERS INVÁLIDOS
IDENTIFIER INVÁLIDO Explicación 40Horas No puede comenzar con números. Obtener Datos No se permiten espacios en blanco. box-22 El guión (“hyphen”) no es válido. costo_en_$ No se pueden utilizar símbolos especiales como el signo de dolar. int La palabra “int” es una palabra reservada en C++.

13 QUIZZ # 1– DETERMINE SI ES VÁLIDO O INVÁLIDO24
IDENTIFIER VÁLIDO/INVÁLIDO (Razón) say_what eres_#_1 return Buscar pacoAmigoGrande 5Veces habichuela Colora dude cuajito-con-guineo Main

14 VÁLIDO/INVÁLIDO (Razón)
QUIZZ # 1– RESPUESTAS IDENTIFIER VÁLIDO/INVÁLIDO (Razón) say_what Válido eres_#_1 Inválido – Signo “#” return Inválido – Palabra reservada Buscar pacoAmigoGrande 5Veces Inválido – Comienza con un número. habichuela Colora Inválido – Espacio en blanco. dude cuajito-con-guineo Inválido – Uso del guión. Main

15 DATA TYPE El “Data type” determina como los datos son representados en la computadora y los tipos de procesamientos que la computadora puede ejecutar en ellos. El propósito de las distintas representaciones, es optimizar el uso de la memoria. Algunas de las representaciones de datos en C++ es.

16 Char Data Type ‘A’ ‘a’ ‘8’ ‘2’ ‘?’ ‘+’ ‘-’ ‘$’ ‘*’ ‘ ‘
Los “Data type” tipo char describen datos los cuales consisten de un solo caracter. Pueden ser una letra, un dígito o un caracter especial. Se utilizará el signo (‘ ) para representar los valores tipo char. EJEMPLOS: ‘A’ ‘a’ ‘8’ ‘2’ ‘?’ ‘+’ ‘-’ ‘$’ ‘*’ ‘ ‘

17 String Data Type “C++” “Programación” “Petraca” “ y “ “Minga “
Los “Data type” tipo String describen datos los cuales consisten de mas de un caracter. Pueden ser letras, dígitos o caracteres especiales. Se utilizará el signo (“ ) para representar los valores tipo String. EJEMPLOS: “C++” “Programación” “Petraca” “la vaca” “ y “ “Minga “

18 Naming Elements: Declarations
Los “identifiers” se utilizan entre otras cosas para ponerle nombre a las constantes y a las variables. En otras palabras, un “identifier” puede ser el nombre de una localización de memoria. Utilizamos declaraciones para poder definir varibles y constantes. Formato para declarar una variable. DataType Identifier , Identifier ;

19 EJEMPLO DE DECLARACIONES DE VARIABLES
char letra, laInicial, ch; char letra; char laInicial; char ch; float payRate; //Pago por hora al empleado float horas; // Horas trabajadas float salario; // Salario del empleado int cantidadEmpleados; // Cantidad de empleados Se puede definir mas de una variable en una sola declaración del mismo tipo. Se recomienda que se declaren las varibles con una sola declaración. Separar las declaraciones permite documentarlas.

20 CONSTANTES ‘A’ ‘@’ ‘*’ “123456789” “UPR” “Entre número”
Todo caracter encerrado entre comillas sencillas (‘) y “strings” encerrados en doble comillas (“) son constantes. Las constantes son valores que nunca cambian. Cuando usamos el valor de una constante en un programa, la llamamos “literal value”. También se le conoce como “named constant” o “symbolic constant”. EJEMPLOS ‘A’ “UPR” “Entre número” ‘*’ “ ” Se pueden utilizar en un programa como un “literal string” o una constante (“named constant”). Literal string  “Programming and Problem Solving with C++” Named constant  BOOK_TITLE

21 EJEMPLO DE DECLARACIONES DE CONSTANTES
El template para definir una constante es: const DataType Identifier = LiteralValue; Ejemplo de declaraciones de constantes: const string ESTRELLAS = “**********”; const char BLANCO = ‘ ‘; const string BOOK_TITLE = “Programming and Problem Solving with C++” const string EL_MENSAJE = “café puya”

22 QUIZZ # 2– ESCRIBA LA DECLARACIÓN
DESCRIPCIÓN DECLARACIÓN Variable entera llamada total. Constante tipo float llamada PI con valor Variable tipo char llamada inicial. Variable tipo string llamada titulo. Constante entera llamada HORAS_SEMANA con valor = 40. Constante tipo char llamada PORCIENTO con valor = ‘%’. Constante tipo string llamada CAFE con valor = “agua de piringa”.

23 DESCRIPCIÓN DECLARACIÓN
QUIZZ # 2– RESPUESTAS DESCRIPCIÓN DECLARACIÓN Variable entera llamada total. int total; Constante tipo float llamada PI con valor const float PI = ; Variable tipo char llamada inicial. char inicial; Variable tipo string llamada titulo. string titulo; Constante entera llamada HORAS_SEMANA con valor = 40. const int HORAS_SEMANA = 40; Constante tipo char llamada PORCIENTO con valor = ‘%’. const char PORCIENTO = ‘%’; Constante tipo string llamada CAFE con valor = “agua de piringa”. const string CAFE = “agua de piringa”;

24 VOCABULARIO (2) Palabra reservada – Una palabra que tiene un significado especial en C++. No puede ser usado como una variable. Data Type – Valores de datos en conjunto con unas operaciones para esos valores. Variable - Localización en memoria a la cual se le hace referencia utilizando un “identifier” que contiene un valor y puede ser modificable. Declaration – Comando que asocia un “identifier” con un “data object”, función o “data type”. Constantes – Localización en memoria a la cual se le hace referencia utilizando un “identifier” que contiene un valor y NO puede ser modificable.

25 ASIGNACIONES El valor de una variable puede ser definido o cambiado utilizando un “assignment statement” el cual almacena el valor de una expresión. Por ejemplo: lastName = “Lincoln”; Asigna el “string” “Lincoln” a la variable lastName. El “template” para asignar valores es: Variable = Expression;

26 EJEMPLO DE ASIGNACIONES VÁLIDAS
Utilizando las siguientes declaraciones: string firstName; string middleName; string lastName; string title; char middleInitial; char letter; VÁLIDOS firstName = “Pablo”; middleName = firstName; middleName = “”; lastName = “Rivera”; title = “Ingeniero”; middleInitial = ‘ ‘; letter = middleInitial;

27 EJEMPLO DE ASIGNACIONES INVÁLIDAS
Utilizando las siguientes declaraciones: string firstName; string middleName; string lastName; string title; char middleInitial; char letter; INVÁLIDOS middleInitial = “A.”;  No se puede guardar un “string” una variable tipo “char”. letter = firstName;  No se puede guardar una varibla tipo “string” en otra variable tipo “char”. firstName = Tomas;  La computadora piensa que Tomas es un identifier. “Rivera” = lastName; Al reves. lastName = ;  No esta asignando nada.

28 QUIZZ # 3 – DETERMINE VALIDEZ
DECLARACIONES INSTRUCCIONES VÁLIDO/INVÁLIDO (Razón) char letra; string nombre; float promedio; int cuentaGota; const float PI = ; const string MENSAJE = “yo tengo un sapo”; const int TOTAL_PERSONAS = 50; letra = “abc”; nombre = carlos; cuentaGota = cuentaGota + 1; cuentaGota = promedio + 50; promedio = promedio + 1.0; nombre = MENSAJE; MENSAJE = “fin”;

29 VÁLIDO/INVÁLIDO (Razón)
QUIZZ # 3 – RESPUESTAS DECLARACIONES INSTRUCCIONES VÁLIDO/INVÁLIDO (Razón) char letra; string nombre; float promedio; int cuentaGota; const float PI = ; const string MENSAJE = “yo tengo un sapo”; const int TOTAL_PERSONAS = 50; letra = “abc”; INVÁLIDO nombre = carlos; cuentaGota = cuentaGota + 1; VÁLIDO cuentaGota = promedio + 50; promedio = promedio + 1.0; nombre = MENSAJE; MENSAJE = “fin”;

30 VOCABULARIO (3) Literal value – Cualquier constante escrita en un progama. Named constant (symbolic constant) – Definición similar a la de constante. Assignment statement – Instrucción que almacena el valor de una expresión dentro de una variable. Expression – Conjunto de “identifiers”, literales y operadores de los cuales se puede obtener un resultado. Evaluate – Calcular un nuevo valor ejecutando un conjunto específico de operaciones con unos valores dados.

31 STRING “String Expressions’ – Aunque no se puede ejecutar aritmética con los “strings”, se puede ejecutar una operación llamada concadenación (“concatenation”) la cual utiliza el símbolo de suma (+). De acuerdo a la siguientes declaraciones: string bookTitle; string phrase1; string phrase2; phrase1 = “Programming and ”; phrase2 = “Problem Solving”; Las siguientes instrucciones: bookTitle = phrase1 + phrase2; bookTitle = phrase2 + phrase3; Almacenan en la variable “bookTitle” lo siguiente: “Programming and Problem Solving” “Problem SolvingProgramming and ”

32 De acuerdo a la siguiente definición:
STRING (EXAMPLE) De acuerdo a la siguiente definición: const string WORD1 = “rogramming”; const string WORD3 = “Solving”; const string WORD5 = “C++”; Podriamos asignar la siguiente expresión a la variable bookTitle bookTitle = ‘P’ + WORD1 + “ and Problem “ + WORD3 + “ with “ + WORD5; Para que contenga el siguiente “string”: “Programming and Problem Solving with C++”

33 EJEMPLOS DE COUT Y DISPLAY DE PSEUDOCÓDIGO
Para poder mostrar resultados en pantalla, utilizaremos en C++ el comando cout en conjunto con el “insertion operator” (<<). Ejemplo: la instrucción: cout << “Hello”; va a mostrar la palabra Hello en el “standard output device”, usualmente el monitor. El “template” de cout es: cout << Expression << Expression . . .; EJEMPLOS DE COUT Y DISPLAY DE PSEUDOCÓDIGO cout << “Hello”; DISPLAY “Hello” cout << “a” << “b”; DISPLAY “a” + “b” cout “total: “ << cantDinero; DISPLAY “total: “ + cantDinero;

34 COUT (CONT.) EJEMPLOS DE COUT 2 cout << ch; ch= 2
Asuma que ch = ‘2’, firstName = “Marie” y lastName = “Curie” EJEMPLOS DE COUT cout << ch; 2 cout << “ch = “ << ch; ch= 2 cout << firstName + “ “ + lastName; MarieCurie cout << firstName << lastName; MarieCurie cout << firstName << ‘ ‘ << lastName; cout << “ERROR MESSAGE”; ERROR MESSAGE cout << “Error=“ << ch; Error=2

35 OTRAS CARACTERISTICAS IMPORTANTES DEL COUT
Si queremos mostrar en pantalla la siguiente frase: Juanito “el cuco” Trucupei El cout quedaría: cout << “Juanito \”el cuco\” Trucupei”; Para terminar una línea, utilizamos el “identifier” endl. Cout << “Hi”; Cout << “there”; Produce lo siguiente: Hithere Cout << “Hi” << endl; Cout << “there” << endl; Produce lo siguiente: Hi there El “identifier” endl es particular de C++ y se le conoce como un manipulador.

36 COMENTARIOS Podemos poner los comentarios en C++ de dos formas:
1. Se puede poner cualquier comentario entre los símbolos. /* */ Ejemplo: /* Este programa calcula el sueldo neto de un empleado */ 2. Comenzar el comentario con dos ‘slashes’. (la mas común) // Este programa calcula el sueldo neto de un empleado La documentación en un programa es bien importante. En las reglas para programar en C++ se discute el formato de los programas que se van a entregar en la clase incluyendo la documentación.

37 CONSTRUCCIÓN DE UN PROGRAMA EN C++
Ya hemos explorado lo que son “identifiers”, declaraciones, variables, constantes, expresiones, “statements”, comentarios, etc. Ahora vamos a ver como integrar esos elementos en un programa. Como vimos anteriormente, un programa en C++ se compone de funciones y una de ellas se tiene que llamar “main”. El “syntax template” de un programa en C++ es: Un “Function Definition” consiste del encabezamiento de la función y del cuerpo (“body). Su “Syntax Template” es: Declaration . FunctionDefinition Heading { Statement . }

38 EJEMPLO DE UN PROGRAMA EN C++ CON UNA SOLA FUNCIÓN
//****************************************************************** // PrintName program // This program prints a name in two different formats #include <iostream> #include <string> using namespace std; const string FIRST = "Herman"; // Person's first name const string LAST = "Smith"; // Person's last name const char MIDDLE = 'G'; // Person's middle initial int main() { string firstLast; // Name in first-last format string lastFirst; // Name in last-first format firstLast = FIRST + " " + LAST; cout << "Name in first-last format is " << firstLast << endl; lastFirst = LAST + ", " + FIRST + ", "; cout << "Name in last-first-initial format is "; cout << lastFirst << MIDDLE << '.' << endl; return 0; } La instrucción #include le indica al compilador que inserte en el programa el contenido de los archivos llamados “iostream” y “string”. El primer archivo contiene información que C++ necesita para mostrar valores (cout). El segundo contiene información para manejo de cualquier “string”. Definición de constantes. Comentarios. Final de la función. Devuelve el valor 0 indicando que termino exitosamente. Se le conoce como el “exit status”.

39 Block, FunctionDefinition, Statement
NullStatement Declaration AssignmentStatement OutputStatement Block { Statement . } Heading Block El cuerpo de una función es un ejemplo de un bloque (“block), el cual esta delimitado por los corchetes ({}). Con eso en mente, podemos redefinir una función con solo 2 palabras. “Heading” y “Block”. El “syntax template” de un statement de acuerdo a lo que hemos discutido hasta aqui, queda como el que se muestra arriba. El “NullStatement” es una linea con solo el (;).

40 Statements Function Definitions Statements BLOCK
“BLOCKS”, “FUNCTION DEFINITIONS” Y “STATEMENTS” EN EL PROGRAMA DE C++ QUE VIMOS ANTERIORMENTE //****************************************************************** // PrintName program // This program prints a name in two different formats #include <iostream> #include <string> using namespace std; const string FIRST = "Herman"; // Person's first name const string LAST = "Smith"; // Person's last name const char MIDDLE = 'G'; // Person's middle initial int main() { string firstLast; // Name in first-last format string lastFirst; // Name in last-first format firstLast = FIRST + " " + LAST; cout << "Name in first-last format is " << firstLast << endl; lastFirst = LAST + ", " + FIRST + ", "; cout << "Name in last-first-initial format is "; cout << lastFirst << MIDDLE << '.' << endl; return 0; } Statements Function Definitions Statements BLOCK

41 COMENTARIO ADICIONAL SOBRE LOS BLOQUES (“BLOCKS”)
Como indica el “syntax template”, dentro de un bloque yo puedo poner instrucciones de asignación. Esto significa que se pueden poner en cualquier orden. Sin embargo se recomienda que se pongan las asignaciones primero y las demas instrucciones despues. Ejemplo: DESORGANIZADO ORGANIZADO { char ch; string str; ch = ‘A’; cout << ch; Str = “Hello”; Cout << str; } { char ch; ch = ‘A’; cout << ch; string str; Str = “Hello”; Cout << str; }

42 EL PRE-PROCESADOR DE C++
Si compilamos el siguiente programa: //******************************************* // This program prints Happy Birthday //******************************************** int main() { cout << “Feliz cumpleaños” << endl; return 0; } El compilador reconoce los identifiers “int” y “main”, pero no reconoce “cout” y “endl”. Esto es debido a que no se ha incluido la librería “iostream”. Si en el programa se va a trabajar con “string”, también faltaria la librería “string”. Estos problemas se arreglan incluyendo la instrucción: #include <iostream>

43 EL PRE-PROCESADOR DE C++ (2)
//******************************************* // This program prints Happy Birthday //******************************************** #include <iostream> int main() { cout << “Feliz cumpleaños” << endl; return 0; } La línea “#include” no es manejado por el compilador, sino por el pre-procesador. Las líneas que comienzan con el “#” no se considera una instrucción del lenguaje, sino una directiva del pre-procesador. El pre-procesador es un programa que actua como un filtro durante la fase de compilación

44 EL PRE-PROCESADOR DE C++ (3)
El pre-procesador expande una directiva al insertar físicamente el contenido del archivo de la directiva dentro del source program. (diagrama) Los archivos que aparecen en el “#include” se conocen como “header file” y contienen constantes, variables, “datatypes” y declaraciones de funciones necesarios para el programa. Los “brackets” (< >) son requeridos e indica que busque el archivo en el “standard include directory” que es donde estan todos los “header files”. Source Program Expanded Source Program C++ compiler Preprocessor

45 NAMESPACES Aún incluyendo la directiva, el programa no corre. El compilador todavía no reconoce los “identifers” cout y endl. Esto se debe a que el “header file iostream” y todos los “headers files”declaran sus “identifiers” para que estén en un “namespace” llamado “std”; Ejemplo: namespace std { Declaraciones de variables, “data types”, etc. }

46 NAMESPACES (2) Los programadores tiene dos opciones para aceder a los “identifiers” que están dentro de un “namespace”, las dos formas son: I. Usar un “qualified name” para el “identifier”> Consiste de nombre :: operador. De esta forma el programa quedaría asi: //************************************* // This program prints Happy Birthday #include <iostream> int main() { std::cout << “Feliz cumpleaños” << std::endl; return 0; }

47 NAMESPACES (3) II. La otra forma es usar un “statement” con una directiva llamada “using”. De esta forma no hay que cualificar cada directiva, sino definirla solo al principio. using namespace std: //************************************* // This program prints Happy Birthday #include <iostream> using namespace std; int main() { cout << “Feliz cumpleaños” << endl; return 0; }

48 CONCEPTOS ADICIONALES DE OUTPUT
Manejo de líneas STATEMENTS OUTPUT PRODUCED cout << “Hi there, “; cout << “Lois Lane. “ << endl; cout << “Have you seen “; cout << “Clark Kent?” << endl; Hi there, Lois Lane. Have you seen Clark Kent? cout << “Hi there, “ << endl; cout << “Have you seen “ << endl; Hi there, Lois Lane. Have you seen Clark Kent? cout << “Lois Lane. “; Lois Lane. Have you seen

49 CONCEPTOS ADICIONALES DE OUTPUT (2) 3 FORMAS DE DECIR LO MISMO
STATEMENTS OUTPUT PRODUCED cout << “Hi there, “ << endl; cout << endl; cout << “Lois Lane. “ << endl; Hi there, Lois Lane. cout << “Hi there, “ << endl << endl; cout << “Hi there, “ << endl << endl << “Lois Lane. “ << endl;

50 PROCESO DE COMPILAR Enter Program Compile YES Compile-time Errors? Run
Logic-errors ? Success! Encontrar la causa de los errores, arreglarlos en el programa y volver a compilar. YES Volver al algoritmo y arreglar lo que esta mal y modificarlo en el editor.

51 LABORATORIO Utilizando de referencia el documento hecho por el profesor Antonio Huertas, vamos a escribir y compilar el siguiente programa que ya esta escrito en Pseudocódigo.


Descargar ppt "Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0"

Presentaciones similares


Anuncios Google