practica 1

6
INFORMÁTICA GRADO EN INGENIERÍA TELEMÁTICA PRÁCTICA 1 Curso 2015-2016 UNIVERSITAT DE VALÈNCIA 1 Práctica 1: Empezando a programar en C++ Objetivos - Conocer el entorno de desarrollo de software DevC++. - Describir la estructura general de sencillos programas en C++. - Conocer las funciones de Entrada/Salida de C++. - Aprender a utilizar apropiadamente los tipos de datos. - Comprender el uso de la estructura secuencial. - Comprender el uso de las estructuras alternativas (simple y doble) y su implementación en C++. Conceptos Básicos 1. Tipos de datos simples en C++ Nombre del Tipo Memoria utilizada Rango Precisión bool 1 byte {true, false} No aplica char 1 byte -128…127 No aplica unsigned char 1 byte 0…255 No aplica short 2 bytes -32768…32767 No aplica int 4 bytes -2147483648…2147483647 No aplica long 4 bytes -2147483648…2147483647 No aplica unsigned short 2 bytes 0…65535 No aplica unsigned int 4 bytes 0…4294967295 No aplica unsigned long 4 bytes 0…4294967295 No aplica float 4 bytes 10 -38 …10 38 aprox. 7 dígitos double 8 bytes 10 -308 …10 308 aprox. 15 dígitos long double 12 bytes 10 -4932 …10 4932 aprox. 19 dígitos Ten en cuenta que los valores de rango de la tabla son orientativos. Pueden variar en función del compilador y de la arquitectura del computador. Enteros: short, int, long, unsigned short, unsigned int, unsigned long Uso: para almacenar datos que corresponden a números sin decimales. Ejemplos: número de personas, veces que se repite alguna operación. Atención: la división entera da como resultado un valor entero. De tipo carácter: char, unsigned char Uso: para almacenar datos que corresponden a caracteres alfabéticos. Ejemplos: letras y símbolos ortográficos. Atención: aunque se usan para almacenar caracteres, en realidad lo que se guarda es un número (el código ASCII) asociado al carácter, por lo que a todos los efectos es un tipo entero positivo.

Upload: uv

Post on 22-Jan-2016

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Practica 1

INFORMÁTICA

GRADO EN INGENIERÍA

TELEMÁTICA

PRÁCTICA 1

Curso 2015-2016

UNIVERSITAT DE VALÈNCIA

1

Práctica 1: Empezando a programar en C++

Objetivos

- Conocer el entorno de desarrollo de software DevC++.

- Describir la estructura general de sencillos programas en C++.

- Conocer las funciones de Entrada/Salida de C++.

- Aprender a utilizar apropiadamente los tipos de datos.

- Comprender el uso de la estructura secuencial.

- Comprender el uso de las estructuras alternativas (simple y doble) y su implementación en C++.

Conceptos Básicos

1. Tipos de datos simples en C++

Nombre del Tipo Memoria utilizada Rango Precisión bool 1 byte {true, false} No aplica

char 1 byte -128…127 No aplica

unsigned char 1 byte 0…255 No aplica

short 2 bytes -32768…32767 No aplica

int 4 bytes -2147483648…2147483647 No aplica

long 4 bytes -2147483648…2147483647 No aplica

unsigned short 2 bytes 0…65535 No aplica

unsigned int 4 bytes 0…4294967295 No aplica

unsigned long 4 bytes 0…4294967295 No aplica

float 4 bytes 10-38…1038 aprox. 7 dígitos

double 8 bytes 10-308…10308 aprox. 15 dígitos

long double 12 bytes 10-4932…104932 aprox. 19 dígitos

Ten en cuenta que los valores de rango de la tabla son orientativos. Pueden variar en función del

compilador y de la arquitectura del computador.

Enteros:

short, int, long, unsigned short, unsigned int, unsigned long

Uso: para almacenar datos que corresponden a números sin decimales.

Ejemplos: número de personas, veces que se repite alguna operación.

Atención: la división entera da como resultado un valor entero.

De tipo carácter:

char, unsigned char

Uso: para almacenar datos que corresponden a caracteres alfabéticos.

Ejemplos: letras y símbolos ortográficos.

Atención: aunque se usan para almacenar caracteres, en realidad lo que se guarda es un número

(el código ASCII) asociado al carácter, por lo que a todos los efectos es un tipo entero positivo.

Page 2: Practica 1

INFORMÁTICA

GRADO EN INGENIERÍA

