Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > C/C++/С#


Ответ
 
Опции темы Опции просмотра
Старый 12.02.2014, 15:55   #1 (permalink)
steamangarsk
Member
 
Регистрация: 28.12.2012
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Перевести с Паскаля на Си

помогите пожалуйста перевести код с Паскаля на Си

var x, y, a, b, s_left, s_right:real;
begin
WriteLn('laboratornya rabota №2');
WriteLn('variant №8');
WriteLn;
Write('x=');
ReadLn(x);

if (x>0) and (x<2)
then begin
if(x<1.0)
then begin
a:=sqrt(1.0-x*x);
b:=2*arctan(a/x);
s_right:=2.0*(1.0-x)-(1.0/2.0)*(b-sin(b))+pi/2.0;
s_left:=2.0-s_right;
y:=2.0*(1.0-a);
end else
if x=1
then begin
y:=2;
s_right:=(1.0/2.0)*pi;
s_left:=2.0-s_right;
end else
begin
y:=2.0*sqrt(1.0-(1.0-x)*(1.0-x));
B:=2*arctan(sqrt((1.0-(1.0-x)*(1.0-x))/(x-1.0)));
s_right:=(1.0/2.0)*(B-sin(B));
s_left:=2.0-s_right;
end;
writeln('s_right=', s_right:0:2);
writeln('s_left=', s_left:0:2);
writeln('y=', y:0:2);
end
else
writeln('x vne vichisleniy');
readln;
end.

Замечание:
Для начала рекомендую освоить Правила нашего форума, в частности п. 3.3 (кросспостинг) и п. 2.1 (требования к названиям тем).
Тема-дубликат удалена.
Название отредактировано.

Модератор
steamangarsk вне форума   Ответить с цитированием

Старый 12.02.2014, 15:55
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Обращаю ваше внимание на то, что на нашем форуме уже были похожи темы

Данный код выводит треугольник Паскаля. Передалайте пожалуйста
Как перевести *.cdr в другой формат?
Пожалуйста, помогите написать программу для Паскаля, строящую график функции e^x
Пожалуйста, помогите написать программу для Паскаля АВС, строящую график функции e^x

Старый 13.02.2014, 15:26   #2 (permalink)
steamangarsk
Member
 
Регистрация: 28.12.2012
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

ну помогите кто нибудь... срочно нужно...
steamangarsk вне форума   Ответить с цитированием
Старый 13.02.2014, 17:00   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от steamangarsk Посмотреть сообщение
ну помогите кто нибудь... срочно нужно...
Если "срочно нужно", то набейте в Google
Pascal to C converter
таких программок навалом, выберите, установите да запустите. На свой страх и риск (программки такого рода - самодельные).
Vladimir_S вне форума   Ответить с цитированием
Старый 14.02.2014, 01:37   #4 (permalink)
Smith
Специалист
 
Аватар для Smith
 
Регистрация: 13.08.2007
Сообщений: 4,159
Записей в дневнике: 5
Сказал(а) спасибо: 41
Поблагодарили 16 раз(а) в 8 сообщениях
Репутация: 23496
По умолчанию

прога то нулевая. можно было бы и самому сделать.
Smith вне форума   Ответить с цитированием
Старый 14.02.2014, 10:41   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Smith Посмотреть сообщение
прога то нулевая. можно было бы и самому сделать.
Ну так покажите класс, сударь! А отпускать подобные реплики мы все мастера...
P.S. Сам я, к сожалению, на Си не пишу. Вот если бы наоборот - из Си в Паскаль...
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 14.02.2014, 18:19   #6 (permalink)
steamangarsk
Member
 
Регистрация: 28.12.2012
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Конвертеры много ошибок допускают, а препод строгий, заставит переделывать...
steamangarsk вне форума   Ответить с цитированием
Старый 14.02.2014, 20:15   #7 (permalink)
Smith
Специалист
 
Аватар для Smith
 
Регистрация: 13.08.2007
Сообщений: 4,159
Записей в дневнике: 5
Сказал(а) спасибо: 41
Поблагодарили 16 раз(а) в 8 сообщениях
Репутация: 23496
По умолчанию

Вот честно скажу - ни в С ни в С++ не шарю. И в паскале тоже. Знаю Бэйсик, на уровне бэйсик. Но например вижу, что код вставлен косячный. Видимо пропущен if x>1 then. Условие задачи какое? Мне Сишку ставить даже лень, что бы попробовать написать, на столько это просто. А что значит вот это "s_left:0:2"? s_left переменная которую мы ввели, в вот это :0:2 это зачем? округление?
Smith вне форума   Ответить с цитированием
Старый 14.02.2014, 20:18   #8 (permalink)
steamangarsk
Member
 
Регистрация: 28.12.2012
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

да, это число знаков после запятой... и там ничего не пропущено, потому что в Паскале код нормально работает...
steamangarsk вне форума   Ответить с цитированием
Старый 14.02.2014, 20:20   #9 (permalink)
steamangarsk
Member
 
Регистрация: 28.12.2012
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

условие такое
Миниатюры
aacuiyiiue.png  
steamangarsk вне форума   Ответить с цитированием
Старый 14.02.2014, 20:23   #10 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Smith Посмотреть сообщение
Видимо пропущен if x>1 then.
Нет, всё правильно. Структура:
Код:
if x=1 then
 begin
  ...
 end
else
 begin
  ...
 end;
Цитата:
Сообщение от Smith Посмотреть сообщение
вот это :0:2 это зачем? округление?
Нет. Это разновидность формата вывода вещественных чисел. Означает "вывести с двумя разрядами после десятичного разделителя", т.е., иначе говоря, до сотых включительно. Первый "0" означает, что количество значащих цифр целой части не определено: как получится, так и вывести.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 17:00.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.