domingo, 9 de octubre de 2011

1. Tipos de datos simples e identificadores


PRÁCTICA 2
TIPOS DE DATOS SIMPLES E IDENTIFICADORES
EJERCICIOS PROPUESTOS EN LAS PRÁCTICAS.
01 - Algebraicas a algorítmicas (I)
02 - Algebraicas a algorítmicas (II)
03 - Algebraicas a algorítmicas (III)
04 - Calcular porcentajes (I)
05 - Calcular porcentajes (II)
06 - Celsius a Fahrenheit
07 - Ecuación de segundo grado




Caracterchar
Numérico Enteroint
short
long
-------
unsigned int
unsigned short
unsigned long
Numérico Realfloat
double
Booleanobool
Enumerado
Subrango


Ejemplo

Edadint
Código postalint (no se usa para operar aritméticamente)
char
Teléfonoint (no se usa para operar aritméticamente)
char
SexoEnumerado
Meses del añoint o Subrango
IVAfloat
Alturafloat
Nota de un alumnofloat
Matriculado o no matriculadobool
Precio de un objetofloat
DNIchar
Grupo de claseEnumerado
Comunidad AutónomaEnumerado
Hombre o mujerEnumerado
Peso de un objetofloat




Expresiones algebraicas

AlgorítmicasAlgebraicas
( a ^ 2 ) + ( b ^ 2 )pow(a,2) + pow(b,2)
( a + b ) ^ 2pow((a+b),2)
( b ^ ( 1 / 3 ) ) + 34pow(b,(1/3))+34
( b + 34 ) ^ ( 1/3 )pow(b+34,(1/3))
( c + d ) / ( u + w/b )((c+d)/(u+w/b))
( c + d/u + g/b)(c+d/u+g/b)
a/b * (z+w)(a/b*(z+w))



¿Diferencia entre variable y constante?

Variable.

- El valor de una variable puede cambiar a lo largo del programa.
- Se representa en minúscula.
- Se utiliza en sentencias de entrada y salida de datos.

Constante.

- El valor de una constante nunca cambia en el programa.
- Se representa en mayúscula.
- Se utiliza en sentencias de salida de datos.

Se declaran, inicializan, utilizan y “destruirlas”
Una sentencia de entrada almacena en variables datos introducidos por el usuario por teclado.


%Resto de la división
==
!=
Igual que
Distinto de
&&AND Lógico
||OR Lógico
!NOT Lógico



Os dejo mis soluciones sobre los ejercicios propuestos de este tema por si os veis muy perdidos.
Si encontráis algún fallo en el código comentadmelo por e-mail, tuenti o bien desde este blog.
También podéis participar en el foro del campus para que debatamos nuestras dudas.
Campus > Moodle > 2012-11 Programación 1 > Foro > Dudas



PRÁCTICA 2
TIPOS DE DATOS SIMPLES E IDENTIFICADORES
EJERCICIOS PROPUESTOS EN LAS PRÁCTICAS.


01)
/*
    Tony Del Pino Gz
    tonydelpinogz@gmail.com
    
    PRÁCTICA 2. TIPOS DE DATOS SIMPLES E IDENTIFICADORES

    **********************************************
    Algebraicas a algorítmicas (I)
    **********************************************
    Convertir expresiones algebraicas en expresiones algorítmicas.
*/
#include<iostream>
#include<cmath>
using namespace std;
int main(){
/*
  Nota:
  Al usar la función "pow" hay que declarar las variables como double
  para evitar fallos.
*/
    double a, b, c, d, u, w, g, z;
        
    a=3.0;
    b=2.0;
    c=4.5;
    d=3.25;
    u=5.0;
    w=7.3;
    g=3.5;
    z=6.2;
    cout << " (a^2)+(b^2)= " << pow(a,2)+ pow(b,2) << endl;
    cout << " (a + b) ^2 = " << pow((a+b),2) << endl;
    cout << " (b^(1/3))+34 = " << pow(b,(1/3.0))+34 << endl;
    cout << " (b+34)^(1/3) = " << pow(b+34,(1/3.0)) << endl;
    cout << " (c+d) / (u+w/b) = " << ((c+d)/(u+w/b)) << endl;
    cout << " (c + d/u + g/b) = " << (c + d/u + g/b) << endl;
    cout << " a/b * (z+w) = " << (a/b * (z+w)) << endl;
    cin >> a;
    
    system("PAUSE");
}

