This is my assignment.
Write a program to convert between yards and meters. Your solution must utilize functions to perform the conversions. Your functions must meet these requirements:

One of the functions must use pass-by-value, returning the converted measure
One of the functions must use pass-by-reference to store its result (the function does not have a return value).
Your program must create two tables - one showing the yards equivalent to meter measures from 0 yards to 100 yards (by 5 yard increments: 0, 5, 10, . . . , 100) and the other showing meters equivalent to yards measures 0 through 100 (by 5 meter increments: 0, 5, 10, ... , 100). Original measures are all integer values. Calculated measures are to be displayed accurate to two decimal places.
The output for both tables must fit on one default screen (79 columns by 23 rows), so your tables will need to be organized into multiple columns. Everything must be lined up nicely and the tables neatly and informatively labeled. This assignment can be done with a single file. It is not necessary to define any classes.

I have gotten this code written, but im getting these errors. Im at a loss for fixing them

Compiling...
Conversions.cpp
c:\documents and settings\owner\my documents\visual studio 2005\projects\damel_7\damel_7\conversions.cpp(21) : error C2440: '=' : cannot convert from 'double (__cdecl *)(void)' to 'double'
There is no context in which this conversion is possible
c:\documents and settings\owner\my documents\visual studio 2005\projects\damel_7\damel_7\conversions.cpp(22) : error C2660: 'getmeters' : function does not take 2 arguments
Build log was saved at "file://c:\Documents and Settings\Owner\My Documents\Visual Studio 2005\Projects\damel_7\damel_7\Debug\BuildLog.htm"
damel_7 - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

#include <iostream>
using std::cout;
using std::endl;  

double y2m=1.09361329834;
double m2y=0.9144; 
double getyards(int);
double getmeters();

int main (void)
{
	int i;
	double yards, meters; 
	for (i=5; i<=100; i=i+5)
	{	
		double yards = getyards(i);
		cout << i << yards << endl;
		;}
	for (i=5; i<=100; i=i+5) 

	  meters=getmeters;
		getmeters(i,meters);
	
		cout << i << &meters <<endl;
	;} 
double getyards (int x)
{
	return 
(x*m2y)
;}

Recommended Answers

All 19 Replies

line 21 and line 22 are wrong.
First implement the function getmeters.
Indentation of the code is horrible. Write the getmeters function and repost code.

line 21: meters is a double, getmeters is a function. you can not assign a function to a double. But what you can do is assign the return value of the function to a double like this: meters=getmeters(); line 22: delete that line because it has wrong parameters (see function prototype on line 8) and doesn't do anything.

line 24: why are you printing the address of meters instead of its value ?

pay closer attention to the open and closing braces { and } -- they must match. For every { there must be a corresponding }. Don't be so careless in your coding.

I dont know how to do that. please give me something to go on. is there a site i can look up or something. Our book is horrible.

>>I dont know how to do that.
you don't know how to do what? I reformatted your code in another thread for free, I'm not going to do it again every time you post something. Go back to your other thread and see how I formatted it. Also read the information in the link that someone else posted. If you are not going to read the responses to the threads then there is not much we can do for you.

>>please give me something to go on
I did. learn to read the threads.

>>Our book is horrible
Maybe, but you have to read it.

This is what i have so far, and im gettiing even more errors and warnings. Im about ready to give up. Ive been working on this program for 4 days, with absolutley no luck
these are the errors im getting now. which i have never seen.

Conversions.obj : error LNK2019: unresolved external symbol "double __cdecl getmeters(void)" (?getmeters@@YANXZ) referenced in function _main
C:\Documents and Settings\Owner\My Documents\Visual Studio 2005\Projects\damel_7\Debug\damel_7.exe : fatal error LNK1120: 1 unresolved externals
Build log was saved at "file://c:\Documents and Settings\Owner\My Documents\Visual Studio 2005\Projects\damel_7\damel_7\Debug\BuildLog.htm"
damel_7 - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

#include <iostream>
using std::cout;
using std::endl;  

double y2m=1.09361329834;
double m2y=0.9144; 
double getyards(int);
double getmeters();

int main ()
{
int i;
double yards, meters; 
for (i=5; i<=100; i=i+5)
{	
double yards = getyards(i);
cout << i << yards << endl;
		;}
for (i=5; i<=100; i=i+5) 

meters=getmeters();
		
cout << i << &meters <<endl;
	;} 
double getyards (int x)
{
	return 
(x*m2y)
;}

