Lenguaje de Programacin Unidad 1: Lenguaje de Programacin C++ Semana 2: Estructura de un Programa en C++ Sesin 1 Algoritmos Mtodo que describe la solucin de un problema, mediante una serie de pasos precisos definidos y finitos. Preciso.- Indicar el orden de realizacin en cada paso. Definido.-Repetir los pasos n veces y se obtiene el mismo resultado Finito.-Tiene un nmero determinado de pasos. Algoritmos La solucin de un algoritmo debe describir 3 partes: Entrada: Datos que se necesitan para poder ejecutarse. Proceso: Acciones y clculos a realizar. Salida: Resultado esperado. Entrada Proceso Salida Caractersticas que deben cumplir los algoritmos Un algoritmo debe resolver el problema para el que fue formulado. Los algoritmos son independientes del lenguaje de programacin. Los algoritmos deben ser precisos. Los algoritmos deben ser finitos Los algoritmos deben poder repetirse. Caractersticas aconsejables para los algoritmos Validez Eficiencia ptimo Fases en la creacin de algoritmos Anlisis: Se determina el problema a resolver. Que datos forman la entrada del algoritmo y cules debern obtenerse como salida. Diseo: Elaboracin del algoritmo Prueba: Comprobacin del resultado. Herramientas de un algoritmo Diagrama de flujo Diagrama N-S Pseudocodigo Diagramas de flujo Representacin grfica que utiliza smbolos normalizados. Expresa las sucesivas instrucciones que se deben realizar para resolver el problema. Las instrucciones no dependen de la sintaxis de ningn lenguaje de programacin, sino debe servir fcilmente para su transformacin en un lenguaje de programacin Diagrama de flujo Inicio o Fin Entrada o salida Proceso SubAlgoritmo Decisin Conectores Teclado Impresora Pantalla Direccin Inicio n: entero r: cadena Leer n N Mod 2=0 Par Impar Escribir r Fin Diagrama N-S (Nassi Scheneiderman) Similar a un diagrama de flujo pero sin flechas y con cajas continuas. (Chapin) n : entero r : cadena Leer : n N Mod 2=0 F V r impar r par Escribir r Inicio //Variables n: Entero r: cadena //Entrada Leer n //Proceso Si n Mod 2=0 entonces r Par Si No r Impar //Salida Escribir r Pseudocodigo Permite expresar las instrucciones en un lenguaje comn, para facilitar la escritura y lectura de la solucin de un programa. Instrucciones Acciones que debe realizar un algoritmo para resolver un problema. Las ms comunes son: Instruccin de inicio/fin. Instruccin de asignacin. Instruccin de lectura. Instruccin de escritura. Instruccin de bifurcacin. Instruccin de inicio/fin Representa el inicio y fin del algoritmo. Diagrama de flujo Pseudocodigo Inicio Fin Inicio Fin Instruccin de asignacin Representa la asignacin de un valor a una variable, se puede representar usando una flecha o el smbolo de igualdad (ms usado) Diagrama de Flujo Pseudocodigo N 10 N =10 N 10 N = 10 Instruccin de lectura Representa el ingreso de datos mediante un dispositivo de entrada. Diagrama de flujo Pseudocodigo Leer N Leer N Leer N Leer N Instrucciones de escritura Representa la salida de la informacin mediante un dispositivo de salida. Diagrama de Flujo Pseudocodigo Escribir r Escribir r Escribir r Escribir r Escribir r Escribir r Instruccin de bifurcacin N Mod 2=0 Par Impar Cambia el flujo del programa segn el resultado de una expresin. Diagrama de Flujo Pseudocodigo Si <Expresin lgica> Entonces <Instruccin> SiNo <Instruccin> Fin Si Comentarios Describen, explican y sirven como ayuda para recordar y entender las operaciones que se van a ejecutar. No son instrucciones Pej.Pseudocodigo //Variables N : Entero C++ //Variables Int N; Palabras reservadas Palabras usadas por el lenguaje de programacin. C++ short, int, float, double, if, for, swtch Identificadores Nombres que se asignan a la variables, constantes, funciones, objetos entre otros. En general los identificadores deben cumplir las siguientes reglas: Deben comenzar con una letra evite o tilde No debe coincidir con palabras reservadas Error int if Variables Representa un espacio de memoria RAM que guarda un valor que servir para algn proceso en particular, dicho valor puede ser modificado en cualquier momento. Las variables tienen un identificador (nombre) y asignado el tipo de dato que se est utilizando (entero, texto, etc) Pej. Pseudocodigo N: Entero C ++ //Variables Int N; Variables Para asignarle un valor: Algoritmo Pseudocodigo //Asignar un valor N 10 //Cambiar su valor N 50 C++ //Asignar un valor N = 10; //Cambiar su valor N = 50; Constantes Representa un espacio de memoria RAM que guarda un valor que servir para algn proceso en particular. Dicho valor permanece fijo en la ejecucin del programa. Las constantes tienen un identificador (nombre) Pseudocodigo //Constantes PI 3.14 C++ Constante PI=3.14; Tipos de datos simples Al declarar una variable se debe indicar el tipo de dato que se permite almacenar en dicha variable. Todos los lenguajes usan estos. Entero Real Carcter Lgico Tipos de datos complejos Aquellos que estn definidos por datos simples y definen una estructura de datos. Pej. Tipo cadena que est compuesta por un conjunto de caracteres Pseudocodigo //Crear variable R:cadena //Asignar un valor R Alumno@Hotmail.com Operadores y expresiones Permiten realizar los clculos entre valores fijos y variables. Se clasifican en: Aritmticos Relacionales Lgicos De cadena Lenguaje de programacin C++ c++ fue desarrollado a partir del lenguaje de programacin c y, con pocas excepciones, incluye a c. Esta parte de c incluida en c++ es conocida como c-, y puede compilarse como C++ sin problemas. C++ es, por lo tanto, un lenguaje hbrido, que, por una parte, ha adoptado todas las caractersticas de la OOP que no perjudiquen su efectividad; por ejemplo, funciones virtuales y la ligadura dinmica (dynamic binding), y por otra parte, mejora sustancialmente las capacidades de C. Esto dota a C++ de una potencia, eficacia y flexibilidad que lo convierten en un estndar dentro de los lenguajes de programacin orientados a objetos. Programa en c++ #include <iostream> #include<conio.h> using namespace std; int main() { cout<<"Hola, mundo"<<endl; _getch(); } Tipos de datos Tipos enteros: char, short, int, long y enum Tipos reales: f1oat, double y long double Otros: void Tipos de datos Cada tipo entero puede ser calificado por las palabras clave signed o unsigned, 1o que da lugar a los siguientes tipos extras: signed char, unsigned char signed short, unsigned short signed int, unsigned. int signed long, unsigned I-ong Un entero calificado signed es un entero con signo; esto es, un valor entero positivo o negativo. Un entero calificado unsigned es un valor entero sin signo, el cual es manipulado como un valor entero positivo. Si los calificadores signed y unsigned se utilizan sin un tipo especfico, se asume el tipo int. char El tipo char es utilizado para almacenar un valor entero en el rango -128 a I27. Los valores 0 a 127 son equivalentes a un carcter del cdigo ASCII. char car; char a = 'z'; char a = 122; /* Ia z es el ASCII I22 */ unsigned char c = ' '; /* eL espacio en blanco es e1 ASCII 32 */ short (entero formato corto - 2 bytes) El tipo short, proporciona un entero en el rango de valores: -32768 a32767 (-2" a2"-I) De forma similar el tipo unsigned short puede almacenar valores en el rango 0 a 65535 (0 a2t6-I). Short int a=-500; Signed short b=1990; int(entero-2o4bytes): Es para C un nmero sin punto decimal int a = 2000; signed int b= -30; unsigned d; long (entero formato largo - 4 u I bytes) El tipo long, abreviacin de signed long int, Al igual que los tipos anteriores, son nmeros sin punto decimal. tamao(int) < tamao(long) Longa= -1L; /* L indica que 1a constante -1 es long */ signed longb=I25; float Los datos reales de precisin simple son los ms recurridos en un lenguaje de programacin. Un valor real de precisin simple es un nmero que puede tener un punto decimal y que puede estar comprendido en el rango de: -3.4028238+38 a -I .17 5 49 4E-38 para nmeros negativos I.1754948-38 a 3.4028238+38 para nmeros positivos float a = 3.14159 double Un dato real de precisin doble es un valor que puede tener un punto decimal y puede estar comprendido en el rango: -1.7 97 69E+308 a -2.22507E-308 para nmeros negativos 2.22507E-308 a 1.797698+308 para nmeros positivos double a = 3.1415926; long double (reales de precisin doble formato largo ). Los valores para este tipo estn comprendidos en el rango de: -1.1897 3IE+4932 a -3.36210384932 para nmeros negativos 3.3621038-4932 a 1.1897318+4932 para nmeros positivos long double x; Void El tipo void especifica un conjunto vaco de valores. En realidad void no es un tipo, aunque por la forma de utilizarlo si lo comparamos con la forma de utilizar los otros tipos fundamentales, se considera como tal. Por esta razn, no se puede declarar una variable de tipo void. void a; /x error: no se puede declarar una variable de tipo void */ Void Para indicar que una funcin no acepta argumentos. En el siguiente ejemplo, void indica que la funcinfx no tiene argumentos. double fx(void); Para declarar funciones que no retornan un valor. En el siguiente ejemplo, void indica que la funcin fy no retorna un valor. void fy(int, int); Para declarar un puntero genrico, como veremos ms adelante; esto es, un puntero a un objeto de tipo an desconocido. void *p; Tipos derivados Los tipos derivados son construidos a partir de los tipos fundamentales. Algunos de ellos son: punteros, estructuras, uniones, arrays y funciones. Operadores Los operadores son smbolos que indican como son manipulados los datos. Se pueden clasificar en los siguientes grupos: aritmticos, lgicos, relacionales, unitarios, lgicos para manejo de bits, designacin, operador condicional y otros. Operadores aritmticos Los operadores aritmticos los utilizamos para realizar operaciones matemticas y son los siguientes: Operadores lgicos El resultado de una operacin lgica (AND, OR y NOT) es un valor verdadero o falso (1 o 0). Por definicin, un valor distinto de cero es siempre verdadero y un valor cero es siempre falso. Los operadores lgicos de C son los siguientes: Operadores de relacin El resultado de una operacin de relacin es un valor verdadero o falso (1 o 0). Los operadores de relacin son los siguientes: Expresiones de Boole Una expresin de Boole da como resultado 1 (verdadero - true) o 0 (falso - false). Desde un anlisis riguroso, los operadores booleanos son los operadores lgicos && (AND), ll (OR) y ! (NOT). Ahora bien, por ejemplo, piense que las comparaciones producen un resultado de tipo boolean. Quiere esto decir que el resultado de una comparacin puede utilizarse como operando en una expresin de Boole. Segn esto, podemos enunciar que los operadores que intervienen en una expresin de Boole pueden ser de relacin (<, ), (=, )=, --, y !=) y lgicos (&&, ll, y !). Operadores unitarios Los operadores unitarios se aplican a un solo operando y son los siguientes: *, &, !, - y -. El operador ! ya lo hemos visto y los operadores I y & los veremos un poco ms adelante. Operadores lgcos para manejo de bits Estos operadores permiten realizar operaciones AND, OR, XOR y desplazamientos, bit por bit de los operandos. Operadores de asignacin El resultado de una operacin de asignacin es el valor almacenado en el operando izquierdo, lgicamente despus de que la asignacin se ha realizado. El valor que se asigna es convertido al tipo del operando de la izquierda. Incluimos aqu los operadores de incremento y decremento porque implcitamente estos operadores realizan una asignacin sobre su operando. Definiciones y declaraciones Declaracin de una constante Declarar una constante simblica significa decirle al compilador C el nombre de la constante y su valor. C++ y algunos compiladores C admiten una forma adicional de declarar una constante; anteponer el calificador const al nombre de la constante. Utilizando el calificador const se le dice al compilador C el tipo de la constante, su nombre y su valor. Definiciones y declaraciones Por ejemplo, const tint K= 12; El ejemplo anterior declara la constante entera K con el valor 12. Definiciones y declaraciones Declaracin de una variable El valor de una variable, a diferencia de una constante, puede cambiar a lo largo de la ejecucin de un programa. Cada variable de un programa, debe declararse antes de ser utilizada. La declaracin de una variable consiste en enunciar el nombre de la misma y asociarle un tipo. El tipo determina los valores que puede tomar la variable as como las operaciones que con ella pueden realizarse. Definiciones y declaraciones tipo ldentificadorl, identificadorl . . . donde tipo especifica el tipo fundamental o derivado de la variable (char, int, float, double, ...) e identificador indica el nombre de la variable. Por ejemplo, int contador; Definiciones y declaraciones Definicin es la Inicializacin de una variable. Si queremos que algunas o todas las variables que intervienen en un programa tengan un valor inicial cuando ste comience a ejecutarse, tendremos que inicializar dichas variables. Una variable puede ser inicializada, cuando se declara o, si est declarada dentro de un bloque, a continuacin de ser declarada. A diferencia de las constantes, este valor puede cambiarse a 1o largo de la ejecucin del programa. Por ejemplo, int contador = 1;