Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[Muy Urgente]Como crear y llamar esta funcion :S

Estas en el tema de [Muy Urgente]Como crear y llamar esta funcion :S en el foro de C/C++ en Foros del Web. Hola estoy tratando de hacer un ejercicio de un libro de la serie schaum... este dice: que elabore un programa con una función Código: void ...
  #1 (permalink)  
Antiguo 12/09/2012, 17:00
 
Fecha de Ingreso: septiembre-2012
Mensajes: 1
Antigüedad: 11 años, 7 meses
Puntos: 0
Exclamación [Muy Urgente]Como crear y llamar esta funcion :S

Hola estoy tratando de hacer un ejercicio de un libro de la serie schaum...
este dice:


que elabore un programa con una función
Código:
void abs(float* p[],int n)
Textualmente el libro dice:
Cita:
7.14 Write the following function that changes the sign of each of the negative floats pointed to
by the first n pointers in the array p :
void abs(float* p[],int n)
hasta donde yo entiendo debo escribir una funcion que cambie el signo de cada valor negativo de un arreglo p[]

en otras palabras un valor absoluto, pero nunca he creado funciones y no tengo idea de como empezar, lo podría hacer facilmente sin crear ninguna funcion, pero es precisamente la creacino de funciones parte del objetivo de esa unidad del libro, asi que vine a preguntar, espero me puedan ayudar...

aquí lo que intente correr (creo que debe estar muy mal)
Código:
#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <cstdio>
using namespace std;

void abs(float,int);
int main ()
{

int n;
float p[100];
cout << "Introduce cuantos numeros lleva el arreglo:";
cin >>n;

for (int i=1;i<=n;i++)
{
cin >> p[i];
abs(p[i],n);
}
}

void abs(float p[],int n)
{
	using namespace std;
	for (int i=1;i<=n;i++)
	{
	if (p[i]<0)
		p[i]=p[i]*(-1);
	}
	cout << "Los valores absolutos de la matriz son:\n" ;
}
porfas echenme la mano, entendiendo bien uno, kreo ke podria hacer el resto de los ejercicios solos :S
  #2 (permalink)  
Antiguo 12/09/2012, 18:05
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: [Muy Urgente]Como crear y llamar esta funcion :S

La funcion esta excelente, pero la estas llamando mal. Seguro al compilar te esta saltando el error de tipos.

La llamada a la funcion deberia estar fuera del for:

abs(p,n);

A la funcion se le pasa el arreglo entero y no un elemento. Fijate que dentro de la funcion hay un for.

Saludos
  #3 (permalink)  
Antiguo 13/09/2012, 14:27
Avatar de cronopiomx  
Fecha de Ingreso: mayo-2012
Ubicación: Programing Cloud
Mensajes: 282
Antigüedad: 12 años
Puntos: 28
Respuesta: [Muy Urgente]Como crear y llamar esta funcion :S

ptu problema era en el prototipo de la funcion encima del main, haces 1 funcion llamada abs(...), que resive por parametros 1 arreglo de float, y en el prototipo tienes puesto que recibe 1 solo float, y ademas en la funcion main, dentro del for le enviabas 1 cada float del arreglo, debes centrate en lo que hace tu funcion abs(....)...

s2
cronos

revisa aqui....

Código:
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <cstdio>
using namespace std;

void abs(float[] , int);
int main () {
  int n;
  float p[100];
  cout << "Introduce cuantos numeros lleva el arreglo:";
  cin >>n;

  for (int i=1;i<=n;i++) 
   cin >> p[i];  
 
  abs( p , n);
}

void abs(float p[],int n)
{	
	for (int i=1;i<=n;i++)
	{
	if (p[i]<0)
		p[i]=p[i]*(-1);
	}
	cout << "Los valores absolutos de la matriz son:\n" ;
}

Etiquetas: funcion, int, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:58.