Sunteți pe pagina 1din 68

1. 1. Hacer un programa que calcule el costo de un telegrama.

Existen 2 tipos de telegramas: el tipo ordinario (O) y el tipo


urgente (U). En el ordinario, si son 10 o menos palabras, el costo por palabra es de $ 8.00, y la palabra extra (las que
se excedan de 10), cuesta $ 6.00. En el urgente, si son 10 o menos palabras, el costo por palabra es de $ 12.00 y cada
palabra adicional cuesta $ 10.00. Pedir al usuario el tipo del telegrama (O = ordinario, U = urgente), y el no. de palabras.
El programa deberá mostrar el costo total de dicho telegrama.

#include

using namespace std;

int main()
{
char tipoTelegrama;
int numPalabras;
double costoOrdinario1 = 8.00;
double costoOrdinario2 = 6.00;
double costoUrgente1 = 12.00;
double costoUrgente2 = 10.00;
double costoTotal;

cout << "Tipo de Telegrama (O = ordinario, U = urgente): ";


cin >> tipoTelegrama;
cout << "\nNumero de Palabras: ";
cin >> numPalabras;
if(tolower(tipoTelegrama) == 'o')
{
for(int i=0; i<numPalabras; i++)
{
if(i<10) costoTotal += costoOrdinario1;
else costoTotal += costoOrdinario2;
}
}
else if(tolower(tipoTelegrama) == 'u')
{
for(int i=0; i<numPalabras; i++)
{
if(i<10) costoTotal += costoUrgente1;
else costoTotal += costoUrgente2;
}
}

cout << "\nCosto Total: " << costoTotal << endl;

return 0;
}

//programa que escribe al reves


#include
#include
int main(int argc, char const *argv[])
{
char texto [2000];
int 1;
printf("Escrive un texto\n");
gets(texto);
printf("Escribiste : %s", texto);
int len = strlen (texto);
printf("texto al reves :\n");
for (int i = 0; i < len; ++i)
{
printf("%c",texto[len-i]);
}
printf("\n");
gets(texto)
system ("pause");
return 0;

//Pide tres números y los devuelve ordenados de mayor a menor

#include

int main () {

int x, y, z, aux ;

printf ( "Introduce tres nº entero positivos separados por un espacio: " ) ;


scanf ( "%d%d%d", &x, &y, &z ) ;

if ( y > x) {
aux = x;
x = y;
y = aux;
}
if ( z > y) {
aux = y;
y = z;
z = aux;
}
if ( y > x) {
aux = x;
x = y;
y = aux;
}

printf ("\nOrdenados de mayor a menor son: %d, %d y %d \n", x, y , z) ;

return 0;

Aca esta el codigo, espero te sirva:

#include
#include
int c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,i,n;
main(void){

//Dimencion del vector//


printf("\nIngrese el numero de notas que desea calcular\n");
scanf("%d",&n);
int v[n];
for(i=1;i<=n;i++){

//validadcion de notas//
do{

printf("\nIngrese las notas, recuerde deben ser de 1 a 10\n");


printf("\nNota Numero: %d\n",i);
scanf("%d",&v[i]);
fflush(stdin);

if(v[i]<1||v[i]>10){
printf("\nNota fuera de rango, vuelva a intentarlo\n");
}

Como puedo hacer que el programa me diga las veces que se introdujo cada dato, por ejemplo, de "n" numero de
calificaciones me diga cuantos "10" hay, cuantos "9" hay, y asi sucesivamente

//contador de notas//
switch(v[i]){

case 1:
if(v[i]==1){
c1++;
}
break;
case 2:
if(v[i]==2){
c2++;

}
break;
case 3:
if(v[i]==3){
c3++;

}
break;

case 4:
if(v[i]==4){
c4++;

}
break;

case 5:
if(v[i]==5){
c5++;

}
break;

case 6:
if(v[i]==6){
c6++;
}
break;

case 7:
if(v[i]==7){
c7++;

}
break;

case 8:
if(v[i]==8){
c8++;

}
break;

case 9:
if(v[i]==9){
c9++;

}
break;

case 10:
if(v[i]==10){
c10++;

}
break;

default:
break;
}
}while(v[i]<1||v[i]>10);

printf("\nAhora la clasificacion de notas: \n");

system("pause");

printf("\nLa cantidad de notas iguales a 1 ingresadas son: %d\n",c1);


printf("\nLa cantidad de notas iguales a 2 ingresadas son: %d\n",c2);
printf("\nLa cantidad de notas iguales a 3 ingresadas son: %d\n",c3);
printf("\nLa cantidad de notas iguales a 4 ingresadas son: %d\n",c4);
printf("\nLa cantidad de notas iguales a 5 ingresadas son: %d\n",c5);
printf("\nLa cantidad de notas iguales a 6 ingresadas son: %d\n",c6);
printf("\nLa cantidad de notas iguales a 7 ingresadas son: %d\n",c7);
printf("\nLa cantidad de notas iguales a 8 ingresadas son: %d\n",c8);
printf("\nLa cantidad de notas iguales a 9 ingresadas son: %d\n",c9);
printf("\nLa cantidad de notas iguales a 10 ingresadas son: %d\n",c10);
puts("");
system("pause");

}
24. Que lea una hora en hora:minutos:segundos y diga la hora que es un segundo después.

#include
#include

int main(){
time_t tiempo = time(0);
struct tm *tlocal = localtime(&tiempo);

char output[128];
char output2[128];
strftime(output, 128, "%d/%m/%y %H:%M:%S", tlocal);
strftime(output2, 128, "%d/%m/%y %H:%M:", tlocal);
printf("Fecha y Hora: %s\n\n",output);
printf("Fecha y Hora: %s",output2);
printf("%d\n\n",tlocal->tm_sec+1);

system ("pause");
return 0;
}

1. Que pida un número del 1 al 5 y diga si es primo o no.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int i;
printf("Introduzca número del 1 al 5:");
scanf("%d",&i);

if (i!=4) {
printf("Es primo.");
}
else
{
printf("No es primo.");
}

system("PAUSE");
return 0;
}

2. Que pida un número y diga si es par o impar.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int i;
printf("Introduzca número:");
scanf("%d",&i);

if (i%2==0) {
printf("Es par.");
}
else
{
printf("Es impar.");
}

system("PAUSE");
return 0;
}

3. Que pida un número del 1 al 7 y diga el día de la semana correspondiente.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int i;
printf("Introduzca número del 1 al 7:");
scanf("%d",&i);

switch(i){
case 1:
printf ("Lunes\n");
break;
case 2:
printf ("Martes\n");
break;
case 3:
printf ("Miércoles\n");
break;
case 4:
printf ("Jueves\n");
break;
case 5:
printf ("Viernes\n");
break;
case 6:
printf ("Sábado\n");
break;
case 7:
printf ("Domingo\n");
break;
default:
printf ("Opción no válida\n");
break;
}

system("PAUSE");
return 0;
}

4. Que pida un número del 1 al 12 y diga el nombre del mes correspondiente.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int i;
printf("Introduzca número del 1 al 12:");
scanf("%d",&i);

switch(i){
case 1:
printf ("Enero\n");
break;
case 2:
printf ("Febrero\n");
break;
case 3:
printf ("Marzo\n");
break;
case 4:
printf ("Abril\n");
break;
case 5:
printf ("Mayo\n");
break;
case 6:
printf ("Junio\n");
break;
case 7:
printf ("Julio\n");
break;
case 8:
printf ("Agosto\n");
break;
case 9:
printf ("Septiembre\n");
break;
case 10:
printf ("Octubre\n");
break;
case 11:
printf ("Noviembre\n");
break;
case 12:
printf ("Diciembre\n");
break;
default:
printf ("Opción no válida\n");
break;
}

system("PAUSE");
return 0;
}

5. Que pida 3 números y los muestre en pantalla de menor a mayor.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int num1,num2,num3;

printf("Introduzca número 1:");


scanf("%d",&num1);

printf("Introduzca número 2:");


scanf("%d",&num2);

printf("Introduzca número 3:");


scanf("%d",&num3);

if (num1<num2 && num1<num3)


{
if (num2<num3)
{
printf("%d",num1);
printf("%d",num2);
printf("%d",num3);
}
else
{
printf("%d",num1);
printf("%d",num3);
printf("%d",num2);
}
}
else if (num2<num1 && num2<num3)
{
if (num1<num3)
{
printf("%d",num2);
printf("%d",num1);
printf("%d",num3);
}
else
{
printf("%d",num2);
printf("%d",num3);
printf("%d",num1);
}
}
else if (num3<num1 && num3<num2)
{
if (num1<num2)
{
printf("%d",num3);
printf("%d",num1);
printf("%d",num2);
}
else
{
printf("%d",num3);
printf("%d",num2);
printf("%d",num1);
}
}

system("PAUSE");
return 0;
}

6. Que pida 3 números y los muestre en pantalla de mayor a menor.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int num1,num2,num3;

printf("Introduzca número 1:");


scanf("%d",&num1);

printf("Introduzca número 2:");


scanf("%d",&num2);

printf("Introduzca número 3:");


scanf("%d",&num3);

if (num1>num2 && num1>num3)


{
if (num2>num3)
{
printf("%d",num1);
printf("%d",num2);
printf("%d",num3);
}
else
{
printf("%d",num1);
printf("%d",num3);
printf("%d",num2);
}
}
else if (num2>num1 && num2>num3)
{
if (num1>num3)
{
printf("%d",num2);
printf("%d",num1);
printf("%d",num3);
}
else
{
printf("%d",num2);
printf("%d",num3);
printf("%d",num1);
}
}
else if (num3>num1 && num3>num2)
{
if (num1>num2)
{
printf("%d",num3);
printf("%d",num1);
printf("%d",num2);
}
else
{
printf("%d",num3);
printf("%d",num2);
printf("%d",num1);
}
}

system("PAUSE");
return 0;
}

7. Que pida 3 números y los muestre en pantalla de mayor a menor en líneas distintas. En caso de haber números iguales se
pintan en la misma línea.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int num1,num2,num3;

printf("Introduzca número 1:");


scanf("%d",&num1);

printf("Introduzca número 2:");


scanf("%d",&num2);

printf("Introduzca número 3:");


scanf("%d",&num3);

if (num1>num2 && num1>num3)


{
if (num2>num3)
{
printf("%d\n",num1);
printf("%d\n",num2);
printf("%d\n",num3);
}
else if (num3>num2)
{
printf("%d\n",num1);
printf("%d\n",num3);
printf("%d\n",num2);
}
else
{
printf("%d\n",num1);
printf("%d",num3);
printf("%d\n",num2);
}
}
else if (num2>num1 && num2>num3)
{
if (num1>num3)
{
printf("%d\n",num2);
printf("%d\n",num1);
printf("%d\n",num3);
}
else if (num3>num1)
{
printf("%d\n",num2);
printf("%d\n",num3);
printf("%d\n",num1);
}
else
{
printf("%d\n",num2);
printf("%d",num3);
printf("%d\n",num1);
}
}
else if (num3>num1 && num3>num2)
{
if (num1>num2)
{
printf("%d\n",num3);
printf("%d\n",num1);
printf("%d\n",num2);
}
else if (num2>num1)
{
printf("%d\n",num3);
printf("%d\n",num2);
printf("%d\n",num1);
}
else
{
printf("%d\n",num3);
printf("%d",num2);
printf("%d\n",num1);
}
}
else
{
printf("%d",num1);
printf("%d",num2);
printf("%d",num3);
}

