2 clase de program sabados con nota

49
Introduccion a la Programacion en C - C++ UNIVERSIDAD NACIONAL DE INGENIERIA Centro de Estudiantes de la FIEE Abraham Zamudio

Upload: alejandro-gaspar-huamani

Post on 10-Dec-2015

243 views

Category:

Documents


4 download

DESCRIPTION

yj

TRANSCRIPT

Page 1: 2 Clase de Program Sabados Con Nota

Introduccion a la Programacion en C - C++

UNIVERSIDAD NACIONAL DE INGENIERIA

Centro de Estudiantes de la FIEE

Abraham Zamudio

Page 2: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 2

Page 3: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 3

Definición de Constantes (Globales)

Ejemplos

#define PI 3.14159#define MAXIMO 256#define PRIMERALETRA ‘A’#define MENSAJE "Introduzca su nombre:"

Page 4: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 4

Definición de Constantes (Globales)

Ejemplo

#include <stdio.h>#define LONGITUD 32int main (){int l1 = LONGITUD, x;x = LONGITUD + 1;printf(“x = %i“,x);}

Page 5: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 5

Definición de Constantes (Globales)#include <stdio.h>#define CUATRO 4.0float radio;int main (){const float PI = 3.14159;float area, volumen;printf(“De el radio de la esfera: ”);scanf(“%f”,&radio);area = CUATRO * PI * radio * radio;printf(“Area = %f\n“,area);volumen = area * (radio/3);printf(“Volumen = %f\n“,volumen);return 0;}

Page 6: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 6

Tipos de Datos en C

Los lenguajes de programación ofrecen unconjunto completo de tipos de datos escalares yestructurados con las especificaciones deldominio y operaciones.

En este curso vamos a estudiar algunos de lostipos de datos que ofrece el lenguaje deprogramación C.

Page 7: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 7

Tipos de Datos Escalares en C

Page 8: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 8

Tipos de Datos y Tamaños

char: un byte. Este tipo almacena un caracter según la tabla local.

int: un entero. Refleja el tamaño de los enteros en la máquina local.

float: punto flotante de precisión simple.

double: punto flotante de precisión doble.

Page 9: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 9

Informacion sobre tipos

Si desea saber con exactitud sobre lostipos de datos que soporta su computador,busque en los archivos:

limits.hfloat.h

Deberian estar en /usr/include

Page 10: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 10

Operadores de Relacion#include <stdio.h>

int main(){int a=2;int b=1;if (a=b)

printf("a y b son iguales\n");else

printf("a y b son distintos\n");

return 0;}

Page 11: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 11

Operadores de Relacion

Page 12: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 12

Operadores Logicos

Page 13: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 13

Page 14: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 14

Algo de Codigo :

/* Comentarios */#include <stdio.h>void main(){

printf("Introduccion a la Programación en C");}

Todo lo que escribimos entre los símbolos anteriores son “comentarios” para el programador, que no influyen para nada en la ejecución del programa

Ordena al compilador que incluya en el programa, las funciones de entrada – salida (en nuestro caso hay una: printf). stdio.h no es más que un fichero “biblioteca”, que contiene una serie de funciones (instrucciones), en nuestro caso de “entrada-salida por pantalla”.

Si en nuestro programa necesitamos una raíz cuadrada por ejemplo, deberíamos incluir (include) otra “biblioteca” (tranquilo, ya las iremos estudiando poco a poco).

Page 15: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 15

Algo de Codigo :

/* Comentarios */#include <stdio.h>void main(){

printf("Introduccion a la Programación en C");}

Función o programa principal (main), que devuelve nada (void)

Page 16: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 16

Algo de Codigo :

/* Comentarios */#include <stdio.h>void main(){

printf("Introduccion a la Programación en C");}

Función que escribe en pantalla

Page 17: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 17

Algo de Codigo :

#include <stdio.h>

void main(){printf("\n"); /* Línea en blanco */printf("Segunda Linea");/***********************************

COMENTARIO************************************/printf(" continuamos en la 2ª línea\n");printf("\nAhora estamos en la cuarta línea");/*

Hasta luego....................................*/}

Page 18: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 18

Algo de Codigo :

#include <stdio.h>

void main(){char nom[20];printf("\nEscribe tu nombre: ");scanf("%s",nom);printf("\nHola %s",nom);}

Page 19: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 19

