Filminas Clase 2
Filminas Clase 2
Filminas Clase 2
Ventre, Luis O.
Un buen programa requiere de planeamiento y diseo antes de su ejecucin Programas MODULARES, estructura de segmentos interrelacionados para formar una unidad completa. Cada modulo realiza una tarea especifica Modulo = Clase o funcin. Requerimiento base: CORRECTA IDENTIFICACION.
2
IDENTIFICADORES
Un identificador se puede formar con: con letras minsculas (de la a a la z) maysculas (de la A a la Z) con dgitos del 0 al 9 con el carcter subrayado (_)
Un identificador NO se puede formar con: con espacios en BLANCO !!! con otros caracteres como * , ; . : - +
3
Adems el primer carcter DEBE ser una letra o el carcter subrayado _ Solo pueden seguir a la letra inicial los caracteres antes mencionados como posibles de formar un identificador El nombre de la funcin o identificador nunca puede ser una de las PALABRAS CLAVES DEL LENGUAJE El numero mximo de caracteres de un identificador lo impone el compilador (1024 mnimo segn standard) Por ultimo el nombre de la funcin debe ser MNEMONICO. Recordar que el lenguaje C es sensible al uso de maysculas y minsculas. Por lo tanto para el compilador ser lo mismo: TOTAL, que Total, que TotaL??.....
Palabras claves else - do - while - for - switch - auto short - long - extern - static - default continue - break - register - sizeof - typedef
char - int - float - double - if Todas en detalle tabla 2.1 pagina 36 Bronson.
5
La funcin MAIN() Para facilitar la colocacin y ejecucin ordenada de los mdulos, cada programa C++ debe tener una y solo una funcin llamada main(). Esta se conoce como una funcin controladora, debido a que indica secuencia.
Tipo de valor devuelto por la funcin Nombre de la funcin Lista de argumentos (vaca)
Cuerpo De la funcin
La primer lnea de la funcin se conoce como lnea de encabezado de la funcin Cada instruccin dentro del cuerpo de la funcin debe terminar en un ;
#include <iostream> using namespace std; int main() { cout<<"Hola MUNDO!"; return 0; }
El objeto COUT: Deriva de Console out, es un objeto de salida que deriva datos introducidos en l al dispositivo estndar de salida. Smbolo de insercin << enviar a.
7
La primer lnea del programa, es un comando de pre-procesador que utiliza palabra reservada include, este indica una accin a ejecutar antes de que el compilador ejecute. En este caso incluir el contenido del archivo invocado iostream. Estos comandos de preprocesado no finalizan con ; La instruccin using namespace especifica que los miembros de un namespace van a utilizarse frecuentemente en un programa. Esto permite al programador tener acceso a todos los miembros del namespace y escribir instrucciones mas concisas como:
cout<<"hola";
en vez de:
std::cout<<Hola;
Secuencia de escape: \n Envan informacin para comenzar una lnea nueva. Se puede utilizar secuencias de escape en cualquier parte del mensaje enviado al objeto cout. Cual es la salida del siguiente programa?
Los programas en C++ comienzan su ejecucin en la funcin main, y como todo programa solo puede tener un punto de inicio, solo puede existir una UNICA funcin main. Es importante destacar que puede colocarse mas de una instruccin por lnea; C++ ignora todo espacio en blanco (excepto cadenas, identificadores, comillas y palabras clave).
int main ( ){ cout<<Hola Mundo; return 0; } int main ( ) { cout<<Hola Mundo; return 0; }
Comentarios: Son observaciones explicativas que se hacen dentro de un programa. C++ acepta dos tipos de comentario: de lnea y de bloque El compilador ignora todos los comentarios.
//este programa despliega un mensaje #include <iostream> using namespace std; int main() {
cout<<"Hola MUNDO!"; //esto produce el despliegue
//este comentario produce Un comentario de lnea un error de c++ puede escribirse al inicio return 0; de la misma o al final de } la instruccin de esa lnea.
11
Cuando el comentario contiene mas de 2 lneas, es conveniente utilizar comentarios de bloque. Estos comienzan con /* y finalizan en */. La utilizacin escasa de comentarios es seal de mala programacin, y se hace presente cuando se desea mantener o ser ledo por otro programador. La utilizacin en extremo de comentarios es seal de mala programacin, debido a que la lgica del programa no corresponde al un pensamiento sencillo.
EJEMPLO
/* este es un comentario
En bloque que ocupa Un total de 4 lineas de texto Y finaliza aqui */
12
El objetivo de todo programa es procesar datos, es fundamental para esto la clasificacin de estos datos en tipos especficos. Los tipos de datos permitidos y las operaciones apropiadas definidas para cada tipo, se conocen como tipo de dato. Por lo tanto un tipo de datos es un rango de valores y un conjunto de operaciones que pueden aplicarse a esos valores. Tipo de dato de clase y tipos de datos integrados (o primitivos). Los tipos de datos primitivos son:
13
Tipos de datos enteros: C++ proporciona 9 tipos de datos enteros, la diferencia esencial entre ellos es la cantidad de almacenamiento usado por cada tipo. Esto afecta el rango de valores que pueden tomar * bool * char * short int * int Tipos de datos * long int * unsigned char * unsigned short int enteros * unsigned int * unsigned long int Los 3 tipos mas usados son int, char y bool. El tipo de dato INT Conjunto de los nmeros enteros positivos y negativos En la prctica estn limitados por el almacenamiento -> max 4 bytes Operaciones bsicas: aritmticas, relacionales
14
Enteros validos: 0 5 -10 +25 1000 . Enteros invlidos: $255.62 3. 1482.32 +6.0 El tipo de dato CHAR Almacena caracteres individuales y mediante el cdigo ASCII se almacena internamente como enteros. Incluyen las letras del alfabeto maysculas y minsculas Incluye los diez dgitos 0 al 9. Incluye smbolos especiales como + $ . , ! Un valor de carcter es cualquiera antes mencionado encerrado entre comillas simples.
15
El carcter de escape: \ Indica al compilador que escape de la forma normal de interpretar algunos caracteres. La combinacin de este carcter de escape junto a estos caracteres se denomina secuencia de escape
16
El tipo de dato BOOL: Se utiliza para representar datos booleanos (lgicos), se restringe la cantidad de valores posibles a 2: verdadero o falso. Este tipo de datos es fundamental cuando un programa debe evaluar una condicin especifica de un estado a verdadero o falso. Determinacin del tamao de almacenamiento: Operador denominado sizeof() Proporciona el numero de bytes utilizado por cualquier nombre de tipo de datos incluidos dentro del parntesis.
17
Tipos de datos con signo y sin signo El lenguaje proporciona un calificador de tipo de dato que permite indicar si los datos a utilizar tendrn signo o no. Un tipo de dato con signo puede almacenar tanto el 0 como valores positivos y adems negativos. Un tipo de dato sin signo solo podr almacenar 0 y valores positivos. De esta forma puede customizarse el uso del rango de valores de un tipo de dato. Tipo de Tamao del Rango de
Datos char bool short int unsigned short int int unsigned int long int unsigned long int Almacenamiento 1 byte 1 byte 2 bytes 2 bytes 4 bytes 4 bytes 4 bytes 4 bytes Valores 256 caracteres Verdadero o Falso "-32768 a 32767" 0 a 65535 "-2147483648 a 2147483647" 0 a 4294967295 "-2147483648 a 2147483647" 0 a 4294967295
18
Tipos de datos de punto flotante: Son llamados nmeros reales, pueden ser el 0, cualquier numero positivo o negativo que contenga un punto decimal. Igual que en los enteros no se permiten signos especiales como el $, etc. C++ acepta tres tipos de datos de punto flotante, cuya diferencia otra vez es el espacio de almacenamiento utilizado para cada uno. Float Double Long Double. La mayora de los compiladores utilizan el doble de espacio para almacenar un double vs un float. Por esto usualmente se conoce a un valor FLOAT como de precisin simple y un DOUBLE como un dato de precisin doble. Almacenamiento de un float 4 bytes Almacenamiento de un double 8 bytes.
19
Notacin Exponencial: Los nmeros en punto flotante pueden escribirse en notacin exponencial. Esta notacin es semejante a la notacin cientfica y se utiliza para expresar en forma compacta valores grandes y pequeos.
20
Anteriormente vimos los valores posibles para los tipos de datos integrados de c++. Ahora veremos las operaciones aritmticas posibles para estos. Los enteros y los reales pueden: Sumarse Restarse Multiplicarse Dividirse Aunque por lo general es mejor no mezclar la utilizacin de enteros con reales. Los operadores aritmticos son: Adicin + Sustraccin - Multiplicacin * Divisin / Divisin de modulo % Estos operadores son conocidos como operadores binarios, debido a la cantidad de operandos necesarios para la operacin.
21
Adems de los operadores binarios, existen los operadores unitarios, los cuales solo requieren de un operando. Expresin aritmtica binaria simple: valorliteral operador valorliteral Se puede utilizar cout, para desplegar en pantalla el resultado de cualquier expresin aritmtica. Adems a cout pueden enviarse dos o mas piezas de datos, por ejemplo una cadena y una expresin aritmtica, siempre separando cada pieza por el propio smbolo de insercin <<. Ej.:
cout<<La suma de 12.2 y 15.754 es igual a: << (12.2 + 15.754);
Produce
La suma de 12.2 y 15.754 es igual a: 27.954
22
cout, puede extenderse a mas de una lnea, pero solo debe llevar un ; al final de la instruccin y si hay una cadena de carcter esta no puede extenderse de una lnea.
Ej.
23
Expresin: combinacin de operadores y operandos que pueden ser evaluados para producir un valor. Existen 3 tipos de expresiones: Enteras De punto flotante En modo mixto Divisin de enteros: parte fraccionaria truncada. 15/2 = ? Si fuese necesario la parte fraccionaria c++ proporciona el operador modulo, u operador de residuo %. Este captura el residuo cuando un numero entero es dividido entre otro numero entero. Ej. 9 % 4 es 1 (el residuo cuando 9 se divide entre 4 es 1) 17 % 3 es 2 (el residuo cuando 17 se divide entre 3 es 2) Que resultado generara la expresin 3 % 5 ?...
24
Operador Unitario: Este tipo de operador opera sobre un solo operando; uno de estos operadores es el de negacin, el mismo utiliza el mismo signo que la resta pero precediendo al operando invierte su signo. Precedencia del operador y asociatividad: Existen ciertas reglas para escribir expresiones que contengan mas de un operador aritmtico. 1-Nunca deben colocarse 2 operadores binarios uno seguido del otro 2-Los parntesis priorizan el clculo de la expresin. Esto permite alterar el orden. 3-Parntesis dentro de parntesis se evalan de adentro para afuera. 4-Nunca usar parntesis para indicar multiplicacin se usa *.
25
Niveles de precedencia y asociatividad: Existen 3 niveles de precedencia, los cuales determinan el orden de resolucin de la expresin aritmtica. P1: Primero todas las negaciones. P2: Multiplicacin, divisin y modulo. Cuando hay mas de un operador de estos se resuelve de izquierda a derecha. Cual es el resultado de: 40/8%3*5 = ? P3: Adicin y sustraccin se calculan al ultimo. Al igual que con los p2 si hay mas de una adicin o sustraccin se resuelven de izquierda a derecha. Que resultado dar 6.0*6/4 = ? .9! Y 40 / 8 % 3 * 5 = ? .10! Y 6 + 10 / 5 2? .6!
26
Ctedra de Informtica Dpto. Computacin Universidad Nacional de Crdoba. Variables e instrucciones de declaracin
Recordemos que antiguamente se hacia referencia a la ubicacin donde se almacenaban los datos. Esto era engorroso. Ej. para sumar 2 nmeros:
27
Ctedra de Informtica Dpto. Computacin Universidad Nacional de Crdoba. Variables e instrucciones de declaracin
Para simplificar esto en c++ al lugar de direccin de memoria se le dice variable. Por lo tanto una variable es un nombre simblico utilizado por el programador para designar un espacio de almacenamiento de la memoria. Se utiliza el termino variable porque el contenido de esa posicin de memoria puede cambiar o variar. Para dar un nombre a la variable se debe cumplir con los identificadores antes vistos. Ahora el ejemplo quedara:
28
Ctedra de Informtica Dpto. Computacin Universidad Nacional de Crdoba. Variables e instrucciones de declaracin
Cada una de estas tres instrucciones se denomina instruccin de asignacin. Porque le indica a la computadora que asigne o almacene un valor en la variable. Toda instruccin de asignacin tiene un signo =, y a la izquierda un nombre de variable, a la cual se le asigna el valor ubicado a la derecha del signo =. Ya que la utilizacin de variables libera al programador de saber donde y como esta almacenado el valor del dato, es necesario indicar el tipo de datos que se van a almacenar en la variable para que el compilador asigne el espacio correspondiente.
29
Ctedra de Informtica Dpto. Computacin Universidad Nacional de Crdoba. Variables e instrucciones de declaracin
Instrucciones de declaracin: Darle un nombre a una variable y especificar el tipo de dato que #include<iostream> pueden almacenarse en ella se logra con una instruccin de using namespace std; declaracin; que tiene la forma:
int main() { Tipo-de-datos nombreDeVariable; int primero; int suma; float primernumero; double segundonumero; double segundo; char a;
Instrucc. declarac.
Las instrucciones de declaracin pueden colocarse en cualquier parte del otras instrucciones; programa, pero es una buena practica de programacin, colocarlas al inicio y separadas por una lnea en blanco.
return 0; }
Ctedra de Informtica Dpto. Computacin Universidad Nacional de Crdoba. Variables e instrucciones de declaracin
31
Ctedra de Informtica Dpto. Computacin Universidad Nacional de Crdoba. Variables e instrucciones de declaracin
Declaraciones Mltiples: Las variables del mismo tipo pueden declararse en una sola instruccin, utilizando solo una vez el tipo de dato y luego la lista de nombres de variables separadas por una ,. Tipo-de-Datos listaDeVariables double calif1, calif2, total, promedio; En las instrucciones de declaracin tambin puede asignrsele un valor inicial a la variable, esto se denomina inicializar la variable. double calif1 = 87.0; double calif2 = 93.5; double total;
32
Ctedra de Informtica Dpto. Computacin Universidad Nacional de Crdoba. Variables e instrucciones de declaracin
Asignacin de memoria: Las instrucciones de declaracin cumplen funciones en el software para facilitar la programacin y la prevencin de errores de tipeo. Pero adems en el hardware fuerzan al compilador a reservar el espacio de memoria correspondiente al tipo de dato solicitado. Las instrucciones de declaracin utilizadas con este propsito son llamadas instrucciones de definicin. Conocer el tamao de memoria a reservar le permite al compilador almacenar o recuperar el numero correcto de bytes
33
Ctedra de Informtica Dpto. Computacin Universidad Nacional de Crdoba. Variables e instrucciones de declaracin
Direccin de una variable: Cada variable tiene 3 elementos importantes: su tipo de datos, el valor almacenado en la variable y la direccin de la variable.
Normalmente el programador esta interesado en el contenido de la variable y no en el lugar donde se encuentra fsicamente en la memoria. Para determinar la direccin de una variable en memoria, se usa el operacin de direccin & (la direccin de).
34
Ctedra de Informtica Dpto. Computacin Universidad Nacional de Crdoba. Variables e instrucciones de declaracin
Ctedra de Informtica Dpto. Computacin Universidad Nacional de Crdoba. Errores comunes de programacin
Parte de aprender un determinado lenguaje, es cometer los errores elementales que se encuentran normalmente al comenzar a programar. Pueden ser frustrantes. Algunos de los errores mas comunes cuando se empieza a programar en C++ son: 1-Omitir los parntesis despus del encabezado de funcin main 2-Omitir o escribir de manera incorrecta la llave de apertura { que indica el inicio de un cuerpo de funcin. 3-Omitir o escribir de manera incorrecta la llave de cierre } que indica el final de un cuerpo de funcin.
36
Ctedra de Informtica Dpto. Computacin Universidad Nacional de Crdoba. Errores comunes de programacin
4- Escribir mal el nombre de un objeto o funcin, por ej. escribir cot en vez de cout. 5-Olvidar enviar una cadena enviada a cout con un smbolo de comillas. 6-Olvidar separar flujos de datos individuales pasados a cout con un smbolo de insercin (enviar a) <<. 7-Omitir el punto y coma al final de cada instruccin de c++ 8-Agregar un punto y coma al final del comando de pre-procesador #include. 9-Escribir incorrectamente la O en vez de cero. Y lo mismo para la letra I y el 1.
37
Ctedra de Informtica Dpto. Computacin Universidad Nacional de Crdoba. Errores comunes de programacin
10-Olvidar declarar todas las variables utilizadas en el programa. 11-Almacenar un tipo de datos inapropiado en una variable declarada. Conversin al tipo de datos destino. 12-Usar una variable en una expresin antes de asignarle ningn valor a esa variable!. OJO antes de inicializar una variable que tiene?. 13-Dividir valores enteros en forma incorrecta en expresiones grandes: Ej.: 3.425 + 2/3 +7.9 dar el mismo resultado que 3.425 + 7.9 14-Mezclar tipos de datos en la misma expresin sin entender el efecto que produce.
38