system("PAUSE");
return 0;
}

8. Que pida un número y diga si es positivo o negativo.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int num1;

printf("Introduzca número 1:");


scanf("%d",&num1);
if (num1>0){
printf("Es positivo\n");
}
else if (num1<0){
printf("Es negativo\n");
}
else
{
printf("Es cero\n");
}

system("PAUSE");
return 0;
}

9. Que sólo permita introducir los caracteres S y N.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
char c;

printf("Introduzca un carácter:");
scanf("%c",&c);

if (c=='s' || c=='n' ){
printf("Es correcto\n");
}
else
{
printf("Es incorrecto\n");
}

system("PAUSE");
return 0;
}

10. Que pida un número y diga si es mayor de 100.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int num1;

printf("Introduzca un número:");
scanf("%d",&num1);

if (num1>100){
printf("Es mayor\n");
}
else
{
printf("Es menor\n");
}

system("PAUSE");
return 0;
}

11. Que pida una letra y detecte si es una vocal.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char c;

printf("Introduzca un carácter:");
scanf("%c",&c);

switch (c)
{
case 'a':
printf ("Es vocal\n");
break;
case 'e':
printf ("Es vocal\n");
break;
case 'i':
printf ("Es vocal\n");
break;
case 'o':
printf ("Es vocal\n");
break;
case 'u':
printf ("Es vocal\n");
break;
default:
printf ("No es vocal\n");
break;
}

system("PAUSE");
return 0;
}

12. Que pida tres números y detecte si se han introducido en orden creciente.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int num1,num2,num3;

printf("Introduzca número 1:");


scanf("%d",&num1);

printf("Introduzca número 2:");


scanf("%d",&num2);

printf("Introduzca número 3:");


scanf("%d",&num3);

if (num1<num2)
{
if (num2<num3)
{
printf("Orden creciente");
}
else
{
printf("No están introducidos en orden creciente ");
}
}
else
{
printf("No están introducidos en orden creciente ");
}

system("PAUSE");
return 0;
}

13. Que pida tres números y detecte si se han introducido en orden decreciente.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int num1,num2,num3;

printf("Introduzca número 1:");


scanf("%d",&num1);

printf("Introduzca número 2:");


scanf("%d",&num2);

printf("Introduzca número 3:");


scanf("%d",&num3);

if (num1>num2)
{
if (num2>num3)
{
printf("Orden decreciente");
}
else
{
printf("No están introducidos en orden decreciente ");
}
}
else
{
printf("No están introducidos en orden decreciente ");
}

system("PAUSE");
return 0;
}

14. Que pida 10 números y diga cuál es el mayor y cual el menor.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int num1,num2,num3,num4,num5,num6,num7,num8,num9,num10,mayor,menor;

mayor=0;
menor=10;

printf("Introduzca número 1:");


scanf("%d",&num1);

if (num1>mayor)
{
mayor=num1;
}
else if (num1<menor)
{
menor=num1;
}

printf("Introduzca número 2:");


scanf("%d",&num2);

if (num2>mayor)
{
mayor=num2;
}
else if (num2<menor)
{
menor=num2;
}

printf("Introduzca número 3:");


scanf("%d",&num3);

if (num3>mayor)
{
mayor=num3;
}
else if (num3<menor)
{
menor=num3;
}

printf("Introduzca número 4:");


scanf("%d",&num4);

if (num4>mayor)
{
mayor=num4;
}
else if (num4<menor)
{
menor=num4;
}

printf("Introduzca número 5:");


scanf("%d",&num5);

if (num5>mayor)
{
mayor=num5;
}
else if (num5<menor)
{
menor=num5;
}

printf("Introduzca número 6:");


scanf("%d",&num6);

if (num6>mayor)
{
mayor=num6;
}
else if (num6<menor)
{
menor=num6;
}

printf("Introduzca número 7:");


scanf("%d",&num7);

if (num7>mayor)
{
mayor=num7;
}
else if (num7<menor)
{
menor=num7;
}

printf("Introduzca número 8:");


scanf("%d",&num8);
if (num8>mayor)
{
mayor=num8;
}
else if (num8<menor)
{
menor=num8;
}

printf("Introduzca número 9:");


scanf("%d",&num9);

if (num9>mayor)
{
mayor=num9;
}
else if (num9<menor)
{
menor=num9;
}

printf("Introduzca número 10:");


scanf("%d",&num10);

if (num10>mayor)
{
mayor=num10;
}
else if (num10<menor)
{
menor=num10;
}

printf("El mayor es:%d\n",mayor);


printf("El menor es:%d\n",menor);

system("PAUSE");
return 0;
}

15. Que pida tres números e indicar si el tercero es igual a la suma del primero y el segundo.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int num1,num2,num3;

printf("Introduzca número 1:");


scanf("%d",&num1);

printf("Introduzca número 2:");


scanf("%d",&num2);

printf("Introduzca número 3:");


scanf("%d",&num3);

if (num1+num2==num3)
{
printf("El tercer número es la suma de los dos primeros.\n");
}
else
{
printf("El tercer número NO es la suma de los dos primeros.\n");
}

system("PAUSE");
return 0;
}

16. Que muestre un menú que contemple las opciones “Archivo”, “Buscar” y “Salir”, en caso de que no se introduzca una opción
correcta se notificará por pantalla.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int opcion;
printf("Seleccione opción:\n");
printf("1 - Archivo\n");
printf("2 - Buscar\n");
printf("3 - Salir\n");

scanf("%d",&opcion);

if (opcion!=1 && opcion!=2 && opcion!=3)


{
printf("La opción NO es correcta.\n");
}
else
{
printf("La opción es correcta.\n");
}

system("PAUSE");
return 0;
}

17. Que tome dos números del 1 al 5 y diga si ambos son primos.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int num1,num2;
printf("Introduzca número del 1 al 5:");
scanf("%d",&num1);

printf("Introduzca número del 1 al 5:");


scanf("%d",&num2);

if (num1!=4 && num2!=4) {


printf("Ambos son primos.\n");
}
else
{
printf("Los números, o uno de ellos, no son primos.\n");
}

system("PAUSE");
return 0;
}

18. Que tome dos números y diga si ambos son pares o impares.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int num1,num2;
printf("Introduzca primer número:");
scanf("%d",&num1);
printf("Introduzca segundo número:");
scanf("%d",&num2);

if (num1%2==0 && num2%2==0) {


printf("Ambos son pares.\n");
}
else
{
printf("Los números, o uno de ellos, no son pares.\n");
}

system("PAUSE");
return 0;
}

19. Que tome tres números y diga si la multiplicación de los dos primeros es igual al tercero.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int num1,num2,num3;

printf("Introduzca número 1:");


scanf("%d",&num1);

printf("Introduzca número 2:");


scanf("%d",&num2);

printf("Introduzca número 3:");


scanf("%d",&num3);

if (num1*num2==num3)
{
printf("El tercer número es la multiplicación de los dos primeros.\n");
}
else
{
printf("El tercer número NO es la multiplicación de los dos primeros.\n");
}

system("PAUSE");
return 0;
}

20. Que tome tres números y diga si el tercero es el resto de la división de los dos primeros.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int num1,num2,num3;

printf("Introduzca número 1:");


scanf("%d",&num1);

printf("Introduzca número 2:");


scanf("%d",&num2);

printf("Introduzca número 3:");


scanf("%d",&num3);

if (num1%num2==num3)
{
printf("El tercer número es el resto de la división de los dos primeros.\n");
}
else
{
printf("El tercer número NO es el resto de la división de los dos primeros.\n");
}

system("PAUSE");
return 0;
}

21. Que muestre un menú donde las opciones sean “Equilátero”, “Isósceles” y “Escaleno”, pida una opción y calcule el perímetro
del triángulo seleccionado.

Sirva de aclaración que el perímetro de un triángulo es siempre la suma de sus lados, pero he preferido hacerlo así para ver las tres
formas diferentes de calcularlo.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int lado, base, opcion;

printf("Introduzca lado del triángulo:");


scanf("%d",&lado);
printf("Introduzca base del triángulo:");
scanf("%d",&base);

printf("Seleccione opción:\n");
printf("1 - Equilátero\n");
printf("2 - Isósceles\n");
printf("3 - Escaleno\n");

scanf("%d",&opcion);

switch (opcion)
{
case 1:
printf("El perímetro es:%d\n",3*lado);
break;
case 2:
printf("El perímetro es:%d\n",(2*lado)+base);
break;
case 3:
printf("El perímetro es:%d\n",lado + lado + lado);
break;
default:
printf("Opción no válida.");
break;
}

system("PAUSE");
return 0;
}

22. Que pase de Kg a otra unidad de medida de masa, mostrar en pantalla un menú con las opciones posibles.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int peso;

printf("Introduzca peso en kilogramos:");


scanf("%d",&peso);

printf("Seleccione opción:\n");
printf("1 - Hectogramos\n");
printf("2 - Decagramos\n");
printf("3 - Gramos\n");
printf("4 - Decigramos\n");
printf("5 - Centigramos\n");
printf("6 - Miligramos\n");

scanf("%d",&opcion);

switch (opcion)
{
case 1:
printf("El peso es:%d\n",peso/10);
break;
case 2:
printf("El peso es:%d\n",peso/100);
break;
case 3:
printf("El peso es:%d\n",peso/1000);
break;
case 4:
printf("El peso es:%d\n",peso/10000);
break;
case 5:
printf("El peso es:%d\n",peso/100000);
break;
case 6:
printf("El peso es:%d\n",peso/1000000);
break;
default:
printf("Opción no válida.");
break;
}

system("PAUSE");
return 0;
}

23. Que lea un importe bruto y calcule su importe neto, si es mayor de 15.000 se le aplicará un 16% de impuestos, en caso contrario
se le aplicará un 10%.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
float importe, deduccion;

printf("Introduzca Importe:");
scanf("%f",&importe);

if (importe>15000)
{
deduccion=importe*0.16;
}
else
{
deduccion=importe*0.1;
}

printf("El importe neto es %f euros\n",importe-deduccion);

system("PAUSE");
return 0;
}

24. Que lea una hora en hora:minutos:segundos y diga la hora que es un segundo después.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int horas, minutos, segundos;

printf("Introduzca Hora:");
scanf("%d",&horas);
printf("Introduzca Minutos:");
scanf("%d",&minutos);
printf("Introduzca Segundos:");
scanf("%d",&segundos);

segundos=segundos+1;

if (minutos>59)
{
minutos=0;
}

if (horas>23)
{
horas=0;
}

if (segundos>59)
{
segundos=0;
minutos=minutos+1;

if (minutos>59)
{
minutos=0;
horas=horas+1;
if (horas>23)
{
horas=0;
}
}
}

printf("La hora (un segundo después) es: %02d:%02d:%02d \n", horas, minutos, segundos);

system("PAUSE");
return 0;
}

25. Que calcule el sueldo que le corresponde al trabajador de una empresa que cobra 40.000 euros anuales, el programa debe
realizar los cálculos en función de los siguientes criterios:

a. Si lleva más de 10 años en la empresa se le aplica un aumento del 10%.