TELEMÁTICA

PRÁCTICA 1

Curso 2015-2016

UNIVERSITAT DE VALÈNCIA

2

Booleano:

bool

Uso: para almacenar datos lógicos (verdadero o falso).

Ejemplos: para almacenar el resultado de una comparación.

Atención: aunque sólo pueden tomar 2 valores (true o false) ocupan 1 byte entero. Cualquier valor

distinto de 0 es interpretado como true, y 0 es false.

Reales:

float

double

long double

Uso: para almacenar datos que corresponden a números con decimales

Ejemplos: longitudes, pesos, velocidades, etc.

Atención: la precisión en el computador no es infinita (y la memoria tampoco).

Operadores

Los operadores asociados a los tipos de datos simples se muestran en la tabla siguiente con su

orden de precedencia:

Tipo de Operador Orden de prioridad

Unarios

Multiplicativos

Aditivos

Relacionales

And

Or

!, -, + (signos)

*, /, %

+, -

>, <, >=, <=, ==, !=

&&

||

+

Nivel de

prioridad

Es necesario tener esa prioridad en cuenta a la hora de escribir expresiones. Si se desea cambiar

la precedencia y forzar operaciones en un determinado orden se deben utilizar paréntesis.

Recuerda que es necesario tener también en cuenta la asociatividad a izquierdas en el caso de

que tengamos dos operadores con igual prioridad.

Los operadores se definen de forma distinta para cada tipo de dato. Por ejemplo, la división de

dos enteros siempre será un entero.

Para evitar errores podemos recurrir a la conversión explicita de tipos o casting. Se realiza

poniendo delante del dato a cambiar el tipo al cual queremos convertirlo: float(9)

Page 3: Practica 1

INFORMÁTICA

GRADO EN INGENIERÍA

TELEMÁTICA

PRÁCTICA 1

Curso 2015-2016

UNIVERSITAT DE VALÈNCIA

3

2. Introducción a las funciones de entrada y salida estándar en C++

Para realizar operaciones de entrada y salida necesitamos utilizar la biblioteca iostream, que

deberemos incluir en nuestro fichero mediante la sentencia #include <iostream>. Podremos

utilizar las instrucciones cin y cout, para leer información desde el teclado y mostrar información

en pantalla, respectivamente. Algunos ejemplos:

cin >> numAlumnos; Leemos un dato introducido por teclado y lo

guardamos en la variable numAlumnos.

cout << "He comprado dulces"; Muestra por pantalla la cadena entre comillas:

He comprado dulces

cout << "En clase hay " << numAlumnos

<< " estudiantes matriculados";

Muestra por pantalla las cadenas que están entre

comillas y el valor de la variable numAlumnos. Por

ejemplo, si su valor es 60, mostrará:

En clase hay 60 estudiantes matriculados

cout << "Hola" << endl << "Hola"; Realiza un salto de línea entre las dos cadenas:

Hola

Hola

3. Estructuras Alternativas Simple y Doble. Sentencias IF y sentencia IF_ELSE

Las estructuras de control selectivas permiten decidir qué ejecutar y qué no ejecutar en un

programa en función del valor que toma una expresión lógica. Por ejemplo: Realizar una división

sólo si el divisor es distinto de cero. En esta sesión sólo veremos la alternativa simple y la doble.

Alternativa simple: UN bloque de sentencias se ejecuta SI se cumple una condición (expresión

lógica).

Alternativa doble: DOS bloques de sentencias. Se ejecuta UNO u OTRO dependiendo de SI se

cumple o NO una condición (expresión lógica).

//Una alternativa

if (a != 0)

resultado = a / b;

//Dos alternativas

if (a >= 0)

cout << "numero no negativo";

else

cout << "numero negativo";

Page 4: Practica 1

INFORMÁTICA

GRADO EN INGENIERÍA

TELEMÁTICA

PRÁCTICA 1

Curso 2015-2016

UNIVERSITAT DE VALÈNCIA

4

Ten en cuenta:

1. Uno de los errores más comunes en una sentencia if es utilizar operador de asignación '=' en

lugar de un operador de igualdad "==" a la hora de definir la condición.

2. En una sentencia if anidada cada else se corresponde con la instrucción if precedente más

cercana. Por ejemplo, en el segmento de programación siguiente:

if (a > 0)

if (b > 0)

c = a + b;

else

c = a * b * c;

d = a * b;

¿Cuál es la sentencia if asociada a else?

