Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Нужно перевести с pascal на C и добавить циклы к ней

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

Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Drongo
Дата: 25-01-2011
Описание: Пожалуйста, используйте тег - [code] - #
Есть прога на паскале. Нужно перевести ее:
Код: Выделить весь код
  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
Благодарности: 0

Профиль | Отправить PM | Цитировать


Циклов 3:
1) Проверка R(радиуса). Если R<=0, то R вводим заново. Если обратное - продолжаем; (Потом вводим значения x,y)
2) Далее цикл, спрашивающий: изменить ли значения x,y. Если да, то программа возвращается к моменту после R. Если нет - продолжаем;
3) Далее цикл, спрашивающий: ввести R? Если нет, программа заканчивается, а если да, то программа возвращается к самому началу

Спасибо

Отправлено: 18:52, 25-01-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 154
Благодарности: 39

Профиль | Отправить 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
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

И прога почему-то не работает

Отправлено: 22:57, 25-01-2011 | #4


Новый участник


Сообщения: 23
Благодарности: 2

Профиль | Отправить PM | Цитировать


"стандартные библиотеки +" в начале листинга проги стёрли, надеюсь?
Во-вторых, Beyound перепутал cin << и cout >>, поменяйте их местами, а внутри условия if замените = на ==, в-третьих, замените все использования функции типа sqrt(x) на x*x, в-четвёртых, добавьте double z;.

Последний раз редактировалось Печальный чайник, 26-01-2011 в 13:23.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:18, 26-01-2011 | #5


Новый участник


Сообщения: 8
Благодарности: 1

Профиль | Отправить PM | Цитировать


пардон, а где переменной r присваивается значение?
в паскале, скорее всего, r будет равна нулю
на сях - хз чему
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:35, 01-02-2011 | #6


Старожил


Сообщения: 154
Благодарности: 39

Профиль | Отправить PM | Цитировать


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

Отправлено: 17:46, 01-02-2011 | #7


Новый участник


Сообщения: 8
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата Beyound:
да действительно - нет присваивания.. касяк. Но я переводил то что написано, нету присваивания в паскале - нету и в си. »
ну это был вопрос не к вам, а к автору

Цитата Beyound:
Нуля не будет точно... в старых компиляторах (если память не изменяет - то и в таких случаях) просто бралось значение из памяти, выделенной под переменную (фактически случайное число) »
ну на Code:Blocks, который компилит на си, так и есть, да

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

Отправлено: 11:58, 02-02-2011 | #8


Новый участник


Сообщения: 4
Благодарности: 1

Профиль | Отправить 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



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Нужно перевести с pascal на C и добавить циклы к ней

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - Нужно быстро (!) добавить/удалить строку во все файлы указанной директории 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




 
Переход