02)
/*
    Tony Del Pino Gz
    tonydelpinogz@gmail.com
    
    PRÁCTICA 2. TIPOS DE DATOS SIMPLES E IDENTIFICADORES

    **********************************************
    Algebraicas a algorítmicas (II)
    **********************************************
    Convertir expresiones algebraicas en expresiones algorítmicas.
*/
#include<iostream>
#include<cmath>
using namespace std;

int main(){
/*
Ojo con el orden de los paréntesis, ejercicio corregido ; )
*/
double a,b,c,d,z;
a=3;
b=2;
c=-4;
d=9;
z=2.5;
cout << "a^3+b^-1 = " << pow(a,3)+pow(b,-1) << endl;
cout << "c* d/z/2 - d/c * z = " << (c*d/z/2)-(d/c*z) << endl;
cout << "2a+b/c*d = " << ((2*a)+b)/(c*d) << endl;
cout << "a+((2*b)/(c+d))+d/3 = " << a+((2*b)/(c+d))+d/3 << endl;
cout << "(b^1/3)+2*a^3 = " << pow(b,1/3)+(2*pow(a,3)) << endl;
cout << "(a+(b*c))^1/3 = " << pow((a+b*c),1/3) << endl;
system("PAUSE");
}

03)
/*
    Tony Del Pino Gz
    tonydelpinogz@gmail.com
    
    PRÁCTICA 2. TIPOS DE DATOS SIMPLES E IDENTIFICADORES

    **********************************************
    Algebraicas a algorítmicas (III)
    **********************************************
    Convertir expresiones algebraicas en expresiones algorítmicas.
*/
#include<iostream>
#include<cmath>
using namespace std;
int main(){

/*
        Cuando la expresión contiene algún operador lógico, no se puede 
        realizar directamente en el "cout", se debe guardar en variable bool.
Booleanos condicionales, el resultado:
            1 es equivalente a verdadero
            0 es equivalente a falso.
OJO con las funciones pow tienen que estar rerpresentadas en decimal
*/
bool a,b,c,d,e;
a = (25*3-8)<(100-50/2);
b = ((3+5*8)<3) && ((-6/3-1)*2<2);
c = 3*5<7*2 && 15/3>=2;
d = pow(9.0,(1/3) + pow(4.0,2) >57 % 4 || 25*2-3<50);
e = !(15>2 || 7<4);
cout << "4+6/2+13*2-5 = " << 4+6/2+13*2-5  << endl;
cout << "(37-5)/(46/12) = " << (37-5)/(46/12) << endl;
cout << "5^2+12*(6/3) = " << pow(5.0,2)+12*(6/3) << endl;
cout << "(3*10 resto 3)+25 = " << (3*(10%3))+25 << endl;
cout << "25*3-8 < 100-50/2 = " << a << endl;
cout << "(3+5*8) < 3 y ((-6/3-1)*2 < 2) =" << b << endl;
cout << "3*5 < 7*2 y 15/3 >= 2 =" << c << endl;
cout << "(raíz de 9)+4^2 > 57 resto 4 ó 25*2-3 < 50 = " << d << endl;
cout << "no(15>2 ó 7 < 4) = " << e << endl;
system("PAUSE");

}

04)
/*
    Tony Del Pino Gz
    tonydelpinogz@gmail.com
    
    PRÁCTICA 2. TIPOS DE DATOS SIMPLES E IDENTIFICADORES

    **********************************************
    Calcular porcentajes (I)
    **********************************************
    En una asignatura de la carrera la práctica vale el 60% de la nota y la
    teoría el 40%. Calcula la nota del alumno.
*/
#include<iostream>
using namespace std;
int main(){

    float porcentajeTeoria;
    float porcentajePractica;
    float notaTeoria;
    float notaPractica;
    float resultado;
    
    porcentajePractica = 0.60;
    porcentajeTeoria = 0.40;
    
    cout << "Introduce nota teórica: ";
    cin >> notaTeoria;
    cout << "Introduce nota práctica: ";
    cin >> notaPractica;
    
    resultado = notaTeoria*porcentajeTeoria + notaPractica*porcentajePractica;
    
    cout << "Nota: " << resultado << endl;
   
    system("PAUSE");  
}