El sistema más fácil para evitar errores es el sangrado. Visualmente se puede observar que la

parte else se corresponde a la condición b > 0

if (a > 0)

if (b > 0)

c = a + b;

else

c = a * b * c;

d = a * b;

Una de las razones de utilizar la Guía de Estilo (ver pdf en Aula Virtual) es la claridad de los

programas y evitar errores innecesarios y pérdidas de tiempo.

3. Será necesario utilizar llaves para una sentencia if en caso de que haya más de una instrucción

en dicho bloque:

if (a > 0) {

b = b / a;

c = c – b;

}

4. Cuando se escribe la condición asociada a un if empleando varios operadores hay que tener en

cuenta que estos operadores se ejecutan según el siguiente orden:

1º Primero actúan aquellos que aparecen entre paréntesis, empezando por los paréntesis

más interiores.

2º Luego se evalúan según su orden de prioridad (ver Tabla 1)

3º Los operadores con el mismo nivel de prioridad se evalúan de izquierda a derecha

dependiendo de su asociatividad (a derechas o a izquierdas).

Page 5: Practica 1

INFORMÁTICA

GRADO EN INGENIERÍA

TELEMÁTICA

PRÁCTICA 1

Curso 2015-2016

UNIVERSITAT DE VALÈNCIA

5

BLOQUE DE EJERCICIOS

Ejercicio 1 (mi primer programa). El programa ejer1.cpp calcula la superficie de un cubo. El

valor del lado (en metros) se introduce como dato de entrada. El programa calcula la superficie

(suma del área de seis caras del cuadrado) y se muestra un mensaje por pantalla. Modifica el

programa para que calcule también el volumen de un cubo y muestre el valor por pantalla. Por

ejemplo, ante la entrada lado igual a 3:

Valor de la superficie del cubo de lado 3 es 54 metros cuadrados

Valor del volumen del cubo de lado 3 es 27 metros cubicos

Ejercicio 2 (corrigiendo errores). Dado el siguiente código, complétalo añadiendo los includes

necesarios y la función main. Compílalo, ejecútalo y comenta lo que ocurre. Corrige los posibles

errores para obtener el resultado correcto.

/*completar */

….

float c1=0.1000000003;

float c2=0.1000000005;

if(c1==c2)

cout << "c1 y c2 son iguales" << endl;

else

cout << "c1 y c2 son distintos" << endl;

...

/*completar */

Ejercicio 3 (calculando polinomios). Realiza un programa que calcule el valor de un polinomio

de segundo grado de la forma Ax2+Bx+C. Como datos de entrada tendremos los coeficientes A, B

y C del polinomio y el valor de x. El programa debe mostrar un mensaje con el resultado de la

expresión. Por ejemplo, para la entrada A = 2, B = 3, C = 1 y x = 2, se mostrará el mensaje:

El valor del polinomio 2*x*x+3*x+1 es igual a 15.

Antes de empezar a programar realiza el diagrama de flujo (o pseudocodigo) del algoritmo.

Page 6: Practica 1

INFORMÁTICA

GRADO EN INGENIERÍA

TELEMÁTICA

PRÁCTICA 1

Curso 2015-2016

UNIVERSITAT DE VALÈNCIA

6

Ejercicio 4 (uso de if anidados). Una tienda de comercio electrónico aplica un descuento a sus

clientes en relación a la importancia de la compra. He aquí la tabla de descuentos:

Gasto (euros) Descuento

< 100 10%

Mayor o igual a 100 y

menor que 200

15%

Mayor o igual a 200 25%

Implementa un programa que muestre el total a pagar (dato de salida) a partir del gasto realizado

por el cliente (dato de entrada). Realiza el diagrama de flujo previamente.

Ejercicio 5 (circunferencia) Realiza un programa que determine si un punto (x,y) se encuentra

en el interior de un círculo con centro en el punto (a,b) y radio r. Un punto cualquiera (x,y) se

encuentra dentro de un círculo si se cumple que:

(x-a)2 + (y-b)

2 < r

2

Indica quienes son los datos de entrada y de salida. Indica el pseudocódigo (no olvides la

cabecera) y dibuja el diagrama de flujo.

El mensaje de salida debe ser de la siguiente forma. Por ejemplo, en el caso de la circunferencia

de centro (1,1) y radio 2, y de que introduzcamos el punto (5,3), el mensaje sería:

El punto (5,3) no se encuentra dentro del círculo de centro (1,1) y

radio 2.