b. Si lleva menos de 10 años pero más que 5 se le aplica un aumento del 7%.
c. Si lleva menos de 5 años pero más que 3 se le aplica un aumento del 5%.
d. Si lleva menos de 3 años se le aplica un aumento del 3%.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
float importe, aumento;
int antiguedad;

importe=40000;

printf("Introduzca la antigüedad del trabajador:");


scanf("%d",&antiguedad);

if (antiguedad>=10)
{
aumento=importe*0.1;
}
else if (antiguedad<10 && antiguedad>=5)
{
aumento=importe*0.07;
}
else if (antiguedad<5 && antiguedad>=3)
{
aumento=importe*0.05;
}
else
{
aumento=importe*0.03;
}

printf("El sueldo que le corresponde al trabajador es de %f euros\n",importe+aumento);

system("PAUSE");
return 0;
}

Ejemplo #1
Este primer ejemplo consiste en aprender como se declaran las funciones, como se utilizan, ademas veremos
librerías importantes para acentuar palabras o como las "Ñ" en lenguaje español. El #include
<windows.h> y using namespace std; pone a su disposición los objetos cout y cin, el #include <locale.h> para
utilizar los acentos.

#include <iostream>/*Librería, in out stream que se usa para las lineas cout y cin*/
#include <windows.h>/*Librería específico de Windows que contiene las funciones Windows API*/
#include <locale.h>/*Librería para establecer la configuración regional actual*/
using namespace std;
int suma(int, int);/*Se declara la función suma*/

/*Todo lo que está en el main se va a ejecutar*/


int main(){
setlocale(LC_CTYPE, "Spanish");/*Para poder utilizar los acentos*/
int num1, num2;/*Se declara los campos que digitará el usuario*/

cout<<"Escriba el primer número: ";


cin>> num1;

cout<<"Escriba el segundo número: ";


cin>> num2;

cout<<"La suma es: "<< suma(num1, num2)<<"\n";/*Llama a la función y envía los 2 números*/
system("pause");/*Congela el resultado para que puedas verlo*/
}

/*Función suma que recibe los dos números y retorna el total de la suma*/
int suma(int a, int b){
int c;/*Declaro "c" privada para la función*/
c = a + b;
return c;
}

Ejemplo #2
El promedio de N notas, utiliza funciones, do while, arreglos

#include <iostream>
#include <windows.h>
using namespace std;

/*Declaras la función al mismo tiempo calcula el promedio*/


/*Si quieres cambiar de posición por ejemplo ubicarla abajo*/
/*no lo podras hacer y te daría un error, ya que las funciones*/
/*se declaran antes del main*/
float promedio(int valores[], int cantidad) {
int i;
float suma = 0.0;

/*El ciclo for cuenta el número de notas que desea promediar*/


for (i = 0; i < cantidad; ++i)
suma += valores[i];/*Suma las notas ingresadas*/

return suma / (float) cantidad;/*La suma total de notas entre la cantidad de notas*/
}

int main() {

/*Se declaran las variables y se establece un espacio*/


int notas[10];
char nombre[20];
char opcion[3];
int n, i;

/*Se inicia la sentencia do while*/


do{
/*Se piden los datos para que ingrese el usuario*/
cout<<"Escriba el nombre del alumno: ";
cin>> nombre;

cout<<"Cuantas notas tiene "<<nombre<<"? ";


cin>> n;

/*ciclo for te pide en pantalla las notas, según la cantidad que ingresastes*/
for (i = 0; i < n; ++i) {
cout<<" Nota "<< i + 1<<": ";
cin>> notas[i];
}

/*Llamas a la función promedio y le das los parámetros y te muestra el resultado*/


cout<<"El promedio de "<<nombre<<" es: "<< promedio(notas, n)<<"\n";

/*Te pide si deseas seguir calculando promedios que este dato lo almacena opcion*/
cout<<"Desea calcular mas promedios (si/no)? ";
cin>> opcion;

}
/*While es el ciclo que si el usuario ingres s o S el ciclo iniciará una vez más*/
/*si el usuario elige No el ciclo se detendra*/
while (opcion[0] == 's' || opcion[0] == 'S');
return 0;
}

Ejemplo #3
Calcular el factorial de un número entero positivo (n!). El factorial de 5, 5! = 5 x 4 x 3 x 2 x 1 osea: 5! = 120

#include <iostream>
#include <windows.h>
using namespace std;
6
int main(void){
/*Declaro las variables*/
int i=0, fact=1, n=0;

cout<<"Escriba el numero para calcular el Factorial: ";


cin>> n;

/*Un for que multiplica el factorial de un número*/


for (i=1;i<=n;++i){
fact=fact*i;
}
/*Muestra el resultado en pantalla*/
cout<<"El Factorial de "<<n <<" es "<<fact<<"\n";
system("pause");
}

Ejercicio #4
Desarrolle una estructura que guarde los datos de "N" alumnos de la materia de Estructuras de Datos, y los
muestres por pantalla, la estructura debe tener (cedula, nombre, apellido, edad, profesión, lugar de nacimiento,
dirección y teléfono).

#include <iostream>
#include <windows.h>
#define max 100 /*Constante*/
using namespace std;

int main(void){
/*Declara las variables para los ciclo for*/
int i = 0, n = 0;

/*Declara estructura persona*/


struct persona{
char cedula[14];
char nombre[15];
char apellido[15];
int edad;
char profesion[20];
char lugar[50];
char direccion[50];
int telefono;
};
/*Declara alumno, arreglo de la estructura persona*/
struct persona alumno[max];

/*Se pide cuantos registros de alumnos se guardaran*/


cout<<"Cuantos datos desea introducir?/n";
cin>> n;

/*Ciclo for que va a recorrer según la cantidad escrita anteriormente*/


for (i = 0; i < n; i++){
cout<<"\nEscriba la Cedula "<< i+1<<":";
cin>> alumno[i].cedula;
cout<<"\nEscriba el Nombre "<< i+1<<":";
cin>> alumno[i].nombre;

cout<<"\nEscriba el Apellido "<< i+1<<":";


cin>> alumno[i].apellido;

cout<<"\nEscriba la Edad de "<< i+1<<":";


cin>> alumno[i].edad;

cout<<"\nEscriba la Profesion de "<< i+1<<":";


cin>> alumno[i].profesion;

cout<<"\nEscriba el Lugar de Nacimiento de "<< i+1<<":";


cin>> alumno[i].lugar;

cout<<"\nEscriba la Direccion de "<< i+1<<":";


cin>> alumno[i].direccion;

cout<<"\nEscriba el Telefono de "<< i+1<<":";


cin>> alumno[i].telefono;
}

cout<<"/nEl registro de Alumnos que se introdujeron son: \n\n";

/*Ciclo for que muestra el listado de registro ingresados*/


for (i = 0; i < n; i++){
/*Se llama al arreglo alumno seguido de la variable cedula*/
cout<< alumno[i].cedula;
cout<<"\t"<<alumno[i].nombre;
cout<<"\t"<<alumno[i].apellido;
cout<<"\t"<<alumno[i].edad;
cout<<"\t"<<alumno[i].profesion;
cout<<"\t"<<alumno[i].lugar;
cout<<"\t"<<alumno[i].direccion;
cout<<"\t"<<alumno[i].telefono<<"\n\n";
}

system("pause");
}

Ejercicio #5
Escriba un programa que en una estructura guarde los datos de 5 amigos (as) suyos (as) y los muestre en pantalla,
utilizando para ello un arreglo de estructura, la misma estructura contendrá (Nombre, Apellido, Edad, Sexo,
Dirección, y Teléfono).

#include <iostream>
#include <windows.h>
#define max 100 /*Constante*/
using namespace std;

int main(void){
/*Declara las variables para los ciclo for*/
int i = 0;

/*Declara estructura persona*/


struct persona{
char nombre[15];
char apellido[15];
int edad;
char sexo;
char direccion[50];
int telefono;
};
/*Declara alumno, arreglo de la estructura persona*/
struct persona amigo[max];

/*Ciclo for que va a recorrer 5 veces*/


for (i = 0; i < 5; i++){

cout<<"\nEscriba el Nombre "<< i+1<<":";


cin>> amigo[i].nombre;

cout<<"\nEscriba el Apellido "<< i+1<<":";


cin>> amigo[i].apellido;

cout<<"\nEscriba la Edad de "<< i+1<<":";


cin>> amigo[i].edad;

cout<<"\nEscriba el sexo "<< i+1<<":";


cin>> amigo[i].sexo;

cout<<"\nEscriba la Direccion de "<< i+1<<":";


cin>> amigo[i].direccion;
cout<<"\nEscriba el Telefono de "<< i+1<<":";
cin>> amigo[i].telefono;
}

cout<<"/nEl registro de Alumnos que se introdujeron son: \n\n";

/*Ciclo for que muestra el listado de 5 registro ingresados*/


for (i = 0; i < 5; i++){
/*Se llama al arreglo amigo seguido de la variable*/
cout<<"\t"<<amigo[i].nombre;
cout<<"\t"<<amigo[i].apellido;
cout<<"\t"<<amigo[i].edad;
cout<<"\t"<<amigo[i].sexo;
cout<<"\t"<<amigo[i].direccion;
cout<<"\t"<<amigo[i].telefono<<"\n\n";
}

system("pause");
}

Ejercicios resueltos C++ [programacion estructurada]


Mensajes: 182 « en: 26 Febrero 2008, 18:40 »

>> ARITMETICA <<


Mostrar los multiplos de 3 comprendidos entre los numeros 1 y 20
Código:
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
int main ()
{
clrscr();
for (int i=1;i<=20;i++)
{
cout<<i;
if (i%3==0) cout<<" Es multiplo de 3" <<endl;
else cout<<" No es multiplo de 3"<<endl;
}
getch();
return 0;
}

Hallar A+B-C+100
Código:
#include <stdio.h>
#include <conio.h.>
int main ()
{
int A, B, C;
printf("Inserte valor para A: "); scanf("%d",&A);
printf("Inserte valor para B: "); scanf("%d",&B);
printf("Inserte valor para C: "); scanf("%d",&C);
printf("\n%d + %d - %d + 100 = %d",A, B, C, (A+B+C-100));
getch();
}

Obtener (a-b)(a+b)
Código:
#include <stdio.h>
#include <conio.h>
int main ()
{
int a, b;
printf("Inserte valor a: "); scanf("%d",&a);
printf("Inserte valor b: "); scanf("%d",&b);
printf("(%d-%d) (%d+%d) = %d",a, b, a, b,((a-b)*(a+b)));
getch();
}

Leer un numero de 3 digitos y sumarlos


Código:
#include <stdio.h>
#include <conio.h>
int main ()
{
int numero, sum_dig=0;
printf("Inserte un numero de 3 digitos: "); scanf("%d",&numero);
if (numero>=100)
{
int num=numero; //salvamos en num, la variable numero
while (numero!=0)
{
sum_dig=sum_dig+(numero%10); //para sacar el ultimo digito de numero
numero=numero/10; //elimina el ultimo digito de numero
}
printf("La suma de los digitos de %d es : %d",num, sum_dig);
}
else
printf("\a ERROR: El digito no tiene 3 digitos");
getch();
}

Dado un numero verificar:


- Que tenga dos digitos
- Verificar si sus digitos son pares
- Promediar sus digitos
Código:
#include <stdio.h>
#include <conio.h>
int main ()
{
int numero;
printf("Inserte num. de dos digitos pares: ");
scanf("%d",&numero);
int aux=numero;
if(numero<100 && numero>9)
{
int d1=numero%10;
numero=numero/10;
int d2=numero%10;
if(d1%2==0 & d2%2==0)
printf("El promedio d los digitos de %d es: %d",aux,(d1+d2)/2);
}
else
printf("\aERROR: el numero no tiene dos digitos");
getch();
}
Dado un numero verificar si es positivo, negativo o nulo
Código:
#include <stdio.h>
#include <conio.h>
int main ()
{
int numero;
printf("Inserte un numero: ");
scanf("%d",&numero);
if(numero==0)
printf("El numero %d es NULO",numero);
else
{
if(numero<0)
printf("El numero %d es NEGATIVO",numero);
else
printf("El numero %d es POSITIVO",numero);
}
getch();
}

Dados seis numeros enteros determinar, el menor de ellos


Código:
#include<stdio.h>
#include<conio.h>
int main()
{
int a, b, c, d, e, f;
printf("Inserte num.1: "); scanf("%d",&a);
printf("Inserte num.2: "); scanf("%d",&b);
printf("Inserte num.3: "); scanf("%d",&c);
printf("Inserte num.4: "); scanf("%d",&d);
printf("Inserte num.5: "); scanf("%d",&e);
printf("Inserte num.6: "); scanf("%d",&f);
int menor=a;
if(b<menor) menor=b;
if(c<menor) menor=c;
if(d<menor) menor=d;
if(e<menor) menor=e;
if(f<menor) menor=f;
printf("El menor de %d,%d,%d,%d,%d,%d ",a,b,c,d,e,f);
printf("\nEs %d",menor);
getch();
}

En línea

¿Ilusión o realidad?

Darvein Re: Ejercicios resueltos C++ [programacion estructurada]


« Respuesta #1 en: 26 Febrero 2008, 18:41 »
Desconectado

Mensajes: 182 >> SERIES <<


hallar la sumatoria de: 2! + 4! + 6! + 8! + ...
Código:
#include <stdio.h>
#include <conio.h>
int facto (int x)
{
int f=1;
for (int i=1;i<=x;i++)
{f=f*i;}
return (f);
}

int main ()
{
int n, serie=2, suma=0;
printf ("Inserte cantidad de terminos a generar: "); scanf ("%d",&n);
for (int i=1;i<=n;i++)
{
printf ("%d! + ",serie);
suma=suma+(facto(serie));
serie=serie+2;
}
printf (" = %d",suma);
getch();
}

Generar la serie: 1, 5, 3, 7, 5, 9, 7, ..., 23


Código:
#include <stdio.h>
#include <conio.h>

int main ()
{
int serie=1;
bool sw=true;
do
{
printf("%d, ",serie);
if (sw) serie+=4;
else serie-=2;
sw=!sw;
} while (serie<=23);
getch();
}

Generar 5,10,15,20,25,30,35....n
Código:
#include<stdio.h>
#include<conio.h>
int main ()
{
int n, c=1, serie=5;
printf("Cantidad de terminos: ");
scanf("%d",&n);
while(c<=n)
{
printf("%d,",serie);
serie+=5; c++;
}
getch();
}

Si n=7 generar 7,6,5,4,3,2,1


Código:
#include<stdio.h>
#include<conio.h>
int main ()
{
int n, c=1;
printf("Cantidad de terminos: ");
scanf("%d",&n);
int serie=n;
while(c<=n)
{
printf("%d,",serie);
serie--; c++;
}
getch();
}

En línea

¿Ilusión o realidad?

Darvein Re: Ejercicios resueltos C++ [programacion estructurada]


« Respuesta #2 en: 26 Febrero 2008, 18:42 »
Desconectado

Mensajes: 182 >> VECTORES <<


/*Dado el vector T de tamao n. Si el tamao es par invertir los elementos de la mitad de
los elementos
Ejemplo: v=[1][2][3][4][5][6] v(invertido)=[3][2][1][6][5][4]
*/
Código:
#include<stdio.h>
#include<conio.h>

void llenar (int V [], int d)


{
for (int i = 1 ; i <= d ; i++)
{
printf ("Inserte pos.[%d]: ",i);
scanf("%d",&V[i]);
}
}

void mostrar (int V [], int d)


{
for (int i = 1 ; i <= d ; i++)
{
printf ("[%d]",V[i]);
}
}

void invierte (int V [], int d)


{
int aux1;
int fin1 = d / 2;
for (int i = 1 ; i <= (d / 2) / 2 ; i++)
{
aux1 = V [i];
V [i] = V [fin1];
V [fin1] = aux1;
fin1--;
}

fin1 = d;
for (int j = (d / 2) + 1 ; j <= (d / 2) + 1 ; j++)
{
aux1 = V [j];
V [j] = V [fin1];
V [fin1] = aux1;
fin1--;
}
}

int main ()
{
int V[20];
int d;
printf ("Inserte dimen. del vector: "); scanf("%d",&d);
llenar (V, d);
printf ("\nVECTOR ORIGINAL: \n");
mostrar (V, d);
printf ("\n\nVECTOR LUEGO DE LA INVERSION: \n");
invierte (V, d);
mostrar (V, d);
getch();
}

/*Dado un polinomio evualuarlo en el punto x (todo en un vector)*/


Código:
#include <stdio.h>
#include <conio.h>

void llenar (int V[20], int d)


{
for (int i = 1 ; i <= d ; i++)
{
printf ("Inserte pos.[%d]: ",i);
scanf("%d",&V[i]);
}
}

void mostrar (int V[20], int d)


{
for (int i = 1 ; i <= d ; i++)
{
printf ("[%d]",V[i]);
}
}

int potencia (int b, int e)


{
int p = 1;
for (int i = 1 ; i <= e ; i++)
{
p = p * b;
}
return (p);
}

void evalua (int V [], int d, int x)


{
int s = 0;
for (int i = 1 ; i <= d ; i += 2)
{
s = s + (V [i] * potencia (x, V [i + 1]));
}
printf("\n\nX es igual a: %d",s);
}

int main ()
{
int V[20];
int d, x;
printf("Inserte dimen. del vector: ");
scanf("%d",&d);
printf ("Inserte valor de (x): ");
scanf("%d",&x);
llenar (V, d);
printf("\nVECTOR: ");
mostrar (V, d);
evalua (V, d, x);
getch();
}

En línea

¿Ilusión o realidad?

Darvein Re: Ejercicios resueltos C++ [programacion estructurada]


« Respuesta #3 en: 26 Febrero 2008, 18:44 »
Desconectado

Mensajes: 182 >> MATRICES <<


Generar la matriz:
[01][02][03][04]
[08][07][06][05]
[09][10][11][12]
Código:
#include<stdio.h>
#include<conio.h>
void llenar (int M[20][20], int f, int c)
{
int k=1;
for (int i=1;i<=f;i++)
{
if (i%2!=0)
{
for (int j=1;j<=c;j++)
{
M[i][j]=k; k++;
}
}
else
{
for (int j=c;j>=1;j--)
{
M[i][j]=k; k++;
}
}
}
}

void mostrar (int M[20][20], int f, int c)


{
for (int i=1;i<=f;i++)
{
printf("\n");
for (int j=1;j<=c;j++)
{
printf("[%d] ",M[i][j]);
}
}
}

int main ()
{
int f, c;
int M[20][20];
printf("Inserte filas de M: "); scanf("%d",&f);
printf("Inserte cols. de M: "); scanf("%d",&c);
llenar(M, f, c);
mostrar(M, f, c);
getch();
}

Generar la matriz:
[01][02][03][04]
[05][06][07][00]
[08][09][00][00]
[10][00][00][00]
Código:
#include <stdio.h>
#include <conio.h>
void llenar (int M[20][20], int d)
{
int cont=1;
for (int i=1;i<=d;i++)
{
for (int j=1;j<=d;j++)
{
if ((i+j)<=(d+1))
{M[i][j]=cont; cont++;}
else
M[i][j]=0;
}
}
}

void mostrar (int M[20][20], int d)


{
for (int i=1;i<=d;i++)
{
printf("\n");
for (int j=1;j<=d;j++)
{
printf ("[%d] ",M[i][j]);
}
}
}

int main ()
{
int d;
int M[20][20];
printf("Insert dimen: "); scanf("%d",&d);
llenar(M, d);
mostrar(M, d);
getch();
}

Dadas dos matrices A y B intercambiar los minimos de A con los maximos de B


Código:
#include <stdio.h>
#include <conio.h>

void llenar (int M[20][20], int f, int c)


{
for (int i = 1 ; i <= f ; i++)
{
for (int j = 1 ; j <= c ; j++)
{
printf ("Inserte pos[%d][%d]: ",i,j);
scanf("%d",&M[i][j]);
}
}
}

void mostrar (int M[20][20], int f, int c)


{
for (int i = 1 ; i <= f ; i++)
{
printf("\n");
for (int j = 1 ; j <= c ; j++)
{
printf ("[%d]",M[i][j]);
}
}
}

int menor (int M[20][20], int f, int c)


{
int men = M [1] [1];
for (int i = 1 ; i <= f ; i++)
{
for (int j = 1 ; j <= c ; j++)
{
if (M [i] [j] < men)
men = M [i] [j];
}
}
return (men);
}

int maximo (int M[20][20], int f, int c)


{
int max = M [1] [1];
for (int i = 1 ; i <= f ; i++)
{
for (int j = 1 ; j <= c ; j++)
{
if (M [i] [j] > max)
max = M [i] [j];
}
}
return (max);
}

void intercambiar (int A[20][20], int fa, int ca, int B[20][20], int fb, int cb)
{
int min_a = menor (A, fa, ca);
int max_b = maximo (B, fb, cb);
//para cambiar los minimos de A con los maximos de B
for (int i = 1 ; i <= fa ; i++)
{
for (int j = 1 ; j <= ca ; j++)
{
if (A[i][j] == min_a)
A[i][j]=max_b;
}
}
//para intercambiar los maximos de con los minimos de A
for (int i = 1 ; i <= fb ; i++)
{
for (int j = 1 ; j <= cb ; j++)
{
if (B[i][j] == max_b)
B[i][j]=min_a;
}
}
}

int main ()
{
int A [20] [20];
int B [20] [20];
int fa, ca, fb, cb;
printf ("Insert filas de A: "); scanf("%d",&fa);
printf ("Insert columnas de A: "); scanf("%d",&ca);
printf ("Insert filas de B: "); scanf("%d",&fb);
printf ("Insert columnas de B: "); scanf("%d",&cb);

//lectura de matrices
printf ("\nINSERTANDO DATOS EN MATRIS A: \n");
llenar (A, fa, ca);
printf ("\nINSERTANDO DATOS EN MATRIS B: \n");
llenar (B, fb, cb);
printf ("\nMATRICES ORIGINALMENTE INSERTADAS: ");
mostrar (A, fa, ca);
printf ("\n");
mostrar (B, fb, cb);
printf ("\n");
//intercambiando elementos
intercambiar (A, fa, ca, B, fb, cb);
printf ("\nMATRICES DESPUES DEL INTERCAMBIO:");
mostrar (A, fa, ca);
printf ("\n");
mostrar (B, fb, cb);
getch();
}

/*Dada una matris cuadrada invertir su diagonal principal*/


Código:
#include <stdio.h>
#include <conio.h>