05)
/*
    Tony Del Pino Gz
    tonydelpinogz@gmail.com
    
    PRÁCTICA 2. TIPOS DE DATOS SIMPLES E IDENTIFICADORES

    **********************************************
    Calcular porcentajes (II)
    **********************************************
    Modifica el programa anterior (04.cpp): ahora en lugar de una sola nota de teoría hay
    dos examenes que valen cada uno un 50% de la nota. Los exámenes son de 10 
    preguntas de tipo test y por tanto no tienen decimales. Y las prácticas ya
    no se evalúan. Declara las variables que consideres oportunas, dándoles 
    nombres significativos (elimina o cambia las que ya no necesites).
*/
#include<iostream>
using namespace std;
int main(){

    int primerNota,segundaNota,resultado;
    
    
    cout << "Introduce tu primer nota teórica: ";
    cin >> primerNota;
    cout << endl;
    cout << "Introduce tu segunda nota teórica: ";
    cin >> segundaNota;
    cout << endl;
    
    resultado = 0.5*primerNota + 0.5*segundaNota;
    
    cout << "Nota: " << resultado << endl;
   
    system("PAUSE");  
}

06)
/*
    Tony Del Pino Gz
    tonydelpinogz@gmail.com
    
    PRÁCTICA 2. TIPOS DE DATOS SIMPLES E IDENTIFICADORES

    **********************************************
    Celsius a Fahrenheit
    **********************************************
    Realiza un programa que convierta grados Celsius a Fahrenheit. El programa
    debe solicitar la cantidad de grados Celsius y mostrar la conversión a
    Fahrenheit. La conversión se realiza mediante la fórmula:
        Fahrenheit=9/5*Celsius+32
*/
#include<iostream>
using namespace std;

int main(){
    float celsius,fahrenheit;
    
    cout << "Introduce la cantidad en grados Celsius:" << endl;
    cin >> celsius;
    
    fahrenheit = (9/5)*celsius+32;
    
    cout << "En fahrenheit: " << fahrenheit << endl;
    
    system("PAUSE");
}

07)
/*
    Tony Del Pino Gz
    tonydelpinogz@gmail.com
    
    PRÁCTICA 2. TIPOS DE DATOS SIMPLES E IODENTIFICADORES

    **********************************************
    Ecuación de segundo grado
    **********************************************
    Realiza un programa en C que muestre el resultado de una ecuación de
    segundo grado (ax^2+bx=c). Por tanto, debe pedir al usuario los valores
    de a,b y c y mostrar las dos posibles soluciones.
        x=-b+ raíz cuadrada de(b^2 - 4ac)/2a
        x=-b- raíz cuadrada de(b^2 - 4ac)/2a
        
    OBSERVACIÓN:
    La potencia pow(...,1/2), donde 1/2 es entero y siempre se elevaría a 0
    por lo tanto tiene que ser un número real, pow(...,1.0/2.0)
    y float habrá que sustituirlo por double para evitar fallo de compilación
*/

#include<iostream>
#include<cmath>
using namespace std;

int main(){
    double a,b,c,x1,x2;
    
    cout << "Introduce el valor de A: ";
    cin >> a;
    cout << "Introduce el valor de B: ";
    cin >> b;
    cout << "Introduce el valor de C: ";
    cin >> c;
    
    x1= (-b+(pow(pow(b,2)-(-4*a*c),1.0/2.0)))/(2*a);
    x2= (-b-(pow(pow(b,2)-(-4*a*c),1.0/2.0)))/(2*a);
    
    cout << "X1= " << x1 << endl;
    cout << "X2= " << x2 << endl;
    
    system("PAUSE"); 
}


No hay comentarios:

Publicar un comentario