elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Ejercicios resueltos C++ [programacion estructurada]
0 Usuarios y 3 Visitantes están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Ejercicios resueltos C++ [programacion estructurada]  (Leído 622,814 veces)
Darvein

Desconectado Desconectado

Mensajes: 182



Ver Perfil WWW
Ejercicios resueltos C++ [programacion estructurada]
« 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

Desconectado Desconectado

Mensajes: 182



Ver Perfil WWW
Re: Ejercicios resueltos C++ [programacion estructurada]
« Respuesta #1 en: 26 Febrero 2008, 18:41 »

>> 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

Desconectado Desconectado

Mensajes: 182



Ver Perfil WWW
Re: Ejercicios resueltos C++ [programacion estructurada]
« Respuesta #2 en: 26 Febrero 2008, 18:42 »

>> 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

Desconectado Desconectado

Mensajes: 182



Ver Perfil WWW
Re: Ejercicios resueltos C++ [programacion estructurada]
« Respuesta #3 en: 26 Febrero 2008, 18:44 »

>> 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

Desconectado Desconectado

Mensajes: 182



Ver Perfil WWW
Re: Ejercicios resueltos C++ [programacion estructurada]
« Respuesta #4 en: 26 Febrero 2008, 18:45 »

>> MATRICES y VECTORES<<

/* 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();
}
En línea

¿Ilusión o realidad?
darkness7977

Desconectado Desconectado

Mensajes: 33


Ver Perfil
Re: Ejercicios resueltos C++ [programacion estructurada]
« Respuesta #5 en: 29 Febrero 2008, 00:47 »

hey...que bien y que casualidad recien en estos dias han iniciado la clase de progrmacion estructurada (apenas hoy comenzare a meterle mano al manual y al compilador) gracias por los codigos,me serviran para analizarlos ::) :D
En línea

Darvein

Desconectado Desconectado

Mensajes: 182



Ver Perfil WWW
Re: Ejercicios resueltos C++ [programacion estructurada]
« Respuesta #6 en: 29 Febrero 2008, 19:03 »

Citar
gracias por los codigos,me serviran para analizarlos

Tengo mas, luego los subire tengo sobre recurisividad, matrices, vectores, archivos, cadenas etc. xD

Que bueno saber que esos ejercicios le sirvio a alguien.
En línea

¿Ilusión o realidad?
AxXioma


Desconectado Desconectado

Mensajes: 796


Algunos pájaros no pueden ser enjaulados...


Ver Perfil
Re: Ejercicios resueltos C++ [programacion estructurada]
« Respuesta #7 en: 29 Febrero 2008, 20:01 »

Gracias, buen aporte.
En línea





.::Cuanto mas conocimiento adquieres, más te das cuenta del que hay a tu alrededor::.
Sonex


Desconectado Desconectado

Mensajes: 350



Ver Perfil
Re: Ejercicios resueltos C++ [programacion estructurada]
« Respuesta #8 en: 1 Marzo 2008, 15:04 »

Buenisimoo, muchas gracias   :)
En línea

Darvein

Desconectado Desconectado

Mensajes: 182



Ver Perfil WWW
Re: Ejercicios resueltos C++ [programacion estructurada]
« Respuesta #9 en: 1 Marzo 2008, 20:42 »

Citar
holas me podrias poner problemas de
prosesos secuenciales
if elfe
while
switch

Todo lo que mencionas estan en los ejercicos.
Aunque falta el switch, pero ya lo pondre :)
En línea

¿Ilusión o realidad?
Darvein

Desconectado Desconectado

Mensajes: 182



Ver Perfil WWW
Re: Ejercicios resueltos C++ [programacion estructurada]
« Respuesta #10 en: 1 Marzo 2008, 20:47 »

Volví xD
Aqui tambien hay ejercicios propuestos

http://foro.elhacker.net/ejercicios/ejercicios_en_c-t34911.0.html
« Última modificación: 21 Diciembre 2012, 19:37 por el-brujo » En línea

¿Ilusión o realidad?
goditozor

Desconectado Desconectado

Mensajes: 56


Aprendiz


Ver Perfil
Re: Ejercicios resueltos C++ [programacion estructurada]
« Respuesta #11 en: 3 Noviembre 2009, 06:23 »

hola amigo muy buenos ejercicios... tendras algunos de cadenas por alli?
En línea

jares88

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Ejercicios resueltos C++ [programacion estructurada]
« Respuesta #12 en: 24 Enero 2010, 22:29 »

Hola alguien puede mirar este programa para ver los errores de codificacion que tiene que no soy capaz de solucionar, el error tiene que estar por donde esta señalado.gracias


#include <stdio.h>
#include <conio.h>

#define MAXPER 100
#define IMPED 1200
#define LIMING 30000
#define DIVIN 120000
#define FIN "XXXX"

/* se define la estructura del registro que mas adelante se utilizara*/
typedef struct
 {
  char nom[10],ape[10];
  float ing;
 }tPersona;