void llenar (int M[20][20], int d)


{
for (int i = 1 ; i <= d ; i++)
{
for (int j = 1 ; j <= d ; j++)
{
printf ("Inserte pos[%d][%d]: ",i, j);
scanf("%d",&M [i] [j]);
}
}
}

void mostrar (int M[20][20], int d)


{
for (int i = 1 ; i <= d ; i++)
{
printf("\n");
for (int j = 1 ; j <= d ; j++)
{
printf ("[%d]",M [i] [j]);
}
}
}

void invierte (int M[20][20], int d)


{
int fin = d;
for (int i = 1 ; i <= d / 2 ; i++)
{
int aux = M [i] [i];
M [i] [i] = M [d] [d];
M [d] [d] = aux;
fin--;
}
}

int main()
{
int M [20] [20];
int d;
printf ("Inserte dimen. de la matris cuadrada: ");
scanf("%d",&d);
llenar (M, d);
printf ("\nMATRIS ORIGINAL: ");
mostrar (M, d);
printf ("\n\nMATRIS CON LA DIAGONAL PRINCIPAL INVERTIDA: ");
invierte (M, d);
mostrar (M, d);
getch();
}

/*Dada una matris cuadrada invertir su diagonal secundaria*/


Código:
#include <stdio.h>
#include <conio.h>
void llenar (int M[20][20], int d)
{
for (int i = 1 ; i <= d ; i++)
{
for (int j = 1 ; j <= d ; j++)
{
printf ("Inserte pos[%d][%d]: ",i, j);
scanf("%d",&M [i] [j]);
}
}
}

void mostrar (int M[20][20], int d)


{
for (int i = 1 ; i <= d ; i++)
{
printf("\n");
for (int j = 1 ; j <= d ; j++)
{
printf ("[%d]",M [i] [j]);
}
}
}

void invierte (int M[20][20], int d)


{
int fin = d;
for (int i = 1 ; i <= d / 2 ; i++)
{
int aux = M [i] [d];
M [i] [d] = M [d] [i];
M [d] [i] = aux;
fin--;
}
}

int main()
{
int M [20] [20];
int d;
printf ("Inserte dimen. de la matris cuadrada: ");
scanf("%d",&d);
llenar (M, d);
printf ("\nMATRIS ORIGINAL: ");
mostrar (M, d);
printf ("\n\nMATRIS CON LA DIAGONAL SECUNDARIA INVERTIDA: ");
invierte (M, d);
mostrar (M, d);
getch();
}

/*Dada dos matrices de diferentes tamanios R y S mostrar los elementos comunes de


R en S*/
Código:
#include <stdio.h>
#include <conio.h>

void llenar (int M[20][20], int f, int c)


{
for (int i = 1 ; i <= f ; i++)
{
for (int j = 1 ; j <= c ; j++)
{
printf ("Inserte pos[%d][%d]: ",i,j);
scanf("%d",&M [i] [j]);
}
}
}

void mostrar (int M[20][20], int f, int c)


{
for (int i = 1 ; i <= f ; i++)
{
printf("\n");
for (int j = 1 ; j <= c ; j++)
{
printf ("[%d]",M [i] [j]);
}
}
}

void comunes (int R[20][20], int fr, int cr, int S[20][20], int fs, int cs)
{
printf("\n\nLos elementos comunes de R en S son: ");
for (int i = 1 ; i <= fr ; i++)
{
for (int j = 1 ; j <= cr ; j++)
{
for (int k = 1 ; k <= fs ; k++)
{
for (int l = 1 ; l <= cs ; l++)
{
if (R [i] [j] == S [k] [l])
printf ("[%d]",R [i] [j]);
}
}
}
}
}

int main()
{
int R [20] [20];
int S [20] [20];
int fr, cr, fs, cs;
printf("Inserte filas de R: ");
scanf("%d",&fr);
printf("Inserte columnas de R: ");
scanf("%d",&cr);
printf("Inserte filas de S: ");
scanf("%d",&fs);
printf("Inserte columnas de S: ");
scanf("%d",&cs);

printf("\nLLENANDO MATRIS R: \n");


llenar (R, fr, cr);
printf("\nLLENANDO MATRIS S: \n");
llenar (S, fs, cs);
printf("\nLA MATRIS R : ");
mostrar (R, fr, cr);
printf("\n\nLA MATRIS S : ");
mostrar (S, fs, cs);
comunes (R, fr, cr, S, fs, cs);
getch();
}

/*Intercambiar los datos de la columna 1 con la ultima columna*/


Código:
#include <stdio.h>
#include <conio.h>

void llenar (int M[20][20], int f, int c)


{
for (int i = 1 ; i <= f ; i++)
{
for (int j = 1 ; j <= c ; j++)
{
printf ("Inserte pos:[%d][%d]: ",i,j);
scanf("%d",&M [i] [j]);
}
}
}

void mostrar (int M[20][20], int f, int c)


{
for (int i = 1 ; i <= f ; i++)
{
printf("\n");
for (int j = 1 ; j <= c ; j++)
{
printf ("[%d]",M [i] [j]);
}
}
}

void intercambiar (int M[20][20], int f, int c)


{
for (int i = 1 ; i <= f ; i++)
{
int aux = M [i] [1];
M [i] [1] = M [i] [c];
M [i] [c] = aux;
}
}

int main ()
{
int M [20] [20];
int f, c;
printf ("Inserte filas de la matris: ");
scanf("%d",&f);
printf ("Inserte columnas de la matris: ");
scanf("%d",&c);

printf ("\nLLENANDO MATRIS : \n");


llenar (M, f, c);
printf ("\nLA MATRIS ORIGINAL : ");
mostrar (M, f, c);
printf ("\n\nLA MATRICES INTERCAMBIADA : ");
intercambiar (M, f, c);
mostrar (M, f, c);
getch();
}

/* Contar el numero de digitos de cada elemento de una matris */


Código:
#include <stdio.h>
#include <conio.h>
void llenar (int M [20] [20], int f, int c)
{
for (int i = 1 ; i <= f ; i++)
{
for (int j = 1 ; j <= c ; j++)
{
printf ("Inserte pos[%d][%d]: ",i,j);
scanf("%d",&M [i] [j]);
}
}
}

void mostrar (int M [20] [20], int f, int c)


{
for (int i = 1 ; i <= f ; i++)
{
printf("\n");
for (int j = 1 ; j <= c ; j++)
{
printf ("[%d]",M [i] [j]);
}
}
}

void cuenta (int M[20][20], int f, int c)


{
for (int i = 1 ; i <= f ; i++)
{
for (int j = 1 ; j <= c ; j++)
{
int contador = 0;
int n=M[i][j];
while (n != 0)
{
n = n / 10;
contador++;
}
printf("\n[%d] tiene: %d digito(s)",M[i][j],contador);
}
}
}

int main ()
{
int M [20] [20];
int f, c;
printf ("Inserte filas de la matris: ");
scanf("%d",&f);
printf ("Inserte columnas de la matris: ");
scanf("%d",&c);

printf ("\nLLENANDO MATRIS M: \n");


llenar (M, f, c);
printf ("\nLA MATRIS: ");
mostrar (M, f, c);
printf ("\n\nCONTEO DE DIGITOS: ");
cuenta (M, f, c);
getch();
}

/*Hallar la fila y la columna del primer elemento "e" */


Código:
#include <stdio.h>
#include <conio.h>

void llenarMatris (int M[20][20], int f, int c)


{
for (int i = 1 ; i <= f ; i++)
{
for (int j = 1 ; j <= c ; j++)
{
printf ("Inserte pos[%d][%d]: ",i,j);
scanf("%d",&M [i] [j]);
}
}
}

void mostrarMatris (int M[20][20], int f, int c)


{
for (int i = 1 ; i <= f ; i++)
{
printf ("\n");
for (int j = 1 ; j <= c ; j++)
{
printf ("[%d]",M [i] [j] );
}
}
}

void busqueda (int M[20][20], int f, int c, int e)


