C/C++ - Нужно перевести с pascal на C и добавить циклы к ней

Ответить
 • Просмотры: 1
Аватара пользователя
Чин Хон

C/C++ - Нужно перевести с pascal на C и добавить циклы к ней

Сообщение Чин Хон »

Есть прога на паскале. Нужно перевести ее:

Код: Выделить всё

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.
Аватара пользователя
Чин Хон

Re: C/C++ - Нужно перевести с pascal на C и добавить циклы к ней

Сообщение Чин Хон »

Циклов 3:

1) Проверка R(радиуса). Если R
Аватара пользователя
Beyound

Re: C/C++ - Нужно перевести с pascal на C и добавить циклы к ней

Сообщение Beyound »

не на чем скомпилировать, но на память както так



Код:

Код: Выделить всё

стандартные библиотеки +
#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(); //вот эта строка чтото в памяти осталась что будет ждать нажатия кнопки, не уверен что сработает.
}

это для консоли естественно

а что еще за циклы ты написал?? помочь их реализовать тоже?
Аватара пользователя
Чин Хон

Re: C/C++ - Нужно перевести с pascal на C и добавить циклы к ней

Сообщение Чин Хон »

Да, было бы не плохо



И прога почему-то не работает
Аватара пользователя
Печальный чайник

Re: C/C++ - Нужно перевести с pascal на C и добавить циклы к ней

Сообщение Печальный чайник »

"стандартные библиотеки +" в начале листинга проги стёрли, надеюсь?

Во-вторых, Beyound перепутал cin >, поменяйте их местами, а внутри условия if замените = на ==, в-третьих, замените все использования функции типа sqrt(x) на x*x, в-четвёртых, добавьте double z;.
Аватара пользователя
No Need In Magic

Re: C/C++ - Нужно перевести с pascal на C и добавить циклы к ней

Сообщение No Need In Magic »

пардон, а где переменной r присваивается значение?

в паскале, скорее всего, r будет равна нулю

на сях - хз чему
Аватара пользователя
Beyound

Re: C/C++ - Нужно перевести с pascal на C и добавить циклы к ней

Сообщение Beyound »

да действительно - нет присваивания.. касяк. Но я переводил то что написано, нету присваивания в паскале - нету и в си.

а на тему что будет... ну в visual 2008 - будет ошибка, которая будет говорить что переменная не инициализирована. Нуля не будет точно... в старых компиляторах (если память не изменяет - то и в таких случаях) просто бралось значение из памяти, выделенной под переменную (фактически случайное число)
Аватара пользователя
No Need In Magic

Re: C/C++ - Нужно перевести с pascal на C и добавить циклы к ней

Сообщение No Need In Magic »

Цитата Beyound:



да действительно - нет присваивания.. касяк. Но я переводил то что написано, нету присваивания в паскале - нету и в си.
C/C++ - Нужно перевести с pascal на C и добавить циклы к ней




ну это был вопрос не к вам, а к автору




Цитата Beyound:



Нуля не будет точно... в старых компиляторах (если память не изменяет - то и в таких случаях) просто бралось значение из памяти, выделенной под переменную (фактически случайное число)
C/C++ - Нужно перевести с pascal на C и добавить циклы к ней




ну на Code:Blocks, который компилит на си, так и есть, да



я про тот же Turbo Pascal 7, там почти всегда переменные обнуляются уже при инициализации
Аватара пользователя
Onyma

Re: C/C++ - Нужно перевести с pascal на C и добавить циклы к ней

Сообщение Onyma »

переписал исходное на 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;
};

это компилируется и работает. Хм а что оно делает? Вроде проверяет входит ли точка в круг, но проверок имхо больше...

Изображение
Ответить

Вернуться в «Программирование и базы данных»