Algo de Codigo :#include <stdio.h>

void main(){float a,b,c;printf("\nPrimer sumando: ");scanf("%f",&a);printf("\nSegundo sumando: ");scanf("%f",&b);c=a+b;printf("\n\nLa suma de %f y %f es %f",a,b,c);}

Page 20: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 20

Algo de Codigo :

#include <stdio.h>

void main(){double num;printf("\nEscribe un número= ");scanf("%lf",&num);printf("\nEl cuadrado de %lf es %lf",num,num*num);printf("\nEl cubo de %lf es %lf",num,num*num*num);}

Page 21: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 21

Algo de Codigo :

#include <stdio.h>

main(){float metros,resul,pulg;int resul2,pulg2;

printf("\nValor en metros: ");scanf("%f",&metros);resul=metros*(1/.3048);resul2=resul;pulg=resul-resul2;pulg=pulg*12;pulg2=pulg;printf("El resultado es: %d pies %d pulgadas",resul2,pulg2);}

Programa que convierte de metros a pies y pulgadas.

Page 22: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 22

Algo de Codigo :

#include <stdio.h>

main(){float e,v,t;

v = 30; /* Velocidad del móvil en Km/h */t = 5; /* Tiempo durante el cual se mueve */

e = v*t;printf ("\nVelocidad : %f\nTiempo : %f",v,t);printf ("\nEspacio recorrido : %f",e);}

realizar un programa que nos calcule el espacio recorrido por un móvil con velocidad uniforme durante un tiempo determinado.

Page 23: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 23

Algo de Codigo :

#include <stdio.h>main(){int cap_inv;float gan;printf ("Cantidad a invertir:");scanf ("%i",& cap_inv);gan=cap_inv*.02;printf ("\nLa ganancia es:%F", gan);}

Suponga que un individuo desea invertir su capital en un banco y desea saber cuanto dinero ganara después de un mes si el banco paga a razón de 2% mensual.

Page 24: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 24

Algo de Codigo :

#include <stdio.h>main(){float sb,v1,v2,v3,com,tot_ven,tot_pag;sb=5000;printf ("\nIngrese la venta 1:");scanf ("%f",& v1);printf ("\nIngrese la venta 2:");scanf ("%f",& v2);printf ("\nIngrese la venta 3");scanf ("%f",& v3);tot_ven=v1+v2+v3;com=tot_ven*.10;tot_pag=sb+com;printf ("\nTotal de pago:%f",tot_pag);printf ("\nComision:%f",com);

}

Un vendedor recibe un sueldo base mas un 10% extra por comisión de sus ventas, el vendedor desea saber cuanto dinero obtendrá por concepto de comisiones por las tres ventas que realiza en el mes y el total que recibirá en el mes tomando en cuenta su sueldo base y comisiones.

Page 25: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 25

Algo de Codigo :

#include <stdio.h>main(){float tc,d,tp;printf ("\nIngrese la compra:");scanf ("%f",& tc);d=tc*.15;tp=tc-d;printf ("\nEl total de la compra es:%f",tp);}

Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente desea saber cuanto deberá pagar finalmente por su compra.

Page 26: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 26

Algo de Codigo :#include <stdio.h>main(){float nh,nm,ta,ph,pm;printf ("Ingrese el numero de hombres");scanf ("%f",& nh);printf ("\nIngrese el numero de mujeres");scanf ("%f",& nm);ta=nh+nm;ph=nh*100/ta;pm=nm*100/ta;printf ("\nEl porcentaje de hombres es:%f", ph);printf ("\nEl porcentaje de mujeres es:%f", pm);}

Un maestro desea saber que porcentaje de hombres y que porcentaje de mujeres hay en un grupo de estudiantes.

Page 27: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 27

Algo de Codigo :

#include <stdio.h>main(){int fnac,fact,edad;printf ("Introduce tu año de nacimiento:");scanf ("%d",& fnac);printf ("\nIntroduce el año actual:");scanf ("%d",& fact);edad=fact-fnac;printf ("\nTu edad es:%d",edad);}

programa que calcule la edad de una persona.

Page 28: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 28

Algo de Codigo :

#include <stdio.h>main (){float np;int edad;printf ("\nIntroduce tu edad:");scanf ("%f",& edad);np=((220-edad)/100)*10;printf ("\n\nEl resultado es:%f", np);}

Calcular el numero de pulsaciones que una persona debe tener por cada 10 segundos de ejercicio, si la formula es:num. pulsaciones = (220 - edad)/10

Page 29: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 29

Algo de Codigo :

#include <math.h> #include <stdio.h>

int main(void) { double base = 12.5;

printf("%lf^3 is %lf\n", base, pow(base,3)); return 0; }

Page 30: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 30

Algo de Codigo :

En C y C ++, el generador de números aleatorios es la función rand (). Se propone la semilla con srand (). La función rand () devuelve un int en el intervalo de 0 a RAND_MAX , un valor dependiente de la plataforma . El siguiente es un programa simple para mostrar un valor aleatorio :

#include <stdio.h> #include <stdlib.h> /* rand, srand */#include <time.h> /* time */

int main() { srand( time(NULL) ); printf("%d\n", rand()); return 0;}

Page 31: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 31

Algo de Codigo :#include <stdio.h>#include <stdlib.h>

#define NUMERO_SEMILLA 0

int main(){/* Variable que va contener el número aleatorio, por buenas practicas de programación la inicializamos con 0 */

int numeroAleatorio = 0;

/* Le asignamos un número semilla, que en este caso es "NUMERO_SEMILLA", al algoritmo que nos genera los número aleatorios por medio de la función srand */

srand(NUMERO_SEMILLA);

/* Mostramos el intervalo en el que va estar el número aleatorio */printf("Nuestro número aleatorio va estar entre 0 y %d\n", RAND_MAX);

/* Creamos nuestro primer número aleatorio por medio de la función rand */numeroAleatorio = rand();

/* Mostramos nuestro número aleatorio */printf("Nuestro primer número aleatorio es %d\n", numeroAleatorio);

return 666;}

Page 32: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 32

Algo de Codigo :#include<stdlib.h>#include<stdio.h>

int main(){float x;srand(time(NULL));x = (float) rand() / (float) RAND_MAX;printf("\n El valor de x es %f", x);

srand(time(NULL));x = (float) rand() / (float) RAND_MAX;printf("\n\n El valor de x es %f", x);

return 0;

}

Page 33: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 33

C++ : Entrada, salida y variables

#include <iostream>using namespace std ;int main () {cout << " Hola mundo !" << endl ;}

ARUNI 13
Nota adhesiva
//libreria input/ouput(flujo)
ARUNI 13
Nota adhesiva
linea obligatoria
ARUNI 13
Nota adhesiva
para c es printf para c++ es cout
ARUNI 13
Nota adhesiva
string
ARUNI 13
Nota adhesiva
el endl se puede reempplazar por "\n" como tambien puede estar dentro de el cout
Page 34: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 34

C++ : Entrada, salida y variables

#include <iostream>using namespace std ;int main () {cout << " Unos calculos :" << endl ;cout << " 2+8*(3+1)= ";cout << " 2+8*" << 3+1 << "=";cout << "2+" << 8*(3+1) << "=";cout << 2+8*(3+1) << endl;}

ARUNI 13
Nota adhesiva
1
ARUNI 13
Nota adhesiva
2
ARUNI 13
Nota adhesiva
1
ARUNI 13
Nota adhesiva
2
ARUNI 13
Nota adhesiva
3
ARUNI 13
Nota adhesiva
3
Page 35: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 35

C++ : Entrada, salida y variables

#include <iostream>using namespace std ;int main () {int x =317;cout << "El numero ’x’ es " << x << "." << endl ;cout << "Su cuadrado y su cubo son " << x*x << " y "<< x*x*x << " respectivamente." << endl ;cout << "El polinomio 25x ^3+12 x^2-8 x+2 evaluado a ’x’ da "<< 25* x*x*x+12* x*x -8* x+2 << endl;}

Page 36: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 36

C++ : Entrada, salida y variables

#include <iostream>using namespace std ;int main () {cout << " Elige un numero ’n ’." << endl ;int n=74;cout << " [ elijo el " << n << "]" << endl;cout << " Doblalo ." << endl ;n=2* n;cout << " [me da " << n << "]" << endl;cout << " Sumale 6." << endl;n=n+6;cout << " [ obtengo " << n << "]" << endl ;cout << " Dividelo entre 2 y restale 3." << endl ;n=n/2 -3;cout << " [ sorpresa ! obtengo el numero inicial , " << n << "]." << endl;}