{
int bn = 0;
for (int i = 1 ; i <= f ; i++)
{
for (int j = 1 ; j <= c ; j++)
{
if (M [i] [j] == e)
{
printf("\nEl numero: %d se encuentra en la posicion: [%d][%d] de la
matris",e, i, j);
bn = 1;
}
}
}
if (bn == 0)
printf("\nNo se encontro el numero %d en la matris :(",e);
}

int main ()
{
int M [20] [20];
int f, c, numero;
printf ("Inserte filas de la matris: ");
scanf("%d",&f);
printf ("Inserte columnas de la matris: ");
scanf("%d",&c);

printf ("\nLLENANDO MATRIS: \n");


llenarMatris (M, f, c);
printf ("\nLA MATRIZ Z: ");
mostrarMatris (M, f, c);

printf ("\n\nInserte un numero: ");


scanf("%d",&numero);
busqueda (M, f, c, numero);
getch();
}

En línea

¿Ilusión o realidad?

Darvein Re: Ejercicios resueltos C++ [programacion estructurada]


« Respuesta #4 en: 26 Febrero 2008, 18:45 »
Desconectado
>> MATRICES y VECTORES<<
Mensajes: 182
/* Dada una matris y un vector, contar la cantidad de numeros primos de ambos */
Código:
#include <stdio.h>
#include <conio.h>

void llenarMatris (int M[20][20], int f, int c)


{
for (int i = 1 ; i <= f ; i++)
{
for (int j = 1 ; j <= c ; j++)
{
printf ("Inserte pos[%d][%d]: ",i,j);
scanf("%d",&M [i] [j]);
}
}
}

void mostrarMatris (int M[20][20], int f, int c)


{
for (int i = 1 ; i <= f ; i++)
{
printf ("\n");
for (int j = 1 ; j <= c ; j++)
{
printf ("[%d]",M [i] [j] )
}
}
}

void llenarVector (int V[20], int d)


{
for (int i = 1 ; i <= d ; i++)
{
printf ("Inserte pos.[%d]: ",i);
scanf("%d",&V [i]);
}
}

void mostrarVector (int V[20], int d)


{
for (int i = 1 ; i <= d ; i++)
{
printf ("[%d]",V [i]);
}
}

int primosMatris (int M[20][20], int f, int c)


{
int cant = 0;
for (int i = 1 ; i <= f ; i++)
{
for (int j = 1 ; j <= c ; j++)
{
int cc = 0;
for (int k = 1 ; k <= M [i] [j] ; k++)
{
if (M [i] [j] % k == 0)
cc++;
}
if (cc == 2)
cant++;
}
}
return (cant);
}
int primosVector (int V[20], int d)
{
int cant = 0;
for (int i = 1 ; i <= d ; i++)
{
int c = 0;
for (int j = 1 ; j <= V [i] ; j++)
{
if (V [i] % j == 0)
c++;
}
if (c == 2)
cant++;
}
return (cant);
}

int main()
{
int M [20] [20];
int V [20];
int f, c, d;
printf ("Inserte filas de la matris: ");
scanf("%d",&f);
printf ("Inserte columnas de la matris: ");
scanf("%d",&c);
printf ("Inserte dimension del vector: ");
scanf("%d",&d);

printf ("\nLLENANDO MATRIS: \n");


llenarMatris (M, f, c);
printf ("\nLLENANDO EL VECTOR: \n");
llenarVector (V, d);

printf ("\nLA MATRIS: ");


mostrarMatris (M, f, c);
printf ("\n\nEL VECTOR: \n");
mostrarVector (V, d);

int primos = primosMatris (M, f, c) + primosVector (V, d);


printf ("\n\nLA CANTIDAD DE NUMEROS PRIMOS QUE HAY EN LOS ARREGLOS ES:
%d",primos);
getch();
}

/*Dada la matrix de m*n y el vector de tamanio n, determinar que columna de la


matris
es igual al vector*/
Código:
#include <stdio.h>
#include <conio.h>

void llenarMatris (int M[20][20], int f, int c)


{
for (int i = 1 ; i <= f ; i++)
{
for (int j = 1 ; j <= c ; j++)
{
printf ("Inserte pos[%d][%d]: ",i,j);
scanf("%d",&M [i] [j]);
}
}
}
void mostrarMatris (int M[20][20], int f, int c)
{
for (int i = 1 ; i <= f ; i++)
{
printf ("\n");
for (int j = 1 ; j <= c ; j++)
{
printf ("[%d]",M [i] [j] );
}
}
}

void llenarVector (int V[20], int d)


{
for (int i = 1 ; i <= d ; i++)
{
printf ("Inserte pos.[%d]: ",i);
scanf("%d",&V [i]);
}
}

void mostrarVector (int V[20], int d)


{
for (int i = 1 ; i <= d ; i++)
{
printf ("[%d]",V [i]);
}
}

void procedure (int M[20][20], int f, int c, int V[20], int d)


{
for (int i = 1 ; i <= f ; i++)
{

int sw = 1;
for (int j = 1 ; j <= c ; j++)
{
for (int k = 1 ; k <= d ; k++)
{
if (M [j] [i] != V [k])
sw = 0;
}
}
if (sw == 1)
printf ("\n\nLa columna %d es igual al vector",i);
}
}

int main ()
{
int M [20] [20];
int V [20];
int f, d;
printf ("Inserte filas de la matris: ");
scanf("%d",&f);
printf ("Inserte dimension del vector: ");
scanf("%d",&d);

printf ("\nLLENANDO MATRIS: \n");


llenarMatris (M, f, d);
printf ("\nLLENANDO EL VECTOR: \n");
llenarVector (V, d);

printf ("\nLA MATRIS: ");


mostrarMatris (M, f, d);
printf ("\n\nEL VECTOR: \n");
mostrarVector (V, d);

procedure (M, f, d, V, d);


getch();
}

/*Dada una matris Z almacenar en un vector A la suma por sus columnas


y en un vector B la suma por sus filas */
Código:
#include <stdio.h>
#include <conio.h>

void llenarMatris (int M[20][20], int f, int c)


{
for (int i = 1 ; i <= f ; i++)
{
for (int j = 1 ; j <= c ; j++)
{
printf ("Inserte pos[%d][%d]: ",i,j);
scanf("%d",&M [i] [j]);
}
}
}

void mostrarMatris (int M[20][20], int f, int c)


{
for (int i = 1 ; i <= f ; i++)
{
printf ("\n");
for (int j = 1 ; j <= c ; j++)
{
printf ("[%d]",M [i] [j] );
}
}
}

void llenarVector (int V[20], int d)


{
for (int i = 1 ; i <= d ; i++)
{
printf ("Inserte pos.[%d]: ",i);
scanf("%d",&V [i]);
}
}

void mostrarVector (int V[20], int d)


{
for (int i = 1 ; i <= d ; i++)
{
printf ("[%d]",V [i]);
}
}

void vectorA (int M[20][20], int f, int c, int A[20], int d)


{
for (int i = 1 ; i <= f ; i++)
{
int suma = 0;
for (int j = 1 ; j <= c ; j++)
{
suma = suma + M [j] [i];
}
A [i] = suma;
}
}
void vectorB (int M[20][20], int f, int c, int B[20], int d)
{
for (int i = 1 ; i <= f ; i++)
{
int suma = 0;
for (int j = 1 ; j <= c ; j++)
{
suma = suma + M [i] [j];
}
B [i] = suma;
}
}

int main ()
{
int Z [20] [20];
int A [20];
int B [20];
int f, c;
printf ("Inserte filas de la matris: ");
scanf("%d",&f);
printf ("Inserte columnas de la matris: ");
scanf("%d",&c);

printf ("\nLLENANDO MATRIS: \n");


llenarMatris (Z, f, c);

printf ("\nLA MATRIZ Z: ");


mostrarMatris (Z, f, c);

printf ("\n\nSUMA POR COLUMNAS DE LA MATRIS (vector A): \n");


vectorA (Z, f, c, A, c);
mostrarVector (A, c);
printf ("\n\nSUMA POR FILAS DE LA MATRIS (vector B): \n");
vectorB (Z, f, c, B, f);
mostrarVector (B, f);
getch();
}
ESTRUCTURAS SECUENCIALES
Es aquella en donde las instrucciones del programa se ejecutaran una tras otra, en el orden en que estas aparecen sin que varíe por
alguna condición.

Pseudocódigo.- Es utilizado para describir algoritmos en un lenguaje simplificado humano no depende de ningún lenguaje de
programación.

En Pseudocódigo:

Inicio

acción 1

acción 2

acción n

Fin

Para entenderlo mejor haré un programa que reciba como entrada la base y la altura de un triángulo, el programa debe calcular el
área y mostrarlo por la pantalla.

En seria así Pseudocódigo:

Inicio

Escribir(“Ingrese base”)

Leer(base)

Escribir(“Ingrese altura”)

Leer(altura)

area← (base*altura)/2

Escribir(“El área del triangulo es”, area)

Fin

Explicación:

1. Pedimos los datos de entrada que se requieren, calculamos el área y lo mostramos por pantalla.
2. Escribir(“ ”) : Lo que este dentro de los paréntesis es lo que se mostrara en pantalla
3. Leer() : Aquí se lee el dato ingresado por teclado en la variable que esta dentro del paréntesis.
4. ← : la flecha nos indica que el valor que se encuentra en la parte derecha será asignada a la variable (la variable es
la que contiene el dato) que se encuentra al lado izquierdo.

Trabajaré con devC++. Lo puedes descargar gratis de internet pesa no mas de 10 mb y es de fácil instalación.

CODIGO EN Dev C++

#include<iostream.h>
int main(){

system("pause");
return 0;
}

Por ahora este sera lo minimo que utilizaremos para cualquier programa en Dev C++.

Cosiste en :

1. "iostream.h" Es una libreria nos permite la salida y entrada de datos en nuestro programa lo utilizaremos a menudo.
2. int main(){ } : Es el método principal y lo que esta dentro de los corchetes el todo el código de nuestro
programa, explicare sobre métodos esto en otro tema que traten exclusivamente de éstos.
3. system("pause"); es para que al terminarse de ejecutar nuestro programa este no se cierre sino se mantenga ahí hasta
que aprietes un botón.
4. return 0; quiere decir retorna cero se pone al final.

El Código en c++ de nuestro programa que calcula el área de un triangulo quedaría así:

#include<iostream.h>

int main(){

int base;

int altura;
float area;

cout<<"Ingrese base : ";

cin>>base;

cout<<"Ingrese altura : ";

cin>>altura;

area=(base*altura)/2.0;

cout<<"El area del triangulo es :"<<area<<endl;

system("pause");

return 0;

Explicación:

Declaramos variables que van ha contener la altura, base y el areal del triangulo (toda sentencia debe terminar en punto y
coma)

int base;

int altura;

float area;

Siempre se tienen que declarar variables antes de utilizarlas, la forma de declarar una variable en C++ es:

Tipo nombre;
Tipo : Es el tipo de variable que se eligiera dependiendo del dato que se desea guardar(int (entero), float(de coma flotante),
bool (booleano), char (caracter), entre otros).

El signo ” = “ es en DevC++ de asignación y no de igualdad quiere decir que el valor de (base*altura)/2.0 será asignado a la
variable area.

Al final mostramos el area.

cout<< : Es para la salida en pantalla.

cin>> : Es para entrada del teclado (lo que se lee desde teclado).

CODIGO EN JAVA (NetBeans 6.9.1)

...en proceso

Este otro algoritmo es para el cálculo del volumen de una esfera:

#include<iostream.h>

int main(){

int radio;

float volumen;

float pi=3.1416;

cout<<"Ingrese radio : ";

cin>>radio;

volumen=(4/3)*pi*radio*radio*radio;

cout<<"El volumen de la esfera es :"<<volumen<<endl;


system("pause");

return 0;

La diferencia en que al momento de declarar la variable pi le asignamos un valor.

<<endl sirve para dar un salto siguiente línea de abajo.

Eso seria todo en Estructuras secuenciales como ves cada instrucción se ejecutara una tras otra si que varia dicha secuencia.

Eso es todo por este tema.

contuna….Tipos de Datos y Estructuras selectivas

Cualquier duda o sugerencia pregunten y/o comenten... para mejorar el blog.

Cálculo de Generatriz, Área total y Volumen de un Cono en base a


su radio y su altura.
// Se ingresa la Altura y el Radio y el programa realiza el cálculo de la Generatiz, Área y Volumen, utilizando funciones,
struct y typedef

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

typedef struct{
float g;
float h;
float r;
}linea;

typedef struct{
linea susrectas;
float area;
float volumen;
}cono;

// llamada para ingresar datos y calcular la generatriz


void ingreso_datos(cono *micono){
printf("INGRESO DE DATOS: \n");
printf("Ingrese altura \n");
scanf("%f",&micono->susrectas.h);

printf("Ingrese radio \n");


scanf("%f",&micono->susrectas.r);

micono->susrectas.g = sqrt(micono->susrectas.h * micono->susrectas.h + micono->susrectas.r * micono->susrectas.r);


printf("\n La generatriz es %g \n \n", micono->susrectas.g);

void calculo_area(cono *micono){


float resultado;

printf("CALCULO DE AREA: \n");


resultado = 3.14 * micono->susrectas.r * (micono->susrectas.g + micono->susrectas.r);
printf("El area total del cono es %g \n \n",resultado);
}

void calculo_volumen(cono *micono){


float volumen;

printf("CALCULO DE VOLUMEN: \n");


volumen = (3.14 * micono->susrectas.r * micono->susrectas.r * micono->susrectas.h)/3;
printf("El volumen del cono es %g \n \n",volumen);
}

int main(){
// defino lo q voy a usar
cono micono;

// se llama a la funcion ingreso de datos


ingreso_datos(&micono);

// se llama a la funcion para calcular su area


calculo_area(&micono);

// se llama a la funcion para calcular el volumen


calculo_volumen(&micono);

return 0;
}

Para análisis

Función Si en lenguaje C (Función if... else.. else if..)


// Si (comparación), ejecutar código
if (comparación)
{
Código;
}

//-----------------------------

// Si (comparación), ejecutar código1, sino ejecutar código2.


if (comparación)
{
Código1;
}
else
{
Código2;
}

//-----------------------------

// Si (comparación1), ejecutar código1, sino si (comparación2) ejecutar código2, sino ejecutar código3.
if (comparación1)
{
código1;
}
else if(comparación2)
{
código2;
}
else
{
código3;
}
Enviar esto por correo electrónicoBlogThis!Compartir en TwitterCompartir en FacebookCompartir en Pinterest

Etiquetas: Arduino, Esp8266, Programación en Lenguaje C

Ejemplo de Conversión de Temperatura con Funciones en Lenguaje


C
El siguiente ejemplo muestra cómo pasar a distintas escalas la temperatura ingresada

Primero se pedirá por consola que el usuario ingrese un valor de temperatura.

Segundo se pedirá por consola que el usuario ingrese un número del 1 al 3, para indicar a que escala pertenecer la
temperatura.
Tercero, la función si anidada evaluará a que función llamar, dichas funciones contienen las fórmulas correspondientes
para la conversión según sea lo solicitado, y graban los nuevos datos, aquí se utiliza punteros para pasar el vector dentro
de las funciones.

Cuatro, el programa sigue corriendo dentro de la función principal main, y se muestra por pantalla los datos de las tres
temperaturas.

Al pie de este post se encuentran las fórmulas de conversión

Código:

#include <stdio.h>

typedef struct{ // define un tipo de datos llamado temperatura

float datos[3];

}temperatura;

// Fórmulas

void de_celsius (temperatura *vector1){ // Esta funcion graba los datos en grados Kelvin y Grados Fahrenheit

vector1->datos[1] = 9 * vector1->datos[0] / 5 + 32;

vector1->datos[2] = vector1->datos[0] + 273.15;

void de_fahrenheit (temperatura *vector1){ // Esta funcion graba los datos en grados Kelvin y Grados Celsius

vector1->datos[0] = (5 * vector1->datos[1] -160)/9;

vector1->datos[2] = (5 * vector1->datos[1] -160)/9 + 273.15;

}
void de_kelvin (temperatura *vector1){ // Esta funcion graba los datos en grados Celsius y Grados Fahrenheit

vector1->datos[0] = vector1->datos[2] - 273.15;

vector1->datos[1] = (9 * ( vector1->datos[2] -273.15))/5 + 32;

int main() {

temperatura vector1; // Se define que vector1 es de tipo temperatura

float dato; // se utiliza esta variable para almacenar temporalmente el dato de temperatura ingresado

int escala; // se utiliza esta variable para almacenar temporalmente el valor para indicar la escala

printf("Ingrese la temperatura \n");

scanf("%f",&dato); // Se solicita al usuario ingresar la temperatura por consola

printf("\n En que escala esta el dato? \n Ingrese un numero para indicar la escala a la cual corresponde \n 1 para Grados
Celsius 'Grados Centigrados' \n 2 para Grados Fahrenheit \n 3 para Grados Kelvin \n");

scanf("%d",&escala); // Se solicita al usuario ingresar un número del 1 al 3 correspondiente a la escala

// si anidados que evaluan el dato ingresado como referencia de escala y luego llaman a una funcion

if (escala == 1) {

vector1.datos[0] = dato;

de_celsius(&vector1);

} else if (escala == 2) {

vector1.datos[1] = dato;

de_fahrenheit(&vector1);

} else if (escala == 3){

vector1.datos[2] = dato;

de_kelvin(&vector1);

// Muestra por pantalla las temperaturas

printf("\n La temperatura en Grados Celsius es %g \n La temperatura en Grados Fahrenheit es %g \n La temperatura en


Grados Kelvin es %g", vector1.datos[0],vector1.datos[1],vector1.datos[2]);

return 0;
}

Clic para ampliar las fórmulas de Conversión de temperatura

Enviar esto por correo electrónicoBlogThis!Compartir en TwitterCompartir en FacebookCompartir en Pinterest

Etiquetas: Programación en Lenguaje C

Ejemplo de cálculo de volumen y superficie de un triángulo con uso


de struct, typedef y funciones con punteros

#include <stdio.h>
/*
a=(1,0,1)
b=(5,0,1)
c=(3,0,5)
d=(1,5,1)

Superficie del triángulo base = (base * altura del triangulo)/2 = 4*4/2=8cm2.


Volumen = superficie * lado A-D = 8*5 = 40cm3.
*/

// Defino los tipos


typedef struct{
int x;
int y;
int z;
}punto;

typedef struct{
punto a;
punto b;
punto c;
punto d;
}triangulo;
// ...................

// Función para cálculo de la superficie.


int superficie(triangulo *mi_triangulo){
int base,altura;
int superficie;

base = (mi_triangulo->b.x - mi_triangulo->a.x);


altura = (mi_triangulo->c.z - mi_triangulo->b.z);
superficie = (base * altura)/2;

printf("La Superficie es %d cm2", superficie);

return superficie;
}

// Función para cálculo del volumen.


void volumen(triangulo *mi_triangulo,int superficie_del_triangulo){
int altura_triangulo, volumen;

altura_triangulo = (mi_triangulo->d.y - mi_triangulo->a.y);


volumen = superficie_del_triangulo * altura_triangulo;
printf(" y su Volumen es %d cm3 \n", volumen);
}

int main() {
// defino lo que voy a usar
triangulo mi_triangulo;
int superficie_del_triangulo;

// Cargo los datos


mi_triangulo.a.x = 1;
mi_triangulo.a.y = 0;
mi_triangulo.a.z = 1;

mi_triangulo.b.x = 5;
mi_triangulo.b.y = 0;
mi_triangulo.b.z = 1;
mi_triangulo.c.x = 3;
mi_triangulo.c.y = 0;
mi_triangulo.c.z = 5;

mi_triangulo.d.x = 1;
mi_triangulo.d.y = 5;
mi_triangulo.d.z = 1;
//...........................

// Se llama a la función de cálculo de superficie, retorna el valor calculado.


superficie_del_triangulo = superficie(&mi_triangulo);

// Se llama directamente a la función de cálculo del volumen, no devuelve nada.


volumen(&mi_triangulo,superficie_del_triangulo);

return 0;
}

Cálculo de Generatriz, Área total y Volumen de un Cono en base a


su radio y su altura.

// Se ingresa la Altura y el Radio y el programa realiza el cálculo de la Generatiz, Área y Volumen, utilizando funciones,
struct y typedef

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

typedef struct{
float g;
float h;
float r;
}linea;

typedef struct{
linea susrectas;
float area;
float volumen;
}cono;

// llamada para ingresar datos y calcular la generatriz


void ingreso_datos(cono *micono){
printf("INGRESO DE DATOS: \n");
printf("Ingrese altura \n");
scanf("%f",&micono->susrectas.h);

printf("Ingrese radio \n");


scanf("%f",&micono->susrectas.r);

micono->susrectas.g = sqrt(micono->susrectas.h * micono->susrectas.h + micono->susrectas.r * micono->susrectas.r);


printf("\n La generatriz es %g \n \n", micono->susrectas.g);

void calculo_area(cono *micono){


float resultado;

printf("CALCULO DE AREA: \n");


resultado = 3.14 * micono->susrectas.r * (micono->susrectas.g + micono->susrectas.r);
printf("El area total del cono es %g \n \n",resultado);
}

void calculo_volumen(cono *micono){


float volumen;

printf("CALCULO DE VOLUMEN: \n");


volumen = (3.14 * micono->susrectas.r * micono->susrectas.r * micono->susrectas.h)/3;
printf("El volumen del cono es %g \n \n",volumen);
}

int main(){
// defino lo q voy a usar
cono micono;

// se llama a la funcion ingreso de datos


ingreso_datos(&micono);

// se llama a la funcion para calcular su area


calculo_area(&micono);

// se llama a la funcion para calcular el volumen


calculo_volumen(&micono);
return 0;
}

Operadores Lógicos en Lenguaje C


//Los operadores son los siguientes: "y", "o" y el "no" (en inglés "and", "or" y "not")
c1 && c2 // c1 y c2
c1 || c2 // c1 o c2
!c1 // No c1

Ejemplo 2 de uso de Struct y función en Lenguaje C


#include <stdio.h>

struct punto{
int x;
int y;
};

struct recta{
struct punto A;
struct punto B;
};

int mifuncion(struct recta *r){


printf("La variable y del Pto B de la RECTA tiene : %d \n", r->B.y);
printf("La variable x del Pto B de la RECTA tiene : %d \n", r->B.x);

return 0;
}

// ------------------------
int main() {

struct recta milinea1;

// doy valor a los puntos de la recta


milinea1.A.x = 1;
milinea1.A.y = 2;

milinea1.B.x = 3;
milinea1.B.y = 4;

// envío a la función "mifuncion" por parámetros la linea completa "milinea1"

mifuncion(&milinea1);
return 0;
}

Ejemplo uso de Struct y función en Lenguaje C


#include <stdio.h>

typedef struct {
int x, y;
} punto;
typedef struct {
punto A;
punto B;
} recta;

struct recta{

};

void mifuncion(recta *r){


printf("La variable y del Pto B de la RECTA tiene : %d \n", r->B.y);
printf("La variable x del Pto B de la RECTA tiene : %d \n", r->B.x);

int main() {

recta milinea1;

// doy valor a los puntos de la recta


milinea1.A.x = 1;
milinea1.A.y = 2;

milinea1.B.x = 3;
milinea1.B.y = 4;

// envío a la función "mifuncion" por parámetros la linea completa "milinea1"

mifuncion(&milinea1);
return 0;
}

Editor y Compilador para lenguaje C


Pasar por parámetros la dirección de memoria de una variable a una
función. Punteros en Lenguaje C
// Puntero hacia una función
#include <stdio.h>
void increm5(int * b){ // función sin retorno, recibe la dirección de memoria de la variable b
*b = *b + 5; // sumo 5 a la variable b (el asterisco es para recibir la dirección de memoria)
}

int main() {

int b; // declaro la variable b


printf("ingrese un valor ");
scanf("%d",&b); // se lee un valor desde el teclado y se almacena en b
increm5(&b); // se llama a la función increm5, y se le pasa la dirección de memoria de b
printf("\n el valor incrementado en 5 es %d ",b); // imprime un texto y la variable b

return 0;
}

Raíz dentro de una función, con librería de matemática.


Programación en Lenguaje C
// Ejemplo con librería de matemática math.h
// Uso de Raíz dentro de una función
// Uso de variables enteras
#include <stdio.h>
#include <math.h>

int matematica(int num){ // función


int j = sqrt(num); // raiz

return j; //devuelve
}

int main() {
int nn,n;
scanf("%i",&nn);
n = matematica(nn);

printf("%i", n);
return 0;
}

Ejemplo Completo de Struct, programación en Lenguaje C


// struct permite definir un tipo de dato personalizado

#include <stdio.h>

struct punto{ // tipo de dato punto


int x;
int y;
};

struct recta{ // tipo de dato recta


struct punto A;
struct punto B;

};

int main() {
// defino las variables
struct punto uno; // defino variable de tipo punto
struct punto dos; // defino variable de tipo punto
struct recta lineal; // defino variable de tipo recta

// asigno datos
uno.x = 1; // asigno varlor a la variable uno
uno.y = 2; // asigno valor a la variable uno

dos.x = 3; // asigno varlor a la variable dos


dos.y = 0; // asigno varlor a la variable dos

lineal.A = uno; // asigno valor a lineal


lineal.B = dos; // asigno valor a lineal

return 0;
}
Ej Suma de dos números enteros en una función, en lenguaje C
#include<stdio.h>

int sumaValores(int n1, int n2){ // aquí comienza la función, de tipo entero, se llama sumaValores y recibe por parámetros
dos números enteros.
int sumatoria; //declaramos un entero llamado sumatoria

sumatoria = n1 + n2; // sumatoria guarda el resultado de la suma de los valores pasados por parámetros

return sumatoria; // la función devuelve sumatoria


}

int main (){ // programa principal

int num1, num2, resultado; // declaración de variables para números enteros

printf("Ingrese el primer valor"); // solicita el primer valor


scanf("%d",&num1); // lee del teclado el primer valor

printf("Ingrese el segundo valor"); // solicita el segundo valor


scanf("%d",&num2); // lee del teclado el segundo valor

resultado = sumaValores(num1, num2); // la variable resultado llama a la función y almacena su retorno, al llamarla, se
envía por parámetros los valores ingresados.
printf("La suma de los valores %d y %d es: %d", num1,num2,resultado); // se muestra por pantalla un mensaje con los
valores de las variables
return 0;
}
Enviar esto por correo electrónicoBlogThis!Compartir en TwitterCompartir en FacebookCompartir en Pinterest

Etiquetas: Programación en Lenguaje C

Leer del teclado y Escribir por Pantalla en Lenguaje C


scanf("%d", &variable);
printf("Esto imprime la variable: %d", variable);

%d indica que se trabaja con un número entero

Ejemplos:

While en Lenguaje C
// Ejemplo de While (Mientras)

#include <stdio.h>

int main()
{
int contador;

contador = 1; // Inicialización del contador


while ( contador <= 10 ) // Condición Mientras
{
printf( "%d ", contador ); // Salida por pantalla
contador++; // Incremento del contador
}
return 0;
}

Secuencias de Escape en Lenguaje C


Lista de secuencias de escape:
En C hay algunos caracteres especiales que se usan frecuentemente. Estos caracteres tiene una representación
especial. Algunos de ellos son:

\n nueva línea (como hace tecla Enter)


\b retroceso (Como hace tecla backspace)
\t tabulación (Como hace tecla tab)
\r retrorno de carro (Como lo hace tecla Inicio)
\' comilla simple
\" comillas
\\ barra
\? interrogación
\nnn donde nnn es cualquier caracter del código ASCII, expresado en octal ej \100 es @
\xnn donde nn es el código ASCII, expresado en Hexadecimal ej \x40 es @

Tabla de Códigos

Enviar esto por correo electrónicoBlogThis!Compartir en TwitterCompartir en FacebookCompartir en Pinterest

Etiquetas: Programación en Lenguaje C

Operadores Aritméticos y Lógicos en lenguaje C


Operadores lógicos:Se pueden hacer comparaciones utilizando los siguientes operadores:
> Mayor que
>= Mayor o igual que
< Menor que
<= Menor o igual que
== Igual que
!= No igual que
&& Función lógica Y
|| Función lógica O
! Función lógica NO

Operadores aritméticos:Los operadores que se pueden utilizar con variables int y float son:
+ Suma
- Resta
* Multiplicación
/ División
% Módulo (Resto de la división)
++ Incrementa en 1
-- Decrementa en 1

Orden de prioridad de los operadores:

1. En primer lugar se realizarán las operaciones indicadas entre paréntesis.


Luego la negación.
2. Después las multiplicaciones, divisiones y el resto de la división.
3. Finalmente, las sumas y las restas.

En caso de tener igual prioridad, se analizan de izquierda a derecha

Variables en lenguaje C
Tener en cuenta de que toda variable debe ser declarada.

Nombres de las variables:


A estas, no se les puede dar cualquier nombre, deben seguir estas reglas:

 No se pueden poner más que letras de la 'a' a la 'z' (la ñ no vale), números y el símbolo '_'. Los acentos no
valen.
 No se pueden poner signos de admiración, ni de interrogación...
 El nombre de una variable puede contener números, pero su primer carácter no puede serlo.

Tipos de Datos:
Para declara una variable es necesario indicar qué tipo de dato va a contener. Los tipos de datos que permite el lenguaje
C son:
 char Almacena un solo carácter ASCII como A, B, C, ... a, b, c, ... 1, 2, ...;( )
 int Almacena un valor numérico entero (integer). Rango [-32768, 32768]
 float Almacena un valor numérico real, con decimales. Rango [3.4e-38 , 3.4e38]
 double (flotante de doble precisión)
 Void Sin valor

La función printf y las variables:;Si queremos mostrar por pantalla el valor de una variable utilizando printf debemos
utilizar unos caracteres especiales según el tipo de dato que queramos mostrar:
 %i y %d Sirven para imprimir variables de tipo int o entero.
 %c Sirve para imprimir variables de tipo char o caracter.
 %f Sirve para imprimir variables de tipo float o double (Real)
 %g Muestra un real quitando los ceros que están demás
 %s Sirve para imprimir variables de tipo Cadena
Otros más:
 %ld Entero Largo
 %u Decimal sin signo
 %lf Doble Posición
 %h Entero Corto
 %o Octal
 %x Hexadecimal
 %e Notación Científica
 %p Puntero
 %% Imprime Porcentaje

Comando auxiliar para pausar la pantalla: system ("pause");


...........................................................................................................

// Ejemplo de Variable Entera ( int )

#include <stdio.h>

int main() {
// declaración de las variables
int nom_variable; // int es Entero

// Inicializarla (darle un valor ej 5)


nom_variable = 5;

printf("Valor de mi variable entera %i \n", nom_variable); // printf es imprimir por pantalla // %i es lo que indica que se
debe mostrar la variable como entero // \n hará un salto de línea luego de escribir el texto

return 0;
}

Aquí te dejo el código de fuente del programa (volumenes.cpp).

1 #include <iostream>
2 using namespace std;
3 #include <cmath>
4 #include <cstdlib>
5
6 int main()
7 {
8 double altura, radio, vcono, vcilindro;
9 char pregunta;
10 const double pi = 3.1416;
11 cout << "Introduzca el RADIO del cono y del cilindro: ";
12 cin >> radio;
13 cout << "Introduzca la ALTURA del cono y del cilindro: ";
14 cin >> altura;
15
16 if (radio > 0 && altura > 0)
17 {
18 vcono = (altura * pi * pow(radio, 2)) / 3; // Fórmula para calcular el volumen del cono
19 vcilindro = altura * pi * pow(radio, 2); // Fórmula para calcular el volumen del cilindro
20 cout << "\n\nEl volumen del CONO de radio " << radio << " y altura " << altura << " es: " << vcono << " u^3" << endl;
21 // Imprime el resultado
22 cout << "El volumen del CILINDRO de radio " << radio << " y altura " << altura << " es: " << vcilindro << " u^3" <<
23 endl; // Imprime el resultado
24 }
25 else
26 {
27 cout << endl << endl << "El valor introducido NO ES CORRECTO, debe introducir un numero positivo > 0.";
28 while (radio <= 0 || altura <= 0) // Comprueba que el resultado sigue siendo incorrecto para preguntar si desea
29 repetir el cálculo
30 {
31 cout << endl << "Quieres intentarlo de nuevo? S/N: ";
32 cin >> pregunta;
33 if (pregunta == 'S' || pregunta == 's') // Comprueba que el usuario desea repetir el cálculo
34 {
35 cout << endl << "Introduzca el RADIO del cono y del cilindro: ";
36 cin >> radio;
37 cout << "Introduzca la ALTURA del cono y del cilindro: ";
38 cin >> altura;
39 if (radio > 0 && altura > 0)
40 {
41 vcono = (altura * pi * pow(radio, 2)) / 3;
42 vcilindro = altura * pi * pow(radio, 2);
43 cout << endl << endl << "El volumen del CONO es: " << vcono << " u^3" << endl;
44 cout << "El volumen del CILINDRO es: "<< vcilindro << " u^3" << endl;
45 }
46 else
47 {
48 cout << endl << endl << "El valor introducido NO ES CORRECTO, debe introducir un
49 numero positivo > 0.";
50 }
51 }
52 else
53 {
54 return 0; // Finaliza el programa porque el usuario no quiere continuar
55 }
56 }
57
}
system("PAUSE");
return 0;
}
Actualización (21/10/2015). También programé una aplicación que calculaba el área de triángulo
pidiendo al usuario por teclado los valores de dos lados y el ángulo comprendido entre ellos. Consta
de un control de datos y también pregunta al usuario si desea repetir la introducción de datos hasta
que estos sean válidos.
Aquí te dejo el código de fuente del programa (areatriangulo.cpp).
Cálculo del área triángulo (2 lados y ángulo)

1 #include <iostream>
2 using namespace std;
3 #include <cmath>
4 #include <cstdlib>
5
6 int main()
7 {
8 double lado1, lado2, angulo, radianes, area;
9 char pregunta;
10 const double pi = 3.1416;
11
12 cout << "-----------------------------------------------------------------------" << endl;
13 cout << "Bienvenido a esta calculadora de areas de triangulos." << endl;
14 cout << "-----------------------------------------------------------------------" << endl << endl;
15 cout << "- Introduzca uno de los lados del triangulo: ";
16 cin >> lado1;
17 cout << endl <<"- Introduzca el otro lado del triangulo: ";
18 cin >> lado2;
19 cout << endl << "- Introduzca el angulo existente entre ambos lados: ";
20 cin >> angulo;
21
22 if (lado1 > 0 && lado2 > 0 && angulo > 0)
23 {
24 radianes = angulo * pi / 180;
25 area = 0.5 * lado1 * lado2 * sin (radianes);
26 cout << endl <<"-----------------------------------------------------------------------" << endl;
27 cout << "EL AREA DEL TRIANGULO INDICADO ES: " << area << " u^2" << endl;
28 cout << "-----------------------------------------------------------------------" << endl << endl;
29 }
30 else
31 {
32 cout << endl << "-----------------------------------------------------------------------" << endl;
33 cout << "Alguno/s de los valores introducidos no son correctos, debe introducir numeros > 0.";
34 while (lado1 <= 0 || lado2 <= 0 || angulo <= 0) // Comprueba que el resultado sigue siendo incorrecto para preguntar
35 si desea repetir el cálculo
36 {
37 cout << endl << "Quieres intentarlo de nuevo? S/N: ";
38 cin >> pregunta;
39 if (pregunta == 'S' || pregunta == 's') // Comprueba que el usuario desea repetir el cálculo
40 {
41 cout << "-----------------------------------------------------------------------" << endl << endl;
42 cout << "- Introduzca uno de los lados del triangulo: ";
43 cin >> lado1;
44 cout << endl << "- Introduzca el otro lado del triangulo: ";
45 cin >> lado2;
46 cout << endl << "- Introduzca el angulo existente entre ambos lados: ";
47 cin >> angulo;
48 if (lado1 > 0 && lado2 > 0 && angulo > 0)
49 {
50 radianes = angulo * pi / 180;
51 area = 0.5 * lado1 * lado2 * sin (radianes);
52 cout << endl << "-----------------------------------------------------------------------" << endl;
53 cout << "EL AREA DEL TRIANGULO INDICADO ES: " << area << " u^2" << endl;
54 cout << "-----------------------------------------------------------------------" << endl << endl;
55 }
56 else
57 {
58 cout << endl << "-----------------------------------------------------------------------" << endl;
59 cout << "Alguno/s de los valores introducidos no son correctos, debe introducir numeros
60 > 0.";
61 }
62 }
63 else
64 {
65 return 0; // Finaliza el programa porque el usuario no quiere continuar
66 }
67 }
68
69 }
70 system("PAUSE");
return 0;
}

S-ar putea să vă placă și