Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: dennis094 en 19 Diciembre 2013, 14:49 pm



Título: Duda ejercicio C
Publicado por: dennis094 en 19 Diciembre 2013, 14:49 pm
Buenas,
resulta que en clase me han pasado el siguiente ejercicio, y la verdad es que no tengo ni idea de por donde cogerlo... si me pudierais echar una mano os lo agradeceria  ;D.

**Indique los tipos de datos precisos para que el codigo que se muestra, funcione correctamente **

Código:
void modifica (tipoB *tb){
int i,j;
(*tb).y++;
for(i=0;i<MAX2;i++){
for(j=0;j<MAX3;j++){
scanf("%c", &(*tb).z[i][j].c1);
scanf("%s", (*tb).z[i][j].c2);
}
}
return;
}


int main(int argc, char *argv[]) {
tipoA a;
int i;
         .....
for(i=0;i<MAX1;i++){
if(a[i].x){
modifica(&a[i]);
}
}
return 0;
}

El otro ejercicio que tampoco se me ocurre es el siguiente:

**Dado el codigo siguiente que permite sumar todos los valores de "a" de un array de registros "V" con 2 campos "a" y "b" siempre y cuando "b" sea verdadero, indique el conjunto de instrucciones mas adecuado para rellenar los huecos:**

Código:
#define N 20
.....

aux = .........
for(i=0;....;i++)
        if(.....)
           aux = aux + ......


Título: Re: Duda ejercicio C
Publicado por: dato000 en 19 Diciembre 2013, 19:34 pm
No soy un experto, pero te dejo mis observaciones:

Código
  1. // **Indique los tipos de datos precisos para que el codigo que se muestra, funcione correctamente **
  2.  
  3. #include <iostream>
  4. #include <cstdio>
  5. #include <cstdlib>
  6.  
  7. using namespace std;
  8.  
  9. void modifica (tipoB& *tb){ // usando & se usa la referencia a la estructura de manera que se modifique sin retorno, sin afectar el void
  10. int i,j;
  11. (*tb).y++; // podria usarse --->tb->y
  12. for(i=0;i<MAX2;i++){     // No se sabe que cantidad es MAX2
  13. for(j=0;j<MAX3;j++){ // No se sabe que cantidad es MAX3
  14. scanf("%c", &(*tb).z[i][j].c1); //imaginando que z es un array con un número de datos determinado tipo char
  15. scanf("%s", (*tb).z[i][j].c2);  //imaginando que z es un array con un número de datos determinado tipo string
  16. }
  17. }
  18. //return; // No debe retornar nada porque es una función vacia, void
  19. }
  20.  
  21.  
  22. int main(int argc, char *argv[]) {
  23. tipoA a; // No se sabe la naturaleza de la estructura tipoA, así que solo podemos pensar en un modo simple
  24. int i;
  25.         //.....  // Esos puntos no dejan nada a la luz del código, es mejor ponerlo completo
  26. for(i=0;i<MAX1;i++){
  27. if(a[i].x){
  28. modifica(a[i]);
  29. }
  30. }
  31. return 0;
  32. }
  33.  

Código
  1. #define N 20
  2. .....
  3.  
  4. aux = .........
  5. for(int i = 0; i < N  ; i++)
  6. {
  7.        if(.....)
  8.        {
  9.           aux = aux + ...... //bien podria sumarse N, "aux = aux + N;"   o   "aux += N;"
  10.        }
  11. }
  12.  

Slds


Título: Re: Duda ejercicio C
Publicado por: rir3760 en 20 Diciembre 2013, 03:34 am
resulta que en clase me han pasado el siguiente ejercicio, y la verdad es que no tengo ni idea de por donde cogerlo... si me pudierais echar una mano os lo agradeceria
En buen plan: Ya que se trata de un trabajo de clase deberías publicar tus respuestas y porque piensas que son correctas. A partir de ahí ya podríamos ayudarte.

Eso porque 1) Hacer tareas va contra las reglas de los foros y 2) la idea es que tu aprendas en el proceso (si no te esfuerzas no es posible).

Un saludo


Título: Re: Duda ejercicio C
Publicado por: dennis094 en 20 Diciembre 2013, 14:22 pm
Ya lo se, de hecho llevo bastante tiempo en este foro y nunca he pedido ningun ejercicio, no os pido que lo resolvais por mi, sino que me ayudeis a resolverlo, no darme el ejercicio hecho y fuera...
Si lo he preguntado ha sido porque no tenia ni idea de por donde cogerlo


Título: Re: Duda ejercicio C
Publicado por: leosansan en 20 Diciembre 2013, 16:06 pm
El primero va de estructuras y ahí ando flojo, pero el segundo puede ser algo tan simple como:

Código
  1. #include <stdio.h>
  2. #define N 20
  3.  
  4. int  main(void){
  5.    int i,aux;
  6.    aux=0;
  7.    for(i=0;i<=N;i++)
  8.        if(i%2==0)
  9.            aux=aux+i;
  10.    printf ("La suma de los pares de 1 a %d es %d",N,aux);
  11.    return 0;
  12. }
  13.  

Saluditos! ..... !!!!        (http://st.forocoches.com/foro/images/smilies/aaaaa.gif)