ARUNI 13
Nota adhesiva
declaracion de variable
ARUNI 13
Nota adhesiva
actualizando
ARUNI 13
Nota adhesiva
aca se me es permitido imprimir una variable o una operacion con la variable
Page 37: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 37

C++ : Entrada, salida y variables

#include <iostream>#include <string>using namespace std ;int main () {cout << "Hola , como te llamas ?" << endl;string nombre ;cin >> nombre ;cout << "Hola , " << nombre << ". Cuando naciste ?" << endl;int nac ;cin >> nac ;cout << "Si estamos en el 2015, tu edad es " << 2015 - nac -1<< " o " << 2015 - nac << "." << endl;}

ARUNI 13
Nota adhesiva
para c scanf
ARUNI 13
Nota adhesiva
declaro variable tipo string
ARUNI 13
Nota adhesiva
leo de teclado
ARUNI 13
Nota adhesiva
el cin es el scanf pones cin y en tu pantalla lo vas a leer
Page 38: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 38

C++ : Entrada, salida y variables

#include<iostream>#include<math.h>using namespace std ;double b,h;int main(){cout<<"introduzca la base del triangulo"<<endl;cin>>b;cout<<"introduzca la altura del triangulo"<<endl;cin>>h;cout<<" "<<endl;cout<<"Area del triangulo: "<<((b*h)/2)<<endl;cout<<" "<<endl;return 0;}

ARUNI 13
Nota adhesiva
declaro variables globales
ARUNI 13
Nota adhesiva
como ya declrare la variable ahora si puedo imprimir o sea poner el cin
ARUNI 13
Nota adhesiva
este es un salto de linea puro
Page 39: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 39

C++ : Entrada, salida y variables

Ejercicio

Desarrolle un Algoritmo para SEDAPAL, que permita el ingreso de los siguientes datos: número de contrato y la cantidad de metros cúbicos consumidos. Calcule y visualice los siguientes pagos: Importe: que representa el precio por cada metro cúbico por los

metros cúbicos consumidos Relleno Sanitario: representa 1.4% del Importe Mantenimiento General: representa 2.1% del Importe IGV: representa el 19% de la Suma de Importe, Relleno y

Mantenimiento Pago Total: representa la Suma del los pagos

Page 40: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 40

C++ : Entrada, salida y variables

#include<iostream>using namespace std ;const float precio=0.45;int main(){

char contrato[15];float mc,importe,relleno,mantgral,igv,ptotal;cout<<"Ingrese el Contrato";cin>>contrato;cout<<"Ingrese el Consumo de Agua:";cin>>mc;importe=precio*mc;mantgral=importe*0.028;relleno=importe*0.014;igv=0.19*(importe+mantgral+relleno);ptotal=importe+mantgral+relleno+igv;cout<<"Contrato :"<<contrato<<endl;cout<<"Importe :"<<importe<<endl;cout<<"Mantenimiento:"<<mantgral<<endl;cout<<"Relleno :"<<relleno<<endl;cout<<"Igv :"<<igv<<endl;cout<<"Pago Total :"<<ptotal<<endl;return 0;

}

Page 41: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 41

C++ : Entrada, salida y variables

Ejercicio

Desarrollar un Algoritmo donde ingrese un número de dos dígitos, visualice la suma de sus dígitos

Page 42: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 42

C++ : Entrada, salida y variables

#include<iostream>using namespace std ;int main(){ int numero,unidad,decena; cout<<"Ingrese el numero: "; cin>>numero; unidad=numero%10; decena=int(numero/10); cout<<"La suma es: "<<(unidad+decena); return 666; }

ARUNI 13
Nota adhesiva
para reasignar valores no se pone nada antes
ARUNI 13
Nota adhesiva
esto significa el resto
Page 43: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 43

C++ : Entrada, salida y variables

Ejercicio

Ingrese por Teclado el nombre de un Trabajador y su sueldo básico, calcule y visualice:Bonificación : 5% del sueldo básicoDescuento : 2% del sueldo básicoSueldo Neto : Sumar el sueldo básico y la Bonificación y restarlo con el descuento

Page 44: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 44

C++ : Entrada, salida y variables

#include<iostream>using namespace std ;int main(){