/*se definen los modulos que se van a ulilizar en el modulo principal*/
void recuperarPers(char[],tPersona[],int*);
int leerEntero(int,int);
void aniadirPers(tPersona[],int*,int);
void mostrarPers(tPersona[],int);
void eliminarPers(tPersona[],int*);
void calcImpuestos(tPersona[],int);
void grabarPers(char [],tPersona[],int);


void main()
 {
  tPersona pers[MAXPER];
  int np,opc;
  clrscr();
  /*llamada al modulo recuperarPers*/
  recuperarPers("PERSONAS.DAT",pers,&np);

  do
    {
     printf("1. A¤adir personas\n2. Mostrar personas\n3. Eliminar una persona\n4. Impuestos\n5. Salir\nIntroduce una opci¢n: ");
     /*llamada al modulo leerEntero que devuelve un numero del 1 al 5 que se le asocia a la variable opc*/
     opc=leerEntero(1,5);
     switch(opc)
      {
   case 1:
     {
      /*llamada al modulo aniadirPers*/
      aniadirPers(pers,&np,MAXPER);
      /*llamada al modulo grabarPers*/
      grabarPers("PERSONAS.DAT",pers,np);
     }
     break;
   case 2:
     {
      /*llamada al modulo mostrarPers*/
      mostrarPers(pers,np);
     }
     break;
   case 3:
     {
     /*llamada al modulo eliminarPers*/
      eliminarPers(pers,&np);
      /*llamada al modulo grabarPers*/
      grabarPers("PERSONAS.DAT",pers,np);
     }
     break;
   case 4:
     {
      /*llamada al modulo calcImpuestos*/
      calcImpuestos(pers,np);
     }
     break;
      }
    }
  while(opc!=5);
  getch();
 }
/* cuerpo del modulo recuperarPers(lee el numero de personas y la lista de personas)*/
void recuperarPers(char PERSONA.DAT[],tPersona pers[],int *pnp)
 {
  FILE *fpers;
  /*se abre el archivo para saber si ya hay algo escrito en el*/
  fpers=fopen("PERSONAS.DAT","r");
  if (fpers==NULL)
    {
     *pnp=0;
    }
  else
    {
     /*si no esta vacio el archivo lee el numero de personas y la lista de personas y las lleva al modulo principal*/
     fread(*pnp,sizeof(int),1,fpers);
     fread(pers,sizeof(tPersona),*pnp,fPers);
     fclose(fPers);
    }
 }


/* cuerpo del modulo leerEntero(limita el intervalo de numero que el usuario puede escoger*/
int leerEntero(int MINIMO,int MAXIMO)
 {
  int n;
  printf("\nIntroduce una opci¢n: ");
  scanf("%d",&n);
  while(n<MINIMO||n>MAXIMO)
    {
     printf("\nError, debe estar en el intervalo [%d,%d]: ",MINIMO,MAXIMO);
     scanf("%d",&n);
    }
  /*devuelve "n" al modulo principal*/
  return(n);
 }

