|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Нужно перевести с pascal на C и добавить циклы к ней |
|
C/C++ - Нужно перевести с pascal на C и добавить циклы к ней
|
Новый участник Сообщения: 22 |
Профиль | Отправить PM | Цитировать
Есть прога на паскале. Нужно перевести ее:
Program tochka; uses crt; var r,x,y:real; begin clrscr; writeln ('vvedite x,y,z'); readln (x,y,z); if ((sqr(x)+sqr(y)<=sqr(r)) and (sqr(r-x)+sqr(r-y)<=sqr(r))) then begin if (sqr(x)+sqr(y)=sqr(r)) or (sqr(r-x)+sqr(r-y)=sqr(r)) then writeln ('popadaet na granicu') else write ('popadaet'); end else write ('ne popadaet'); readln; end. |
|
Отправлено: 18:13, 25-01-2011 |
Новый участник Сообщения: 22
|
Профиль | Отправить PM | Цитировать Циклов 3:
1) Проверка R(радиуса). Если R<=0, то R вводим заново. Если обратное - продолжаем; (Потом вводим значения x,y) 2) Далее цикл, спрашивающий: изменить ли значения x,y. Если да, то программа возвращается к моменту после R. Если нет - продолжаем; 3) Далее цикл, спрашивающий: ввести R? Если нет, программа заканчивается, а если да, то программа возвращается к самому началу Спасибо |
Отправлено: 18:52, 25-01-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 154
|
Профиль | Отправить PM | Цитировать не на чем скомпилировать, но на память както так
стандартные библиотеки + #include <math.h> #include <iostream.h> void main() { double r; double x; double y; cin << "vvedite x,y,z \n"; cout >> x >> y >> z; if ( sqrt(x)+sqrt(y) <= sqrt(r) && sqrt(r-x) + sqrt(r-y) <= sqrt(r) ) if (sqrt(x)+sqrt(y) = sqrt(r) || sqrt(r-x) + sqrt(r-y) = sqrt(r) ) cin << "popodaet na granizy \n"; else cin << "popadaet"; else cin << "ne popadaet"; getch(); //вот эта строка чтото в памяти осталась что будет ждать нажатия кнопки, не уверен что сработает. } а что еще за циклы ты написал?? помочь их реализовать тоже? |
Отправлено: 22:14, 25-01-2011 | #3 |
Новый участник Сообщения: 22
|
Профиль | Отправить PM | Цитировать Да, было бы не плохо
И прога почему-то не работает |
Отправлено: 22:57, 25-01-2011 | #4 |
Новый участник Сообщения: 23
|
Профиль | Отправить PM | Цитировать "стандартные библиотеки +" в начале листинга проги стёрли, надеюсь?
Во-вторых, Beyound перепутал cin << и cout >>, поменяйте их местами, а внутри условия if замените = на ==, в-третьих, замените все использования функции типа sqrt(x) на x*x, в-четвёртых, добавьте double z;. |
|
Последний раз редактировалось Печальный чайник, 26-01-2011 в 13:23. Отправлено: 13:18, 26-01-2011 | #5 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать пардон, а где переменной r присваивается значение?
в паскале, скорее всего, r будет равна нулю на сях - хз чему |
Отправлено: 12:35, 01-02-2011 | #6 |
Старожил Сообщения: 154
|
Профиль | Отправить PM | Цитировать да действительно - нет присваивания.. касяк. Но я переводил то что написано, нету присваивания в паскале - нету и в си.
а на тему что будет... ну в visual 2008 - будет ошибка, которая будет говорить что переменная не инициализирована. Нуля не будет точно... в старых компиляторах (если память не изменяет - то и в таких случаях) просто бралось значение из памяти, выделенной под переменную (фактически случайное число) |
Отправлено: 17:46, 01-02-2011 | #7 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать Цитата Beyound:
Цитата Beyound:
я про тот же Turbo Pascal 7, там почти всегда переменные обнуляются уже при инициализации |
||
Отправлено: 11:58, 02-02-2011 | #8 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать переписал исходное на cpp и поправил малец очевидное:
// tochka.cpp // #include <cmath> #include <iostream> #include <iomanip> using namespace std; #include <conio.h> int main(int argc, char** argv) { float r, x, y; system("cls"); cout << "Vvedite x, y, r:" << endl; cin >> x >> y >> r; cout << endl; float ry = r - y, rx = r - x; if( ( x * x + y * y <= r * r ) && ( rx * rx + ry * ry <= r * r ) ) { if( ( x * x + y * y == r * r ) && ( rx * rx + ry * ry == r * r ) ) cout << "Popodaet na granitsy" << endl; else cout << "Popodaet" << endl; } else cout << "Ne popodaet" << endl; cout << "Dlia vihoda najmite liobyio klavishy..."; getch(); return 0; }; |
Отправлено: 23:54, 03-02-2011 | #9 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - Нужно быстро (!) добавить/удалить строку во все файлы указанной директории | Possessed | Скриптовые языки администрирования Windows | 6 | 04-10-2011 22:29 | |
Нужно перевести книги с англ.на русский язык. | zxzx | Хочу все знать | 6 | 12-09-2010 10:20 | |
Разное - перевести с кода C++ на Pascal... | radeon37 | Программирование и базы данных | 0 | 03-06-2010 12:20 | |
VBS/WSH/JS - VBS | Динамические массивы, циклы и присваивание | mrcnn | Программирование и базы данных | 5 | 22-10-2006 14:12 |
|