char ntrab[45];float sueldo,bonif,dscto,neto;cout<<"Ingrese el Nombre del Trabajador:";cin>>ntrab;cout<<"Ingrese el Sueldo Basico:";cin>>sueldo;bonif=0.05*sueldo;dscto=0.02*sueldo;neto=sueldo+bonif-dscto;cout<<"Trabajador :"<<ntrab<<endl;cout<<"Sueldo :"<<sueldo<<endl;cout<<"Bonificacion :"<<bonif<<endl;cout<<"Descuento :"<<bonif<<endl;cout<<"Sueldo Neto :"<<neto<<endl;return 666;

}

ARUNI 13
Nota adhesiva
VECTOR DE caracteres
Page 45: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 45

C++ : Entrada, salida y variables

Ingrese por Teclado el sueldo de un Trabajador, asumiendo que éste es un valor entero, visualizar la mejor distribución de billetes y monedas que se utilizaran para pagar el sueldo:Considere billetes de 100, 50, 20, 10.Monedas de 5, 2 y 1

Page 46: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 46

C++ : Entrada, salida y variables#include<iostream>using namespace std ;int main(){

int sueldo,d100=0,d50=0,d20=0,d10=0,d5=0,d2=0,d1=0;cout<<"Ingrese el Sueldo:";cin>>sueldo;//Cuantos billetes de 100 recibirád100=int(sueldo/100);sueldo =sueldo - 100*d100;//Cuantos billetes de 50 recibirád50=int(sueldo/50);sueldo =sueldo - 50*d50;//Cuantos billetes de 20 recibirád20=int(sueldo/20);sueldo =sueldo - 20*d20;//Cuantos billetes de 10 recibirád10=int(sueldo/10);sueldo = sueldo - 10*d10;//Cuantas monedas de 5 recibirád5=int(sueldo/5);sueldo = sueldo - 5*d5;//Cuantos monedas de 2 recibirád2=int(sueldo/2);sueldo = sueldo - 2*d2;//Cuantos billetes de 50 recibirád1=sueldo;cout<<"Billetes de 100:"<<d100<<endl;cout<<"Billetes de 50:"<<d50<<endl;cout<<"Billetes de 20:"<<d20<<endl;cout<<"Billetes de 10:"<<d10<<endl;cout<<"Monedas de 5:"<<d5<<endl;cout<<"Monedas de 2:"<<d2<<endl;cout<<"Monedas de 1:"<<d1<<endl;return 666;

}

Page 47: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 47

C++ : Entrada, salida y variables

/*Calcula el area de un triangulo conociendo sus tres lados*/#include <iostream>#include <math.h> //Reconoce la raiz "sqrt"using namespace std;main(){float a,b,c; /*Se define el tipo de dato_entrada*/float p,at; /*Se define el tipo de dato_salida*/cout<<"Ingrese el valor del lado a: ";cin>>a;cout<<"Ingrese el valor del lado b: ";cin>>b;cout<<"Ingrese el valor del lado c: ";cin>>c;p=(a+b+c)/2.0;at=sqrt(p*(p-a)*(p-b)*(p-c));cout<<at;}

Page 48: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 48

C++ : Entrada, salida y variables

/*Calcula la resultante entre dos fuerzas conociendo el angulo */#include <iostream>#include <math.h> /*Reconoce el pow(base,exponente)*/#define A (M_PI)/180.0 /*Se define a "A" como el valor de conversion*/using namespace std;main(){float f1,f2,anggrados;float R,angradian;cout<<"Ingrese el valor de f1: ";cin>>f1;cout<<"Ingrese el valor de f2: ";cin>>f2;cout<<"Ingrese el valor del angulo entre f1 y f2: ";cin>>anggrados;angradian=anggrados*A;R=sqrt(pow(f1,2)+pow(f2,2)+2*f1*f2*cos(angradian));cout<<R;}

Page 49: 2 Clase de Program Sabados Con Nota

Abraham Zamudio 49

C++ : Entrada, salida y variables

/*Calcula diferentes expresiones para un solo valor*/#include <iostream>#include <math.h> /*Reconoce exp(X), se refiere al "e a la X"*/using namespace std;int main(){float t;double x,y,z;cout<<"Ingrese el valor de t: ";cin>>t;x=pow(t,3)-8*t+4;y=sin(t)+cos(2*t);z=exp(3*t+7);cout<<"El valor de x es: "<<x;cout<<"\nEl valor de y es: "<<y; /*"\n" se utiliza parabajar de linea*/cout<<"\nEL valor de z es: "<<z;return 0;}