#define MAXPER 100
#define FIN "XXXX"
/* se define el modulo que va a ser ulilizado dentro del modulo aniadirPers*/
float leerNoNegativo()
/*cuerpo del modulo aniadirPers(a¤ade personas a la lista)*/
void aniadirPers(tPersona pers[],int *pnp,int MAXPER)
 {
  char apellido[];
  /*solo se podra a¤adir una persona mas si la lista no esta llena*/
  if(*pnp<MAXPER)
    {
     printf("PERSONA %d:",*pnp);
     printf("\nApellido: ");
     /* introducir el apellido a la lista*/
     flushall();
     gets(apellido);
     strupr(apellido);
     /* si el apellido es = a FIN no se a¤ade a la lista y se sale de ella*/
     while(apellido!=FIN && *pnp<=MAXPER)
       {
   /*se le asocia el apellido introducido por el usuario al registro definido anteriormente*/
   pers[*pnp].ape=apellido;
   printf("\nNombre:");
   /*se introduce el nombre*/
   flushall();
   gets(pers[*pnp].nom);
   strupr(pers[*pnp].nom);
   printf("\nIngresos:");
   /*se llama al modulo leerNoNegativo y se asocia a la parte de ingresos del registro*/
   pers[*pnp].ing=leerNoNegativo();
   *pnp=*pnp+1;
   /* te vuelve a pedir otro apellido y empezar el ciclo solo si no se supera el maximo de personas*/
   if(*pnp<MAXPER)
     {
      printf("\nPersona %d:",*pnp);
      printf("\nApellido: ");
      flushall();
      gets(apellido);
      strupr(apellido);
     }
   else
     {
      printf("\nSe ha alcanzado el n£mero m ximo de personas.");
     }
       }
  else
    {
     printf("\nSe ha alcanzado el n£mero m ximo de personas.");
    }
 }
/* cuerpo del modulo leerNoNegativo( lee el numero si es negativo te pide otro asta que sea positivo)*/
float leerNoNegativo()
 {
  float n;
  scanf("%f",&n);
  while(n<0)
    {
     printf("\nError: el n£mero ha de ser mayor o igual que cero.");
     scanf("%f",&n);
    }
  return(n);
 }
/* cuerpo del modulo mostrarPers(muestra por pantalla la lista de personas)*/
void mostrarPers(tPersona pers[],int np)
 {
  int iP;
  clrscr();
  printf("Id.  APELLIDO   NOMBRE     INGRESOS\n===================================");
  for(iP=0;iP<=np-1;iP=iP+1)
    {
     /*muestra por pantalla lo que esta almacenado en el registro*/
     printf("\n  %2d. %11s%11s%f.2",iP+1,pers[iP].ape,pers[iP].nom,pers[iP].ing);
     if((iP+1%20)=0)
       {
   getch();
   clrscr();
       }
    }
 }
/* se define el modulo leerEntero que sera utilizado dentro del modulo eliminarPers*/
int leerEntero(int,int);

/*cuerpo del modulo eliminarPers(sirve para eliminar nombres de la lista y sus datos asociados en el registro)*/
void eliminarPers(tPersona pers[],int *pnp)
 {
  int nOrd,iP;
  printf("\nIntroduce el n£mero de orden de la persona a eliminar (0-cancelar): ");
  nOrd=leerEntero(0,*pnp);
  /* si el nOrd(numero de orden en la lista) es distinto de 0 se elimina el nombre que este en ese numero de orden*/
  if(nOrd!=0)
    {
     for(iP=nOrd;iP<=*pnp,iP=iP+1)
       {
   /*la persona de esa posicion toma el nombre del siguiente y se borra el seleccionado*/
   pers[iP-1]=pers[iP];
       }
     *pnp=*pnp-1;
    }
 }
#define IMPED 1200
#define LIMING 30000
#define DIVIN 120000

/*cuerpo del modulo calcImpuestos(calcula los impuestos que se utilizaran para cada familia)*/
void calcImpuestos(tPersona pers[],int np)
 {
  int iP,fin,nDed;
  float ingFam,ingAj,impFam,porc;
  if(np>0)
    {
     clrscr();
     printf("FAMILIA     IMPUESTOS\n=====================)");
     iP=0;
     do
       {
   /*se igualan las variables a 0*/
   fin=0;
   nDed=0;
   ingFam=0;
   do
     {
      /*si los ingresos de una persona son nulos se a¤ade una deduccion a la familia*/
      if(pers[iP].ing=0)
        {
         nDed=nDed+1;
        }
      /* si tiene algun ingreso se le suma al ingreso familiar*/
      else
        {
         ingFam=ingFam+pers[iP].ing;
        }
      if(iP=np-1)
        {
         /* se iguala a 1 la variable fin si ya no hay mas personas sobre las que calcular los impuestos para salir del bucle*/
         fin=1;
        }
      /* si no es la ultima persnoa se compara el siguiente apellido para ver si es de la misma familia*/
      else
        {
         if(pers[iP].ape!=pers[iP+1].ape
      {
       fin=1;
      }
      /* se pasa al siguiente nombre de la lista*/
      iP=iP+1;
     }
   /*cuando se termina con una familia (fin=1) se procede a hacer los calculos */
   while(fin==1);
   /*ingreso ajustado teniendo en cuenta el numero de deducciones de la familia*/
   ingAj=ingFam-IMPDED*nDed;
   if(ingAj>0)
     {
      /*se comparan los ingresos ajustados con el limite de ingresos para hacer los calculos dependiendo de ello*/
      if(ingAj>LIMING)
        {
         porc=(LIMING/DIVING);
        }
      else
        {
         porc=(ingAj/DIVING);
        }
      impFam=porc*ingAj;
     }
   else
     {
      impFam=0;
     }
       }
     while(iP<=np-1);
    }
 }
/*cuerpo del modulo grabarPers(graba los cambios que se producen)*/
void grabarPers(char nomArch[],tPersona pers [],int np)
 {
  FILE *Fpers;
  /*se abre el archivo en modo escritura*/
  fPers=fopen(nomArch"w");
  /*se guarda el tama¤o y la lista*/
  fwrite(&np,sizeof(int),1,fPers);
  fwrite(pers,sizeof(tPersonas),np,fPers);
  /*se cierra el archivo*/
  fclose(fPers);
 }
En línea

rvilla777

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Ejercicios resueltos C++ [programacion estructurada]
« Respuesta #13 en: 2 Abril 2010, 16:27 »

Hola tengo una duda en este ejercicio
#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();
}

Para que se usa el %10??, gracias.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines