Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2011, 08:11   #1
Геворг
Пользователь
 
Регистрация: 11.02.2011
Сообщений: 12
По умолчанию Написал "алгоритм", но что-то упустил

Друзья, помогите ошибку найти и дайте плз совет в правильном ли я для этого ур-я направлении написал алгоритм? спасибо!

Код:
program kr1_2;

uses crt;

var
x,y,R,F:real;
begin;
writeln('Enter x,y');
readln(x,y);
Case x*y of
x*y<0:R:=exp(x+y/1-x*y);
0<=x*y<=1:R:=arctan(x*y);
x*y>1,x>0:R:=lg(x*y-x);
end;
begin;
F:=R+1/(sqr(x)+sqr(y))/sqrt(sqr(R)+abs(x*y));
end.
Изображения
Тип файла: jpg 1.jpg (25.3 Кб, 49 просмотров)
Геворг вне форума Ответить с цитированием
Старый 14.02.2011, 10:35   #2
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Код:
0<=x*y<=1
Кто ж вас так учил записывать условия в паскале.
Код:
var
x,y,R,F:real;
begin;
  writeln('Enter x,y');
  readln(x,y);
  If (x*y < 0)then R:=exp(x+y/1-x*y)
  Else
  If (x*y >= 0) and (x*y <=1) then R:=arctan(x*y)
  Else
  If (x*y > 1) and (x > 0) then R:=ln(x*y-x)/ln(10);
  F:=(R+1/(sqr(x)+sqr(y)))/sqrt(sqr(R)+abs(x*y));
  Writeln(F:4:2);
  Readln
End.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 14.02.2011, 11:34   #3
Геворг
Пользователь
 
Регистрация: 11.02.2011
Сообщений: 12
По умолчанию

Цитата:
Сообщение от GetMax Посмотреть сообщение
Код:
0<=x*y<=1
Кто ж вас так учил записывать условия в паскале.

К сожалению никто, заочников не учат у нас, вы мой 1 из первых учителей, огромное спасибо,что помогли!
Код:
var
x,y,R,F:real;
begin;
  writeln('Enter x,y');
  readln(x,y);
  If (x*y < 0)then R:=exp(x+y/1-x*y)
  Else
  If (x*y >= 0) and (x*y <=1) then R:=arctan(x*y)
  Else
  If (x*y > 1) and (x > 0) then R:=ln(x*y-x)/ln(10);
  F:=(R+1/(sqr(x)+sqr(y)))/sqrt(sqr(R)+abs(x*y));
  Writeln(F:4:2);
  Readln
End.
А можно поинтересоваться зачем нужна эта строка, всё понял, кроме неё?
Код:
Writeln(F:4:2);
Геворг вне форума Ответить с цитированием
Старый 14.02.2011, 12:12   #4
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Код:
Writeln(F:4:2)
А здесь мы просто выводим получившийся результат, то есть значение переменной F. Выделяя 4 позиции на все число и 2 из них на дробную часть(2 знака после запятой).
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 14.02.2011, 12:22   #5
Геворг
Пользователь
 
Регистрация: 11.02.2011
Сообщений: 12
По умолчанию

Цитата:
Сообщение от GetMax Посмотреть сообщение
Код:
Writeln(F:4:2)
А здесь мы просто выводим получившийся результат, то есть значение переменной F. Выделяя 4 позиции на все число и 2 из них на дробную часть(2 знака после запятой).
аа понятно, прикольно)!!!

Сейчас думаю как через опрератор выбора case сделать, вдуг препод спросит... Что указать после case?
Геворг вне форума Ответить с цитированием
Старый 14.02.2011, 14:26   #6
aleks15
Пользователь
 
Регистрация: 02.02.2011
Сообщений: 77
По умолчанию

у меня есть нормальный учебник в электронном виде я сам без учителей по нему занимаюсь все понятно там очень хорошо изложено у меня нет на него ссылки но
автора сказать могу С.Н.Лукин очень хорошая книга правда там и про case есть и про все что надо;думаю она тебе поможет раз ты заочник
aleks15 вне форума Ответить с цитированием
Старый 14.02.2011, 14:56   #7
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
Сейчас думаю как через опрератор выбора case сделать
Оператором Case of здесь лучше не пользоваться, так как слишком много вариантов выбора
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 14.02.2011, 15:17   #8
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
Оператором Case of здесь лучше не пользоваться, так как слишком много вариантов выбора
Вообще-то case предназначен для множественного выбора.
_-Re@l-_ вне форума Ответить с цитированием
Старый 14.02.2011, 19:00   #9
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
Вообще-то case предназначен для множественного выбора.
Абсолютно согласен. Но я например так и не придумал как в Сase указать диапазон X < 0. Ну и остальные тоже. Поэтому и посоветовал отказаться от этого оператора
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 15.02.2011, 21:15   #10
XandrMoro
 
Регистрация: 15.02.2011
Сообщений: 7
По умолчанию

Цитата:
Сообщение от GetMax Посмотреть сообщение
Абсолютно согласен. Но я например так и не придумал как в Сase указать диапазон X < 0. Ну и остальные тоже. Поэтому и посоветовал отказаться от этого оператора
В принципе, не так уж и сложно:

Цитата:
...
if x <> 0 then k:= trunc(x/abs(x)) else k:= 0;
case k of
1: ... //больше нуля
-1: ... //меньше нуля
0: ... //равно нулю
Но да, это извращение)
XandrMoro вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обойти "преобразование типа из "string" в "float" невозможно" lexluter1988 Помощь студентам 1 07.08.2010 12:23
Что происходит на странице с такие JS: <script src="cmp.php?complete&amp;" id="las..." ...>? TwiX JavaScript, Ajax 0 05.02.2010 17:38
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Правда ли что Java "Тяжелая" и все "вешает" ? webmaster-n Общие вопросы по Java, Java SE, Kotlin 10 30.07.2009 01:22