I attempted to do everything you told me to. Im lost, with worst errors than I had prior. Sorry I didnt format right. I didnt know how. and i just learned how to read pm's. sorry

>>Sorry I didnt format right. I didnt know how
Here is a short tutorial on how to format your program. You should probably bookmark it so that you can refer to it often until you have it down in your head.

>>error LNK2019: unresolved external symbol "double __cdecl getmeters(void)" (?getmeters@@YANXZ) referenced in function _main

That error message is telling you that the compiler can not find a function named getmeters that does not have any parameters. You prototyped it ok on line 8 and called it on line 21, but nowhere did you actually write that function.

I didnt know how to format for the website.

Could you please help me with my program? I did what you said, and im still not getting anything to work

I dont know how to write the function for it, everything ive tried comes up with an error?

using code tags here is pretty simple, [code=c++] // your code goes here

[/code]

And don't use tabs in your code because they will not look right when posted here even though they may look ok on your computer screen. Depending on what compiler you are using the compiler may have option to replace tabs with spaces. If not, then just hit the space bar on your keyboard instead of the tab key.

>>I dont know how to write the function for it, everything ive tried comes up with an error
post what you tried.

double getmeters(int);


Nothing is working.


what is the fatal error im getting and how do i resolve that?

your program is nearly complete -- all you have to really to is add that one function. Here is your program formatted correctly.

#include <iostream>
using std::cout;
using std::endl;  

double y2m=1.09361329834;
double m2y=0.9144; 
double getyards(int);
double getmeters();

int main ()
{
    int i;
    double  meters; 
    for (i=5; i<=100; i=i+5)
    {	
        double yards = getyards(i);
        cout << i << yards << endl;
    }
    for (i=5; i<=100; i=i+5) 
    {
        meters=getmeters();	
        cout << i << meters <<endl;
    }
    return 0;
} 
double getyards (int x)
{
    return (x*m2y);
}

double getmeters()
{
    return 0;
}

>>what is the fatal error im getting and how do i resolve that?
That means that there were previous compile errors -- you can just ignore that line because it will go away after you get all the other errors fixed.

>>double getmeters(int);
Your post #6 does not have that line.

>>Nothing is working.
you are underestimating yourself, probably because you are so frustrated.

This is what it is suppose to do.

Your program must create two tables - one showing the yards equivalent to meter measures from 0 yards to 100 yards (by 5 yard increments: 0, 5, 10, . . . , 100) and the other showing meters equivalent to yards measures 0 through 100 (by 5 meter increments: 0, 5, 10, ... , 100). Original measures are all integer values. Calculated measures are to be displayed accurate to two decimal places.
The output for both tables must fit on one default screen (79 columns by 23 rows), so your tables will need to be organized into multiple columns. Everything must be lined up nicely and the tables neatly and informatively labeled.


It doesnt do anything like it, where did i go wrong?

>>your program is nearly complete
After re-reading the program requirements you are still pretty far from having it finished. But you need to get this to compile cleanly before continuing.

The getmeters() that I posted is wrong. It should return void and take a parameter by reference, such as void getmeters(int& meters); After that you need to create the two tables that were in the program requirements.

>>It doesnt do anything like it, where did i go wrong?
You are right -- you have not implemented that part yet. What you need are two int arrays to hold the values your teacher wants. Below I just put in dummy numbers -- you need to put in the correct value. You can find them in any conversion calculator on the web.

int meters_to_yards[] = {0,1,2,3 ...}; // you have to use correct values here

int yards_to_meters[] = {0,1,2,3 ...}; // you have to use correct values here

after changing the get meters, it give me this error,
c:\documents and settings\owner\my documents\visual studio 2005\projects\damel_7\damel_7\conversions.cpp(21) : error C2660: 'getmeters' : function does not take 0 arguments

with the other it worked fine. whats wrong?

>>with the other it worked fine. whats wrong?
Look everywhere in your program for getmeters and you will see the differences. That function must be passed one parameter by reference. And NO -- it did not work fine because the function must have one parameter.

Sorry towhoe but I can't help you any more this evening. I suspect this assignment is way beyond your ability to complete. you are just asking too many newbe questions and your assignment is for someone who already has some fundamental understanding of programming concepts. It's difficult to believe your teacher/school would give a first semester student an assignment that is so advanced.

How do i go about getting a table in there. we have not covered this in class.

How do i go about getting a table in there. we have not covered this in class.

Then it's not something you want to do. It's not easy at your level of experience.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.