IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Программа ввода
Танюшонка
сообщение 15.06.2007 14:20
Сообщение #1


Гость






Здравствуйте! мне очень нужна ваша компетентная помощь!
Мне над написать программку, которая может решать простые уравнения типа 5Х+10, которые бы вводил пользователь. Как бы мне это сделать?
Пользователь вводит уравнение. Через readln я получаю стринг. Как мне его теперь разделить на отдельные символы, чтобы проверить это цифра или буква.
Мне в понедельник её сдавать, помогите мне, очень прошу! Буду примного благодарна!

Сообщение отредактировано: Танюшонка - 15.06.2007 15:19
 К началу страницы 
+ Ответить 
volvo
сообщение 15.06.2007 17:28
Сообщение #2


Гость






Цитата
написать программку, которая может решать простые уравнения типа 5Х+10, которые бы вводил пользователь
Ты видишь здесь уравнение? Я - нет... Уравнение - это что-то со знаком равенства...

Определи, кстати, насколько простым может быть уравнение, и какие арифметические операции надо будет уметь обрабатывать...
 К началу страницы 
+ Ответить 
Танюшонка
сообщение 15.06.2007 18:14
Сообщение #3


Гость






Ну скажем функция а не уравнение. Потом я за Х вставлю значения. Должно быть простое с одной переменной. типа 2Х+3 или 4Х-7.
 К началу страницы 
+ Ответить 
volvo
сообщение 15.06.2007 18:36
Сообщение #4


Гость






То есть, ты хочешь нечто вроде этого:
function eval(X: real; s: string): real;
var
  p, err: integer;
  st: string;
  f: real;
begin
  p := pos('X', s);
  delete(s, p, 1);
  str(X:0:3, st);
  insert(st, s, p);
  val(calc(s), f, err);
  eval := f;
end;


begin
  { В строке обязательно вводить знак умножения, и буква X должна быть большой... }
  write('f(x) = '); readln(s); { Тестировалось на строке 10*X+30 }
  writeln(eval(12.45, s) :10 :5);
end.

(функция Calc приведена вот тут:
Интерпретатор ) ?

Сообщение отредактировано: volvo - 15.06.2007 18:39
 К началу страницы 
+ Ответить 
Танюшонка
сообщение 17.06.2007 1:22
Сообщение #5


Гость






Сделала вот так. Не обращайте внимание, что переменные по немецки. Что вы об этом думаете?


Код
program funktionsgraf;
    uses crt;
    var str, symbol1, symbol2,wertstr1, wertstr2    :string;
        position, wert, wert1, wert2, fehler, x, y  :integer;
        zeichen : char;


    BEGIN
    TextColor(Black);
    clrscr;
    writeln('Geben sie die Funtion f(x) ein');
    readln(str);
    position:=0;
    wertstr1 := '';
    wertstr2 := '';
    wert := 0;
    repeat
       begin
         wert1 := wert;
         position:=position+1;
         symbol1:=copy(str,position,1);
         wertstr1:=wertstr1+symbol1;
         val(wertstr1,wert, fehler);
        end;
    until
       fehler<>0;

    writeln(wert1);                {WEG}

    position:=position+1;
    zeichen:=str[position];
    wert := 0;

    repeat
       begin
         position:=position+1;
         symbol2:=copy(str,position,1);
         wertstr2:=wertstr2+symbol2;
         val(wertstr2,wert,fehler);
         wert2 := wert;
       end;
    until
       ((fehler<>0) or (position = length(str)));

       writeln(wert2);                   {WEG}

    writeln(' x     f(x)');

    for x:=1 to 10 do
      begin
        case zeichen of

        '+' :
        begin
            y:=wert1*x+wert2;
            {writeln(' ',x,'     ',y)}
            Punkt(x,wert1*x+wert2);
        end;

        '-' :

            begin
                  y:=wert1*x-wert2;
                  {writeln(' ',x,'     ',y)}
           Punkt(x,wert1*x+wert2);
            end

        else writeln('Fehler!');
      end;  {  case  }
      end;  {  for  }
      readkey;
END.
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 17.06.2007 3:47
Сообщение #6


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


dry.gif а перевести никак нельзя?
лично я не могу общаться с программой, не понимая, что она мне говорит...
а форум у нас вроде как русскоязычный. вот тебе приятно было бы, если бы я написала ответ, скажем, на китайском? и в конце - извини, что на китайском... не обращай внимания.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Танюшонка
сообщение 19.06.2007 21:56
Сообщение #7


Гость






Извините, я сейчас перквкеду. Ещё вопрос, как в TP вводить степень? Просто 2^2 не работает, посмотрела в инете, а там что-то ничего простого нету. Не ужто TP не умеет просто степени считать.
 К началу страницы 
+ Ответить 
volvo
сообщение 19.06.2007 22:21
Сообщение #8


Гость






Цитата
Ещё вопрос, как в TP вводить степень?
Вот так:
Общие вопросы по математике.
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 26.07.2025 0:11
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"