|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.12.2012, 20:39 | #1 |
Регистрация: 13.12.2012
Сообщений: 4
|
Калькулятор, работа над ошибками.
Начал изучать с++ по книге Либерти. Наткнулся на простой калькулятор с 1 действием:
#include <iostream.h> int Add (int x, int y) { cout << "In Add(), received " << x << " and " << y << "\n"; return (x+y); } int main() { cout << "I'm in main()!\n"; int a, b, c; cout << "Enter two numbers: "; cin >> a; cin >> b; cout << "\n Calling Add()\n"; c=Add(a,b); cout << "\n Back in main().\n"; cout << "c was set to " << c; cout << "\n Exiting...\n\n"; return 0; } x+y - тоисть, одна цыфра додает вторую Потом подумал, почему бы не попробовать сделать на 2 варианта, минус и плюс. Вот что не получилось: #include <iostream.h> int add (int x, int y) { cout << "In Add(), received " << x << " and " << y << "\n"; return (x+y); } int add (int q, int w) { cout << "In Add(), received " <<q << " and " << w << "\n"; return (q-w); } int main() { cout << "I'm in main()!\n"; int a, b, c; cout << "Enter two numbers: "; cin >> a; cin >> b; cout << "\n Calling add()\n"; c = add(a,b); cout << "\n Back in main().\n"; cout << "c was set to " << c; cout << "\n Exiting...\n\n"; return 0; } Код ошибки - d:\program files\microsoft visual studio\myprojects\1\2.cpp(8) : error C2084: function 'int __cdecl add(int,int)' already has a body d:\program files\microsoft visual studio\myprojects\1\2.cpp(20) : error C2440: '=' : cannot convert from 'int (__cdecl *)(int,int)' to 'int' This conversion requires a reinterpret_cast, a C-style cast or function-style cast Error executing cl.exe. Второй вариант написан с потолка, пытаясь логически сообразить. И случайно наткнулся на калькулятор на одном из сайтов по програмированию: #include <iostream> #include <math.h> #include <conio.h> using namespace std; int main(){ double n1,n2; int inp; cout << "Enter number :\n\n\n"; cout << "_____________________\n\n\n"; cout << "\tNumber 1 :\n"; cin >> n1; cout << "\t\tNumber 2 :\n"; cin >> n2; if(!cin){ cout << "\n\t- Error! -\n"; cin.clear(); cin.ignore(); getch(); return -1; } cout << "Enter [1] for [+]\n"; cout << "Enter [2] for [-]\n"; cout << "Enter [3] for [/]\n"; cout << "Enter [4] for[*]\n\n\n"; cout << "___________________\n\n"; cin >> inp; switch(inp) { case 1: cout << "____________________\n"; cout << " Summa :\n"; cout << "\n\n" << n1+n2 << "\n\n\t"; getch(); break; case 2: cout << "____________________\n"; cout << " Summa :\n"; cout << "\n\n" << n1-n2 << "\n\n\t"; getch(); break; case 3: cout << "____________________\n"; cout << " Summa :\n"; cout << "\n\n" << n1/n2 << "\n\n\t"; getch(); break; case 4: cout << "____________________\n"; cout << " Summa :\n"; cout << "\n\n" << n1*n2 << "\n\n\t"; getch(); break; default: cout << "\tonly numbers 1 2 3 4\t\n"; } return 0; } По сути, я такой и хочу написать. Скопировать то скопирую готовый, но не пойму как работает, что означает весь код, часть кода я знаю, вторую нет. Помогите. |
18.12.2012, 19:41 | #2 |
Форумчанин
Регистрация: 19.11.2011
Сообщений: 198
|
Код:
Вас не смущает то, что функции названы одинаково? Код:
|
18.12.2012, 19:51 | #3 |
Форумчанин
Регистрация: 19.11.2011
Сообщений: 198
|
Код:
|
18.12.2012, 19:52 | #4 |
Форумчанин
Регистрация: 19.11.2011
Сообщений: 198
|
Русский текст с вижуалки норм не скопировался, ну да неважно, смысл главное понять)
|
18.12.2012, 22:02 | #5 | |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
Цитата:
во-вторых.... по англ... вычитать sub... ну это не суть важно. дело в том что вы отправляете в стек функции меняете их, но они уничтожаются... дебуг конечно съест, там память сохраняется. //----- а так же поймите в книгах в любом примере есть ошибка.... сделано СПЕЦИАЛЬНО... ибо каждый прогер писав книгу хочет, что бы вы ПОНЯЛИ!!!!
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Последний раз редактировалось Perchik71; 18.12.2012 в 22:05. |
|
19.12.2012, 14:50 | #6 | |
Форумчанин
Регистрация: 19.11.2011
Сообщений: 198
|
Цитата:
А как по-английски вычитать меня мало интересует, как автор захочет назвать функцию, так он ее и назовет |
|
22.12.2012, 13:56 | #7 | |
Регистрация: 13.12.2012
Сообщений: 4
|
Цитата:
А по поводу специальных ошибок в книге, то я их заметил с самого начала, что знаю то исправляю) Кстати на 2 действия сделал, а вот на 4 где (+-\*) не получаеться почему то. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа тест на Delphi. Надо добавить "работу над ошибками" | dex16 | Помощь студентам | 1 | 25.02.2012 00:56 |
Работа над ошибками | pandaaaaa | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 01.01.2012 20:53 |
Работа над ошибками, удаление Linux | begemotikdin | Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) | 5 | 30.11.2008 01:16 |